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

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

%struct.jc_test_fixture = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.jc_test_stats, i32, i32, i32, i32 }
%struct.jc_test_stats = type { i32, i32, i32, i32, i64 }
%struct.Longtail_FileInfos = type { i32, i32, ptr, ptr, ptr, ptr }
%struct.Longtail_StoreIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_API = type { ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [3 x i8], align 1
@__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.chunk_sizes = external hidden unnamed_addr constant [5 x i32], align 16
@__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_permissions = external hidden unnamed_addr constant [5 x i16], align 2
@__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_chunk_counts = external hidden unnamed_addr constant [5 x i32], align 16
@__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_chunk_start_index = external hidden unnamed_addr constant [5 x i32], align 16
@.str.424 = external hidden unnamed_addr constant [144 x i8], align 1
@__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_paths = external hidden unnamed_addr constant [5 x ptr], align 16
@.str.425 = external hidden unnamed_addr constant [309 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [40 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: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef) #3 align 2

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

declare void @Longtail_DisposeAPI(ptr noundef) #1

declare ptr @Longtail_CreateBlake3HashAPI() #1

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

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

declare i64 @Longtail_GetVersionIndexSize(i32 noundef, i32 noundef, i32 noundef, i32 noundef) #1

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca i64, align 8
  %5 = alloca [5 x i64], align 16
  %6 = alloca [5 x i64], align 16
  %7 = alloca [5 x i64], align 16
  %8 = alloca [5 x i32], align 16
  %9 = alloca [5 x i16], align 2
  %10 = alloca [5 x i32], align 16
  %11 = alloca [5 x i32], align 16
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca [5 x ptr], align 16
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i64, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %30 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #6
  %31 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %31, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #6
  store i64 5, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %5) #6
  call void @llvm.memset.p0.i64(ptr align 16 %5, i8 0, i64 40, i1 false)
  %32 = getelementptr inbounds [5 x i64], ptr %5, i32 0, i32 0
  store i64 5, ptr %32, align 16
  %33 = getelementptr inbounds [5 x i64], ptr %5, i32 0, i32 1
  store i64 4, ptr %33, align 8
  %34 = getelementptr inbounds [5 x i64], ptr %5, i32 0, i32 2
  store i64 3, ptr %34, align 16
  %35 = getelementptr inbounds [5 x i64], ptr %5, i32 0, i32 3
  store i64 2, ptr %35, align 8
  %36 = getelementptr inbounds [5 x i64], ptr %5, i32 0, i32 4
  store i64 1, ptr %36, align 16
  call void @llvm.lifetime.start.p0(i64 40, ptr %6) #6
  call void @llvm.memset.p0.i64(ptr align 16 %6, i8 0, i64 40, i1 false)
  %37 = getelementptr inbounds [5 x i64], ptr %6, i32 0, i32 0
  store i64 50, ptr %37, align 16
  %38 = getelementptr inbounds [5 x i64], ptr %6, i32 0, i32 1
  store i64 40, ptr %38, align 8
  %39 = getelementptr inbounds [5 x i64], ptr %6, i32 0, i32 2
  store i64 30, ptr %39, align 16
  %40 = getelementptr inbounds [5 x i64], ptr %6, i32 0, i32 3
  store i64 20, ptr %40, align 8
  %41 = getelementptr inbounds [5 x i64], ptr %6, i32 0, i32 4
  store i64 10, ptr %41, align 16
  call void @llvm.lifetime.start.p0(i64 40, ptr %7) #6
  call void @llvm.memset.p0.i64(ptr align 16 %7, i8 0, i64 40, i1 false)
  %42 = getelementptr inbounds [5 x i64], ptr %7, i32 0, i32 0
  store i64 43593, ptr %42, align 16
  %43 = getelementptr inbounds [5 x i64], ptr %7, i32 0, i32 1
  store i64 43593, ptr %43, align 8
  %44 = getelementptr inbounds [5 x i64], ptr %7, i32 0, i32 2
  store i64 43592, ptr %44, align 16
  %45 = getelementptr inbounds [5 x i64], ptr %7, i32 0, i32 3
  store i64 43591, ptr %45, align 8
  %46 = getelementptr inbounds [5 x i64], ptr %7, i32 0, i32 4
  store i64 43591, ptr %46, align 16
  call void @llvm.lifetime.start.p0(i64 20, ptr %8) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.chunk_sizes, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 10, ptr %9) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %9, ptr align 2 @__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_permissions, i64 10, i1 false)
  call void @llvm.lifetime.start.p0(i64 20, ptr %10) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %10, ptr align 16 @__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_chunk_counts, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 20, ptr %11) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %11, ptr align 16 @__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_chunk_start_index, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #6
  br label %47

47:                                               ; preds = %1
  %48 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %49 = getelementptr inbounds %struct.jc_test_fixture, ptr %48, i32 0, i32 11
  %50 = load i32, ptr %49, align 8
  %51 = and i32 %50, -16776961
  %52 = or i32 %51, 648704
  store i32 %52, ptr %49, align 8
  %53 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %54 = getelementptr inbounds %struct.jc_test_fixture, ptr %53, i32 0, i32 4
  store ptr @.str.3, ptr %54, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  store i32 0, ptr %13, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  %55 = load ptr, ptr %3, align 8, !tbaa !5
  %56 = getelementptr inbounds [5 x i64], ptr %5, i64 0, i64 0
  %57 = getelementptr inbounds [5 x i32], ptr %8, i64 0, i64 0
  %58 = call i32 @Longtail_CreateStoreIndex(ptr noundef %55, i32 noundef 1, ptr noundef %56, ptr noundef %57, ptr noundef null, i32 noundef 131072, i32 noundef 4096, ptr noundef %12)
  store i32 %58, ptr %14, align 4, !tbaa !15
  %59 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef @.str.46, ptr noundef @.str.424, ptr noundef null)
  %60 = icmp eq i32 %59, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  br i1 %60, label %61, label %62

61:                                               ; preds = %47
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %261

62:                                               ; preds = %47
  br label %63

63:                                               ; preds = %62
  br label %64

64:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 40, ptr %16) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %16, ptr align 16 @__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_paths, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  br label %65

65:                                               ; preds = %64
  %66 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %67 = getelementptr inbounds %struct.jc_test_fixture, ptr %66, i32 0, i32 11
  %68 = load i32, ptr %67, align 8
  %69 = and i32 %68, -16776961
  %70 = or i32 %69, 651520
  store i32 %70, ptr %67, align 8
  %71 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %72 = getelementptr inbounds %struct.jc_test_fixture, ptr %71, i32 0, i32 4
  store ptr @.str.3, ptr %72, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  store i32 0, ptr %18, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  %73 = getelementptr inbounds [5 x ptr], ptr %16, i64 0, i64 0
  %74 = getelementptr inbounds [5 x i64], ptr %7, i64 0, i64 0
  %75 = getelementptr inbounds [5 x i16], ptr %9, i64 0, i64 0
  %76 = call i32 @LongtailPrivate_MakeFileInfos(i32 noundef 5, ptr noundef %73, ptr noundef %74, ptr noundef %75, ptr noundef %17)
  store i32 %76, ptr %19, align 4, !tbaa !15
  %77 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef @.str.46, ptr noundef @.str.126, ptr noundef null)
  %78 = icmp eq i32 %77, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  br i1 %78, label %79, label %80

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

80:                                               ; preds = %65
  br label %81

81:                                               ; preds = %80
  br label %82

82:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %83 = load ptr, ptr %17, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %83, i32 0, i32 1
  %85 = load i32, ptr %84, align 4, !tbaa !16
  %86 = call i64 @Longtail_GetVersionIndexSize(i32 noundef 5, i32 noundef 5, i32 noundef 5, i32 noundef %85)
  store i64 %86, ptr %20, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  %87 = load i64, ptr %20, align 8, !tbaa !9
  %88 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %87)
  store ptr %88, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  br label %89

89:                                               ; preds = %82
  %90 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %91 = getelementptr inbounds %struct.jc_test_fixture, ptr %90, i32 0, i32 11
  %92 = load i32, ptr %91, align 8
  %93 = and i32 %92, -16776961
  %94 = or i32 %93, 656896
  store i32 %94, ptr %91, align 8
  %95 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %96 = getelementptr inbounds %struct.jc_test_fixture, ptr %95, i32 0, i32 4
  store ptr @.str.3, ptr %96, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  store i32 0, ptr %23, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  %97 = load ptr, ptr %21, align 8, !tbaa !5
  %98 = load i64, ptr %20, align 8, !tbaa !9
  %99 = load ptr, ptr %17, align 8, !tbaa !5
  %100 = getelementptr inbounds [5 x i64], ptr %6, i64 0, i64 0
  %101 = getelementptr inbounds [5 x i64], ptr %5, i64 0, i64 0
  %102 = getelementptr inbounds [5 x i32], ptr %11, i64 0, i64 0
  %103 = getelementptr inbounds [5 x i32], ptr %10, i64 0, i64 0
  %104 = load ptr, ptr %17, align 8, !tbaa !5
  %105 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %104, i32 0, i32 0
  %106 = load i32, ptr %105, align 8, !tbaa !18
  %107 = getelementptr inbounds [5 x i32], ptr %11, i64 0, i64 0
  %108 = load ptr, ptr %17, align 8, !tbaa !5
  %109 = getelementptr inbounds %struct.Longtail_FileInfos, ptr %108, i32 0, i32 0
  %110 = load i32, ptr %109, align 8, !tbaa !18
  %111 = getelementptr inbounds [5 x i32], ptr %8, i64 0, i64 0
  %112 = getelementptr inbounds [5 x i64], ptr %5, i64 0, i64 0
  %113 = call i32 @Longtail_BuildVersionIndex(ptr noundef %97, i64 noundef %98, ptr noundef %99, ptr noundef %100, ptr noundef %101, ptr noundef %102, ptr noundef %103, i32 noundef %106, ptr noundef %107, i32 noundef %110, ptr noundef %111, ptr noundef %112, ptr noundef null, i32 noundef 0, i32 noundef 32768, ptr noundef %22)
  store i32 %113, ptr %24, align 4, !tbaa !15
  %114 = 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) %23, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef @.str.46, ptr noundef @.str.425, ptr noundef null)
  %115 = icmp eq i32 %114, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  br i1 %115, label %116, label %117

116:                                              ; preds = %89
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %259

117:                                              ; preds = %89
  br label %118

118:                                              ; preds = %117
  br label %119

119:                                              ; preds = %118
  %120 = load ptr, ptr %17, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %120)
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  br label %121

121:                                              ; preds = %119
  %122 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %123 = getelementptr inbounds %struct.jc_test_fixture, ptr %122, i32 0, i32 11
  %124 = load i32, ptr %123, align 8
  %125 = and i32 %124, -16776961
  %126 = or i32 %125, 659456
  store i32 %126, ptr %123, align 8
  %127 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %128 = getelementptr inbounds %struct.jc_test_fixture, ptr %127, i32 0, i32 4
  store ptr @.str.3, ptr %128, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  store i32 0, ptr %26, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  %129 = load ptr, ptr %3, align 8, !tbaa !5
  %130 = load ptr, ptr %12, align 8, !tbaa !5
  %131 = load ptr, ptr %22, align 8, !tbaa !5
  %132 = call i32 @Longtail_CreateMissingContent(ptr noundef %129, ptr noundef %130, ptr noundef %131, i32 noundef 131072, i32 noundef 4096, ptr noundef %25)
  store i32 %132, ptr %27, align 4, !tbaa !15
  %133 = 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) %26, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef @.str.46, ptr noundef @.str.426, ptr noundef null)
  %134 = icmp eq i32 %133, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  br i1 %134, label %135, label %136

135:                                              ; preds = %121
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %258

136:                                              ; preds = %121
  br label %137

137:                                              ; preds = %136
  br label %138

138:                                              ; preds = %137
  br label %139

139:                                              ; preds = %138
  %140 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %141 = getelementptr inbounds %struct.jc_test_fixture, ptr %140, i32 0, i32 11
  %142 = load i32, ptr %141, align 8
  %143 = and i32 %142, -16776961
  %144 = or i32 %143, 659968
  store i32 %144, ptr %141, align 8
  %145 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %146 = getelementptr inbounds %struct.jc_test_fixture, ptr %145, i32 0, i32 4
  store ptr @.str.3, ptr %146, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  store i32 2, ptr %28, align 4, !tbaa !15
  %147 = load ptr, ptr %25, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %147, i32 0, i32 2
  %149 = load ptr, ptr %148, align 8, !tbaa !19
  %150 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 4 dereferenceable(4) %149, ptr noundef @.str.78, ptr noundef @.str.427)
  %151 = icmp eq i32 %150, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  br i1 %151, label %152, label %153

152:                                              ; preds = %139
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %258

153:                                              ; preds = %139
  br label %154

154:                                              ; preds = %153
  br label %155

155:                                              ; preds = %154
  br label %156

156:                                              ; preds = %155
  %157 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %158 = getelementptr inbounds %struct.jc_test_fixture, ptr %157, i32 0, i32 11
  %159 = load i32, ptr %158, align 8
  %160 = and i32 %159, -16776961
  %161 = or i32 %160, 660224
  store i32 %161, ptr %158, align 8
  %162 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %163 = getelementptr inbounds %struct.jc_test_fixture, ptr %162, i32 0, i32 4
  store ptr @.str.3, ptr %163, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #6
  store i32 4, ptr %29, align 4, !tbaa !15
  %164 = load ptr, ptr %25, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %164, i32 0, i32 3
  %166 = load ptr, ptr %165, align 8, !tbaa !21
  %167 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %166, ptr noundef @.str.202, ptr noundef @.str.428)
  %168 = icmp eq i32 %167, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  br i1 %168, label %169, label %170

169:                                              ; preds = %156
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %258

170:                                              ; preds = %156
  br label %171

171:                                              ; preds = %170
  br label %172

172:                                              ; preds = %171
  br label %173

173:                                              ; preds = %172
  %174 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %175 = getelementptr inbounds %struct.jc_test_fixture, ptr %174, i32 0, i32 11
  %176 = load i32, ptr %175, align 8
  %177 = and i32 %176, -16776961
  %178 = or i32 %177, 660736
  store i32 %178, ptr %175, align 8
  %179 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %180 = getelementptr inbounds %struct.jc_test_fixture, ptr %179, i32 0, i32 4
  store ptr @.str.3, ptr %180, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %181 = getelementptr inbounds [5 x i64], ptr %5, i64 0, i64 4
  %182 = load ptr, ptr %25, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %182, i32 0, i32 5
  %184 = load ptr, ptr %183, align 8, !tbaa !22
  %185 = getelementptr inbounds i64, ptr %184, i64 3
  %186 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %181, ptr noundef nonnull align 8 dereferenceable(8) %185, ptr noundef @.str.429, ptr noundef @.str.430)
  %187 = icmp eq i32 %186, 0
  br i1 %187, label %188, label %189

188:                                              ; preds = %173
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %258

189:                                              ; preds = %173
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  br label %192

192:                                              ; preds = %191
  %193 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %194 = getelementptr inbounds %struct.jc_test_fixture, ptr %193, i32 0, i32 11
  %195 = load i32, ptr %194, align 8
  %196 = and i32 %195, -16776961
  %197 = or i32 %196, 660992
  store i32 %197, ptr %194, align 8
  %198 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %199 = getelementptr inbounds %struct.jc_test_fixture, ptr %198, i32 0, i32 4
  store ptr @.str.3, ptr %199, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %200 = getelementptr inbounds [5 x i64], ptr %5, i64 0, i64 3
  %201 = load ptr, ptr %25, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %201, i32 0, i32 5
  %203 = load ptr, ptr %202, align 8, !tbaa !22
  %204 = getelementptr inbounds i64, ptr %203, i64 2
  %205 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull align 8 dereferenceable(8) %204, ptr noundef @.str.431, ptr noundef @.str.432)
  %206 = icmp eq i32 %205, 0
  br i1 %206, label %207, label %208

207:                                              ; preds = %192
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %258

208:                                              ; preds = %192
  br label %209

209:                                              ; preds = %208
  br label %210

210:                                              ; preds = %209
  br label %211

211:                                              ; preds = %210
  %212 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %213 = getelementptr inbounds %struct.jc_test_fixture, ptr %212, i32 0, i32 11
  %214 = load i32, ptr %213, align 8
  %215 = and i32 %214, -16776961
  %216 = or i32 %215, 661248
  store i32 %216, ptr %213, align 8
  %217 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %218 = getelementptr inbounds %struct.jc_test_fixture, ptr %217, i32 0, i32 4
  store ptr @.str.3, ptr %218, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %219 = getelementptr inbounds [5 x i64], ptr %5, i64 0, i64 2
  %220 = load ptr, ptr %25, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %220, i32 0, i32 5
  %222 = load ptr, ptr %221, align 8, !tbaa !22
  %223 = getelementptr inbounds i64, ptr %222, i64 1
  %224 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %219, ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef @.str.433, ptr noundef @.str.434)
  %225 = icmp eq i32 %224, 0
  br i1 %225, label %226, label %227

226:                                              ; preds = %211
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %258

227:                                              ; preds = %211
  br label %228

228:                                              ; preds = %227
  br label %229

229:                                              ; preds = %228
  br label %230

230:                                              ; preds = %229
  %231 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %232 = getelementptr inbounds %struct.jc_test_fixture, ptr %231, i32 0, i32 11
  %233 = load i32, ptr %232, align 8
  %234 = and i32 %233, -16776961
  %235 = or i32 %234, 661504
  store i32 %235, ptr %232, align 8
  %236 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %237 = getelementptr inbounds %struct.jc_test_fixture, ptr %236, i32 0, i32 4
  store ptr @.str.3, ptr %237, align 8, !tbaa !11
  call void @_Z28jc_test_increment_assertionsv()
  %238 = getelementptr inbounds [5 x i64], ptr %5, i64 0, i64 1
  %239 = load ptr, ptr %25, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %239, i32 0, i32 5
  %241 = load ptr, ptr %240, align 8, !tbaa !22
  %242 = getelementptr inbounds i64, ptr %241, i64 0
  %243 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %238, ptr noundef nonnull align 8 dereferenceable(8) %242, ptr noundef @.str.435, ptr noundef @.str.436)
  %244 = icmp eq i32 %243, 0
  br i1 %244, label %245, label %246

245:                                              ; preds = %230
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %15, align 4
  br label %258

246:                                              ; preds = %230
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  %249 = load ptr, ptr %22, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %249)
  %250 = load ptr, ptr %12, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %250)
  %251 = load ptr, ptr %25, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %251)
  %252 = load ptr, ptr %3, align 8, !tbaa !5
  %253 = icmp ne ptr %252, null
  br i1 %253, label %254, label %257

254:                                              ; preds = %248
  %255 = load ptr, ptr %3, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %255, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %256)
  br label %257

257:                                              ; preds = %254, %248
  store i32 0, ptr %15, align 4
  br label %258

258:                                              ; preds = %257, %245, %226, %207, %188, %169, %152, %135
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  br label %259

259:                                              ; preds = %258, %116
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  br label %260

260:                                              ; preds = %259, %79
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %16) #6
  br label %261

261:                                              ; preds = %260, %61
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 20, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 20, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 10, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 20, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 40, 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
  %262 = load i32, ptr %15, align 4
  switch i32 %262, label %264 [
    i32 0, label %263
    i32 1, label %263
  ]

263:                                              ; preds = %261, %261
  ret void

264:                                              ; preds = %261
  unreachable
}

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

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

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

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


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

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [3 x i8], align 1
@__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.chunk_sizes = external hidden unnamed_addr constant [5 x i32], align 16
@__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_permissions = external hidden unnamed_addr constant [5 x i16], align 2
@__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_chunk_counts = external hidden unnamed_addr constant [5 x i32], align 16
@__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_chunk_start_index = external hidden unnamed_addr constant [5 x i32], align 16
@.str.424 = external hidden unnamed_addr constant [144 x i8], align 1
@__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_paths = external hidden unnamed_addr constant [5 x ptr], align 16
@.str.425 = external hidden unnamed_addr constant [309 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [40 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 uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

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

declare void @Longtail_DisposeAPI(ptr noundef) local_unnamed_addr #1

declare ptr @Longtail_CreateBlake3HashAPI() local_unnamed_addr #1

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

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

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

declare i64 @Longtail_GetVersionIndexSize(i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 {
  %2 = alloca [5 x i64], align 16
  %3 = alloca [5 x i64], align 16
  %4 = alloca [5 x i64], align 16
  %5 = alloca [5 x i32], align 16
  %6 = alloca [5 x i16], align 2
  %7 = alloca [5 x i32], align 16
  %8 = alloca [5 x i32], align 16
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca [5 x ptr], align 16
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = tail call ptr @Longtail_CreateBlake3HashAPI()
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %2) #5
  store i64 5, ptr %2, align 16
  %25 = getelementptr inbounds i8, ptr %2, i64 8
  store i64 4, ptr %25, align 8
  %26 = getelementptr inbounds i8, ptr %2, i64 16
  store i64 3, ptr %26, align 16
  %27 = getelementptr inbounds i8, ptr %2, i64 24
  store i64 2, ptr %27, align 8
  %28 = getelementptr inbounds i8, ptr %2, i64 32
  store i64 1, ptr %28, align 16
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #5
  store i64 50, ptr %3, align 16
  %29 = getelementptr inbounds i8, ptr %3, i64 8
  store i64 40, ptr %29, align 8
  %30 = getelementptr inbounds i8, ptr %3, i64 16
  store i64 30, ptr %30, align 16
  %31 = getelementptr inbounds i8, ptr %3, i64 24
  store i64 20, ptr %31, align 8
  %32 = getelementptr inbounds i8, ptr %3, i64 32
  store i64 10, ptr %32, align 16
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #5
  store i64 43593, ptr %4, align 16
  %33 = getelementptr inbounds i8, ptr %4, i64 8
  store i64 43593, ptr %33, align 8
  %34 = getelementptr inbounds i8, ptr %4, i64 16
  store i64 43592, ptr %34, align 16
  %35 = getelementptr inbounds i8, ptr %4, i64 24
  store i64 43591, ptr %35, align 8
  %36 = getelementptr inbounds i8, ptr %4, i64 32
  store i64 43591, ptr %36, align 16
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %5) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %5, ptr noundef nonnull align 16 dereferenceable(20) @__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.chunk_sizes, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 10, ptr nonnull %6) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(10) %6, ptr noundef nonnull align 2 dereferenceable(10) @__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_permissions, i64 10, i1 false)
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %7) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %7, ptr noundef nonnull align 16 dereferenceable(20) @__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_chunk_counts, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %8) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %8, ptr noundef nonnull align 16 dereferenceable(20) @__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_chunk_start_index, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #5
  %37 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %38 = getelementptr inbounds i8, ptr %37, i64 96
  %39 = load i32, ptr %38, align 8
  %40 = and i32 %39, -16776961
  %41 = or disjoint i32 %40, 648704
  store i32 %41, ptr %38, align 8
  %42 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %43 = getelementptr inbounds i8, ptr %42, i64 32
  store ptr @.str.3, ptr %43, align 8, !tbaa !5
  tail call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #5
  store i32 0, ptr %10, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #5
  %44 = call i32 @Longtail_CreateStoreIndex(ptr noundef %24, i32 noundef 1, ptr noundef nonnull %2, ptr noundef nonnull %5, ptr noundef null, i32 noundef 131072, i32 noundef 4096, ptr noundef nonnull %9)
  store i32 %44, ptr %11, align 4, !tbaa !13
  %45 = 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) %10, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.424, ptr noundef null)
  %46 = icmp eq i32 %45, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  br i1 %46, label %47, label %48

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

48:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(40) %12, ptr noundef nonnull align 16 dereferenceable(40) @__const._ZN48Longtail_Longtail_CreateMissingContent__TestCase8TestBodyEv.asset_paths, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  %49 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %50 = getelementptr inbounds i8, ptr %49, i64 96
  %51 = load i32, ptr %50, align 8
  %52 = and i32 %51, -16776961
  %53 = or disjoint i32 %52, 651520
  store i32 %53, ptr %50, align 8
  %54 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %55 = getelementptr inbounds i8, ptr %54, i64 32
  store ptr @.str.3, ptr %55, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #5
  store i32 0, ptr %14, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #5
  %56 = call i32 @LongtailPrivate_MakeFileInfos(i32 noundef 5, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %6, ptr noundef nonnull %13)
  store i32 %56, ptr %15, align 4, !tbaa !13
  %57 = 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.126, ptr noundef null)
  %58 = icmp eq i32 %57, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #5
  br i1 %58, label %59, label %60

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

60:                                               ; preds = %48
  %61 = load ptr, ptr %13, align 8, !tbaa !14
  %62 = getelementptr inbounds i8, ptr %61, i64 4
  %63 = load i32, ptr %62, align 4, !tbaa !15
  %64 = call i64 @Longtail_GetVersionIndexSize(i32 noundef 5, i32 noundef 5, i32 noundef 5, i32 noundef %63)
  %65 = call ptr @Longtail_Alloc(ptr noundef null, i64 noundef %64)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  %66 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %67 = getelementptr inbounds i8, ptr %66, i64 96
  %68 = load i32, ptr %67, align 8
  %69 = and i32 %68, -16776961
  %70 = or disjoint i32 %69, 656896
  store i32 %70, ptr %67, align 8
  %71 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %72 = getelementptr inbounds i8, ptr %71, i64 32
  store ptr @.str.3, ptr %72, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  store i32 0, ptr %17, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #5
  %73 = load ptr, ptr %13, align 8, !tbaa !14
  %74 = load i32, ptr %73, align 8, !tbaa !17
  %75 = call i32 @Longtail_BuildVersionIndex(ptr noundef %65, i64 noundef %64, ptr noundef nonnull %73, ptr noundef nonnull %3, ptr noundef nonnull %2, ptr noundef nonnull %8, ptr noundef nonnull %7, i32 noundef %74, ptr noundef nonnull %8, i32 noundef %74, ptr noundef nonnull %5, ptr noundef nonnull %2, ptr noundef null, i32 noundef 0, i32 noundef 32768, ptr noundef nonnull %16)
  store i32 %75, ptr %18, align 4, !tbaa !13
  %76 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.425, ptr noundef null)
  %77 = icmp eq i32 %76, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  br i1 %77, label %78, label %79

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

79:                                               ; preds = %60
  %80 = load ptr, ptr %13, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %80)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #5
  %81 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %82 = getelementptr inbounds i8, ptr %81, i64 96
  %83 = load i32, ptr %82, align 8
  %84 = and i32 %83, -16776961
  %85 = or disjoint i32 %84, 659456
  store i32 %85, ptr %82, align 8
  %86 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %87 = getelementptr inbounds i8, ptr %86, i64 32
  store ptr @.str.3, ptr %87, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  store i32 0, ptr %20, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  %88 = load ptr, ptr %9, align 8, !tbaa !14
  %89 = load ptr, ptr %16, align 8, !tbaa !14
  %90 = call i32 @Longtail_CreateMissingContent(ptr noundef %24, ptr noundef %88, ptr noundef %89, i32 noundef 131072, i32 noundef 4096, ptr noundef nonnull %19)
  store i32 %90, ptr %21, align 4, !tbaa !13
  %91 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.426, ptr noundef null)
  %92 = icmp eq i32 %91, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  br i1 %92, label %93, label %94

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

94:                                               ; preds = %79
  %95 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %96 = getelementptr inbounds i8, ptr %95, i64 96
  %97 = load i32, ptr %96, align 8
  %98 = and i32 %97, -16776961
  %99 = or disjoint i32 %98, 659968
  store i32 %99, ptr %96, align 8
  %100 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %101 = getelementptr inbounds i8, ptr %100, i64 32
  store ptr @.str.3, ptr %101, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  store i32 2, ptr %22, align 4, !tbaa !13
  %102 = load ptr, ptr %19, align 8, !tbaa !14
  %103 = getelementptr inbounds i8, ptr %102, i64 16
  %104 = load ptr, ptr %103, align 8, !tbaa !18
  %105 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %104, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.427)
  %106 = icmp eq i32 %105, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  br i1 %106, label %107, label %108

107:                                              ; preds = %94
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %186

108:                                              ; preds = %94
  %109 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %110 = getelementptr inbounds i8, ptr %109, i64 96
  %111 = load i32, ptr %110, align 8
  %112 = and i32 %111, -16776961
  %113 = or disjoint i32 %112, 660224
  store i32 %113, ptr %110, align 8
  %114 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %115 = getelementptr inbounds i8, ptr %114, i64 32
  store ptr @.str.3, ptr %115, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  store i32 4, ptr %23, align 4, !tbaa !13
  %116 = load ptr, ptr %19, align 8, !tbaa !14
  %117 = getelementptr inbounds i8, ptr %116, i64 24
  %118 = load ptr, ptr %117, align 8, !tbaa !20
  %119 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 4 dereferenceable(4) %118, ptr noundef nonnull @.str.202, ptr noundef nonnull @.str.428)
  %120 = icmp eq i32 %119, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  br i1 %120, label %121, label %122

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

122:                                              ; preds = %108
  %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, 660736
  store i32 %127, ptr %124, align 8
  %128 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %129 = getelementptr inbounds i8, ptr %128, i64 32
  store ptr @.str.3, ptr %129, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %130 = load ptr, ptr %19, align 8, !tbaa !14
  %131 = getelementptr inbounds i8, ptr %130, i64 40
  %132 = load ptr, ptr %131, align 8, !tbaa !21
  %133 = getelementptr inbounds i8, ptr %132, i64 24
  %134 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef nonnull @.str.429, ptr noundef nonnull @.str.430)
  %135 = icmp eq i32 %134, 0
  br i1 %135, label %136, label %137

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

137:                                              ; preds = %122
  %138 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %139 = getelementptr inbounds i8, ptr %138, i64 96
  %140 = load i32, ptr %139, align 8
  %141 = and i32 %140, -16776961
  %142 = or disjoint i32 %141, 660992
  store i32 %142, ptr %139, align 8
  %143 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %144 = getelementptr inbounds i8, ptr %143, i64 32
  store ptr @.str.3, ptr %144, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %145 = load ptr, ptr %19, align 8, !tbaa !14
  %146 = getelementptr inbounds i8, ptr %145, i64 40
  %147 = load ptr, ptr %146, align 8, !tbaa !21
  %148 = getelementptr inbounds i8, ptr %147, i64 16
  %149 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %148, ptr noundef nonnull @.str.431, ptr noundef nonnull @.str.432)
  %150 = icmp eq i32 %149, 0
  br i1 %150, label %151, label %152

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

152:                                              ; preds = %137
  %153 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %154 = getelementptr inbounds i8, ptr %153, i64 96
  %155 = load i32, ptr %154, align 8
  %156 = and i32 %155, -16776961
  %157 = or disjoint i32 %156, 661248
  store i32 %157, ptr %154, align 8
  %158 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %159 = getelementptr inbounds i8, ptr %158, i64 32
  store ptr @.str.3, ptr %159, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %160 = load ptr, ptr %19, align 8, !tbaa !14
  %161 = getelementptr inbounds i8, ptr %160, i64 40
  %162 = load ptr, ptr %161, align 8, !tbaa !21
  %163 = getelementptr inbounds i8, ptr %162, i64 8
  %164 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull @.str.433, ptr noundef nonnull @.str.434)
  %165 = icmp eq i32 %164, 0
  br i1 %165, label %166, label %167

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

167:                                              ; preds = %152
  %168 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %169 = getelementptr inbounds i8, ptr %168, i64 96
  %170 = load i32, ptr %169, align 8
  %171 = and i32 %170, -16776961
  %172 = or disjoint i32 %171, 661504
  store i32 %172, ptr %169, align 8
  %173 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %174 = getelementptr inbounds i8, ptr %173, i64 32
  store ptr @.str.3, ptr %174, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %175 = load ptr, ptr %19, align 8, !tbaa !14
  %176 = getelementptr inbounds i8, ptr %175, i64 40
  %177 = load ptr, ptr %176, align 8, !tbaa !21
  %178 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef nonnull @.str.435, ptr noundef nonnull @.str.436)
  %179 = icmp eq i32 %178, 0
  br i1 %179, label %180, label %181

180:                                              ; preds = %167
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %186

181:                                              ; preds = %167
  %182 = load ptr, ptr %16, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %182)
  %183 = load ptr, ptr %9, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %183)
  %184 = load ptr, ptr %19, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %184)
  %.not = icmp eq ptr %24, null
  br i1 %.not, label %186, label %185

185:                                              ; preds = %181
  call void @Longtail_DisposeAPI(ptr noundef nonnull %24)
  br label %186

186:                                              ; preds = %181, %185, %180, %166, %151, %136, %121, %107, %93
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  br label %187

187:                                              ; preds = %186, %78
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  br label %188

188:                                              ; preds = %187, %59
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #5
  br label %189

189:                                              ; preds = %188, %47
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 10, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %2) #5
  ret void
}

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

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

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

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


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