; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN40Longtail_Longtail_BlockStoreFS (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.TestAsyncFlushComplete = type <{ %struct.Longtail_AsyncFlushAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncFlushAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_API = type { 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.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_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 }

@.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.232 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.892 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.893 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.895 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.897 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.898 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.899 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.900 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.901 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.907 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.908 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.909 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.910 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.911 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.912 = external hidden unnamed_addr constant [127 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 ptr @Longtail_CreateFSStorageAPI() #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

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

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

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

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

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

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 noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef) #3 align 2

; 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 #4 align 2

; 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
declare hidden noundef i32 @_ZL17CreateFakeContentP19Longtail_StorageAPIPKcj(ptr noundef, ptr noundef, i32 noundef) #3

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

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

declare ptr @Longtail_GetTempFolder() #2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN40Longtail_Longtail_BlockStoreFS__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 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 i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %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 ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %struct.TestAsyncFlushComplete, align 8
  %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) #5
  %46 = call ptr @Longtail_CreateFSStorageAPI()
  store ptr %46, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #5
  %47 = call ptr @Longtail_GetTempFolder()
  store ptr %47, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #5
  %48 = load ptr, ptr %3, align 8, !tbaa !5
  %49 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %48, i32 0, i32 12
  %50 = load ptr, ptr %49, align 8, !tbaa !9
  %51 = load ptr, ptr %3, align 8, !tbaa !5
  %52 = load ptr, ptr %4, align 8, !tbaa !5
  %53 = call noundef ptr %50(ptr noundef %51, ptr noundef %52, ptr noundef @.str.892)
  store ptr %53, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #5
  %54 = load ptr, ptr %3, align 8, !tbaa !5
  %55 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %54, i32 0, i32 12
  %56 = load ptr, ptr %55, align 8, !tbaa !9
  %57 = load ptr, ptr %3, align 8, !tbaa !5
  %58 = load ptr, ptr %4, align 8, !tbaa !5
  %59 = call noundef ptr %56(ptr noundef %57, ptr noundef %58, ptr noundef @.str.893)
  store ptr %59, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  %60 = load ptr, ptr %3, align 8, !tbaa !5
  %61 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %60, i32 0, i32 12
  %62 = load ptr, ptr %61, align 8, !tbaa !9
  %63 = load ptr, ptr %3, align 8, !tbaa !5
  %64 = load ptr, ptr %4, align 8, !tbaa !5
  %65 = call noundef ptr %62(ptr noundef %63, ptr noundef %64, ptr noundef @.str.907)
  store ptr %65, ptr %7, align 8, !tbaa !5
  br label %66

66:                                               ; preds = %1
  %67 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %68 = getelementptr inbounds %struct.jc_test_fixture, ptr %67, i32 0, i32 11
  %69 = load i32, ptr %68, align 8
  %70 = and i32 %69, -16776961
  %71 = or i32 %70, 1957632
  store i32 %71, ptr %68, align 8
  %72 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %73 = getelementptr inbounds %struct.jc_test_fixture, ptr %72, i32 0, i32 4
  store ptr @.str.3, ptr %73, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #5
  store i32 0, ptr %8, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  %74 = load ptr, ptr %3, align 8, !tbaa !5
  %75 = load ptr, ptr %5, align 8, !tbaa !5
  %76 = call noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef %74, ptr noundef %75)
  store i32 %76, ptr %9, align 4, !tbaa !17
  %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) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef @.str.46, ptr noundef @.str.895, ptr noundef null)
  %78 = icmp eq i32 %77, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #5
  br i1 %78, label %79, label %80

79:                                               ; preds = %66
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %469

80:                                               ; preds = %66
  br label %81

81:                                               ; preds = %80
  br label %82

82:                                               ; preds = %81
  br label %83

83:                                               ; preds = %82
  %84 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %85 = getelementptr inbounds %struct.jc_test_fixture, ptr %84, i32 0, i32 11
  %86 = load i32, ptr %85, align 8
  %87 = and i32 %86, -16776961
  %88 = or i32 %87, 1957888
  store i32 %88, ptr %85, align 8
  %89 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %90 = getelementptr inbounds %struct.jc_test_fixture, ptr %89, i32 0, i32 4
  store ptr @.str.3, ptr %90, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  store i32 0, ptr %11, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  %91 = load ptr, ptr %3, align 8, !tbaa !5
  %92 = load ptr, ptr %7, align 8, !tbaa !5
  %93 = call noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef %91, ptr noundef %92)
  store i32 %93, ptr %12, align 4, !tbaa !17
  %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) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef @.str.46, ptr noundef @.str.908, ptr noundef null)
  %95 = icmp eq i32 %94, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  br i1 %95, label %96, label %97

96:                                               ; preds = %83
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %469

97:                                               ; preds = %83
  br label %98

98:                                               ; preds = %97
  br label %99

99:                                               ; preds = %98
  br label %100

100:                                              ; preds = %99
  %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, 1958144
  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 !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  store i32 0, ptr %13, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  %108 = load ptr, ptr %3, align 8, !tbaa !5
  %109 = load ptr, ptr %6, align 8, !tbaa !5
  %110 = call noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef %108, ptr noundef %109)
  store i32 %110, ptr %14, align 4, !tbaa !17
  %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) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef @.str.46, ptr noundef @.str.897, ptr noundef null)
  %112 = icmp eq i32 %111, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  br i1 %112, label %113, label %114

113:                                              ; preds = %100
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %469

114:                                              ; preds = %100
  br label %115

115:                                              ; preds = %114
  br label %116

116:                                              ; preds = %115
  br label %117

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

133:                                              ; preds = %117
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %469

134:                                              ; preds = %117
  br label %135

135:                                              ; preds = %134
  br label %136

136:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  %137 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %137, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  %138 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %138, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  %139 = call ptr @Longtail_CreateHPCDCChunkerAPI()
  store ptr %139, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  %140 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  store ptr %140, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %141 = load ptr, ptr %20, align 8, !tbaa !5
  %142 = load ptr, ptr %3, align 8, !tbaa !5
  %143 = load ptr, ptr %7, align 8, !tbaa !5
  %144 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %141, ptr noundef %142, ptr noundef %143, ptr noundef null, i32 noundef 0)
  store ptr %144, ptr %21, align 8, !tbaa !5
  br label %145

145:                                              ; preds = %136
  %146 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %147 = getelementptr inbounds %struct.jc_test_fixture, ptr %146, i32 0, i32 11
  %148 = load i32, ptr %147, align 8
  %149 = and i32 %148, -16776961
  %150 = or i32 %149, 1960192
  store i32 %150, ptr %147, align 8
  %151 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %152 = getelementptr inbounds %struct.jc_test_fixture, ptr %151, i32 0, i32 4
  store ptr @.str.3, ptr %152, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  store i32 1, ptr %22, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  %153 = load ptr, ptr %3, align 8, !tbaa !5
  %154 = load ptr, ptr %5, align 8, !tbaa !5
  %155 = call noundef i32 @_ZL17CreateFakeContentP19Longtail_StorageAPIPKcj(ptr noundef %153, ptr noundef %154, i32 noundef 22)
  store i32 %155, ptr %23, align 4, !tbaa !17
  %156 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef @.str.232, ptr noundef @.str.899)
  %157 = icmp eq i32 %156, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  br i1 %157, label %158, label %159

158:                                              ; preds = %145
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %468

159:                                              ; preds = %145
  br label %160

160:                                              ; preds = %159
  br label %161

161:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  br label %162

162:                                              ; preds = %161
  %163 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %164 = getelementptr inbounds %struct.jc_test_fixture, ptr %163, i32 0, i32 11
  %165 = load i32, ptr %164, align 8
  %166 = and i32 %165, -16776961
  %167 = or i32 %166, 1960960
  store i32 %167, ptr %164, align 8
  %168 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %169 = getelementptr inbounds %struct.jc_test_fixture, ptr %168, i32 0, i32 4
  store ptr @.str.3, ptr %169, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  store i32 0, ptr %25, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  %170 = load ptr, ptr %3, align 8, !tbaa !5
  %171 = load ptr, ptr %20, align 8, !tbaa !5
  %172 = load ptr, ptr %5, align 8, !tbaa !5
  %173 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %170, ptr noundef %171, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %172, ptr noundef %24)
  store i32 %173, ptr %26, align 4, !tbaa !17
  %174 = 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 @.str.46, ptr noundef @.str.900, ptr noundef null)
  %175 = icmp eq i32 %174, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br i1 %175, label %176, label %177

176:                                              ; preds = %162
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %467

177:                                              ; preds = %162
  br label %178

178:                                              ; preds = %177
  br label %179

179:                                              ; preds = %178
  br label %180

180:                                              ; preds = %179
  %181 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %182 = getelementptr inbounds %struct.jc_test_fixture, ptr %181, i32 0, i32 11
  %183 = load i32, ptr %182, align 8
  %184 = and i32 %183, -16776961
  %185 = or i32 %184, 1961216
  store i32 %185, ptr %182, align 8
  %186 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %187 = getelementptr inbounds %struct.jc_test_fixture, ptr %186, i32 0, i32 4
  store ptr @.str.3, ptr %187, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %188 = load ptr, ptr %24, align 8, !tbaa !5
  %189 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %188, ptr noundef @.str.253, ptr noundef @.str.254)
  %190 = icmp eq i32 %189, 0
  br i1 %190, label %191, label %192

191:                                              ; preds = %180
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %467

192:                                              ; preds = %180
  br label %193

193:                                              ; preds = %192
  br label %194

194:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  %195 = load ptr, ptr %3, align 8, !tbaa !5
  %196 = load ptr, ptr %24, align 8, !tbaa !5
  %197 = call noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef %195, ptr noundef %196)
  store ptr %197, ptr %27, align 8, !tbaa !5
  br label %198

198:                                              ; preds = %194
  %199 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %200 = getelementptr inbounds %struct.jc_test_fixture, ptr %199, i32 0, i32 11
  %201 = load i32, ptr %200, align 8
  %202 = and i32 %201, -16776961
  %203 = or i32 %202, 1961728
  store i32 %203, ptr %200, align 8
  %204 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %205 = getelementptr inbounds %struct.jc_test_fixture, ptr %204, i32 0, i32 4
  store ptr @.str.3, ptr %205, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %206 = load ptr, ptr %27, align 8, !tbaa !5
  %207 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %206, ptr noundef @.str.255, ptr noundef @.str.256)
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %210

209:                                              ; preds = %198
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %466

210:                                              ; preds = %198
  br label %211

211:                                              ; preds = %210
  br label %212

212:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  br label %213

213:                                              ; preds = %212
  %214 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %215 = getelementptr inbounds %struct.jc_test_fixture, ptr %214, i32 0, i32 11
  %216 = load i32, ptr %215, align 8
  %217 = and i32 %216, -16776961
  %218 = or i32 %217, 1965568
  store i32 %218, ptr %215, align 8
  %219 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %220 = getelementptr inbounds %struct.jc_test_fixture, ptr %219, i32 0, i32 4
  store ptr @.str.3, ptr %220, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  store i32 0, ptr %29, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  %221 = load ptr, ptr %3, align 8, !tbaa !5
  %222 = load ptr, ptr %18, align 8, !tbaa !5
  %223 = load ptr, ptr %19, align 8, !tbaa !5
  %224 = load ptr, ptr %20, align 8, !tbaa !5
  %225 = load ptr, ptr %5, align 8, !tbaa !5
  %226 = load ptr, ptr %24, align 8, !tbaa !5
  %227 = load ptr, ptr %27, align 8, !tbaa !5
  %228 = call i32 @Longtail_CreateVersionIndex(ptr noundef %221, ptr noundef %222, ptr noundef %223, ptr noundef %224, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %225, ptr noundef %226, ptr noundef %227, i32 noundef 8192, i32 noundef 1, ptr noundef %28)
  store i32 %228, ptr %30, align 4, !tbaa !17
  %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) %29, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef @.str.46, ptr noundef @.str.901, ptr noundef null)
  %230 = icmp eq i32 %229, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  br i1 %230, label %231, label %232

231:                                              ; preds = %213
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %465

232:                                              ; preds = %213
  br label %233

233:                                              ; preds = %232
  br label %234

234:                                              ; preds = %233
  br label %235

235:                                              ; preds = %234
  %236 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %237 = getelementptr inbounds %struct.jc_test_fixture, ptr %236, i32 0, i32 11
  %238 = load i32, ptr %237, align 8
  %239 = and i32 %238, -16776961
  %240 = or i32 %239, 1965824
  store i32 %240, ptr %237, align 8
  %241 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %242 = getelementptr inbounds %struct.jc_test_fixture, ptr %241, i32 0, i32 4
  store ptr @.str.3, ptr %242, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %243 = load ptr, ptr %28, align 8, !tbaa !5
  %244 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %243, ptr noundef @.str.259, ptr noundef @.str.260)
  %245 = icmp eq i32 %244, 0
  br i1 %245, label %246, label %247

246:                                              ; preds = %235
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %465

247:                                              ; preds = %235
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  %250 = load ptr, ptr %21, align 8, !tbaa !5
  %251 = load ptr, ptr %28, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %251, i32 0, i32 4
  %253 = load ptr, ptr %252, align 8, !tbaa !19
  %254 = load i32, ptr %253, align 4, !tbaa !17
  %255 = load ptr, ptr %28, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %255, i32 0, i32 12
  %257 = load ptr, ptr %256, align 8, !tbaa !21
  %258 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %250, i32 noundef %254, ptr noundef %257, i32 noundef 0)
  store ptr %258, ptr %31, align 8, !tbaa !5
  br label %259

259:                                              ; preds = %249
  %260 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %261 = getelementptr inbounds %struct.jc_test_fixture, ptr %260, i32 0, i32 11
  %262 = load i32, ptr %261, align 8
  %263 = and i32 %262, -16776961
  %264 = or i32 %263, 1967616
  store i32 %264, ptr %261, align 8
  %265 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %266 = getelementptr inbounds %struct.jc_test_fixture, ptr %265, i32 0, i32 4
  store ptr @.str.3, ptr %266, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %267 = load ptr, ptr %31, align 8, !tbaa !5
  %268 = call noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StoreIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %267, ptr noundef @.str.484, ptr noundef @.str.909)
  %269 = icmp eq i32 %268, 0
  br i1 %269, label %270, label %271

270:                                              ; preds = %259
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %464

271:                                              ; preds = %259
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  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, 1969920
  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 !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  store i32 0, ptr %33, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  %282 = load ptr, ptr %18, align 8, !tbaa !5
  %283 = load ptr, ptr %31, align 8, !tbaa !5
  %284 = load ptr, ptr %28, align 8, !tbaa !5
  %285 = call i32 @Longtail_CreateMissingContent(ptr noundef %282, ptr noundef %283, ptr noundef %284, i32 noundef 8192, i32 noundef 11, ptr noundef %32)
  store i32 %285, ptr %34, align 4, !tbaa !17
  %286 = 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) %33, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef @.str.46, ptr noundef @.str.910, ptr noundef null)
  %287 = icmp eq i32 %286, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  br i1 %287, label %288, label %289

288:                                              ; preds = %274
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %463

289:                                              ; preds = %274
  br label %290

290:                                              ; preds = %289
  br label %291

291:                                              ; preds = %290
  %292 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %292)
  store ptr null, ptr %31, align 8, !tbaa !5
  br label %293

293:                                              ; preds = %291
  %294 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %295 = getelementptr inbounds %struct.jc_test_fixture, ptr %294, i32 0, i32 11
  %296 = load i32, ptr %295, align 8
  %297 = and i32 %296, -16776961
  %298 = or i32 %297, 1973504
  store i32 %298, ptr %295, align 8
  %299 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %300 = getelementptr inbounds %struct.jc_test_fixture, ptr %299, i32 0, i32 4
  store ptr @.str.3, ptr %300, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  store i32 0, ptr %35, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  %301 = load ptr, ptr %3, align 8, !tbaa !5
  %302 = load ptr, ptr %21, align 8, !tbaa !5
  %303 = load ptr, ptr %20, align 8, !tbaa !5
  %304 = load ptr, ptr %32, align 8, !tbaa !5
  %305 = load ptr, ptr %28, align 8, !tbaa !5
  %306 = load ptr, ptr %5, align 8, !tbaa !5
  %307 = call i32 @Longtail_WriteContent(ptr noundef %301, ptr noundef %302, ptr noundef %303, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %304, ptr noundef %305, ptr noundef %306)
  store i32 %307, ptr %36, align 4, !tbaa !17
  %308 = 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) %35, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef @.str.46, ptr noundef @.str.911, ptr noundef null)
  %309 = icmp eq i32 %308, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  br i1 %309, label %310, label %311

310:                                              ; preds = %293
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %10, align 4
  br label %463

311:                                              ; preds = %293
  br label %312

312:                                              ; preds = %311
  br label %313

313:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #5
  call void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %37)
  br label %314

314:                                              ; preds = %313
  %315 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %316 unwind label %337

316:                                              ; preds = %314
  %317 = getelementptr inbounds %struct.jc_test_fixture, ptr %315, i32 0, i32 11
  %318 = load i32, ptr %317, align 8
  %319 = and i32 %318, -16776961
  %320 = or i32 %319, 1974272
  store i32 %320, ptr %317, align 8
  %321 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %322 unwind label %337

322:                                              ; preds = %316
  %323 = getelementptr inbounds %struct.jc_test_fixture, ptr %321, i32 0, i32 4
  store ptr @.str.3, ptr %323, align 8, !tbaa !12
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %324 unwind label %337

324:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  store i32 0, ptr %40, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  %325 = load ptr, ptr %21, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %325, i32 0, i32 7
  %327 = load ptr, ptr %326, align 8, !tbaa !22
  %328 = load ptr, ptr %21, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.TestAsyncFlushComplete, ptr %37, i32 0, i32 0
  %330 = invoke noundef i32 %327(ptr noundef %328, ptr noundef %329)
          to label %331 unwind label %341

331:                                              ; preds = %324
  store i32 %330, ptr %41, align 4, !tbaa !17
  %332 = 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) %40, ptr noundef nonnull align 4 dereferenceable(4) %41, ptr noundef @.str.46, ptr noundef @.str.291, ptr noundef null)
          to label %333 unwind label %341

333:                                              ; preds = %331
  %334 = icmp eq i32 %332, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  br i1 %334, label %335, label %345

335:                                              ; preds = %333
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %336 unwind label %337

336:                                              ; preds = %335
  store i32 1, ptr %10, align 4
  br label %462

337:                                              ; preds = %459, %457, %455, %453, %449, %442, %435, %428, %421, %414, %409, %407, %399, %385, %379, %377, %374, %372, %364, %357, %351, %349, %347, %335, %322, %316, %314
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %38, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %39, align 4
  br label %472

341:                                              ; preds = %331, %324
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %38, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  br label %472

345:                                              ; preds = %333
  br label %346

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346
  invoke void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %37)
          to label %348 unwind label %337

348:                                              ; preds = %347
  br label %349

349:                                              ; preds = %348
  %350 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %351 unwind label %337

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

357:                                              ; preds = %351
  %358 = getelementptr inbounds %struct.jc_test_fixture, ptr %356, i32 0, i32 4
  store ptr @.str.3, ptr %358, align 8, !tbaa !12
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %359 unwind label %337

359:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  store i32 0, ptr %42, align 4, !tbaa !17
  %360 = getelementptr inbounds %struct.TestAsyncFlushComplete, ptr %37, i32 0, i32 2
  %361 = 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) %42, ptr noundef nonnull align 4 dereferenceable(4) %360, ptr noundef @.str.46, ptr noundef @.str.292, ptr noundef null)
          to label %362 unwind label %366

362:                                              ; preds = %359
  %363 = icmp eq i32 %361, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  br i1 %363, label %364, label %370

364:                                              ; preds = %362
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %365 unwind label %337

365:                                              ; preds = %364
  store i32 1, ptr %10, align 4
  br label %462

366:                                              ; preds = %359
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %38, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  br label %472

370:                                              ; preds = %362
  br label %371

371:                                              ; preds = %370
  br label %372

372:                                              ; preds = %371
  %373 = load ptr, ptr %27, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %373)
          to label %374 unwind label %337

374:                                              ; preds = %372
  %375 = load ptr, ptr %24, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %375)
          to label %376 unwind label %337

376:                                              ; preds = %374
  br label %377

377:                                              ; preds = %376
  %378 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %379 unwind label %337

379:                                              ; preds = %377
  %380 = getelementptr inbounds %struct.jc_test_fixture, ptr %378, i32 0, i32 11
  %381 = load i32, ptr %380, align 8
  %382 = and i32 %381, -16776961
  %383 = or i32 %382, 1978624
  store i32 %383, ptr %380, align 8
  %384 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %385 unwind label %337

385:                                              ; preds = %379
  %386 = getelementptr inbounds %struct.jc_test_fixture, ptr %384, i32 0, i32 4
  store ptr @.str.3, ptr %386, align 8, !tbaa !12
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %387 unwind label %337

387:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  store i32 0, ptr %43, align 4, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #5
  %388 = load ptr, ptr %21, align 8, !tbaa !5
  %389 = load ptr, ptr %3, align 8, !tbaa !5
  %390 = load ptr, ptr %20, align 8, !tbaa !5
  %391 = load ptr, ptr %32, align 8, !tbaa !5
  %392 = load ptr, ptr %28, align 8, !tbaa !5
  %393 = load ptr, ptr %6, align 8, !tbaa !5
  %394 = invoke i32 @Longtail_WriteVersion(ptr noundef %388, ptr noundef %389, ptr noundef %390, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %391, ptr noundef %392, ptr noundef %393, i32 noundef 1)
          to label %395 unwind label %401

395:                                              ; preds = %387
  store i32 %394, ptr %44, align 4, !tbaa !17
  %396 = 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.912, ptr noundef null)
          to label %397 unwind label %401

397:                                              ; preds = %395
  %398 = icmp eq i32 %396, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  br i1 %398, label %399, label %405

399:                                              ; preds = %397
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %400 unwind label %337

400:                                              ; preds = %399
  store i32 1, ptr %10, align 4
  br label %462

401:                                              ; preds = %395, %387
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %38, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  br label %472

405:                                              ; preds = %397
  br label %406

406:                                              ; preds = %405
  br label %407

407:                                              ; preds = %406
  %408 = load ptr, ptr %32, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %408)
          to label %409 unwind label %337

409:                                              ; preds = %407
  store ptr null, ptr %32, align 8, !tbaa !5
  %410 = load ptr, ptr %28, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %410)
          to label %411 unwind label %337

411:                                              ; preds = %409
  store ptr null, ptr %28, align 8, !tbaa !5
  %412 = load ptr, ptr %21, align 8, !tbaa !5
  %413 = icmp ne ptr %412, null
  br i1 %413, label %414, label %418

414:                                              ; preds = %411
  %415 = load ptr, ptr %21, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %415, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %416)
          to label %417 unwind label %337

417:                                              ; preds = %414
  br label %418

418:                                              ; preds = %417, %411
  %419 = load ptr, ptr %20, align 8, !tbaa !5
  %420 = icmp ne ptr %419, null
  br i1 %420, label %421, label %425

421:                                              ; preds = %418
  %422 = load ptr, ptr %20, align 8, !tbaa !5
  %423 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %422, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %423)
          to label %424 unwind label %337

424:                                              ; preds = %421
  br label %425

425:                                              ; preds = %424, %418
  %426 = load ptr, ptr %19, align 8, !tbaa !5
  %427 = icmp ne ptr %426, null
  br i1 %427, label %428, label %432

428:                                              ; preds = %425
  %429 = load ptr, ptr %19, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %429, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %430)
          to label %431 unwind label %337

431:                                              ; preds = %428
  br label %432

432:                                              ; preds = %431, %425
  %433 = load ptr, ptr %18, align 8, !tbaa !5
  %434 = icmp ne ptr %433, null
  br i1 %434, label %435, label %439

435:                                              ; preds = %432
  %436 = load ptr, ptr %18, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %436, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %437)
          to label %438 unwind label %337

438:                                              ; preds = %435
  br label %439

439:                                              ; preds = %438, %432
  %440 = load ptr, ptr %17, align 8, !tbaa !5
  %441 = icmp ne ptr %440, null
  br i1 %441, label %442, label %446

442:                                              ; preds = %439
  %443 = load ptr, ptr %17, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %443, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %444)
          to label %445 unwind label %337

445:                                              ; preds = %442
  br label %446

446:                                              ; preds = %445, %439
  %447 = load ptr, ptr %3, align 8, !tbaa !5
  %448 = icmp ne ptr %447, null
  br i1 %448, label %449, label %453

449:                                              ; preds = %446
  %450 = load ptr, ptr %3, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %450, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %451)
          to label %452 unwind label %337

452:                                              ; preds = %449
  br label %453

453:                                              ; preds = %452, %446
  %454 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %454)
          to label %455 unwind label %337

455:                                              ; preds = %453
  %456 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %456)
          to label %457 unwind label %337

457:                                              ; preds = %455
  %458 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %458)
          to label %459 unwind label %337

459:                                              ; preds = %457
  %460 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %460)
          to label %461 unwind label %337

461:                                              ; preds = %459
  store i32 0, ptr %10, align 4
  br label %462

462:                                              ; preds = %461, %400, %365, %336
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %37) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #5
  br label %463

463:                                              ; preds = %462, %310, %288
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  br label %464

464:                                              ; preds = %463, %270
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  br label %465

465:                                              ; preds = %464, %246, %231
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  br label %466

466:                                              ; preds = %465, %209
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  br label %467

467:                                              ; preds = %466, %191, %176
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  br label %468

468:                                              ; preds = %467, %158
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  br label %469

469:                                              ; preds = %468, %133, %113, %96, %79
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #5
  %470 = load i32, ptr %10, align 4
  switch i32 %470, label %478 [
    i32 0, label %471
    i32 1, label %471
  ]

471:                                              ; preds = %469, %469
  ret void

472:                                              ; preds = %401, %366, %341, %337
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %37) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #5
  br label %473

473:                                              ; preds = %472
  %474 = load ptr, ptr %38, align 8
  %475 = load i32, ptr %39, align 4
  %476 = insertvalue { ptr, i32 } poison, ptr %474, 0
  %477 = insertvalue { ptr, i32 } %476, i32 %475, 1
  resume { ptr, i32 } %477

478:                                              ; preds = %469
  unreachable
}

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 = { 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 = { 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 96}
!10 = !{!"_ZTS19Longtail_StorageAPI", !11, 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, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208}
!11 = !{!"_ZTS12Longtail_API", !6, i64 0}
!12 = !{!13, !6, i64 32}
!13 = !{!"_ZTS15jc_test_fixture", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !14, i64 64, !15, i64 88, !15, i64 91, !15, i64 91, !15, i64 91, !15, i64 91, !15, i64 92, !15, i64 96, !15, i64 97, !15, i64 99, !15, i64 100}
!14 = !{!"_ZTS13jc_test_stats", !15, i64 0, !15, i64 4, !15, i64 6, !15, i64 8, !15, i64 12, !16, i64 16}
!15 = !{!"int", !7, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!15, !15, i64 0}
!18 = !{!10, !6, i64 80}
!19 = !{!20, !6, i64 32}
!20 = !{!"_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, !15, i64 128, !6, i64 136, !6, i64 144}
!21 = !{!20, !6, i64 96}
!22 = !{!23, !6, i64 56}
!23 = !{!"_ZTS22Longtail_BlockStoreAPI", !11, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56}


; 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.TestAsyncFlushComplete = type <{ %struct.Longtail_AsyncFlushAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncFlushAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_API = type { 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.232 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.484 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.892 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.893 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.895 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.897 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.898 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.899 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.900 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.901 = external hidden unnamed_addr constant [166 x i8], align 1
@.str.907 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.908 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.909 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.910 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.911 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.912 = external hidden unnamed_addr constant [127 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 ptr @Longtail_CreateFSStorageAPI() 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

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

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

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

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

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

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 noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

; 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

; 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
declare hidden noundef i32 @_ZL17CreateFakeContentP19Longtail_StorageAPIPKcj(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

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

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

declare ptr @Longtail_GetTempFolder() local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN40Longtail_Longtail_BlockStoreFS__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i32, align 4
  %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 ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %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 i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %struct.TestAsyncFlushComplete, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = tail call ptr @Longtail_CreateFSStorageAPI()
  %30 = tail call ptr @Longtail_GetTempFolder()
  %31 = getelementptr inbounds i8, ptr %29, i64 96
  %32 = load ptr, ptr %31, align 8, !tbaa !5
  %33 = tail call noundef ptr %32(ptr noundef %29, ptr noundef %30, ptr noundef nonnull @.str.892)
  %34 = load ptr, ptr %31, align 8, !tbaa !5
  %35 = tail call noundef ptr %34(ptr noundef %29, ptr noundef %30, ptr noundef nonnull @.str.893)
  %36 = load ptr, ptr %31, align 8, !tbaa !5
  %37 = tail call noundef ptr %36(ptr noundef %29, ptr noundef %30, ptr noundef nonnull @.str.907)
  %38 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %39 = getelementptr inbounds i8, ptr %38, i64 96
  %40 = load i32, ptr %39, align 8
  %41 = and i32 %40, -16776961
  %42 = or disjoint i32 %41, 1957632
  store i32 %42, ptr %39, align 8
  %43 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %44 = getelementptr inbounds i8, ptr %43, i64 32
  store ptr @.str.3, ptr %44, align 8, !tbaa !11
  tail call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #5
  store i32 0, ptr %2, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #5
  %45 = tail call noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef %29, ptr noundef %33)
  store i32 %45, ptr %3, align 4, !tbaa !16
  %46 = 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) %2, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.895, ptr noundef null)
  %47 = icmp eq i32 %46, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #5
  br i1 %47, label %48, label %49

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

49:                                               ; preds = %1
  %50 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %51 = getelementptr inbounds i8, ptr %50, i64 96
  %52 = load i32, ptr %51, align 8
  %53 = and i32 %52, -16776961
  %54 = or disjoint i32 %53, 1957888
  store i32 %54, ptr %51, align 8
  %55 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %56 = getelementptr inbounds i8, ptr %55, i64 32
  store ptr @.str.3, ptr %56, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #5
  store i32 0, ptr %4, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #5
  %57 = call noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef nonnull %29, ptr noundef %37)
  store i32 %57, ptr %5, align 4, !tbaa !16
  %58 = 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) %4, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.908, ptr noundef null)
  %59 = icmp eq i32 %58, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #5
  br i1 %59, label %60, label %61

60:                                               ; preds = %49
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %296

61:                                               ; preds = %49
  %62 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %63 = getelementptr inbounds i8, ptr %62, i64 96
  %64 = load i32, ptr %63, align 8
  %65 = and i32 %64, -16776961
  %66 = or disjoint i32 %65, 1958144
  store i32 %66, ptr %63, align 8
  %67 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %68 = getelementptr inbounds i8, ptr %67, i64 32
  store ptr @.str.3, ptr %68, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #5
  store i32 0, ptr %6, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #5
  %69 = call noundef i32 @_ZL12DeleteFolderP19Longtail_StorageAPIPKc(ptr noundef nonnull %29, ptr noundef %35)
  store i32 %69, ptr %7, align 4, !tbaa !16
  %70 = 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.897, ptr noundef null)
  %71 = icmp eq i32 %70, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  br i1 %71, label %72, label %73

72:                                               ; preds = %61
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %296

73:                                               ; preds = %61
  %74 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %75 = getelementptr inbounds i8, ptr %74, i64 96
  %76 = load i32, ptr %75, align 8
  %77 = and i32 %76, -16776961
  %78 = or disjoint i32 %77, 1958400
  store i32 %78, ptr %75, align 8
  %79 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %80 = getelementptr inbounds i8, ptr %79, i64 32
  store ptr @.str.3, ptr %80, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #5
  store i32 0, ptr %8, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  %81 = getelementptr inbounds i8, ptr %29, i64 80
  %82 = load ptr, ptr %81, align 8, !tbaa !17
  %83 = call noundef i32 %82(ptr noundef nonnull %29, ptr noundef %33)
  store i32 %83, ptr %9, align 4, !tbaa !16
  %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) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.898, ptr noundef null)
  %85 = icmp eq i32 %84, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #5
  br i1 %85, label %86, label %87

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

87:                                               ; preds = %73
  %88 = call ptr @Longtail_CreateFullCompressionRegistry()
  %89 = call ptr @Longtail_CreateBlake3HashAPI()
  %90 = call ptr @Longtail_CreateHPCDCChunkerAPI()
  %91 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  %92 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %91, ptr noundef nonnull %29, ptr noundef %37, ptr noundef null, i32 noundef 0)
  %93 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %94 = getelementptr inbounds i8, ptr %93, i64 96
  %95 = load i32, ptr %94, align 8
  %96 = and i32 %95, -16776961
  %97 = or disjoint i32 %96, 1960192
  store i32 %97, ptr %94, align 8
  %98 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %99 = getelementptr inbounds i8, ptr %98, i64 32
  store ptr @.str.3, ptr %99, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #5
  store i32 1, ptr %10, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #5
  %100 = call noundef i32 @_ZL17CreateFakeContentP19Longtail_StorageAPIPKcj(ptr noundef nonnull %29, ptr noundef %33, i32 noundef 22)
  store i32 %100, ptr %11, align 4, !tbaa !16
  %101 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull @.str.232, ptr noundef nonnull @.str.899)
  %102 = icmp eq i32 %101, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  br i1 %102, label %103, label %104

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

104:                                              ; preds = %87
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  %105 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %106 = getelementptr inbounds i8, ptr %105, i64 96
  %107 = load i32, ptr %106, align 8
  %108 = and i32 %107, -16776961
  %109 = or disjoint i32 %108, 1960960
  store i32 %109, ptr %106, align 8
  %110 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %111 = getelementptr inbounds i8, ptr %110, i64 32
  store ptr @.str.3, ptr %111, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #5
  store i32 0, ptr %13, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #5
  %112 = call i32 @Longtail_GetFilesRecursively2(ptr noundef nonnull %29, ptr noundef %91, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %33, ptr noundef nonnull %12)
  store i32 %112, ptr %14, align 4, !tbaa !16
  %113 = 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.900, ptr noundef null)
  %114 = icmp eq i32 %113, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #5
  br i1 %114, label %115, label %116

115:                                              ; preds = %104
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %295

116:                                              ; preds = %104
  %117 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %118 = getelementptr inbounds i8, ptr %117, i64 96
  %119 = load i32, ptr %118, align 8
  %120 = and i32 %119, -16776961
  %121 = or disjoint i32 %120, 1961216
  store i32 %121, ptr %118, align 8
  %122 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %123 = getelementptr inbounds i8, ptr %122, i64 32
  store ptr @.str.3, ptr %123, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %124 = load ptr, ptr %12, align 8, !tbaa !18
  %125 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %124, ptr noundef nonnull @.str.253, ptr noundef nonnull @.str.254)
  %126 = icmp eq i32 %125, 0
  br i1 %126, label %127, label %128

127:                                              ; preds = %116
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %295

128:                                              ; preds = %116
  %129 = load ptr, ptr %12, align 8, !tbaa !18
  %130 = call noundef ptr @_ZL12GetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfos(ptr noundef nonnull %29, ptr noundef %129)
  %131 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %132 = getelementptr inbounds i8, ptr %131, i64 96
  %133 = load i32, ptr %132, align 8
  %134 = and i32 %133, -16776961
  %135 = or disjoint i32 %134, 1961728
  store i32 %135, ptr %132, align 8
  %136 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %137 = getelementptr inbounds i8, ptr %136, i64 32
  store ptr @.str.3, ptr %137, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %138 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %130, ptr noundef nonnull @.str.255, ptr noundef nonnull @.str.256)
  %139 = icmp eq i32 %138, 0
  br i1 %139, label %140, label %141

140:                                              ; preds = %128
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %295

141:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  %142 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %143 = getelementptr inbounds i8, ptr %142, i64 96
  %144 = load i32, ptr %143, align 8
  %145 = and i32 %144, -16776961
  %146 = or disjoint i32 %145, 1965568
  store i32 %146, ptr %143, align 8
  %147 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %148 = getelementptr inbounds i8, ptr %147, i64 32
  store ptr @.str.3, ptr %148, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #5
  store i32 0, ptr %16, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  %149 = load ptr, ptr %12, align 8, !tbaa !18
  %150 = call i32 @Longtail_CreateVersionIndex(ptr noundef nonnull %29, ptr noundef %89, ptr noundef %90, ptr noundef %91, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %33, ptr noundef %149, ptr noundef %130, i32 noundef 8192, i32 noundef 1, ptr noundef nonnull %15)
  store i32 %150, ptr %17, align 4, !tbaa !16
  %151 = 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.901, ptr noundef null)
  %152 = icmp eq i32 %151, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  br i1 %152, label %153, label %154

153:                                              ; preds = %141
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %294

154:                                              ; preds = %141
  %155 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %156 = getelementptr inbounds i8, ptr %155, i64 96
  %157 = load i32, ptr %156, align 8
  %158 = and i32 %157, -16776961
  %159 = or disjoint i32 %158, 1965824
  store i32 %159, ptr %156, align 8
  %160 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %161 = getelementptr inbounds i8, ptr %160, i64 32
  store ptr @.str.3, ptr %161, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %162 = load ptr, ptr %15, align 8, !tbaa !18
  %163 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %162, ptr noundef nonnull @.str.259, ptr noundef nonnull @.str.260)
  %164 = icmp eq i32 %163, 0
  br i1 %164, label %165, label %166

165:                                              ; preds = %154
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %294

166:                                              ; preds = %154
  %167 = load ptr, ptr %15, align 8, !tbaa !18
  %168 = getelementptr inbounds i8, ptr %167, i64 32
  %169 = load ptr, ptr %168, align 8, !tbaa !19
  %170 = load i32, ptr %169, align 4, !tbaa !16
  %171 = getelementptr inbounds i8, ptr %167, i64 96
  %172 = load ptr, ptr %171, align 8, !tbaa !21
  %173 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %92, i32 noundef %170, ptr noundef %172, i32 noundef 0)
  %174 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %175 = getelementptr inbounds i8, ptr %174, i64 96
  %176 = load i32, ptr %175, align 8
  %177 = and i32 %176, -16776961
  %178 = or disjoint i32 %177, 1967616
  store i32 %178, ptr %175, align 8
  %179 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %180 = getelementptr inbounds i8, ptr %179, i64 32
  store ptr @.str.3, ptr %180, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %181 = call noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StoreIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %173, ptr noundef nonnull @.str.484, ptr noundef nonnull @.str.909)
  %182 = icmp eq i32 %181, 0
  br i1 %182, label %183, label %184

183:                                              ; preds = %166
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %294

184:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  %185 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %186 = getelementptr inbounds i8, ptr %185, i64 96
  %187 = load i32, ptr %186, align 8
  %188 = and i32 %187, -16776961
  %189 = or disjoint i32 %188, 1969920
  store i32 %189, ptr %186, align 8
  %190 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %191 = getelementptr inbounds i8, ptr %190, i64 32
  store ptr @.str.3, ptr %191, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  store i32 0, ptr %19, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  %192 = load ptr, ptr %15, align 8, !tbaa !18
  %193 = call i32 @Longtail_CreateMissingContent(ptr noundef %89, ptr noundef %173, ptr noundef %192, i32 noundef 8192, i32 noundef 11, ptr noundef nonnull %18)
  store i32 %193, ptr %20, align 4, !tbaa !16
  %194 = 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.910, ptr noundef null)
  %195 = icmp eq i32 %194, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  br i1 %195, label %196, label %197

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

197:                                              ; preds = %184
  call void @Longtail_Free(ptr noundef %173)
  %198 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %199 = getelementptr inbounds i8, ptr %198, i64 96
  %200 = load i32, ptr %199, align 8
  %201 = and i32 %200, -16776961
  %202 = or disjoint i32 %201, 1973504
  store i32 %202, ptr %199, align 8
  %203 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %204 = getelementptr inbounds i8, ptr %203, i64 32
  store ptr @.str.3, ptr %204, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  store i32 0, ptr %21, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  %205 = load ptr, ptr %18, align 8, !tbaa !18
  %206 = load ptr, ptr %15, align 8, !tbaa !18
  %207 = call i32 @Longtail_WriteContent(ptr noundef nonnull %29, ptr noundef %92, ptr noundef %91, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %205, ptr noundef %206, ptr noundef %33)
  store i32 %207, ptr %22, align 4, !tbaa !16
  %208 = 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) %21, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.911, ptr noundef null)
  %209 = icmp eq i32 %208, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  br i1 %209, label %210, label %211

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

211:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #5
  call void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %23)
  %212 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %213 unwind label %229

213:                                              ; preds = %211
  %214 = getelementptr inbounds i8, ptr %212, i64 96
  %215 = load i32, ptr %214, align 8
  %216 = and i32 %215, -16776961
  %217 = or disjoint i32 %216, 1974272
  store i32 %217, ptr %214, align 8
  %218 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %219 unwind label %229

219:                                              ; preds = %213
  %220 = getelementptr inbounds i8, ptr %218, i64 32
  store ptr @.str.3, ptr %220, align 8, !tbaa !11
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %221 unwind label %229

221:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  store i32 0, ptr %24, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  %222 = getelementptr inbounds i8, ptr %92, i64 56
  %223 = load ptr, ptr %222, align 8, !tbaa !22
  %224 = invoke noundef i32 %223(ptr noundef nonnull %92, ptr noundef nonnull %23)
          to label %225 unwind label %231

225:                                              ; preds = %221
  store i32 %224, ptr %25, align 4, !tbaa !16
  %226 = 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) %25, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.291, ptr noundef null)
          to label %227 unwind label %231

227:                                              ; preds = %225
  %228 = icmp eq i32 %226, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  br i1 %228, label %.invoke, label %233

229:                                              ; preds = %.invoke, %291, %290, %289, %288, %287, %286, %284, %282, %280, %278, %276, %274, %262, %256, %254, %252, %251, %242, %236, %234, %233, %219, %213, %211
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %297

231:                                              ; preds = %225, %221
  %232 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  br label %297

233:                                              ; preds = %227
  invoke void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %23)
          to label %234 unwind label %229

234:                                              ; preds = %233
  %235 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %236 unwind label %229

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

242:                                              ; preds = %236
  %243 = getelementptr inbounds i8, ptr %241, i64 32
  store ptr @.str.3, ptr %243, align 8, !tbaa !11
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %244 unwind label %229

244:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #5
  store i32 0, ptr %26, align 4, !tbaa !16
  %245 = getelementptr inbounds i8, ptr %23, i64 24
  %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) %26, ptr noundef nonnull align 4 dereferenceable(4) %245, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.292, ptr noundef null)
          to label %247 unwind label %249

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

249:                                              ; preds = %244
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  br label %297

251:                                              ; preds = %247
  invoke void @Longtail_Free(ptr noundef %130)
          to label %252 unwind label %229

252:                                              ; preds = %251
  %253 = load ptr, ptr %12, align 8, !tbaa !18
  invoke void @Longtail_Free(ptr noundef %253)
          to label %254 unwind label %229

254:                                              ; preds = %252
  %255 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %256 unwind label %229

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

262:                                              ; preds = %256
  %263 = getelementptr inbounds i8, ptr %261, i64 32
  store ptr @.str.3, ptr %263, align 8, !tbaa !11
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %264 unwind label %229

264:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  store i32 0, ptr %27, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #5
  %265 = load ptr, ptr %18, align 8, !tbaa !18
  %266 = load ptr, ptr %15, align 8, !tbaa !18
  %267 = invoke i32 @Longtail_WriteVersion(ptr noundef nonnull %92, ptr noundef nonnull %29, ptr noundef %91, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %265, ptr noundef %266, ptr noundef %35, i32 noundef 1)
          to label %268 unwind label %272

268:                                              ; preds = %264
  store i32 %267, ptr %28, align 4, !tbaa !16
  %269 = 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) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.912, ptr noundef null)
          to label %270 unwind label %272

270:                                              ; preds = %268
  %271 = icmp eq i32 %269, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  br i1 %271, label %.invoke, label %274

.invoke:                                          ; preds = %227, %270, %247
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %292 unwind label %229

272:                                              ; preds = %268, %264
  %273 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  br label %297

274:                                              ; preds = %270
  %275 = load ptr, ptr %18, align 8, !tbaa !18
  invoke void @Longtail_Free(ptr noundef %275)
          to label %276 unwind label %229

276:                                              ; preds = %274
  store ptr null, ptr %18, align 8, !tbaa !18
  %277 = load ptr, ptr %15, align 8, !tbaa !18
  invoke void @Longtail_Free(ptr noundef %277)
          to label %278 unwind label %229

278:                                              ; preds = %276
  store ptr null, ptr %15, align 8, !tbaa !18
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %92)
          to label %279 unwind label %229

279:                                              ; preds = %278
  %.not75 = icmp eq ptr %91, null
  br i1 %.not75, label %281, label %280

280:                                              ; preds = %279
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %91)
          to label %281 unwind label %229

281:                                              ; preds = %280, %279
  %.not76 = icmp eq ptr %90, null
  br i1 %.not76, label %283, label %282

282:                                              ; preds = %281
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %90)
          to label %283 unwind label %229

283:                                              ; preds = %282, %281
  %.not77 = icmp eq ptr %89, null
  br i1 %.not77, label %285, label %284

284:                                              ; preds = %283
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %89)
          to label %285 unwind label %229

285:                                              ; preds = %284, %283
  %.not78 = icmp eq ptr %88, null
  br i1 %.not78, label %287, label %286

286:                                              ; preds = %285
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %88)
          to label %287 unwind label %229

287:                                              ; preds = %285, %286
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %29)
          to label %288 unwind label %229

288:                                              ; preds = %287
  invoke void @Longtail_Free(ptr noundef %30)
          to label %289 unwind label %229

289:                                              ; preds = %288
  invoke void @Longtail_Free(ptr noundef %33)
          to label %290 unwind label %229

290:                                              ; preds = %289
  invoke void @Longtail_Free(ptr noundef %35)
          to label %291 unwind label %229

291:                                              ; preds = %290
  invoke void @Longtail_Free(ptr noundef %37)
          to label %292 unwind label %229

292:                                              ; preds = %.invoke, %291
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  br label %293

293:                                              ; preds = %292, %210, %196
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  br label %294

294:                                              ; preds = %183, %293, %165, %153
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  br label %295

295:                                              ; preds = %140, %294, %127, %115
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  br label %296

296:                                              ; preds = %103, %295, %86, %72, %60, %48
  ret void

297:                                              ; preds = %272, %249, %231, %229
  %.pn = phi { ptr, i32 } [ %230, %229 ], [ %273, %272 ], [ %250, %249 ], [ %232, %231 ]
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  resume { ptr, i32 } %.pn
}

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 = { 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, !8, i64 96}
!6 = !{!"_ZTS19Longtail_StorageAPI", !7, i64 0, !8, i64 8, !8, i64 16, !8, i64 24, !8, i64 32, !8, i64 40, !8, i64 48, !8, i64 56, !8, i64 64, !8, i64 72, !8, i64 80, !8, i64 88, !8, i64 96, !8, i64 104, !8, i64 112, !8, i64 120, !8, i64 128, !8, i64 136, !8, i64 144, !8, i64 152, !8, i64 160, !8, i64 168, !8, i64 176, !8, i64 184, !8, i64 192, !8, i64 200, !8, i64 208}
!7 = !{!"_ZTS12Longtail_API", !8, i64 0}
!8 = !{!"any pointer", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!12, !8, i64 32}
!12 = !{!"_ZTS15jc_test_fixture", !8, i64 8, !8, i64 16, !8, i64 24, !8, i64 32, !8, i64 40, !8, i64 48, !8, i64 56, !13, i64 64, !14, i64 88, !14, i64 91, !14, i64 91, !14, i64 91, !14, i64 91, !14, i64 92, !14, i64 96, !14, i64 97, !14, i64 99, !14, i64 100}
!13 = !{!"_ZTS13jc_test_stats", !14, i64 0, !14, i64 4, !14, i64 6, !14, i64 8, !14, i64 12, !15, i64 16}
!14 = !{!"int", !9, i64 0}
!15 = !{!"long", !9, i64 0}
!16 = !{!14, !14, i64 0}
!17 = !{!6, !8, i64 80}
!18 = !{!8, !8, i64 0}
!19 = !{!20, !8, i64 32}
!20 = !{!"_ZTS21Longtail_VersionIndex", !8, i64 0, !8, i64 8, !8, i64 16, !8, i64 24, !8, i64 32, !8, i64 40, !8, i64 48, !8, i64 56, !8, i64 64, !8, i64 72, !8, i64 80, !8, i64 88, !8, i64 96, !8, i64 104, !8, i64 112, !8, i64 120, !14, i64 128, !8, i64 136, !8, i64 144}
!21 = !{!20, !8, i64 96}
!22 = !{!23, !8, i64 56}
!23 = !{!"_ZTS22Longtail_BlockStoreAPI", !7, i64 0, !8, i64 8, !8, i64 16, !8, i64 24, !8, i64 32, !8, i64 40, !8, i64 48, !8, i64 56}


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