; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN45Longtail_Longtail_MergeVersionIndex (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"

%class.anon = type { i8 }
%class.anon.0 = type { ptr, ptr, ptr }
%class.anon.1 = type { ptr, ptr }
%struct.jc_test_fixture = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.jc_test_stats, i32, i32, i32, i32 }
%struct.jc_test_stats = type { i32, i32, i32, i32, i64 }
%struct.Longtail_VersionIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, ptr }
%struct.Longtail_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_JobAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_ChunkerAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_CompressionRegistryAPI = type { %struct.Longtail_API, ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [5 x i8], align 1
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_FILENAMES = external hidden unnamed_addr constant [6 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_STRINGS = external hidden unnamed_addr constant [6 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_PERMISSIONS = external hidden unnamed_addr constant [6 x i16], align 2
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_FILENAMES = external hidden unnamed_addr constant [8 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_STRINGS = external hidden unnamed_addr constant [8 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_PERMISSIONS = external hidden unnamed_addr constant [8 x i16], align 16
@.str.937 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.938 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.939 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.940 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.941 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.942 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.943 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.944 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.945 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.946 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.947 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.948 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.949 = external hidden unnamed_addr constant [128 x i8], align 1
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_FILENAMES = external hidden unnamed_addr constant [12 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_STRINGS = external hidden unnamed_addr constant [12 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_PERMISSIONS = external hidden unnamed_addr constant [12 x i16], align 16
@.str.962 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.963 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.964 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.965 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.966 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.967 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.968 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.969 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.970 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.971 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.972 = external hidden unnamed_addr constant [56 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

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #3

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

declare void @Longtail_DisposeAPI(ptr noundef) #1

declare ptr @Longtail_CreateBlake3HashAPI() #1

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

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

declare ptr @Longtail_CreateHPCDCChunkerAPI() #1

declare ptr @Longtail_CreateBikeshedJobAPI(i32 noundef, i32 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) #4

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #3

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) #4

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 dso_local noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StoreIndexS1_EiT_T0_PKcS5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #4

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #4 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 [6 x ptr], align 16
  %12 = alloca [6 x ptr], align 16
  %13 = alloca [6 x i16], align 2
  %14 = alloca %class.anon, align 1
  %15 = alloca [8 x ptr], align 16
  %16 = alloca [8 x ptr], align 16
  %17 = alloca [8 x i16], align 16
  %18 = alloca %class.anon.0, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca %class.anon.1, align 8
  %23 = alloca ptr, align 8
  %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 i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca ptr, align 8
  %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 [12 x ptr], align 16
  %43 = alloca [12 x ptr], align 16
  %44 = alloca [12 x i16], align 16
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i16, align 2
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i64, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i64, align 8
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %67 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #6
  %68 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %68, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #6
  %69 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %69, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #6
  %70 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %70, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  %71 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %71, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  %72 = call ptr @Longtail_CreateHPCDCChunkerAPI()
  store ptr %72, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  %73 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  store ptr %73, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #6
  %74 = load ptr, ptr %8, align 8, !tbaa !5
  %75 = load ptr, ptr %4, align 8, !tbaa !5
  %76 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %74, ptr noundef %75, ptr noundef @.str.270, ptr noundef null, i32 noundef 0)
  store ptr %76, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #6
  %77 = load ptr, ptr %9, align 8, !tbaa !5
  %78 = load ptr, ptr %5, align 8, !tbaa !5
  %79 = call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %77, ptr noundef %78)
  store ptr %79, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr %11) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %11, ptr align 16 @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_FILENAMES, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr %12) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %12, ptr align 16 @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_STRINGS, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr %13) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %13, ptr align 2 @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_PERMISSIONS, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #6
  %80 = getelementptr inbounds [6 x ptr], ptr %11, i64 0, i64 0
  %81 = getelementptr inbounds [6 x ptr], ptr %12, i64 0, i64 0
  %82 = getelementptr inbounds [6 x i16], ptr %13, i64 0, i64 0
  %83 = load ptr, ptr %3, align 8, !tbaa !5
  call void @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_0clEPPKcS3_PKtmP19Longtail_StorageAPI"(ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef %80, ptr noundef %81, ptr noundef %82, i64 noundef 6, ptr noundef %83)
  call void @llvm.lifetime.start.p0(i64 64, ptr %15) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %15, ptr align 16 @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_FILENAMES, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr %16) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %16, ptr align 16 @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_STRINGS, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %17, ptr align 16 @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_PERMISSIONS, i64 16, i1 false)
  %84 = getelementptr inbounds [8 x ptr], ptr %15, i64 0, i64 0
  %85 = getelementptr inbounds [8 x ptr], ptr %16, i64 0, i64 0
  %86 = getelementptr inbounds [8 x i16], ptr %17, i64 0, i64 0
  %87 = load ptr, ptr %3, align 8, !tbaa !5
  call void @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_0clEPPKcS3_PKtmP19Longtail_StorageAPI"(ptr noundef nonnull align 1 dereferenceable(1) %14, ptr noundef %84, ptr noundef %85, ptr noundef %86, i64 noundef 8, ptr noundef %87)
  call void @llvm.lifetime.start.p0(i64 24, ptr %18) #6
  %88 = getelementptr inbounds %class.anon.0, ptr %18, i32 0, i32 0
  %89 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %89, ptr %88, align 8, !tbaa !9
  %90 = getelementptr inbounds %class.anon.0, ptr %18, i32 0, i32 1
  %91 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %91, ptr %90, align 8, !tbaa !11
  %92 = getelementptr inbounds %class.anon.0, ptr %18, i32 0, i32 2
  %93 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %93, ptr %92, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  %94 = load ptr, ptr %3, align 8, !tbaa !5
  %95 = call noundef ptr @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_1clEP19Longtail_StorageAPIPKc"(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef %94, ptr noundef @.str.937)
  store ptr %95, ptr %19, align 8, !tbaa !5
  br label %96

96:                                               ; preds = %1
  %97 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %98 = getelementptr inbounds %struct.jc_test_fixture, ptr %97, i32 0, i32 11
  %99 = load i32, ptr %98, align 8
  %100 = and i32 %99, -16776961
  %101 = or i32 %100, 2044416
  store i32 %101, ptr %98, align 8
  %102 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %103 = getelementptr inbounds %struct.jc_test_fixture, ptr %102, i32 0, i32 4
  store ptr @.str.3, ptr %103, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  %104 = load ptr, ptr %19, align 8, !tbaa !5
  %105 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef %104, ptr noundef null, ptr noundef @.str.938, ptr noundef @.str.259)
  %106 = icmp eq i32 %105, 0
  br i1 %106, label %107, label %108

107:                                              ; preds = %96
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %595

108:                                              ; preds = %96
  br label %109

109:                                              ; preds = %108
  br label %110

110:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  %111 = load ptr, ptr %3, align 8, !tbaa !5
  %112 = call noundef ptr @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_1clEP19Longtail_StorageAPIPKc"(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef %111, ptr noundef @.str.939)
  store ptr %112, ptr %21, align 8, !tbaa !5
  br label %113

113:                                              ; preds = %110
  %114 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %115 = getelementptr inbounds %struct.jc_test_fixture, ptr %114, i32 0, i32 11
  %116 = load i32, ptr %115, align 8
  %117 = and i32 %116, -16776961
  %118 = or i32 %117, 2044928
  store i32 %118, ptr %115, align 8
  %119 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %120 = getelementptr inbounds %struct.jc_test_fixture, ptr %119, i32 0, i32 4
  store ptr @.str.3, ptr %120, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  %121 = load ptr, ptr %21, align 8, !tbaa !5
  %122 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef %121, ptr noundef null, ptr noundef @.str.940, ptr noundef @.str.259)
  %123 = icmp eq i32 %122, 0
  br i1 %123, label %124, label %125

124:                                              ; preds = %113
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %594

125:                                              ; preds = %113
  br label %126

126:                                              ; preds = %125
  br label %127

127:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #6
  %128 = getelementptr inbounds %class.anon.1, ptr %22, i32 0, i32 0
  %129 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %129, ptr %128, align 8, !tbaa !18
  %130 = getelementptr inbounds %class.anon.1, ptr %22, i32 0, i32 1
  %131 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %131, ptr %130, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  %132 = load ptr, ptr %19, align 8, !tbaa !5
  %133 = call noundef ptr @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_2clEPK21Longtail_VersionIndex"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef %132)
  store ptr %133, ptr %23, align 8, !tbaa !5
  br label %134

134:                                              ; preds = %127
  %135 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %136 = getelementptr inbounds %struct.jc_test_fixture, ptr %135, i32 0, i32 11
  %137 = load i32, ptr %136, align 8
  %138 = and i32 %137, -16776961
  %139 = or i32 %138, 2047232
  store i32 %139, ptr %136, align 8
  %140 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %141 = getelementptr inbounds %struct.jc_test_fixture, ptr %140, i32 0, i32 4
  store ptr @.str.3, ptr %141, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  %142 = load ptr, ptr %23, align 8, !tbaa !5
  %143 = call noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StoreIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %142, ptr noundef @.str.534, ptr noundef @.str.941)
  %144 = icmp eq i32 %143, 0
  br i1 %144, label %145, label %146

145:                                              ; preds = %134
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %593

146:                                              ; preds = %134
  br label %147

147:                                              ; preds = %146
  br label %148

148:                                              ; preds = %147
  br label %149

149:                                              ; preds = %148
  %150 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %151 = getelementptr inbounds %struct.jc_test_fixture, ptr %150, i32 0, i32 11
  %152 = load i32, ptr %151, align 8
  %153 = and i32 %152, -16776961
  %154 = or i32 %153, 2047488
  store i32 %154, ptr %151, align 8
  %155 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %156 = getelementptr inbounds %struct.jc_test_fixture, ptr %155, i32 0, i32 4
  store ptr @.str.3, ptr %156, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  store i32 0, ptr %24, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  %157 = load ptr, ptr %3, align 8, !tbaa !5
  %158 = load ptr, ptr %10, align 8, !tbaa !5
  %159 = load ptr, ptr %8, align 8, !tbaa !5
  %160 = load ptr, ptr %23, align 8, !tbaa !5
  %161 = load ptr, ptr %19, align 8, !tbaa !5
  %162 = call i32 @Longtail_WriteContent(ptr noundef %157, ptr noundef %158, ptr noundef %159, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %160, ptr noundef %161, ptr noundef @.str.937)
  store i32 %162, ptr %25, align 4, !tbaa !21
  %163 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef @.str.46, ptr noundef @.str.942, ptr noundef null)
  %164 = icmp eq i32 %163, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  br i1 %164, label %165, label %166

165:                                              ; preds = %149
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %593

166:                                              ; preds = %149
  br label %167

167:                                              ; preds = %166
  br label %168

168:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #6
  %169 = load ptr, ptr %10, align 8, !tbaa !5
  %170 = load ptr, ptr %21, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %170, i32 0, i32 4
  %172 = load ptr, ptr %171, align 8, !tbaa !22
  %173 = load i32, ptr %172, align 4, !tbaa !21
  %174 = load ptr, ptr %21, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %174, i32 0, i32 12
  %176 = load ptr, ptr %175, align 8, !tbaa !24
  %177 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %169, i32 noundef %173, ptr noundef %176, i32 noundef 0)
  store ptr %177, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #6
  br label %178

178:                                              ; preds = %168
  %179 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %180 = getelementptr inbounds %struct.jc_test_fixture, ptr %179, i32 0, i32 11
  %181 = load i32, ptr %180, align 8
  %182 = and i32 %181, -16776961
  %183 = or i32 %182, 2050304
  store i32 %183, ptr %180, align 8
  %184 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %185 = getelementptr inbounds %struct.jc_test_fixture, ptr %184, i32 0, i32 4
  store ptr @.str.3, ptr %185, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  store i32 0, ptr %28, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #6
  %186 = load ptr, ptr %6, align 8, !tbaa !5
  %187 = load ptr, ptr %26, align 8, !tbaa !5
  %188 = load ptr, ptr %21, align 8, !tbaa !5
  %189 = call i32 @Longtail_CreateMissingContent(ptr noundef %186, ptr noundef %187, ptr noundef %188, i32 noundef 32, i32 noundef 3, ptr noundef %27)
  store i32 %189, ptr %29, align 4, !tbaa !21
  %190 = 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.943, ptr noundef null)
  %191 = icmp eq i32 %190, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  br i1 %191, label %192, label %193

192:                                              ; preds = %178
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %592

193:                                              ; preds = %178
  br label %194

194:                                              ; preds = %193
  br label %195

195:                                              ; preds = %194
  br label %196

196:                                              ; preds = %195
  %197 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %198 = getelementptr inbounds %struct.jc_test_fixture, ptr %197, i32 0, i32 11
  %199 = load i32, ptr %198, align 8
  %200 = and i32 %199, -16776961
  %201 = or i32 %200, 2050816
  store i32 %201, ptr %198, align 8
  %202 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %203 = getelementptr inbounds %struct.jc_test_fixture, ptr %202, i32 0, i32 4
  store ptr @.str.3, ptr %203, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #6
  store i32 0, ptr %30, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  %204 = load ptr, ptr %3, align 8, !tbaa !5
  %205 = load ptr, ptr %10, align 8, !tbaa !5
  %206 = load ptr, ptr %8, align 8, !tbaa !5
  %207 = load ptr, ptr %27, align 8, !tbaa !5
  %208 = load ptr, ptr %21, align 8, !tbaa !5
  %209 = call i32 @Longtail_WriteContent(ptr noundef %204, ptr noundef %205, ptr noundef %206, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %207, ptr noundef %208, ptr noundef @.str.939)
  store i32 %209, ptr %31, align 4, !tbaa !21
  %210 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef @.str.46, ptr noundef @.str.944, ptr noundef null)
  %211 = icmp eq i32 %210, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  br i1 %211, label %212, label %213

212:                                              ; preds = %196
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %592

213:                                              ; preds = %196
  br label %214

214:                                              ; preds = %213
  br label %215

215:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  br label %216

216:                                              ; preds = %215
  %217 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %218 = getelementptr inbounds %struct.jc_test_fixture, ptr %217, i32 0, i32 11
  %219 = load i32, ptr %218, align 8
  %220 = and i32 %219, -16776961
  %221 = or i32 %220, 2051584
  store i32 %221, ptr %218, align 8
  %222 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %223 = getelementptr inbounds %struct.jc_test_fixture, ptr %222, i32 0, i32 4
  store ptr @.str.3, ptr %223, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #6
  store i32 0, ptr %33, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  %224 = load ptr, ptr %23, align 8, !tbaa !5
  %225 = load ptr, ptr %27, align 8, !tbaa !5
  %226 = call i32 @Longtail_MergeStoreIndex(ptr noundef %224, ptr noundef %225, ptr noundef %32)
  store i32 %226, ptr %34, align 4, !tbaa !21
  %227 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef @.str.46, ptr noundef @.str.945, ptr noundef null)
  %228 = icmp eq i32 %227, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #6
  br i1 %228, label %229, label %230

229:                                              ; preds = %216
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %591

230:                                              ; preds = %216
  br label %231

231:                                              ; preds = %230
  br label %232

232:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  br label %233

233:                                              ; preds = %232
  %234 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %235 = getelementptr inbounds %struct.jc_test_fixture, ptr %234, i32 0, i32 11
  %236 = load i32, ptr %235, align 8
  %237 = and i32 %236, -16776961
  %238 = or i32 %237, 2052352
  store i32 %238, ptr %235, align 8
  %239 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %240 = getelementptr inbounds %struct.jc_test_fixture, ptr %239, i32 0, i32 4
  store ptr @.str.3, ptr %240, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  store i32 0, ptr %36, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #6
  %241 = load ptr, ptr %19, align 8, !tbaa !5
  %242 = load ptr, ptr %21, align 8, !tbaa !5
  %243 = call i32 @Longtail_MergeVersionIndex(ptr noundef %241, ptr noundef %242, ptr noundef %35)
  store i32 %243, ptr %37, align 4, !tbaa !21
  %244 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef @.str.46, ptr noundef @.str.946, ptr noundef null)
  %245 = icmp eq i32 %244, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  br i1 %245, label %246, label %247

246:                                              ; preds = %233
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %590

247:                                              ; preds = %233
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #6
  store i32 0, ptr %38, align 4, !tbaa !21
  br label %250

250:                                              ; preds = %289, %249
  %251 = load i32, ptr %38, align 4, !tbaa !21
  %252 = load ptr, ptr %35, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %252, i32 0, i32 3
  %254 = load ptr, ptr %253, align 8, !tbaa !25
  %255 = load i32, ptr %254, align 4, !tbaa !21
  %256 = icmp ult i32 %251, %255
  br i1 %256, label %258, label %257

257:                                              ; preds = %250
  store i32 18, ptr %20, align 4
  br label %292

258:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #6
  %259 = load ptr, ptr %35, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %259, i32 0, i32 18
  %261 = load ptr, ptr %260, align 8, !tbaa !26
  %262 = load ptr, ptr %35, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.Longtail_VersionIndex, ptr %262, i32 0, i32 15
  %264 = load ptr, ptr %263, align 8, !tbaa !27
  %265 = load i32, ptr %38, align 4, !tbaa !21
  %266 = zext i32 %265 to i64
  %267 = getelementptr inbounds i32, ptr %264, i64 %266
  %268 = load i32, ptr %267, align 4, !tbaa !21
  %269 = zext i32 %268 to i64
  %270 = getelementptr inbounds i8, ptr %261, i64 %269
  store ptr %270, ptr %39, align 8, !tbaa !5
  br label %271

271:                                              ; preds = %258
  %272 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %273 = getelementptr inbounds %struct.jc_test_fixture, ptr %272, i32 0, i32 11
  %274 = load i32, ptr %273, align 8
  %275 = and i32 %274, -16776961
  %276 = or i32 %275, 2053376
  store i32 %276, ptr %273, align 8
  %277 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %278 = getelementptr inbounds %struct.jc_test_fixture, ptr %277, i32 0, i32 4
  store ptr @.str.3, ptr %278, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  %279 = load ptr, ptr %39, align 8, !tbaa !5
  %280 = call noundef i32 @_Z14jc_test_cmp_NEIPKcS1_EiT_T0_S1_S1_(ptr noundef null, ptr noundef %279, ptr noundef @.str.947, ptr noundef @.str.739)
  %281 = icmp eq i32 %280, 0
  br i1 %281, label %282, label %283

282:                                              ; preds = %271
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %286

283:                                              ; preds = %271
  br label %284

284:                                              ; preds = %283
  br label %285

285:                                              ; preds = %284
  store i32 0, ptr %20, align 4
  br label %286

286:                                              ; preds = %285, %282
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  %287 = load i32, ptr %20, align 4
  switch i32 %287, label %292 [
    i32 0, label %288
  ]

288:                                              ; preds = %286
  br label %289

289:                                              ; preds = %288
  %290 = load i32, ptr %38, align 4, !tbaa !21
  %291 = add i32 %290, 1
  store i32 %291, ptr %38, align 4, !tbaa !21
  br label %250, !llvm.loop !28

292:                                              ; preds = %286, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  %293 = load i32, ptr %20, align 4
  switch i32 %293, label %590 [
    i32 18, label %294
  ]

294:                                              ; preds = %292
  br label %295

295:                                              ; preds = %294
  %296 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %297 = getelementptr inbounds %struct.jc_test_fixture, ptr %296, i32 0, i32 11
  %298 = load i32, ptr %297, align 8
  %299 = and i32 %298, -16776961
  %300 = or i32 %299, 2054144
  store i32 %300, ptr %297, align 8
  %301 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %302 = getelementptr inbounds %struct.jc_test_fixture, ptr %301, i32 0, i32 4
  store ptr @.str.3, ptr %302, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #6
  store i32 0, ptr %40, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #6
  %303 = load ptr, ptr %10, align 8, !tbaa !5
  %304 = load ptr, ptr %3, align 8, !tbaa !5
  %305 = load ptr, ptr %8, align 8, !tbaa !5
  %306 = load ptr, ptr %32, align 8, !tbaa !5
  %307 = load ptr, ptr %35, align 8, !tbaa !5
  %308 = call i32 @Longtail_WriteVersion(ptr noundef %303, ptr noundef %304, ptr noundef %305, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %306, ptr noundef %307, ptr noundef @.str.948, i32 noundef 1)
  store i32 %308, ptr %41, align 4, !tbaa !21
  %309 = 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 @.str.46, ptr noundef @.str.949, ptr noundef null)
  %310 = icmp eq i32 %309, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  br i1 %310, label %311, label %312

311:                                              ; preds = %295
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %590

312:                                              ; preds = %295
  br label %313

313:                                              ; preds = %312
  br label %314

314:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 96, ptr %42) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %42, ptr align 16 @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_FILENAMES, i64 96, i1 false)
  call void @llvm.lifetime.start.p0(i64 96, ptr %43) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %43, ptr align 16 @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_STRINGS, i64 96, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %44) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %44, ptr align 16 @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_PERMISSIONS, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #6
  store i32 0, ptr %45, align 4, !tbaa !21
  br label %315

315:                                              ; preds = %528, %314
  %316 = load i32, ptr %45, align 4, !tbaa !21
  %317 = icmp ult i32 %316, 12
  br i1 %317, label %319, label %318

318:                                              ; preds = %315
  store i32 25, ptr %20, align 4
  br label %531

319:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  %320 = load i32, ptr %45, align 4, !tbaa !21
  %321 = zext i32 %320 to i64
  %322 = getelementptr inbounds [12 x ptr], ptr %42, i64 0, i64 %321
  %323 = load ptr, ptr %322, align 8, !tbaa !5
  store ptr %323, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %47) #6
  br label %324

324:                                              ; preds = %319
  %325 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %326 = getelementptr inbounds %struct.jc_test_fixture, ptr %325, i32 0, i32 11
  %327 = load i32, ptr %326, align 8
  %328 = and i32 %327, -16776961
  %329 = or i32 %328, 2067200
  store i32 %329, ptr %326, align 8
  %330 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %331 = getelementptr inbounds %struct.jc_test_fixture, ptr %330, i32 0, i32 4
  store ptr @.str.3, ptr %331, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  store i32 0, ptr %48, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #6
  %332 = load ptr, ptr %3, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %332, i32 0, i32 8
  %334 = load ptr, ptr %333, align 8, !tbaa !30
  %335 = load ptr, ptr %3, align 8, !tbaa !5
  %336 = load ptr, ptr %46, align 8, !tbaa !5
  %337 = call noundef i32 %334(ptr noundef %335, ptr noundef %336, ptr noundef %47)
  store i32 %337, ptr %49, align 4, !tbaa !21
  %338 = 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) %48, ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef @.str.46, ptr noundef @.str.962, ptr noundef null)
  %339 = icmp eq i32 %338, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  br i1 %339, label %340, label %341

340:                                              ; preds = %324
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %525

341:                                              ; preds = %324
  br label %342

342:                                              ; preds = %341
  br label %343

343:                                              ; preds = %342
  br label %344

344:                                              ; preds = %343
  %345 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %346 = getelementptr inbounds %struct.jc_test_fixture, ptr %345, i32 0, i32 11
  %347 = load i32, ptr %346, align 8
  %348 = and i32 %347, -16776961
  %349 = or i32 %348, 2067456
  store i32 %349, ptr %346, align 8
  %350 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %351 = getelementptr inbounds %struct.jc_test_fixture, ptr %350, i32 0, i32 4
  store ptr @.str.3, ptr %351, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #6
  %352 = load i16, ptr %47, align 2, !tbaa !33
  %353 = zext i16 %352 to i32
  %354 = and i32 %353, 384
  store i32 %354, ptr %50, align 4, !tbaa !21
  %355 = load i32, ptr %45, align 4, !tbaa !21
  %356 = zext i32 %355 to i64
  %357 = getelementptr inbounds [12 x i16], ptr %44, i64 0, i64 %356
  %358 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIitEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %50, ptr noundef nonnull align 2 dereferenceable(2) %357, ptr noundef @.str.963, ptr noundef @.str.964)
  %359 = icmp eq i32 %358, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #6
  br i1 %359, label %360, label %361

360:                                              ; preds = %344
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %525

361:                                              ; preds = %344
  br label %362

362:                                              ; preds = %361
  br label %363

363:                                              ; preds = %362
  %364 = load i32, ptr %45, align 4, !tbaa !21
  %365 = zext i32 %364 to i64
  %366 = getelementptr inbounds [12 x ptr], ptr %43, i64 0, i64 %365
  %367 = load ptr, ptr %366, align 8, !tbaa !5
  %368 = icmp eq ptr %367, null
  br i1 %368, label %369, label %390

369:                                              ; preds = %363
  br label %370

370:                                              ; preds = %369
  %371 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %372 = getelementptr inbounds %struct.jc_test_fixture, ptr %371, i32 0, i32 11
  %373 = load i32, ptr %372, align 8
  %374 = and i32 %373, -16776961
  %375 = or i32 %374, 2068224
  store i32 %375, ptr %372, align 8
  %376 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %377 = getelementptr inbounds %struct.jc_test_fixture, ptr %376, i32 0, i32 4
  store ptr @.str.3, ptr %377, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #6
  %378 = load ptr, ptr %3, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %378, i32 0, i32 13
  %380 = load ptr, ptr %379, align 8, !tbaa !35
  %381 = load ptr, ptr %3, align 8, !tbaa !5
  %382 = load ptr, ptr %46, align 8, !tbaa !5
  %383 = call noundef i32 %380(ptr noundef %381, ptr noundef %382)
  store i32 %383, ptr %51, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #6
  store i32 1, ptr %52, align 4, !tbaa !21
  %384 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %51, ptr noundef nonnull align 4 dereferenceable(4) %52, ptr noundef @.str.965, ptr noundef @.str.232)
  %385 = icmp eq i32 %384, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  br i1 %385, label %386, label %387

386:                                              ; preds = %370
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %525

387:                                              ; preds = %370
  br label %388

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388
  store i32 27, ptr %20, align 4
  br label %525

390:                                              ; preds = %363
  br label %391

391:                                              ; preds = %390
  %392 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %393 = getelementptr inbounds %struct.jc_test_fixture, ptr %392, i32 0, i32 11
  %394 = load i32, ptr %393, align 8
  %395 = and i32 %394, -16776961
  %396 = or i32 %395, 2068992
  store i32 %396, ptr %393, align 8
  %397 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %398 = getelementptr inbounds %struct.jc_test_fixture, ptr %397, i32 0, i32 4
  store ptr @.str.3, ptr %398, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  %399 = load ptr, ptr %3, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %399, i32 0, i32 14
  %401 = load ptr, ptr %400, align 8, !tbaa !36
  %402 = load ptr, ptr %3, align 8, !tbaa !5
  %403 = load ptr, ptr %46, align 8, !tbaa !5
  %404 = call noundef i32 %401(ptr noundef %402, ptr noundef %403)
  store i32 %404, ptr %53, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  store i32 1, ptr %54, align 4, !tbaa !21
  %405 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %53, ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef @.str.966, ptr noundef @.str.232)
  %406 = icmp eq i32 %405, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  br i1 %406, label %407, label %408

407:                                              ; preds = %391
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %525

408:                                              ; preds = %391
  br label %409

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #6
  br label %411

411:                                              ; preds = %410
  %412 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %413 = getelementptr inbounds %struct.jc_test_fixture, ptr %412, i32 0, i32 11
  %414 = load i32, ptr %413, align 8
  %415 = and i32 %414, -16776961
  %416 = or i32 %415, 2069504
  store i32 %416, ptr %413, align 8
  %417 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %418 = getelementptr inbounds %struct.jc_test_fixture, ptr %417, i32 0, i32 4
  store ptr @.str.3, ptr %418, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #6
  store i32 0, ptr %56, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #6
  %419 = load ptr, ptr %3, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %419, i32 0, i32 1
  %421 = load ptr, ptr %420, align 8, !tbaa !37
  %422 = load ptr, ptr %3, align 8, !tbaa !5
  %423 = load ptr, ptr %46, align 8, !tbaa !5
  %424 = call noundef i32 %421(ptr noundef %422, ptr noundef %423, ptr noundef %55)
  store i32 %424, ptr %57, align 4, !tbaa !21
  %425 = 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.967, ptr noundef null)
  %426 = icmp eq i32 %425, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  br i1 %426, label %427, label %428

427:                                              ; preds = %411
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %524

428:                                              ; preds = %411
  br label %429

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %429
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #6
  br label %431

431:                                              ; preds = %430
  %432 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %433 = getelementptr inbounds %struct.jc_test_fixture, ptr %432, i32 0, i32 11
  %434 = load i32, ptr %433, align 8
  %435 = and i32 %434, -16776961
  %436 = or i32 %435, 2070016
  store i32 %436, ptr %433, align 8
  %437 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %438 = getelementptr inbounds %struct.jc_test_fixture, ptr %437, i32 0, i32 4
  store ptr @.str.3, ptr %438, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #6
  store i32 0, ptr %59, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #6
  %439 = load ptr, ptr %3, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %439, i32 0, i32 2
  %441 = load ptr, ptr %440, align 8, !tbaa !38
  %442 = load ptr, ptr %3, align 8, !tbaa !5
  %443 = load ptr, ptr %55, align 8, !tbaa !5
  %444 = call noundef i32 %441(ptr noundef %442, ptr noundef %443, ptr noundef %58)
  store i32 %444, ptr %60, align 4, !tbaa !21
  %445 = 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) %59, ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef @.str.46, ptr noundef @.str.968, ptr noundef null)
  %446 = icmp eq i32 %445, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  br i1 %446, label %447, label %448

447:                                              ; preds = %431
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %523

448:                                              ; preds = %431
  br label %449

449:                                              ; preds = %448
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  %452 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %453 = getelementptr inbounds %struct.jc_test_fixture, ptr %452, i32 0, i32 11
  %454 = load i32, ptr %453, align 8
  %455 = and i32 %454, -16776961
  %456 = or i32 %455, 2070272
  store i32 %456, ptr %453, align 8
  %457 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %458 = getelementptr inbounds %struct.jc_test_fixture, ptr %457, i32 0, i32 4
  store ptr @.str.3, ptr %458, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #6
  %459 = load i32, ptr %45, align 4, !tbaa !21
  %460 = zext i32 %459 to i64
  %461 = getelementptr inbounds [12 x ptr], ptr %43, i64 0, i64 %460
  %462 = load ptr, ptr %461, align 8, !tbaa !5
  %463 = call i64 @strlen(ptr noundef %462) #7
  %464 = add i64 %463, 1
  store i64 %464, ptr %61, align 8, !tbaa !39
  %465 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef @.str.510, ptr noundef @.str.969)
  %466 = icmp eq i32 %465, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  br i1 %466, label %467, label %468

467:                                              ; preds = %451
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %523

468:                                              ; preds = %451
  br label %469

469:                                              ; preds = %468
  br label %470

470:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #6
  %471 = load i64, ptr %58, align 8, !tbaa !39
  %472 = call ptr @Longtail_Alloc(ptr noundef @.str.970, i64 noundef %471)
  store ptr %472, ptr %62, align 8, !tbaa !5
  br label %473

473:                                              ; preds = %470
  %474 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %475 = getelementptr inbounds %struct.jc_test_fixture, ptr %474, i32 0, i32 11
  %476 = load i32, ptr %475, align 8
  %477 = and i32 %476, -16776961
  %478 = or i32 %477, 2070784
  store i32 %478, ptr %475, align 8
  %479 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %480 = getelementptr inbounds %struct.jc_test_fixture, ptr %479, i32 0, i32 4
  store ptr @.str.3, ptr %480, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #6
  store i32 0, ptr %63, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #6
  %481 = load ptr, ptr %3, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %481, i32 0, i32 3
  %483 = load ptr, ptr %482, align 8, !tbaa !40
  %484 = load ptr, ptr %3, align 8, !tbaa !5
  %485 = load ptr, ptr %55, align 8, !tbaa !5
  %486 = load i64, ptr %58, align 8, !tbaa !39
  %487 = load ptr, ptr %62, align 8, !tbaa !5
  %488 = call noundef i32 %483(ptr noundef %484, ptr noundef %485, i64 noundef 0, i64 noundef %486, ptr noundef %487)
  store i32 %488, ptr %64, align 4, !tbaa !21
  %489 = 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) %63, ptr noundef nonnull align 4 dereferenceable(4) %64, ptr noundef @.str.46, ptr noundef @.str.971, ptr noundef null)
  %490 = icmp eq i32 %489, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #6
  br i1 %490, label %491, label %492

491:                                              ; preds = %473
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %522

492:                                              ; preds = %473
  br label %493

493:                                              ; preds = %492
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494
  %496 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %497 = getelementptr inbounds %struct.jc_test_fixture, ptr %496, i32 0, i32 11
  %498 = load i32, ptr %497, align 8
  %499 = and i32 %498, -16776961
  %500 = or i32 %499, 2071040
  store i32 %500, ptr %497, align 8
  %501 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %502 = getelementptr inbounds %struct.jc_test_fixture, ptr %501, i32 0, i32 4
  store ptr @.str.3, ptr %502, align 8, !tbaa !13
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #6
  %503 = load ptr, ptr %62, align 8, !tbaa !5
  %504 = load i32, ptr %45, align 4, !tbaa !21
  %505 = zext i32 %504 to i64
  %506 = getelementptr inbounds [12 x ptr], ptr %43, i64 0, i64 %505
  %507 = load ptr, ptr %506, align 8, !tbaa !5
  %508 = load i64, ptr %58, align 8, !tbaa !39
  %509 = call i32 @memcmp(ptr noundef %503, ptr noundef %507, i64 noundef %508) #7
  store i32 %509, ptr %65, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #6
  store i32 0, ptr %66, align 4, !tbaa !21
  %510 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %65, ptr noundef nonnull align 4 dereferenceable(4) %66, ptr noundef @.str.972, ptr noundef @.str.46)
  %511 = icmp eq i32 %510, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  br i1 %511, label %512, label %513

512:                                              ; preds = %495
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %20, align 4
  br label %522

513:                                              ; preds = %495
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514
  %516 = load ptr, ptr %62, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %516)
  %517 = load ptr, ptr %3, align 8, !tbaa !5
  %518 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %517, i32 0, i32 9
  %519 = load ptr, ptr %518, align 8, !tbaa !41
  %520 = load ptr, ptr %3, align 8, !tbaa !5
  %521 = load ptr, ptr %55, align 8, !tbaa !5
  call void %519(ptr noundef %520, ptr noundef %521)
  store i32 0, ptr %20, align 4
  br label %522

522:                                              ; preds = %515, %512, %491
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #6
  br label %523

523:                                              ; preds = %522, %467, %447
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  br label %524

524:                                              ; preds = %523, %427
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #6
  br label %525

525:                                              ; preds = %524, %407, %389, %386, %360, %340
  call void @llvm.lifetime.end.p0(i64 2, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  %526 = load i32, ptr %20, align 4
  switch i32 %526, label %531 [
    i32 0, label %527
    i32 27, label %528
  ]

527:                                              ; preds = %525
  br label %528

528:                                              ; preds = %527, %525
  %529 = load i32, ptr %45, align 4, !tbaa !21
  %530 = add i32 %529, 1
  store i32 %530, ptr %45, align 4, !tbaa !21
  br label %315, !llvm.loop !42

531:                                              ; preds = %525, %318
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #6
  %532 = load i32, ptr %20, align 4
  switch i32 %532, label %589 [
    i32 25, label %533
  ]

533:                                              ; preds = %531
  %534 = load ptr, ptr %35, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %534)
  %535 = load ptr, ptr %32, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %535)
  %536 = load ptr, ptr %27, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %536)
  %537 = load ptr, ptr %26, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %537)
  %538 = load ptr, ptr %23, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %538)
  %539 = load ptr, ptr %21, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %539)
  %540 = load ptr, ptr %19, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %540)
  %541 = load ptr, ptr %10, align 8, !tbaa !5
  %542 = icmp ne ptr %541, null
  br i1 %542, label %543, label %546

543:                                              ; preds = %533
  %544 = load ptr, ptr %10, align 8, !tbaa !5
  %545 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %544, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %545)
  br label %546

546:                                              ; preds = %543, %533
  %547 = load ptr, ptr %9, align 8, !tbaa !5
  %548 = icmp ne ptr %547, null
  br i1 %548, label %549, label %552

549:                                              ; preds = %546
  %550 = load ptr, ptr %9, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %550, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %551)
  br label %552

552:                                              ; preds = %549, %546
  %553 = load ptr, ptr %8, align 8, !tbaa !5
  %554 = icmp ne ptr %553, null
  br i1 %554, label %555, label %558

555:                                              ; preds = %552
  %556 = load ptr, ptr %8, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %556, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %557)
  br label %558

558:                                              ; preds = %555, %552
  %559 = load ptr, ptr %7, align 8, !tbaa !5
  %560 = icmp ne ptr %559, null
  br i1 %560, label %561, label %564

561:                                              ; preds = %558
  %562 = load ptr, ptr %7, align 8, !tbaa !5
  %563 = getelementptr inbounds %struct.Longtail_ChunkerAPI, ptr %562, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %563)
  br label %564

564:                                              ; preds = %561, %558
  %565 = load ptr, ptr %6, align 8, !tbaa !5
  %566 = icmp ne ptr %565, null
  br i1 %566, label %567, label %570

567:                                              ; preds = %564
  %568 = load ptr, ptr %6, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %568, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %569)
  br label %570

570:                                              ; preds = %567, %564
  %571 = load ptr, ptr %5, align 8, !tbaa !5
  %572 = icmp ne ptr %571, null
  br i1 %572, label %573, label %576

573:                                              ; preds = %570
  %574 = load ptr, ptr %5, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %574, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %575)
  br label %576

576:                                              ; preds = %573, %570
  %577 = load ptr, ptr %4, align 8, !tbaa !5
  %578 = icmp ne ptr %577, null
  br i1 %578, label %579, label %582

579:                                              ; preds = %576
  %580 = load ptr, ptr %4, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %580, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %581)
  br label %582

582:                                              ; preds = %579, %576
  %583 = load ptr, ptr %3, align 8, !tbaa !5
  %584 = icmp ne ptr %583, null
  br i1 %584, label %585, label %588

585:                                              ; preds = %582
  %586 = load ptr, ptr %3, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %586, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %587)
  br label %588

588:                                              ; preds = %585, %582
  store i32 0, ptr %20, align 4
  br label %589

589:                                              ; preds = %588, %531
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 96, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 96, ptr %42) #6
  br label %590

590:                                              ; preds = %589, %311, %292, %246
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  br label %591

591:                                              ; preds = %590, %229
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  br label %592

592:                                              ; preds = %591, %212, %192
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  br label %593

593:                                              ; preds = %592, %165, %145
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #6
  br label %594

594:                                              ; preds = %593, %124
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br label %595

595:                                              ; preds = %594, %107
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #6
  %596 = load i32, ptr %20, align 4
  switch i32 %596, label %598 [
    i32 0, label %597
    i32 1, label %597
  ]

597:                                              ; preds = %595, %595
  ret void

598:                                              ; preds = %595
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_0clEPPKcS3_PKtmP19Longtail_StorageAPI"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef ptr @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_1clEP19Longtail_StorageAPIPKc"(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef ptr @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_2clEPK21Longtail_VersionIndex"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #2 align 2

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

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

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

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

!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 0}
!10 = !{!"_ZTSZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvE3$_1", !6, i64 0, !6, i64 8, !6, i64 16}
!11 = !{!10, !6, i64 8}
!12 = !{!10, !6, i64 16}
!13 = !{!14, !6, i64 32}
!14 = !{!"_ZTS15jc_test_fixture", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !15, i64 64, !16, i64 88, !16, i64 91, !16, i64 91, !16, i64 91, !16, i64 91, !16, i64 92, !16, i64 96, !16, i64 97, !16, i64 99, !16, i64 100}
!15 = !{!"_ZTS13jc_test_stats", !16, i64 0, !16, i64 4, !16, i64 6, !16, i64 8, !16, i64 12, !17, i64 16}
!16 = !{!"int", !7, i64 0}
!17 = !{!"long", !7, i64 0}
!18 = !{!19, !6, i64 0}
!19 = !{!"_ZTSZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvE3$_2", !6, i64 0, !6, i64 8}
!20 = !{!19, !6, i64 8}
!21 = !{!16, !16, i64 0}
!22 = !{!23, !6, i64 32}
!23 = !{!"_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, !16, i64 128, !6, i64 136, !6, i64 144}
!24 = !{!23, !6, i64 96}
!25 = !{!23, !6, i64 24}
!26 = !{!23, !6, i64 144}
!27 = !{!23, !6, i64 120}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = !{!31, !6, i64 64}
!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 = !{!34, !34, i64 0}
!34 = !{!"short", !7, i64 0}
!35 = !{!31, !6, i64 104}
!36 = !{!31, !6, i64 112}
!37 = !{!31, !6, i64 8}
!38 = !{!31, !6, i64 16}
!39 = !{!17, !17, i64 0}
!40 = !{!31, !6, i64 24}
!41 = !{!31, !6, i64 72}
!42 = distinct !{!42, !29}


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

%class.anon = type { i8 }
%class.anon.0 = type { ptr, ptr, ptr }
%class.anon.1 = type { ptr, ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.510 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.534 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [5 x i8], align 1
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_FILENAMES = external hidden unnamed_addr constant [6 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_STRINGS = external hidden unnamed_addr constant [6 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_PERMISSIONS = external hidden unnamed_addr constant [6 x i16], align 2
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_FILENAMES = external hidden unnamed_addr constant [8 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_STRINGS = external hidden unnamed_addr constant [8 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_PERMISSIONS = external hidden unnamed_addr constant [8 x i16], align 16
@.str.937 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.938 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.939 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.940 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.941 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.942 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.943 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.944 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.945 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.946 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.947 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.948 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.949 = external hidden unnamed_addr constant [128 x i8], align 1
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_FILENAMES = external hidden unnamed_addr constant [12 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_STRINGS = external hidden unnamed_addr constant [12 x ptr], align 16
@__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_PERMISSIONS = external hidden unnamed_addr constant [12 x i16], align 16
@.str.962 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.963 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.964 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.965 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.966 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.967 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.968 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.969 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.970 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.971 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.972 = external hidden unnamed_addr constant [56 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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #3

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

declare void @Longtail_DisposeAPI(ptr noundef) local_unnamed_addr #1

declare ptr @Longtail_CreateBlake3HashAPI() local_unnamed_addr #1

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

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

declare ptr @Longtail_CreateHPCDCChunkerAPI() local_unnamed_addr #1

declare ptr @Longtail_CreateBikeshedJobAPI(i32 noundef, i32 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 #4

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @memcmp(ptr nocapture noundef, ptr nocapture noundef, i64 noundef) local_unnamed_addr #3

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

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 dso_local noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StoreIndexS1_EiT_T0_PKcS5_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #4 align 2 {
  %2 = alloca [6 x ptr], align 16
  %3 = alloca [6 x ptr], align 16
  %4 = alloca [6 x i16], align 2
  %5 = alloca %class.anon, align 1
  %6 = alloca [8 x ptr], align 16
  %7 = alloca [8 x ptr], align 16
  %8 = alloca [8 x i16], align 16
  %9 = alloca %class.anon.0, align 8
  %10 = alloca %class.anon.1, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca [12 x i16], align 16
  %27 = alloca i16, align 2
  %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 ptr, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i64, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i64, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = tail call ptr @Longtail_CreateInMemStorageAPI()
  %47 = tail call ptr @Longtail_CreateInMemStorageAPI()
  %48 = tail call ptr @Longtail_CreateFullCompressionRegistry()
  %49 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %50 = tail call ptr @Longtail_CreateHPCDCChunkerAPI()
  %51 = tail call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  %52 = tail call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %51, ptr noundef %47, ptr noundef nonnull @.str.270, ptr noundef null, i32 noundef 0)
  %53 = tail call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %52, ptr noundef %48)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %2) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %2, ptr noundef nonnull align 16 dereferenceable(48) @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_FILENAMES, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %3) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %3, ptr noundef nonnull align 16 dereferenceable(48) @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_STRINGS, i64 48, i1 false)
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %4) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(12) %4, ptr noundef nonnull align 2 dereferenceable(12) @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.BASE_TEST_PERMISSIONS, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #6
  call void @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_0clEPPKcS3_PKtmP19Longtail_StorageAPI"(ptr noundef nonnull align 1 dereferenceable(1) %5, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, i64 noundef 6, ptr noundef %46)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %6) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %6, ptr noundef nonnull align 16 dereferenceable(64) @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_FILENAMES, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %7) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %7, ptr noundef nonnull align 16 dereferenceable(64) @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_STRINGS, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %8, ptr noundef nonnull align 16 dereferenceable(16) @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.OVERLAY_TEST_PERMISSIONS, i64 16, i1 false)
  call void @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_0clEPPKcS3_PKtmP19Longtail_StorageAPI"(ptr noundef nonnull align 1 dereferenceable(1) %5, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8, i64 noundef 8, ptr noundef %46)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #6
  store ptr %49, ptr %9, align 8, !tbaa !5
  %54 = getelementptr inbounds i8, ptr %9, i64 8
  store ptr %51, ptr %54, align 8, !tbaa !10
  %55 = getelementptr inbounds i8, ptr %9, i64 16
  store ptr %50, ptr %55, align 8, !tbaa !11
  %56 = call noundef ptr @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_1clEP19Longtail_StorageAPIPKc"(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef %46, ptr noundef nonnull @.str.937)
  %57 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %58 = getelementptr inbounds i8, ptr %57, i64 96
  %59 = load i32, ptr %58, align 8
  %60 = and i32 %59, -16776961
  %61 = or disjoint i32 %60, 2044416
  store i32 %61, ptr %58, align 8
  %62 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %63 = getelementptr inbounds i8, ptr %62, i64 32
  store ptr @.str.3, ptr %63, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %64 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef %56, ptr noundef null, ptr noundef nonnull @.str.938, ptr noundef nonnull @.str.259)
  %65 = icmp eq i32 %64, 0
  br i1 %65, label %66, label %67

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

67:                                               ; preds = %1
  %68 = call noundef ptr @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_1clEP19Longtail_StorageAPIPKc"(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef %46, ptr noundef nonnull @.str.939)
  %69 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %70 = getelementptr inbounds i8, ptr %69, i64 96
  %71 = load i32, ptr %70, align 8
  %72 = and i32 %71, -16776961
  %73 = or disjoint i32 %72, 2044928
  store i32 %73, ptr %70, align 8
  %74 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %75 = getelementptr inbounds i8, ptr %74, i64 32
  store ptr @.str.3, ptr %75, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %76 = call noundef i32 @_Z14jc_test_cmp_NEIP21Longtail_VersionIndexS1_EiT_T0_PKcS5_(ptr noundef %68, ptr noundef null, ptr noundef nonnull @.str.940, ptr noundef nonnull @.str.259)
  %77 = icmp eq i32 %76, 0
  br i1 %77, label %78, label %79

78:                                               ; preds = %67
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %352

79:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #6
  store ptr %49, ptr %10, align 8, !tbaa !17
  %80 = getelementptr inbounds i8, ptr %10, i64 8
  store ptr %51, ptr %80, align 8, !tbaa !19
  %81 = call noundef ptr @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_2clEPK21Longtail_VersionIndex"(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %56)
  %82 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %83 = getelementptr inbounds i8, ptr %82, i64 96
  %84 = load i32, ptr %83, align 8
  %85 = and i32 %84, -16776961
  %86 = or disjoint i32 %85, 2047232
  store i32 %86, ptr %83, align 8
  %87 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %88 = getelementptr inbounds i8, ptr %87, i64 32
  store ptr @.str.3, ptr %88, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %89 = call noundef i32 @_Z14jc_test_cmp_NEIP19Longtail_StoreIndexS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %81, ptr noundef nonnull @.str.534, ptr noundef nonnull @.str.941)
  %90 = icmp eq i32 %89, 0
  br i1 %90, label %91, label %92

91:                                               ; preds = %79
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %351

92:                                               ; preds = %79
  %93 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %94 = getelementptr inbounds i8, ptr %93, i64 96
  %95 = load i32, ptr %94, align 8
  %96 = and i32 %95, -16776961
  %97 = or disjoint i32 %96, 2047488
  store i32 %97, ptr %94, align 8
  %98 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %99 = getelementptr inbounds i8, ptr %98, i64 32
  store ptr @.str.3, ptr %99, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  store i32 0, ptr %11, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  %100 = call i32 @Longtail_WriteContent(ptr noundef %46, ptr noundef %53, ptr noundef %51, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %81, ptr noundef %56, ptr noundef nonnull @.str.937)
  store i32 %100, ptr %12, align 4, !tbaa !20
  %101 = 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.942, ptr noundef null)
  %102 = icmp eq i32 %101, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  br i1 %102, label %103, label %104

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

104:                                              ; preds = %92
  %105 = getelementptr inbounds i8, ptr %68, i64 32
  %106 = load ptr, ptr %105, align 8, !tbaa !21
  %107 = load i32, ptr %106, align 4, !tbaa !20
  %108 = getelementptr inbounds i8, ptr %68, i64 96
  %109 = load ptr, ptr %108, align 8, !tbaa !23
  %110 = call noundef ptr @_ZL22SyncGetExistingContentP22Longtail_BlockStoreAPIjPKmj(ptr noundef %53, i32 noundef %107, ptr noundef %109, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  %111 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %112 = getelementptr inbounds i8, ptr %111, i64 96
  %113 = load i32, ptr %112, align 8
  %114 = and i32 %113, -16776961
  %115 = or disjoint i32 %114, 2050304
  store i32 %115, ptr %112, align 8
  %116 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %117 = getelementptr inbounds i8, ptr %116, i64 32
  store ptr @.str.3, ptr %117, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  store i32 0, ptr %14, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  %118 = call i32 @Longtail_CreateMissingContent(ptr noundef %49, ptr noundef %110, ptr noundef %68, i32 noundef 32, i32 noundef 3, ptr noundef nonnull %13)
  store i32 %118, ptr %15, align 4, !tbaa !20
  %119 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.943, ptr noundef null)
  %120 = icmp eq i32 %119, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br i1 %120, label %121, label %122

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

122:                                              ; preds = %104
  %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, 2050816
  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 !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 0, ptr %16, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %130 = load ptr, ptr %13, align 8, !tbaa !24
  %131 = call i32 @Longtail_WriteContent(ptr noundef %46, ptr noundef %53, ptr noundef %51, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %130, ptr noundef nonnull %68, ptr noundef nonnull @.str.939)
  store i32 %131, ptr %17, align 4, !tbaa !20
  %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) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.944, ptr noundef null)
  %133 = icmp eq i32 %132, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br i1 %133, label %134, label %135

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

135:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #6
  %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, 2051584
  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 !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  store i32 0, ptr %19, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  %143 = load ptr, ptr %13, align 8, !tbaa !24
  %144 = call i32 @Longtail_MergeStoreIndex(ptr noundef %81, ptr noundef %143, ptr noundef nonnull %18)
  store i32 %144, ptr %20, align 4, !tbaa !20
  %145 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.945, ptr noundef null)
  %146 = icmp eq i32 %145, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  br i1 %146, label %147, label %148

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

148:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #6
  %149 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %150 = getelementptr inbounds i8, ptr %149, i64 96
  %151 = load i32, ptr %150, align 8
  %152 = and i32 %151, -16776961
  %153 = or disjoint i32 %152, 2052352
  store i32 %153, ptr %150, align 8
  %154 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %155 = getelementptr inbounds i8, ptr %154, i64 32
  store ptr @.str.3, ptr %155, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  store i32 0, ptr %22, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  %156 = call i32 @Longtail_MergeVersionIndex(ptr noundef %56, ptr noundef nonnull %68, ptr noundef nonnull %21)
  store i32 %156, ptr %23, align 4, !tbaa !20
  %157 = 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.946, ptr noundef null)
  %158 = icmp eq i32 %157, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  br i1 %158, label %163, label %.preheader

.preheader:                                       ; preds = %148
  %159 = load ptr, ptr %21, align 8, !tbaa !24
  %160 = getelementptr inbounds i8, ptr %159, i64 24
  %161 = load ptr, ptr %160, align 8, !tbaa !25
  %162 = load i32, ptr %161, align 4, !tbaa !20
  %.not106127.not = icmp eq i32 %162, 0
  br i1 %.not106127.not, label %.critedge116, label %.critedge

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

164:                                              ; preds = %.critedge
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %165 = load ptr, ptr %21, align 8, !tbaa !24
  %166 = getelementptr inbounds i8, ptr %165, i64 24
  %167 = load ptr, ptr %166, align 8, !tbaa !25
  %168 = load i32, ptr %167, align 4, !tbaa !20
  %169 = zext i32 %168 to i64
  %.not106 = icmp ult i64 %indvars.iv.next, %169
  br i1 %.not106, label %.critedge, label %.critedge116, !llvm.loop !26

.critedge:                                        ; preds = %.preheader, %164
  %indvars.iv = phi i64 [ %indvars.iv.next, %164 ], [ 0, %.preheader ]
  %170 = phi ptr [ %165, %164 ], [ %159, %.preheader ]
  %171 = getelementptr inbounds i8, ptr %170, i64 144
  %172 = load ptr, ptr %171, align 8, !tbaa !28
  %173 = getelementptr inbounds i8, ptr %170, i64 120
  %174 = load ptr, ptr %173, align 8, !tbaa !29
  %175 = getelementptr inbounds i32, ptr %174, i64 %indvars.iv
  %176 = load i32, ptr %175, align 4, !tbaa !20
  %177 = zext i32 %176 to i64
  %178 = getelementptr inbounds i8, ptr %172, i64 %177
  %179 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %180 = getelementptr inbounds i8, ptr %179, i64 96
  %181 = load i32, ptr %180, align 8
  %182 = and i32 %181, -16776961
  %183 = or disjoint i32 %182, 2053376
  store i32 %183, ptr %180, align 8
  %184 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %185 = getelementptr inbounds i8, ptr %184, i64 32
  store ptr @.str.3, ptr %185, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  %186 = call noundef i32 @_Z14jc_test_cmp_NEIPKcS1_EiT_T0_S1_S1_(ptr noundef null, ptr noundef %178, ptr noundef nonnull @.str.947, ptr noundef nonnull @.str.739)
  %.not = icmp eq i32 %186, 0
  br i1 %.not, label %187, label %164

187:                                              ; preds = %.critedge
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %348

.critedge116:                                     ; preds = %164, %.preheader
  %188 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %189 = getelementptr inbounds i8, ptr %188, i64 96
  %190 = load i32, ptr %189, align 8
  %191 = and i32 %190, -16776961
  %192 = or disjoint i32 %191, 2054144
  store i32 %192, ptr %189, align 8
  %193 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %194 = getelementptr inbounds i8, ptr %193, i64 32
  store ptr @.str.3, ptr %194, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  store i32 0, ptr %24, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  %195 = load ptr, ptr %18, align 8, !tbaa !24
  %196 = load ptr, ptr %21, align 8, !tbaa !24
  %197 = call i32 @Longtail_WriteVersion(ptr noundef %53, ptr noundef %46, ptr noundef %51, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef %195, ptr noundef %196, ptr noundef nonnull @.str.948, i32 noundef 1)
  store i32 %197, ptr %25, align 4, !tbaa !20
  %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) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.949, ptr noundef null)
  %199 = icmp eq i32 %198, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br i1 %199, label %200, label %201

200:                                              ; preds = %.critedge116
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %348

201:                                              ; preds = %.critedge116
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #6
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %26, ptr noundef nonnull align 16 dereferenceable(24) @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_PERMISSIONS, i64 24, i1 false)
  %202 = getelementptr inbounds i8, ptr %46, i64 64
  %203 = getelementptr inbounds i8, ptr %46, i64 112
  %204 = getelementptr inbounds i8, ptr %46, i64 8
  %205 = getelementptr inbounds i8, ptr %46, i64 16
  %206 = getelementptr inbounds i8, ptr %46, i64 24
  %207 = getelementptr inbounds i8, ptr %46, i64 72
  %208 = getelementptr inbounds i8, ptr %46, i64 104
  br label %209

209:                                              ; preds = %201, %329
  %indvars.iv131 = phi i64 [ 0, %201 ], [ %indvars.iv.next132, %329 ]
  %210 = getelementptr inbounds [12 x ptr], ptr @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_FILENAMES, i64 0, i64 %indvars.iv131
  %211 = load ptr, ptr %210, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %27) #6
  %212 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %213 = getelementptr inbounds i8, ptr %212, i64 96
  %214 = load i32, ptr %213, align 8
  %215 = and i32 %214, -16776961
  %216 = or disjoint i32 %215, 2067200
  store i32 %216, ptr %213, align 8
  %217 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %218 = getelementptr inbounds i8, ptr %217, i64 32
  store ptr @.str.3, ptr %218, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  store i32 0, ptr %28, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  %219 = load ptr, ptr %202, align 8, !tbaa !30
  %220 = call noundef i32 %219(ptr noundef %46, ptr noundef %211, ptr noundef nonnull %27)
  store i32 %220, ptr %29, align 4, !tbaa !20
  %221 = 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 nonnull @.str.46, ptr noundef nonnull @.str.962, ptr noundef null)
  %222 = icmp eq i32 %221, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  br i1 %222, label %.thread, label %223

223:                                              ; preds = %209
  %224 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %225 = getelementptr inbounds i8, ptr %224, i64 96
  %226 = load i32, ptr %225, align 8
  %227 = and i32 %226, -16776961
  %228 = or disjoint i32 %227, 2067456
  store i32 %228, ptr %225, align 8
  %229 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %230 = getelementptr inbounds i8, ptr %229, i64 32
  store ptr @.str.3, ptr %230, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  %231 = load i16, ptr %27, align 2, !tbaa !33
  %232 = and i16 %231, 384
  %233 = zext nneg i16 %232 to i32
  store i32 %233, ptr %30, align 4, !tbaa !20
  %234 = getelementptr inbounds [12 x i16], ptr %26, i64 0, i64 %indvars.iv131
  %235 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIitEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 2 dereferenceable(2) %234, ptr noundef nonnull @.str.963, ptr noundef nonnull @.str.964)
  %236 = icmp eq i32 %235, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  br i1 %236, label %.thread, label %237

237:                                              ; preds = %223
  %238 = getelementptr inbounds [12 x ptr], ptr @__const._ZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEv.RESULT_TEST_STRINGS, i64 0, i64 %indvars.iv131
  %239 = load ptr, ptr %238, align 8, !tbaa !24
  %240 = icmp eq ptr %239, null
  %241 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %242 = getelementptr inbounds i8, ptr %241, i64 96
  %243 = load i32, ptr %242, align 8
  %244 = and i32 %243, -16776961
  br i1 %240, label %245, label %253

245:                                              ; preds = %237
  %246 = or disjoint i32 %244, 2068224
  store i32 %246, ptr %242, align 8
  %247 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %248 = getelementptr inbounds i8, ptr %247, i64 32
  store ptr @.str.3, ptr %248, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  %249 = load ptr, ptr %208, align 8, !tbaa !35
  %250 = call noundef i32 %249(ptr noundef nonnull %46, ptr noundef %211)
  store i32 %250, ptr %31, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  store i32 1, ptr %32, align 4, !tbaa !20
  %251 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull @.str.965, ptr noundef nonnull @.str.232)
  %252 = icmp eq i32 %251, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  br i1 %252, label %.thread, label %.thread120

.thread120:                                       ; preds = %245
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %27) #6
  br label %329

253:                                              ; preds = %237
  %254 = or disjoint i32 %244, 2068992
  store i32 %254, ptr %242, align 8
  %255 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %256 = getelementptr inbounds i8, ptr %255, i64 32
  store ptr @.str.3, ptr %256, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  %257 = load ptr, ptr %203, align 8, !tbaa !36
  %258 = call noundef i32 %257(ptr noundef nonnull %46, ptr noundef %211)
  store i32 %258, ptr %33, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  store i32 1, ptr %34, align 4, !tbaa !20
  %259 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull @.str.966, ptr noundef nonnull @.str.232)
  %260 = icmp eq i32 %259, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  br i1 %260, label %.thread, label %261

261:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #6
  %262 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %263 = getelementptr inbounds i8, ptr %262, i64 96
  %264 = load i32, ptr %263, align 8
  %265 = and i32 %264, -16776961
  %266 = or disjoint i32 %265, 2069504
  store i32 %266, ptr %263, align 8
  %267 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %268 = getelementptr inbounds i8, ptr %267, i64 32
  store ptr @.str.3, ptr %268, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  store i32 0, ptr %36, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  %269 = load ptr, ptr %204, align 8, !tbaa !37
  %270 = call noundef i32 %269(ptr noundef nonnull %46, ptr noundef %211, ptr noundef nonnull %35)
  store i32 %270, ptr %37, align 4, !tbaa !20
  %271 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.967, ptr noundef null)
  %272 = icmp eq i32 %271, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  br i1 %272, label %.thread122, label %273

.thread122:                                       ; preds = %261
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %27) #6
  br label %347

273:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #6
  %274 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %275 = getelementptr inbounds i8, ptr %274, i64 96
  %276 = load i32, ptr %275, align 8
  %277 = and i32 %276, -16776961
  %278 = or disjoint i32 %277, 2070016
  store i32 %278, ptr %275, align 8
  %279 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %280 = getelementptr inbounds i8, ptr %279, i64 32
  store ptr @.str.3, ptr %280, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  store i32 0, ptr %39, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  %281 = load ptr, ptr %205, align 8, !tbaa !38
  %282 = load ptr, ptr %35, align 8, !tbaa !24
  %283 = call noundef i32 %281(ptr noundef nonnull %46, ptr noundef %282, ptr noundef nonnull %38)
  store i32 %283, ptr %40, align 4, !tbaa !20
  %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) %39, ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.968, ptr noundef null)
  %285 = icmp eq i32 %284, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  br i1 %285, label %.thread125, label %286

286:                                              ; preds = %273
  %287 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %288 = getelementptr inbounds i8, ptr %287, i64 96
  %289 = load i32, ptr %288, align 8
  %290 = and i32 %289, -16776961
  %291 = or disjoint i32 %290, 2070272
  store i32 %291, ptr %288, align 8
  %292 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %293 = getelementptr inbounds i8, ptr %292, i64 32
  store ptr @.str.3, ptr %293, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #6
  %294 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %239) #7
  %295 = add i64 %294, 1
  store i64 %295, ptr %41, align 8, !tbaa !39
  %296 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull @.str.510, ptr noundef nonnull @.str.969)
  %297 = icmp eq i32 %296, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  br i1 %297, label %.thread125, label %298

298:                                              ; preds = %286
  %299 = load i64, ptr %38, align 8, !tbaa !39
  %300 = call ptr @Longtail_Alloc(ptr noundef nonnull @.str.970, i64 noundef %299)
  %301 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %302 = getelementptr inbounds i8, ptr %301, i64 96
  %303 = load i32, ptr %302, align 8
  %304 = and i32 %303, -16776961
  %305 = or disjoint i32 %304, 2070784
  store i32 %305, ptr %302, align 8
  %306 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %307 = getelementptr inbounds i8, ptr %306, i64 32
  store ptr @.str.3, ptr %307, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #6
  store i32 0, ptr %42, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  %308 = load ptr, ptr %206, align 8, !tbaa !40
  %309 = load ptr, ptr %35, align 8, !tbaa !24
  %310 = load i64, ptr %38, align 8, !tbaa !39
  %311 = call noundef i32 %308(ptr noundef nonnull %46, ptr noundef %309, i64 noundef 0, i64 noundef %310, ptr noundef %300)
  store i32 %311, ptr %43, align 4, !tbaa !20
  %312 = 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) %42, ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.971, ptr noundef null)
  %313 = icmp eq i32 %312, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  br i1 %313, label %.thread125, label %314

314:                                              ; preds = %298
  %315 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %316 = getelementptr inbounds i8, ptr %315, i64 96
  %317 = load i32, ptr %316, align 8
  %318 = and i32 %317, -16776961
  %319 = or disjoint i32 %318, 2071040
  store i32 %319, ptr %316, align 8
  %320 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %321 = getelementptr inbounds i8, ptr %320, i64 32
  store ptr @.str.3, ptr %321, align 8, !tbaa !12
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #6
  %322 = load i64, ptr %38, align 8, !tbaa !39
  %323 = call i32 @memcmp(ptr noundef %300, ptr noundef nonnull %239, i64 noundef %322) #7
  store i32 %323, ptr %44, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #6
  store i32 0, ptr %45, align 4, !tbaa !20
  %324 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull @.str.972, ptr noundef nonnull @.str.46)
  %325 = icmp eq i32 %324, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  br i1 %325, label %.thread125, label %326

.thread:                                          ; preds = %253, %245, %223, %209
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %27) #6
  br label %347

.thread125:                                       ; preds = %314, %298, %286, %273
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %27) #6
  br label %347

326:                                              ; preds = %314
  call void @Longtail_Free(ptr noundef %300)
  %327 = load ptr, ptr %207, align 8, !tbaa !41
  %328 = load ptr, ptr %35, align 8, !tbaa !24
  call void %327(ptr noundef nonnull %46, ptr noundef %328)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %27) #6
  br label %329

329:                                              ; preds = %326, %.thread120
  %indvars.iv.next132 = add nuw nsw i64 %indvars.iv131, 1
  %exitcond = icmp eq i64 %indvars.iv.next132, 12
  br i1 %exitcond, label %.critedge118, label %209, !llvm.loop !42

.critedge118:                                     ; preds = %329
  %330 = load ptr, ptr %21, align 8, !tbaa !24
  call void @Longtail_Free(ptr noundef %330)
  %331 = load ptr, ptr %18, align 8, !tbaa !24
  call void @Longtail_Free(ptr noundef %331)
  %332 = load ptr, ptr %13, align 8, !tbaa !24
  call void @Longtail_Free(ptr noundef %332)
  call void @Longtail_Free(ptr noundef %110)
  call void @Longtail_Free(ptr noundef %81)
  call void @Longtail_Free(ptr noundef %68)
  call void @Longtail_Free(ptr noundef %56)
  %.not107 = icmp eq ptr %53, null
  br i1 %.not107, label %334, label %333

333:                                              ; preds = %.critedge118
  call void @Longtail_DisposeAPI(ptr noundef nonnull %53)
  br label %334

334:                                              ; preds = %333, %.critedge118
  %.not108 = icmp eq ptr %52, null
  br i1 %.not108, label %336, label %335

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

336:                                              ; preds = %335, %334
  %.not109 = icmp eq ptr %51, null
  br i1 %.not109, label %338, label %337

337:                                              ; preds = %336
  call void @Longtail_DisposeAPI(ptr noundef nonnull %51)
  br label %338

338:                                              ; preds = %337, %336
  %.not110 = icmp eq ptr %50, null
  br i1 %.not110, label %340, label %339

339:                                              ; preds = %338
  call void @Longtail_DisposeAPI(ptr noundef nonnull %50)
  br label %340

340:                                              ; preds = %339, %338
  %.not111 = icmp eq ptr %49, null
  br i1 %.not111, label %342, label %341

341:                                              ; preds = %340
  call void @Longtail_DisposeAPI(ptr noundef nonnull %49)
  br label %342

342:                                              ; preds = %341, %340
  %.not112 = icmp eq ptr %48, null
  br i1 %.not112, label %344, label %343

343:                                              ; preds = %342
  call void @Longtail_DisposeAPI(ptr noundef nonnull %48)
  br label %344

344:                                              ; preds = %343, %342
  %.not113 = icmp eq ptr %47, null
  br i1 %.not113, label %346, label %345

345:                                              ; preds = %344
  call void @Longtail_DisposeAPI(ptr noundef nonnull %47)
  br label %346

346:                                              ; preds = %344, %345
  call void @Longtail_DisposeAPI(ptr noundef nonnull %46)
  br label %347

347:                                              ; preds = %.thread, %.thread122, %.thread125, %346
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #6
  br label %348

348:                                              ; preds = %187, %347, %200, %163
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #6
  br label %349

349:                                              ; preds = %348, %147
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #6
  br label %350

350:                                              ; preds = %349, %134, %121
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %351

351:                                              ; preds = %350, %103, %91
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #6
  br label %352

352:                                              ; preds = %78, %351, %66
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %2) #6
  ret void
}

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_0clEPPKcS3_PKtmP19Longtail_StorageAPI"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef ptr @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_1clEP19Longtail_StorageAPIPKc"(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef ptr @"_ZZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvENK3$_2clEPK21Longtail_VersionIndex"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #2 align 2

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

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

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

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

!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 0}
!6 = !{!"_ZTSZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvE3$_1", !7, i64 0, !7, i64 8, !7, i64 16}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!6, !7, i64 8}
!11 = !{!6, !7, i64 16}
!12 = !{!13, !7, i64 32}
!13 = !{!"_ZTS15jc_test_fixture", !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !14, i64 64, !15, i64 88, !15, i64 91, !15, i64 91, !15, i64 91, !15, i64 91, !15, i64 92, !15, i64 96, !15, i64 97, !15, i64 99, !15, i64 100}
!14 = !{!"_ZTS13jc_test_stats", !15, i64 0, !15, i64 4, !15, i64 6, !15, i64 8, !15, i64 12, !16, i64 16}
!15 = !{!"int", !8, i64 0}
!16 = !{!"long", !8, i64 0}
!17 = !{!18, !7, i64 0}
!18 = !{!"_ZTSZN45Longtail_Longtail_MergeVersionIndex__TestCase8TestBodyEvE3$_2", !7, i64 0, !7, i64 8}
!19 = !{!18, !7, i64 8}
!20 = !{!15, !15, i64 0}
!21 = !{!22, !7, i64 32}
!22 = !{!"_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, !15, i64 128, !7, i64 136, !7, i64 144}
!23 = !{!22, !7, i64 96}
!24 = !{!7, !7, i64 0}
!25 = !{!22, !7, i64 24}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = !{!22, !7, i64 144}
!29 = !{!22, !7, i64 120}
!30 = !{!31, !7, i64 64}
!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 = !{!34, !34, i64 0}
!34 = !{!"short", !8, i64 0}
!35 = !{!31, !7, i64 104}
!36 = !{!31, !7, i64 112}
!37 = !{!31, !7, i64 8}
!38 = !{!31, !7, i64 16}
!39 = !{!16, !16, i64 0}
!40 = !{!31, !7, i64 24}
!41 = !{!31, !7, i64 72}
!42 = distinct !{!42, !27}


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