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

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

%struct.jc_test_fixture = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.jc_test_stats, i32, i32, i32, i32 }
%struct.jc_test_stats = type { i32, i32, i32, i32, i64 }
%struct.Longtail_VersionIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr }
%struct.Longtail_FileInfos = type { i32, i32, ptr, ptr, ptr, ptr }
%struct.Longtail_StorageAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_API = type { ptr }
%struct.Longtail_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_CompressionRegistryAPI = type { %struct.Longtail_API, 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 }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [23 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.265 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.677 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.679 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.694 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.724 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.725 = external hidden unnamed_addr constant [178 x i8], align 1
@.str.726 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.727 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.728 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.729 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.730 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.731 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.732 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.733 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.734 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.735 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.736 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.737 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.738 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.740 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.741 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.742 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.743 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.744 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.745 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.746 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.747 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.748 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.749 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.750 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.751 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.752 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.753 = external hidden unnamed_addr constant [6 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

declare ptr @Longtail_Alloc(ptr noundef, i64 noundef) #1

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

declare void @_Z28jc_test_increment_assertionsv() #1

declare void @_Z21jc_test_set_test_faili(i32 noundef) #1

declare void @Longtail_Free(ptr noundef) #1

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

declare noundef i32 @_Z17jc_test_cmp_STREQPKcS0_S0_S0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

; 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

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

declare void @Longtail_DisposeAPI(ptr noundef) #1

declare ptr @Longtail_CreateBlake3HashAPI() #1

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

declare ptr @Longtail_CreateHPCDCChunkerAPI() #1

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

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

; 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 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) #1

; 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_CreateInMemStorageAPI() #1

declare ptr @Longtail_CreateFullCompressionRegistry() #1

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

declare ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef, ptr noundef) #1

; 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) #1

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN38Longtail_TestLongtailBlockFS__TestCase8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i64, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i64, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca i64, align 8
  %40 = alloca ptr, align 8
  %41 = alloca i64, align 8
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i64, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca ptr, align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i64, align 8
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca ptr, align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca ptr, align 8
  %76 = alloca ptr, align 8
  %77 = alloca i64, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %78 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #4
  %79 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %79, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #4
  %80 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %80, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #4
  %81 = call ptr @Longtail_CreateHPCDCChunkerAPI()
  store ptr %81, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #4
  %82 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 8, i32 noundef 0)
  store ptr %82, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #4
  %83 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %83, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #4
  %84 = load ptr, ptr %6, align 8, !tbaa !5
  %85 = load ptr, ptr %3, align 8, !tbaa !5
  %86 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %84, ptr noundef %85, ptr noundef @.str.694, ptr noundef null, i32 noundef 0)
  store ptr %86, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #4
  %87 = load ptr, ptr %8, align 8, !tbaa !5
  %88 = load ptr, ptr %7, align 8, !tbaa !5
  %89 = call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %87, ptr noundef %88)
  store ptr %89, ptr %9, align 8, !tbaa !5
  %90 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZL19CreateRandomContentP19Longtail_StorageAPIPKcjjj(ptr noundef %90, ptr noundef @.str.677, i32 noundef 48, i32 noundef 0, i32 noundef 28672)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #4
  br label %91

91:                                               ; preds = %1
  %92 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %93 = getelementptr inbounds %struct.jc_test_fixture, ptr %92, i32 0, i32 11
  %94 = load i32, ptr %93, align 8
  %95 = and i32 %94, -16776961
  %96 = or i32 %95, 1528576
  store i32 %96, ptr %93, align 8
  %97 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %98 = getelementptr inbounds %struct.jc_test_fixture, ptr %97, i32 0, i32 4
  store ptr @.str.3, ptr %98, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #4
  store i32 0, ptr %11, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  %99 = load ptr, ptr %3, align 8, !tbaa !5
  %100 = load ptr, ptr %6, align 8, !tbaa !5
  %101 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %99, ptr noundef %100, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.677, ptr noundef %10)
  store i32 %101, ptr %12, align 4, !tbaa !14
  %102 = 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.724, ptr noundef null)
  %103 = icmp eq i32 %102, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #4
  br i1 %103, label %104, label %105

104:                                              ; preds = %91
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1022

105:                                              ; preds = %91
  br label %106

106:                                              ; preds = %105
  br label %107

107:                                              ; preds = %106
  br label %108

108:                                              ; preds = %107
  %109 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %110 = getelementptr inbounds %struct.jc_test_fixture, ptr %109, i32 0, i32 11
  %111 = load i32, ptr %110, align 8
  %112 = and i32 %111, -16776961
  %113 = or i32 %112, 1528832
  store i32 %113, ptr %110, align 8
  %114 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %115 = getelementptr inbounds %struct.jc_test_fixture, ptr %114, i32 0, i32 4
  store ptr @.str.3, ptr %115, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %116 = load ptr, ptr %10, align 8, !tbaa !5
  %117 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %116, ptr noundef @.str.253, ptr noundef @.str.679)
  %118 = icmp eq i32 %117, 0
  br i1 %118, label %119, label %120

119:                                              ; preds = %108
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1022

120:                                              ; preds = %108
  br label %121

121:                                              ; preds = %120
  br label %122

122:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  %123 = load ptr, ptr %3, align 8, !tbaa !5
  %124 = load ptr, ptr %10, align 8, !tbaa !5
  %125 = call noundef ptr @_ZL12SetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfosj(ptr noundef %123, ptr noundef %124, i32 noundef 0)
  store ptr %125, ptr %14, align 8, !tbaa !5
  br label %126

126:                                              ; preds = %122
  %127 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %128 = getelementptr inbounds %struct.jc_test_fixture, ptr %127, i32 0, i32 11
  %129 = load i32, ptr %128, align 8
  %130 = and i32 %129, -16776961
  %131 = or i32 %130, 1529600
  store i32 %131, ptr %128, align 8
  %132 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %133 = getelementptr inbounds %struct.jc_test_fixture, ptr %132, i32 0, i32 4
  store ptr @.str.3, ptr %133, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %134 = load ptr, ptr %14, align 8, !tbaa !5
  %135 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %134, ptr noundef @.str.255, ptr noundef @.str.256)
  %136 = icmp eq i32 %135, 0
  br i1 %136, label %137, label %138

137:                                              ; preds = %126
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1021

138:                                              ; preds = %126
  br label %139

139:                                              ; preds = %138
  br label %140

140:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  br label %141

141:                                              ; preds = %140
  %142 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %143 = getelementptr inbounds %struct.jc_test_fixture, ptr %142, i32 0, i32 11
  %144 = load i32, ptr %143, align 8
  %145 = and i32 %144, -16776961
  %146 = or i32 %145, 1533440
  store i32 %146, ptr %143, align 8
  %147 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %148 = getelementptr inbounds %struct.jc_test_fixture, ptr %147, i32 0, i32 4
  store ptr @.str.3, ptr %148, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  store i32 0, ptr %16, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  %149 = load ptr, ptr %3, align 8, !tbaa !5
  %150 = load ptr, ptr %4, align 8, !tbaa !5
  %151 = load ptr, ptr %5, align 8, !tbaa !5
  %152 = load ptr, ptr %6, align 8, !tbaa !5
  %153 = load ptr, ptr %10, align 8, !tbaa !5
  %154 = load ptr, ptr %14, align 8, !tbaa !5
  %155 = call i32 @Longtail_CreateVersionIndex(ptr noundef %149, ptr noundef %150, ptr noundef %151, ptr noundef %152, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef @.str.677, ptr noundef %153, ptr noundef %154, i32 noundef 256, i32 noundef 0, ptr noundef %15)
  store i32 %155, ptr %17, align 4, !tbaa !14
  %156 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef @.str.46, ptr noundef @.str.725, ptr noundef null)
  %157 = icmp eq i32 %156, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  br i1 %157, label %158, label %159

158:                                              ; preds = %141
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1020

159:                                              ; preds = %141
  br label %160

160:                                              ; preds = %159
  br label %161

161:                                              ; preds = %160
  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, 1533696
  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 !9
  call void @_Z28jc_test_increment_assertionsv()
  %170 = load ptr, ptr %15, align 8, !tbaa !5
  %171 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %170, ptr noundef @.str.259, ptr noundef @.str.260)
  %172 = icmp eq i32 %171, 0
  br i1 %172, label %173, label %174

173:                                              ; preds = %162
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1020

174:                                              ; preds = %162
  br label %175

175:                                              ; preds = %174
  br label %176

176:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  %177 = load ptr, ptr %9, align 8, !tbaa !5
  %178 = load ptr, ptr %15, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %178, i32 0, i32 4
  %180 = load ptr, ptr %179, align 8, !tbaa !15
  %181 = load i32, ptr %180, align 4, !tbaa !14
  %182 = load ptr, ptr %15, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %182, i32 0, i32 12
  %184 = load ptr, ptr %183, align 8, !tbaa !17
  %185 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %177, i32 noundef %181, ptr noundef %184, i32 noundef 0)
  store ptr %185, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #4
  br label %186

186:                                              ; preds = %176
  %187 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %188 = getelementptr inbounds %struct.jc_test_fixture, ptr %187, i32 0, i32 11
  %189 = load i32, ptr %188, align 8
  %190 = and i32 %189, -16776961
  %191 = or i32 %190, 1536512
  store i32 %191, ptr %188, align 8
  %192 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %193 = getelementptr inbounds %struct.jc_test_fixture, ptr %192, i32 0, i32 4
  store ptr @.str.3, ptr %193, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  store i32 0, ptr %20, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  %194 = load ptr, ptr %4, align 8, !tbaa !5
  %195 = load ptr, ptr %18, align 8, !tbaa !5
  %196 = load ptr, ptr %15, align 8, !tbaa !5
  %197 = call i32 @Longtail_CreateMissingContent(ptr noundef %194, ptr noundef %195, ptr noundef %196, i32 noundef 4096, i32 noundef 16, ptr noundef %19)
  store i32 %197, ptr %21, align 4, !tbaa !14
  %198 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef @.str.46, ptr noundef @.str.412, ptr noundef null)
  %199 = icmp eq i32 %198, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  br i1 %199, label %200, label %201

200:                                              ; preds = %186
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1019

201:                                              ; preds = %186
  br label %202

202:                                              ; preds = %201
  br label %203

203:                                              ; preds = %202
  br label %204

204:                                              ; preds = %203
  %205 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %206 = getelementptr inbounds %struct.jc_test_fixture, ptr %205, i32 0, i32 11
  %207 = load i32, ptr %206, align 8
  %208 = and i32 %207, -16776961
  %209 = or i32 %208, 1539328
  store i32 %209, ptr %206, align 8
  %210 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %211 = getelementptr inbounds %struct.jc_test_fixture, ptr %210, i32 0, i32 4
  store ptr @.str.3, ptr %211, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  store i32 0, ptr %22, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  %212 = load ptr, ptr %3, align 8, !tbaa !5
  %213 = load ptr, ptr %9, align 8, !tbaa !5
  %214 = load ptr, ptr %6, align 8, !tbaa !5
  %215 = load ptr, ptr %19, align 8, !tbaa !5
  %216 = load ptr, ptr %15, align 8, !tbaa !5
  %217 = call i32 @Longtail_WriteContent(ptr noundef %212, ptr noundef %213, ptr noundef %214, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %215, ptr noundef %216, ptr noundef @.str.677)
  store i32 %217, ptr %23, align 4, !tbaa !14
  %218 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef @.str.46, ptr noundef @.str.726, ptr noundef null)
  %219 = icmp eq i32 %218, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  br i1 %219, label %220, label %221

220:                                              ; preds = %204
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1019

221:                                              ; preds = %204
  br label %222

222:                                              ; preds = %221
  br label %223

223:                                              ; preds = %222
  %224 = load ptr, ptr %19, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %224)
  store ptr null, ptr %19, align 8, !tbaa !5
  %225 = load ptr, ptr %18, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %225)
  %226 = load ptr, ptr %9, align 8, !tbaa !5
  %227 = load ptr, ptr %15, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %227, i32 0, i32 4
  %229 = load ptr, ptr %228, align 8, !tbaa !15
  %230 = load i32, ptr %229, align 4, !tbaa !14
  %231 = load ptr, ptr %15, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %231, i32 0, i32 12
  %233 = load ptr, ptr %232, align 8, !tbaa !17
  %234 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %226, i32 noundef %230, ptr noundef %233, i32 noundef 0)
  store ptr %234, ptr %18, align 8, !tbaa !5
  br label %235

235:                                              ; preds = %223
  %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, 1541376
  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 !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  store i32 0, ptr %24, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  %243 = load ptr, ptr %18, align 8, !tbaa !5
  %244 = load ptr, ptr %15, align 8, !tbaa !5
  %245 = call i32 @Longtail_ValidateStore(ptr noundef %243, ptr noundef %244)
  store i32 %245, ptr %25, align 4, !tbaa !14
  %246 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef @.str.46, ptr noundef @.str.727, ptr noundef null)
  %247 = icmp eq i32 %246, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  br i1 %247, label %248, label %249

248:                                              ; preds = %235
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1019

249:                                              ; preds = %235
  br label %250

250:                                              ; preds = %249
  br label %251

251:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  %252 = load ptr, ptr %4, align 8, !tbaa !5
  %253 = load ptr, ptr %6, align 8, !tbaa !5
  %254 = load ptr, ptr %9, align 8, !tbaa !5
  %255 = load ptr, ptr %18, align 8, !tbaa !5
  %256 = load ptr, ptr %15, align 8, !tbaa !5
  %257 = call ptr @Longtail_CreateBlockStoreStorageAPI(ptr noundef %252, ptr noundef %253, ptr noundef %254, ptr noundef %255, ptr noundef %256)
  store ptr %257, ptr %26, align 8, !tbaa !5
  br label %258

258:                                              ; preds = %251
  %259 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %260 = getelementptr inbounds %struct.jc_test_fixture, ptr %259, i32 0, i32 11
  %261 = load i32, ptr %260, align 8
  %262 = and i32 %261, -16776961
  %263 = or i32 %262, 1543936
  store i32 %263, ptr %260, align 8
  %264 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %265 = getelementptr inbounds %struct.jc_test_fixture, ptr %264, i32 0, i32 4
  store ptr @.str.3, ptr %265, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %266 = load ptr, ptr %26, align 8, !tbaa !5
  %267 = call noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StorageAPIS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %266, ptr noundef @.str.728, ptr noundef @.str.729)
  %268 = icmp eq i32 %267, 0
  br i1 %268, label %269, label %270

269:                                              ; preds = %258
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1018

270:                                              ; preds = %258
  br label %271

271:                                              ; preds = %270
  br label %272

272:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  br label %273

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

286:                                              ; preds = %273
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1017

287:                                              ; preds = %273
  br label %288

288:                                              ; preds = %287
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289
  %291 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %292 = getelementptr inbounds %struct.jc_test_fixture, ptr %291, i32 0, i32 11
  %293 = load i32, ptr %292, align 8
  %294 = and i32 %293, -16776961
  %295 = or i32 %294, 1544960
  store i32 %295, ptr %292, align 8
  %296 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %297 = getelementptr inbounds %struct.jc_test_fixture, ptr %296, i32 0, i32 4
  store ptr @.str.3, ptr %297, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %298 = load ptr, ptr %27, align 8, !tbaa !5
  %299 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %298, ptr noundef @.str.253, ptr noundef @.str.731)
  %300 = icmp eq i32 %299, 0
  br i1 %300, label %301, label %302

301:                                              ; preds = %290
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1017

302:                                              ; preds = %290
  br label %303

303:                                              ; preds = %302
  br label %304

304:                                              ; preds = %303
  br label %305

305:                                              ; preds = %304
  %306 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %307 = getelementptr inbounds %struct.jc_test_fixture, ptr %306, i32 0, i32 11
  %308 = load i32, ptr %307, align 8
  %309 = and i32 %308, -16776961
  %310 = or i32 %309, 1545216
  store i32 %310, ptr %307, align 8
  %311 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %312 = getelementptr inbounds %struct.jc_test_fixture, ptr %311, i32 0, i32 4
  store ptr @.str.3, ptr %312, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %313 = load ptr, ptr %10, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %313, i32 0, i32 0
  %315 = load ptr, ptr %27, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %315, i32 0, i32 0
  %317 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %314, ptr noundef nonnull align 4 dereferenceable(4) %316, ptr noundef @.str.732, ptr noundef @.str.733)
  %318 = icmp eq i32 %317, 0
  br i1 %318, label %319, label %320

319:                                              ; preds = %305
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1017

320:                                              ; preds = %305
  br label %321

321:                                              ; preds = %320
  br label %322

322:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #4
  %323 = load ptr, ptr %10, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %323, i32 0, i32 0
  %325 = load i32, ptr %324, align 8, !tbaa !18
  %326 = call i64 @LongtailPrivate_LookupTable_GetSize(i32 noundef %325)
  %327 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %326)
  %328 = load ptr, ptr %10, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %328, i32 0, i32 0
  %330 = load i32, ptr %329, align 8, !tbaa !18
  %331 = call ptr @LongtailPrivate_LookupTable_Create(ptr noundef %327, i32 noundef %330, ptr noundef null)
  store ptr %331, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  store i32 0, ptr %31, align 4, !tbaa !14
  br label %332

332:                                              ; preds = %359, %322
  %333 = load i32, ptr %31, align 4, !tbaa !14
  %334 = load ptr, ptr %10, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %334, i32 0, i32 0
  %336 = load i32, ptr %335, align 8, !tbaa !18
  %337 = icmp ult i32 %333, %336
  br i1 %337, label %339, label %338

338:                                              ; preds = %332
  store i32 26, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  br label %362

339:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  %340 = load ptr, ptr %10, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %340, i32 0, i32 5
  %342 = load ptr, ptr %341, align 8, !tbaa !20
  %343 = load ptr, ptr %10, align 8, !tbaa !5
  %344 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %343, i32 0, i32 3
  %345 = load ptr, ptr %344, align 8, !tbaa !21
  %346 = load i32, ptr %31, align 4, !tbaa !14
  %347 = zext i32 %346 to i64
  %348 = getelementptr inbounds i32, ptr %345, i64 %347
  %349 = load i32, ptr %348, align 4, !tbaa !14
  %350 = zext i32 %349 to i64
  %351 = getelementptr inbounds i8, ptr %342, i64 %350
  store ptr %351, ptr %33, align 8, !tbaa !5
  %352 = load ptr, ptr %4, align 8, !tbaa !5
  %353 = load ptr, ptr %33, align 8, !tbaa !5
  %354 = call i32 @LongtailPrivate_GetPathHash(ptr noundef %352, ptr noundef %353, ptr noundef %32)
  %355 = load ptr, ptr %30, align 8, !tbaa !5
  %356 = load i64, ptr %32, align 8, !tbaa !22
  %357 = load i32, ptr %31, align 4, !tbaa !14
  %358 = call i32 @LongtailPrivate_LookupTable_Put(ptr noundef %355, i64 noundef %356, i32 noundef %357)
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  br label %359

359:                                              ; preds = %339
  %360 = load i32, ptr %31, align 4, !tbaa !14
  %361 = add i32 %360, 1
  store i32 %361, ptr %31, align 4, !tbaa !14
  br label %332, !llvm.loop !23

362:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #4
  %363 = load ptr, ptr %27, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %363, i32 0, i32 0
  %365 = load i32, ptr %364, align 8, !tbaa !18
  %366 = call i64 @LongtailPrivate_LookupTable_GetSize(i32 noundef %365)
  %367 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %366)
  %368 = load ptr, ptr %27, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %368, i32 0, i32 0
  %370 = load i32, ptr %369, align 8, !tbaa !18
  %371 = call ptr @LongtailPrivate_LookupTable_Create(ptr noundef %367, i32 noundef %370, ptr noundef null)
  store ptr %371, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  store i32 0, ptr %35, align 4, !tbaa !14
  br label %372

372:                                              ; preds = %419, %362
  %373 = load i32, ptr %35, align 4, !tbaa !14
  %374 = load ptr, ptr %27, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %374, i32 0, i32 0
  %376 = load i32, ptr %375, align 8, !tbaa !18
  %377 = icmp ult i32 %373, %376
  br i1 %377, label %379, label %378

378:                                              ; preds = %372
  store i32 29, ptr %13, align 4
  br label %422

379:                                              ; preds = %372
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #4
  %380 = load ptr, ptr %27, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %380, i32 0, i32 5
  %382 = load ptr, ptr %381, align 8, !tbaa !20
  %383 = load ptr, ptr %27, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %383, i32 0, i32 3
  %385 = load ptr, ptr %384, align 8, !tbaa !21
  %386 = load i32, ptr %35, align 4, !tbaa !14
  %387 = zext i32 %386 to i64
  %388 = getelementptr inbounds i32, ptr %385, i64 %387
  %389 = load i32, ptr %388, align 4, !tbaa !14
  %390 = zext i32 %389 to i64
  %391 = getelementptr inbounds i8, ptr %382, i64 %390
  store ptr %391, ptr %37, align 8, !tbaa !5
  %392 = load ptr, ptr %4, align 8, !tbaa !5
  %393 = load ptr, ptr %37, align 8, !tbaa !5
  %394 = call i32 @LongtailPrivate_GetPathHash(ptr noundef %392, ptr noundef %393, ptr noundef %36)
  %395 = load ptr, ptr %34, align 8, !tbaa !5
  %396 = load i64, ptr %36, align 8, !tbaa !22
  %397 = load i32, ptr %35, align 4, !tbaa !14
  %398 = call i32 @LongtailPrivate_LookupTable_Put(ptr noundef %395, i64 noundef %396, i32 noundef %397)
  br label %399

399:                                              ; preds = %379
  %400 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %401 = getelementptr inbounds %struct.jc_test_fixture, ptr %400, i32 0, i32 11
  %402 = load i32, ptr %401, align 8
  %403 = and i32 %402, -16776961
  %404 = or i32 %403, 1549568
  store i32 %404, ptr %401, align 8
  %405 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %406 = getelementptr inbounds %struct.jc_test_fixture, ptr %405, i32 0, i32 4
  store ptr @.str.3, ptr %406, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %407 = load ptr, ptr %30, align 8, !tbaa !5
  %408 = load i64, ptr %36, align 8, !tbaa !22
  %409 = call ptr @LongtailPrivate_LookupTable_Get(ptr noundef %407, i64 noundef %408)
  %410 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %409, ptr noundef @.str.255, ptr noundef @.str.734)
  %411 = icmp eq i32 %410, 0
  br i1 %411, label %412, label %413

412:                                              ; preds = %399
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %416

413:                                              ; preds = %399
  br label %414

414:                                              ; preds = %413
  br label %415

415:                                              ; preds = %414
  store i32 0, ptr %13, align 4
  br label %416

416:                                              ; preds = %415, %412
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  %417 = load i32, ptr %13, align 4
  switch i32 %417, label %422 [
    i32 0, label %418
  ]

418:                                              ; preds = %416
  br label %419

419:                                              ; preds = %418
  %420 = load i32, ptr %35, align 4, !tbaa !14
  %421 = add i32 %420, 1
  store i32 %421, ptr %35, align 4, !tbaa !14
  br label %372, !llvm.loop !25

422:                                              ; preds = %416, %378
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  %423 = load i32, ptr %13, align 4
  switch i32 %423, label %1016 [
    i32 29, label %424
  ]

424:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  store i32 0, ptr %38, align 4, !tbaa !14
  br label %425

425:                                              ; preds = %532, %424
  %426 = load i32, ptr %38, align 4, !tbaa !14
  %427 = load ptr, ptr %10, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %427, i32 0, i32 0
  %429 = load i32, ptr %428, align 8, !tbaa !18
  %430 = icmp ult i32 %426, %429
  br i1 %430, label %432, label %431

431:                                              ; preds = %425
  store i32 34, ptr %13, align 4
  br label %535

432:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #4
  %433 = load ptr, ptr %10, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %433, i32 0, i32 5
  %435 = load ptr, ptr %434, align 8, !tbaa !20
  %436 = load ptr, ptr %10, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %436, i32 0, i32 3
  %438 = load ptr, ptr %437, align 8, !tbaa !21
  %439 = load i32, ptr %38, align 4, !tbaa !14
  %440 = zext i32 %439 to i64
  %441 = getelementptr inbounds i32, ptr %438, i64 %440
  %442 = load i32, ptr %441, align 4, !tbaa !14
  %443 = zext i32 %442 to i64
  %444 = getelementptr inbounds i8, ptr %435, i64 %443
  store ptr %444, ptr %40, align 8, !tbaa !5
  %445 = load ptr, ptr %4, align 8, !tbaa !5
  %446 = load ptr, ptr %40, align 8, !tbaa !5
  %447 = call i32 @LongtailPrivate_GetPathHash(ptr noundef %445, ptr noundef %446, ptr noundef %39)
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #4
  %448 = load ptr, ptr %34, align 8, !tbaa !5
  %449 = load i64, ptr %39, align 8, !tbaa !22
  %450 = call ptr @LongtailPrivate_LookupTable_Get(ptr noundef %448, i64 noundef %449)
  %451 = load i32, ptr %450, align 4, !tbaa !14
  %452 = zext i32 %451 to i64
  store i64 %452, ptr %41, align 8, !tbaa !22
  br label %453

453:                                              ; preds = %432
  %454 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %455 = getelementptr inbounds %struct.jc_test_fixture, ptr %454, i32 0, i32 11
  %456 = load i32, ptr %455, align 8
  %457 = and i32 %456, -16776961
  %458 = or i32 %457, 1551872
  store i32 %458, ptr %455, align 8
  %459 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %460 = getelementptr inbounds %struct.jc_test_fixture, ptr %459, i32 0, i32 4
  store ptr @.str.3, ptr %460, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %461 = load ptr, ptr %10, align 8, !tbaa !5
  %462 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %461, i32 0, i32 2
  %463 = load ptr, ptr %462, align 8, !tbaa !26
  %464 = load i32, ptr %38, align 4, !tbaa !14
  %465 = zext i32 %464 to i64
  %466 = getelementptr inbounds i64, ptr %463, i64 %465
  %467 = load ptr, ptr %27, align 8, !tbaa !5
  %468 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %467, i32 0, i32 2
  %469 = load ptr, ptr %468, align 8, !tbaa !26
  %470 = load i64, ptr %41, align 8, !tbaa !22
  %471 = getelementptr inbounds i64, ptr %469, i64 %470
  %472 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %466, ptr noundef nonnull align 8 dereferenceable(8) %471, ptr noundef @.str.735, ptr noundef @.str.736)
  %473 = icmp eq i32 %472, 0
  br i1 %473, label %474, label %475

474:                                              ; preds = %453
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %529

475:                                              ; preds = %453
  br label %476

476:                                              ; preds = %475
  br label %477

477:                                              ; preds = %476
  br label %478

478:                                              ; preds = %477
  %479 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %480 = getelementptr inbounds %struct.jc_test_fixture, ptr %479, i32 0, i32 11
  %481 = load i32, ptr %480, align 8
  %482 = and i32 %481, -16776961
  %483 = or i32 %482, 1552128
  store i32 %483, ptr %480, align 8
  %484 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %485 = getelementptr inbounds %struct.jc_test_fixture, ptr %484, i32 0, i32 4
  store ptr @.str.3, ptr %485, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %486 = load ptr, ptr %10, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %486, i32 0, i32 4
  %488 = load ptr, ptr %487, align 8, !tbaa !27
  %489 = load i32, ptr %38, align 4, !tbaa !14
  %490 = zext i32 %489 to i64
  %491 = getelementptr inbounds i16, ptr %488, i64 %490
  %492 = load ptr, ptr %27, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %492, i32 0, i32 4
  %494 = load ptr, ptr %493, align 8, !tbaa !27
  %495 = load i64, ptr %41, align 8, !tbaa !22
  %496 = getelementptr inbounds i16, ptr %494, i64 %495
  %497 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIttEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 2 dereferenceable(2) %491, ptr noundef nonnull align 2 dereferenceable(2) %496, ptr noundef @.str.737, ptr noundef @.str.738)
  %498 = icmp eq i32 %497, 0
  br i1 %498, label %499, label %500

499:                                              ; preds = %478
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %529

500:                                              ; preds = %478
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  br label %503

503:                                              ; preds = %502
  %504 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %505 = getelementptr inbounds %struct.jc_test_fixture, ptr %504, i32 0, i32 11
  %506 = load i32, ptr %505, align 8
  %507 = and i32 %506, -16776961
  %508 = or i32 %507, 1552384
  store i32 %508, ptr %505, align 8
  %509 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %510 = getelementptr inbounds %struct.jc_test_fixture, ptr %509, i32 0, i32 4
  store ptr @.str.3, ptr %510, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %511 = load ptr, ptr %40, align 8, !tbaa !5
  %512 = load ptr, ptr %27, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %512, i32 0, i32 5
  %514 = load ptr, ptr %513, align 8, !tbaa !20
  %515 = load ptr, ptr %27, align 8, !tbaa !5
  %516 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %515, i32 0, i32 3
  %517 = load ptr, ptr %516, align 8, !tbaa !21
  %518 = load i64, ptr %41, align 8, !tbaa !22
  %519 = getelementptr inbounds i32, ptr %517, i64 %518
  %520 = load i32, ptr %519, align 4, !tbaa !14
  %521 = zext i32 %520 to i64
  %522 = getelementptr inbounds i8, ptr %514, i64 %521
  %523 = call noundef i32 @_Z17jc_test_cmp_STREQPKcS0_S0_S0_(ptr noundef %511, ptr noundef %522, ptr noundef @.str.739, ptr noundef @.str.740)
  %524 = icmp eq i32 %523, 0
  br i1 %524, label %525, label %526

525:                                              ; preds = %503
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %529

526:                                              ; preds = %503
  br label %527

527:                                              ; preds = %526
  br label %528

528:                                              ; preds = %527
  store i32 0, ptr %13, align 4
  br label %529

529:                                              ; preds = %528, %525, %499, %474
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  %530 = load i32, ptr %13, align 4
  switch i32 %530, label %535 [
    i32 0, label %531
  ]

531:                                              ; preds = %529
  br label %532

532:                                              ; preds = %531
  %533 = load i32, ptr %38, align 4, !tbaa !14
  %534 = add i32 %533, 1
  store i32 %534, ptr %38, align 4, !tbaa !14
  br label %425, !llvm.loop !28

535:                                              ; preds = %529, %431
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  %536 = load i32, ptr %13, align 4
  switch i32 %536, label %1016 [
    i32 34, label %537
  ]

537:                                              ; preds = %535
  %538 = load ptr, ptr %34, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %538)
  %539 = load ptr, ptr %30, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %539)
  br label %540

540:                                              ; preds = %537
  %541 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %542 = getelementptr inbounds %struct.jc_test_fixture, ptr %541, i32 0, i32 11
  %543 = load i32, ptr %542, align 8
  %544 = and i32 %543, -16776961
  %545 = or i32 %544, 1553920
  store i32 %545, ptr %542, align 8
  %546 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %547 = getelementptr inbounds %struct.jc_test_fixture, ptr %546, i32 0, i32 4
  store ptr @.str.3, ptr %547, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %548 = load ptr, ptr %27, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %548, i32 0, i32 0
  %550 = load ptr, ptr %15, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %550, i32 0, i32 3
  %552 = load ptr, ptr %551, align 8, !tbaa !29
  %553 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %549, ptr noundef nonnull align 4 dereferenceable(4) %552, ptr noundef @.str.733, ptr noundef @.str.265)
  %554 = icmp eq i32 %553, 0
  br i1 %554, label %555, label %556

555:                                              ; preds = %540
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %1016

556:                                              ; preds = %540
  br label %557

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557
  %559 = load ptr, ptr %27, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %559)
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  store i32 0, ptr %42, align 4, !tbaa !14
  br label %560

560:                                              ; preds = %958, %558
  %561 = load i32, ptr %42, align 4, !tbaa !14
  %562 = load ptr, ptr %10, align 8, !tbaa !5
  %563 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %562, i32 0, i32 0
  %564 = load i32, ptr %563, align 8, !tbaa !18
  %565 = icmp ult i32 %561, %564
  br i1 %565, label %567, label %566

566:                                              ; preds = %560
  store i32 45, ptr %13, align 4
  br label %961

567:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #4
  %568 = load ptr, ptr %10, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %568, i32 0, i32 5
  %570 = load ptr, ptr %569, align 8, !tbaa !20
  %571 = load ptr, ptr %10, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %571, i32 0, i32 3
  %573 = load ptr, ptr %572, align 8, !tbaa !21
  %574 = load i32, ptr %42, align 4, !tbaa !14
  %575 = zext i32 %574 to i64
  %576 = getelementptr inbounds i32, ptr %573, i64 %575
  %577 = load i32, ptr %576, align 4, !tbaa !14
  %578 = zext i32 %577 to i64
  %579 = getelementptr inbounds i8, ptr %570, i64 %578
  store ptr %579, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #4
  %580 = load ptr, ptr %3, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %580, i32 0, i32 12
  %582 = load ptr, ptr %581, align 8, !tbaa !30
  %583 = load ptr, ptr %3, align 8, !tbaa !5
  %584 = load ptr, ptr %43, align 8, !tbaa !5
  %585 = call noundef ptr %582(ptr noundef %583, ptr noundef @.str.677, ptr noundef %584)
  store ptr %585, ptr %44, align 8, !tbaa !5
  %586 = load ptr, ptr %3, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %586, i32 0, i32 14
  %588 = load ptr, ptr %587, align 8, !tbaa !33
  %589 = load ptr, ptr %3, align 8, !tbaa !5
  %590 = load ptr, ptr %44, align 8, !tbaa !5
  %591 = call noundef i32 %588(ptr noundef %589, ptr noundef %590)
  %592 = icmp ne i32 %591, 0
  br i1 %592, label %593, label %953

593:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #4
  br label %594

594:                                              ; preds = %593
  %595 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %596 = getelementptr inbounds %struct.jc_test_fixture, ptr %595, i32 0, i32 11
  %597 = load i32, ptr %596, align 8
  %598 = and i32 %597, -16776961
  %599 = or i32 %598, 1556480
  store i32 %599, ptr %596, align 8
  %600 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %601 = getelementptr inbounds %struct.jc_test_fixture, ptr %600, i32 0, i32 4
  store ptr @.str.3, ptr %601, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #4
  store i32 0, ptr %46, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  %602 = load ptr, ptr %26, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %602, i32 0, i32 1
  %604 = load ptr, ptr %603, align 8, !tbaa !34
  %605 = load ptr, ptr %26, align 8, !tbaa !5
  %606 = load ptr, ptr %43, align 8, !tbaa !5
  %607 = call noundef i32 %604(ptr noundef %605, ptr noundef %606, ptr noundef %45)
  store i32 %607, ptr %47, align 4, !tbaa !14
  %608 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef @.str.46, ptr noundef @.str.741, ptr noundef null)
  %609 = icmp eq i32 %608, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  br i1 %609, label %610, label %611

610:                                              ; preds = %594
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %950

611:                                              ; preds = %594
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #4
  br label %614

614:                                              ; preds = %613
  %615 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %616 = getelementptr inbounds %struct.jc_test_fixture, ptr %615, i32 0, i32 11
  %617 = load i32, ptr %616, align 8
  %618 = and i32 %617, -16776961
  %619 = or i32 %618, 1556992
  store i32 %619, ptr %616, align 8
  %620 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %621 = getelementptr inbounds %struct.jc_test_fixture, ptr %620, i32 0, i32 4
  store ptr @.str.3, ptr %621, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  store i32 0, ptr %49, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  %622 = load ptr, ptr %26, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %622, i32 0, i32 2
  %624 = load ptr, ptr %623, align 8, !tbaa !35
  %625 = load ptr, ptr %26, align 8, !tbaa !5
  %626 = load ptr, ptr %45, align 8, !tbaa !5
  %627 = call noundef i32 %624(ptr noundef %625, ptr noundef %626, ptr noundef %48)
  store i32 %627, ptr %50, align 4, !tbaa !14
  %628 = 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) %49, ptr noundef nonnull align 4 dereferenceable(4) %50, ptr noundef @.str.46, ptr noundef @.str.742, ptr noundef null)
  %629 = icmp eq i32 %628, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  br i1 %629, label %630, label %631

630:                                              ; preds = %614
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %949

631:                                              ; preds = %614
  br label %632

632:                                              ; preds = %631
  br label %633

633:                                              ; preds = %632
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #4
  %634 = load i64, ptr %48, align 8, !tbaa !22
  %635 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %634)
  store ptr %635, ptr %51, align 8, !tbaa !5
  %636 = load i64, ptr %48, align 8, !tbaa !22
  %637 = icmp uge i64 %636, 288
  br i1 %637, label %638, label %754

638:                                              ; preds = %633
  br label %639

639:                                              ; preds = %638
  %640 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %641 = getelementptr inbounds %struct.jc_test_fixture, ptr %640, i32 0, i32 11
  %642 = load i32, ptr %641, align 8
  %643 = and i32 %642, -16776961
  %644 = or i32 %643, 1558016
  store i32 %644, ptr %641, align 8
  %645 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %646 = getelementptr inbounds %struct.jc_test_fixture, ptr %645, i32 0, i32 4
  store ptr @.str.3, ptr %646, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  store i32 0, ptr %52, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  %647 = load ptr, ptr %26, align 8, !tbaa !5
  %648 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %647, i32 0, i32 3
  %649 = load ptr, ptr %648, align 8, !tbaa !36
  %650 = load ptr, ptr %26, align 8, !tbaa !5
  %651 = load ptr, ptr %45, align 8, !tbaa !5
  %652 = load ptr, ptr %51, align 8, !tbaa !5
  %653 = call noundef i32 %649(ptr noundef %650, ptr noundef %651, i64 noundef 0, i64 noundef 32, ptr noundef %652)
  store i32 %653, ptr %53, align 4, !tbaa !14
  %654 = 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) %52, ptr noundef nonnull align 4 dereferenceable(4) %53, ptr noundef @.str.46, ptr noundef @.str.743, ptr noundef null)
  %655 = icmp eq i32 %654, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  br i1 %655, label %656, label %657

656:                                              ; preds = %639
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %948

657:                                              ; preds = %639
  br label %658

658:                                              ; preds = %657
  br label %659

659:                                              ; preds = %658
  br label %660

660:                                              ; preds = %659
  %661 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %662 = getelementptr inbounds %struct.jc_test_fixture, ptr %661, i32 0, i32 11
  %663 = load i32, ptr %662, align 8
  %664 = and i32 %663, -16776961
  %665 = or i32 %664, 1558272
  store i32 %665, ptr %662, align 8
  %666 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %667 = getelementptr inbounds %struct.jc_test_fixture, ptr %666, i32 0, i32 4
  store ptr @.str.3, ptr %667, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  store i32 0, ptr %54, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  %668 = load ptr, ptr %26, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %668, i32 0, i32 3
  %670 = load ptr, ptr %669, align 8, !tbaa !36
  %671 = load ptr, ptr %26, align 8, !tbaa !5
  %672 = load ptr, ptr %45, align 8, !tbaa !5
  %673 = load ptr, ptr %51, align 8, !tbaa !5
  %674 = getelementptr inbounds i8, ptr %673, i64 32
  %675 = call noundef i32 %670(ptr noundef %671, ptr noundef %672, i64 noundef 32, i64 noundef 128, ptr noundef %674)
  store i32 %675, ptr %55, align 4, !tbaa !14
  %676 = 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) %54, ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef @.str.46, ptr noundef @.str.744, ptr noundef null)
  %677 = icmp eq i32 %676, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  br i1 %677, label %678, label %679

678:                                              ; preds = %660
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %948

679:                                              ; preds = %660
  br label %680

680:                                              ; preds = %679
  br label %681

681:                                              ; preds = %680
  br label %682

682:                                              ; preds = %681
  %683 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %684 = getelementptr inbounds %struct.jc_test_fixture, ptr %683, i32 0, i32 11
  %685 = load i32, ptr %684, align 8
  %686 = and i32 %685, -16776961
  %687 = or i32 %686, 1558528
  store i32 %687, ptr %684, align 8
  %688 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %689 = getelementptr inbounds %struct.jc_test_fixture, ptr %688, i32 0, i32 4
  store ptr @.str.3, ptr %689, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  store i32 0, ptr %56, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  %690 = load ptr, ptr %26, align 8, !tbaa !5
  %691 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %690, i32 0, i32 3
  %692 = load ptr, ptr %691, align 8, !tbaa !36
  %693 = load ptr, ptr %26, align 8, !tbaa !5
  %694 = load ptr, ptr %45, align 8, !tbaa !5
  %695 = load ptr, ptr %51, align 8, !tbaa !5
  %696 = getelementptr inbounds i8, ptr %695, i64 160
  %697 = call noundef i32 %692(ptr noundef %693, ptr noundef %694, i64 noundef 160, i64 noundef 96, ptr noundef %696)
  store i32 %697, ptr %57, align 4, !tbaa !14
  %698 = 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) %56, ptr noundef nonnull align 4 dereferenceable(4) %57, ptr noundef @.str.46, ptr noundef @.str.745, ptr noundef null)
  %699 = icmp eq i32 %698, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  br i1 %699, label %700, label %701

700:                                              ; preds = %682
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %948

701:                                              ; preds = %682
  br label %702

702:                                              ; preds = %701
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703
  %705 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %706 = getelementptr inbounds %struct.jc_test_fixture, ptr %705, i32 0, i32 11
  %707 = load i32, ptr %706, align 8
  %708 = and i32 %707, -16776961
  %709 = or i32 %708, 1558784
  store i32 %709, ptr %706, align 8
  %710 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %711 = getelementptr inbounds %struct.jc_test_fixture, ptr %710, i32 0, i32 4
  store ptr @.str.3, ptr %711, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #4
  store i32 0, ptr %58, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #4
  %712 = load ptr, ptr %26, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %712, i32 0, i32 3
  %714 = load ptr, ptr %713, align 8, !tbaa !36
  %715 = load ptr, ptr %26, align 8, !tbaa !5
  %716 = load ptr, ptr %45, align 8, !tbaa !5
  %717 = load i64, ptr %48, align 8, !tbaa !22
  %718 = sub i64 %717, 32
  %719 = load ptr, ptr %51, align 8, !tbaa !5
  %720 = load i64, ptr %48, align 8, !tbaa !22
  %721 = sub i64 %720, 32
  %722 = getelementptr inbounds i8, ptr %719, i64 %721
  %723 = call noundef i32 %714(ptr noundef %715, ptr noundef %716, i64 noundef %718, i64 noundef 32, ptr noundef %722)
  store i32 %723, ptr %59, align 4, !tbaa !14
  %724 = 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) %58, ptr noundef nonnull align 4 dereferenceable(4) %59, ptr noundef @.str.46, ptr noundef @.str.746, ptr noundef null)
  %725 = icmp eq i32 %724, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  br i1 %725, label %726, label %727

726:                                              ; preds = %704
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %948

727:                                              ; preds = %704
  br label %728

728:                                              ; preds = %727
  br label %729

729:                                              ; preds = %728
  br label %730

730:                                              ; preds = %729
  %731 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %732 = getelementptr inbounds %struct.jc_test_fixture, ptr %731, i32 0, i32 11
  %733 = load i32, ptr %732, align 8
  %734 = and i32 %733, -16776961
  %735 = or i32 %734, 1559040
  store i32 %735, ptr %732, align 8
  %736 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %737 = getelementptr inbounds %struct.jc_test_fixture, ptr %736, i32 0, i32 4
  store ptr @.str.3, ptr %737, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #4
  store i32 0, ptr %60, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #4
  %738 = load ptr, ptr %26, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %738, i32 0, i32 3
  %740 = load ptr, ptr %739, align 8, !tbaa !36
  %741 = load ptr, ptr %26, align 8, !tbaa !5
  %742 = load ptr, ptr %45, align 8, !tbaa !5
  %743 = load i64, ptr %48, align 8, !tbaa !22
  %744 = sub i64 %743, 288
  %745 = load ptr, ptr %51, align 8, !tbaa !5
  %746 = getelementptr inbounds i8, ptr %745, i64 256
  %747 = call noundef i32 %740(ptr noundef %741, ptr noundef %742, i64 noundef 256, i64 noundef %744, ptr noundef %746)
  store i32 %747, ptr %61, align 4, !tbaa !14
  %748 = 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) %60, ptr noundef nonnull align 4 dereferenceable(4) %61, ptr noundef @.str.46, ptr noundef @.str.747, ptr noundef null)
  %749 = icmp eq i32 %748, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  br i1 %749, label %750, label %751

750:                                              ; preds = %730
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %948

751:                                              ; preds = %730
  br label %752

752:                                              ; preds = %751
  br label %753

753:                                              ; preds = %752
  br label %812

754:                                              ; preds = %633
  %755 = load i64, ptr %48, align 8, !tbaa !22
  %756 = icmp ugt i64 %755, 0
  br i1 %756, label %757, label %811

757:                                              ; preds = %754
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #4
  store i64 0, ptr %62, align 8, !tbaa !22
  br label %758

758:                                              ; preds = %806, %757
  %759 = load i64, ptr %62, align 8, !tbaa !22
  %760 = load i64, ptr %48, align 8, !tbaa !22
  %761 = icmp ult i64 %759, %760
  br i1 %761, label %762, label %807

762:                                              ; preds = %758
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #4
  %763 = load i64, ptr %62, align 8, !tbaa !22
  %764 = urem i64 %763, 3
  %765 = add i64 %764, 1
  store i64 %765, ptr %63, align 8, !tbaa !22
  %766 = load i64, ptr %62, align 8, !tbaa !22
  %767 = load i64, ptr %63, align 8, !tbaa !22
  %768 = add i64 %766, %767
  %769 = load i64, ptr %48, align 8, !tbaa !22
  %770 = icmp ugt i64 %768, %769
  br i1 %770, label %771, label %775

771:                                              ; preds = %762
  %772 = load i64, ptr %48, align 8, !tbaa !22
  %773 = load i64, ptr %62, align 8, !tbaa !22
  %774 = sub i64 %772, %773
  store i64 %774, ptr %63, align 8, !tbaa !22
  br label %775

775:                                              ; preds = %771, %762
  br label %776

776:                                              ; preds = %775
  %777 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %778 = getelementptr inbounds %struct.jc_test_fixture, ptr %777, i32 0, i32 11
  %779 = load i32, ptr %778, align 8
  %780 = and i32 %779, -16776961
  %781 = or i32 %780, 1562112
  store i32 %781, ptr %778, align 8
  %782 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %783 = getelementptr inbounds %struct.jc_test_fixture, ptr %782, i32 0, i32 4
  store ptr @.str.3, ptr %783, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  store i32 0, ptr %64, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #4
  %784 = load ptr, ptr %26, align 8, !tbaa !5
  %785 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %784, i32 0, i32 3
  %786 = load ptr, ptr %785, align 8, !tbaa !36
  %787 = load ptr, ptr %26, align 8, !tbaa !5
  %788 = load ptr, ptr %45, align 8, !tbaa !5
  %789 = load i64, ptr %62, align 8, !tbaa !22
  %790 = load i64, ptr %63, align 8, !tbaa !22
  %791 = load ptr, ptr %51, align 8, !tbaa !5
  %792 = load i64, ptr %62, align 8, !tbaa !22
  %793 = getelementptr inbounds i8, ptr %791, i64 %792
  %794 = call noundef i32 %786(ptr noundef %787, ptr noundef %788, i64 noundef %789, i64 noundef %790, ptr noundef %793)
  store i32 %794, ptr %65, align 4, !tbaa !14
  %795 = 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) %64, ptr noundef nonnull align 4 dereferenceable(4) %65, ptr noundef @.str.46, ptr noundef @.str.748, ptr noundef null)
  %796 = icmp eq i32 %795, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  br i1 %796, label %797, label %798

797:                                              ; preds = %776
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %804

798:                                              ; preds = %776
  br label %799

799:                                              ; preds = %798
  br label %800

800:                                              ; preds = %799
  %801 = load i64, ptr %63, align 8, !tbaa !22
  %802 = load i64, ptr %62, align 8, !tbaa !22
  %803 = add i64 %802, %801
  store i64 %803, ptr %62, align 8, !tbaa !22
  store i32 0, ptr %13, align 4
  br label %804

804:                                              ; preds = %800, %797
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  %805 = load i32, ptr %13, align 4
  switch i32 %805, label %808 [
    i32 0, label %806
  ]

806:                                              ; preds = %804
  br label %758, !llvm.loop !37

807:                                              ; preds = %758
  store i32 0, ptr %13, align 4
  br label %808

808:                                              ; preds = %807, %804
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  %809 = load i32, ptr %13, align 4
  switch i32 %809, label %948 [
    i32 0, label %810
  ]

810:                                              ; preds = %808
  br label %811

811:                                              ; preds = %810, %754
  br label %812

812:                                              ; preds = %811, %753
  %813 = load ptr, ptr %26, align 8, !tbaa !5
  %814 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %813, i32 0, i32 9
  %815 = load ptr, ptr %814, align 8, !tbaa !38
  %816 = load ptr, ptr %26, align 8, !tbaa !5
  %817 = load ptr, ptr %45, align 8, !tbaa !5
  call void %815(ptr noundef %816, ptr noundef %817)
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #4
  br label %818

818:                                              ; preds = %812
  %819 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %820 = getelementptr inbounds %struct.jc_test_fixture, ptr %819, i32 0, i32 11
  %821 = load i32, ptr %820, align 8
  %822 = and i32 %821, -16776961
  %823 = or i32 %822, 1564160
  store i32 %823, ptr %820, align 8
  %824 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %825 = getelementptr inbounds %struct.jc_test_fixture, ptr %824, i32 0, i32 4
  store ptr @.str.3, ptr %825, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #4
  store i32 0, ptr %67, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #4
  %826 = load ptr, ptr %3, align 8, !tbaa !5
  %827 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %826, i32 0, i32 1
  %828 = load ptr, ptr %827, align 8, !tbaa !34
  %829 = load ptr, ptr %3, align 8, !tbaa !5
  %830 = load ptr, ptr %44, align 8, !tbaa !5
  %831 = call noundef i32 %828(ptr noundef %829, ptr noundef %830, ptr noundef %66)
  store i32 %831, ptr %68, align 4, !tbaa !14
  %832 = 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) %67, ptr noundef nonnull align 4 dereferenceable(4) %68, ptr noundef @.str.46, ptr noundef @.str.749, ptr noundef null)
  %833 = icmp eq i32 %832, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  br i1 %833, label %834, label %835

834:                                              ; preds = %818
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %947

835:                                              ; preds = %818
  br label %836

836:                                              ; preds = %835
  br label %837

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

838:                                              ; preds = %837
  %839 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %840 = getelementptr inbounds %struct.jc_test_fixture, ptr %839, i32 0, i32 11
  %841 = load i32, ptr %840, align 8
  %842 = and i32 %841, -16776961
  %843 = or i32 %842, 1564672
  store i32 %843, ptr %840, align 8
  %844 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %845 = getelementptr inbounds %struct.jc_test_fixture, ptr %844, i32 0, i32 4
  store ptr @.str.3, ptr %845, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #4
  store i32 0, ptr %70, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #4
  %846 = load ptr, ptr %3, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %846, i32 0, i32 2
  %848 = load ptr, ptr %847, align 8, !tbaa !35
  %849 = load ptr, ptr %3, align 8, !tbaa !5
  %850 = load ptr, ptr %66, align 8, !tbaa !5
  %851 = call noundef i32 %848(ptr noundef %849, ptr noundef %850, ptr noundef %69)
  store i32 %851, ptr %71, align 4, !tbaa !14
  %852 = 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) %70, ptr noundef nonnull align 4 dereferenceable(4) %71, ptr noundef @.str.46, ptr noundef @.str.750, ptr noundef null)
  %853 = icmp eq i32 %852, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  br i1 %853, label %854, label %855

854:                                              ; preds = %838
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %946

855:                                              ; preds = %838
  br label %856

856:                                              ; preds = %855
  br label %857

857:                                              ; preds = %856
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #4
  %858 = load i64, ptr %69, align 8, !tbaa !22
  %859 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %858)
  store ptr %859, ptr %72, align 8, !tbaa !5
  br label %860

860:                                              ; preds = %857
  %861 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %862 = getelementptr inbounds %struct.jc_test_fixture, ptr %861, i32 0, i32 11
  %863 = load i32, ptr %862, align 8
  %864 = and i32 %863, -16776961
  %865 = or i32 %864, 1565184
  store i32 %865, ptr %862, align 8
  %866 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %867 = getelementptr inbounds %struct.jc_test_fixture, ptr %866, i32 0, i32 4
  store ptr @.str.3, ptr %867, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #4
  store i32 0, ptr %73, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #4
  %868 = load ptr, ptr %3, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %868, i32 0, i32 3
  %870 = load ptr, ptr %869, align 8, !tbaa !36
  %871 = load ptr, ptr %3, align 8, !tbaa !5
  %872 = load ptr, ptr %66, align 8, !tbaa !5
  %873 = load i64, ptr %69, align 8, !tbaa !22
  %874 = load ptr, ptr %72, align 8, !tbaa !5
  %875 = call noundef i32 %870(ptr noundef %871, ptr noundef %872, i64 noundef 0, i64 noundef %873, ptr noundef %874)
  store i32 %875, ptr %74, align 4, !tbaa !14
  %876 = 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) %73, ptr noundef nonnull align 4 dereferenceable(4) %74, ptr noundef @.str.46, ptr noundef @.str.751, ptr noundef null)
  %877 = icmp eq i32 %876, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  br i1 %877, label %878, label %879

878:                                              ; preds = %860
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %945

879:                                              ; preds = %860
  br label %880

880:                                              ; preds = %879
  br label %881

881:                                              ; preds = %880
  %882 = load ptr, ptr %3, align 8, !tbaa !5
  %883 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %882, i32 0, i32 9
  %884 = load ptr, ptr %883, align 8, !tbaa !38
  %885 = load ptr, ptr %3, align 8, !tbaa !5
  %886 = load ptr, ptr %66, align 8, !tbaa !5
  call void %884(ptr noundef %885, ptr noundef %886)
  br label %887

887:                                              ; preds = %881
  %888 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %889 = getelementptr inbounds %struct.jc_test_fixture, ptr %888, i32 0, i32 11
  %890 = load i32, ptr %889, align 8
  %891 = and i32 %890, -16776961
  %892 = or i32 %891, 1565952
  store i32 %892, ptr %889, align 8
  %893 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %894 = getelementptr inbounds %struct.jc_test_fixture, ptr %893, i32 0, i32 4
  store ptr @.str.3, ptr %894, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %895 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef @.str.510, ptr noundef @.str.752)
  %896 = icmp eq i32 %895, 0
  br i1 %896, label %897, label %898

897:                                              ; preds = %887
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %945

898:                                              ; preds = %887
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #4
  %901 = load ptr, ptr %51, align 8, !tbaa !5
  store ptr %901, ptr %75, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #4
  %902 = load ptr, ptr %72, align 8, !tbaa !5
  store ptr %902, ptr %76, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #4
  store i64 0, ptr %77, align 8, !tbaa !22
  br label %903

903:                                              ; preds = %936, %900
  %904 = load i64, ptr %77, align 8, !tbaa !22
  %905 = load i64, ptr %48, align 8, !tbaa !22
  %906 = icmp ult i64 %904, %905
  br i1 %906, label %908, label %907

907:                                              ; preds = %903
  store i32 74, ptr %13, align 4
  br label %939

908:                                              ; preds = %903
  %909 = load ptr, ptr %75, align 8, !tbaa !5
  %910 = load i64, ptr %77, align 8, !tbaa !22
  %911 = getelementptr inbounds i8, ptr %909, i64 %910
  %912 = load i8, ptr %911, align 1, !tbaa !39
  %913 = zext i8 %912 to i32
  %914 = load ptr, ptr %76, align 8, !tbaa !5
  %915 = load i64, ptr %77, align 8, !tbaa !22
  %916 = getelementptr inbounds i8, ptr %914, i64 %915
  %917 = load i8, ptr %916, align 1, !tbaa !39
  %918 = zext i8 %917 to i32
  %919 = icmp ne i32 %913, %918
  br i1 %919, label %920, label %935

920:                                              ; preds = %908
  br label %921

921:                                              ; preds = %920
  %922 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %923 = getelementptr inbounds %struct.jc_test_fixture, ptr %922, i32 0, i32 11
  %924 = load i32, ptr %923, align 8
  %925 = and i32 %924, -16776961
  %926 = or i32 %925, 1567744
  store i32 %926, ptr %923, align 8
  %927 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %928 = getelementptr inbounds %struct.jc_test_fixture, ptr %927, i32 0, i32 4
  store ptr @.str.3, ptr %928, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %929 = call noundef i32 @_Z16jc_test_cmp_TRUEIbEiT_PKc(i1 noundef zeroext false, ptr noundef @.str.753)
  %930 = icmp eq i32 %929, 0
  br i1 %930, label %931, label %932

931:                                              ; preds = %921
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %13, align 4
  br label %939

932:                                              ; preds = %921
  br label %933

933:                                              ; preds = %932
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934, %908
  br label %936

936:                                              ; preds = %935
  %937 = load i64, ptr %77, align 8, !tbaa !22
  %938 = add i64 %937, 1
  store i64 %938, ptr %77, align 8, !tbaa !22
  br label %903, !llvm.loop !40

939:                                              ; preds = %931, %907
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  %940 = load i32, ptr %13, align 4
  switch i32 %940, label %944 [
    i32 74, label %941
  ]

941:                                              ; preds = %939
  %942 = load ptr, ptr %51, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %942)
  %943 = load ptr, ptr %72, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %943)
  store i32 0, ptr %13, align 4
  br label %944

944:                                              ; preds = %941, %939
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  br label %945

945:                                              ; preds = %944, %897, %878
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  br label %946

946:                                              ; preds = %945, %854
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  br label %947

947:                                              ; preds = %946, %834
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  br label %948

948:                                              ; preds = %947, %808, %750, %726, %700, %678, %656
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  br label %949

949:                                              ; preds = %948, %630
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  br label %950

950:                                              ; preds = %949, %610
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  %951 = load i32, ptr %13, align 4
  switch i32 %951, label %955 [
    i32 0, label %952
  ]

952:                                              ; preds = %950
  br label %953

953:                                              ; preds = %952, %567
  %954 = load ptr, ptr %44, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %954)
  store i32 0, ptr %13, align 4
  br label %955

955:                                              ; preds = %953, %950
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  %956 = load i32, ptr %13, align 4
  switch i32 %956, label %961 [
    i32 0, label %957
  ]

957:                                              ; preds = %955
  br label %958

958:                                              ; preds = %957
  %959 = load i32, ptr %42, align 4, !tbaa !14
  %960 = add i32 %959, 1
  store i32 %960, ptr %42, align 4, !tbaa !14
  br label %560, !llvm.loop !41

961:                                              ; preds = %955, %566
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  %962 = load i32, ptr %13, align 4
  switch i32 %962, label %1016 [
    i32 45, label %963
  ]

963:                                              ; preds = %961
  %964 = load ptr, ptr %26, align 8, !tbaa !5
  %965 = icmp ne ptr %964, null
  br i1 %965, label %966, label %969

966:                                              ; preds = %963
  %967 = load ptr, ptr %26, align 8, !tbaa !5
  %968 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %967, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %968)
  br label %969

969:                                              ; preds = %966, %963
  %970 = load ptr, ptr %18, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %970)
  store ptr null, ptr %18, align 8, !tbaa !5
  %971 = load ptr, ptr %15, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %971)
  store ptr null, ptr %15, align 8, !tbaa !5
  %972 = load ptr, ptr %14, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %972)
  store ptr null, ptr %14, align 8, !tbaa !5
  %973 = load ptr, ptr %10, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %973)
  store ptr null, ptr %10, align 8, !tbaa !5
  %974 = load ptr, ptr %9, align 8, !tbaa !5
  %975 = icmp ne ptr %974, null
  br i1 %975, label %976, label %979

976:                                              ; preds = %969
  %977 = load ptr, ptr %9, align 8, !tbaa !5
  %978 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %977, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %978)
  br label %979

979:                                              ; preds = %976, %969
  %980 = load ptr, ptr %8, align 8, !tbaa !5
  %981 = icmp ne ptr %980, null
  br i1 %981, label %982, label %985

982:                                              ; preds = %979
  %983 = load ptr, ptr %8, align 8, !tbaa !5
  %984 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %983, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %984)
  br label %985

985:                                              ; preds = %982, %979
  %986 = load ptr, ptr %7, align 8, !tbaa !5
  %987 = icmp ne ptr %986, null
  br i1 %987, label %988, label %991

988:                                              ; preds = %985
  %989 = load ptr, ptr %7, align 8, !tbaa !5
  %990 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %989, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %990)
  br label %991

991:                                              ; preds = %988, %985
  %992 = load ptr, ptr %6, align 8, !tbaa !5
  %993 = icmp ne ptr %992, null
  br i1 %993, label %994, label %997

994:                                              ; preds = %991
  %995 = load ptr, ptr %6, align 8, !tbaa !5
  %996 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %995, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %996)
  br label %997

997:                                              ; preds = %994, %991
  %998 = load ptr, ptr %5, align 8, !tbaa !5
  %999 = icmp ne ptr %998, null
  br i1 %999, label %1000, label %1003

1000:                                             ; preds = %997
  %1001 = load ptr, ptr %5, align 8, !tbaa !5
  %1002 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %1001, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %1002)
  br label %1003

1003:                                             ; preds = %1000, %997
  %1004 = load ptr, ptr %4, align 8, !tbaa !5
  %1005 = icmp ne ptr %1004, null
  br i1 %1005, label %1006, label %1009

1006:                                             ; preds = %1003
  %1007 = load ptr, ptr %4, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %1007, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %1008)
  br label %1009

1009:                                             ; preds = %1006, %1003
  %1010 = load ptr, ptr %3, align 8, !tbaa !5
  %1011 = icmp ne ptr %1010, null
  br i1 %1011, label %1012, label %1015

1012:                                             ; preds = %1009
  %1013 = load ptr, ptr %3, align 8, !tbaa !5
  %1014 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1013, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %1014)
  br label %1015

1015:                                             ; preds = %1012, %1009
  store i32 0, ptr %13, align 4
  br label %1016

1016:                                             ; preds = %1015, %961, %555, %535, %422
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  br label %1017

1017:                                             ; preds = %1016, %319, %301, %286
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  br label %1018

1018:                                             ; preds = %1017, %269
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  br label %1019

1019:                                             ; preds = %1018, %248, %220, %200
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  br label %1020

1020:                                             ; preds = %1019, %173, %158
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  br label %1021

1021:                                             ; preds = %1020, %137
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  br label %1022

1022:                                             ; preds = %1021, %119, %104
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #4
  %1023 = load i32, ptr %13, align 4
  switch i32 %1023, label %1025 [
    i32 0, label %1024
    i32 1, label %1024
  ]

1024:                                             ; preds = %1022, %1022
  ret void

1025:                                             ; preds = %1022
  unreachable
}

declare ptr @Longtail_CreateBlockStoreStorageAPI(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

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

declare ptr @LongtailPrivate_LookupTable_Create(ptr noundef, i32 noundef, ptr noundef) #1

declare i64 @LongtailPrivate_LookupTable_GetSize(i32 noundef) #1

declare i32 @LongtailPrivate_GetPathHash(ptr noundef, ptr noundef, ptr noundef) #1

declare i32 @LongtailPrivate_LookupTable_Put(ptr noundef, i64 noundef, i32 noundef) #1

declare ptr @LongtailPrivate_LookupTable_Get(ptr noundef, i64 noundef) #1

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 32}
!10 = !{!"_ZTS15jc_test_fixture", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !11, i64 64, !12, i64 88, !12, i64 91, !12, i64 91, !12, i64 91, !12, i64 91, !12, i64 92, !12, i64 96, !12, i64 97, !12, i64 99, !12, i64 100}
!11 = !{!"_ZTS13jc_test_stats", !12, i64 0, !12, i64 4, !12, i64 6, !12, i64 8, !12, i64 12, !13, i64 16}
!12 = !{!"int", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!12, !12, i64 0}
!15 = !{!16, !6, i64 32}
!16 = !{!"_ZTS21Longtail_VersionIndex", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !12, i64 128, !6, i64 136, !6, i64 144}
!17 = !{!16, !6, i64 96}
!18 = !{!19, !12, i64 0}
!19 = !{!"_ZTS18Longtail_FileInfos", !12, i64 0, !12, i64 4, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!20 = !{!19, !6, i64 32}
!21 = !{!19, !6, i64 16}
!22 = !{!13, !13, i64 0}
!23 = distinct !{!23, !24}
!24 = !{!"llvm.loop.mustprogress"}
!25 = distinct !{!25, !24}
!26 = !{!19, !6, i64 8}
!27 = !{!19, !6, i64 24}
!28 = distinct !{!28, !24}
!29 = !{!16, !6, i64 24}
!30 = !{!31, !6, i64 96}
!31 = !{!"_ZTS19Longtail_StorageAPI", !32, 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}
!32 = !{!"_ZTS12Longtail_API", !6, i64 0}
!33 = !{!31, !6, i64 112}
!34 = !{!31, !6, i64 8}
!35 = !{!31, !6, i64 16}
!36 = !{!31, !6, i64 24}
!37 = distinct !{!37, !24}
!38 = !{!31, !6, i64 72}
!39 = !{!7, !7, i64 0}
!40 = distinct !{!40, !24}
!41 = distinct !{!41, !24}


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

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [23 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.265 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.677 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.679 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.694 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.724 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.725 = external hidden unnamed_addr constant [178 x i8], align 1
@.str.726 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.727 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.728 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.729 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.730 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.731 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.732 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.733 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.734 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.735 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.736 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.737 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.738 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.740 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.741 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.742 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.743 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.744 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.745 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.746 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.747 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.748 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.749 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.750 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.751 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.752 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.753 = external hidden unnamed_addr constant [6 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

declare ptr @Longtail_Alloc(ptr noundef, i64 noundef) local_unnamed_addr #1

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

declare void @_Z28jc_test_increment_assertionsv() local_unnamed_addr #1

declare void @_Z21jc_test_set_test_faili(i32 noundef) local_unnamed_addr #1

declare void @Longtail_Free(ptr noundef) local_unnamed_addr #1

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

declare noundef i32 @_Z17jc_test_cmp_STREQPKcS0_S0_S0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; 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

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

declare void @Longtail_DisposeAPI(ptr noundef) local_unnamed_addr #1

declare ptr @Longtail_CreateBlake3HashAPI() local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_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

declare ptr @Longtail_CreateHPCDCChunkerAPI() local_unnamed_addr #1

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

declare i32 @Longtail_GetFilesRecursively2(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

; 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 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 #1

; 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_CreateInMemStorageAPI() local_unnamed_addr #1

declare ptr @Longtail_CreateFullCompressionRegistry() local_unnamed_addr #1

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

declare ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef, ptr noundef) local_unnamed_addr #1

; 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 #1

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 #1

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

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

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

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

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

65:                                               ; preds = %1
  %66 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %67 = getelementptr inbounds i8, ptr %66, i64 96
  %68 = load i32, ptr %67, align 8
  %69 = and i32 %68, -16776961
  %70 = or disjoint i32 %69, 1528832
  store i32 %70, ptr %67, align 8
  %71 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %72 = getelementptr inbounds i8, ptr %71, i64 32
  store ptr @.str.3, ptr %72, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %73 = load ptr, ptr %2, align 8, !tbaa !14
  %74 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %73, ptr noundef nonnull @.str.253, ptr noundef nonnull @.str.679)
  %75 = icmp eq i32 %74, 0
  br i1 %75, label %76, label %77

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

77:                                               ; preds = %65
  %78 = load ptr, ptr %2, align 8, !tbaa !14
  %79 = call noundef ptr @_ZL12SetAssetTagsP19Longtail_StorageAPIPK18Longtail_FileInfosj(ptr noundef %47, ptr noundef %78, i32 noundef 0)
  %80 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %81 = getelementptr inbounds i8, ptr %80, i64 96
  %82 = load i32, ptr %81, align 8
  %83 = and i32 %82, -16776961
  %84 = or disjoint i32 %83, 1529600
  store i32 %84, ptr %81, align 8
  %85 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %86 = getelementptr inbounds i8, ptr %85, i64 32
  store ptr @.str.3, ptr %86, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %87 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %79, ptr noundef nonnull @.str.255, ptr noundef nonnull @.str.256)
  %88 = icmp eq i32 %87, 0
  br i1 %88, label %89, label %90

89:                                               ; preds = %77
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %621

90:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #4
  %91 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %92 = getelementptr inbounds i8, ptr %91, i64 96
  %93 = load i32, ptr %92, align 8
  %94 = and i32 %93, -16776961
  %95 = or disjoint i32 %94, 1533440
  store i32 %95, ptr %92, align 8
  %96 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %97 = getelementptr inbounds i8, ptr %96, i64 32
  store ptr @.str.3, ptr %97, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #4
  store i32 0, ptr %6, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #4
  %98 = load ptr, ptr %2, align 8, !tbaa !14
  %99 = call i32 @Longtail_CreateVersionIndex(ptr noundef %47, ptr noundef %48, ptr noundef %49, ptr noundef %50, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.677, ptr noundef %98, ptr noundef %79, i32 noundef 256, i32 noundef 0, ptr noundef nonnull %5)
  store i32 %99, ptr %7, align 4, !tbaa !13
  %100 = 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.725, ptr noundef null)
  %101 = icmp eq i32 %100, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #4
  br i1 %101, label %102, label %103

102:                                              ; preds = %90
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %620

103:                                              ; preds = %90
  %104 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %105 = getelementptr inbounds i8, ptr %104, i64 96
  %106 = load i32, ptr %105, align 8
  %107 = and i32 %106, -16776961
  %108 = or disjoint i32 %107, 1533696
  store i32 %108, ptr %105, align 8
  %109 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %110 = getelementptr inbounds i8, ptr %109, i64 32
  store ptr @.str.3, ptr %110, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %111 = load ptr, ptr %5, align 8, !tbaa !14
  %112 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %111, ptr noundef nonnull @.str.259, ptr noundef nonnull @.str.260)
  %113 = icmp eq i32 %112, 0
  br i1 %113, label %114, label %115

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

115:                                              ; preds = %103
  %116 = load ptr, ptr %5, align 8, !tbaa !14
  %117 = getelementptr inbounds i8, ptr %116, i64 32
  %118 = load ptr, ptr %117, align 8, !tbaa !15
  %119 = load i32, ptr %118, align 4, !tbaa !13
  %120 = getelementptr inbounds i8, ptr %116, i64 96
  %121 = load ptr, ptr %120, align 8, !tbaa !17
  %122 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %53, i32 noundef %119, ptr noundef %121, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #4
  %123 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %124 = getelementptr inbounds i8, ptr %123, i64 96
  %125 = load i32, ptr %124, align 8
  %126 = and i32 %125, -16776961
  %127 = or disjoint i32 %126, 1536512
  store i32 %127, ptr %124, align 8
  %128 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %129 = getelementptr inbounds i8, ptr %128, i64 32
  store ptr @.str.3, ptr %129, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #4
  store i32 0, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #4
  %130 = load ptr, ptr %5, align 8, !tbaa !14
  %131 = call i32 @Longtail_CreateMissingContent(ptr noundef %48, ptr noundef %122, ptr noundef %130, i32 noundef 4096, i32 noundef 16, ptr noundef nonnull %8)
  store i32 %131, ptr %10, align 4, !tbaa !13
  %132 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.412, ptr noundef null)
  %133 = icmp eq i32 %132, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #4
  br i1 %133, label %134, label %135

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

135:                                              ; preds = %115
  %136 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %137 = getelementptr inbounds i8, ptr %136, i64 96
  %138 = load i32, ptr %137, align 8
  %139 = and i32 %138, -16776961
  %140 = or disjoint i32 %139, 1539328
  store i32 %140, ptr %137, align 8
  %141 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %142 = getelementptr inbounds i8, ptr %141, i64 32
  store ptr @.str.3, ptr %142, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #4
  store i32 0, ptr %11, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #4
  %143 = load ptr, ptr %8, align 8, !tbaa !14
  %144 = load ptr, ptr %5, align 8, !tbaa !14
  %145 = call i32 @Longtail_WriteContent(ptr noundef %47, ptr noundef %53, ptr noundef %50, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %143, ptr noundef %144, ptr noundef nonnull @.str.677)
  store i32 %145, ptr %12, align 4, !tbaa !13
  %146 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.726, ptr noundef null)
  %147 = icmp eq i32 %146, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #4
  br i1 %147, label %148, label %149

148:                                              ; preds = %135
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %619

149:                                              ; preds = %135
  %150 = load ptr, ptr %8, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %150)
  store ptr null, ptr %8, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %122)
  %151 = load ptr, ptr %5, align 8, !tbaa !14
  %152 = getelementptr inbounds i8, ptr %151, i64 32
  %153 = load ptr, ptr %152, align 8, !tbaa !15
  %154 = load i32, ptr %153, align 4, !tbaa !13
  %155 = getelementptr inbounds i8, ptr %151, i64 96
  %156 = load ptr, ptr %155, align 8, !tbaa !17
  %157 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %53, i32 noundef %154, ptr noundef %156, i32 noundef 0)
  %158 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %159 = getelementptr inbounds i8, ptr %158, i64 96
  %160 = load i32, ptr %159, align 8
  %161 = and i32 %160, -16776961
  %162 = or disjoint i32 %161, 1541376
  store i32 %162, ptr %159, align 8
  %163 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %164 = getelementptr inbounds i8, ptr %163, i64 32
  store ptr @.str.3, ptr %164, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #4
  store i32 0, ptr %13, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #4
  %165 = load ptr, ptr %5, align 8, !tbaa !14
  %166 = call i32 @Longtail_ValidateStore(ptr noundef %157, ptr noundef %165)
  store i32 %166, ptr %14, align 4, !tbaa !13
  %167 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.727, ptr noundef null)
  %168 = icmp eq i32 %167, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #4
  br i1 %168, label %169, label %170

169:                                              ; preds = %149
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %619

170:                                              ; preds = %149
  %171 = load ptr, ptr %5, align 8, !tbaa !14
  %172 = call ptr @Longtail_CreateBlockStoreStorageAPI(ptr noundef %48, ptr noundef %50, ptr noundef %53, ptr noundef %157, ptr noundef %171)
  %173 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %174 = getelementptr inbounds i8, ptr %173, i64 96
  %175 = load i32, ptr %174, align 8
  %176 = and i32 %175, -16776961
  %177 = or disjoint i32 %176, 1543936
  store i32 %177, ptr %174, align 8
  %178 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %179 = getelementptr inbounds i8, ptr %178, i64 32
  store ptr @.str.3, ptr %179, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %180 = call noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StorageAPIS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %172, ptr noundef nonnull @.str.728, ptr noundef nonnull @.str.729)
  %181 = icmp eq i32 %180, 0
  br i1 %181, label %182, label %183

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

183:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #4
  %184 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %185 = getelementptr inbounds i8, ptr %184, i64 96
  %186 = load i32, ptr %185, align 8
  %187 = and i32 %186, -16776961
  %188 = or disjoint i32 %187, 1544704
  store i32 %188, ptr %185, align 8
  %189 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %190 = getelementptr inbounds i8, ptr %189, i64 32
  store ptr @.str.3, ptr %190, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #4
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #4
  %191 = call i32 @Longtail_GetFilesRecursively2(ptr noundef %172, ptr noundef %50, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef nonnull @.str.8, ptr noundef nonnull %15)
  store i32 %191, ptr %17, align 4, !tbaa !13
  %192 = 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.730, ptr noundef null)
  %193 = icmp eq i32 %192, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #4
  br i1 %193, label %194, label %195

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

195:                                              ; preds = %183
  %196 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %197 = getelementptr inbounds i8, ptr %196, i64 96
  %198 = load i32, ptr %197, align 8
  %199 = and i32 %198, -16776961
  %200 = or disjoint i32 %199, 1544960
  store i32 %200, ptr %197, align 8
  %201 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %202 = getelementptr inbounds i8, ptr %201, i64 32
  store ptr @.str.3, ptr %202, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %203 = load ptr, ptr %15, align 8, !tbaa !14
  %204 = call noundef i32 @_Z14jc_test_cmp_NEIP18Longtail_FileInfosS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %203, ptr noundef nonnull @.str.253, ptr noundef nonnull @.str.731)
  %205 = icmp eq i32 %204, 0
  br i1 %205, label %206, label %207

206:                                              ; preds = %195
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %618

207:                                              ; preds = %195
  %208 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %209 = getelementptr inbounds i8, ptr %208, i64 96
  %210 = load i32, ptr %209, align 8
  %211 = and i32 %210, -16776961
  %212 = or disjoint i32 %211, 1545216
  store i32 %212, ptr %209, align 8
  %213 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %214 = getelementptr inbounds i8, ptr %213, i64 32
  store ptr @.str.3, ptr %214, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %215 = load ptr, ptr %2, align 8, !tbaa !14
  %216 = load ptr, ptr %15, align 8, !tbaa !14
  %217 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %215, ptr noundef nonnull align 4 dereferenceable(4) %216, ptr noundef nonnull @.str.732, ptr noundef nonnull @.str.733)
  %218 = icmp eq i32 %217, 0
  br i1 %218, label %219, label %220

219:                                              ; preds = %207
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %618

220:                                              ; preds = %207
  %221 = load ptr, ptr %2, align 8, !tbaa !14
  %222 = load i32, ptr %221, align 8, !tbaa !18
  %223 = call i64 @LongtailPrivate_LookupTable_GetSize(i32 noundef %222)
  %224 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %223)
  %225 = load ptr, ptr %2, align 8, !tbaa !14
  %226 = load i32, ptr %225, align 8, !tbaa !18
  %227 = call ptr @LongtailPrivate_LookupTable_Create(ptr noundef %224, i32 noundef %226, ptr noundef null)
  %228 = load ptr, ptr %2, align 8, !tbaa !14
  %229 = load i32, ptr %228, align 8, !tbaa !18
  %.not246 = icmp eq i32 %229, 0
  br i1 %.not246, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %220
  %230 = load ptr, ptr %15, align 8, !tbaa !14
  %231 = load i32, ptr %230, align 8, !tbaa !18
  %232 = call i64 @LongtailPrivate_LookupTable_GetSize(i32 noundef %231)
  %233 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %232)
  %234 = load ptr, ptr %15, align 8, !tbaa !14
  %235 = load i32, ptr %234, align 8, !tbaa !18
  %236 = call ptr @LongtailPrivate_LookupTable_Create(ptr noundef %233, i32 noundef %235, ptr noundef null)
  %237 = load ptr, ptr %15, align 8, !tbaa !14
  %238 = load i32, ptr %237, align 8, !tbaa !18
  %.not179228.not = icmp eq i32 %238, 0
  br i1 %.not179228.not, label %.critedge196.preheader, label %.lr.ph231

.lr.ph:                                           ; preds = %220, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %220 ]
  %239 = phi ptr [ %252, %.lr.ph ], [ %228, %220 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #4
  %240 = getelementptr inbounds i8, ptr %239, i64 32
  %241 = load ptr, ptr %240, align 8, !tbaa !20
  %242 = getelementptr inbounds i8, ptr %239, i64 16
  %243 = load ptr, ptr %242, align 8, !tbaa !21
  %244 = getelementptr inbounds i32, ptr %243, i64 %indvars.iv
  %245 = load i32, ptr %244, align 4, !tbaa !13
  %246 = zext i32 %245 to i64
  %247 = getelementptr inbounds i8, ptr %241, i64 %246
  %248 = call i32 @LongtailPrivate_GetPathHash(ptr noundef %48, ptr noundef %247, ptr noundef nonnull %18)
  %249 = load i64, ptr %18, align 8, !tbaa !22
  %250 = trunc nuw i64 %indvars.iv to i32
  %251 = call i32 @LongtailPrivate_LookupTable_Put(ptr noundef %227, i64 noundef %249, i32 noundef %250)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #4
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %252 = load ptr, ptr %2, align 8, !tbaa !14
  %253 = load i32, ptr %252, align 8, !tbaa !18
  %254 = zext i32 %253 to i64
  %255 = icmp ult i64 %indvars.iv.next, %254
  br i1 %255, label %.lr.ph, label %._crit_edge, !llvm.loop !23

.critedge196.preheader:                           ; preds = %.critedge, %._crit_edge
  %256 = load ptr, ptr %2, align 8, !tbaa !14
  %257 = load i32, ptr %256, align 8, !tbaa !18
  %.not180232.not = icmp eq i32 %257, 0
  br i1 %.not180232.not, label %.critedge200, label %.lr.ph234

.lr.ph231:                                        ; preds = %._crit_edge, %.critedge
  %indvars.iv249 = phi i64 [ %indvars.iv.next250, %.critedge ], [ 0, %._crit_edge ]
  %258 = phi ptr [ %282, %.critedge ], [ %237, %._crit_edge ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #4
  %259 = getelementptr inbounds i8, ptr %258, i64 32
  %260 = load ptr, ptr %259, align 8, !tbaa !20
  %261 = getelementptr inbounds i8, ptr %258, i64 16
  %262 = load ptr, ptr %261, align 8, !tbaa !21
  %263 = getelementptr inbounds i32, ptr %262, i64 %indvars.iv249
  %264 = load i32, ptr %263, align 4, !tbaa !13
  %265 = zext i32 %264 to i64
  %266 = getelementptr inbounds i8, ptr %260, i64 %265
  %267 = call i32 @LongtailPrivate_GetPathHash(ptr noundef %48, ptr noundef %266, ptr noundef nonnull %19)
  %268 = load i64, ptr %19, align 8, !tbaa !22
  %269 = trunc nuw i64 %indvars.iv249 to i32
  %270 = call i32 @LongtailPrivate_LookupTable_Put(ptr noundef %236, i64 noundef %268, i32 noundef %269)
  %271 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %272 = getelementptr inbounds i8, ptr %271, i64 96
  %273 = load i32, ptr %272, align 8
  %274 = and i32 %273, -16776961
  %275 = or disjoint i32 %274, 1549568
  store i32 %275, ptr %272, align 8
  %276 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %277 = getelementptr inbounds i8, ptr %276, i64 32
  store ptr @.str.3, ptr %277, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %278 = load i64, ptr %19, align 8, !tbaa !22
  %279 = call ptr @LongtailPrivate_LookupTable_Get(ptr noundef %227, i64 noundef %278)
  %280 = call noundef i32 @_Z14jc_test_cmp_NEIPjS0_EiT_T0_PKcS4_(ptr noundef null, ptr noundef %279, ptr noundef nonnull @.str.255, ptr noundef nonnull @.str.734)
  %.not = icmp eq i32 %280, 0
  br i1 %.not, label %281, label %.critedge

281:                                              ; preds = %.lr.ph231
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  br label %618

.critedge:                                        ; preds = %.lr.ph231
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  %indvars.iv.next250 = add nuw nsw i64 %indvars.iv249, 1
  %282 = load ptr, ptr %15, align 8, !tbaa !14
  %283 = load i32, ptr %282, align 8, !tbaa !18
  %284 = zext i32 %283 to i64
  %.not179 = icmp ult i64 %indvars.iv.next250, %284
  br i1 %.not179, label %.lr.ph231, label %.critedge196.preheader, !llvm.loop !25

.lr.ph234:                                        ; preds = %.critedge196.preheader, %.critedge196
  %indvars.iv252 = phi i64 [ %indvars.iv.next253, %.critedge196 ], [ 0, %.critedge196.preheader ]
  %285 = phi ptr [ %353, %.critedge196 ], [ %256, %.critedge196.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #4
  %286 = getelementptr inbounds i8, ptr %285, i64 32
  %287 = load ptr, ptr %286, align 8, !tbaa !20
  %288 = getelementptr inbounds i8, ptr %285, i64 16
  %289 = load ptr, ptr %288, align 8, !tbaa !21
  %290 = getelementptr inbounds i32, ptr %289, i64 %indvars.iv252
  %291 = load i32, ptr %290, align 4, !tbaa !13
  %292 = zext i32 %291 to i64
  %293 = getelementptr inbounds i8, ptr %287, i64 %292
  %294 = call i32 @LongtailPrivate_GetPathHash(ptr noundef %48, ptr noundef %293, ptr noundef nonnull %20)
  %295 = load i64, ptr %20, align 8, !tbaa !22
  %296 = call ptr @LongtailPrivate_LookupTable_Get(ptr noundef %236, i64 noundef %295)
  %297 = load i32, ptr %296, align 4, !tbaa !13
  %298 = zext i32 %297 to i64
  %299 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %300 = getelementptr inbounds i8, ptr %299, i64 96
  %301 = load i32, ptr %300, align 8
  %302 = and i32 %301, -16776961
  %303 = or disjoint i32 %302, 1551872
  store i32 %303, ptr %300, align 8
  %304 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %305 = getelementptr inbounds i8, ptr %304, i64 32
  store ptr @.str.3, ptr %305, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %306 = load ptr, ptr %2, align 8, !tbaa !14
  %307 = getelementptr inbounds i8, ptr %306, i64 8
  %308 = load ptr, ptr %307, align 8, !tbaa !26
  %309 = getelementptr inbounds i64, ptr %308, i64 %indvars.iv252
  %310 = load ptr, ptr %15, align 8, !tbaa !14
  %311 = getelementptr inbounds i8, ptr %310, i64 8
  %312 = load ptr, ptr %311, align 8, !tbaa !26
  %313 = getelementptr inbounds i64, ptr %312, i64 %298
  %314 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef nonnull @.str.735, ptr noundef nonnull @.str.736)
  %315 = icmp eq i32 %314, 0
  br i1 %315, label %.critedge198, label %316

316:                                              ; preds = %.lr.ph234
  %317 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %318 = getelementptr inbounds i8, ptr %317, i64 96
  %319 = load i32, ptr %318, align 8
  %320 = and i32 %319, -16776961
  %321 = or disjoint i32 %320, 1552128
  store i32 %321, ptr %318, align 8
  %322 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %323 = getelementptr inbounds i8, ptr %322, i64 32
  store ptr @.str.3, ptr %323, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %324 = load ptr, ptr %2, align 8, !tbaa !14
  %325 = getelementptr inbounds i8, ptr %324, i64 24
  %326 = load ptr, ptr %325, align 8, !tbaa !27
  %327 = getelementptr inbounds i16, ptr %326, i64 %indvars.iv252
  %328 = load ptr, ptr %15, align 8, !tbaa !14
  %329 = getelementptr inbounds i8, ptr %328, i64 24
  %330 = load ptr, ptr %329, align 8, !tbaa !27
  %331 = getelementptr inbounds i16, ptr %330, i64 %298
  %332 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIttEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 2 dereferenceable(2) %327, ptr noundef nonnull align 2 dereferenceable(2) %331, ptr noundef nonnull @.str.737, ptr noundef nonnull @.str.738)
  %333 = icmp eq i32 %332, 0
  br i1 %333, label %.critedge198, label %334

334:                                              ; preds = %316
  %335 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %336 = getelementptr inbounds i8, ptr %335, i64 96
  %337 = load i32, ptr %336, align 8
  %338 = and i32 %337, -16776961
  %339 = or disjoint i32 %338, 1552384
  store i32 %339, ptr %336, align 8
  %340 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %341 = getelementptr inbounds i8, ptr %340, i64 32
  store ptr @.str.3, ptr %341, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %342 = load ptr, ptr %15, align 8, !tbaa !14
  %343 = getelementptr inbounds i8, ptr %342, i64 32
  %344 = load ptr, ptr %343, align 8, !tbaa !20
  %345 = getelementptr inbounds i8, ptr %342, i64 16
  %346 = load ptr, ptr %345, align 8, !tbaa !21
  %347 = getelementptr inbounds i32, ptr %346, i64 %298
  %348 = load i32, ptr %347, align 4, !tbaa !13
  %349 = zext i32 %348 to i64
  %350 = getelementptr inbounds i8, ptr %344, i64 %349
  %351 = call noundef i32 @_Z17jc_test_cmp_STREQPKcS0_S0_S0_(ptr noundef %293, ptr noundef %350, ptr noundef nonnull @.str.739, ptr noundef nonnull @.str.740)
  %352 = icmp eq i32 %351, 0
  br i1 %352, label %.critedge198, label %.critedge196

.critedge196:                                     ; preds = %334
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  %indvars.iv.next253 = add nuw nsw i64 %indvars.iv252, 1
  %353 = load ptr, ptr %2, align 8, !tbaa !14
  %354 = load i32, ptr %353, align 8, !tbaa !18
  %355 = zext i32 %354 to i64
  %.not180 = icmp ult i64 %indvars.iv.next253, %355
  br i1 %.not180, label %.lr.ph234, label %.critedge200, !llvm.loop !28

.critedge198:                                     ; preds = %334, %316, %.lr.ph234
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  br label %618

.critedge200:                                     ; preds = %.critedge196, %.critedge196.preheader
  call void @Longtail_Free(ptr noundef %236)
  call void @Longtail_Free(ptr noundef %227)
  %356 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %357 = getelementptr inbounds i8, ptr %356, i64 96
  %358 = load i32, ptr %357, align 8
  %359 = and i32 %358, -16776961
  %360 = or disjoint i32 %359, 1553920
  store i32 %360, ptr %357, align 8
  %361 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %362 = getelementptr inbounds i8, ptr %361, i64 32
  store ptr @.str.3, ptr %362, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %363 = load ptr, ptr %15, align 8, !tbaa !14
  %364 = load ptr, ptr %5, align 8, !tbaa !14
  %365 = getelementptr inbounds i8, ptr %364, i64 24
  %366 = load ptr, ptr %365, align 8, !tbaa !29
  %367 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %363, ptr noundef nonnull align 4 dereferenceable(4) %366, ptr noundef nonnull @.str.733, ptr noundef nonnull @.str.265)
  %368 = icmp eq i32 %367, 0
  br i1 %368, label %369, label %370

369:                                              ; preds = %.critedge200
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %618

370:                                              ; preds = %.critedge200
  %371 = load ptr, ptr %15, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %371)
  %372 = load ptr, ptr %2, align 8, !tbaa !14
  %373 = load i32, ptr %372, align 8, !tbaa !18
  %.not247 = icmp eq i32 %373, 0
  br i1 %.not247, label %._crit_edge245, label %.lr.ph244

.lr.ph244:                                        ; preds = %370
  %374 = getelementptr inbounds i8, ptr %47, i64 96
  %375 = getelementptr inbounds i8, ptr %47, i64 112
  %376 = getelementptr inbounds i8, ptr %172, i64 8
  %377 = getelementptr inbounds i8, ptr %172, i64 16
  %378 = getelementptr inbounds i8, ptr %172, i64 24
  %379 = getelementptr inbounds i8, ptr %172, i64 72
  %380 = getelementptr inbounds i8, ptr %47, i64 8
  %381 = getelementptr inbounds i8, ptr %47, i64 16
  %382 = getelementptr inbounds i8, ptr %47, i64 24
  %383 = getelementptr inbounds i8, ptr %47, i64 72
  br label %384

384:                                              ; preds = %.lr.ph244, %596
  %indvars.iv255 = phi i64 [ 0, %.lr.ph244 ], [ %indvars.iv.next256, %596 ]
  %385 = phi ptr [ %372, %.lr.ph244 ], [ %597, %596 ]
  %386 = getelementptr inbounds i8, ptr %385, i64 32
  %387 = load ptr, ptr %386, align 8, !tbaa !20
  %388 = getelementptr inbounds i8, ptr %385, i64 16
  %389 = load ptr, ptr %388, align 8, !tbaa !21
  %390 = getelementptr inbounds i32, ptr %389, i64 %indvars.iv255
  %391 = load i32, ptr %390, align 4, !tbaa !13
  %392 = zext i32 %391 to i64
  %393 = getelementptr inbounds i8, ptr %387, i64 %392
  %394 = load ptr, ptr %374, align 8, !tbaa !30
  %395 = call noundef ptr %394(ptr noundef %47, ptr noundef nonnull @.str.677, ptr noundef %393)
  %396 = load ptr, ptr %375, align 8, !tbaa !33
  %397 = call noundef i32 %396(ptr noundef %47, ptr noundef %395)
  %.not181 = icmp eq i32 %397, 0
  br i1 %.not181, label %596, label %398

398:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #4
  %399 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %400 = getelementptr inbounds i8, ptr %399, i64 96
  %401 = load i32, ptr %400, align 8
  %402 = and i32 %401, -16776961
  %403 = or disjoint i32 %402, 1556480
  store i32 %403, ptr %400, align 8
  %404 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %405 = getelementptr inbounds i8, ptr %404, i64 32
  store ptr @.str.3, ptr %405, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #4
  store i32 0, ptr %22, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #4
  %406 = load ptr, ptr %376, align 8, !tbaa !34
  %407 = call noundef i32 %406(ptr noundef %172, ptr noundef %393, ptr noundef nonnull %21)
  store i32 %407, ptr %23, align 4, !tbaa !13
  %408 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.741, ptr noundef null)
  %409 = icmp eq i32 %408, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #4
  br i1 %409, label %.thread206, label %410

.thread206:                                       ; preds = %398
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %618

410:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #4
  %411 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %412 = getelementptr inbounds i8, ptr %411, i64 96
  %413 = load i32, ptr %412, align 8
  %414 = and i32 %413, -16776961
  %415 = or disjoint i32 %414, 1556992
  store i32 %415, ptr %412, align 8
  %416 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %417 = getelementptr inbounds i8, ptr %416, i64 32
  store ptr @.str.3, ptr %417, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #4
  store i32 0, ptr %25, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #4
  %418 = load ptr, ptr %377, align 8, !tbaa !35
  %419 = load ptr, ptr %21, align 8, !tbaa !14
  %420 = call noundef i32 %418(ptr noundef nonnull %172, ptr noundef %419, ptr noundef nonnull %24)
  store i32 %420, ptr %26, align 4, !tbaa !13
  %421 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.742, ptr noundef null)
  %422 = icmp eq i32 %421, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #4
  br i1 %422, label %.thread209, label %423

423:                                              ; preds = %410
  %424 = load i64, ptr %24, align 8, !tbaa !22
  %425 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %424)
  %426 = load i64, ptr %24, align 8
  %427 = icmp ugt i64 %426, 287
  br i1 %427, label %428, label %501

428:                                              ; preds = %423
  %429 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %430 = getelementptr inbounds i8, ptr %429, i64 96
  %431 = load i32, ptr %430, align 8
  %432 = and i32 %431, -16776961
  %433 = or disjoint i32 %432, 1558016
  store i32 %433, ptr %430, align 8
  %434 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %435 = getelementptr inbounds i8, ptr %434, i64 32
  store ptr @.str.3, ptr %435, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #4
  store i32 0, ptr %27, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #4
  %436 = load ptr, ptr %378, align 8, !tbaa !36
  %437 = load ptr, ptr %21, align 8, !tbaa !14
  %438 = call noundef i32 %436(ptr noundef nonnull %172, ptr noundef %437, i64 noundef 0, i64 noundef 32, ptr noundef %425)
  store i32 %438, ptr %28, align 4, !tbaa !13
  %439 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.743, ptr noundef null)
  %440 = icmp eq i32 %439, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #4
  br i1 %440, label %.thread209, label %441

441:                                              ; preds = %428
  %442 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %443 = getelementptr inbounds i8, ptr %442, i64 96
  %444 = load i32, ptr %443, align 8
  %445 = and i32 %444, -16776961
  %446 = or disjoint i32 %445, 1558272
  store i32 %446, ptr %443, align 8
  %447 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %448 = getelementptr inbounds i8, ptr %447, i64 32
  store ptr @.str.3, ptr %448, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #4
  store i32 0, ptr %29, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #4
  %449 = load ptr, ptr %378, align 8, !tbaa !36
  %450 = load ptr, ptr %21, align 8, !tbaa !14
  %451 = getelementptr inbounds i8, ptr %425, i64 32
  %452 = call noundef i32 %449(ptr noundef nonnull %172, ptr noundef %450, i64 noundef 32, i64 noundef 128, ptr noundef nonnull %451)
  store i32 %452, ptr %30, align 4, !tbaa !13
  %453 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.744, ptr noundef null)
  %454 = icmp eq i32 %453, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #4
  br i1 %454, label %.thread209, label %455

455:                                              ; preds = %441
  %456 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %457 = getelementptr inbounds i8, ptr %456, i64 96
  %458 = load i32, ptr %457, align 8
  %459 = and i32 %458, -16776961
  %460 = or disjoint i32 %459, 1558528
  store i32 %460, ptr %457, align 8
  %461 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %462 = getelementptr inbounds i8, ptr %461, i64 32
  store ptr @.str.3, ptr %462, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #4
  store i32 0, ptr %31, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #4
  %463 = load ptr, ptr %378, align 8, !tbaa !36
  %464 = load ptr, ptr %21, align 8, !tbaa !14
  %465 = getelementptr inbounds i8, ptr %425, i64 160
  %466 = call noundef i32 %463(ptr noundef nonnull %172, ptr noundef %464, i64 noundef 160, i64 noundef 96, ptr noundef nonnull %465)
  store i32 %466, ptr %32, align 4, !tbaa !13
  %467 = 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) %31, ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.745, ptr noundef null)
  %468 = icmp eq i32 %467, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #4
  br i1 %468, label %.thread209, label %469

469:                                              ; preds = %455
  %470 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %471 = getelementptr inbounds i8, ptr %470, i64 96
  %472 = load i32, ptr %471, align 8
  %473 = and i32 %472, -16776961
  %474 = or disjoint i32 %473, 1558784
  store i32 %474, ptr %471, align 8
  %475 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %476 = getelementptr inbounds i8, ptr %475, i64 32
  store ptr @.str.3, ptr %476, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #4
  store i32 0, ptr %33, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #4
  %477 = load ptr, ptr %378, align 8, !tbaa !36
  %478 = load ptr, ptr %21, align 8, !tbaa !14
  %479 = load i64, ptr %24, align 8, !tbaa !22
  %480 = add i64 %479, -32
  %481 = getelementptr inbounds i8, ptr %425, i64 %480
  %482 = call noundef i32 %477(ptr noundef nonnull %172, ptr noundef %478, i64 noundef %480, i64 noundef 32, ptr noundef %481)
  store i32 %482, ptr %34, align 4, !tbaa !13
  %483 = 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 nonnull @.str.46, ptr noundef nonnull @.str.746, ptr noundef null)
  %484 = icmp eq i32 %483, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #4
  br i1 %484, label %.thread209, label %485

485:                                              ; preds = %469
  %486 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %487 = getelementptr inbounds i8, ptr %486, i64 96
  %488 = load i32, ptr %487, align 8
  %489 = and i32 %488, -16776961
  %490 = or disjoint i32 %489, 1559040
  store i32 %490, ptr %487, align 8
  %491 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %492 = getelementptr inbounds i8, ptr %491, i64 32
  store ptr @.str.3, ptr %492, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #4
  store i32 0, ptr %35, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #4
  %493 = load ptr, ptr %378, align 8, !tbaa !36
  %494 = load ptr, ptr %21, align 8, !tbaa !14
  %495 = load i64, ptr %24, align 8, !tbaa !22
  %496 = add i64 %495, -288
  %497 = getelementptr inbounds i8, ptr %425, i64 256
  %498 = call noundef i32 %493(ptr noundef nonnull %172, ptr noundef %494, i64 noundef 256, i64 noundef %496, ptr noundef nonnull %497)
  store i32 %498, ptr %36, align 4, !tbaa !13
  %499 = 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 nonnull @.str.46, ptr noundef nonnull @.str.747, ptr noundef null)
  %500 = icmp eq i32 %499, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #4
  br i1 %500, label %.thread209, label %.critedge202

501:                                              ; preds = %423
  %.not182.not = icmp eq i64 %426, 0
  br i1 %.not182.not, label %.critedge202, label %.lr.ph237

502:                                              ; preds = %.lr.ph237
  %503 = add i64 %spec.select, %.0163236
  %504 = load i64, ptr %24, align 8, !tbaa !22
  %.not184 = icmp ult i64 %503, %504
  br i1 %.not184, label %.lr.ph237, label %.critedge202, !llvm.loop !37

.lr.ph237:                                        ; preds = %501, %502
  %505 = phi i64 [ %504, %502 ], [ %426, %501 ]
  %.0163236 = phi i64 [ %503, %502 ], [ 0, %501 ]
  %506 = urem i64 %.0163236, 3
  %507 = add nuw nsw i64 %506, 1
  %508 = add i64 %507, %.0163236
  %509 = icmp ugt i64 %508, %505
  %510 = sub i64 %505, %.0163236
  %spec.select = select i1 %509, i64 %510, i64 %507
  %511 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %512 = getelementptr inbounds i8, ptr %511, i64 96
  %513 = load i32, ptr %512, align 8
  %514 = and i32 %513, -16776961
  %515 = or disjoint i32 %514, 1562112
  store i32 %515, ptr %512, align 8
  %516 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %517 = getelementptr inbounds i8, ptr %516, i64 32
  store ptr @.str.3, ptr %517, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #4
  store i32 0, ptr %37, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #4
  %518 = load ptr, ptr %378, align 8, !tbaa !36
  %519 = load ptr, ptr %21, align 8, !tbaa !14
  %520 = getelementptr inbounds i8, ptr %425, i64 %.0163236
  %521 = call noundef i32 %518(ptr noundef nonnull %172, ptr noundef %519, i64 noundef %.0163236, i64 noundef %spec.select, ptr noundef %520)
  store i32 %521, ptr %38, align 4, !tbaa !13
  %522 = 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) %37, ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.748, ptr noundef null)
  %.not183 = icmp eq i32 %522, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #4
  br i1 %.not183, label %.thread209, label %502

.critedge202:                                     ; preds = %502, %501, %485
  %523 = load ptr, ptr %379, align 8, !tbaa !38
  %524 = load ptr, ptr %21, align 8, !tbaa !14
  call void %523(ptr noundef nonnull %172, ptr noundef %524)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #4
  %525 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %526 = getelementptr inbounds i8, ptr %525, i64 96
  %527 = load i32, ptr %526, align 8
  %528 = and i32 %527, -16776961
  %529 = or disjoint i32 %528, 1564160
  store i32 %529, ptr %526, align 8
  %530 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %531 = getelementptr inbounds i8, ptr %530, i64 32
  store ptr @.str.3, ptr %531, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #4
  store i32 0, ptr %40, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #4
  %532 = load ptr, ptr %380, align 8, !tbaa !34
  %533 = call noundef i32 %532(ptr noundef %47, ptr noundef %395, ptr noundef nonnull %39)
  store i32 %533, ptr %41, align 4, !tbaa !13
  %534 = 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) %40, ptr noundef nonnull align 4 dereferenceable(4) %41, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.749, ptr noundef null)
  %535 = icmp eq i32 %534, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #4
  br i1 %535, label %.thread212, label %536

.thread212:                                       ; preds = %.critedge202
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %618

536:                                              ; preds = %.critedge202
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #4
  %537 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %538 = getelementptr inbounds i8, ptr %537, i64 96
  %539 = load i32, ptr %538, align 8
  %540 = and i32 %539, -16776961
  %541 = or disjoint i32 %540, 1564672
  store i32 %541, ptr %538, align 8
  %542 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %543 = getelementptr inbounds i8, ptr %542, i64 32
  store ptr @.str.3, ptr %543, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #4
  store i32 0, ptr %43, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #4
  %544 = load ptr, ptr %381, align 8, !tbaa !35
  %545 = load ptr, ptr %39, align 8, !tbaa !14
  %546 = call noundef i32 %544(ptr noundef nonnull %47, ptr noundef %545, ptr noundef nonnull %42)
  store i32 %546, ptr %44, align 4, !tbaa !13
  %547 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.750, ptr noundef null)
  %548 = icmp eq i32 %547, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #4
  br i1 %548, label %.thread216, label %549

549:                                              ; preds = %536
  %550 = load i64, ptr %42, align 8, !tbaa !22
  %551 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %550)
  %552 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %553 = getelementptr inbounds i8, ptr %552, i64 96
  %554 = load i32, ptr %553, align 8
  %555 = and i32 %554, -16776961
  %556 = or disjoint i32 %555, 1565184
  store i32 %556, ptr %553, align 8
  %557 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %558 = getelementptr inbounds i8, ptr %557, i64 32
  store ptr @.str.3, ptr %558, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #4
  store i32 0, ptr %45, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #4
  %559 = load ptr, ptr %382, align 8, !tbaa !36
  %560 = load ptr, ptr %39, align 8, !tbaa !14
  %561 = load i64, ptr %42, align 8, !tbaa !22
  %562 = call noundef i32 %559(ptr noundef nonnull %47, ptr noundef %560, i64 noundef 0, i64 noundef %561, ptr noundef %551)
  store i32 %562, ptr %46, align 4, !tbaa !13
  %563 = 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) %45, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.751, ptr noundef null)
  %564 = icmp eq i32 %563, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #4
  br i1 %564, label %.thread216, label %565

565:                                              ; preds = %549
  %566 = load ptr, ptr %383, align 8, !tbaa !38
  %567 = load ptr, ptr %39, align 8, !tbaa !14
  call void %566(ptr noundef nonnull %47, ptr noundef %567)
  %568 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %569 = getelementptr inbounds i8, ptr %568, i64 96
  %570 = load i32, ptr %569, align 8
  %571 = and i32 %570, -16776961
  %572 = or disjoint i32 %571, 1565952
  store i32 %572, ptr %569, align 8
  %573 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %574 = getelementptr inbounds i8, ptr %573, i64 32
  store ptr @.str.3, ptr %574, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %575 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull @.str.510, ptr noundef nonnull @.str.752)
  %576 = icmp eq i32 %575, 0
  br i1 %576, label %.thread216, label %.preheader

.preheader:                                       ; preds = %565
  %577 = load i64, ptr %24, align 8, !tbaa !22
  %.not186238.not = icmp eq i64 %577, 0
  br i1 %.not186238.not, label %._crit_edge241, label %.lr.ph240

.lr.ph240:                                        ; preds = %.preheader, %593
  %578 = phi i64 [ %594, %593 ], [ %577, %.preheader ]
  %.0239 = phi i64 [ %595, %593 ], [ 0, %.preheader ]
  %579 = getelementptr inbounds i8, ptr %425, i64 %.0239
  %580 = load i8, ptr %579, align 1, !tbaa !39
  %581 = getelementptr inbounds i8, ptr %551, i64 %.0239
  %582 = load i8, ptr %581, align 1, !tbaa !39
  %.not185 = icmp eq i8 %580, %582
  br i1 %.not185, label %593, label %583

583:                                              ; preds = %.lr.ph240
  %584 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %585 = getelementptr inbounds i8, ptr %584, i64 96
  %586 = load i32, ptr %585, align 8
  %587 = and i32 %586, -16776961
  %588 = or disjoint i32 %587, 1567744
  store i32 %588, ptr %585, align 8
  %589 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %590 = getelementptr inbounds i8, ptr %589, i64 32
  store ptr @.str.3, ptr %590, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %591 = call noundef i32 @_Z16jc_test_cmp_TRUEIbEiT_PKc(i1 noundef zeroext false, ptr noundef nonnull @.str.753)
  %592 = icmp eq i32 %591, 0
  br i1 %592, label %.thread216, label %._crit_edge258

._crit_edge258:                                   ; preds = %583
  %.pre = load i64, ptr %24, align 8, !tbaa !22
  br label %593

593:                                              ; preds = %._crit_edge258, %.lr.ph240
  %594 = phi i64 [ %.pre, %._crit_edge258 ], [ %578, %.lr.ph240 ]
  %595 = add nuw i64 %.0239, 1
  %.not186 = icmp ult i64 %595, %594
  br i1 %.not186, label %.lr.ph240, label %._crit_edge241, !llvm.loop !40

.thread209:                                       ; preds = %485, %469, %455, %441, %428, %410, %.lr.ph237
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %618

.thread216:                                       ; preds = %565, %549, %536, %583
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %618

._crit_edge241:                                   ; preds = %593, %.preheader
  call void @Longtail_Free(ptr noundef %425)
  call void @Longtail_Free(ptr noundef %551)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  br label %596

596:                                              ; preds = %._crit_edge241, %384
  call void @Longtail_Free(ptr noundef %395)
  %indvars.iv.next256 = add nuw nsw i64 %indvars.iv255, 1
  %597 = load ptr, ptr %2, align 8, !tbaa !14
  %598 = load i32, ptr %597, align 8, !tbaa !18
  %599 = zext i32 %598 to i64
  %600 = icmp ult i64 %indvars.iv.next256, %599
  br i1 %600, label %384, label %._crit_edge245, !llvm.loop !41

._crit_edge245:                                   ; preds = %596, %370
  %.not187 = icmp eq ptr %172, null
  br i1 %.not187, label %602, label %601

601:                                              ; preds = %._crit_edge245
  call void @Longtail_DisposeAPI(ptr noundef nonnull %172)
  br label %602

602:                                              ; preds = %601, %._crit_edge245
  call void @Longtail_Free(ptr noundef %157)
  %603 = load ptr, ptr %5, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %603)
  store ptr null, ptr %5, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %79)
  %604 = load ptr, ptr %2, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %604)
  store ptr null, ptr %2, align 8, !tbaa !14
  %.not188 = icmp eq ptr %53, null
  br i1 %.not188, label %606, label %605

605:                                              ; preds = %602
  call void @Longtail_DisposeAPI(ptr noundef nonnull %53)
  br label %606

606:                                              ; preds = %605, %602
  %.not189 = icmp eq ptr %52, null
  br i1 %.not189, label %608, label %607

607:                                              ; preds = %606
  call void @Longtail_DisposeAPI(ptr noundef nonnull %52)
  br label %608

608:                                              ; preds = %607, %606
  %.not190 = icmp eq ptr %51, null
  br i1 %.not190, label %610, label %609

609:                                              ; preds = %608
  call void @Longtail_DisposeAPI(ptr noundef nonnull %51)
  br label %610

610:                                              ; preds = %609, %608
  %.not191 = icmp eq ptr %50, null
  br i1 %.not191, label %612, label %611

611:                                              ; preds = %610
  call void @Longtail_DisposeAPI(ptr noundef nonnull %50)
  br label %612

612:                                              ; preds = %611, %610
  %.not192 = icmp eq ptr %49, null
  br i1 %.not192, label %614, label %613

613:                                              ; preds = %612
  call void @Longtail_DisposeAPI(ptr noundef nonnull %49)
  br label %614

614:                                              ; preds = %613, %612
  %.not193 = icmp eq ptr %48, null
  br i1 %.not193, label %616, label %615

615:                                              ; preds = %614
  call void @Longtail_DisposeAPI(ptr noundef nonnull %48)
  br label %616

616:                                              ; preds = %615, %614
  %.not194 = icmp eq ptr %47, null
  br i1 %.not194, label %618, label %617

617:                                              ; preds = %616
  call void @Longtail_DisposeAPI(ptr noundef nonnull %47)
  br label %618

618:                                              ; preds = %.thread216, %.thread212, %.thread209, %.thread206, %.critedge198, %281, %369, %617, %616, %219, %206, %194
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #4
  br label %619

619:                                              ; preds = %182, %618, %169, %148, %134
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #4
  br label %620

620:                                              ; preds = %619, %114, %102
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #4
  br label %621

621:                                              ; preds = %89, %620, %76, %64
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #4
  ret void
}

declare ptr @Longtail_CreateBlockStoreStorageAPI(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare ptr @LongtailPrivate_LookupTable_Create(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #1

declare i64 @LongtailPrivate_LookupTable_GetSize(i32 noundef) local_unnamed_addr #1

declare i32 @LongtailPrivate_GetPathHash(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @LongtailPrivate_LookupTable_Put(ptr noundef, i64 noundef, i32 noundef) local_unnamed_addr #1

declare ptr @LongtailPrivate_LookupTable_Get(ptr noundef, i64 noundef) local_unnamed_addr #1

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 32}
!6 = !{!"_ZTS15jc_test_fixture", !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !10, i64 64, !11, i64 88, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 92, !11, i64 96, !11, i64 97, !11, i64 99, !11, i64 100}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS13jc_test_stats", !11, i64 0, !11, i64 4, !11, i64 6, !11, i64 8, !11, i64 12, !12, i64 16}
!11 = !{!"int", !8, i64 0}
!12 = !{!"long", !8, i64 0}
!13 = !{!11, !11, i64 0}
!14 = !{!7, !7, i64 0}
!15 = !{!16, !7, i64 32}
!16 = !{!"_ZTS21Longtail_VersionIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !11, i64 128, !7, i64 136, !7, i64 144}
!17 = !{!16, !7, i64 96}
!18 = !{!19, !11, i64 0}
!19 = !{!"_ZTS18Longtail_FileInfos", !11, i64 0, !11, i64 4, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32}
!20 = !{!19, !7, i64 32}
!21 = !{!19, !7, i64 16}
!22 = !{!12, !12, i64 0}
!23 = distinct !{!23, !24}
!24 = !{!"llvm.loop.mustprogress"}
!25 = distinct !{!25, !24}
!26 = !{!19, !7, i64 8}
!27 = !{!19, !7, i64 24}
!28 = distinct !{!28, !24}
!29 = !{!16, !7, i64 24}
!30 = !{!31, !7, i64 96}
!31 = !{!"_ZTS19Longtail_StorageAPI", !32, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176, !7, i64 184, !7, i64 192, !7, i64 200, !7, i64 208}
!32 = !{!"_ZTS12Longtail_API", !7, i64 0}
!33 = !{!31, !7, i64 112}
!34 = !{!31, !7, i64 8}
!35 = !{!31, !7, i64 16}
!36 = !{!31, !7, i64 24}
!37 = distinct !{!37, !24}
!38 = !{!31, !7, i64 72}
!39 = !{!8, !8, i64 0}
!40 = distinct !{!40, !24}
!41 = distinct !{!41, !24}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass