; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN43Longtail_Longtail_PruneStoreIndex (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.78 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [3 x i8], align 1
@__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_indexes = external hidden unnamed_addr constant [7 x i32], align 16
@__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_hashes = external hidden unnamed_addr constant [7 x i64], align 16
@__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_sizes = external hidden unnamed_addr constant [7 x i32], align 16
@.str.829 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.830 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.831 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.832 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.833 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.834 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.835 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.836 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.837 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.838 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.839 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.840 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.841 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.842 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.843 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.844 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.845 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.846 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.847 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.848 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.849 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.850 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.851 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.852 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.853 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.854 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.855 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.856 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.857 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.858 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.859 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.860 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.861 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.862 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.863 = external hidden unnamed_addr constant [46 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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN43Longtail_Longtail_PruneStoreIndex__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 [7 x i32], align 16
  %6 = alloca [7 x i64], align 16
  %7 = alloca [7 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 ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca [3 x ptr], align 16
  %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 ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca [2 x i64], align 16
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %42 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #5
  %43 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %43, ptr %3, align 8, !tbaa !5
  br label %44

44:                                               ; preds = %1
  %45 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %46 = getelementptr inbounds %struct.jc_test_fixture, ptr %45, i32 0, i32 11
  %47 = load i32, ptr %46, align 8
  %48 = and i32 %47, -16776961
  %49 = or i32 %48, 1805056
  store i32 %49, ptr %46, align 8
  %50 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %51 = getelementptr inbounds %struct.jc_test_fixture, ptr %50, i32 0, i32 4
  store ptr @.str.3, ptr %51, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %52 = load ptr, ptr %3, align 8, !tbaa !5
  %53 = call noundef i32 @_Z14jc_test_cmp_NEIP16Longtail_HashAPIS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %52, ptr noundef @.str.65, ptr noundef @.str.66)
  %54 = icmp eq i32 %53, 0
  br i1 %54, label %55, label %56

55:                                               ; preds = %44
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %719

56:                                               ; preds = %44
  br label %57

57:                                               ; preds = %56
  br label %58

58:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 28, ptr %5) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %5, ptr align 16 @__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_indexes, i64 28, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr %6) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %6, ptr align 16 @__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_hashes, i64 56, i1 false)
  call void @llvm.lifetime.start.p0(i64 28, ptr %7) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_sizes, i64 28, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #5
  br label %59

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

74:                                               ; preds = %59
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %718

75:                                               ; preds = %59
  br label %76

76:                                               ; preds = %75
  br label %77

77:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #5
  br label %78

78:                                               ; preds = %77
  %79 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %80 = getelementptr inbounds %struct.jc_test_fixture, ptr %79, i32 0, i32 11
  %81 = load i32, ptr %80, align 8
  %82 = and i32 %81, -16776961
  %83 = or i32 %82, 1810688
  store i32 %83, ptr %80, align 8
  %84 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %85 = getelementptr inbounds %struct.jc_test_fixture, ptr %84, i32 0, i32 4
  store ptr @.str.3, ptr %85, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  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
  %86 = load ptr, ptr %3, align 8, !tbaa !5
  %87 = getelementptr inbounds [7 x i32], ptr %5, i64 0, i64 2
  %88 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 0
  %89 = getelementptr inbounds [7 x i32], ptr %7, i64 0, i64 0
  %90 = call i32 @Longtail_CreateBlockIndex(ptr noundef %86, i32 noundef 51542081, i32 noundef 2, ptr noundef %87, ptr noundef %88, ptr noundef %89, ptr noundef %11)
  store i32 %90, ptr %13, align 4, !tbaa !14
  %91 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef @.str.46, ptr noundef @.str.135, ptr noundef null)
  %92 = icmp eq i32 %91, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #5
  br i1 %92, label %93, label %94

93:                                               ; preds = %78
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %717

94:                                               ; preds = %78
  br label %95

95:                                               ; preds = %94
  br label %96

96:                                               ; preds = %95
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #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, 1813248
  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 %15) #5
  store i32 0, ptr %15, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #5
  %105 = load ptr, ptr %3, align 8, !tbaa !5
  %106 = getelementptr inbounds [7 x i32], ptr %5, i64 0, i64 4
  %107 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 0
  %108 = getelementptr inbounds [7 x i32], ptr %7, i64 0, i64 0
  %109 = call i32 @Longtail_CreateBlockIndex(ptr noundef %105, i32 noundef 51542081, i32 noundef 3, ptr noundef %106, ptr noundef %107, ptr noundef %108, ptr noundef %14)
  store i32 %109, ptr %16, align 4, !tbaa !14
  %110 = 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 @.str.46, ptr noundef @.str.829, ptr noundef null)
  %111 = icmp eq i32 %110, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  br i1 %111, label %112, label %113

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

113:                                              ; preds = %97
  br label %114

114:                                              ; preds = %113
  br label %115

115:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #5
  %116 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %116, ptr %17, align 8, !tbaa !5
  %117 = getelementptr inbounds ptr, ptr %17, i64 1
  %118 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %118, ptr %117, align 8, !tbaa !5
  %119 = getelementptr inbounds ptr, ptr %17, i64 2
  %120 = load ptr, ptr %14, align 8, !tbaa !5
  store ptr %120, ptr %119, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  br label %121

121:                                              ; preds = %115
  %122 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %123 = getelementptr inbounds %struct.jc_test_fixture, ptr %122, i32 0, i32 11
  %124 = load i32, ptr %123, align 8
  %125 = and i32 %124, -16776961
  %126 = or i32 %125, 1815296
  store i32 %126, ptr %123, align 8
  %127 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %128 = getelementptr inbounds %struct.jc_test_fixture, ptr %127, i32 0, i32 4
  store ptr @.str.3, ptr %128, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  store i32 0, ptr %19, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  %129 = getelementptr inbounds [3 x ptr], ptr %17, i64 0, i64 0
  %130 = call i32 @Longtail_CreateStoreIndexFromBlocks(i32 noundef 3, ptr noundef %129, ptr noundef %18)
  store i32 %130, ptr %20, align 4, !tbaa !14
  %131 = 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.830, ptr noundef null)
  %132 = icmp eq i32 %131, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  br i1 %132, label %133, label %134

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

134:                                              ; preds = %121
  br label %135

135:                                              ; preds = %134
  br label %136

136:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  br label %137

137:                                              ; preds = %136
  %138 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %139 = getelementptr inbounds %struct.jc_test_fixture, ptr %138, i32 0, i32 11
  %140 = load i32, ptr %139, align 8
  %141 = and i32 %140, -16776961
  %142 = or i32 %141, 1817344
  store i32 %142, ptr %139, align 8
  %143 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %144 = getelementptr inbounds %struct.jc_test_fixture, ptr %143, i32 0, i32 4
  store ptr @.str.3, ptr %144, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  store i32 0, ptr %22, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  %145 = load ptr, ptr %18, align 8, !tbaa !5
  %146 = load ptr, ptr %18, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %146, i32 0, i32 4
  %148 = load ptr, ptr %147, align 8, !tbaa !15
  %149 = getelementptr inbounds i64, ptr %148, i64 0
  %150 = call i32 @Longtail_PruneStoreIndex(ptr noundef %145, i32 noundef 1, ptr noundef %149, ptr noundef %21)
  store i32 %150, ptr %23, align 4, !tbaa !14
  %151 = 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.831, ptr noundef null)
  %152 = icmp eq i32 %151, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  br i1 %152, label %153, label %154

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

154:                                              ; preds = %137
  br label %155

155:                                              ; preds = %154
  br label %156

156:                                              ; preds = %155
  br label %157

157:                                              ; preds = %156
  %158 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %159 = getelementptr inbounds %struct.jc_test_fixture, ptr %158, i32 0, i32 11
  %160 = load i32, ptr %159, align 8
  %161 = and i32 %160, -16776961
  %162 = or i32 %161, 1817600
  store i32 %162, ptr %159, align 8
  %163 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %164 = getelementptr inbounds %struct.jc_test_fixture, ptr %163, i32 0, i32 4
  store ptr @.str.3, ptr %164, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  store i32 1, ptr %24, align 4, !tbaa !14
  %165 = load ptr, ptr %21, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %165, i32 0, i32 2
  %167 = load ptr, ptr %166, align 8, !tbaa !17
  %168 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %167, ptr noundef @.str.496, ptr noundef @.str.832)
  %169 = icmp eq i32 %168, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  br i1 %169, label %170, label %171

170:                                              ; preds = %157
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %714

171:                                              ; preds = %157
  br label %172

172:                                              ; preds = %171
  br label %173

173:                                              ; preds = %172
  br label %174

174:                                              ; preds = %173
  %175 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %176 = getelementptr inbounds %struct.jc_test_fixture, ptr %175, i32 0, i32 11
  %177 = load i32, ptr %176, align 8
  %178 = and i32 %177, -16776961
  %179 = or i32 %178, 1817856
  store i32 %179, ptr %176, align 8
  %180 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %181 = getelementptr inbounds %struct.jc_test_fixture, ptr %180, i32 0, i32 4
  store ptr @.str.3, ptr %181, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  store i32 2, ptr %25, align 4, !tbaa !14
  %182 = load ptr, ptr %21, align 8, !tbaa !5
  %183 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %182, i32 0, i32 3
  %184 = load ptr, ptr %183, align 8, !tbaa !18
  %185 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %184, ptr noundef @.str.78, ptr noundef @.str.833)
  %186 = icmp eq i32 %185, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br i1 %186, label %187, label %188

187:                                              ; preds = %174
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %714

188:                                              ; preds = %174
  br label %189

189:                                              ; preds = %188
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  %192 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %193 = getelementptr inbounds %struct.jc_test_fixture, ptr %192, i32 0, i32 11
  %194 = load i32, ptr %193, align 8
  %195 = and i32 %194, -16776961
  %196 = or i32 %195, 1818112
  store i32 %196, ptr %193, align 8
  %197 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %198 = getelementptr inbounds %struct.jc_test_fixture, ptr %197, i32 0, i32 4
  store ptr @.str.3, ptr %198, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %199 = load ptr, ptr %18, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %199, i32 0, i32 4
  %201 = load ptr, ptr %200, align 8, !tbaa !15
  %202 = getelementptr inbounds i64, ptr %201, i64 0
  %203 = load ptr, ptr %21, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %203, i32 0, i32 4
  %205 = load ptr, ptr %204, align 8, !tbaa !15
  %206 = getelementptr inbounds i64, ptr %205, i64 0
  %207 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %202, ptr noundef nonnull align 8 dereferenceable(8) %206, ptr noundef @.str.143, ptr noundef @.str.834)
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %210

209:                                              ; preds = %191
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %714

210:                                              ; preds = %191
  br label %211

211:                                              ; preds = %210
  br label %212

212:                                              ; preds = %211
  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, 1818368
  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 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 0
  %222 = load ptr, ptr %21, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %222, i32 0, i32 5
  %224 = load ptr, ptr %223, align 8, !tbaa !19
  %225 = getelementptr inbounds i64, ptr %224, i64 0
  %226 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %221, ptr noundef nonnull align 8 dereferenceable(8) %225, ptr noundef @.str.80, ptr noundef @.str.835)
  %227 = icmp eq i32 %226, 0
  br i1 %227, label %228, label %229

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

229:                                              ; preds = %213
  br label %230

230:                                              ; preds = %229
  br label %231

231:                                              ; preds = %230
  br label %232

232:                                              ; preds = %231
  %233 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %234 = getelementptr inbounds %struct.jc_test_fixture, ptr %233, i32 0, i32 11
  %235 = load i32, ptr %234, align 8
  %236 = and i32 %235, -16776961
  %237 = or i32 %236, 1818624
  store i32 %237, ptr %234, align 8
  %238 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %239 = getelementptr inbounds %struct.jc_test_fixture, ptr %238, i32 0, i32 4
  store ptr @.str.3, ptr %239, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %240 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 1
  %241 = load ptr, ptr %21, align 8, !tbaa !5
  %242 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %241, i32 0, i32 5
  %243 = load ptr, ptr %242, align 8, !tbaa !19
  %244 = getelementptr inbounds i64, ptr %243, i64 1
  %245 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef nonnull align 8 dereferenceable(8) %244, ptr noundef @.str.82, ptr noundef @.str.836)
  %246 = icmp eq i32 %245, 0
  br i1 %246, label %247, label %248

247:                                              ; preds = %232
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %714

248:                                              ; preds = %232
  br label %249

249:                                              ; preds = %248
  br label %250

250:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  br label %251

251:                                              ; preds = %250
  %252 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %253 = getelementptr inbounds %struct.jc_test_fixture, ptr %252, i32 0, i32 11
  %254 = load i32, ptr %253, align 8
  %255 = and i32 %254, -16776961
  %256 = or i32 %255, 1820416
  store i32 %256, ptr %253, align 8
  %257 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %258 = getelementptr inbounds %struct.jc_test_fixture, ptr %257, i32 0, i32 4
  store ptr @.str.3, ptr %258, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  store i32 0, ptr %27, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  %259 = load ptr, ptr %18, align 8, !tbaa !5
  %260 = load ptr, ptr %18, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %260, i32 0, i32 4
  %262 = load ptr, ptr %261, align 8, !tbaa !15
  %263 = getelementptr inbounds i64, ptr %262, i64 1
  %264 = call i32 @Longtail_PruneStoreIndex(ptr noundef %259, i32 noundef 1, ptr noundef %263, ptr noundef %26)
  store i32 %264, ptr %28, align 4, !tbaa !14
  %265 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef @.str.46, ptr noundef @.str.837, ptr noundef null)
  %266 = icmp eq i32 %265, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  br i1 %266, label %267, label %268

267:                                              ; preds = %251
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %713

268:                                              ; preds = %251
  br label %269

269:                                              ; preds = %268
  br label %270

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %270
  %272 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %273 = getelementptr inbounds %struct.jc_test_fixture, ptr %272, i32 0, i32 11
  %274 = load i32, ptr %273, align 8
  %275 = and i32 %274, -16776961
  %276 = or i32 %275, 1820672
  store i32 %276, ptr %273, align 8
  %277 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %278 = getelementptr inbounds %struct.jc_test_fixture, ptr %277, i32 0, i32 4
  store ptr @.str.3, ptr %278, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  store i32 1, ptr %29, align 4, !tbaa !14
  %279 = load ptr, ptr %26, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %279, i32 0, i32 2
  %281 = load ptr, ptr %280, align 8, !tbaa !17
  %282 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %281, ptr noundef @.str.496, ptr noundef @.str.838)
  %283 = icmp eq i32 %282, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  br i1 %283, label %284, label %285

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

285:                                              ; preds = %271
  br label %286

286:                                              ; preds = %285
  br label %287

287:                                              ; preds = %286
  br label %288

288:                                              ; preds = %287
  %289 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %290 = getelementptr inbounds %struct.jc_test_fixture, ptr %289, i32 0, i32 11
  %291 = load i32, ptr %290, align 8
  %292 = and i32 %291, -16776961
  %293 = or i32 %292, 1820928
  store i32 %293, ptr %290, align 8
  %294 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %295 = getelementptr inbounds %struct.jc_test_fixture, ptr %294, i32 0, i32 4
  store ptr @.str.3, ptr %295, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  store i32 2, ptr %30, align 4, !tbaa !14
  %296 = load ptr, ptr %26, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %296, i32 0, i32 3
  %298 = load ptr, ptr %297, align 8, !tbaa !18
  %299 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 4 dereferenceable(4) %298, ptr noundef @.str.78, ptr noundef @.str.839)
  %300 = icmp eq i32 %299, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  br i1 %300, label %301, label %302

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

302:                                              ; preds = %288
  br label %303

303:                                              ; preds = %302
  br label %304

304:                                              ; preds = %303
  br label %305

305:                                              ; preds = %304
  %306 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %307 = getelementptr inbounds %struct.jc_test_fixture, ptr %306, i32 0, i32 11
  %308 = load i32, ptr %307, align 8
  %309 = and i32 %308, -16776961
  %310 = or i32 %309, 1821184
  store i32 %310, ptr %307, align 8
  %311 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %312 = getelementptr inbounds %struct.jc_test_fixture, ptr %311, i32 0, i32 4
  store ptr @.str.3, ptr %312, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %313 = load ptr, ptr %18, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %313, i32 0, i32 4
  %315 = load ptr, ptr %314, align 8, !tbaa !15
  %316 = getelementptr inbounds i64, ptr %315, i64 1
  %317 = load ptr, ptr %26, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %317, i32 0, i32 4
  %319 = load ptr, ptr %318, align 8, !tbaa !15
  %320 = getelementptr inbounds i64, ptr %319, i64 0
  %321 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %316, ptr noundef nonnull align 8 dereferenceable(8) %320, ptr noundef @.str.149, ptr noundef @.str.840)
  %322 = icmp eq i32 %321, 0
  br i1 %322, label %323, label %324

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

324:                                              ; preds = %305
  br label %325

325:                                              ; preds = %324
  br label %326

326:                                              ; preds = %325
  br label %327

327:                                              ; preds = %326
  %328 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %329 = getelementptr inbounds %struct.jc_test_fixture, ptr %328, i32 0, i32 11
  %330 = load i32, ptr %329, align 8
  %331 = and i32 %330, -16776961
  %332 = or i32 %331, 1821440
  store i32 %332, ptr %329, align 8
  %333 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %334 = getelementptr inbounds %struct.jc_test_fixture, ptr %333, i32 0, i32 4
  store ptr @.str.3, ptr %334, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %335 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 2
  %336 = load ptr, ptr %26, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %336, i32 0, i32 5
  %338 = load ptr, ptr %337, align 8, !tbaa !19
  %339 = getelementptr inbounds i64, ptr %338, i64 0
  %340 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %335, ptr noundef nonnull align 8 dereferenceable(8) %339, ptr noundef @.str.156, ptr noundef @.str.841)
  %341 = icmp eq i32 %340, 0
  br i1 %341, label %342, label %343

342:                                              ; preds = %327
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %713

343:                                              ; preds = %327
  br label %344

344:                                              ; preds = %343
  br label %345

345:                                              ; preds = %344
  br label %346

346:                                              ; preds = %345
  %347 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %348 = getelementptr inbounds %struct.jc_test_fixture, ptr %347, i32 0, i32 11
  %349 = load i32, ptr %348, align 8
  %350 = and i32 %349, -16776961
  %351 = or i32 %350, 1821696
  store i32 %351, ptr %348, align 8
  %352 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %353 = getelementptr inbounds %struct.jc_test_fixture, ptr %352, i32 0, i32 4
  store ptr @.str.3, ptr %353, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %354 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 3
  %355 = load ptr, ptr %26, align 8, !tbaa !5
  %356 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %355, i32 0, i32 5
  %357 = load ptr, ptr %356, align 8, !tbaa !19
  %358 = getelementptr inbounds i64, ptr %357, i64 1
  %359 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %354, ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef @.str.158, ptr noundef @.str.842)
  %360 = icmp eq i32 %359, 0
  br i1 %360, label %361, label %362

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

362:                                              ; preds = %346
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  br label %365

365:                                              ; preds = %364
  %366 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %367 = getelementptr inbounds %struct.jc_test_fixture, ptr %366, i32 0, i32 11
  %368 = load i32, ptr %367, align 8
  %369 = and i32 %368, -16776961
  %370 = or i32 %369, 1823488
  store i32 %370, ptr %367, align 8
  %371 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %372 = getelementptr inbounds %struct.jc_test_fixture, ptr %371, i32 0, i32 4
  store ptr @.str.3, ptr %372, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  store i32 0, ptr %32, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  %373 = load ptr, ptr %18, align 8, !tbaa !5
  %374 = load ptr, ptr %18, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %374, i32 0, i32 4
  %376 = load ptr, ptr %375, align 8, !tbaa !15
  %377 = getelementptr inbounds i64, ptr %376, i64 2
  %378 = call i32 @Longtail_PruneStoreIndex(ptr noundef %373, i32 noundef 1, ptr noundef %377, ptr noundef %31)
  store i32 %378, ptr %33, align 4, !tbaa !14
  %379 = 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) %32, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef @.str.46, ptr noundef @.str.843, ptr noundef null)
  %380 = icmp eq i32 %379, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  br i1 %380, label %381, label %382

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

382:                                              ; preds = %365
  br label %383

383:                                              ; preds = %382
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384
  %386 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %387 = getelementptr inbounds %struct.jc_test_fixture, ptr %386, i32 0, i32 11
  %388 = load i32, ptr %387, align 8
  %389 = and i32 %388, -16776961
  %390 = or i32 %389, 1823744
  store i32 %390, ptr %387, align 8
  %391 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %392 = getelementptr inbounds %struct.jc_test_fixture, ptr %391, i32 0, i32 4
  store ptr @.str.3, ptr %392, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  store i32 1, ptr %34, align 4, !tbaa !14
  %393 = load ptr, ptr %31, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %393, i32 0, i32 2
  %395 = load ptr, ptr %394, align 8, !tbaa !17
  %396 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %395, ptr noundef @.str.496, ptr noundef @.str.844)
  %397 = icmp eq i32 %396, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  br i1 %397, label %398, label %399

398:                                              ; preds = %385
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %712

399:                                              ; preds = %385
  br label %400

400:                                              ; preds = %399
  br label %401

401:                                              ; preds = %400
  br label %402

402:                                              ; preds = %401
  %403 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %404 = getelementptr inbounds %struct.jc_test_fixture, ptr %403, i32 0, i32 11
  %405 = load i32, ptr %404, align 8
  %406 = and i32 %405, -16776961
  %407 = or i32 %406, 1824000
  store i32 %407, ptr %404, align 8
  %408 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %409 = getelementptr inbounds %struct.jc_test_fixture, ptr %408, i32 0, i32 4
  store ptr @.str.3, ptr %409, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  store i32 3, ptr %35, align 4, !tbaa !14
  %410 = load ptr, ptr %31, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %410, i32 0, i32 3
  %412 = load ptr, ptr %411, align 8, !tbaa !18
  %413 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) %412, ptr noundef @.str.491, ptr noundef @.str.845)
  %414 = icmp eq i32 %413, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  br i1 %414, label %415, label %416

415:                                              ; preds = %402
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %712

416:                                              ; preds = %402
  br label %417

417:                                              ; preds = %416
  br label %418

418:                                              ; preds = %417
  br label %419

419:                                              ; preds = %418
  %420 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %421 = getelementptr inbounds %struct.jc_test_fixture, ptr %420, i32 0, i32 11
  %422 = load i32, ptr %421, align 8
  %423 = and i32 %422, -16776961
  %424 = or i32 %423, 1824256
  store i32 %424, ptr %421, align 8
  %425 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %426 = getelementptr inbounds %struct.jc_test_fixture, ptr %425, i32 0, i32 4
  store ptr @.str.3, ptr %426, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %427 = load ptr, ptr %18, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %427, i32 0, i32 4
  %429 = load ptr, ptr %428, align 8, !tbaa !15
  %430 = getelementptr inbounds i64, ptr %429, i64 2
  %431 = load ptr, ptr %31, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %431, i32 0, i32 4
  %433 = load ptr, ptr %432, align 8, !tbaa !15
  %434 = getelementptr inbounds i64, ptr %433, i64 0
  %435 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %430, ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef @.str.846, ptr noundef @.str.847)
  %436 = icmp eq i32 %435, 0
  br i1 %436, label %437, label %438

437:                                              ; preds = %419
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %712

438:                                              ; preds = %419
  br label %439

439:                                              ; preds = %438
  br label %440

440:                                              ; preds = %439
  br label %441

441:                                              ; preds = %440
  %442 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %443 = getelementptr inbounds %struct.jc_test_fixture, ptr %442, i32 0, i32 11
  %444 = load i32, ptr %443, align 8
  %445 = and i32 %444, -16776961
  %446 = or i32 %445, 1824512
  store i32 %446, ptr %443, align 8
  %447 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %448 = getelementptr inbounds %struct.jc_test_fixture, ptr %447, i32 0, i32 4
  store ptr @.str.3, ptr %448, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %449 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 4
  %450 = load ptr, ptr %31, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %450, i32 0, i32 5
  %452 = load ptr, ptr %451, align 8, !tbaa !19
  %453 = getelementptr inbounds i64, ptr %452, i64 0
  %454 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %449, ptr noundef nonnull align 8 dereferenceable(8) %453, ptr noundef @.str.193, ptr noundef @.str.848)
  %455 = icmp eq i32 %454, 0
  br i1 %455, label %456, label %457

456:                                              ; preds = %441
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %712

457:                                              ; preds = %441
  br label %458

458:                                              ; preds = %457
  br label %459

459:                                              ; preds = %458
  br label %460

460:                                              ; preds = %459
  %461 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %462 = getelementptr inbounds %struct.jc_test_fixture, ptr %461, i32 0, i32 11
  %463 = load i32, ptr %462, align 8
  %464 = and i32 %463, -16776961
  %465 = or i32 %464, 1824768
  store i32 %465, ptr %462, align 8
  %466 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %467 = getelementptr inbounds %struct.jc_test_fixture, ptr %466, i32 0, i32 4
  store ptr @.str.3, ptr %467, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %468 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 5
  %469 = load ptr, ptr %31, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %469, i32 0, i32 5
  %471 = load ptr, ptr %470, align 8, !tbaa !19
  %472 = getelementptr inbounds i64, ptr %471, i64 1
  %473 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %468, ptr noundef nonnull align 8 dereferenceable(8) %472, ptr noundef @.str.849, ptr noundef @.str.850)
  %474 = icmp eq i32 %473, 0
  br i1 %474, label %475, label %476

475:                                              ; preds = %460
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %712

476:                                              ; preds = %460
  br label %477

477:                                              ; preds = %476
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  %480 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %481 = getelementptr inbounds %struct.jc_test_fixture, ptr %480, i32 0, i32 11
  %482 = load i32, ptr %481, align 8
  %483 = and i32 %482, -16776961
  %484 = or i32 %483, 1825024
  store i32 %484, ptr %481, align 8
  %485 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %486 = getelementptr inbounds %struct.jc_test_fixture, ptr %485, i32 0, i32 4
  store ptr @.str.3, ptr %486, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %487 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 6
  %488 = load ptr, ptr %31, align 8, !tbaa !5
  %489 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %488, i32 0, i32 5
  %490 = load ptr, ptr %489, align 8, !tbaa !19
  %491 = getelementptr inbounds i64, ptr %490, i64 2
  %492 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %487, ptr noundef nonnull align 8 dereferenceable(8) %491, ptr noundef @.str.851, ptr noundef @.str.852)
  %493 = icmp eq i32 %492, 0
  br i1 %493, label %494, label %495

494:                                              ; preds = %479
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %712

495:                                              ; preds = %479
  br label %496

496:                                              ; preds = %495
  br label %497

497:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #5
  %498 = load ptr, ptr %8, align 8, !tbaa !5
  %499 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %498, i32 0, i32 0
  %500 = load ptr, ptr %499, align 8, !tbaa !20
  %501 = load i64, ptr %500, align 8, !tbaa !22
  store i64 %501, ptr %36, align 8, !tbaa !22
  %502 = getelementptr inbounds i64, ptr %36, i64 1
  %503 = load ptr, ptr %14, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %503, i32 0, i32 0
  %505 = load ptr, ptr %504, align 8, !tbaa !20
  %506 = load i64, ptr %505, align 8, !tbaa !22
  store i64 %506, ptr %502, align 8, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  br label %507

507:                                              ; preds = %497
  %508 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %509 = getelementptr inbounds %struct.jc_test_fixture, ptr %508, i32 0, i32 11
  %510 = load i32, ptr %509, align 8
  %511 = and i32 %510, -16776961
  %512 = or i32 %511, 1827328
  store i32 %512, ptr %509, align 8
  %513 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %514 = getelementptr inbounds %struct.jc_test_fixture, ptr %513, i32 0, i32 4
  store ptr @.str.3, ptr %514, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  store i32 0, ptr %38, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  %515 = load ptr, ptr %18, align 8, !tbaa !5
  %516 = getelementptr inbounds [2 x i64], ptr %36, i64 0, i64 0
  %517 = call i32 @Longtail_PruneStoreIndex(ptr noundef %515, i32 noundef 2, ptr noundef %516, ptr noundef %37)
  store i32 %517, ptr %39, align 4, !tbaa !14
  %518 = 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) %38, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef @.str.46, ptr noundef @.str.853, ptr noundef null)
  %519 = icmp eq i32 %518, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  br i1 %519, label %520, label %521

520:                                              ; preds = %507
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %711

521:                                              ; preds = %507
  br label %522

522:                                              ; preds = %521
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  %525 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %526 = getelementptr inbounds %struct.jc_test_fixture, ptr %525, i32 0, i32 11
  %527 = load i32, ptr %526, align 8
  %528 = and i32 %527, -16776961
  %529 = or i32 %528, 1827584
  store i32 %529, ptr %526, align 8
  %530 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %531 = getelementptr inbounds %struct.jc_test_fixture, ptr %530, i32 0, i32 4
  store ptr @.str.3, ptr %531, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  store i32 2, ptr %40, align 4, !tbaa !14
  %532 = load ptr, ptr %37, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %532, i32 0, i32 2
  %534 = load ptr, ptr %533, align 8, !tbaa !17
  %535 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 4 dereferenceable(4) %534, ptr noundef @.str.78, ptr noundef @.str.854)
  %536 = icmp eq i32 %535, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  br i1 %536, label %537, label %538

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

538:                                              ; preds = %524
  br label %539

539:                                              ; preds = %538
  br label %540

540:                                              ; preds = %539
  br label %541

541:                                              ; preds = %540
  %542 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %543 = getelementptr inbounds %struct.jc_test_fixture, ptr %542, i32 0, i32 11
  %544 = load i32, ptr %543, align 8
  %545 = and i32 %544, -16776961
  %546 = or i32 %545, 1827840
  store i32 %546, ptr %543, align 8
  %547 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %548 = getelementptr inbounds %struct.jc_test_fixture, ptr %547, i32 0, i32 4
  store ptr @.str.3, ptr %548, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  store i32 5, ptr %41, align 4, !tbaa !14
  %549 = load ptr, ptr %37, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %549, i32 0, i32 3
  %551 = load ptr, ptr %550, align 8, !tbaa !18
  %552 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %41, ptr noundef nonnull align 4 dereferenceable(4) %551, ptr noundef @.str.855, ptr noundef @.str.856)
  %553 = icmp eq i32 %552, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  br i1 %553, label %554, label %555

554:                                              ; preds = %541
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %711

555:                                              ; preds = %541
  br label %556

556:                                              ; preds = %555
  br label %557

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557
  %559 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %560 = getelementptr inbounds %struct.jc_test_fixture, ptr %559, i32 0, i32 11
  %561 = load i32, ptr %560, align 8
  %562 = and i32 %561, -16776961
  %563 = or i32 %562, 1828096
  store i32 %563, ptr %560, align 8
  %564 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %565 = getelementptr inbounds %struct.jc_test_fixture, ptr %564, i32 0, i32 4
  store ptr @.str.3, ptr %565, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %566 = load ptr, ptr %18, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %566, i32 0, i32 4
  %568 = load ptr, ptr %567, align 8, !tbaa !15
  %569 = getelementptr inbounds i64, ptr %568, i64 0
  %570 = load ptr, ptr %37, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %570, i32 0, i32 4
  %572 = load ptr, ptr %571, align 8, !tbaa !15
  %573 = getelementptr inbounds i64, ptr %572, i64 0
  %574 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %569, ptr noundef nonnull align 8 dereferenceable(8) %573, ptr noundef @.str.143, ptr noundef @.str.857)
  %575 = icmp eq i32 %574, 0
  br i1 %575, label %576, label %577

576:                                              ; preds = %558
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %711

577:                                              ; preds = %558
  br label %578

578:                                              ; preds = %577
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  %581 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %582 = getelementptr inbounds %struct.jc_test_fixture, ptr %581, i32 0, i32 11
  %583 = load i32, ptr %582, align 8
  %584 = and i32 %583, -16776961
  %585 = or i32 %584, 1828352
  store i32 %585, ptr %582, align 8
  %586 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %587 = getelementptr inbounds %struct.jc_test_fixture, ptr %586, i32 0, i32 4
  store ptr @.str.3, ptr %587, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %588 = load ptr, ptr %18, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %588, i32 0, i32 4
  %590 = load ptr, ptr %589, align 8, !tbaa !15
  %591 = getelementptr inbounds i64, ptr %590, i64 2
  %592 = load ptr, ptr %37, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %592, i32 0, i32 4
  %594 = load ptr, ptr %593, align 8, !tbaa !15
  %595 = getelementptr inbounds i64, ptr %594, i64 1
  %596 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %591, ptr noundef nonnull align 8 dereferenceable(8) %595, ptr noundef @.str.846, ptr noundef @.str.858)
  %597 = icmp eq i32 %596, 0
  br i1 %597, label %598, label %599

598:                                              ; preds = %580
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %711

599:                                              ; preds = %580
  br label %600

600:                                              ; preds = %599
  br label %601

601:                                              ; preds = %600
  br label %602

602:                                              ; preds = %601
  %603 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %604 = getelementptr inbounds %struct.jc_test_fixture, ptr %603, i32 0, i32 11
  %605 = load i32, ptr %604, align 8
  %606 = and i32 %605, -16776961
  %607 = or i32 %606, 1828608
  store i32 %607, ptr %604, align 8
  %608 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %609 = getelementptr inbounds %struct.jc_test_fixture, ptr %608, i32 0, i32 4
  store ptr @.str.3, ptr %609, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %610 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 0
  %611 = load ptr, ptr %37, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %611, i32 0, i32 5
  %613 = load ptr, ptr %612, align 8, !tbaa !19
  %614 = getelementptr inbounds i64, ptr %613, i64 0
  %615 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %610, ptr noundef nonnull align 8 dereferenceable(8) %614, ptr noundef @.str.80, ptr noundef @.str.859)
  %616 = icmp eq i32 %615, 0
  br i1 %616, label %617, label %618

617:                                              ; preds = %602
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %711

618:                                              ; preds = %602
  br label %619

619:                                              ; preds = %618
  br label %620

620:                                              ; preds = %619
  br label %621

621:                                              ; preds = %620
  %622 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %623 = getelementptr inbounds %struct.jc_test_fixture, ptr %622, i32 0, i32 11
  %624 = load i32, ptr %623, align 8
  %625 = and i32 %624, -16776961
  %626 = or i32 %625, 1828864
  store i32 %626, ptr %623, align 8
  %627 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %628 = getelementptr inbounds %struct.jc_test_fixture, ptr %627, i32 0, i32 4
  store ptr @.str.3, ptr %628, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %629 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 1
  %630 = load ptr, ptr %37, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %630, i32 0, i32 5
  %632 = load ptr, ptr %631, align 8, !tbaa !19
  %633 = getelementptr inbounds i64, ptr %632, i64 1
  %634 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %629, ptr noundef nonnull align 8 dereferenceable(8) %633, ptr noundef @.str.82, ptr noundef @.str.860)
  %635 = icmp eq i32 %634, 0
  br i1 %635, label %636, label %637

636:                                              ; preds = %621
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %711

637:                                              ; preds = %621
  br label %638

638:                                              ; preds = %637
  br label %639

639:                                              ; preds = %638
  br label %640

640:                                              ; preds = %639
  %641 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %642 = getelementptr inbounds %struct.jc_test_fixture, ptr %641, i32 0, i32 11
  %643 = load i32, ptr %642, align 8
  %644 = and i32 %643, -16776961
  %645 = or i32 %644, 1829120
  store i32 %645, ptr %642, align 8
  %646 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %647 = getelementptr inbounds %struct.jc_test_fixture, ptr %646, i32 0, i32 4
  store ptr @.str.3, ptr %647, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %648 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 4
  %649 = load ptr, ptr %37, align 8, !tbaa !5
  %650 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %649, i32 0, i32 5
  %651 = load ptr, ptr %650, align 8, !tbaa !19
  %652 = getelementptr inbounds i64, ptr %651, i64 2
  %653 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %648, ptr noundef nonnull align 8 dereferenceable(8) %652, ptr noundef @.str.193, ptr noundef @.str.861)
  %654 = icmp eq i32 %653, 0
  br i1 %654, label %655, label %656

655:                                              ; preds = %640
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %711

656:                                              ; preds = %640
  br label %657

657:                                              ; preds = %656
  br label %658

658:                                              ; preds = %657
  br label %659

659:                                              ; preds = %658
  %660 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %661 = getelementptr inbounds %struct.jc_test_fixture, ptr %660, i32 0, i32 11
  %662 = load i32, ptr %661, align 8
  %663 = and i32 %662, -16776961
  %664 = or i32 %663, 1829376
  store i32 %664, ptr %661, align 8
  %665 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %666 = getelementptr inbounds %struct.jc_test_fixture, ptr %665, i32 0, i32 4
  store ptr @.str.3, ptr %666, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %667 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 5
  %668 = load ptr, ptr %37, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %668, i32 0, i32 5
  %670 = load ptr, ptr %669, align 8, !tbaa !19
  %671 = getelementptr inbounds i64, ptr %670, i64 3
  %672 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %667, ptr noundef nonnull align 8 dereferenceable(8) %671, ptr noundef @.str.849, ptr noundef @.str.862)
  %673 = icmp eq i32 %672, 0
  br i1 %673, label %674, label %675

674:                                              ; preds = %659
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %711

675:                                              ; preds = %659
  br label %676

676:                                              ; preds = %675
  br label %677

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %677
  %679 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %680 = getelementptr inbounds %struct.jc_test_fixture, ptr %679, i32 0, i32 11
  %681 = load i32, ptr %680, align 8
  %682 = and i32 %681, -16776961
  %683 = or i32 %682, 1829632
  store i32 %683, ptr %680, align 8
  %684 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %685 = getelementptr inbounds %struct.jc_test_fixture, ptr %684, i32 0, i32 4
  store ptr @.str.3, ptr %685, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %686 = getelementptr inbounds [7 x i64], ptr %6, i64 0, i64 6
  %687 = load ptr, ptr %37, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %687, i32 0, i32 5
  %689 = load ptr, ptr %688, align 8, !tbaa !19
  %690 = getelementptr inbounds i64, ptr %689, i64 4
  %691 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %686, ptr noundef nonnull align 8 dereferenceable(8) %690, ptr noundef @.str.851, ptr noundef @.str.863)
  %692 = icmp eq i32 %691, 0
  br i1 %692, label %693, label %694

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

694:                                              ; preds = %678
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  %697 = load ptr, ptr %37, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %697)
  %698 = load ptr, ptr %31, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %698)
  %699 = load ptr, ptr %26, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %699)
  %700 = load ptr, ptr %21, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %700)
  %701 = load ptr, ptr %18, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %701)
  %702 = load ptr, ptr %14, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %702)
  %703 = load ptr, ptr %11, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %703)
  %704 = load ptr, ptr %8, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %704)
  %705 = load ptr, ptr %3, align 8, !tbaa !5
  %706 = icmp ne ptr %705, null
  br i1 %706, label %707, label %710

707:                                              ; preds = %696
  %708 = load ptr, ptr %3, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %708, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %709)
  br label %710

710:                                              ; preds = %707, %696
  store i32 0, ptr %4, align 4
  br label %711

711:                                              ; preds = %710, %693, %674, %655, %636, %617, %598, %576, %554, %537, %520
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #5
  br label %712

712:                                              ; preds = %711, %494, %475, %456, %437, %415, %398, %381
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  br label %713

713:                                              ; preds = %712, %361, %342, %323, %301, %284, %267
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  br label %714

714:                                              ; preds = %713, %247, %228, %209, %187, %170, %153
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %715

715:                                              ; preds = %714, %133
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #5
  br label %716

716:                                              ; preds = %715, %112
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  br label %717

717:                                              ; preds = %716, %93
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  br label %718

718:                                              ; preds = %717, %74
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 28, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 28, ptr %5) #5
  br label %719

719:                                              ; preds = %718, %55
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #5
  %720 = load i32, ptr %4, align 4
  switch i32 %720, label %722 [
    i32 0, label %721
    i32 1, label %721
  ]

721:                                              ; preds = %719, %719
  ret void

722:                                              ; preds = %719
  unreachable
}

declare i32 @Longtail_PruneStoreIndex(ptr noundef, i32 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 = { nounwind }

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

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


; 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.78 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.491 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.496 = external hidden unnamed_addr constant [3 x i8], align 1
@__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_indexes = external hidden unnamed_addr constant [7 x i32], align 16
@__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_hashes = external hidden unnamed_addr constant [7 x i64], align 16
@__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_sizes = external hidden unnamed_addr constant [7 x i32], align 16
@.str.829 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.830 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.831 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.832 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.833 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.834 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.835 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.836 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.837 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.838 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.839 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.840 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.841 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.842 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.843 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.844 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.845 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.846 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.847 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.848 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.849 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.850 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.851 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.852 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.853 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.854 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.855 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.856 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.857 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.858 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.859 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.860 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.861 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.862 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.863 = external hidden unnamed_addr constant [46 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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 {
  %2 = alloca [7 x i32], align 16
  %3 = alloca [7 x i64], align 16
  %4 = alloca [7 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 ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca [3 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 i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %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 [2 x i64], align 16
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %40 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %41 = getelementptr inbounds i8, ptr %40, i64 96
  %42 = load i32, ptr %41, align 8
  %43 = and i32 %42, -16776961
  %44 = or disjoint i32 %43, 1805056
  store i32 %44, ptr %41, align 8
  %45 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %46 = getelementptr inbounds i8, ptr %45, i64 32
  store ptr @.str.3, ptr %46, align 8, !tbaa !5
  tail call void @_Z28jc_test_increment_assertionsv()
  %47 = tail call noundef i32 @_Z14jc_test_cmp_NEIP16Longtail_HashAPIS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %39, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.66)
  %48 = icmp eq i32 %47, 0
  br i1 %48, label %49, label %50

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

50:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 28, ptr nonnull %2) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %2, ptr noundef nonnull align 16 dereferenceable(28) @__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_indexes, i64 28, i1 false)
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %3) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(56) %3, ptr noundef nonnull align 16 dereferenceable(56) @__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_hashes, i64 56, i1 false)
  call void @llvm.lifetime.start.p0(i64 28, ptr nonnull %4) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %4, ptr noundef nonnull align 16 dereferenceable(28) @__const._ZN43Longtail_Longtail_PruneStoreIndex__TestCase8TestBodyEv.chunk_sizes, i64 28, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #5
  %51 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %52 = getelementptr inbounds i8, ptr %51, i64 96
  %53 = load i32, ptr %52, align 8
  %54 = and i32 %53, -16776961
  %55 = or disjoint i32 %54, 1808128
  store i32 %55, ptr %52, align 8
  %56 = tail call noundef ptr @_ZL19jc_test_get_fixturev()
  %57 = getelementptr inbounds i8, ptr %56, i64 32
  store ptr @.str.3, ptr %57, 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
  %58 = call i32 @Longtail_CreateBlockIndex(ptr noundef %39, i32 noundef 51542081, i32 noundef 2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5)
  store i32 %58, ptr %7, align 4, !tbaa !13
  %59 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.134, ptr noundef null)
  %60 = icmp eq i32 %59, 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 %60, label %61, label %62

61:                                               ; preds = %50
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %572

62:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  %63 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %64 = getelementptr inbounds i8, ptr %63, i64 96
  %65 = load i32, ptr %64, align 8
  %66 = and i32 %65, -16776961
  %67 = or disjoint i32 %66, 1810688
  store i32 %67, ptr %64, align 8
  %68 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %69 = getelementptr inbounds i8, ptr %68, i64 32
  store ptr @.str.3, ptr %69, 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
  %70 = getelementptr inbounds i8, ptr %2, i64 8
  %71 = call i32 @Longtail_CreateBlockIndex(ptr noundef %39, i32 noundef 51542081, i32 noundef 2, ptr noundef nonnull %70, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %8)
  store i32 %71, ptr %10, align 4, !tbaa !13
  %72 = 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.135, ptr noundef null)
  %73 = icmp eq i32 %72, 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 %73, label %74, label %75

74:                                               ; preds = %62
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %571

75:                                               ; preds = %62
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  %76 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %77 = getelementptr inbounds i8, ptr %76, i64 96
  %78 = load i32, ptr %77, align 8
  %79 = and i32 %78, -16776961
  %80 = or disjoint i32 %79, 1813248
  store i32 %80, ptr %77, align 8
  %81 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %82 = getelementptr inbounds i8, ptr %81, i64 32
  store ptr @.str.3, ptr %82, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #5
  store i32 0, ptr %12, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #5
  %83 = getelementptr inbounds i8, ptr %2, i64 16
  %84 = call i32 @Longtail_CreateBlockIndex(ptr noundef %39, i32 noundef 51542081, i32 noundef 3, ptr noundef nonnull %83, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %11)
  store i32 %84, ptr %13, align 4, !tbaa !13
  %85 = 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 nonnull @.str.46, ptr noundef nonnull @.str.829, ptr noundef null)
  %86 = icmp eq i32 %85, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #5
  br i1 %86, label %87, label %88

87:                                               ; preds = %75
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %570

88:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #5
  %89 = load ptr, ptr %5, align 8, !tbaa !14
  store ptr %89, ptr %14, align 16, !tbaa !14
  %90 = getelementptr inbounds i8, ptr %14, i64 8
  %91 = load ptr, ptr %8, align 8, !tbaa !14
  store ptr %91, ptr %90, align 8, !tbaa !14
  %92 = getelementptr inbounds i8, ptr %14, i64 16
  %93 = load ptr, ptr %11, align 8, !tbaa !14
  store ptr %93, ptr %92, align 16, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  %94 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %95 = getelementptr inbounds i8, ptr %94, i64 96
  %96 = load i32, ptr %95, align 8
  %97 = and i32 %96, -16776961
  %98 = or disjoint i32 %97, 1815296
  store i32 %98, ptr %95, align 8
  %99 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %100 = getelementptr inbounds i8, ptr %99, i64 32
  store ptr @.str.3, ptr %100, 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
  %101 = call i32 @Longtail_CreateStoreIndexFromBlocks(i32 noundef 3, ptr noundef nonnull %14, ptr noundef nonnull %15)
  store i32 %101, ptr %17, align 4, !tbaa !13
  %102 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.830, ptr noundef null)
  %103 = icmp eq i32 %102, 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 %103, label %104, label %105

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

105:                                              ; preds = %88
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  %106 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %107 = getelementptr inbounds i8, ptr %106, i64 96
  %108 = load i32, ptr %107, align 8
  %109 = and i32 %108, -16776961
  %110 = or disjoint i32 %109, 1817344
  store i32 %110, ptr %107, align 8
  %111 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %112 = getelementptr inbounds i8, ptr %111, i64 32
  store ptr @.str.3, ptr %112, 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
  %113 = load ptr, ptr %15, align 8, !tbaa !14
  %114 = getelementptr inbounds i8, ptr %113, i64 32
  %115 = load ptr, ptr %114, align 8, !tbaa !15
  %116 = call i32 @Longtail_PruneStoreIndex(ptr noundef %113, i32 noundef 1, ptr noundef %115, ptr noundef nonnull %18)
  store i32 %116, ptr %20, align 4, !tbaa !13
  %117 = 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.831, ptr noundef null)
  %118 = icmp eq i32 %117, 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 %118, label %119, label %120

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

120:                                              ; preds = %105
  %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, 1817600
  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()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  store i32 1, ptr %21, align 4, !tbaa !13
  %128 = load ptr, ptr %18, align 8, !tbaa !14
  %129 = getelementptr inbounds i8, ptr %128, i64 16
  %130 = load ptr, ptr %129, align 8, !tbaa !17
  %131 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %130, ptr noundef nonnull @.str.496, ptr noundef nonnull @.str.832)
  %132 = icmp eq i32 %131, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  br i1 %132, label %133, label %134

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

134:                                              ; preds = %120
  %135 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %136 = getelementptr inbounds i8, ptr %135, i64 96
  %137 = load i32, ptr %136, align 8
  %138 = and i32 %137, -16776961
  %139 = or disjoint i32 %138, 1817856
  store i32 %139, ptr %136, align 8
  %140 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %141 = getelementptr inbounds i8, ptr %140, i64 32
  store ptr @.str.3, ptr %141, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  store i32 2, ptr %22, align 4, !tbaa !13
  %142 = load ptr, ptr %18, align 8, !tbaa !14
  %143 = getelementptr inbounds i8, ptr %142, i64 24
  %144 = load ptr, ptr %143, align 8, !tbaa !18
  %145 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %144, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.833)
  %146 = icmp eq i32 %145, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  br i1 %146, label %147, label %148

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

148:                                              ; preds = %134
  %149 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %150 = getelementptr inbounds i8, ptr %149, i64 96
  %151 = load i32, ptr %150, align 8
  %152 = and i32 %151, -16776961
  %153 = or disjoint i32 %152, 1818112
  store i32 %153, ptr %150, align 8
  %154 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %155 = getelementptr inbounds i8, ptr %154, i64 32
  store ptr @.str.3, ptr %155, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %156 = load ptr, ptr %15, align 8, !tbaa !14
  %157 = getelementptr inbounds i8, ptr %156, i64 32
  %158 = load ptr, ptr %157, align 8, !tbaa !15
  %159 = load ptr, ptr %18, align 8, !tbaa !14
  %160 = getelementptr inbounds i8, ptr %159, i64 32
  %161 = load ptr, ptr %160, align 8, !tbaa !15
  %162 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef nonnull align 8 dereferenceable(8) %161, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.834)
  %163 = icmp eq i32 %162, 0
  br i1 %163, label %164, label %165

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

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

178:                                              ; preds = %165
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %568

179:                                              ; preds = %165
  %180 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %181 = getelementptr inbounds i8, ptr %180, i64 96
  %182 = load i32, ptr %181, align 8
  %183 = and i32 %182, -16776961
  %184 = or disjoint i32 %183, 1818624
  store i32 %184, ptr %181, align 8
  %185 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %186 = getelementptr inbounds i8, ptr %185, i64 32
  store ptr @.str.3, ptr %186, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %187 = getelementptr inbounds i8, ptr %3, i64 8
  %188 = load ptr, ptr %18, align 8, !tbaa !14
  %189 = getelementptr inbounds i8, ptr %188, i64 40
  %190 = load ptr, ptr %189, align 8, !tbaa !19
  %191 = getelementptr inbounds i8, ptr %190, i64 8
  %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 nonnull @.str.82, ptr noundef nonnull @.str.836)
  %193 = icmp eq i32 %192, 0
  br i1 %193, label %194, label %195

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

195:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #5
  %196 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %197 = getelementptr inbounds i8, ptr %196, i64 96
  %198 = load i32, ptr %197, align 8
  %199 = and i32 %198, -16776961
  %200 = or disjoint i32 %199, 1820416
  store i32 %200, ptr %197, align 8
  %201 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %202 = getelementptr inbounds i8, ptr %201, i64 32
  store ptr @.str.3, ptr %202, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  store i32 0, ptr %24, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  %203 = load ptr, ptr %15, align 8, !tbaa !14
  %204 = getelementptr inbounds i8, ptr %203, i64 32
  %205 = load ptr, ptr %204, align 8, !tbaa !15
  %206 = getelementptr inbounds i8, ptr %205, i64 8
  %207 = call i32 @Longtail_PruneStoreIndex(ptr noundef %203, i32 noundef 1, ptr noundef nonnull %206, ptr noundef nonnull %23)
  store i32 %207, ptr %25, align 4, !tbaa !13
  %208 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.837, ptr noundef null)
  %209 = icmp eq i32 %208, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  br i1 %209, label %210, label %211

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

211:                                              ; preds = %195
  %212 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %213 = getelementptr inbounds i8, ptr %212, i64 96
  %214 = load i32, ptr %213, align 8
  %215 = and i32 %214, -16776961
  %216 = or disjoint i32 %215, 1820672
  store i32 %216, ptr %213, align 8
  %217 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %218 = getelementptr inbounds i8, ptr %217, i64 32
  store ptr @.str.3, ptr %218, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #5
  store i32 1, ptr %26, align 4, !tbaa !13
  %219 = load ptr, ptr %23, align 8, !tbaa !14
  %220 = getelementptr inbounds i8, ptr %219, i64 16
  %221 = load ptr, ptr %220, align 8, !tbaa !17
  %222 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 4 dereferenceable(4) %221, ptr noundef nonnull @.str.496, ptr noundef nonnull @.str.838)
  %223 = icmp eq i32 %222, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  br i1 %223, label %224, label %225

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

225:                                              ; preds = %211
  %226 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %227 = getelementptr inbounds i8, ptr %226, i64 96
  %228 = load i32, ptr %227, align 8
  %229 = and i32 %228, -16776961
  %230 = or disjoint i32 %229, 1820928
  store i32 %230, ptr %227, align 8
  %231 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %232 = getelementptr inbounds i8, ptr %231, i64 32
  store ptr @.str.3, ptr %232, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  store i32 2, ptr %27, align 4, !tbaa !13
  %233 = load ptr, ptr %23, align 8, !tbaa !14
  %234 = getelementptr inbounds i8, ptr %233, i64 24
  %235 = load ptr, ptr %234, align 8, !tbaa !18
  %236 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %235, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.839)
  %237 = icmp eq i32 %236, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  br i1 %237, label %238, label %239

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

239:                                              ; preds = %225
  %240 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %241 = getelementptr inbounds i8, ptr %240, i64 96
  %242 = load i32, ptr %241, align 8
  %243 = and i32 %242, -16776961
  %244 = or disjoint i32 %243, 1821184
  store i32 %244, ptr %241, align 8
  %245 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %246 = getelementptr inbounds i8, ptr %245, i64 32
  store ptr @.str.3, ptr %246, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %247 = load ptr, ptr %15, align 8, !tbaa !14
  %248 = getelementptr inbounds i8, ptr %247, i64 32
  %249 = load ptr, ptr %248, align 8, !tbaa !15
  %250 = getelementptr inbounds i8, ptr %249, i64 8
  %251 = load ptr, ptr %23, align 8, !tbaa !14
  %252 = getelementptr inbounds i8, ptr %251, i64 32
  %253 = load ptr, ptr %252, align 8, !tbaa !15
  %254 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef nonnull align 8 dereferenceable(8) %253, ptr noundef nonnull @.str.149, ptr noundef nonnull @.str.840)
  %255 = icmp eq i32 %254, 0
  br i1 %255, label %256, label %257

256:                                              ; preds = %239
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %567

257:                                              ; preds = %239
  %258 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %259 = getelementptr inbounds i8, ptr %258, i64 96
  %260 = load i32, ptr %259, align 8
  %261 = and i32 %260, -16776961
  %262 = or disjoint i32 %261, 1821440
  store i32 %262, ptr %259, align 8
  %263 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %264 = getelementptr inbounds i8, ptr %263, i64 32
  store ptr @.str.3, ptr %264, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %265 = getelementptr inbounds i8, ptr %3, i64 16
  %266 = load ptr, ptr %23, align 8, !tbaa !14
  %267 = getelementptr inbounds i8, ptr %266, i64 40
  %268 = load ptr, ptr %267, align 8, !tbaa !19
  %269 = 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) %268, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.841)
  %270 = icmp eq i32 %269, 0
  br i1 %270, label %271, label %272

271:                                              ; preds = %257
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %567

272:                                              ; preds = %257
  %273 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %274 = getelementptr inbounds i8, ptr %273, i64 96
  %275 = load i32, ptr %274, align 8
  %276 = and i32 %275, -16776961
  %277 = or disjoint i32 %276, 1821696
  store i32 %277, ptr %274, align 8
  %278 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %279 = getelementptr inbounds i8, ptr %278, i64 32
  store ptr @.str.3, ptr %279, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %280 = getelementptr inbounds i8, ptr %3, i64 24
  %281 = load ptr, ptr %23, align 8, !tbaa !14
  %282 = getelementptr inbounds i8, ptr %281, i64 40
  %283 = load ptr, ptr %282, align 8, !tbaa !19
  %284 = getelementptr inbounds i8, ptr %283, i64 8
  %285 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull @.str.158, ptr noundef nonnull @.str.842)
  %286 = icmp eq i32 %285, 0
  br i1 %286, label %287, label %288

287:                                              ; preds = %272
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %567

288:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  %289 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %290 = getelementptr inbounds i8, ptr %289, i64 96
  %291 = load i32, ptr %290, align 8
  %292 = and i32 %291, -16776961
  %293 = or disjoint i32 %292, 1823488
  store i32 %293, ptr %290, align 8
  %294 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %295 = getelementptr inbounds i8, ptr %294, i64 32
  store ptr @.str.3, ptr %295, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  store i32 0, ptr %29, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #5
  %296 = load ptr, ptr %15, align 8, !tbaa !14
  %297 = getelementptr inbounds i8, ptr %296, i64 32
  %298 = load ptr, ptr %297, align 8, !tbaa !15
  %299 = getelementptr inbounds i8, ptr %298, i64 16
  %300 = call i32 @Longtail_PruneStoreIndex(ptr noundef %296, i32 noundef 1, ptr noundef nonnull %299, ptr noundef nonnull %28)
  store i32 %300, ptr %30, align 4, !tbaa !13
  %301 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.843, ptr noundef null)
  %302 = icmp eq i32 %301, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  br i1 %302, label %303, label %304

303:                                              ; preds = %288
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %566

304:                                              ; preds = %288
  %305 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %306 = getelementptr inbounds i8, ptr %305, i64 96
  %307 = load i32, ptr %306, align 8
  %308 = and i32 %307, -16776961
  %309 = or disjoint i32 %308, 1823744
  store i32 %309, ptr %306, align 8
  %310 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %311 = getelementptr inbounds i8, ptr %310, i64 32
  store ptr @.str.3, ptr %311, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #5
  store i32 1, ptr %31, align 4, !tbaa !13
  %312 = load ptr, ptr %28, align 8, !tbaa !14
  %313 = getelementptr inbounds i8, ptr %312, i64 16
  %314 = load ptr, ptr %313, align 8, !tbaa !17
  %315 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 4 dereferenceable(4) %314, ptr noundef nonnull @.str.496, ptr noundef nonnull @.str.844)
  %316 = icmp eq i32 %315, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  br i1 %316, label %317, label %318

317:                                              ; preds = %304
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %566

318:                                              ; preds = %304
  %319 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %320 = getelementptr inbounds i8, ptr %319, i64 96
  %321 = load i32, ptr %320, align 8
  %322 = and i32 %321, -16776961
  %323 = or disjoint i32 %322, 1824000
  store i32 %323, ptr %320, align 8
  %324 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %325 = getelementptr inbounds i8, ptr %324, i64 32
  store ptr @.str.3, ptr %325, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #5
  store i32 3, ptr %32, align 4, !tbaa !13
  %326 = load ptr, ptr %28, align 8, !tbaa !14
  %327 = getelementptr inbounds i8, ptr %326, i64 24
  %328 = load ptr, ptr %327, align 8, !tbaa !18
  %329 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %328, ptr noundef nonnull @.str.491, ptr noundef nonnull @.str.845)
  %330 = icmp eq i32 %329, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  br i1 %330, label %331, label %332

331:                                              ; preds = %318
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %566

332:                                              ; preds = %318
  %333 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %334 = getelementptr inbounds i8, ptr %333, i64 96
  %335 = load i32, ptr %334, align 8
  %336 = and i32 %335, -16776961
  %337 = or disjoint i32 %336, 1824256
  store i32 %337, ptr %334, align 8
  %338 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %339 = getelementptr inbounds i8, ptr %338, i64 32
  store ptr @.str.3, ptr %339, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %340 = load ptr, ptr %15, align 8, !tbaa !14
  %341 = getelementptr inbounds i8, ptr %340, i64 32
  %342 = load ptr, ptr %341, align 8, !tbaa !15
  %343 = getelementptr inbounds i8, ptr %342, i64 16
  %344 = load ptr, ptr %28, align 8, !tbaa !14
  %345 = getelementptr inbounds i8, ptr %344, i64 32
  %346 = load ptr, ptr %345, align 8, !tbaa !15
  %347 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %343, ptr noundef nonnull align 8 dereferenceable(8) %346, ptr noundef nonnull @.str.846, ptr noundef nonnull @.str.847)
  %348 = icmp eq i32 %347, 0
  br i1 %348, label %349, label %350

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

350:                                              ; preds = %332
  %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, 1824512
  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 %3, i64 32
  %359 = load ptr, ptr %28, align 8, !tbaa !14
  %360 = getelementptr inbounds i8, ptr %359, i64 40
  %361 = load ptr, ptr %360, align 8, !tbaa !19
  %362 = 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) %361, ptr noundef nonnull @.str.193, ptr noundef nonnull @.str.848)
  %363 = icmp eq i32 %362, 0
  br i1 %363, label %364, label %365

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

365:                                              ; preds = %350
  %366 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %367 = getelementptr inbounds i8, ptr %366, i64 96
  %368 = load i32, ptr %367, align 8
  %369 = and i32 %368, -16776961
  %370 = or disjoint i32 %369, 1824768
  store i32 %370, ptr %367, align 8
  %371 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %372 = getelementptr inbounds i8, ptr %371, i64 32
  store ptr @.str.3, ptr %372, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %373 = getelementptr inbounds i8, ptr %3, i64 40
  %374 = load ptr, ptr %28, align 8, !tbaa !14
  %375 = getelementptr inbounds i8, ptr %374, i64 40
  %376 = load ptr, ptr %375, align 8, !tbaa !19
  %377 = getelementptr inbounds i8, ptr %376, i64 8
  %378 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(8) %377, ptr noundef nonnull @.str.849, ptr noundef nonnull @.str.850)
  %379 = icmp eq i32 %378, 0
  br i1 %379, label %380, label %381

380:                                              ; preds = %365
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %566

381:                                              ; preds = %365
  %382 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %383 = getelementptr inbounds i8, ptr %382, i64 96
  %384 = load i32, ptr %383, align 8
  %385 = and i32 %384, -16776961
  %386 = or disjoint i32 %385, 1825024
  store i32 %386, ptr %383, align 8
  %387 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %388 = getelementptr inbounds i8, ptr %387, i64 32
  store ptr @.str.3, ptr %388, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %389 = getelementptr inbounds i8, ptr %3, i64 48
  %390 = load ptr, ptr %28, align 8, !tbaa !14
  %391 = getelementptr inbounds i8, ptr %390, i64 40
  %392 = load ptr, ptr %391, align 8, !tbaa !19
  %393 = getelementptr inbounds i8, ptr %392, i64 16
  %394 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %389, ptr noundef nonnull align 8 dereferenceable(8) %393, ptr noundef nonnull @.str.851, ptr noundef nonnull @.str.852)
  %395 = icmp eq i32 %394, 0
  br i1 %395, label %396, label %397

396:                                              ; preds = %381
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %566

397:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #5
  %398 = load ptr, ptr %5, align 8, !tbaa !14
  %399 = load ptr, ptr %398, align 8, !tbaa !20
  %400 = load i64, ptr %399, align 8, !tbaa !22
  store i64 %400, ptr %33, align 16, !tbaa !22
  %401 = getelementptr inbounds i8, ptr %33, i64 8
  %402 = load ptr, ptr %11, align 8, !tbaa !14
  %403 = load ptr, ptr %402, align 8, !tbaa !20
  %404 = load i64, ptr %403, align 8, !tbaa !22
  store i64 %404, ptr %401, align 8, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  %405 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %406 = getelementptr inbounds i8, ptr %405, i64 96
  %407 = load i32, ptr %406, align 8
  %408 = and i32 %407, -16776961
  %409 = or disjoint i32 %408, 1827328
  store i32 %409, ptr %406, align 8
  %410 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %411 = getelementptr inbounds i8, ptr %410, i64 32
  store ptr @.str.3, ptr %411, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #5
  store i32 0, ptr %35, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  %412 = load ptr, ptr %15, align 8, !tbaa !14
  %413 = call i32 @Longtail_PruneStoreIndex(ptr noundef %412, i32 noundef 2, ptr noundef nonnull %33, ptr noundef nonnull %34)
  store i32 %413, ptr %36, align 4, !tbaa !13
  %414 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.853, ptr noundef null)
  %415 = icmp eq i32 %414, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  br i1 %415, label %416, label %417

416:                                              ; preds = %397
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %565

417:                                              ; preds = %397
  %418 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %419 = getelementptr inbounds i8, ptr %418, i64 96
  %420 = load i32, ptr %419, align 8
  %421 = and i32 %420, -16776961
  %422 = or disjoint i32 %421, 1827584
  store i32 %422, ptr %419, align 8
  %423 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %424 = getelementptr inbounds i8, ptr %423, i64 32
  store ptr @.str.3, ptr %424, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #5
  store i32 2, ptr %37, align 4, !tbaa !13
  %425 = load ptr, ptr %34, align 8, !tbaa !14
  %426 = getelementptr inbounds i8, ptr %425, i64 16
  %427 = load ptr, ptr %426, align 8, !tbaa !17
  %428 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %427, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.854)
  %429 = icmp eq i32 %428, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  br i1 %429, label %430, label %431

430:                                              ; preds = %417
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %565

431:                                              ; preds = %417
  %432 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %433 = getelementptr inbounds i8, ptr %432, i64 96
  %434 = load i32, ptr %433, align 8
  %435 = and i32 %434, -16776961
  %436 = or disjoint i32 %435, 1827840
  store i32 %436, ptr %433, align 8
  %437 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %438 = getelementptr inbounds i8, ptr %437, i64 32
  store ptr @.str.3, ptr %438, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #5
  store i32 5, ptr %38, align 4, !tbaa !13
  %439 = load ptr, ptr %34, align 8, !tbaa !14
  %440 = getelementptr inbounds i8, ptr %439, i64 24
  %441 = load ptr, ptr %440, align 8, !tbaa !18
  %442 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %441, ptr noundef nonnull @.str.855, ptr noundef nonnull @.str.856)
  %443 = icmp eq i32 %442, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #5
  br i1 %443, label %444, label %445

444:                                              ; preds = %431
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %565

445:                                              ; preds = %431
  %446 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %447 = getelementptr inbounds i8, ptr %446, i64 96
  %448 = load i32, ptr %447, align 8
  %449 = and i32 %448, -16776961
  %450 = or disjoint i32 %449, 1828096
  store i32 %450, ptr %447, align 8
  %451 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %452 = getelementptr inbounds i8, ptr %451, i64 32
  store ptr @.str.3, ptr %452, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %453 = load ptr, ptr %15, align 8, !tbaa !14
  %454 = getelementptr inbounds i8, ptr %453, i64 32
  %455 = load ptr, ptr %454, align 8, !tbaa !15
  %456 = load ptr, ptr %34, align 8, !tbaa !14
  %457 = getelementptr inbounds i8, ptr %456, i64 32
  %458 = load ptr, ptr %457, align 8, !tbaa !15
  %459 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %455, ptr noundef nonnull align 8 dereferenceable(8) %458, ptr noundef nonnull @.str.143, ptr noundef nonnull @.str.857)
  %460 = icmp eq i32 %459, 0
  br i1 %460, label %461, label %462

461:                                              ; preds = %445
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %565

462:                                              ; preds = %445
  %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, 1828352
  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 = load ptr, ptr %15, align 8, !tbaa !14
  %471 = getelementptr inbounds i8, ptr %470, i64 32
  %472 = load ptr, ptr %471, align 8, !tbaa !15
  %473 = getelementptr inbounds i8, ptr %472, i64 16
  %474 = load ptr, ptr %34, align 8, !tbaa !14
  %475 = getelementptr inbounds i8, ptr %474, i64 32
  %476 = load ptr, ptr %475, align 8, !tbaa !15
  %477 = getelementptr inbounds i8, ptr %476, i64 8
  %478 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %473, ptr noundef nonnull align 8 dereferenceable(8) %477, ptr noundef nonnull @.str.846, ptr noundef nonnull @.str.858)
  %479 = icmp eq i32 %478, 0
  br i1 %479, label %480, label %481

480:                                              ; preds = %462
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %565

481:                                              ; preds = %462
  %482 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %483 = getelementptr inbounds i8, ptr %482, i64 96
  %484 = load i32, ptr %483, align 8
  %485 = and i32 %484, -16776961
  %486 = or disjoint i32 %485, 1828608
  store i32 %486, ptr %483, align 8
  %487 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %488 = getelementptr inbounds i8, ptr %487, i64 32
  store ptr @.str.3, ptr %488, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %489 = load ptr, ptr %34, align 8, !tbaa !14
  %490 = getelementptr inbounds i8, ptr %489, i64 40
  %491 = load ptr, ptr %490, align 8, !tbaa !19
  %492 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %491, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.859)
  %493 = icmp eq i32 %492, 0
  br i1 %493, label %494, label %495

494:                                              ; preds = %481
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %565

495:                                              ; preds = %481
  %496 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %497 = getelementptr inbounds i8, ptr %496, i64 96
  %498 = load i32, ptr %497, align 8
  %499 = and i32 %498, -16776961
  %500 = or disjoint i32 %499, 1828864
  store i32 %500, ptr %497, align 8
  %501 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %502 = getelementptr inbounds i8, ptr %501, i64 32
  store ptr @.str.3, ptr %502, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %503 = load ptr, ptr %34, align 8, !tbaa !14
  %504 = getelementptr inbounds i8, ptr %503, i64 40
  %505 = load ptr, ptr %504, align 8, !tbaa !19
  %506 = getelementptr inbounds i8, ptr %505, i64 8
  %507 = 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) %506, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.860)
  %508 = icmp eq i32 %507, 0
  br i1 %508, label %509, label %510

509:                                              ; preds = %495
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %565

510:                                              ; preds = %495
  %511 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %512 = getelementptr inbounds i8, ptr %511, i64 96
  %513 = load i32, ptr %512, align 8
  %514 = and i32 %513, -16776961
  %515 = or disjoint i32 %514, 1829120
  store i32 %515, ptr %512, align 8
  %516 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %517 = getelementptr inbounds i8, ptr %516, i64 32
  store ptr @.str.3, ptr %517, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %518 = load ptr, ptr %34, align 8, !tbaa !14
  %519 = getelementptr inbounds i8, ptr %518, i64 40
  %520 = load ptr, ptr %519, align 8, !tbaa !19
  %521 = getelementptr inbounds i8, ptr %520, i64 16
  %522 = 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) %521, ptr noundef nonnull @.str.193, ptr noundef nonnull @.str.861)
  %523 = icmp eq i32 %522, 0
  br i1 %523, label %524, label %525

524:                                              ; preds = %510
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %565

525:                                              ; preds = %510
  %526 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %527 = getelementptr inbounds i8, ptr %526, i64 96
  %528 = load i32, ptr %527, align 8
  %529 = and i32 %528, -16776961
  %530 = or disjoint i32 %529, 1829376
  store i32 %530, ptr %527, align 8
  %531 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %532 = getelementptr inbounds i8, ptr %531, i64 32
  store ptr @.str.3, ptr %532, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %533 = load ptr, ptr %34, align 8, !tbaa !14
  %534 = getelementptr inbounds i8, ptr %533, i64 40
  %535 = load ptr, ptr %534, align 8, !tbaa !19
  %536 = getelementptr inbounds i8, ptr %535, i64 24
  %537 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull align 8 dereferenceable(8) %536, ptr noundef nonnull @.str.849, ptr noundef nonnull @.str.862)
  %538 = icmp eq i32 %537, 0
  br i1 %538, label %539, label %540

539:                                              ; preds = %525
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %565

540:                                              ; preds = %525
  %541 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %542 = getelementptr inbounds i8, ptr %541, i64 96
  %543 = load i32, ptr %542, align 8
  %544 = and i32 %543, -16776961
  %545 = or disjoint i32 %544, 1829632
  store i32 %545, ptr %542, align 8
  %546 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %547 = getelementptr inbounds i8, ptr %546, i64 32
  store ptr @.str.3, ptr %547, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %548 = load ptr, ptr %34, align 8, !tbaa !14
  %549 = getelementptr inbounds i8, ptr %548, i64 40
  %550 = load ptr, ptr %549, align 8, !tbaa !19
  %551 = getelementptr inbounds i8, ptr %550, i64 32
  %552 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %389, ptr noundef nonnull align 8 dereferenceable(8) %551, ptr noundef nonnull @.str.851, ptr noundef nonnull @.str.863)
  %553 = icmp eq i32 %552, 0
  br i1 %553, label %554, label %555

554:                                              ; preds = %540
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %565

555:                                              ; preds = %540
  %556 = load ptr, ptr %34, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %556)
  %557 = load ptr, ptr %28, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %557)
  %558 = load ptr, ptr %23, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %558)
  %559 = load ptr, ptr %18, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %559)
  %560 = load ptr, ptr %15, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %560)
  %561 = load ptr, ptr %11, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %561)
  %562 = load ptr, ptr %8, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %562)
  %563 = load ptr, ptr %5, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %563)
  %.not = icmp eq ptr %39, null
  br i1 %.not, label %565, label %564

564:                                              ; preds = %555
  call void @Longtail_DisposeAPI(ptr noundef nonnull %39)
  br label %565

565:                                              ; preds = %555, %564, %554, %539, %524, %509, %494, %480, %461, %444, %430, %416
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #5
  br label %566

566:                                              ; preds = %565, %396, %380, %364, %349, %331, %317, %303
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  br label %567

567:                                              ; preds = %566, %287, %271, %256, %238, %224, %210
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  br label %568

568:                                              ; preds = %567, %194, %178, %164, %147, %133, %119
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  br label %569

569:                                              ; preds = %568, %104
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #5
  br label %570

570:                                              ; preds = %569, %87
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  br label %571

571:                                              ; preds = %570, %74
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  br label %572

572:                                              ; preds = %571, %61
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %2) #5
  br label %573

573:                                              ; preds = %572, %49
  ret void
}

declare i32 @Longtail_PruneStoreIndex(ptr noundef, i32 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 32}
!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 = !{!16, !7, i64 16}
!18 = !{!16, !7, i64 24}
!19 = !{!16, !7, i64 40}
!20 = !{!21, !7, i64 0}
!21 = !{!"_ZTS19Longtail_BlockIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!22 = !{!12, !12, i64 0}


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