; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN43Longtail_Longtail_SplitStoreIndex (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_StoreIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_BlockIndex = type { 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.65 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [16 x i8], align 1
@__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_indexes = external hidden unnamed_addr constant [15 x i32], align 16
@__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_hashes = external hidden unnamed_addr constant [15 x i64], align 16
@__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_sizes = external hidden unnamed_addr constant [15 x i32], align 16
@__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.block_chunk_counts = external hidden unnamed_addr constant [6 x i32], align 16
@.str.199 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [37 x i8], align 1

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

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

declare void @_Z28jc_test_increment_assertionsv() #2

declare void @_Z21jc_test_set_test_faili(i32 noundef) #2

declare void @Longtail_Free(ptr noundef) #2

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

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

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

declare ptr @Longtail_CreateBlake3HashAPI() #2

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

; 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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN43Longtail_Longtail_SplitStoreIndex__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 i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca [15 x i32], align 16
  %7 = alloca [15 x i64], align 16
  %8 = alloca [15 x i32], align 16
  %9 = alloca i32, align 4
  %10 = alloca [6 x i32], align 16
  %11 = alloca [6 x ptr], align 16
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %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 i64, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %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
  store ptr %0, ptr %2, align 8, !tbaa !5
  %35 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #5
  %36 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %36, ptr %3, align 8, !tbaa !5
  br label %37

37:                                               ; preds = %1
  %38 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %39 = getelementptr inbounds %struct.jc_test_fixture, ptr %38, i32 0, i32 11
  %40 = load i32, ptr %39, align 8
  %41 = and i32 %40, -16776961
  %42 = or i32 %41, 250624
  store i32 %42, ptr %39, align 8
  %43 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %44 = getelementptr inbounds %struct.jc_test_fixture, ptr %43, i32 0, i32 4
  store ptr @.str.3, ptr %44, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %45 = load ptr, ptr %3, align 8, !tbaa !5
  %46 = call noundef i32 @_Z14jc_test_cmp_NEIP16Longtail_HashAPIS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %45, ptr noundef @.str.65, ptr noundef @.str.66)
  %47 = icmp eq i32 %46, 0
  br i1 %47, label %48, label %49

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

49:                                               ; preds = %37
  br label %50

50:                                               ; preds = %49
  br label %51

51:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #5
  store i32 15, ptr %5, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 60, ptr %6) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %6, ptr align 16 @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_indexes, i64 60, i1 false)
  call void @llvm.lifetime.start.p0(i64 120, ptr %7) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_hashes, i64 120, i1 false)
  call void @llvm.lifetime.start.p0(i64 60, ptr %8) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_sizes, i64 60, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  store i32 6, ptr %9, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %10, ptr align 16 @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.block_chunk_counts, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #5
  store i32 0, ptr %12, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #5
  store i32 0, ptr %13, align 4, !tbaa !14
  br label %52

52:                                               ; preds = %91, %51
  %53 = load i32, ptr %13, align 4, !tbaa !14
  %54 = icmp ult i32 %53, 6
  br i1 %54, label %56, label %55

55:                                               ; preds = %52
  store i32 4, ptr %4, align 4
  br label %94

56:                                               ; preds = %52
  br label %57

57:                                               ; preds = %56
  %58 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %59 = getelementptr inbounds %struct.jc_test_fixture, ptr %58, i32 0, i32 11
  %60 = load i32, ptr %59, align 8
  %61 = and i32 %60, -16776961
  %62 = or i32 %61, 255232
  store i32 %62, ptr %59, align 8
  %63 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %64 = getelementptr inbounds %struct.jc_test_fixture, ptr %63, i32 0, i32 4
  store ptr @.str.3, ptr %64, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #5
  store i32 0, ptr %14, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  %65 = load ptr, ptr %3, align 8, !tbaa !5
  %66 = load i32, ptr %13, align 4, !tbaa !14
  %67 = zext i32 %66 to i64
  %68 = getelementptr inbounds [6 x i32], ptr %10, i64 0, i64 %67
  %69 = load i32, ptr %68, align 4, !tbaa !14
  %70 = load i32, ptr %12, align 4, !tbaa !14
  %71 = zext i32 %70 to i64
  %72 = getelementptr inbounds [15 x i32], ptr %6, i64 0, i64 %71
  %73 = getelementptr inbounds [15 x i64], ptr %7, i64 0, i64 0
  %74 = getelementptr inbounds [15 x i32], ptr %8, i64 0, i64 0
  %75 = load i32, ptr %13, align 4, !tbaa !14
  %76 = zext i32 %75 to i64
  %77 = getelementptr inbounds [6 x ptr], ptr %11, i64 0, i64 %76
  %78 = call i32 @Longtail_CreateBlockIndex(ptr noundef %65, i32 noundef 51542081, i32 noundef %69, ptr noundef %72, ptr noundef %73, ptr noundef %74, ptr noundef %77)
  store i32 %78, ptr %15, align 4, !tbaa !14
  %79 = 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 @.str.46, ptr noundef @.str.199, ptr noundef null)
  %80 = icmp eq i32 %79, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #5
  br i1 %80, label %81, label %82

81:                                               ; preds = %57
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %94

82:                                               ; preds = %57
  br label %83

83:                                               ; preds = %82
  br label %84

84:                                               ; preds = %83
  %85 = load i32, ptr %13, align 4, !tbaa !14
  %86 = zext i32 %85 to i64
  %87 = getelementptr inbounds [6 x i32], ptr %10, i64 0, i64 %86
  %88 = load i32, ptr %87, align 4, !tbaa !14
  %89 = load i32, ptr %12, align 4, !tbaa !14
  %90 = add i32 %89, %88
  store i32 %90, ptr %12, align 4, !tbaa !14
  br label %91

91:                                               ; preds = %84
  %92 = load i32, ptr %13, align 4, !tbaa !14
  %93 = add i32 %92, 1
  store i32 %93, ptr %13, align 4, !tbaa !14
  br label %52, !llvm.loop !15

94:                                               ; preds = %81, %55
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  %95 = load i32, ptr %4, align 4
  switch i32 %95, label %364 [
    i32 4, label %96
  ]

96:                                               ; preds = %94
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  br label %97

97:                                               ; preds = %96
  %98 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %99 = getelementptr inbounds %struct.jc_test_fixture, ptr %98, i32 0, i32 11
  %100 = load i32, ptr %99, align 8
  %101 = and i32 %100, -16776961
  %102 = or i32 %101, 257280
  store i32 %102, ptr %99, align 8
  %103 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %104 = getelementptr inbounds %struct.jc_test_fixture, ptr %103, i32 0, i32 4
  store ptr @.str.3, ptr %104, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #5
  store i32 0, ptr %17, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  %105 = getelementptr inbounds [6 x ptr], ptr %11, i64 0, i64 0
  %106 = call i32 @Longtail_CreateStoreIndexFromBlocks(i32 noundef 6, ptr noundef %105, ptr noundef %16)
  store i32 %106, ptr %18, align 4, !tbaa !14
  %107 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef @.str.46, ptr noundef @.str.200, ptr noundef null)
  %108 = icmp eq i32 %107, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #5
  br i1 %108, label %109, label %110

109:                                              ; preds = %97
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %363

110:                                              ; preds = %97
  br label %111

111:                                              ; preds = %110
  br label %112

112:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  br label %113

113:                                              ; preds = %112
  %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, 258304
  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 !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  store i32 0, ptr %21, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  %121 = load ptr, ptr %16, align 8, !tbaa !5
  %122 = call i32 @Longtail_SplitStoreIndex(ptr noundef %121, i64 noundef 200, ptr noundef %19, ptr noundef %20)
  store i32 %122, ptr %22, align 4, !tbaa !14
  %123 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef @.str.46, ptr noundef @.str.201, ptr noundef null)
  %124 = icmp eq i32 %123, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  br i1 %124, label %125, label %126

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

126:                                              ; preds = %113
  br label %127

127:                                              ; preds = %126
  br label %128

128:                                              ; preds = %127
  br label %129

129:                                              ; preds = %128
  %130 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %131 = getelementptr inbounds %struct.jc_test_fixture, ptr %130, i32 0, i32 11
  %132 = load i32, ptr %131, align 8
  %133 = and i32 %132, -16776961
  %134 = or i32 %133, 258560
  store i32 %134, ptr %131, align 8
  %135 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %136 = getelementptr inbounds %struct.jc_test_fixture, ptr %135, i32 0, i32 4
  store ptr @.str.3, ptr %136, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  store i32 4, ptr %23, align 4, !tbaa !14
  %137 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef @.str.202, ptr noundef @.str.203)
  %138 = icmp eq i32 %137, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  br i1 %138, label %139, label %140

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

140:                                              ; preds = %129
  br label %141

141:                                              ; preds = %140
  br label %142

142:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  store ptr null, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  store i32 0, ptr %25, align 4, !tbaa !14
  br label %143

143:                                              ; preds = %209, %178, %142
  %144 = load i32, ptr %25, align 4, !tbaa !14
  %145 = zext i32 %144 to i64
  %146 = load i64, ptr %20, align 8, !tbaa !17
  %147 = icmp ult i64 %145, %146
  br i1 %147, label %149, label %148

148:                                              ; preds = %143
  store i32 15, ptr %4, align 4
  br label %210

149:                                              ; preds = %143
  %150 = load ptr, ptr %24, align 8, !tbaa !5
  %151 = icmp eq ptr %150, null
  br i1 %151, label %152, label %181

152:                                              ; preds = %149
  br label %153

153:                                              ; preds = %152
  %154 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %155 = getelementptr inbounds %struct.jc_test_fixture, ptr %154, i32 0, i32 11
  %156 = load i32, ptr %155, align 8
  %157 = and i32 %156, -16776961
  %158 = or i32 %157, 260352
  store i32 %158, ptr %155, align 8
  %159 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %160 = getelementptr inbounds %struct.jc_test_fixture, ptr %159, i32 0, i32 4
  store ptr @.str.3, ptr %160, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  store i32 0, ptr %26, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  %161 = load ptr, ptr %19, align 8, !tbaa !5
  %162 = load i32, ptr %25, align 4, !tbaa !14
  %163 = zext i32 %162 to i64
  %164 = getelementptr inbounds ptr, ptr %161, i64 %163
  %165 = load ptr, ptr %164, align 8, !tbaa !5
  %166 = load ptr, ptr %19, align 8, !tbaa !5
  %167 = load i32, ptr %25, align 4, !tbaa !14
  %168 = add i32 %167, 1
  %169 = zext i32 %168 to i64
  %170 = getelementptr inbounds ptr, ptr %166, i64 %169
  %171 = load ptr, ptr %170, align 8, !tbaa !5
  %172 = call i32 @Longtail_MergeStoreIndex(ptr noundef %165, ptr noundef %171, ptr noundef %24)
  store i32 %172, ptr %27, align 4, !tbaa !14
  %173 = 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.204, ptr noundef null)
  %174 = icmp eq i32 %173, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  br i1 %174, label %175, label %176

175:                                              ; preds = %153
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %210

176:                                              ; preds = %153
  br label %177

177:                                              ; preds = %176
  br label %178

178:                                              ; preds = %177
  %179 = load i32, ptr %25, align 4, !tbaa !14
  %180 = add i32 %179, 2
  store i32 %180, ptr %25, align 4, !tbaa !14
  br label %143, !llvm.loop !18

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

182:                                              ; preds = %181
  %183 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %184 = getelementptr inbounds %struct.jc_test_fixture, ptr %183, i32 0, i32 11
  %185 = load i32, ptr %184, align 8
  %186 = and i32 %185, -16776961
  %187 = or i32 %186, 261632
  store i32 %187, ptr %184, align 8
  %188 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %189 = getelementptr inbounds %struct.jc_test_fixture, ptr %188, i32 0, i32 4
  store ptr @.str.3, ptr %189, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  store i32 0, ptr %29, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  %190 = load ptr, ptr %24, align 8, !tbaa !5
  %191 = load ptr, ptr %19, align 8, !tbaa !5
  %192 = load i32, ptr %25, align 4, !tbaa !14
  %193 = zext i32 %192 to i64
  %194 = getelementptr inbounds ptr, ptr %191, i64 %193
  %195 = load ptr, ptr %194, align 8, !tbaa !5
  %196 = call i32 @Longtail_MergeStoreIndex(ptr noundef %190, ptr noundef %195, ptr noundef %28)
  store i32 %196, ptr %30, align 4, !tbaa !14
  %197 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef @.str.46, ptr noundef @.str.205, ptr noundef null)
  %198 = icmp eq i32 %197, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  br i1 %198, label %199, label %200

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

200:                                              ; preds = %182
  br label %201

201:                                              ; preds = %200
  br label %202

202:                                              ; preds = %201
  %203 = load ptr, ptr %24, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %203)
  %204 = load ptr, ptr %28, align 8, !tbaa !5
  store ptr %204, ptr %24, align 8, !tbaa !5
  %205 = load i32, ptr %25, align 4, !tbaa !14
  %206 = add i32 %205, 1
  store i32 %206, ptr %25, align 4, !tbaa !14
  store i32 0, ptr %4, align 4
  br label %207

207:                                              ; preds = %202, %199
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  %208 = load i32, ptr %4, align 4
  switch i32 %208, label %210 [
    i32 0, label %209
  ]

209:                                              ; preds = %207
  br label %143, !llvm.loop !18

210:                                              ; preds = %207, %175, %148
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  %211 = load i32, ptr %4, align 4
  switch i32 %211, label %361 [
    i32 15, label %212
  ]

212:                                              ; preds = %210
  br label %213

213:                                              ; preds = %212
  %214 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %215 = getelementptr inbounds %struct.jc_test_fixture, ptr %214, i32 0, i32 11
  %216 = load i32, ptr %215, align 8
  %217 = and i32 %216, -16776961
  %218 = or i32 %217, 263168
  store i32 %218, ptr %215, align 8
  %219 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %220 = getelementptr inbounds %struct.jc_test_fixture, ptr %219, i32 0, i32 4
  store ptr @.str.3, ptr %220, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %221 = load ptr, ptr %24, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %221, i32 0, i32 2
  %223 = load ptr, ptr %222, align 8, !tbaa !19
  %224 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %223, ptr noundef @.str.206, ptr noundef @.str.207)
  %225 = icmp eq i32 %224, 0
  br i1 %225, label %226, label %227

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

227:                                              ; preds = %213
  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, 263424
  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 !9
  call void @_Z28jc_test_increment_assertionsv()
  %238 = load ptr, ptr %24, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %238, i32 0, i32 3
  %240 = load ptr, ptr %239, align 8, !tbaa !21
  %241 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %240, ptr noundef @.str.208, ptr noundef @.str.209)
  %242 = icmp eq i32 %241, 0
  br i1 %242, label %243, label %244

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

244:                                              ; preds = %230
  br label %245

245:                                              ; preds = %244
  br label %246

246:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  store i32 0, ptr %31, align 4, !tbaa !14
  br label %247

247:                                              ; preds = %278, %246
  %248 = load i32, ptr %31, align 4, !tbaa !14
  %249 = icmp ult i32 %248, 6
  br i1 %249, label %251, label %250

250:                                              ; preds = %247
  store i32 25, ptr %4, align 4
  br label %281

251:                                              ; preds = %247
  br label %252

252:                                              ; preds = %251
  %253 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %254 = getelementptr inbounds %struct.jc_test_fixture, ptr %253, i32 0, i32 11
  %255 = load i32, ptr %254, align 8
  %256 = and i32 %255, -16776961
  %257 = or i32 %256, 264192
  store i32 %257, ptr %254, align 8
  %258 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %259 = getelementptr inbounds %struct.jc_test_fixture, ptr %258, i32 0, i32 4
  store ptr @.str.3, ptr %259, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %260 = load i32, ptr %31, align 4, !tbaa !14
  %261 = zext i32 %260 to i64
  %262 = getelementptr inbounds [6 x ptr], ptr %11, i64 0, i64 %261
  %263 = load ptr, ptr %262, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %263, i32 0, i32 0
  %265 = load ptr, ptr %264, align 8, !tbaa !22
  %266 = load ptr, ptr %24, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %266, i32 0, i32 4
  %268 = load ptr, ptr %267, align 8, !tbaa !24
  %269 = load i32, ptr %31, align 4, !tbaa !14
  %270 = zext i32 %269 to i64
  %271 = getelementptr inbounds i64, ptr %268, i64 %270
  %272 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %265, ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef @.str.210, ptr noundef @.str.211)
  %273 = icmp eq i32 %272, 0
  br i1 %273, label %274, label %275

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

275:                                              ; preds = %252
  br label %276

276:                                              ; preds = %275
  br label %277

277:                                              ; preds = %276
  br label %278

278:                                              ; preds = %277
  %279 = load i32, ptr %31, align 4, !tbaa !14
  %280 = add i32 %279, 1
  store i32 %280, ptr %31, align 4, !tbaa !14
  br label %247, !llvm.loop !25

281:                                              ; preds = %274, %250
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  %282 = load i32, ptr %4, align 4
  switch i32 %282, label %361 [
    i32 25, label %283
  ]

283:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  store i32 0, ptr %32, align 4, !tbaa !14
  br label %284

284:                                              ; preds = %312, %283
  %285 = load i32, ptr %32, align 4, !tbaa !14
  %286 = icmp ult i32 %285, 15
  br i1 %286, label %288, label %287

287:                                              ; preds = %284
  store i32 30, ptr %4, align 4
  br label %315

288:                                              ; preds = %284
  br label %289

289:                                              ; preds = %288
  %290 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %291 = getelementptr inbounds %struct.jc_test_fixture, ptr %290, i32 0, i32 11
  %292 = load i32, ptr %291, align 8
  %293 = and i32 %292, -16776961
  %294 = or i32 %293, 265216
  store i32 %294, ptr %291, align 8
  %295 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %296 = getelementptr inbounds %struct.jc_test_fixture, ptr %295, i32 0, i32 4
  store ptr @.str.3, ptr %296, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %297 = load i32, ptr %32, align 4, !tbaa !14
  %298 = zext i32 %297 to i64
  %299 = getelementptr inbounds [15 x i64], ptr %7, i64 0, i64 %298
  %300 = load ptr, ptr %24, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %300, i32 0, i32 5
  %302 = load ptr, ptr %301, align 8, !tbaa !26
  %303 = load i32, ptr %32, align 4, !tbaa !14
  %304 = zext i32 %303 to i64
  %305 = getelementptr inbounds i64, ptr %302, i64 %304
  %306 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %299, ptr noundef nonnull align 8 dereferenceable(8) %305, ptr noundef @.str.113, ptr noundef @.str.212)
  %307 = icmp eq i32 %306, 0
  br i1 %307, label %308, label %309

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

309:                                              ; preds = %289
  br label %310

310:                                              ; preds = %309
  br label %311

311:                                              ; preds = %310
  br label %312

312:                                              ; preds = %311
  %313 = load i32, ptr %32, align 4, !tbaa !14
  %314 = add i32 %313, 1
  store i32 %314, ptr %32, align 4, !tbaa !14
  br label %284, !llvm.loop !27

315:                                              ; preds = %308, %287
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  %316 = load i32, ptr %4, align 4
  switch i32 %316, label %361 [
    i32 30, label %317
  ]

317:                                              ; preds = %315
  %318 = load ptr, ptr %24, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %318)
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  store i32 0, ptr %33, align 4, !tbaa !14
  br label %319

319:                                              ; preds = %334, %317
  %320 = load i32, ptr %33, align 4, !tbaa !14
  %321 = zext i32 %320 to i64
  %322 = load i64, ptr %20, align 8, !tbaa !17
  %323 = icmp ult i64 %321, %322
  br i1 %323, label %325, label %324

324:                                              ; preds = %319
  store i32 35, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  br label %337

325:                                              ; preds = %319
  %326 = load ptr, ptr %19, align 8, !tbaa !5
  %327 = load i64, ptr %20, align 8, !tbaa !17
  %328 = load i32, ptr %33, align 4, !tbaa !14
  %329 = zext i32 %328 to i64
  %330 = sub i64 %327, %329
  %331 = sub i64 %330, 1
  %332 = getelementptr inbounds ptr, ptr %326, i64 %331
  %333 = load ptr, ptr %332, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %333)
  br label %334

334:                                              ; preds = %325
  %335 = load i32, ptr %33, align 4, !tbaa !14
  %336 = add i32 %335, 1
  store i32 %336, ptr %33, align 4, !tbaa !14
  br label %319, !llvm.loop !28

337:                                              ; preds = %324
  %338 = load ptr, ptr %19, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %338)
  %339 = load ptr, ptr %16, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %339)
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  store i32 0, ptr %34, align 4, !tbaa !14
  br label %340

340:                                              ; preds = %351, %337
  %341 = load i32, ptr %34, align 4, !tbaa !14
  %342 = icmp ult i32 %341, 6
  br i1 %342, label %344, label %343

343:                                              ; preds = %340
  store i32 38, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  br label %354

344:                                              ; preds = %340
  %345 = load i32, ptr %34, align 4, !tbaa !14
  %346 = sub i32 6, %345
  %347 = sub i32 %346, 1
  %348 = zext i32 %347 to i64
  %349 = getelementptr inbounds [6 x ptr], ptr %11, i64 0, i64 %348
  %350 = load ptr, ptr %349, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %350)
  br label %351

351:                                              ; preds = %344
  %352 = load i32, ptr %34, align 4, !tbaa !14
  %353 = add i32 %352, 1
  store i32 %353, ptr %34, align 4, !tbaa !14
  br label %340, !llvm.loop !29

354:                                              ; preds = %343
  %355 = load ptr, ptr %3, align 8, !tbaa !5
  %356 = icmp ne ptr %355, null
  br i1 %356, label %357, label %360

357:                                              ; preds = %354
  %358 = load ptr, ptr %3, align 8, !tbaa !5
  %359 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %358, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %359)
  br label %360

360:                                              ; preds = %357, %354
  store i32 0, ptr %4, align 4
  br label %361

361:                                              ; preds = %360, %315, %281, %243, %226, %210
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  br label %362

362:                                              ; preds = %361, %139, %125
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  br label %363

363:                                              ; preds = %362, %109
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  br label %364

364:                                              ; preds = %363, %94
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 60, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 120, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 60, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #5
  br label %365

365:                                              ; preds = %364, %48
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #5
  %366 = load i32, ptr %4, align 4
  switch i32 %366, label %368 [
    i32 0, label %367
    i32 1, label %367
  ]

367:                                              ; preds = %365, %365
  ret void

368:                                              ; preds = %365
  unreachable
}

declare i32 @Longtail_SplitStoreIndex(ptr noundef, i64 noundef, ptr noundef, ptr noundef) #2

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 32}
!10 = !{!"_ZTS15jc_test_fixture", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !11, i64 64, !12, i64 88, !12, i64 91, !12, i64 91, !12, i64 91, !12, i64 91, !12, i64 92, !12, i64 96, !12, i64 97, !12, i64 99, !12, i64 100}
!11 = !{!"_ZTS13jc_test_stats", !12, i64 0, !12, i64 4, !12, i64 6, !12, i64 8, !12, i64 12, !13, i64 16}
!12 = !{!"int", !7, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!12, !12, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = !{!13, !13, i64 0}
!18 = distinct !{!18, !16}
!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 = !{!23, !6, i64 0}
!23 = !{!"_ZTS19Longtail_BlockIndex", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!24 = !{!20, !6, i64 32}
!25 = distinct !{!25, !16}
!26 = !{!20, !6, i64 40}
!27 = distinct !{!27, !16}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}


; 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.65 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [16 x i8], align 1
@__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_indexes = external hidden unnamed_addr constant [15 x i32], align 16
@__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_hashes = external hidden unnamed_addr constant [15 x i64], align 16
@__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_sizes = external hidden unnamed_addr constant [15 x i32], align 16
@__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.block_chunk_counts = external hidden unnamed_addr constant [6 x i32], align 16
@.str.199 = external hidden unnamed_addr constant [147 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [37 x i8], align 1

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

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

declare void @_Z28jc_test_increment_assertionsv() local_unnamed_addr #2

declare void @_Z21jc_test_set_test_faili(i32 noundef) local_unnamed_addr #2

declare void @Longtail_Free(ptr noundef) local_unnamed_addr #2

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

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

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

declare ptr @Longtail_CreateBlake3HashAPI() local_unnamed_addr #2

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

; 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

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

; 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 @Longtail_CreateStoreIndexFromBlocks(i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 {
  %2 = alloca i32, align 4
  %3 = alloca [15 x i32], align 16
  %4 = alloca [15 x i64], align 16
  %5 = alloca [15 x i32], align 16
  %6 = alloca i32, align 4
  %7 = alloca [6 x ptr], align 16
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i64, align 8
  %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 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %25 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %26 = getelementptr inbounds i8, ptr %25, i64 96
  %27 = load i32, ptr %26, align 8
  %28 = and i32 %27, -16776961
  %29 = or disjoint i32 %28, 250624
  store i32 %29, ptr %26, align 8
  %30 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %31 = getelementptr inbounds i8, ptr %30, i64 32
  store ptr @.str.3, ptr %31, align 8, !tbaa !5
  tail call void @_Z28jc_test_increment_assertionsv()
  %32 = tail call noundef i32 @_Z14jc_test_cmp_NEIP16Longtail_HashAPIS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %24, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.66)
  %33 = icmp eq i32 %32, 0
  br i1 %33, label %34, label %35

34:                                               ; preds = %1
  tail call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %560

35:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #5
  store i32 15, ptr %2, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 60, ptr nonnull %3) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(60) %3, ptr noundef nonnull align 16 dereferenceable(60) @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_indexes, i64 60, i1 false)
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %4) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(120) %4, ptr noundef nonnull align 16 dereferenceable(120) @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_hashes, i64 120, i1 false)
  call void @llvm.lifetime.start.p0(i64 60, ptr nonnull %5) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(60) %5, ptr noundef nonnull align 16 dereferenceable(60) @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.chunk_sizes, i64 60, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #5
  store i32 6, ptr %6, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) #5
  %36 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %37 = getelementptr inbounds i8, ptr %36, i64 96
  %38 = load i32, ptr %37, align 8
  %39 = and i32 %38, -16776961
  %40 = or disjoint i32 %39, 255232
  store i32 %40, ptr %37, align 8
  %41 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %42 = getelementptr inbounds i8, ptr %41, i64 32
  store ptr @.str.3, ptr %42, align 8, !tbaa !5
  tail call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #5
  store i32 0, ptr %8, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  %43 = load i32, ptr @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.block_chunk_counts, align 16, !tbaa !13
  %44 = call i32 @Longtail_CreateBlockIndex(ptr noundef %24, i32 noundef 51542081, i32 noundef %43, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %7)
  store i32 %44, ptr %9, 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) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.199, ptr noundef null)
  %46 = icmp eq i32 %45, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #5
  br i1 %46, label %47, label %48

47:                                               ; preds = %111, %95, %79, %63, %48, %35
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %559

48:                                               ; preds = %35
  %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, 255232
  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 %8) #5
  store i32 0, ptr %8, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  %56 = load i32, ptr getelementptr inbounds (i8, ptr @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.block_chunk_counts, i64 4), align 4, !tbaa !13
  %57 = zext i32 %43 to i64
  %58 = getelementptr inbounds [15 x i32], ptr %3, i64 0, i64 %57
  %59 = getelementptr inbounds i8, ptr %7, i64 8
  %60 = call i32 @Longtail_CreateBlockIndex(ptr noundef %24, i32 noundef 51542081, i32 noundef %56, ptr noundef nonnull %58, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %59)
  store i32 %60, ptr %9, align 4, !tbaa !13
  %61 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.199, ptr noundef null)
  %62 = icmp eq i32 %61, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #5
  br i1 %62, label %47, label %63

63:                                               ; preds = %48
  %64 = add i32 %56, %43
  %65 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %66 = getelementptr inbounds i8, ptr %65, i64 96
  %67 = load i32, ptr %66, align 8
  %68 = and i32 %67, -16776961
  %69 = or disjoint i32 %68, 255232
  store i32 %69, ptr %66, align 8
  %70 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %71 = getelementptr inbounds i8, ptr %70, i64 32
  store ptr @.str.3, ptr %71, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #5
  store i32 0, ptr %8, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  %72 = load i32, ptr getelementptr inbounds (i8, ptr @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.block_chunk_counts, i64 8), align 8, !tbaa !13
  %73 = zext i32 %64 to i64
  %74 = getelementptr inbounds [15 x i32], ptr %3, i64 0, i64 %73
  %75 = getelementptr inbounds i8, ptr %7, i64 16
  %76 = call i32 @Longtail_CreateBlockIndex(ptr noundef %24, i32 noundef 51542081, i32 noundef %72, ptr noundef nonnull %74, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %75)
  store i32 %76, ptr %9, align 4, !tbaa !13
  %77 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.199, ptr noundef null)
  %78 = icmp eq i32 %77, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #5
  br i1 %78, label %47, label %79

79:                                               ; preds = %63
  %80 = add i32 %72, %64
  %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, 255232
  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 %8) #5
  store i32 0, ptr %8, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  %88 = load i32, ptr getelementptr inbounds (i8, ptr @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.block_chunk_counts, i64 12), align 4, !tbaa !13
  %89 = zext i32 %80 to i64
  %90 = getelementptr inbounds [15 x i32], ptr %3, i64 0, i64 %89
  %91 = getelementptr inbounds i8, ptr %7, i64 24
  %92 = call i32 @Longtail_CreateBlockIndex(ptr noundef %24, i32 noundef 51542081, i32 noundef %88, ptr noundef nonnull %90, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %91)
  store i32 %92, ptr %9, align 4, !tbaa !13
  %93 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.199, ptr noundef null)
  %94 = icmp eq i32 %93, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #5
  br i1 %94, label %47, label %95

95:                                               ; preds = %79
  %96 = add i32 %88, %80
  %97 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %98 = getelementptr inbounds i8, ptr %97, i64 96
  %99 = load i32, ptr %98, align 8
  %100 = and i32 %99, -16776961
  %101 = or disjoint i32 %100, 255232
  store i32 %101, ptr %98, align 8
  %102 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %103 = getelementptr inbounds i8, ptr %102, i64 32
  store ptr @.str.3, ptr %103, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #5
  store i32 0, ptr %8, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  %104 = load i32, ptr getelementptr inbounds (i8, ptr @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.block_chunk_counts, i64 16), align 16, !tbaa !13
  %105 = zext i32 %96 to i64
  %106 = getelementptr inbounds [15 x i32], ptr %3, i64 0, i64 %105
  %107 = getelementptr inbounds i8, ptr %7, i64 32
  %108 = call i32 @Longtail_CreateBlockIndex(ptr noundef %24, i32 noundef 51542081, i32 noundef %104, ptr noundef nonnull %106, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %107)
  store i32 %108, ptr %9, align 4, !tbaa !13
  %109 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.199, ptr noundef null)
  %110 = icmp eq i32 %109, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #5
  br i1 %110, label %47, label %111

111:                                              ; preds = %95
  %112 = add i32 %104, %96
  %113 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %114 = getelementptr inbounds i8, ptr %113, i64 96
  %115 = load i32, ptr %114, align 8
  %116 = and i32 %115, -16776961
  %117 = or disjoint i32 %116, 255232
  store i32 %117, ptr %114, align 8
  %118 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %119 = getelementptr inbounds i8, ptr %118, i64 32
  store ptr @.str.3, ptr %119, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #5
  store i32 0, ptr %8, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  %120 = load i32, ptr getelementptr inbounds (i8, ptr @__const._ZN43Longtail_Longtail_SplitStoreIndex__TestCase8TestBodyEv.block_chunk_counts, i64 20), align 4, !tbaa !13
  %121 = zext i32 %112 to i64
  %122 = getelementptr inbounds [15 x i32], ptr %3, i64 0, i64 %121
  %123 = getelementptr inbounds i8, ptr %7, i64 40
  %124 = call i32 @Longtail_CreateBlockIndex(ptr noundef %24, i32 noundef 51542081, i32 noundef %120, ptr noundef nonnull %122, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef nonnull %123)
  store i32 %124, ptr %9, align 4, !tbaa !13
  %125 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.199, ptr noundef null)
  %126 = icmp eq i32 %125, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #5
  br i1 %126, label %47, label %.critedge

.critedge:                                        ; preds = %111
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #5
  %127 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %128 = getelementptr inbounds i8, ptr %127, i64 96
  %129 = load i32, ptr %128, align 8
  %130 = and i32 %129, -16776961
  %131 = or disjoint i32 %130, 257280
  store i32 %131, ptr %128, align 8
  %132 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %133 = getelementptr inbounds i8, ptr %132, i64 32
  store ptr @.str.3, ptr %133, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #5
  store i32 0, ptr %11, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #5
  %134 = call i32 @Longtail_CreateStoreIndexFromBlocks(i32 noundef 6, ptr noundef nonnull %7, ptr noundef nonnull %10)
  store i32 %134, ptr %12, align 4, !tbaa !13
  %135 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.200, ptr noundef null)
  %136 = icmp eq i32 %135, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5
  br i1 %136, label %137, label %138

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

138:                                              ; preds = %.critedge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  %139 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %140 = getelementptr inbounds i8, ptr %139, i64 96
  %141 = load i32, ptr %140, align 8
  %142 = and i32 %141, -16776961
  %143 = or disjoint i32 %142, 258304
  store i32 %143, ptr %140, align 8
  %144 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %145 = getelementptr inbounds i8, ptr %144, i64 32
  store ptr @.str.3, ptr %145, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #5
  store i32 0, ptr %15, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #5
  %146 = load ptr, ptr %10, align 8, !tbaa !14
  %147 = call i32 @Longtail_SplitStoreIndex(ptr noundef %146, i64 noundef 200, ptr noundef nonnull %13, ptr noundef nonnull %14)
  store i32 %147, ptr %16, align 4, !tbaa !13
  %148 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.201, ptr noundef null)
  %149 = icmp eq i32 %148, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #5
  br i1 %149, label %150, label %151

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

151:                                              ; preds = %138
  %152 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %153 = getelementptr inbounds i8, ptr %152, i64 96
  %154 = load i32, ptr %153, align 8
  %155 = and i32 %154, -16776961
  %156 = or disjoint i32 %155, 258560
  store i32 %156, ptr %153, align 8
  %157 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %158 = getelementptr inbounds i8, ptr %157, i64 32
  store ptr @.str.3, ptr %158, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  store i32 4, ptr %17, align 4, !tbaa !13
  %159 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull @.str.202, ptr noundef nonnull @.str.203)
  %160 = icmp eq i32 %159, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  br i1 %160, label %161, label %162

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

162:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  store ptr null, ptr %18, align 8, !tbaa !14
  %163 = load i64, ptr %14, align 8, !tbaa !15
  %.not5263.not = icmp eq i64 %163, 0
  br i1 %.not5263.not, label %.critedge55, label %.lr.ph

.lr.phthread-pre-split:                           ; preds = %.backedge
  %.pr = load ptr, ptr %18, align 8, !tbaa !14
  br label %.lr.ph

.lr.ph:                                           ; preds = %162, %.lr.phthread-pre-split
  %164 = phi ptr [ %.pr, %.lr.phthread-pre-split ], [ null, %162 ]
  %165 = phi i64 [ %188, %.lr.phthread-pre-split ], [ 0, %162 ]
  %.04364 = phi i32 [ %.043.be, %.lr.phthread-pre-split ], [ 0, %162 ]
  %166 = icmp eq ptr %164, null
  br i1 %166, label %167, label %190

167:                                              ; preds = %.lr.ph
  %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, 260352
  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()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  store i32 0, ptr %19, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  %175 = load ptr, ptr %13, align 8, !tbaa !14
  %176 = getelementptr inbounds ptr, ptr %175, i64 %165
  %177 = load ptr, ptr %176, align 8, !tbaa !14
  %178 = add i32 %.04364, 1
  %179 = zext i32 %178 to i64
  %180 = getelementptr inbounds ptr, ptr %175, i64 %179
  %181 = load ptr, ptr %180, align 8, !tbaa !14
  %182 = call i32 @Longtail_MergeStoreIndex(ptr noundef %177, ptr noundef %181, ptr noundef nonnull %18)
  store i32 %182, ptr %20, align 4, !tbaa !13
  %183 = 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.204, ptr noundef null)
  %184 = icmp eq i32 %183, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  br i1 %184, label %185, label %186

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

186:                                              ; preds = %167
  %187 = add i32 %.04364, 2
  br label %.backedge

.backedge:                                        ; preds = %186, %204
  %.043.be = phi i32 [ %187, %186 ], [ %207, %204 ]
  %188 = zext i32 %.043.be to i64
  %189 = load i64, ptr %14, align 8, !tbaa !15
  %.not52 = icmp ugt i64 %189, %188
  br i1 %.not52, label %.lr.phthread-pre-split, label %.critedge55, !llvm.loop !16

190:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  %191 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %192 = getelementptr inbounds i8, ptr %191, i64 96
  %193 = load i32, ptr %192, align 8
  %194 = and i32 %193, -16776961
  %195 = or disjoint i32 %194, 261632
  store i32 %195, ptr %192, align 8
  %196 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %197 = getelementptr inbounds i8, ptr %196, i64 32
  store ptr @.str.3, ptr %197, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  store i32 0, ptr %22, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  %198 = load ptr, ptr %18, align 8, !tbaa !14
  %199 = load ptr, ptr %13, align 8, !tbaa !14
  %200 = getelementptr inbounds ptr, ptr %199, i64 %165
  %201 = load ptr, ptr %200, align 8, !tbaa !14
  %202 = call i32 @Longtail_MergeStoreIndex(ptr noundef %198, ptr noundef %201, ptr noundef nonnull %21)
  store i32 %202, ptr %23, align 4, !tbaa !13
  %203 = 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.205, ptr noundef null)
  %.not = icmp eq i32 %203, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  br i1 %.not, label %.thread, label %204

.thread:                                          ; preds = %190
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  br label %556

204:                                              ; preds = %190
  %205 = load ptr, ptr %18, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %205)
  %206 = load ptr, ptr %21, align 8, !tbaa !14
  store ptr %206, ptr %18, align 8, !tbaa !14
  %207 = add i32 %.04364, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  br label %.backedge

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

220:                                              ; preds = %.critedge55
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %556

221:                                              ; preds = %.critedge55
  %222 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %223 = getelementptr inbounds i8, ptr %222, i64 96
  %224 = load i32, ptr %223, align 8
  %225 = and i32 %224, -16776961
  %226 = or disjoint i32 %225, 263424
  store i32 %226, ptr %223, align 8
  %227 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %228 = getelementptr inbounds i8, ptr %227, i64 32
  store ptr @.str.3, ptr %228, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %229 = load ptr, ptr %18, align 8, !tbaa !14
  %230 = getelementptr inbounds i8, ptr %229, i64 24
  %231 = load ptr, ptr %230, align 8, !tbaa !20
  %232 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %2, ptr noundef nonnull align 4 dereferenceable(4) %231, ptr noundef nonnull @.str.208, ptr noundef nonnull @.str.209)
  %233 = icmp eq i32 %232, 0
  br i1 %233, label %248, label %.preheader.preheader

.preheader.preheader:                             ; preds = %221
  %234 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %235 = getelementptr inbounds i8, ptr %234, i64 96
  %236 = load i32, ptr %235, align 8
  %237 = and i32 %236, -16776961
  %238 = or disjoint i32 %237, 264192
  store i32 %238, ptr %235, align 8
  %239 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %240 = getelementptr inbounds i8, ptr %239, i64 32
  store ptr @.str.3, ptr %240, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %241 = load ptr, ptr %7, align 16, !tbaa !14
  %242 = load ptr, ptr %241, align 8, !tbaa !21
  %243 = load ptr, ptr %18, align 8, !tbaa !14
  %244 = getelementptr inbounds i8, ptr %243, i64 32
  %245 = load ptr, ptr %244, align 8, !tbaa !23
  %246 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %242, ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef nonnull @.str.210, ptr noundef nonnull @.str.211)
  %247 = icmp eq i32 %246, 0
  br i1 %247, label %336, label %.preheader.1

248:                                              ; preds = %221
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %556

.preheader.1:                                     ; preds = %.preheader.preheader
  %249 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %250 = getelementptr inbounds i8, ptr %249, i64 96
  %251 = load i32, ptr %250, align 8
  %252 = and i32 %251, -16776961
  %253 = or disjoint i32 %252, 264192
  store i32 %253, ptr %250, align 8
  %254 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %255 = getelementptr inbounds i8, ptr %254, i64 32
  store ptr @.str.3, ptr %255, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %256 = load ptr, ptr %59, align 8, !tbaa !14
  %257 = load ptr, ptr %256, align 8, !tbaa !21
  %258 = load ptr, ptr %18, align 8, !tbaa !14
  %259 = getelementptr inbounds i8, ptr %258, i64 32
  %260 = load ptr, ptr %259, align 8, !tbaa !23
  %261 = getelementptr inbounds i8, ptr %260, i64 8
  %262 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %257, ptr noundef nonnull align 8 dereferenceable(8) %261, ptr noundef nonnull @.str.210, ptr noundef nonnull @.str.211)
  %263 = icmp eq i32 %262, 0
  br i1 %263, label %336, label %.preheader.2

.preheader.2:                                     ; preds = %.preheader.1
  %264 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %265 = getelementptr inbounds i8, ptr %264, i64 96
  %266 = load i32, ptr %265, align 8
  %267 = and i32 %266, -16776961
  %268 = or disjoint i32 %267, 264192
  store i32 %268, ptr %265, align 8
  %269 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %270 = getelementptr inbounds i8, ptr %269, i64 32
  store ptr @.str.3, ptr %270, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %271 = load ptr, ptr %75, align 16, !tbaa !14
  %272 = load ptr, ptr %271, align 8, !tbaa !21
  %273 = load ptr, ptr %18, align 8, !tbaa !14
  %274 = getelementptr inbounds i8, ptr %273, i64 32
  %275 = load ptr, ptr %274, align 8, !tbaa !23
  %276 = getelementptr inbounds i8, ptr %275, i64 16
  %277 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %272, ptr noundef nonnull align 8 dereferenceable(8) %276, ptr noundef nonnull @.str.210, ptr noundef nonnull @.str.211)
  %278 = icmp eq i32 %277, 0
  br i1 %278, label %336, label %.preheader.3

.preheader.3:                                     ; preds = %.preheader.2
  %279 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %280 = getelementptr inbounds i8, ptr %279, i64 96
  %281 = load i32, ptr %280, align 8
  %282 = and i32 %281, -16776961
  %283 = or disjoint i32 %282, 264192
  store i32 %283, ptr %280, align 8
  %284 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %285 = getelementptr inbounds i8, ptr %284, i64 32
  store ptr @.str.3, ptr %285, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %286 = load ptr, ptr %91, align 8, !tbaa !14
  %287 = load ptr, ptr %286, align 8, !tbaa !21
  %288 = load ptr, ptr %18, align 8, !tbaa !14
  %289 = getelementptr inbounds i8, ptr %288, i64 32
  %290 = load ptr, ptr %289, align 8, !tbaa !23
  %291 = getelementptr inbounds i8, ptr %290, i64 24
  %292 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %287, ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull @.str.210, ptr noundef nonnull @.str.211)
  %293 = icmp eq i32 %292, 0
  br i1 %293, label %336, label %.preheader.4

.preheader.4:                                     ; preds = %.preheader.3
  %294 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %295 = getelementptr inbounds i8, ptr %294, i64 96
  %296 = load i32, ptr %295, align 8
  %297 = and i32 %296, -16776961
  %298 = or disjoint i32 %297, 264192
  store i32 %298, ptr %295, align 8
  %299 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %300 = getelementptr inbounds i8, ptr %299, i64 32
  store ptr @.str.3, ptr %300, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %301 = load ptr, ptr %107, align 16, !tbaa !14
  %302 = load ptr, ptr %301, align 8, !tbaa !21
  %303 = load ptr, ptr %18, align 8, !tbaa !14
  %304 = getelementptr inbounds i8, ptr %303, i64 32
  %305 = load ptr, ptr %304, align 8, !tbaa !23
  %306 = getelementptr inbounds i8, ptr %305, i64 32
  %307 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %302, ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull @.str.210, ptr noundef nonnull @.str.211)
  %308 = icmp eq i32 %307, 0
  br i1 %308, label %336, label %.preheader.5

.preheader.5:                                     ; preds = %.preheader.4
  %309 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %310 = getelementptr inbounds i8, ptr %309, i64 96
  %311 = load i32, ptr %310, align 8
  %312 = and i32 %311, -16776961
  %313 = or disjoint i32 %312, 264192
  store i32 %313, ptr %310, align 8
  %314 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %315 = getelementptr inbounds i8, ptr %314, i64 32
  store ptr @.str.3, ptr %315, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %316 = load ptr, ptr %123, align 8, !tbaa !14
  %317 = load ptr, ptr %316, align 8, !tbaa !21
  %318 = load ptr, ptr %18, align 8, !tbaa !14
  %319 = getelementptr inbounds i8, ptr %318, i64 32
  %320 = load ptr, ptr %319, align 8, !tbaa !23
  %321 = getelementptr inbounds i8, ptr %320, i64 40
  %322 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %317, ptr noundef nonnull align 8 dereferenceable(8) %321, ptr noundef nonnull @.str.210, ptr noundef nonnull @.str.211)
  %323 = icmp eq i32 %322, 0
  br i1 %323, label %336, label %.critedge57.preheader.preheader

.critedge57.preheader.preheader:                  ; preds = %.preheader.5
  %324 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %325 = getelementptr inbounds i8, ptr %324, i64 96
  %326 = load i32, ptr %325, align 8
  %327 = and i32 %326, -16776961
  %328 = or disjoint i32 %327, 265216
  store i32 %328, ptr %325, align 8
  %329 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %330 = getelementptr inbounds i8, ptr %329, i64 32
  store ptr @.str.3, ptr %330, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %331 = load ptr, ptr %18, align 8, !tbaa !14
  %332 = getelementptr inbounds i8, ptr %331, i64 40
  %333 = load ptr, ptr %332, align 8, !tbaa !24
  %334 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %333, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %335 = icmp eq i32 %334, 0
  br i1 %335, label %535, label %.critedge57

336:                                              ; preds = %.preheader.5, %.preheader.4, %.preheader.3, %.preheader.2, %.preheader.1, %.preheader.preheader
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %556

.critedge57:                                      ; preds = %.critedge57.preheader.preheader
  %337 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %338 = getelementptr inbounds i8, ptr %337, i64 96
  %339 = load i32, ptr %338, align 8
  %340 = and i32 %339, -16776961
  %341 = or disjoint i32 %340, 265216
  store i32 %341, ptr %338, align 8
  %342 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %343 = getelementptr inbounds i8, ptr %342, i64 32
  store ptr @.str.3, ptr %343, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %344 = getelementptr inbounds i8, ptr %4, i64 8
  %345 = load ptr, ptr %18, align 8, !tbaa !14
  %346 = getelementptr inbounds i8, ptr %345, i64 40
  %347 = load ptr, ptr %346, align 8, !tbaa !24
  %348 = getelementptr inbounds i8, ptr %347, i64 8
  %349 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %344, ptr noundef nonnull align 8 dereferenceable(8) %348, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %350 = icmp eq i32 %349, 0
  br i1 %350, label %535, label %.critedge57.1

.critedge57.1:                                    ; preds = %.critedge57
  %351 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %352 = getelementptr inbounds i8, ptr %351, i64 96
  %353 = load i32, ptr %352, align 8
  %354 = and i32 %353, -16776961
  %355 = or disjoint i32 %354, 265216
  store i32 %355, ptr %352, align 8
  %356 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %357 = getelementptr inbounds i8, ptr %356, i64 32
  store ptr @.str.3, ptr %357, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %358 = getelementptr inbounds i8, ptr %4, i64 16
  %359 = load ptr, ptr %18, align 8, !tbaa !14
  %360 = getelementptr inbounds i8, ptr %359, i64 40
  %361 = load ptr, ptr %360, align 8, !tbaa !24
  %362 = getelementptr inbounds i8, ptr %361, i64 16
  %363 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull align 8 dereferenceable(8) %362, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %364 = icmp eq i32 %363, 0
  br i1 %364, label %535, label %.critedge57.2

.critedge57.2:                                    ; preds = %.critedge57.1
  %365 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %366 = getelementptr inbounds i8, ptr %365, i64 96
  %367 = load i32, ptr %366, align 8
  %368 = and i32 %367, -16776961
  %369 = or disjoint i32 %368, 265216
  store i32 %369, ptr %366, align 8
  %370 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %371 = getelementptr inbounds i8, ptr %370, i64 32
  store ptr @.str.3, ptr %371, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %372 = getelementptr inbounds i8, ptr %4, i64 24
  %373 = load ptr, ptr %18, align 8, !tbaa !14
  %374 = getelementptr inbounds i8, ptr %373, i64 40
  %375 = load ptr, ptr %374, align 8, !tbaa !24
  %376 = getelementptr inbounds i8, ptr %375, i64 24
  %377 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull align 8 dereferenceable(8) %376, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %378 = icmp eq i32 %377, 0
  br i1 %378, label %535, label %.critedge57.3

.critedge57.3:                                    ; preds = %.critedge57.2
  %379 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %380 = getelementptr inbounds i8, ptr %379, i64 96
  %381 = load i32, ptr %380, align 8
  %382 = and i32 %381, -16776961
  %383 = or disjoint i32 %382, 265216
  store i32 %383, ptr %380, align 8
  %384 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %385 = getelementptr inbounds i8, ptr %384, i64 32
  store ptr @.str.3, ptr %385, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %386 = getelementptr inbounds i8, ptr %4, i64 32
  %387 = load ptr, ptr %18, align 8, !tbaa !14
  %388 = getelementptr inbounds i8, ptr %387, i64 40
  %389 = load ptr, ptr %388, align 8, !tbaa !24
  %390 = getelementptr inbounds i8, ptr %389, i64 32
  %391 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %386, ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %392 = icmp eq i32 %391, 0
  br i1 %392, label %535, label %.critedge57.4

.critedge57.4:                                    ; preds = %.critedge57.3
  %393 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %394 = getelementptr inbounds i8, ptr %393, i64 96
  %395 = load i32, ptr %394, align 8
  %396 = and i32 %395, -16776961
  %397 = or disjoint i32 %396, 265216
  store i32 %397, ptr %394, align 8
  %398 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %399 = getelementptr inbounds i8, ptr %398, i64 32
  store ptr @.str.3, ptr %399, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %400 = getelementptr inbounds i8, ptr %4, i64 40
  %401 = load ptr, ptr %18, align 8, !tbaa !14
  %402 = getelementptr inbounds i8, ptr %401, i64 40
  %403 = load ptr, ptr %402, align 8, !tbaa !24
  %404 = getelementptr inbounds i8, ptr %403, i64 40
  %405 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %400, ptr noundef nonnull align 8 dereferenceable(8) %404, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %406 = icmp eq i32 %405, 0
  br i1 %406, label %535, label %.critedge57.5

.critedge57.5:                                    ; preds = %.critedge57.4
  %407 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %408 = getelementptr inbounds i8, ptr %407, i64 96
  %409 = load i32, ptr %408, align 8
  %410 = and i32 %409, -16776961
  %411 = or disjoint i32 %410, 265216
  store i32 %411, ptr %408, align 8
  %412 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %413 = getelementptr inbounds i8, ptr %412, i64 32
  store ptr @.str.3, ptr %413, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %414 = getelementptr inbounds i8, ptr %4, i64 48
  %415 = load ptr, ptr %18, align 8, !tbaa !14
  %416 = getelementptr inbounds i8, ptr %415, i64 40
  %417 = load ptr, ptr %416, align 8, !tbaa !24
  %418 = getelementptr inbounds i8, ptr %417, i64 48
  %419 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %414, ptr noundef nonnull align 8 dereferenceable(8) %418, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %420 = icmp eq i32 %419, 0
  br i1 %420, label %535, label %.critedge57.6

.critedge57.6:                                    ; preds = %.critedge57.5
  %421 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %422 = getelementptr inbounds i8, ptr %421, i64 96
  %423 = load i32, ptr %422, align 8
  %424 = and i32 %423, -16776961
  %425 = or disjoint i32 %424, 265216
  store i32 %425, ptr %422, align 8
  %426 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %427 = getelementptr inbounds i8, ptr %426, i64 32
  store ptr @.str.3, ptr %427, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %428 = getelementptr inbounds i8, ptr %4, i64 56
  %429 = load ptr, ptr %18, align 8, !tbaa !14
  %430 = getelementptr inbounds i8, ptr %429, i64 40
  %431 = load ptr, ptr %430, align 8, !tbaa !24
  %432 = getelementptr inbounds i8, ptr %431, i64 56
  %433 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %428, ptr noundef nonnull align 8 dereferenceable(8) %432, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %434 = icmp eq i32 %433, 0
  br i1 %434, label %535, label %.critedge57.7

.critedge57.7:                                    ; preds = %.critedge57.6
  %435 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %436 = getelementptr inbounds i8, ptr %435, i64 96
  %437 = load i32, ptr %436, align 8
  %438 = and i32 %437, -16776961
  %439 = or disjoint i32 %438, 265216
  store i32 %439, ptr %436, align 8
  %440 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %441 = getelementptr inbounds i8, ptr %440, i64 32
  store ptr @.str.3, ptr %441, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %442 = getelementptr inbounds i8, ptr %4, i64 64
  %443 = load ptr, ptr %18, align 8, !tbaa !14
  %444 = getelementptr inbounds i8, ptr %443, i64 40
  %445 = load ptr, ptr %444, align 8, !tbaa !24
  %446 = getelementptr inbounds i8, ptr %445, i64 64
  %447 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef nonnull align 8 dereferenceable(8) %446, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %448 = icmp eq i32 %447, 0
  br i1 %448, label %535, label %.critedge57.8

.critedge57.8:                                    ; preds = %.critedge57.7
  %449 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %450 = getelementptr inbounds i8, ptr %449, i64 96
  %451 = load i32, ptr %450, align 8
  %452 = and i32 %451, -16776961
  %453 = or disjoint i32 %452, 265216
  store i32 %453, ptr %450, align 8
  %454 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %455 = getelementptr inbounds i8, ptr %454, i64 32
  store ptr @.str.3, ptr %455, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %456 = getelementptr inbounds i8, ptr %4, i64 72
  %457 = load ptr, ptr %18, align 8, !tbaa !14
  %458 = getelementptr inbounds i8, ptr %457, i64 40
  %459 = load ptr, ptr %458, align 8, !tbaa !24
  %460 = getelementptr inbounds i8, ptr %459, i64 72
  %461 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %456, ptr noundef nonnull align 8 dereferenceable(8) %460, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %462 = icmp eq i32 %461, 0
  br i1 %462, label %535, label %.critedge57.9

.critedge57.9:                                    ; preds = %.critedge57.8
  %463 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %464 = getelementptr inbounds i8, ptr %463, i64 96
  %465 = load i32, ptr %464, align 8
  %466 = and i32 %465, -16776961
  %467 = or disjoint i32 %466, 265216
  store i32 %467, ptr %464, align 8
  %468 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %469 = getelementptr inbounds i8, ptr %468, i64 32
  store ptr @.str.3, ptr %469, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %470 = getelementptr inbounds i8, ptr %4, i64 80
  %471 = load ptr, ptr %18, align 8, !tbaa !14
  %472 = getelementptr inbounds i8, ptr %471, i64 40
  %473 = load ptr, ptr %472, align 8, !tbaa !24
  %474 = getelementptr inbounds i8, ptr %473, i64 80
  %475 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %470, ptr noundef nonnull align 8 dereferenceable(8) %474, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %476 = icmp eq i32 %475, 0
  br i1 %476, label %535, label %.critedge57.10

.critedge57.10:                                   ; preds = %.critedge57.9
  %477 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %478 = getelementptr inbounds i8, ptr %477, i64 96
  %479 = load i32, ptr %478, align 8
  %480 = and i32 %479, -16776961
  %481 = or disjoint i32 %480, 265216
  store i32 %481, ptr %478, align 8
  %482 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %483 = getelementptr inbounds i8, ptr %482, i64 32
  store ptr @.str.3, ptr %483, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %484 = getelementptr inbounds i8, ptr %4, i64 88
  %485 = load ptr, ptr %18, align 8, !tbaa !14
  %486 = getelementptr inbounds i8, ptr %485, i64 40
  %487 = load ptr, ptr %486, align 8, !tbaa !24
  %488 = getelementptr inbounds i8, ptr %487, i64 88
  %489 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %484, ptr noundef nonnull align 8 dereferenceable(8) %488, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %490 = icmp eq i32 %489, 0
  br i1 %490, label %535, label %.critedge57.11

.critedge57.11:                                   ; preds = %.critedge57.10
  %491 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %492 = getelementptr inbounds i8, ptr %491, i64 96
  %493 = load i32, ptr %492, align 8
  %494 = and i32 %493, -16776961
  %495 = or disjoint i32 %494, 265216
  store i32 %495, ptr %492, align 8
  %496 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %497 = getelementptr inbounds i8, ptr %496, i64 32
  store ptr @.str.3, ptr %497, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %498 = getelementptr inbounds i8, ptr %4, i64 96
  %499 = load ptr, ptr %18, align 8, !tbaa !14
  %500 = getelementptr inbounds i8, ptr %499, i64 40
  %501 = load ptr, ptr %500, align 8, !tbaa !24
  %502 = getelementptr inbounds i8, ptr %501, i64 96
  %503 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %498, ptr noundef nonnull align 8 dereferenceable(8) %502, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %504 = icmp eq i32 %503, 0
  br i1 %504, label %535, label %.critedge57.12

.critedge57.12:                                   ; preds = %.critedge57.11
  %505 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %506 = getelementptr inbounds i8, ptr %505, i64 96
  %507 = load i32, ptr %506, align 8
  %508 = and i32 %507, -16776961
  %509 = or disjoint i32 %508, 265216
  store i32 %509, ptr %506, align 8
  %510 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %511 = getelementptr inbounds i8, ptr %510, i64 32
  store ptr @.str.3, ptr %511, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %512 = getelementptr inbounds i8, ptr %4, i64 104
  %513 = load ptr, ptr %18, align 8, !tbaa !14
  %514 = getelementptr inbounds i8, ptr %513, i64 40
  %515 = load ptr, ptr %514, align 8, !tbaa !24
  %516 = getelementptr inbounds i8, ptr %515, i64 104
  %517 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %512, ptr noundef nonnull align 8 dereferenceable(8) %516, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %518 = icmp eq i32 %517, 0
  br i1 %518, label %535, label %.critedge57.13

.critedge57.13:                                   ; preds = %.critedge57.12
  %519 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %520 = getelementptr inbounds i8, ptr %519, i64 96
  %521 = load i32, ptr %520, align 8
  %522 = and i32 %521, -16776961
  %523 = or disjoint i32 %522, 265216
  store i32 %523, ptr %520, align 8
  %524 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %525 = getelementptr inbounds i8, ptr %524, i64 32
  store ptr @.str.3, ptr %525, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %526 = getelementptr inbounds i8, ptr %4, i64 112
  %527 = load ptr, ptr %18, align 8, !tbaa !14
  %528 = getelementptr inbounds i8, ptr %527, i64 40
  %529 = load ptr, ptr %528, align 8, !tbaa !24
  %530 = getelementptr inbounds i8, ptr %529, i64 112
  %531 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %526, ptr noundef nonnull align 8 dereferenceable(8) %530, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.212)
  %532 = icmp eq i32 %531, 0
  br i1 %532, label %535, label %.critedge57.14

.critedge57.14:                                   ; preds = %.critedge57.13
  %533 = load ptr, ptr %18, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %533)
  %534 = load i64, ptr %14, align 8, !tbaa !15
  %.not70 = icmp eq i64 %534, 0
  br i1 %.not70, label %._crit_edge, label %.lr.ph68

535:                                              ; preds = %.critedge57.13, %.critedge57.12, %.critedge57.11, %.critedge57.10, %.critedge57.9, %.critedge57.8, %.critedge57.7, %.critedge57.6, %.critedge57.5, %.critedge57.4, %.critedge57.3, %.critedge57.2, %.critedge57.1, %.critedge57, %.critedge57.preheader.preheader
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %556

._crit_edge:                                      ; preds = %.lr.ph68, %.critedge57.14
  %536 = load ptr, ptr %13, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %536)
  %537 = load ptr, ptr %10, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %537)
  %538 = load ptr, ptr %123, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %538)
  %539 = load ptr, ptr %107, align 16, !tbaa !14
  call void @Longtail_Free(ptr noundef %539)
  %540 = load ptr, ptr %91, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %540)
  %541 = load ptr, ptr %75, align 16, !tbaa !14
  call void @Longtail_Free(ptr noundef %541)
  %542 = load ptr, ptr %59, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %542)
  %543 = load ptr, ptr %7, align 16, !tbaa !14
  call void @Longtail_Free(ptr noundef %543)
  %.not53 = icmp eq ptr %24, null
  br i1 %.not53, label %556, label %555

.lr.ph68:                                         ; preds = %.critedge57.14, %.lr.ph68
  %544 = phi i64 [ %553, %.lr.ph68 ], [ %534, %.critedge57.14 ]
  %545 = phi i64 [ %552, %.lr.ph68 ], [ 0, %.critedge57.14 ]
  %.04067 = phi i32 [ %551, %.lr.ph68 ], [ 0, %.critedge57.14 ]
  %546 = load ptr, ptr %13, align 8, !tbaa !14
  %547 = xor i64 %545, -1
  %548 = getelementptr ptr, ptr %546, i64 %544
  %549 = getelementptr ptr, ptr %548, i64 %547
  %550 = load ptr, ptr %549, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %550)
  %551 = add i32 %.04067, 1
  %552 = zext i32 %551 to i64
  %553 = load i64, ptr %14, align 8, !tbaa !15
  %554 = icmp ugt i64 %553, %552
  br i1 %554, label %.lr.ph68, label %._crit_edge, !llvm.loop !25

555:                                              ; preds = %._crit_edge
  call void @Longtail_DisposeAPI(ptr noundef nonnull %24)
  br label %556

556:                                              ; preds = %535, %336, %185, %.thread, %._crit_edge, %555, %248, %220
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  br label %557

557:                                              ; preds = %556, %161, %150
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  br label %558

558:                                              ; preds = %557, %137
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #5
  br label %559

559:                                              ; preds = %47, %558
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 60, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 60, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #5
  br label %560

560:                                              ; preds = %559, %34
  ret void
}

declare i32 @Longtail_SplitStoreIndex(ptr noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = !{!12, !12, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!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 = !{!22, !7, i64 0}
!22 = !{!"_ZTS19Longtail_BlockIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!23 = !{!19, !7, i64 32}
!24 = !{!19, !7, i64 40}
!25 = distinct !{!25, !17}


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