; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN52Longtail_Longtail_MergeStoreIndexWithEmpty (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.134 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [27 x i8], align 1
@__const._ZN52Longtail_Longtail_MergeStoreIndexWithEmpty__TestCase8TestBodyEv.chunk_indexes = external hidden unnamed_addr constant [5 x i32], align 16
@__const._ZN52Longtail_Longtail_MergeStoreIndexWithEmpty__TestCase8TestBodyEv.chunk_sizes = external hidden unnamed_addr constant [5 x i32], align 16
@.str.178 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [72 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: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5

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

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

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

30:                                               ; preds = %1
  %31 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %32 = getelementptr inbounds %struct.jc_test_fixture, ptr %31, i32 0, i32 11
  %33 = load i32, ptr %32, align 8
  %34 = and i32 %33, -16776961
  %35 = or i32 %34, 197632
  store i32 %35, ptr %32, align 8
  %36 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %37 = getelementptr inbounds %struct.jc_test_fixture, ptr %36, i32 0, i32 4
  store ptr @.str.3, ptr %37, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %38 = load ptr, ptr %3, align 8, !tbaa !5
  %39 = call noundef i32 @_Z14jc_test_cmp_NEIP16Longtail_HashAPIS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %38, ptr noundef @.str.65, ptr noundef @.str.66)
  %40 = icmp eq i32 %39, 0
  br i1 %40, label %41, label %42

41:                                               ; preds = %30
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %291

42:                                               ; preds = %30
  br label %43

43:                                               ; preds = %42
  br label %44

44:                                               ; preds = %43
  call void @llvm.lifetime.start.p0(i64 20, ptr %5) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %5, ptr align 16 @__const._ZN52Longtail_Longtail_MergeStoreIndexWithEmpty__TestCase8TestBodyEv.chunk_indexes, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %6) #6
  call void @llvm.memset.p0.i64(ptr align 16 %6, i8 0, i64 40, i1 false)
  %45 = getelementptr inbounds [5 x i64], ptr %6, i32 0, i32 0
  store i64 -2401053088335177193, ptr %45, align 16
  %46 = getelementptr inbounds [5 x i64], ptr %6, i32 0, i32 1
  store i64 -77306560028754193, ptr %46, align 8
  %47 = getelementptr inbounds [5 x i64], ptr %6, i32 0, i32 2
  store i64 -5841914083062989078, ptr %47, align 16
  %48 = getelementptr inbounds [5 x i64], ptr %6, i32 0, i32 3
  store i64 -2671269065977406889, ptr %48, align 8
  %49 = getelementptr inbounds [5 x i64], ptr %6, i32 0, i32 4
  store i64 -77306560028754193, ptr %49, align 16
  call void @llvm.lifetime.start.p0(i64 20, ptr %7) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const._ZN52Longtail_Longtail_MergeStoreIndexWithEmpty__TestCase8TestBodyEv.chunk_sizes, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  br label %50

50:                                               ; preds = %44
  %51 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %52 = getelementptr inbounds %struct.jc_test_fixture, ptr %51, i32 0, i32 11
  %53 = load i32, ptr %52, align 8
  %54 = and i32 %53, -16776961
  %55 = or i32 %54, 200704
  store i32 %55, ptr %52, align 8
  %56 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %57 = getelementptr inbounds %struct.jc_test_fixture, ptr %56, i32 0, i32 4
  store ptr @.str.3, ptr %57, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #6
  store i32 0, ptr %9, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  %58 = load ptr, ptr %3, align 8, !tbaa !5
  %59 = getelementptr inbounds [5 x i32], ptr %5, i64 0, i64 0
  %60 = getelementptr inbounds [5 x i64], ptr %6, i64 0, i64 0
  %61 = getelementptr inbounds [5 x i32], ptr %7, i64 0, i64 0
  %62 = call i32 @Longtail_CreateBlockIndex(ptr noundef %58, i32 noundef 51542081, i32 noundef 2, ptr noundef %59, ptr noundef %60, ptr noundef %61, ptr noundef %8)
  store i32 %62, ptr %10, align 4, !tbaa !14
  %63 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef @.str.46, ptr noundef @.str.134, ptr noundef null)
  %64 = icmp eq i32 %63, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  br i1 %64, label %65, label %66

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

66:                                               ; preds = %50
  br label %67

67:                                               ; preds = %66
  br label %68

68:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #6
  br label %69

69:                                               ; preds = %68
  %70 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %71 = getelementptr inbounds %struct.jc_test_fixture, ptr %70, i32 0, i32 11
  %72 = load i32, ptr %71, align 8
  %73 = and i32 %72, -16776961
  %74 = or i32 %73, 203264
  store i32 %74, ptr %71, align 8
  %75 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %76 = getelementptr inbounds %struct.jc_test_fixture, ptr %75, i32 0, i32 4
  store ptr @.str.3, ptr %76, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  store i32 0, ptr %12, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  %77 = load ptr, ptr %3, align 8, !tbaa !5
  %78 = getelementptr inbounds [5 x i32], ptr %5, i64 0, i64 2
  %79 = getelementptr inbounds [5 x i64], ptr %6, i64 0, i64 0
  %80 = getelementptr inbounds [5 x i32], ptr %7, i64 0, i64 0
  %81 = call i32 @Longtail_CreateBlockIndex(ptr noundef %77, i32 noundef 51542081, i32 noundef 3, ptr noundef %78, ptr noundef %79, ptr noundef %80, ptr noundef %11)
  store i32 %81, ptr %13, align 4, !tbaa !14
  %82 = 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) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef @.str.46, ptr noundef @.str.178, ptr noundef null)
  %83 = icmp eq i32 %82, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  br i1 %83, label %84, label %85

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

85:                                               ; preds = %69
  br label %86

86:                                               ; preds = %85
  br label %87

87:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #6
  %88 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %88, ptr %14, align 8, !tbaa !5
  %89 = getelementptr inbounds ptr, ptr %14, i64 1
  %90 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %90, ptr %89, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #6
  br label %91

91:                                               ; preds = %87
  %92 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %93 = getelementptr inbounds %struct.jc_test_fixture, ptr %92, i32 0, i32 11
  %94 = load i32, ptr %93, align 8
  %95 = and i32 %94, -16776961
  %96 = or i32 %95, 205312
  store i32 %96, ptr %93, align 8
  %97 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %98 = getelementptr inbounds %struct.jc_test_fixture, ptr %97, i32 0, i32 4
  store ptr @.str.3, ptr %98, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  store i32 0, ptr %16, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  %99 = getelementptr inbounds [2 x ptr], ptr %14, i64 0, i64 0
  %100 = call i32 @Longtail_CreateStoreIndexFromBlocks(i32 noundef 2, ptr noundef %99, ptr noundef %15)
  store i32 %100, ptr %17, align 4, !tbaa !14
  %101 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef @.str.46, ptr noundef @.str.179, ptr noundef null)
  %102 = icmp eq i32 %101, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  br i1 %102, label %103, label %104

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

104:                                              ; preds = %91
  br label %105

105:                                              ; preds = %104
  br label %106

106:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  br label %107

107:                                              ; preds = %106
  %108 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %109 = getelementptr inbounds %struct.jc_test_fixture, ptr %108, i32 0, i32 11
  %110 = load i32, ptr %109, align 8
  %111 = and i32 %110, -16776961
  %112 = or i32 %111, 206848
  store i32 %112, ptr %109, align 8
  %113 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %114 = getelementptr inbounds %struct.jc_test_fixture, ptr %113, i32 0, i32 4
  store ptr @.str.3, ptr %114, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  store i32 0, ptr %19, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  %115 = call i32 @Longtail_CreateStoreIndexFromBlocks(i32 noundef 0, ptr noundef null, ptr noundef %18)
  store i32 %115, ptr %20, align 4, !tbaa !14
  %116 = 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 @.str.46, ptr noundef @.str.180, ptr noundef null)
  %117 = icmp eq i32 %116, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  br i1 %117, label %118, label %119

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

119:                                              ; preds = %107
  br label %120

120:                                              ; preds = %119
  br label %121

121:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  br label %122

122:                                              ; preds = %121
  %123 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %124 = getelementptr inbounds %struct.jc_test_fixture, ptr %123, i32 0, i32 11
  %125 = load i32, ptr %124, align 8
  %126 = and i32 %125, -16776961
  %127 = or i32 %126, 207616
  store i32 %127, ptr %124, align 8
  %128 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %129 = getelementptr inbounds %struct.jc_test_fixture, ptr %128, i32 0, i32 4
  store ptr @.str.3, ptr %129, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  store i32 0, ptr %22, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  %130 = load ptr, ptr %18, align 8, !tbaa !5
  %131 = load ptr, ptr %15, align 8, !tbaa !5
  %132 = call i32 @Longtail_MergeStoreIndex(ptr noundef %130, ptr noundef %131, ptr noundef %21)
  store i32 %132, ptr %23, align 4, !tbaa !14
  %133 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef @.str.46, ptr noundef @.str.181, ptr noundef null)
  %134 = icmp eq i32 %133, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  br i1 %134, label %135, label %136

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

136:                                              ; preds = %122
  br label %137

137:                                              ; preds = %136
  br label %138

138:                                              ; preds = %137
  br label %139

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

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

153:                                              ; preds = %139
  br label %154

154:                                              ; preds = %153
  br label %155

155:                                              ; preds = %154
  br label %156

156:                                              ; preds = %155
  %157 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %158 = getelementptr inbounds %struct.jc_test_fixture, ptr %157, i32 0, i32 11
  %159 = load i32, ptr %158, align 8
  %160 = and i32 %159, -16776961
  %161 = or i32 %160, 208384
  store i32 %161, ptr %158, align 8
  %162 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %163 = getelementptr inbounds %struct.jc_test_fixture, ptr %162, i32 0, i32 4
  store ptr @.str.3, ptr %163, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %164 = load ptr, ptr %8, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %164, i32 0, i32 0
  %166 = load ptr, ptr %165, align 8, !tbaa !17
  %167 = load ptr, ptr %21, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %167, i32 0, i32 4
  %169 = load ptr, ptr %168, align 8, !tbaa !19
  %170 = getelementptr inbounds i64, ptr %169, i64 0
  %171 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %166, ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef @.str.142, ptr noundef @.str.183)
  %172 = icmp eq i32 %171, 0
  br i1 %172, label %173, label %174

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

174:                                              ; preds = %156
  br label %175

175:                                              ; preds = %174
  br label %176

176:                                              ; preds = %175
  br label %177

177:                                              ; preds = %176
  %178 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %179 = getelementptr inbounds %struct.jc_test_fixture, ptr %178, i32 0, i32 11
  %180 = load i32, ptr %179, align 8
  %181 = and i32 %180, -16776961
  %182 = or i32 %181, 208640
  store i32 %182, ptr %179, align 8
  %183 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %184 = getelementptr inbounds %struct.jc_test_fixture, ptr %183, i32 0, i32 4
  store ptr @.str.3, ptr %184, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %185 = load ptr, ptr %11, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %185, i32 0, i32 0
  %187 = load ptr, ptr %186, align 8, !tbaa !17
  %188 = load ptr, ptr %21, align 8, !tbaa !5
  %189 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %188, i32 0, i32 4
  %190 = load ptr, ptr %189, align 8, !tbaa !19
  %191 = getelementptr inbounds i64, ptr %190, i64 1
  %192 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %187, ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef @.str.148, ptr noundef @.str.184)
  %193 = icmp eq i32 %192, 0
  br i1 %193, label %194, label %195

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

195:                                              ; preds = %177
  br label %196

196:                                              ; preds = %195
  br label %197

197:                                              ; preds = %196
  %198 = load ptr, ptr %21, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %198)
  br label %199

199:                                              ; preds = %197
  %200 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %201 = getelementptr inbounds %struct.jc_test_fixture, ptr %200, i32 0, i32 11
  %202 = load i32, ptr %201, align 8
  %203 = and i32 %202, -16776961
  %204 = or i32 %203, 209408
  store i32 %204, ptr %201, align 8
  %205 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %206 = getelementptr inbounds %struct.jc_test_fixture, ptr %205, i32 0, i32 4
  store ptr @.str.3, ptr %206, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  store i32 0, ptr %25, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  %207 = load ptr, ptr %15, align 8, !tbaa !5
  %208 = load ptr, ptr %18, align 8, !tbaa !5
  %209 = call i32 @Longtail_MergeStoreIndex(ptr noundef %207, ptr noundef %208, ptr noundef %21)
  store i32 %209, ptr %26, align 4, !tbaa !14
  %210 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef @.str.46, ptr noundef @.str.185, ptr noundef null)
  %211 = icmp eq i32 %210, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  br i1 %211, label %212, label %213

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

213:                                              ; preds = %199
  br label %214

214:                                              ; preds = %213
  br label %215

215:                                              ; preds = %214
  br label %216

216:                                              ; preds = %215
  %217 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %218 = getelementptr inbounds %struct.jc_test_fixture, ptr %217, i32 0, i32 11
  %219 = load i32, ptr %218, align 8
  %220 = and i32 %219, -16776961
  %221 = or i32 %220, 209920
  store i32 %221, ptr %218, align 8
  %222 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %223 = getelementptr inbounds %struct.jc_test_fixture, ptr %222, i32 0, i32 4
  store ptr @.str.3, ptr %223, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  store i32 2, ptr %27, align 4, !tbaa !14
  %224 = load ptr, ptr %21, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %224, i32 0, i32 2
  %226 = load ptr, ptr %225, align 8, !tbaa !15
  %227 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %226, ptr noundef @.str.138, ptr noundef @.str.182)
  %228 = icmp eq i32 %227, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br i1 %228, label %229, label %230

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

230:                                              ; preds = %216
  br label %231

231:                                              ; preds = %230
  br label %232

232:                                              ; preds = %231
  br label %233

233:                                              ; preds = %232
  %234 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %235 = getelementptr inbounds %struct.jc_test_fixture, ptr %234, i32 0, i32 11
  %236 = load i32, ptr %235, align 8
  %237 = and i32 %236, -16776961
  %238 = or i32 %237, 210176
  store i32 %238, ptr %235, align 8
  %239 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %240 = getelementptr inbounds %struct.jc_test_fixture, ptr %239, i32 0, i32 4
  store ptr @.str.3, ptr %240, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %241 = load ptr, ptr %8, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %241, i32 0, i32 0
  %243 = load ptr, ptr %242, align 8, !tbaa !17
  %244 = load ptr, ptr %21, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %244, i32 0, i32 4
  %246 = load ptr, ptr %245, align 8, !tbaa !19
  %247 = getelementptr inbounds i64, ptr %246, i64 0
  %248 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %243, ptr noundef nonnull align 8 dereferenceable(8) %247, ptr noundef @.str.142, ptr noundef @.str.183)
  %249 = icmp eq i32 %248, 0
  br i1 %249, label %250, label %251

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

251:                                              ; preds = %233
  br label %252

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  br label %254

254:                                              ; preds = %253
  %255 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %256 = getelementptr inbounds %struct.jc_test_fixture, ptr %255, i32 0, i32 11
  %257 = load i32, ptr %256, align 8
  %258 = and i32 %257, -16776961
  %259 = or i32 %258, 210432
  store i32 %259, ptr %256, align 8
  %260 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %261 = getelementptr inbounds %struct.jc_test_fixture, ptr %260, i32 0, i32 4
  store ptr @.str.3, ptr %261, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %262 = load ptr, ptr %11, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %262, i32 0, i32 0
  %264 = load ptr, ptr %263, align 8, !tbaa !17
  %265 = load ptr, ptr %21, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %265, i32 0, i32 4
  %267 = load ptr, ptr %266, align 8, !tbaa !19
  %268 = getelementptr inbounds i64, ptr %267, i64 1
  %269 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %264, ptr noundef nonnull align 8 dereferenceable(8) %268, ptr noundef @.str.148, ptr noundef @.str.184)
  %270 = icmp eq i32 %269, 0
  br i1 %270, label %271, label %272

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

272:                                              ; preds = %254
  br label %273

273:                                              ; preds = %272
  br label %274

274:                                              ; preds = %273
  %275 = load ptr, ptr %21, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %275)
  %276 = load ptr, ptr %18, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %276)
  %277 = load ptr, ptr %15, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %277)
  %278 = load ptr, ptr %11, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %278)
  %279 = load ptr, ptr %8, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %279)
  %280 = load ptr, ptr %3, align 8, !tbaa !5
  %281 = icmp ne ptr %280, null
  br i1 %281, label %282, label %285

282:                                              ; preds = %274
  %283 = load ptr, ptr %3, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %283, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %284)
  br label %285

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

286:                                              ; preds = %285, %271, %250, %229, %212, %194, %173, %152, %135
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br label %287

287:                                              ; preds = %286, %118
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  br label %288

288:                                              ; preds = %287, %103
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #6
  br label %289

289:                                              ; preds = %288, %84
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #6
  br label %290

290:                                              ; preds = %289, %65
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 20, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 20, ptr %5) #6
  br label %291

291:                                              ; preds = %290, %41
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #6
  %292 = load i32, ptr %4, align 4
  switch i32 %292, label %294 [
    i32 0, label %293
    i32 1, label %293
  ]

293:                                              ; preds = %291, %291
  ret void

294:                                              ; preds = %291
  unreachable
}

declare i32 @Longtail_MergeStoreIndex(ptr noundef, ptr noundef, ptr noundef) #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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { nounwind }

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

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


; 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.134 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [27 x i8], align 1
@__const._ZN52Longtail_Longtail_MergeStoreIndexWithEmpty__TestCase8TestBodyEv.chunk_indexes = external hidden unnamed_addr constant [5 x i32], align 16
@__const._ZN52Longtail_Longtail_MergeStoreIndexWithEmpty__TestCase8TestBodyEv.chunk_sizes = external hidden unnamed_addr constant [5 x i32], align 16
@.str.178 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [72 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

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

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

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

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

36:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %2) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %2, ptr noundef nonnull align 16 dereferenceable(20) @__const._ZN52Longtail_Longtail_MergeStoreIndexWithEmpty__TestCase8TestBodyEv.chunk_indexes, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #5
  store i64 -2401053088335177193, ptr %3, align 16
  %37 = getelementptr inbounds i8, ptr %3, i64 8
  store i64 -77306560028754193, ptr %37, align 8
  %38 = getelementptr inbounds i8, ptr %3, i64 16
  store i64 -5841914083062989078, ptr %38, align 16
  %39 = getelementptr inbounds i8, ptr %3, i64 24
  store i64 -2671269065977406889, ptr %39, align 8
  %40 = getelementptr inbounds i8, ptr %3, i64 32
  store i64 -77306560028754193, ptr %40, align 16
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %4) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %4, ptr noundef nonnull align 16 dereferenceable(20) @__const._ZN52Longtail_Longtail_MergeStoreIndexWithEmpty__TestCase8TestBodyEv.chunk_sizes, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #5
  %41 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %42 = getelementptr inbounds i8, ptr %41, i64 96
  %43 = load i32, ptr %42, align 8
  %44 = and i32 %43, -16776961
  %45 = or disjoint i32 %44, 200704
  store i32 %45, ptr %42, align 8
  %46 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %47 = getelementptr inbounds i8, ptr %46, i64 32
  store ptr @.str.3, ptr %47, align 8, !tbaa !5
  tail call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #5
  store i32 0, ptr %6, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #5
  %48 = call i32 @Longtail_CreateBlockIndex(ptr noundef %25, i32 noundef 51542081, i32 noundef 2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5)
  store i32 %48, ptr %7, align 4, !tbaa !13
  %49 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.134, ptr noundef null)
  %50 = icmp eq i32 %49, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  br i1 %50, label %51, label %52

51:                                               ; preds = %36
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %226

52:                                               ; preds = %36
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  %53 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %54 = getelementptr inbounds i8, ptr %53, i64 96
  %55 = load i32, ptr %54, align 8
  %56 = and i32 %55, -16776961
  %57 = or disjoint i32 %56, 203264
  store i32 %57, ptr %54, align 8
  %58 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %59 = getelementptr inbounds i8, ptr %58, i64 32
  store ptr @.str.3, ptr %59, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  store i32 0, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #5
  %60 = getelementptr inbounds i8, ptr %2, i64 8
  %61 = call i32 @Longtail_CreateBlockIndex(ptr noundef %25, i32 noundef 51542081, i32 noundef 3, ptr noundef nonnull %60, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %8)
  store i32 %61, ptr %10, align 4, !tbaa !13
  %62 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.178, ptr noundef null)
  %63 = icmp eq i32 %62, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  br i1 %63, label %64, label %65

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

65:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #5
  %66 = load ptr, ptr %5, align 8, !tbaa !14
  store ptr %66, ptr %11, align 16, !tbaa !14
  %67 = getelementptr inbounds i8, ptr %11, i64 8
  %68 = load ptr, ptr %8, align 8, !tbaa !14
  store ptr %68, ptr %67, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  %69 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %70 = getelementptr inbounds i8, ptr %69, i64 96
  %71 = load i32, ptr %70, align 8
  %72 = and i32 %71, -16776961
  %73 = or disjoint i32 %72, 205312
  store i32 %73, ptr %70, align 8
  %74 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %75 = getelementptr inbounds i8, ptr %74, i64 32
  store ptr @.str.3, ptr %75, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #5
  store i32 0, ptr %13, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #5
  %76 = call i32 @Longtail_CreateStoreIndexFromBlocks(i32 noundef 2, ptr noundef nonnull %11, ptr noundef nonnull %12)
  store i32 %76, ptr %14, 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) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.179, ptr noundef null)
  %78 = icmp eq i32 %77, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #5
  br i1 %78, label %79, label %80

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

80:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  %81 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %82 = getelementptr inbounds i8, ptr %81, i64 96
  %83 = load i32, ptr %82, align 8
  %84 = and i32 %83, -16776961
  %85 = or disjoint i32 %84, 206848
  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 %16) #5
  store i32 0, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  %88 = call i32 @Longtail_CreateStoreIndexFromBlocks(i32 noundef 0, ptr noundef null, ptr noundef nonnull %15)
  store i32 %88, ptr %17, align 4, !tbaa !13
  %89 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.180, ptr noundef null)
  %90 = icmp eq i32 %89, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  br i1 %90, label %91, label %92

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

92:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  %93 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %94 = getelementptr inbounds i8, ptr %93, i64 96
  %95 = load i32, ptr %94, align 8
  %96 = and i32 %95, -16776961
  %97 = or disjoint i32 %96, 207616
  store i32 %97, ptr %94, align 8
  %98 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %99 = getelementptr inbounds i8, ptr %98, i64 32
  store ptr @.str.3, ptr %99, align 8, !tbaa !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
  %100 = load ptr, ptr %15, align 8, !tbaa !14
  %101 = load ptr, ptr %12, align 8, !tbaa !14
  %102 = call i32 @Longtail_MergeStoreIndex(ptr noundef %100, ptr noundef %101, ptr noundef nonnull %18)
  store i32 %102, ptr %20, align 4, !tbaa !13
  %103 = 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.181, ptr noundef null)
  %104 = icmp eq i32 %103, 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 %104, label %105, label %106

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

106:                                              ; preds = %92
  %107 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %108 = getelementptr inbounds i8, ptr %107, i64 96
  %109 = load i32, ptr %108, align 8
  %110 = and i32 %109, -16776961
  %111 = or disjoint i32 %110, 208128
  store i32 %111, ptr %108, align 8
  %112 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %113 = getelementptr inbounds i8, ptr %112, i64 32
  store ptr @.str.3, ptr %113, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  store i32 2, ptr %21, align 4, !tbaa !13
  %114 = load ptr, ptr %18, align 8, !tbaa !14
  %115 = getelementptr inbounds i8, ptr %114, i64 16
  %116 = load ptr, ptr %115, align 8, !tbaa !15
  %117 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %116, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.182)
  %118 = icmp eq i32 %117, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  br i1 %118, label %119, label %120

119:                                              ; preds = %106
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %222

120:                                              ; preds = %106
  %121 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %122 = getelementptr inbounds i8, ptr %121, i64 96
  %123 = load i32, ptr %122, align 8
  %124 = and i32 %123, -16776961
  %125 = or disjoint i32 %124, 208384
  store i32 %125, ptr %122, align 8
  %126 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %127 = getelementptr inbounds i8, ptr %126, i64 32
  store ptr @.str.3, ptr %127, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %128 = load ptr, ptr %5, align 8, !tbaa !14
  %129 = load ptr, ptr %128, align 8, !tbaa !17
  %130 = load ptr, ptr %18, align 8, !tbaa !14
  %131 = getelementptr inbounds i8, ptr %130, i64 32
  %132 = load ptr, ptr %131, align 8, !tbaa !19
  %133 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.183)
  %134 = icmp eq i32 %133, 0
  br i1 %134, label %135, label %136

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

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

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

153:                                              ; preds = %136
  %154 = load ptr, ptr %18, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %154)
  %155 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %156 = getelementptr inbounds i8, ptr %155, i64 96
  %157 = load i32, ptr %156, align 8
  %158 = and i32 %157, -16776961
  %159 = or disjoint i32 %158, 209408
  store i32 %159, ptr %156, align 8
  %160 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %161 = getelementptr inbounds i8, ptr %160, i64 32
  store ptr @.str.3, ptr %161, align 8, !tbaa !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
  %162 = load ptr, ptr %12, align 8, !tbaa !14
  %163 = load ptr, ptr %15, align 8, !tbaa !14
  %164 = call i32 @Longtail_MergeStoreIndex(ptr noundef %162, ptr noundef %163, ptr noundef nonnull %18)
  store i32 %164, ptr %23, align 4, !tbaa !13
  %165 = 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.185, ptr noundef null)
  %166 = icmp eq i32 %165, 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 %166, label %167, label %168

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

168:                                              ; preds = %153
  %169 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %170 = getelementptr inbounds i8, ptr %169, i64 96
  %171 = load i32, ptr %170, align 8
  %172 = and i32 %171, -16776961
  %173 = or disjoint i32 %172, 209920
  store i32 %173, ptr %170, align 8
  %174 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %175 = getelementptr inbounds i8, ptr %174, i64 32
  store ptr @.str.3, ptr %175, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  store i32 2, ptr %24, align 4, !tbaa !13
  %176 = load ptr, ptr %18, align 8, !tbaa !14
  %177 = getelementptr inbounds i8, ptr %176, i64 16
  %178 = load ptr, ptr %177, align 8, !tbaa !15
  %179 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %178, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.182)
  %180 = icmp eq i32 %179, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  br i1 %180, label %181, label %182

181:                                              ; preds = %168
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %222

182:                                              ; preds = %168
  %183 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %184 = getelementptr inbounds i8, ptr %183, i64 96
  %185 = load i32, ptr %184, align 8
  %186 = and i32 %185, -16776961
  %187 = or disjoint i32 %186, 210176
  store i32 %187, ptr %184, align 8
  %188 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %189 = getelementptr inbounds i8, ptr %188, i64 32
  store ptr @.str.3, ptr %189, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %190 = load ptr, ptr %5, align 8, !tbaa !14
  %191 = load ptr, ptr %190, align 8, !tbaa !17
  %192 = load ptr, ptr %18, align 8, !tbaa !14
  %193 = getelementptr inbounds i8, ptr %192, i64 32
  %194 = load ptr, ptr %193, align 8, !tbaa !19
  %195 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef nonnull align 8 dereferenceable(8) %194, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.183)
  %196 = icmp eq i32 %195, 0
  br i1 %196, label %197, label %198

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

198:                                              ; preds = %182
  %199 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %200 = getelementptr inbounds i8, ptr %199, i64 96
  %201 = load i32, ptr %200, align 8
  %202 = and i32 %201, -16776961
  %203 = or disjoint i32 %202, 210432
  store i32 %203, ptr %200, align 8
  %204 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %205 = getelementptr inbounds i8, ptr %204, i64 32
  store ptr @.str.3, ptr %205, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %206 = load ptr, ptr %8, align 8, !tbaa !14
  %207 = load ptr, ptr %206, align 8, !tbaa !17
  %208 = load ptr, ptr %18, align 8, !tbaa !14
  %209 = getelementptr inbounds i8, ptr %208, i64 32
  %210 = load ptr, ptr %209, align 8, !tbaa !19
  %211 = getelementptr inbounds i8, ptr %210, i64 8
  %212 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %207, ptr noundef nonnull align 8 dereferenceable(8) %211, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.184)
  %213 = icmp eq i32 %212, 0
  br i1 %213, label %214, label %215

214:                                              ; preds = %198
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %222

215:                                              ; preds = %198
  %216 = load ptr, ptr %18, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %216)
  %217 = load ptr, ptr %15, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %217)
  %218 = load ptr, ptr %12, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %218)
  %219 = load ptr, ptr %8, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %219)
  %220 = load ptr, ptr %5, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %220)
  %.not = icmp eq ptr %25, null
  br i1 %.not, label %222, label %221

221:                                              ; preds = %215
  call void @Longtail_DisposeAPI(ptr noundef nonnull %25)
  br label %222

222:                                              ; preds = %215, %221, %214, %197, %181, %167, %152, %135, %119, %105
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  br label %223

223:                                              ; preds = %222, %91
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  br label %224

224:                                              ; preds = %223, %79
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #5
  br label %225

225:                                              ; preds = %224, %64
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  br label %226

226:                                              ; preds = %225, %51
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %2) #5
  br label %227

227:                                              ; preds = %226, %35
  ret void
}

declare i32 @Longtail_MergeStoreIndex(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #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 = !{!16, !7, i64 16}
!16 = !{!"_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}
!17 = !{!18, !7, i64 0}
!18 = !{!"_ZTS19Longtail_BlockIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!19 = !{!16, !7, i64 32}


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