; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN54Longtail_Longtail_CreateStoreIndexFromBlocks (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.Longtail_BlockIndex = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.jc_test_fixture = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.jc_test_stats, i32, i32, i32, i32 }
%struct.jc_test_stats = type { i32, i32, i32, i32, i64 }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_API = type { ptr }
%struct.Longtail_StoreIndex = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [34 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
@__const._ZN54Longtail_Longtail_CreateStoreIndexFromBlocks__TestCase8TestBodyEv.chunk_indexes = external hidden unnamed_addr constant [4 x i32], align 16
@__const._ZN54Longtail_Longtail_CreateStoreIndexFromBlocks__TestCase8TestBodyEv.chunk_hashes = external hidden unnamed_addr constant [4 x i64], align 16
@__const._ZN54Longtail_Longtail_CreateStoreIndexFromBlocks__TestCase8TestBodyEv.chunk_sizes = external hidden unnamed_addr constant [4 x i32], align 16
@.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.136 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [43 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

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

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

45:                                               ; preds = %34
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %671

46:                                               ; preds = %34
  br label %47

47:                                               ; preds = %46
  br label %48

48:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 16, ptr %5) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %5, ptr align 16 @__const._ZN54Longtail_Longtail_CreateStoreIndexFromBlocks__TestCase8TestBodyEv.chunk_indexes, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %6, ptr align 16 @__const._ZN54Longtail_Longtail_CreateStoreIndexFromBlocks__TestCase8TestBodyEv.chunk_hashes, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %7) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const._ZN54Longtail_Longtail_CreateStoreIndexFromBlocks__TestCase8TestBodyEv.chunk_sizes, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #5
  br label %49

49:                                               ; preds = %48
  %50 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %51 = getelementptr inbounds %struct.jc_test_fixture, ptr %50, i32 0, i32 11
  %52 = load i32, ptr %51, align 8
  %53 = and i32 %52, -16776961
  %54 = or i32 %53, 181248
  store i32 %54, ptr %51, align 8
  %55 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %56 = getelementptr inbounds %struct.jc_test_fixture, ptr %55, i32 0, i32 4
  store ptr @.str.3, ptr %56, 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
  %57 = load ptr, ptr %3, align 8, !tbaa !5
  %58 = getelementptr inbounds [4 x i32], ptr %5, i64 0, i64 0
  %59 = getelementptr inbounds [4 x i64], ptr %6, i64 0, i64 0
  %60 = getelementptr inbounds [4 x i32], ptr %7, i64 0, i64 0
  %61 = call i32 @Longtail_CreateBlockIndex(ptr noundef %57, i32 noundef 51542081, i32 noundef 2, ptr noundef %58, ptr noundef %59, ptr noundef %60, ptr noundef %8)
  store i32 %61, ptr %10, align 4, !tbaa !14
  %62 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef @.str.46, ptr noundef @.str.134, ptr noundef null)
  %63 = icmp eq i32 %62, 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 %63, label %64, label %65

64:                                               ; preds = %49
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %670

65:                                               ; preds = %49
  br label %66

66:                                               ; preds = %65
  br label %67

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

68:                                               ; preds = %67
  %69 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %70 = getelementptr inbounds %struct.jc_test_fixture, ptr %69, i32 0, i32 11
  %71 = load i32, ptr %70, align 8
  %72 = and i32 %71, -16776961
  %73 = or i32 %72, 183808
  store i32 %73, ptr %70, align 8
  %74 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %75 = getelementptr inbounds %struct.jc_test_fixture, ptr %74, i32 0, i32 4
  store ptr @.str.3, ptr %75, 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
  %76 = load ptr, ptr %3, align 8, !tbaa !5
  %77 = getelementptr inbounds [4 x i32], ptr %5, i64 0, i64 2
  %78 = getelementptr inbounds [4 x i64], ptr %6, i64 0, i64 0
  %79 = getelementptr inbounds [4 x i32], ptr %7, i64 0, i64 0
  %80 = call i32 @Longtail_CreateBlockIndex(ptr noundef %76, i32 noundef 51542081, i32 noundef 2, ptr noundef %77, ptr noundef %78, ptr noundef %79, ptr noundef %11)
  store i32 %80, ptr %13, align 4, !tbaa !14
  %81 = 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)
  %82 = icmp eq i32 %81, 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 %82, label %83, label %84

83:                                               ; preds = %68
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %669

84:                                               ; preds = %68
  br label %85

85:                                               ; preds = %84
  br label %86

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

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

102:                                              ; preds = %90
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

103:                                              ; preds = %90
  br label %104

104:                                              ; preds = %103
  br label %105

105:                                              ; preds = %104
  br label %106

106:                                              ; preds = %105
  %107 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %108 = getelementptr inbounds %struct.jc_test_fixture, ptr %107, i32 0, i32 11
  %109 = load i32, ptr %108, align 8
  %110 = and i32 %109, -16776961
  %111 = or i32 %110, 186368
  store i32 %111, ptr %108, align 8
  %112 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %113 = getelementptr inbounds %struct.jc_test_fixture, ptr %112, i32 0, i32 4
  store ptr @.str.3, ptr %113, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #5
  %114 = load ptr, ptr %3, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %114, i32 0, i32 1
  %116 = load ptr, ptr %115, align 8, !tbaa !15
  %117 = load ptr, ptr %3, align 8, !tbaa !5
  %118 = call noundef i32 %116(ptr noundef %117)
  store i32 %118, ptr %18, align 4, !tbaa !14
  %119 = load ptr, ptr %15, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %119, i32 0, i32 1
  %121 = load ptr, ptr %120, align 8, !tbaa !18
  %122 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(4) %121, ptr noundef @.str.76, ptr noundef @.str.137)
  %123 = icmp eq i32 %122, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #5
  br i1 %123, label %124, label %125

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

125:                                              ; preds = %106
  br label %126

126:                                              ; preds = %125
  br label %127

127:                                              ; preds = %126
  br label %128

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

141:                                              ; preds = %128
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

142:                                              ; preds = %128
  br label %143

143:                                              ; preds = %142
  br label %144

144:                                              ; preds = %143
  br label %145

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

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

159:                                              ; preds = %145
  br label %160

160:                                              ; preds = %159
  br label %161

161:                                              ; preds = %160
  br label %162

162:                                              ; preds = %161
  %163 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %164 = getelementptr inbounds %struct.jc_test_fixture, ptr %163, i32 0, i32 11
  %165 = load i32, ptr %164, align 8
  %166 = and i32 %165, -16776961
  %167 = or i32 %166, 187136
  store i32 %167, ptr %164, align 8
  %168 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %169 = getelementptr inbounds %struct.jc_test_fixture, ptr %168, i32 0, i32 4
  store ptr @.str.3, ptr %169, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %170 = load ptr, ptr %8, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %170, i32 0, i32 0
  %172 = load ptr, ptr %171, align 8, !tbaa !22
  %173 = load ptr, ptr %15, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %173, i32 0, i32 4
  %175 = load ptr, ptr %174, align 8, !tbaa !24
  %176 = getelementptr inbounds i64, ptr %175, i64 0
  %177 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef @.str.142, ptr noundef @.str.143)
  %178 = icmp eq i32 %177, 0
  br i1 %178, label %179, label %180

179:                                              ; preds = %162
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

180:                                              ; preds = %162
  br label %181

181:                                              ; preds = %180
  br label %182

182:                                              ; preds = %181
  br label %183

183:                                              ; preds = %182
  %184 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %185 = getelementptr inbounds %struct.jc_test_fixture, ptr %184, i32 0, i32 11
  %186 = load i32, ptr %185, align 8
  %187 = and i32 %186, -16776961
  %188 = or i32 %187, 187392
  store i32 %188, ptr %185, align 8
  %189 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %190 = getelementptr inbounds %struct.jc_test_fixture, ptr %189, i32 0, i32 4
  store ptr @.str.3, ptr %190, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %191 = load ptr, ptr %8, align 8, !tbaa !5
  %192 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %191, i32 0, i32 3
  %193 = load ptr, ptr %192, align 8, !tbaa !25
  %194 = load ptr, ptr %15, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %194, i32 0, i32 8
  %196 = load ptr, ptr %195, align 8, !tbaa !26
  %197 = getelementptr inbounds i32, ptr %196, i64 0
  %198 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %193, ptr noundef nonnull align 4 dereferenceable(4) %197, ptr noundef @.str.144, ptr noundef @.str.145)
  %199 = icmp eq i32 %198, 0
  br i1 %199, label %200, label %201

200:                                              ; preds = %183
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

201:                                              ; preds = %183
  br label %202

202:                                              ; preds = %201
  br label %203

203:                                              ; preds = %202
  br label %204

204:                                              ; preds = %203
  %205 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %206 = getelementptr inbounds %struct.jc_test_fixture, ptr %205, i32 0, i32 11
  %207 = load i32, ptr %206, align 8
  %208 = and i32 %207, -16776961
  %209 = or i32 %208, 187648
  store i32 %209, ptr %206, align 8
  %210 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %211 = getelementptr inbounds %struct.jc_test_fixture, ptr %210, i32 0, i32 4
  store ptr @.str.3, ptr %211, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  store i32 0, ptr %21, align 4, !tbaa !14
  %212 = load ptr, ptr %15, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %212, i32 0, i32 6
  %214 = load ptr, ptr %213, align 8, !tbaa !27
  %215 = getelementptr inbounds i32, ptr %214, i64 0
  %216 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIijEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %215, ptr noundef @.str.46, ptr noundef @.str.146, ptr noundef null)
  %217 = icmp eq i32 %216, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  br i1 %217, label %218, label %219

218:                                              ; preds = %204
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

219:                                              ; preds = %204
  br label %220

220:                                              ; preds = %219
  br label %221

221:                                              ; preds = %220
  br label %222

222:                                              ; preds = %221
  %223 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %224 = getelementptr inbounds %struct.jc_test_fixture, ptr %223, i32 0, i32 11
  %225 = load i32, ptr %224, align 8
  %226 = and i32 %225, -16776961
  %227 = or i32 %226, 187904
  store i32 %227, ptr %224, align 8
  %228 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %229 = getelementptr inbounds %struct.jc_test_fixture, ptr %228, i32 0, i32 4
  store ptr @.str.3, ptr %229, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  store i32 2, ptr %22, align 4, !tbaa !14
  %230 = load ptr, ptr %15, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %230, i32 0, i32 7
  %232 = load ptr, ptr %231, align 8, !tbaa !28
  %233 = getelementptr inbounds i32, ptr %232, i64 0
  %234 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %233, ptr noundef @.str.138, ptr noundef @.str.147)
  %235 = icmp eq i32 %234, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  br i1 %235, label %236, label %237

236:                                              ; preds = %222
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

237:                                              ; preds = %222
  br label %238

238:                                              ; preds = %237
  br label %239

239:                                              ; preds = %238
  br label %240

240:                                              ; preds = %239
  %241 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %242 = getelementptr inbounds %struct.jc_test_fixture, ptr %241, i32 0, i32 11
  %243 = load i32, ptr %242, align 8
  %244 = and i32 %243, -16776961
  %245 = or i32 %244, 188160
  store i32 %245, ptr %242, align 8
  %246 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %247 = getelementptr inbounds %struct.jc_test_fixture, ptr %246, i32 0, i32 4
  store ptr @.str.3, ptr %247, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %248 = load ptr, ptr %11, align 8, !tbaa !5
  %249 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %248, i32 0, i32 0
  %250 = load ptr, ptr %249, align 8, !tbaa !22
  %251 = load ptr, ptr %15, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %251, i32 0, i32 4
  %253 = load ptr, ptr %252, align 8, !tbaa !24
  %254 = getelementptr inbounds i64, ptr %253, i64 1
  %255 = 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) %254, ptr noundef @.str.148, ptr noundef @.str.149)
  %256 = icmp eq i32 %255, 0
  br i1 %256, label %257, label %258

257:                                              ; preds = %240
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

258:                                              ; preds = %240
  br label %259

259:                                              ; preds = %258
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  %262 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %263 = getelementptr inbounds %struct.jc_test_fixture, ptr %262, i32 0, i32 11
  %264 = load i32, ptr %263, align 8
  %265 = and i32 %264, -16776961
  %266 = or i32 %265, 188416
  store i32 %266, ptr %263, align 8
  %267 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %268 = getelementptr inbounds %struct.jc_test_fixture, ptr %267, i32 0, i32 4
  store ptr @.str.3, ptr %268, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %269 = load ptr, ptr %11, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %269, i32 0, i32 3
  %271 = load ptr, ptr %270, align 8, !tbaa !25
  %272 = load ptr, ptr %15, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %272, i32 0, i32 8
  %274 = load ptr, ptr %273, align 8, !tbaa !26
  %275 = getelementptr inbounds i32, ptr %274, i64 1
  %276 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %271, ptr noundef nonnull align 4 dereferenceable(4) %275, ptr noundef @.str.150, ptr noundef @.str.151)
  %277 = icmp eq i32 %276, 0
  br i1 %277, label %278, label %279

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

279:                                              ; preds = %261
  br label %280

280:                                              ; preds = %279
  br label %281

281:                                              ; preds = %280
  br label %282

282:                                              ; preds = %281
  %283 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %284 = getelementptr inbounds %struct.jc_test_fixture, ptr %283, i32 0, i32 11
  %285 = load i32, ptr %284, align 8
  %286 = and i32 %285, -16776961
  %287 = or i32 %286, 188672
  store i32 %287, ptr %284, align 8
  %288 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %289 = getelementptr inbounds %struct.jc_test_fixture, ptr %288, i32 0, i32 4
  store ptr @.str.3, ptr %289, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  store i32 2, ptr %23, align 4, !tbaa !14
  %290 = load ptr, ptr %15, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %290, i32 0, i32 6
  %292 = load ptr, ptr %291, align 8, !tbaa !27
  %293 = getelementptr inbounds i32, ptr %292, i64 1
  %294 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 4 dereferenceable(4) %293, ptr noundef @.str.138, ptr noundef @.str.152)
  %295 = icmp eq i32 %294, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  br i1 %295, label %296, label %297

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

297:                                              ; preds = %282
  br label %298

298:                                              ; preds = %297
  br label %299

299:                                              ; preds = %298
  br label %300

300:                                              ; preds = %299
  %301 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %302 = getelementptr inbounds %struct.jc_test_fixture, ptr %301, i32 0, i32 11
  %303 = load i32, ptr %302, align 8
  %304 = and i32 %303, -16776961
  %305 = or i32 %304, 188928
  store i32 %305, ptr %302, align 8
  %306 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %307 = getelementptr inbounds %struct.jc_test_fixture, ptr %306, i32 0, i32 4
  store ptr @.str.3, ptr %307, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  store i32 2, ptr %24, align 4, !tbaa !14
  %308 = load ptr, ptr %15, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %308, i32 0, i32 7
  %310 = load ptr, ptr %309, align 8, !tbaa !28
  %311 = getelementptr inbounds i32, ptr %310, i64 1
  %312 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %311, ptr noundef @.str.138, ptr noundef @.str.153)
  %313 = icmp eq i32 %312, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  br i1 %313, label %314, label %315

314:                                              ; preds = %300
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

315:                                              ; preds = %300
  br label %316

316:                                              ; preds = %315
  br label %317

317:                                              ; preds = %316
  br label %318

318:                                              ; preds = %317
  %319 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %320 = getelementptr inbounds %struct.jc_test_fixture, ptr %319, i32 0, i32 11
  %321 = load i32, ptr %320, align 8
  %322 = and i32 %321, -16776961
  %323 = or i32 %322, 189184
  store i32 %323, ptr %320, align 8
  %324 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %325 = getelementptr inbounds %struct.jc_test_fixture, ptr %324, i32 0, i32 4
  store ptr @.str.3, ptr %325, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %326 = getelementptr inbounds [4 x i64], ptr %6, i64 0, i64 0
  %327 = load ptr, ptr %15, align 8, !tbaa !5
  %328 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %327, i32 0, i32 5
  %329 = load ptr, ptr %328, align 8, !tbaa !29
  %330 = getelementptr inbounds i64, ptr %329, i64 0
  %331 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %326, ptr noundef nonnull align 8 dereferenceable(8) %330, ptr noundef @.str.80, ptr noundef @.str.154)
  %332 = icmp eq i32 %331, 0
  br i1 %332, label %333, label %334

333:                                              ; preds = %318
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

334:                                              ; preds = %318
  br label %335

335:                                              ; preds = %334
  br label %336

336:                                              ; preds = %335
  br label %337

337:                                              ; preds = %336
  %338 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %339 = getelementptr inbounds %struct.jc_test_fixture, ptr %338, i32 0, i32 11
  %340 = load i32, ptr %339, align 8
  %341 = and i32 %340, -16776961
  %342 = or i32 %341, 189440
  store i32 %342, ptr %339, align 8
  %343 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %344 = getelementptr inbounds %struct.jc_test_fixture, ptr %343, i32 0, i32 4
  store ptr @.str.3, ptr %344, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %345 = getelementptr inbounds [4 x i64], ptr %6, i64 0, i64 1
  %346 = load ptr, ptr %15, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %346, i32 0, i32 5
  %348 = load ptr, ptr %347, align 8, !tbaa !29
  %349 = getelementptr inbounds i64, ptr %348, i64 1
  %350 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %345, ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef @.str.82, ptr noundef @.str.155)
  %351 = icmp eq i32 %350, 0
  br i1 %351, label %352, label %353

352:                                              ; preds = %337
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

353:                                              ; preds = %337
  br label %354

354:                                              ; preds = %353
  br label %355

355:                                              ; preds = %354
  br label %356

356:                                              ; preds = %355
  %357 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %358 = getelementptr inbounds %struct.jc_test_fixture, ptr %357, i32 0, i32 11
  %359 = load i32, ptr %358, align 8
  %360 = and i32 %359, -16776961
  %361 = or i32 %360, 189696
  store i32 %361, ptr %358, align 8
  %362 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %363 = getelementptr inbounds %struct.jc_test_fixture, ptr %362, i32 0, i32 4
  store ptr @.str.3, ptr %363, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %364 = getelementptr inbounds [4 x i64], ptr %6, i64 0, i64 2
  %365 = load ptr, ptr %15, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %365, i32 0, i32 5
  %367 = load ptr, ptr %366, align 8, !tbaa !29
  %368 = getelementptr inbounds i64, ptr %367, i64 2
  %369 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef nonnull align 8 dereferenceable(8) %368, ptr noundef @.str.156, ptr noundef @.str.157)
  %370 = icmp eq i32 %369, 0
  br i1 %370, label %371, label %372

371:                                              ; preds = %356
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

372:                                              ; preds = %356
  br label %373

373:                                              ; preds = %372
  br label %374

374:                                              ; preds = %373
  br label %375

375:                                              ; preds = %374
  %376 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %377 = getelementptr inbounds %struct.jc_test_fixture, ptr %376, i32 0, i32 11
  %378 = load i32, ptr %377, align 8
  %379 = and i32 %378, -16776961
  %380 = or i32 %379, 189952
  store i32 %380, ptr %377, align 8
  %381 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %382 = getelementptr inbounds %struct.jc_test_fixture, ptr %381, i32 0, i32 4
  store ptr @.str.3, ptr %382, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %383 = getelementptr inbounds [4 x i64], ptr %6, i64 0, i64 3
  %384 = load ptr, ptr %15, align 8, !tbaa !5
  %385 = getelementptr inbounds %struct.Longtail_StoreIndex, ptr %384, i32 0, i32 5
  %386 = load ptr, ptr %385, align 8, !tbaa !29
  %387 = getelementptr inbounds i64, ptr %386, i64 3
  %388 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %383, ptr noundef nonnull align 8 dereferenceable(8) %387, ptr noundef @.str.158, ptr noundef @.str.159)
  %389 = icmp eq i32 %388, 0
  br i1 %389, label %390, label %391

390:                                              ; preds = %375
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %668

391:                                              ; preds = %375
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 96, ptr %25) #5
  br label %394

394:                                              ; preds = %393
  %395 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %396 = getelementptr inbounds %struct.jc_test_fixture, ptr %395, i32 0, i32 11
  %397 = load i32, ptr %396, align 8
  %398 = and i32 %397, -16776961
  %399 = or i32 %398, 190976
  store i32 %399, ptr %396, align 8
  %400 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %401 = getelementptr inbounds %struct.jc_test_fixture, ptr %400, i32 0, i32 4
  store ptr @.str.3, ptr %401, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  store i32 0, ptr %26, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  %402 = load ptr, ptr %15, align 8, !tbaa !5
  %403 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 0
  %404 = call i32 @Longtail_MakeBlockIndex(ptr noundef %402, i32 noundef 0, ptr noundef %403)
  store i32 %404, ptr %27, align 4, !tbaa !14
  %405 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef @.str.46, ptr noundef @.str.160, ptr noundef null)
  %406 = icmp eq i32 %405, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  br i1 %406, label %407, label %408

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

408:                                              ; preds = %394
  br label %409

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409
  br label %411

411:                                              ; preds = %410
  %412 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %413 = getelementptr inbounds %struct.jc_test_fixture, ptr %412, i32 0, i32 11
  %414 = load i32, ptr %413, align 8
  %415 = and i32 %414, -16776961
  %416 = or i32 %415, 191232
  store i32 %416, ptr %413, align 8
  %417 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %418 = getelementptr inbounds %struct.jc_test_fixture, ptr %417, i32 0, i32 4
  store ptr @.str.3, ptr %418, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  store i32 0, ptr %28, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  %419 = load ptr, ptr %15, align 8, !tbaa !5
  %420 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 1
  %421 = call i32 @Longtail_MakeBlockIndex(ptr noundef %419, i32 noundef 1, ptr noundef %420)
  store i32 %421, ptr %29, align 4, !tbaa !14
  %422 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef @.str.46, ptr noundef @.str.161, ptr noundef null)
  %423 = icmp eq i32 %422, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  br i1 %423, label %424, label %425

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

425:                                              ; preds = %411
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  %429 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %430 = getelementptr inbounds %struct.jc_test_fixture, ptr %429, i32 0, i32 11
  %431 = load i32, ptr %430, align 8
  %432 = and i32 %431, -16776961
  %433 = or i32 %432, 191744
  store i32 %433, ptr %430, align 8
  %434 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %435 = getelementptr inbounds %struct.jc_test_fixture, ptr %434, i32 0, i32 4
  store ptr @.str.3, ptr %435, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %436 = load ptr, ptr %8, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %436, i32 0, i32 0
  %438 = load ptr, ptr %437, align 8, !tbaa !22
  %439 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 0
  %440 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %439, i32 0, i32 0
  %441 = load ptr, ptr %440, align 16, !tbaa !22
  %442 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %438, ptr noundef nonnull align 8 dereferenceable(8) %441, ptr noundef @.str.142, ptr noundef @.str.162)
  %443 = icmp eq i32 %442, 0
  br i1 %443, label %444, label %445

444:                                              ; preds = %428
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %667

445:                                              ; preds = %428
  br label %446

446:                                              ; preds = %445
  br label %447

447:                                              ; preds = %446
  br label %448

448:                                              ; preds = %447
  %449 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %450 = getelementptr inbounds %struct.jc_test_fixture, ptr %449, i32 0, i32 11
  %451 = load i32, ptr %450, align 8
  %452 = and i32 %451, -16776961
  %453 = or i32 %452, 192000
  store i32 %453, ptr %450, align 8
  %454 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %455 = getelementptr inbounds %struct.jc_test_fixture, ptr %454, i32 0, i32 4
  store ptr @.str.3, ptr %455, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %456 = load ptr, ptr %8, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %456, i32 0, i32 1
  %458 = load ptr, ptr %457, align 8, !tbaa !30
  %459 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 0
  %460 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %459, i32 0, i32 1
  %461 = load ptr, ptr %460, align 8, !tbaa !30
  %462 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %458, ptr noundef nonnull align 4 dereferenceable(4) %461, ptr noundef @.str.163, ptr noundef @.str.164)
  %463 = icmp eq i32 %462, 0
  br i1 %463, label %464, label %465

464:                                              ; preds = %448
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %667

465:                                              ; preds = %448
  br label %466

466:                                              ; preds = %465
  br label %467

467:                                              ; preds = %466
  br label %468

468:                                              ; preds = %467
  %469 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %470 = getelementptr inbounds %struct.jc_test_fixture, ptr %469, i32 0, i32 11
  %471 = load i32, ptr %470, align 8
  %472 = and i32 %471, -16776961
  %473 = or i32 %472, 192256
  store i32 %473, ptr %470, align 8
  %474 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %475 = getelementptr inbounds %struct.jc_test_fixture, ptr %474, i32 0, i32 4
  store ptr @.str.3, ptr %475, 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
  %476 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 0
  %477 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %476, i32 0, i32 2
  %478 = load ptr, ptr %477, align 16, !tbaa !31
  %479 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 4 dereferenceable(4) %478, ptr noundef @.str.138, ptr noundef @.str.165)
  %480 = icmp eq i32 %479, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  br i1 %480, label %481, label %482

481:                                              ; preds = %468
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %667

482:                                              ; preds = %468
  br label %483

483:                                              ; preds = %482
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484
  %486 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %487 = getelementptr inbounds %struct.jc_test_fixture, ptr %486, i32 0, i32 11
  %488 = load i32, ptr %487, align 8
  %489 = and i32 %488, -16776961
  %490 = or i32 %489, 192512
  store i32 %490, ptr %487, align 8
  %491 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %492 = getelementptr inbounds %struct.jc_test_fixture, ptr %491, i32 0, i32 4
  store ptr @.str.3, ptr %492, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %493 = load ptr, ptr %8, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %493, i32 0, i32 3
  %495 = load ptr, ptr %494, align 8, !tbaa !25
  %496 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 0
  %497 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %496, i32 0, i32 3
  %498 = load ptr, ptr %497, align 8, !tbaa !25
  %499 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %495, ptr noundef nonnull align 4 dereferenceable(4) %498, ptr noundef @.str.144, ptr noundef @.str.166)
  %500 = icmp eq i32 %499, 0
  br i1 %500, label %501, label %502

501:                                              ; preds = %485
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %667

502:                                              ; preds = %485
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  %506 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %507 = getelementptr inbounds %struct.jc_test_fixture, ptr %506, i32 0, i32 11
  %508 = load i32, ptr %507, align 8
  %509 = and i32 %508, -16776961
  %510 = or i32 %509, 192768
  store i32 %510, ptr %507, align 8
  %511 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %512 = getelementptr inbounds %struct.jc_test_fixture, ptr %511, i32 0, i32 4
  store ptr @.str.3, ptr %512, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %513 = getelementptr inbounds [4 x i64], ptr %6, i64 0, i64 0
  %514 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 0
  %515 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %514, i32 0, i32 4
  %516 = load ptr, ptr %515, align 16, !tbaa !32
  %517 = getelementptr inbounds i64, ptr %516, i64 0
  %518 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %513, ptr noundef nonnull align 8 dereferenceable(8) %517, ptr noundef @.str.80, ptr noundef @.str.167)
  %519 = icmp eq i32 %518, 0
  br i1 %519, label %520, label %521

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

521:                                              ; preds = %505
  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, 193024
  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()
  %532 = getelementptr inbounds [4 x i64], ptr %6, i64 0, i64 1
  %533 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 0
  %534 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %533, i32 0, i32 4
  %535 = load ptr, ptr %534, align 16, !tbaa !32
  %536 = getelementptr inbounds i64, ptr %535, i64 1
  %537 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %532, ptr noundef nonnull align 8 dereferenceable(8) %536, ptr noundef @.str.82, ptr noundef @.str.168)
  %538 = icmp eq i32 %537, 0
  br i1 %538, label %539, label %540

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

540:                                              ; preds = %524
  br label %541

541:                                              ; preds = %540
  br label %542

542:                                              ; preds = %541
  br label %543

543:                                              ; preds = %542
  %544 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %545 = getelementptr inbounds %struct.jc_test_fixture, ptr %544, i32 0, i32 11
  %546 = load i32, ptr %545, align 8
  %547 = and i32 %546, -16776961
  %548 = or i32 %547, 193536
  store i32 %548, ptr %545, align 8
  %549 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %550 = getelementptr inbounds %struct.jc_test_fixture, ptr %549, i32 0, i32 4
  store ptr @.str.3, ptr %550, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %551 = load ptr, ptr %11, align 8, !tbaa !5
  %552 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %551, i32 0, i32 0
  %553 = load ptr, ptr %552, align 8, !tbaa !22
  %554 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 1
  %555 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %554, i32 0, i32 0
  %556 = load ptr, ptr %555, align 16, !tbaa !22
  %557 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %553, ptr noundef nonnull align 8 dereferenceable(8) %556, ptr noundef @.str.148, ptr noundef @.str.169)
  %558 = icmp eq i32 %557, 0
  br i1 %558, label %559, label %560

559:                                              ; preds = %543
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %667

560:                                              ; preds = %543
  br label %561

561:                                              ; preds = %560
  br label %562

562:                                              ; preds = %561
  br label %563

563:                                              ; preds = %562
  %564 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %565 = getelementptr inbounds %struct.jc_test_fixture, ptr %564, i32 0, i32 11
  %566 = load i32, ptr %565, align 8
  %567 = and i32 %566, -16776961
  %568 = or i32 %567, 193792
  store i32 %568, ptr %565, align 8
  %569 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %570 = getelementptr inbounds %struct.jc_test_fixture, ptr %569, i32 0, i32 4
  store ptr @.str.3, ptr %570, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %571 = load ptr, ptr %11, align 8, !tbaa !5
  %572 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %571, i32 0, i32 1
  %573 = load ptr, ptr %572, align 8, !tbaa !30
  %574 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 1
  %575 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %574, i32 0, i32 1
  %576 = load ptr, ptr %575, align 8, !tbaa !30
  %577 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %573, ptr noundef nonnull align 4 dereferenceable(4) %576, ptr noundef @.str.170, ptr noundef @.str.171)
  %578 = icmp eq i32 %577, 0
  br i1 %578, label %579, label %580

579:                                              ; preds = %563
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %667

580:                                              ; preds = %563
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582
  %584 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %585 = getelementptr inbounds %struct.jc_test_fixture, ptr %584, i32 0, i32 11
  %586 = load i32, ptr %585, align 8
  %587 = and i32 %586, -16776961
  %588 = or i32 %587, 194048
  store i32 %588, ptr %585, align 8
  %589 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %590 = getelementptr inbounds %struct.jc_test_fixture, ptr %589, i32 0, i32 4
  store ptr @.str.3, ptr %590, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  store i32 2, ptr %31, align 4, !tbaa !14
  %591 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 1
  %592 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %591, i32 0, i32 2
  %593 = load ptr, ptr %592, align 16, !tbaa !31
  %594 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 4 dereferenceable(4) %593, ptr noundef @.str.138, ptr noundef @.str.172)
  %595 = icmp eq i32 %594, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  br i1 %595, label %596, label %597

596:                                              ; preds = %583
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %667

597:                                              ; preds = %583
  br label %598

598:                                              ; preds = %597
  br label %599

599:                                              ; preds = %598
  br label %600

600:                                              ; preds = %599
  %601 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %602 = getelementptr inbounds %struct.jc_test_fixture, ptr %601, i32 0, i32 11
  %603 = load i32, ptr %602, align 8
  %604 = and i32 %603, -16776961
  %605 = or i32 %604, 194304
  store i32 %605, ptr %602, align 8
  %606 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %607 = getelementptr inbounds %struct.jc_test_fixture, ptr %606, i32 0, i32 4
  store ptr @.str.3, ptr %607, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %608 = load ptr, ptr %11, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %608, i32 0, i32 3
  %610 = load ptr, ptr %609, align 8, !tbaa !25
  %611 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 1
  %612 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %611, i32 0, i32 3
  %613 = load ptr, ptr %612, align 8, !tbaa !25
  %614 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %610, ptr noundef nonnull align 4 dereferenceable(4) %613, ptr noundef @.str.150, ptr noundef @.str.173)
  %615 = icmp eq i32 %614, 0
  br i1 %615, label %616, label %617

616:                                              ; preds = %600
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %667

617:                                              ; preds = %600
  br label %618

618:                                              ; preds = %617
  br label %619

619:                                              ; preds = %618
  br label %620

620:                                              ; preds = %619
  %621 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %622 = getelementptr inbounds %struct.jc_test_fixture, ptr %621, i32 0, i32 11
  %623 = load i32, ptr %622, align 8
  %624 = and i32 %623, -16776961
  %625 = or i32 %624, 194560
  store i32 %625, ptr %622, align 8
  %626 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %627 = getelementptr inbounds %struct.jc_test_fixture, ptr %626, i32 0, i32 4
  store ptr @.str.3, ptr %627, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %628 = getelementptr inbounds [4 x i64], ptr %6, i64 0, i64 2
  %629 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 1
  %630 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %629, i32 0, i32 4
  %631 = load ptr, ptr %630, align 16, !tbaa !32
  %632 = getelementptr inbounds i64, ptr %631, i64 0
  %633 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %628, ptr noundef nonnull align 8 dereferenceable(8) %632, ptr noundef @.str.156, ptr noundef @.str.174)
  %634 = icmp eq i32 %633, 0
  br i1 %634, label %635, label %636

635:                                              ; preds = %620
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %667

636:                                              ; preds = %620
  br label %637

637:                                              ; preds = %636
  br label %638

638:                                              ; preds = %637
  br label %639

639:                                              ; preds = %638
  %640 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %641 = getelementptr inbounds %struct.jc_test_fixture, ptr %640, i32 0, i32 11
  %642 = load i32, ptr %641, align 8
  %643 = and i32 %642, -16776961
  %644 = or i32 %643, 194816
  store i32 %644, ptr %641, align 8
  %645 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %646 = getelementptr inbounds %struct.jc_test_fixture, ptr %645, i32 0, i32 4
  store ptr @.str.3, ptr %646, align 8, !tbaa !9
  call void @_Z28jc_test_increment_assertionsv()
  %647 = getelementptr inbounds [4 x i64], ptr %6, i64 0, i64 3
  %648 = getelementptr inbounds [2 x %struct.Longtail_BlockIndex], ptr %25, i64 0, i64 1
  %649 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %648, i32 0, i32 4
  %650 = load ptr, ptr %649, align 16, !tbaa !32
  %651 = getelementptr inbounds i64, ptr %650, i64 1
  %652 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %647, ptr noundef nonnull align 8 dereferenceable(8) %651, ptr noundef @.str.158, ptr noundef @.str.175)
  %653 = icmp eq i32 %652, 0
  br i1 %653, label %654, label %655

654:                                              ; preds = %639
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  store i32 1, ptr %4, align 4
  br label %667

655:                                              ; preds = %639
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  %658 = load ptr, ptr %15, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %658)
  %659 = load ptr, ptr %11, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %659)
  %660 = load ptr, ptr %8, align 8, !tbaa !5
  call void @Longtail_Free(ptr noundef %660)
  %661 = load ptr, ptr %3, align 8, !tbaa !5
  %662 = icmp ne ptr %661, null
  br i1 %662, label %663, label %666

663:                                              ; preds = %657
  %664 = load ptr, ptr %3, align 8, !tbaa !5
  %665 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %664, i32 0, i32 0
  call void @Longtail_DisposeAPI(ptr noundef %665)
  br label %666

666:                                              ; preds = %663, %657
  store i32 0, ptr %4, align 4
  br label %667

667:                                              ; preds = %666, %654, %635, %616, %596, %579, %559, %539, %520, %501, %481, %464, %444, %424, %407
  call void @llvm.lifetime.end.p0(i64 96, ptr %25) #5
  br label %668

668:                                              ; preds = %667, %390, %371, %352, %333, %314, %296, %278, %257, %236, %218, %200, %179, %158, %141, %124, %102
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #5
  br label %669

669:                                              ; preds = %668, %83
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  br label %670

670:                                              ; preds = %669, %64
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %5) #5
  br label %671

671:                                              ; preds = %670, %45
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #5
  %672 = load i32, ptr %4, align 4
  switch i32 %672, label %674 [
    i32 0, label %673
    i32 1, label %673
  ]

673:                                              ; preds = %671, %671
  ret void

674:                                              ; preds = %671
  unreachable
}

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

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

declare i32 @Longtail_MakeBlockIndex(ptr noundef, i32 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 8}
!16 = !{!"_ZTS16Longtail_HashAPI", !17, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!17 = !{!"_ZTS12Longtail_API", !6, i64 0}
!18 = !{!19, !6, i64 8}
!19 = !{!"_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}
!20 = !{!19, !6, i64 16}
!21 = !{!19, !6, i64 24}
!22 = !{!23, !6, i64 0}
!23 = !{!"_ZTS19Longtail_BlockIndex", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!24 = !{!19, !6, i64 32}
!25 = !{!23, !6, i64 24}
!26 = !{!19, !6, i64 64}
!27 = !{!19, !6, i64 48}
!28 = !{!19, !6, i64 56}
!29 = !{!19, !6, i64 40}
!30 = !{!23, !6, i64 8}
!31 = !{!23, !6, i64 16}
!32 = !{!23, !6, i64 32}


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

%struct.Longtail_BlockIndex = type { ptr, ptr, ptr, ptr, ptr, ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [34 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
@__const._ZN54Longtail_Longtail_CreateStoreIndexFromBlocks__TestCase8TestBodyEv.chunk_indexes = external hidden unnamed_addr constant [4 x i32], align 16
@__const._ZN54Longtail_Longtail_CreateStoreIndexFromBlocks__TestCase8TestBodyEv.chunk_hashes = external hidden unnamed_addr constant [4 x i64], align 16
@__const._ZN54Longtail_Longtail_CreateStoreIndexFromBlocks__TestCase8TestBodyEv.chunk_sizes = external hidden unnamed_addr constant [4 x i32], align 16
@.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.136 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.139 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.141 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.142 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.143 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.144 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.145 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.147 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.148 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.149 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.150 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.151 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.152 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [43 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

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

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

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

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

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

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

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

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

80:                                               ; preds = %65
  %81 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %82 = getelementptr inbounds i8, ptr %81, i64 96
  %83 = load i32, ptr %82, align 8
  %84 = and i32 %83, -16776961
  %85 = or disjoint i32 %84, 186368
  store i32 %85, ptr %82, align 8
  %86 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %87 = getelementptr inbounds i8, ptr %86, i64 32
  store ptr @.str.3, ptr %87, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #5
  %88 = getelementptr inbounds i8, ptr %29, i64 8
  %89 = load ptr, ptr %88, align 8, !tbaa !15
  %90 = call noundef i32 %89(ptr noundef %29)
  store i32 %90, ptr %15, align 4, !tbaa !13
  %91 = load ptr, ptr %12, align 8, !tbaa !14
  %92 = getelementptr inbounds i8, ptr %91, i64 8
  %93 = load ptr, ptr %92, align 8, !tbaa !18
  %94 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %93, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.137)
  %95 = icmp eq i32 %94, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #5
  br i1 %95, label %96, label %97

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

97:                                               ; preds = %80
  %98 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %99 = getelementptr inbounds i8, ptr %98, i64 96
  %100 = load i32, ptr %99, align 8
  %101 = and i32 %100, -16776961
  %102 = or disjoint i32 %101, 186624
  store i32 %102, ptr %99, align 8
  %103 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %104 = getelementptr inbounds i8, ptr %103, i64 32
  store ptr @.str.3, ptr %104, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #5
  store i32 2, ptr %16, align 4, !tbaa !13
  %105 = load ptr, ptr %12, align 8, !tbaa !14
  %106 = getelementptr inbounds i8, ptr %105, i64 16
  %107 = load ptr, ptr %106, align 8, !tbaa !20
  %108 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %107, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.139)
  %109 = icmp eq i32 %108, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  br i1 %109, label %110, label %111

110:                                              ; preds = %97
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

111:                                              ; preds = %97
  %112 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %113 = getelementptr inbounds i8, ptr %112, i64 96
  %114 = load i32, ptr %113, align 8
  %115 = and i32 %114, -16776961
  %116 = or disjoint i32 %115, 186880
  store i32 %116, ptr %113, align 8
  %117 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %118 = getelementptr inbounds i8, ptr %117, i64 32
  store ptr @.str.3, ptr %118, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  store i32 4, ptr %17, align 4, !tbaa !13
  %119 = load ptr, ptr %12, align 8, !tbaa !14
  %120 = getelementptr inbounds i8, ptr %119, i64 24
  %121 = load ptr, ptr %120, align 8, !tbaa !21
  %122 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 4 dereferenceable(4) %121, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.141)
  %123 = icmp eq i32 %122, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  br i1 %123, label %124, label %125

124:                                              ; preds = %111
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

125:                                              ; preds = %111
  %126 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %127 = getelementptr inbounds i8, ptr %126, i64 96
  %128 = load i32, ptr %127, align 8
  %129 = and i32 %128, -16776961
  %130 = or disjoint i32 %129, 187136
  store i32 %130, ptr %127, align 8
  %131 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %132 = getelementptr inbounds i8, ptr %131, i64 32
  store ptr @.str.3, ptr %132, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %133 = load ptr, ptr %5, align 8, !tbaa !14
  %134 = load ptr, ptr %133, align 8, !tbaa !22
  %135 = load ptr, ptr %12, align 8, !tbaa !14
  %136 = getelementptr inbounds i8, ptr %135, i64 32
  %137 = load ptr, ptr %136, align 8, !tbaa !24
  %138 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.143)
  %139 = icmp eq i32 %138, 0
  br i1 %139, label %140, label %141

140:                                              ; preds = %125
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

141:                                              ; preds = %125
  %142 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %143 = getelementptr inbounds i8, ptr %142, i64 96
  %144 = load i32, ptr %143, align 8
  %145 = and i32 %144, -16776961
  %146 = or disjoint i32 %145, 187392
  store i32 %146, ptr %143, align 8
  %147 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %148 = getelementptr inbounds i8, ptr %147, i64 32
  store ptr @.str.3, ptr %148, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %149 = load ptr, ptr %5, align 8, !tbaa !14
  %150 = getelementptr inbounds i8, ptr %149, i64 24
  %151 = load ptr, ptr %150, align 8, !tbaa !25
  %152 = load ptr, ptr %12, align 8, !tbaa !14
  %153 = getelementptr inbounds i8, ptr %152, i64 64
  %154 = load ptr, ptr %153, align 8, !tbaa !26
  %155 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %151, ptr noundef nonnull align 4 dereferenceable(4) %154, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.145)
  %156 = icmp eq i32 %155, 0
  br i1 %156, label %157, label %158

157:                                              ; preds = %141
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

158:                                              ; preds = %141
  %159 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %160 = getelementptr inbounds i8, ptr %159, i64 96
  %161 = load i32, ptr %160, align 8
  %162 = and i32 %161, -16776961
  %163 = or disjoint i32 %162, 187648
  store i32 %163, ptr %160, align 8
  %164 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %165 = getelementptr inbounds i8, ptr %164, i64 32
  store ptr @.str.3, ptr %165, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #5
  store i32 0, ptr %18, align 4, !tbaa !13
  %166 = load ptr, ptr %12, align 8, !tbaa !14
  %167 = getelementptr inbounds i8, ptr %166, i64 48
  %168 = load ptr, ptr %167, align 8, !tbaa !27
  %169 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIijEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(4) %168, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.146, ptr noundef null)
  %170 = icmp eq i32 %169, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #5
  br i1 %170, label %171, label %172

171:                                              ; preds = %158
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

172:                                              ; preds = %158
  %173 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %174 = getelementptr inbounds i8, ptr %173, i64 96
  %175 = load i32, ptr %174, align 8
  %176 = and i32 %175, -16776961
  %177 = or disjoint i32 %176, 187904
  store i32 %177, ptr %174, align 8
  %178 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %179 = getelementptr inbounds i8, ptr %178, i64 32
  store ptr @.str.3, ptr %179, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  store i32 2, ptr %19, align 4, !tbaa !13
  %180 = load ptr, ptr %12, align 8, !tbaa !14
  %181 = getelementptr inbounds i8, ptr %180, i64 56
  %182 = load ptr, ptr %181, align 8, !tbaa !28
  %183 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %182, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.147)
  %184 = icmp eq i32 %183, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  br i1 %184, label %185, label %186

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

186:                                              ; preds = %172
  %187 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %188 = getelementptr inbounds i8, ptr %187, i64 96
  %189 = load i32, ptr %188, align 8
  %190 = and i32 %189, -16776961
  %191 = or disjoint i32 %190, 188160
  store i32 %191, ptr %188, align 8
  %192 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %193 = getelementptr inbounds i8, ptr %192, i64 32
  store ptr @.str.3, ptr %193, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %194 = load ptr, ptr %8, align 8, !tbaa !14
  %195 = load ptr, ptr %194, align 8, !tbaa !22
  %196 = load ptr, ptr %12, align 8, !tbaa !14
  %197 = getelementptr inbounds i8, ptr %196, i64 32
  %198 = load ptr, ptr %197, align 8, !tbaa !24
  %199 = getelementptr inbounds i8, ptr %198, i64 8
  %200 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %195, ptr noundef nonnull align 8 dereferenceable(8) %199, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.149)
  %201 = icmp eq i32 %200, 0
  br i1 %201, label %202, label %203

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

203:                                              ; preds = %186
  %204 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %205 = getelementptr inbounds i8, ptr %204, i64 96
  %206 = load i32, ptr %205, align 8
  %207 = and i32 %206, -16776961
  %208 = or disjoint i32 %207, 188416
  store i32 %208, ptr %205, align 8
  %209 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %210 = getelementptr inbounds i8, ptr %209, i64 32
  store ptr @.str.3, ptr %210, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %211 = load ptr, ptr %8, align 8, !tbaa !14
  %212 = getelementptr inbounds i8, ptr %211, i64 24
  %213 = load ptr, ptr %212, align 8, !tbaa !25
  %214 = load ptr, ptr %12, align 8, !tbaa !14
  %215 = getelementptr inbounds i8, ptr %214, i64 64
  %216 = load ptr, ptr %215, align 8, !tbaa !26
  %217 = getelementptr inbounds i8, ptr %216, i64 4
  %218 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %213, ptr noundef nonnull align 4 dereferenceable(4) %217, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.151)
  %219 = icmp eq i32 %218, 0
  br i1 %219, label %220, label %221

220:                                              ; preds = %203
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

221:                                              ; preds = %203
  %222 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %223 = getelementptr inbounds i8, ptr %222, i64 96
  %224 = load i32, ptr %223, align 8
  %225 = and i32 %224, -16776961
  %226 = or disjoint i32 %225, 188672
  store i32 %226, ptr %223, align 8
  %227 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %228 = getelementptr inbounds i8, ptr %227, i64 32
  store ptr @.str.3, ptr %228, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  store i32 2, ptr %20, align 4, !tbaa !13
  %229 = load ptr, ptr %12, align 8, !tbaa !14
  %230 = getelementptr inbounds i8, ptr %229, i64 48
  %231 = load ptr, ptr %230, align 8, !tbaa !27
  %232 = getelementptr inbounds i8, ptr %231, i64 4
  %233 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 4 dereferenceable(4) %232, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.152)
  %234 = icmp eq i32 %233, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  br i1 %234, label %235, label %236

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

236:                                              ; preds = %221
  %237 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %238 = getelementptr inbounds i8, ptr %237, i64 96
  %239 = load i32, ptr %238, align 8
  %240 = and i32 %239, -16776961
  %241 = or disjoint i32 %240, 188928
  store i32 %241, ptr %238, align 8
  %242 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %243 = getelementptr inbounds i8, ptr %242, i64 32
  store ptr @.str.3, ptr %243, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  store i32 2, ptr %21, align 4, !tbaa !13
  %244 = load ptr, ptr %12, align 8, !tbaa !14
  %245 = getelementptr inbounds i8, ptr %244, i64 56
  %246 = load ptr, ptr %245, align 8, !tbaa !28
  %247 = getelementptr inbounds i8, ptr %246, i64 4
  %248 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %247, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.153)
  %249 = icmp eq i32 %248, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  br i1 %249, label %250, label %251

250:                                              ; preds = %236
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

251:                                              ; preds = %236
  %252 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %253 = getelementptr inbounds i8, ptr %252, i64 96
  %254 = load i32, ptr %253, align 8
  %255 = and i32 %254, -16776961
  %256 = or disjoint i32 %255, 189184
  store i32 %256, ptr %253, align 8
  %257 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %258 = getelementptr inbounds i8, ptr %257, i64 32
  store ptr @.str.3, ptr %258, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %259 = load ptr, ptr %12, align 8, !tbaa !14
  %260 = getelementptr inbounds i8, ptr %259, i64 40
  %261 = load ptr, ptr %260, align 8, !tbaa !29
  %262 = 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) %261, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.154)
  %263 = icmp eq i32 %262, 0
  br i1 %263, label %264, label %265

264:                                              ; preds = %251
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

265:                                              ; preds = %251
  %266 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %267 = getelementptr inbounds i8, ptr %266, i64 96
  %268 = load i32, ptr %267, align 8
  %269 = and i32 %268, -16776961
  %270 = or disjoint i32 %269, 189440
  store i32 %270, ptr %267, align 8
  %271 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %272 = getelementptr inbounds i8, ptr %271, i64 32
  store ptr @.str.3, ptr %272, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %273 = getelementptr inbounds i8, ptr %3, i64 8
  %274 = load ptr, ptr %12, align 8, !tbaa !14
  %275 = getelementptr inbounds i8, ptr %274, i64 40
  %276 = load ptr, ptr %275, align 8, !tbaa !29
  %277 = getelementptr inbounds i8, ptr %276, i64 8
  %278 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef nonnull align 8 dereferenceable(8) %277, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.155)
  %279 = icmp eq i32 %278, 0
  br i1 %279, label %280, label %281

280:                                              ; preds = %265
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

281:                                              ; preds = %265
  %282 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %283 = getelementptr inbounds i8, ptr %282, i64 96
  %284 = load i32, ptr %283, align 8
  %285 = and i32 %284, -16776961
  %286 = or disjoint i32 %285, 189696
  store i32 %286, ptr %283, align 8
  %287 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %288 = getelementptr inbounds i8, ptr %287, i64 32
  store ptr @.str.3, ptr %288, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %289 = getelementptr inbounds i8, ptr %3, i64 16
  %290 = load ptr, ptr %12, align 8, !tbaa !14
  %291 = getelementptr inbounds i8, ptr %290, i64 40
  %292 = load ptr, ptr %291, align 8, !tbaa !29
  %293 = getelementptr inbounds i8, ptr %292, i64 16
  %294 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef nonnull align 8 dereferenceable(8) %293, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.157)
  %295 = icmp eq i32 %294, 0
  br i1 %295, label %296, label %297

296:                                              ; preds = %281
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

297:                                              ; preds = %281
  %298 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %299 = getelementptr inbounds i8, ptr %298, i64 96
  %300 = load i32, ptr %299, align 8
  %301 = and i32 %300, -16776961
  %302 = or disjoint i32 %301, 189952
  store i32 %302, ptr %299, align 8
  %303 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %304 = getelementptr inbounds i8, ptr %303, i64 32
  store ptr @.str.3, ptr %304, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %305 = getelementptr inbounds i8, ptr %3, i64 24
  %306 = load ptr, ptr %12, align 8, !tbaa !14
  %307 = getelementptr inbounds i8, ptr %306, i64 40
  %308 = load ptr, ptr %307, align 8, !tbaa !29
  %309 = getelementptr inbounds i8, ptr %308, i64 24
  %310 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %305, ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef nonnull @.str.158, ptr noundef nonnull @.str.159)
  %311 = icmp eq i32 %310, 0
  br i1 %311, label %312, label %313

312:                                              ; preds = %297
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %515

313:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %22) #5
  %314 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %315 = getelementptr inbounds i8, ptr %314, i64 96
  %316 = load i32, ptr %315, align 8
  %317 = and i32 %316, -16776961
  %318 = or disjoint i32 %317, 190976
  store i32 %318, ptr %315, align 8
  %319 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %320 = getelementptr inbounds i8, ptr %319, i64 32
  store ptr @.str.3, ptr %320, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  store i32 0, ptr %23, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  %321 = load ptr, ptr %12, align 8, !tbaa !14
  %322 = call i32 @Longtail_MakeBlockIndex(ptr noundef %321, i32 noundef 0, ptr noundef nonnull %22)
  store i32 %322, ptr %24, align 4, !tbaa !13
  %323 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.160, ptr noundef null)
  %324 = icmp eq i32 %323, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  br i1 %324, label %325, label %326

325:                                              ; preds = %313
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

326:                                              ; preds = %313
  %327 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %328 = getelementptr inbounds i8, ptr %327, i64 96
  %329 = load i32, ptr %328, align 8
  %330 = and i32 %329, -16776961
  %331 = or disjoint i32 %330, 191232
  store i32 %331, ptr %328, align 8
  %332 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %333 = getelementptr inbounds i8, ptr %332, i64 32
  store ptr @.str.3, ptr %333, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  store i32 0, ptr %25, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #5
  %334 = load ptr, ptr %12, align 8, !tbaa !14
  %335 = getelementptr inbounds i8, ptr %22, i64 48
  %336 = call i32 @Longtail_MakeBlockIndex(ptr noundef %334, i32 noundef 1, ptr noundef nonnull %335)
  store i32 %336, ptr %26, align 4, !tbaa !13
  %337 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.161, ptr noundef null)
  %338 = icmp eq i32 %337, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  br i1 %338, label %339, label %340

339:                                              ; preds = %326
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

340:                                              ; preds = %326
  %341 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %342 = getelementptr inbounds i8, ptr %341, i64 96
  %343 = load i32, ptr %342, align 8
  %344 = and i32 %343, -16776961
  %345 = or disjoint i32 %344, 191744
  store i32 %345, ptr %342, align 8
  %346 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %347 = getelementptr inbounds i8, ptr %346, i64 32
  store ptr @.str.3, ptr %347, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %348 = load ptr, ptr %5, align 8, !tbaa !14
  %349 = load ptr, ptr %348, align 8, !tbaa !22
  %350 = load ptr, ptr %22, align 16, !tbaa !22
  %351 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef nonnull @.str.142, ptr noundef nonnull @.str.162)
  %352 = icmp eq i32 %351, 0
  br i1 %352, label %353, label %354

353:                                              ; preds = %340
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

354:                                              ; preds = %340
  %355 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %356 = getelementptr inbounds i8, ptr %355, i64 96
  %357 = load i32, ptr %356, align 8
  %358 = and i32 %357, -16776961
  %359 = or disjoint i32 %358, 192000
  store i32 %359, ptr %356, align 8
  %360 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %361 = getelementptr inbounds i8, ptr %360, i64 32
  store ptr @.str.3, ptr %361, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %362 = load ptr, ptr %5, align 8, !tbaa !14
  %363 = getelementptr inbounds i8, ptr %362, i64 8
  %364 = load ptr, ptr %363, align 8, !tbaa !30
  %365 = getelementptr inbounds i8, ptr %22, i64 8
  %366 = load ptr, ptr %365, align 8, !tbaa !30
  %367 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %364, ptr noundef nonnull align 4 dereferenceable(4) %366, ptr noundef nonnull @.str.163, ptr noundef nonnull @.str.164)
  %368 = icmp eq i32 %367, 0
  br i1 %368, label %369, label %370

369:                                              ; preds = %354
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

370:                                              ; preds = %354
  %371 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %372 = getelementptr inbounds i8, ptr %371, i64 96
  %373 = load i32, ptr %372, align 8
  %374 = and i32 %373, -16776961
  %375 = or disjoint i32 %374, 192256
  store i32 %375, ptr %372, align 8
  %376 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %377 = getelementptr inbounds i8, ptr %376, i64 32
  store ptr @.str.3, ptr %377, 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
  %378 = getelementptr inbounds i8, ptr %22, i64 16
  %379 = load ptr, ptr %378, align 16, !tbaa !31
  %380 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %379, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.165)
  %381 = icmp eq i32 %380, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  br i1 %381, label %382, label %383

382:                                              ; preds = %370
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

383:                                              ; preds = %370
  %384 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %385 = getelementptr inbounds i8, ptr %384, i64 96
  %386 = load i32, ptr %385, align 8
  %387 = and i32 %386, -16776961
  %388 = or disjoint i32 %387, 192512
  store i32 %388, ptr %385, align 8
  %389 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %390 = getelementptr inbounds i8, ptr %389, i64 32
  store ptr @.str.3, ptr %390, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %391 = load ptr, ptr %5, align 8, !tbaa !14
  %392 = getelementptr inbounds i8, ptr %391, i64 24
  %393 = load ptr, ptr %392, align 8, !tbaa !25
  %394 = getelementptr inbounds i8, ptr %22, i64 24
  %395 = load ptr, ptr %394, align 8, !tbaa !25
  %396 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %393, ptr noundef nonnull align 4 dereferenceable(4) %395, ptr noundef nonnull @.str.144, ptr noundef nonnull @.str.166)
  %397 = icmp eq i32 %396, 0
  br i1 %397, label %398, label %399

398:                                              ; preds = %383
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

399:                                              ; preds = %383
  %400 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %401 = getelementptr inbounds i8, ptr %400, i64 96
  %402 = load i32, ptr %401, align 8
  %403 = and i32 %402, -16776961
  %404 = or disjoint i32 %403, 192768
  store i32 %404, ptr %401, align 8
  %405 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %406 = getelementptr inbounds i8, ptr %405, i64 32
  store ptr @.str.3, ptr %406, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %407 = getelementptr inbounds i8, ptr %22, i64 32
  %408 = load ptr, ptr %407, align 16, !tbaa !32
  %409 = 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) %408, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.167)
  %410 = icmp eq i32 %409, 0
  br i1 %410, label %411, label %412

411:                                              ; preds = %399
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

412:                                              ; preds = %399
  %413 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %414 = getelementptr inbounds i8, ptr %413, i64 96
  %415 = load i32, ptr %414, align 8
  %416 = and i32 %415, -16776961
  %417 = or disjoint i32 %416, 193024
  store i32 %417, ptr %414, align 8
  %418 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %419 = getelementptr inbounds i8, ptr %418, i64 32
  store ptr @.str.3, ptr %419, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %420 = load ptr, ptr %407, align 16, !tbaa !32
  %421 = getelementptr inbounds i8, ptr %420, i64 8
  %422 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef nonnull align 8 dereferenceable(8) %421, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.168)
  %423 = icmp eq i32 %422, 0
  br i1 %423, label %424, label %425

424:                                              ; preds = %412
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

425:                                              ; preds = %412
  %426 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %427 = getelementptr inbounds i8, ptr %426, i64 96
  %428 = load i32, ptr %427, align 8
  %429 = and i32 %428, -16776961
  %430 = or disjoint i32 %429, 193536
  store i32 %430, ptr %427, align 8
  %431 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %432 = getelementptr inbounds i8, ptr %431, i64 32
  store ptr @.str.3, ptr %432, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %433 = load ptr, ptr %8, align 8, !tbaa !14
  %434 = load ptr, ptr %433, align 8, !tbaa !22
  %435 = load ptr, ptr %335, align 16, !tbaa !22
  %436 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef nonnull align 8 dereferenceable(8) %435, ptr noundef nonnull @.str.148, ptr noundef nonnull @.str.169)
  %437 = icmp eq i32 %436, 0
  br i1 %437, label %438, label %439

438:                                              ; preds = %425
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

439:                                              ; preds = %425
  %440 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %441 = getelementptr inbounds i8, ptr %440, i64 96
  %442 = load i32, ptr %441, align 8
  %443 = and i32 %442, -16776961
  %444 = or disjoint i32 %443, 193792
  store i32 %444, ptr %441, align 8
  %445 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %446 = getelementptr inbounds i8, ptr %445, i64 32
  store ptr @.str.3, ptr %446, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %447 = load ptr, ptr %8, align 8, !tbaa !14
  %448 = getelementptr inbounds i8, ptr %447, i64 8
  %449 = load ptr, ptr %448, align 8, !tbaa !30
  %450 = getelementptr inbounds i8, ptr %22, i64 56
  %451 = load ptr, ptr %450, align 8, !tbaa !30
  %452 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %449, ptr noundef nonnull align 4 dereferenceable(4) %451, ptr noundef nonnull @.str.170, ptr noundef nonnull @.str.171)
  %453 = icmp eq i32 %452, 0
  br i1 %453, label %454, label %455

454:                                              ; preds = %439
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

455:                                              ; preds = %439
  %456 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %457 = getelementptr inbounds i8, ptr %456, i64 96
  %458 = load i32, ptr %457, align 8
  %459 = and i32 %458, -16776961
  %460 = or disjoint i32 %459, 194048
  store i32 %460, ptr %457, align 8
  %461 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %462 = getelementptr inbounds i8, ptr %461, i64 32
  store ptr @.str.3, ptr %462, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #5
  store i32 2, ptr %28, align 4, !tbaa !13
  %463 = getelementptr inbounds i8, ptr %22, i64 64
  %464 = load ptr, ptr %463, align 16, !tbaa !31
  %465 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 4 dereferenceable(4) %464, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.172)
  %466 = icmp eq i32 %465, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  br i1 %466, label %467, label %468

467:                                              ; preds = %455
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

468:                                              ; preds = %455
  %469 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %470 = getelementptr inbounds i8, ptr %469, i64 96
  %471 = load i32, ptr %470, align 8
  %472 = and i32 %471, -16776961
  %473 = or disjoint i32 %472, 194304
  store i32 %473, ptr %470, align 8
  %474 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %475 = getelementptr inbounds i8, ptr %474, i64 32
  store ptr @.str.3, ptr %475, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %476 = load ptr, ptr %8, align 8, !tbaa !14
  %477 = getelementptr inbounds i8, ptr %476, i64 24
  %478 = load ptr, ptr %477, align 8, !tbaa !25
  %479 = getelementptr inbounds i8, ptr %22, i64 72
  %480 = load ptr, ptr %479, align 8, !tbaa !25
  %481 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %478, ptr noundef nonnull align 4 dereferenceable(4) %480, ptr noundef nonnull @.str.150, ptr noundef nonnull @.str.173)
  %482 = icmp eq i32 %481, 0
  br i1 %482, label %483, label %484

483:                                              ; preds = %468
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

484:                                              ; preds = %468
  %485 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %486 = getelementptr inbounds i8, ptr %485, i64 96
  %487 = load i32, ptr %486, align 8
  %488 = and i32 %487, -16776961
  %489 = or disjoint i32 %488, 194560
  store i32 %489, ptr %486, align 8
  %490 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %491 = getelementptr inbounds i8, ptr %490, i64 32
  store ptr @.str.3, ptr %491, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %492 = getelementptr inbounds i8, ptr %22, i64 80
  %493 = load ptr, ptr %492, align 16, !tbaa !32
  %494 = call noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareImmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef nonnull align 8 dereferenceable(8) %493, ptr noundef nonnull @.str.156, ptr noundef nonnull @.str.174)
  %495 = icmp eq i32 %494, 0
  br i1 %495, label %496, label %497

496:                                              ; preds = %484
  call void @_Z21jc_test_set_test_faili(i32 noundef 1)
  br label %514

497:                                              ; preds = %484
  %498 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %499 = getelementptr inbounds i8, ptr %498, i64 96
  %500 = load i32, ptr %499, align 8
  %501 = and i32 %500, -16776961
  %502 = or disjoint i32 %501, 194816
  store i32 %502, ptr %499, align 8
  %503 = call noundef ptr @_ZL19jc_test_get_fixturev()
  %504 = getelementptr inbounds i8, ptr %503, i64 32
  store ptr @.str.3, ptr %504, align 8, !tbaa !5
  call void @_Z28jc_test_increment_assertionsv()
  %505 = load ptr, ptr %492, align 16, !tbaa !32
  %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) %305, ptr noundef nonnull align 8 dereferenceable(8) %506, ptr noundef nonnull @.str.158, ptr noundef nonnull @.str.175)
  %508 = icmp eq i32 %507, 0
  br i1 %508, label %509, label %510

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

510:                                              ; preds = %497
  %511 = load ptr, ptr %12, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %511)
  %512 = load ptr, ptr %8, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %512)
  %513 = load ptr, ptr %5, align 8, !tbaa !14
  call void @Longtail_Free(ptr noundef %513)
  call void @Longtail_DisposeAPI(ptr noundef nonnull %29)
  br label %514

514:                                              ; preds = %510, %509, %496, %483, %467, %454, %438, %424, %411, %398, %382, %369, %353, %339, %325
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %22) #5
  br label %515

515:                                              ; preds = %514, %312, %296, %280, %264, %250, %235, %220, %202, %185, %171, %157, %140, %124, %110, %96, %79
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #5
  br label %516

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

517:                                              ; preds = %516, %51
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #5
  br label %518

518:                                              ; preds = %517, %39
  ret void
}

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

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

declare i32 @Longtail_MakeBlockIndex(ptr noundef, i32 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 8}
!16 = !{!"_ZTS16Longtail_HashAPI", !17, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!17 = !{!"_ZTS12Longtail_API", !7, i64 0}
!18 = !{!19, !7, i64 8}
!19 = !{!"_ZTS19Longtail_StoreIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72}
!20 = !{!19, !7, i64 16}
!21 = !{!19, !7, i64 24}
!22 = !{!23, !7, i64 0}
!23 = !{!"_ZTS19Longtail_BlockIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!24 = !{!19, !7, i64 32}
!25 = !{!23, !7, i64 24}
!26 = !{!19, !7, i64 64}
!27 = !{!19, !7, i64 48}
!28 = !{!19, !7, i64 56}
!29 = !{!19, !7, i64 40}
!30 = !{!23, !7, i64 8}
!31 = !{!23, !7, i64 16}
!32 = !{!23, !7, i64 32}


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