; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN43Longtail_Longtail_CacheBlockStore (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_StoredBlock = type { ptr, ptr, ptr, i32 }
%struct.TestAsyncGetBlockComplete = type { %struct.Longtail_AsyncGetStoredBlockAPI, ptr, i32, ptr }
%struct.Longtail_AsyncGetStoredBlockAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_API = type { ptr }
%struct.TestAsyncPutBlockComplete = type <{ %struct.Longtail_AsyncPutStoredBlockAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncPutStoredBlockAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_BlockStore_Stats = type { [22 x i64] }
%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_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_BlockIndex = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_JobAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_CompressionRegistryAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_StorageAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, 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.76 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [80 x i8], align 1

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

declare ptr @Longtail_Alloc(ptr noundef, i64 noundef) #1

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

declare void @_Z28jc_test_increment_assertionsv() #1

declare void @_Z21jc_test_set_test_faili(i32 noundef) #1

declare void @Longtail_Free(ptr noundef) #1

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

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

declare void @Longtail_DisposeAPI(ptr noundef) #1

declare ptr @Longtail_CreateBlake3HashAPI() #1

; 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: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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

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

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

declare ptr @Longtail_CreateInMemStorageAPI() #1

declare ptr @Longtail_CreateFullCompressionRegistry() #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #3 align 2

declare i32 @__gxx_personality_v0(...)

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

declare i64 @Longtail_GetBlockIndexSize(i32 noundef) #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN25TestAsyncPutBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40)) #3 align 2

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN43Longtail_Longtail_CacheBlockStore__TestCase8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %struct.Longtail_StoredBlock, align 8
  %12 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i64, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.TestAsyncPutBlockComplete, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %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
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.Longtail_BlockStore_Stats, align 8
  %41 = alloca %struct.Longtail_BlockStore_Stats, align 8
  %42 = alloca %struct.Longtail_BlockStore_Stats, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %61 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #7
  %62 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %62, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #7
  %63 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %63, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %64 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %64, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  %65 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %65, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  %66 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  store ptr %66, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %67 = load ptr, ptr %7, align 8, !tbaa !5
  %68 = load ptr, ptr %3, align 8, !tbaa !5
  %69 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %67, ptr noundef %68, ptr noundef @.str.270, ptr noundef null, i32 noundef 0)
  store ptr %69, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %70 = load ptr, ptr %7, align 8, !tbaa !5
  %71 = load ptr, ptr %4, align 8, !tbaa !5
  %72 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %70, ptr noundef %71, ptr noundef @.str.270, ptr noundef null, i32 noundef 0)
  store ptr %72, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %73 = load ptr, ptr %7, align 8, !tbaa !5
  %74 = load ptr, ptr %8, align 8, !tbaa !5
  %75 = load ptr, ptr %9, align 8, !tbaa !5
  %76 = call ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef %73, ptr noundef %74, ptr noundef %75)
  store ptr %76, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #7
  %77 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 0
  store ptr null, ptr %77, align 8, !tbaa !9
  %78 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  store ptr null, ptr %78, align 8, !tbaa !12
  %79 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 2
  store ptr null, ptr %79, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 40, ptr %12) #7
  call void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12)
  br label %80

80:                                               ; preds = %1
  %81 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %82 unwind label %103

82:                                               ; preds = %80
  %83 = getelementptr inbounds %struct.jc_test_fixture, ptr %81, i32 0, i32 11
  %84 = load i32, ptr %83, align 8
  %85 = and i32 %84, -16776961
  %86 = or i32 %85, 502784
  store i32 %86, ptr %83, align 8
  %87 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %88 unwind label %103

88:                                               ; preds = %82
  %89 = getelementptr inbounds %struct.jc_test_fixture, ptr %87, i32 0, i32 4
  store ptr @.str.3, ptr %89, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %90 unwind label %103

90:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  store i32 0, ptr %15, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  %91 = load ptr, ptr %10, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %91, i32 0, i32 3
  %93 = load ptr, ptr %92, align 8, !tbaa !19
  %94 = load ptr, ptr %10, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %12, i32 0, i32 0
  %96 = invoke noundef i32 %93(ptr noundef %94, i64 noundef 4711, ptr noundef %95)
          to label %97 unwind label %107

97:                                               ; preds = %90
  store i32 %96, ptr %16, align 4, !tbaa !18
  %98 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef @.str.46, ptr noundef @.str.320, ptr noundef null)
          to label %99 unwind label %107

99:                                               ; preds = %97
  %100 = icmp eq i32 %98, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br i1 %100, label %101, label %111

101:                                              ; preds = %99
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %102 unwind label %103

102:                                              ; preds = %101
  store i32 1, ptr %17, align 4
  br label %1184

103:                                              ; preds = %113, %101, %88, %82, %80
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %13, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %14, align 4
  br label %1197

107:                                              ; preds = %97, %90
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %13, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %1197

111:                                              ; preds = %99
  br label %112

112:                                              ; preds = %111
  br label %113

113:                                              ; preds = %112
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %12)
          to label %114 unwind label %103

114:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %115 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %12, i32 0, i32 3
  %116 = load ptr, ptr %115, align 8, !tbaa !22
  store ptr %116, ptr %18, align 8, !tbaa !5
  br label %117

117:                                              ; preds = %114
  %118 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %119 unwind label %134

119:                                              ; preds = %117
  %120 = getelementptr inbounds %struct.jc_test_fixture, ptr %118, i32 0, i32 11
  %121 = load i32, ptr %120, align 8
  %122 = and i32 %121, -16776961
  %123 = or i32 %122, 503552
  store i32 %123, ptr %120, align 8
  %124 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %125 unwind label %134

125:                                              ; preds = %119
  %126 = getelementptr inbounds %struct.jc_test_fixture, ptr %124, i32 0, i32 4
  store ptr @.str.3, ptr %126, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %127 unwind label %134

127:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 2, ptr %19, align 4, !tbaa !18
  %128 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %12, i32 0, i32 2
  %129 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %128, ptr noundef @.str.138, ptr noundef @.str.275)
          to label %130 unwind label %138

130:                                              ; preds = %127
  %131 = icmp eq i32 %129, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br i1 %131, label %132, label %142

132:                                              ; preds = %130
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %133 unwind label %134

133:                                              ; preds = %132
  store i32 1, ptr %17, align 4
  br label %1183

134:                                              ; preds = %132, %125, %119, %117
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %13, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %14, align 4
  br label %1196

138:                                              ; preds = %127
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %13, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %1196

142:                                              ; preds = %130
  br label %143

143:                                              ; preds = %142
  br label %144

144:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %145 = invoke i64 @Longtail_GetBlockIndexSize(i32 noundef 2)
          to label %146 unwind label %232

146:                                              ; preds = %144
  store i64 %145, ptr %20, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %147 = load i64, ptr %20, align 8, !tbaa !25
  %148 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %147)
          to label %149 unwind label %236

149:                                              ; preds = %146
  store ptr %148, ptr %21, align 8, !tbaa !5
  %150 = load ptr, ptr %21, align 8, !tbaa !5
  %151 = invoke ptr @Longtail_InitBlockIndex(ptr noundef %150, i32 noundef 2)
          to label %152 unwind label %236

152:                                              ; preds = %149
  %153 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  store ptr %151, ptr %153, align 8, !tbaa !12
  %154 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  %155 = load ptr, ptr %154, align 8, !tbaa !12
  %156 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %155, i32 0, i32 0
  %157 = load ptr, ptr %156, align 8, !tbaa !26
  store i64 3735928559, ptr %157, align 8, !tbaa !25
  %158 = load ptr, ptr %6, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %158, i32 0, i32 1
  %160 = load ptr, ptr %159, align 8, !tbaa !28
  %161 = load ptr, ptr %6, align 8, !tbaa !5
  %162 = invoke noundef i32 %160(ptr noundef %161)
          to label %163 unwind label %236

163:                                              ; preds = %152
  %164 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  %165 = load ptr, ptr %164, align 8, !tbaa !12
  %166 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %165, i32 0, i32 1
  %167 = load ptr, ptr %166, align 8, !tbaa !30
  store i32 %162, ptr %167, align 4, !tbaa !18
  %168 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  %169 = load ptr, ptr %168, align 8, !tbaa !12
  %170 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %169, i32 0, i32 3
  %171 = load ptr, ptr %170, align 8, !tbaa !31
  store i32 0, ptr %171, align 4, !tbaa !18
  %172 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  %173 = load ptr, ptr %172, align 8, !tbaa !12
  %174 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %173, i32 0, i32 4
  %175 = load ptr, ptr %174, align 8, !tbaa !32
  %176 = getelementptr inbounds i64, ptr %175, i64 0
  store i64 251666341, ptr %176, align 8, !tbaa !25
  %177 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  %178 = load ptr, ptr %177, align 8, !tbaa !12
  %179 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %178, i32 0, i32 4
  %180 = load ptr, ptr %179, align 8, !tbaa !32
  %181 = getelementptr inbounds i64, ptr %180, i64 1
  store i64 268378021, ptr %181, align 8, !tbaa !25
  %182 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  %183 = load ptr, ptr %182, align 8, !tbaa !12
  %184 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %183, i32 0, i32 5
  %185 = load ptr, ptr %184, align 8, !tbaa !33
  %186 = getelementptr inbounds i32, ptr %185, i64 0
  store i32 4711, ptr %186, align 4, !tbaa !18
  %187 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  %188 = load ptr, ptr %187, align 8, !tbaa !12
  %189 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %188, i32 0, i32 5
  %190 = load ptr, ptr %189, align 8, !tbaa !33
  %191 = getelementptr inbounds i32, ptr %190, i64 1
  store i32 1147, ptr %191, align 4, !tbaa !18
  %192 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  %193 = load ptr, ptr %192, align 8, !tbaa !12
  %194 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %193, i32 0, i32 2
  %195 = load ptr, ptr %194, align 8, !tbaa !34
  store i32 2, ptr %195, align 4, !tbaa !18
  %196 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 3
  store i32 5858, ptr %196, align 8, !tbaa !35
  %197 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 3
  %198 = load i32, ptr %197, align 8, !tbaa !35
  %199 = zext i32 %198 to i64
  %200 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %199)
          to label %201 unwind label %236

201:                                              ; preds = %163
  %202 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 2
  store ptr %200, ptr %202, align 8, !tbaa !13
  %203 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 2
  %204 = load ptr, ptr %203, align 8, !tbaa !13
  call void @llvm.memset.p0.i64(ptr align 1 %204, i8 77, i64 4711, i1 false)
  %205 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 2
  %206 = load ptr, ptr %205, align 8, !tbaa !13
  %207 = getelementptr inbounds i8, ptr %206, i64 4711
  call void @llvm.memset.p0.i64(ptr align 1 %207, i8 13, i64 1147, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  invoke void @_ZN25TestAsyncPutBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %22)
          to label %208 unwind label %240

208:                                              ; preds = %201
  br label %209

209:                                              ; preds = %208
  %210 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %211 unwind label %244

211:                                              ; preds = %209
  %212 = getelementptr inbounds %struct.jc_test_fixture, ptr %210, i32 0, i32 11
  %213 = load i32, ptr %212, align 8
  %214 = and i32 %213, -16776961
  %215 = or i32 %214, 508672
  store i32 %215, ptr %212, align 8
  %216 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %217 unwind label %244

217:                                              ; preds = %211
  %218 = getelementptr inbounds %struct.jc_test_fixture, ptr %216, i32 0, i32 4
  store ptr @.str.3, ptr %218, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %219 unwind label %244

219:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  store i32 0, ptr %23, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  %220 = load ptr, ptr %9, align 8, !tbaa !5
  %221 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %220, i32 0, i32 1
  %222 = load ptr, ptr %221, align 8, !tbaa !36
  %223 = load ptr, ptr %9, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.TestAsyncPutBlockComplete, ptr %22, i32 0, i32 0
  %225 = invoke noundef i32 %222(ptr noundef %223, ptr noundef %11, ptr noundef %224)
          to label %226 unwind label %248

226:                                              ; preds = %219
  store i32 %225, ptr %24, align 4, !tbaa !18
  %227 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef @.str.46, ptr noundef @.str.321, ptr noundef null)
          to label %228 unwind label %248

228:                                              ; preds = %226
  %229 = icmp eq i32 %227, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br i1 %229, label %230, label %252

230:                                              ; preds = %228
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %231 unwind label %244

231:                                              ; preds = %230
  store i32 1, ptr %17, align 4
  br label %1182

232:                                              ; preds = %144
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  store ptr %234, ptr %13, align 8
  %235 = extractvalue { ptr, i32 } %233, 1
  store i32 %235, ptr %14, align 4
  br label %1195

236:                                              ; preds = %163, %152, %149, %146
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %13, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %14, align 4
  br label %1194

240:                                              ; preds = %201
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %13, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %14, align 4
  br label %1193

244:                                              ; preds = %274, %267, %261, %259, %255, %254, %230, %217, %211, %209
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %13, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %14, align 4
  br label %1192

248:                                              ; preds = %226, %219
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %13, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %1192

252:                                              ; preds = %228
  br label %253

253:                                              ; preds = %252
  br label %254

254:                                              ; preds = %253
  invoke void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %22)
          to label %255 unwind label %244

255:                                              ; preds = %254
  %256 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 1
  %257 = load ptr, ptr %256, align 8, !tbaa !12
  invoke void @Longtail_Free(ptr noundef %257)
          to label %258 unwind label %244

258:                                              ; preds = %255
  br label %259

259:                                              ; preds = %258
  %260 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %261 unwind label %244

261:                                              ; preds = %259
  %262 = getelementptr inbounds %struct.jc_test_fixture, ptr %260, i32 0, i32 11
  %263 = load i32, ptr %262, align 8
  %264 = and i32 %263, -16776961
  %265 = or i32 %264, 509440
  store i32 %265, ptr %262, align 8
  %266 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %267 unwind label %244

267:                                              ; preds = %261
  %268 = getelementptr inbounds %struct.jc_test_fixture, ptr %266, i32 0, i32 4
  store ptr @.str.3, ptr %268, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %269 unwind label %244

269:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  store i32 0, ptr %25, align 4, !tbaa !18
  %270 = getelementptr inbounds %struct.TestAsyncPutBlockComplete, ptr %22, i32 0, i32 2
  %271 = invoke 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) %270, ptr noundef @.str.46, ptr noundef @.str.273, ptr noundef null)
          to label %272 unwind label %276

272:                                              ; preds = %269
  %273 = icmp eq i32 %271, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br i1 %273, label %274, label %280

274:                                              ; preds = %272
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %275 unwind label %244

275:                                              ; preds = %274
  store i32 1, ptr %17, align 4
  br label %1182

276:                                              ; preds = %269
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %13, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %1192

280:                                              ; preds = %272
  br label %281

281:                                              ; preds = %280
  br label %282

282:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 40, ptr %26) #7
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26)
          to label %283 unwind label %307

283:                                              ; preds = %282
  br label %284

284:                                              ; preds = %283
  %285 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %286 unwind label %311

286:                                              ; preds = %284
  %287 = getelementptr inbounds %struct.jc_test_fixture, ptr %285, i32 0, i32 11
  %288 = load i32, ptr %287, align 8
  %289 = and i32 %288, -16776961
  %290 = or i32 %289, 510208
  store i32 %290, ptr %287, align 8
  %291 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %292 unwind label %311

292:                                              ; preds = %286
  %293 = getelementptr inbounds %struct.jc_test_fixture, ptr %291, i32 0, i32 4
  store ptr @.str.3, ptr %293, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %294 unwind label %311

294:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  store i32 0, ptr %27, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  %295 = load ptr, ptr %10, align 8, !tbaa !5
  %296 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %295, i32 0, i32 3
  %297 = load ptr, ptr %296, align 8, !tbaa !19
  %298 = load ptr, ptr %10, align 8, !tbaa !5
  %299 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %26, i32 0, i32 0
  %300 = invoke noundef i32 %297(ptr noundef %298, i64 noundef 3735928559, ptr noundef %299)
          to label %301 unwind label %315

301:                                              ; preds = %294
  store i32 %300, ptr %28, align 4, !tbaa !18
  %302 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef @.str.46, ptr noundef @.str.322, ptr noundef null)
          to label %303 unwind label %315

303:                                              ; preds = %301
  %304 = icmp eq i32 %302, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br i1 %304, label %305, label %319

305:                                              ; preds = %303
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %306 unwind label %311

306:                                              ; preds = %305
  store i32 1, ptr %17, align 4
  br label %1181

307:                                              ; preds = %282
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %13, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %14, align 4
  br label %1191

311:                                              ; preds = %637, %634, %626, %611, %605, %603, %594, %583, %577, %575, %566, %554, %548, %546, %537, %525, %519, %517, %508, %496, %490, %488, %479, %467, %461, %459, %450, %439, %433, %431, %422, %405, %399, %397, %388, %377, %371, %369, %364, %359, %357, %351, %349, %340, %333, %327, %325, %321, %305, %292, %286, %284
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %13, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %14, align 4
  br label %1190

315:                                              ; preds = %301, %294
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %13, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %1190

319:                                              ; preds = %303
  br label %320

320:                                              ; preds = %319
  br label %321

321:                                              ; preds = %320
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %26)
          to label %322 unwind label %311

322:                                              ; preds = %321
  %323 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %26, i32 0, i32 3
  %324 = load ptr, ptr %323, align 8, !tbaa !22
  store ptr %324, ptr %18, align 8, !tbaa !5
  br label %325

325:                                              ; preds = %322
  %326 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %327 unwind label %311

327:                                              ; preds = %325
  %328 = getelementptr inbounds %struct.jc_test_fixture, ptr %326, i32 0, i32 11
  %329 = load i32, ptr %328, align 8
  %330 = and i32 %329, -16776961
  %331 = or i32 %330, 510976
  store i32 %331, ptr %328, align 8
  %332 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %333 unwind label %311

333:                                              ; preds = %327
  %334 = getelementptr inbounds %struct.jc_test_fixture, ptr %332, i32 0, i32 4
  store ptr @.str.3, ptr %334, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %335 unwind label %311

335:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  store i32 0, ptr %29, align 4, !tbaa !18
  %336 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %26, i32 0, i32 2
  %337 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %336, ptr noundef @.str.46, ptr noundef @.str.323, ptr noundef null)
          to label %338 unwind label %342

338:                                              ; preds = %335
  %339 = icmp eq i32 %337, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br i1 %339, label %340, label %346

340:                                              ; preds = %338
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %341 unwind label %311

341:                                              ; preds = %340
  store i32 1, ptr %17, align 4
  br label %1181

342:                                              ; preds = %335
  %343 = landingpad { ptr, i32 }
          cleanup
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %13, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %1190

346:                                              ; preds = %338
  br label %347

347:                                              ; preds = %346
  br label %348

348:                                              ; preds = %347
  br label %349

349:                                              ; preds = %348
  %350 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %351 unwind label %311

351:                                              ; preds = %349
  %352 = getelementptr inbounds %struct.jc_test_fixture, ptr %350, i32 0, i32 11
  %353 = load i32, ptr %352, align 8
  %354 = and i32 %353, -16776961
  %355 = or i32 %354, 511232
  store i32 %355, ptr %352, align 8
  %356 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %357 unwind label %311

357:                                              ; preds = %351
  %358 = getelementptr inbounds %struct.jc_test_fixture, ptr %356, i32 0, i32 4
  store ptr @.str.3, ptr %358, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %359 unwind label %311

359:                                              ; preds = %357
  %360 = load ptr, ptr %18, align 8, !tbaa !5
  %361 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %360, ptr noundef @.str.276, ptr noundef @.str.277)
          to label %362 unwind label %311

362:                                              ; preds = %359
  %363 = icmp eq i32 %361, 0
  br i1 %363, label %364, label %366

364:                                              ; preds = %362
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %365 unwind label %311

365:                                              ; preds = %364
  store i32 1, ptr %17, align 4
  br label %1181

366:                                              ; preds = %362
  br label %367

367:                                              ; preds = %366
  br label %368

368:                                              ; preds = %367
  br label %369

369:                                              ; preds = %368
  %370 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %371 unwind label %311

371:                                              ; preds = %369
  %372 = getelementptr inbounds %struct.jc_test_fixture, ptr %370, i32 0, i32 11
  %373 = load i32, ptr %372, align 8
  %374 = and i32 %373, -16776961
  %375 = or i32 %374, 511744
  store i32 %375, ptr %372, align 8
  %376 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %377 unwind label %311

377:                                              ; preds = %371
  %378 = getelementptr inbounds %struct.jc_test_fixture, ptr %376, i32 0, i32 4
  store ptr @.str.3, ptr %378, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %379 unwind label %311

379:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  store i32 -559038737, ptr %30, align 4, !tbaa !18
  %380 = load ptr, ptr %18, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %380, i32 0, i32 1
  %382 = load ptr, ptr %381, align 8, !tbaa !12
  %383 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %382, i32 0, i32 0
  %384 = load ptr, ptr %383, align 8, !tbaa !26
  %385 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 8 dereferenceable(8) %384, ptr noundef @.str.108, ptr noundef @.str.278)
          to label %386 unwind label %390

386:                                              ; preds = %379
  %387 = icmp eq i32 %385, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br i1 %387, label %388, label %394

388:                                              ; preds = %386
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %389 unwind label %311

389:                                              ; preds = %388
  store i32 1, ptr %17, align 4
  br label %1181

390:                                              ; preds = %379
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %13, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %1190

394:                                              ; preds = %386
  br label %395

395:                                              ; preds = %394
  br label %396

396:                                              ; preds = %395
  br label %397

397:                                              ; preds = %396
  %398 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %399 unwind label %311

399:                                              ; preds = %397
  %400 = getelementptr inbounds %struct.jc_test_fixture, ptr %398, i32 0, i32 11
  %401 = load i32, ptr %400, align 8
  %402 = and i32 %401, -16776961
  %403 = or i32 %402, 512000
  store i32 %403, ptr %400, align 8
  %404 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %405 unwind label %311

405:                                              ; preds = %399
  %406 = getelementptr inbounds %struct.jc_test_fixture, ptr %404, i32 0, i32 4
  store ptr @.str.3, ptr %406, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %407 unwind label %311

407:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %408 = load ptr, ptr %6, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %408, i32 0, i32 1
  %410 = load ptr, ptr %409, align 8, !tbaa !28
  %411 = load ptr, ptr %6, align 8, !tbaa !5
  %412 = invoke noundef i32 %410(ptr noundef %411)
          to label %413 unwind label %424

413:                                              ; preds = %407
  store i32 %412, ptr %31, align 4, !tbaa !18
  %414 = load ptr, ptr %18, align 8, !tbaa !5
  %415 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %414, i32 0, i32 1
  %416 = load ptr, ptr %415, align 8, !tbaa !12
  %417 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %416, i32 0, i32 1
  %418 = load ptr, ptr %417, align 8, !tbaa !30
  %419 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 4 dereferenceable(4) %418, ptr noundef @.str.76, ptr noundef @.str.279)
          to label %420 unwind label %424

420:                                              ; preds = %413
  %421 = icmp eq i32 %419, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br i1 %421, label %422, label %428

422:                                              ; preds = %420
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %423 unwind label %311

423:                                              ; preds = %422
  store i32 1, ptr %17, align 4
  br label %1181

424:                                              ; preds = %413, %407
  %425 = landingpad { ptr, i32 }
          cleanup
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %13, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %1190

428:                                              ; preds = %420
  br label %429

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %429
  br label %431

431:                                              ; preds = %430
  %432 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %433 unwind label %311

433:                                              ; preds = %431
  %434 = getelementptr inbounds %struct.jc_test_fixture, ptr %432, i32 0, i32 11
  %435 = load i32, ptr %434, align 8
  %436 = and i32 %435, -16776961
  %437 = or i32 %436, 512256
  store i32 %437, ptr %434, align 8
  %438 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %439 unwind label %311

439:                                              ; preds = %433
  %440 = getelementptr inbounds %struct.jc_test_fixture, ptr %438, i32 0, i32 4
  store ptr @.str.3, ptr %440, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %441 unwind label %311

441:                                              ; preds = %439
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  store i32 0, ptr %32, align 4, !tbaa !18
  %442 = load ptr, ptr %18, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %442, i32 0, i32 1
  %444 = load ptr, ptr %443, align 8, !tbaa !12
  %445 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %444, i32 0, i32 3
  %446 = load ptr, ptr %445, align 8, !tbaa !31
  %447 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIijEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %446, ptr noundef @.str.46, ptr noundef @.str.280, ptr noundef null)
          to label %448 unwind label %452

448:                                              ; preds = %441
  %449 = icmp eq i32 %447, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br i1 %449, label %450, label %456

450:                                              ; preds = %448
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %451 unwind label %311

451:                                              ; preds = %450
  store i32 1, ptr %17, align 4
  br label %1181

452:                                              ; preds = %441
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %13, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %1190

456:                                              ; preds = %448
  br label %457

457:                                              ; preds = %456
  br label %458

458:                                              ; preds = %457
  br label %459

459:                                              ; preds = %458
  %460 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %461 unwind label %311

461:                                              ; preds = %459
  %462 = getelementptr inbounds %struct.jc_test_fixture, ptr %460, i32 0, i32 11
  %463 = load i32, ptr %462, align 8
  %464 = and i32 %463, -16776961
  %465 = or i32 %464, 512512
  store i32 %465, ptr %462, align 8
  %466 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %467 unwind label %311

467:                                              ; preds = %461
  %468 = getelementptr inbounds %struct.jc_test_fixture, ptr %466, i32 0, i32 4
  store ptr @.str.3, ptr %468, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %469 unwind label %311

469:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  store i32 251666341, ptr %33, align 4, !tbaa !18
  %470 = load ptr, ptr %18, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %470, i32 0, i32 1
  %472 = load ptr, ptr %471, align 8, !tbaa !12
  %473 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %472, i32 0, i32 4
  %474 = load ptr, ptr %473, align 8, !tbaa !32
  %475 = getelementptr inbounds i64, ptr %474, i64 0
  %476 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 8 dereferenceable(8) %475, ptr noundef @.str.281, ptr noundef @.str.282)
          to label %477 unwind label %481

477:                                              ; preds = %469
  %478 = icmp eq i32 %476, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br i1 %478, label %479, label %485

479:                                              ; preds = %477
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %480 unwind label %311

480:                                              ; preds = %479
  store i32 1, ptr %17, align 4
  br label %1181

481:                                              ; preds = %469
  %482 = landingpad { ptr, i32 }
          cleanup
  %483 = extractvalue { ptr, i32 } %482, 0
  store ptr %483, ptr %13, align 8
  %484 = extractvalue { ptr, i32 } %482, 1
  store i32 %484, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %1190

485:                                              ; preds = %477
  br label %486

486:                                              ; preds = %485
  br label %487

487:                                              ; preds = %486
  br label %488

488:                                              ; preds = %487
  %489 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %490 unwind label %311

490:                                              ; preds = %488
  %491 = getelementptr inbounds %struct.jc_test_fixture, ptr %489, i32 0, i32 11
  %492 = load i32, ptr %491, align 8
  %493 = and i32 %492, -16776961
  %494 = or i32 %493, 512768
  store i32 %494, ptr %491, align 8
  %495 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %496 unwind label %311

496:                                              ; preds = %490
  %497 = getelementptr inbounds %struct.jc_test_fixture, ptr %495, i32 0, i32 4
  store ptr @.str.3, ptr %497, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %498 unwind label %311

498:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  store i32 268378021, ptr %34, align 4, !tbaa !18
  %499 = load ptr, ptr %18, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %499, i32 0, i32 1
  %501 = load ptr, ptr %500, align 8, !tbaa !12
  %502 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %501, i32 0, i32 4
  %503 = load ptr, ptr %502, align 8, !tbaa !32
  %504 = getelementptr inbounds i64, ptr %503, i64 1
  %505 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 8 dereferenceable(8) %504, ptr noundef @.str.283, ptr noundef @.str.284)
          to label %506 unwind label %510

506:                                              ; preds = %498
  %507 = icmp eq i32 %505, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br i1 %507, label %508, label %514

508:                                              ; preds = %506
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %509 unwind label %311

509:                                              ; preds = %508
  store i32 1, ptr %17, align 4
  br label %1181

510:                                              ; preds = %498
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %13, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br label %1190

514:                                              ; preds = %506
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515
  br label %517

517:                                              ; preds = %516
  %518 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %519 unwind label %311

519:                                              ; preds = %517
  %520 = getelementptr inbounds %struct.jc_test_fixture, ptr %518, i32 0, i32 11
  %521 = load i32, ptr %520, align 8
  %522 = and i32 %521, -16776961
  %523 = or i32 %522, 513024
  store i32 %523, ptr %520, align 8
  %524 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %525 unwind label %311

525:                                              ; preds = %519
  %526 = getelementptr inbounds %struct.jc_test_fixture, ptr %524, i32 0, i32 4
  store ptr @.str.3, ptr %526, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %527 unwind label %311

527:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  store i32 4711, ptr %35, align 4, !tbaa !18
  %528 = load ptr, ptr %18, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %528, i32 0, i32 1
  %530 = load ptr, ptr %529, align 8, !tbaa !12
  %531 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %530, i32 0, i32 5
  %532 = load ptr, ptr %531, align 8, !tbaa !33
  %533 = getelementptr inbounds i32, ptr %532, i64 0
  %534 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) %533, ptr noundef @.str.285, ptr noundef @.str.286)
          to label %535 unwind label %539

535:                                              ; preds = %527
  %536 = icmp eq i32 %534, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br i1 %536, label %537, label %543

537:                                              ; preds = %535
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %538 unwind label %311

538:                                              ; preds = %537
  store i32 1, ptr %17, align 4
  br label %1181

539:                                              ; preds = %527
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %13, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br label %1190

543:                                              ; preds = %535
  br label %544

544:                                              ; preds = %543
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545
  %547 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %548 unwind label %311

548:                                              ; preds = %546
  %549 = getelementptr inbounds %struct.jc_test_fixture, ptr %547, i32 0, i32 11
  %550 = load i32, ptr %549, align 8
  %551 = and i32 %550, -16776961
  %552 = or i32 %551, 513280
  store i32 %552, ptr %549, align 8
  %553 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %554 unwind label %311

554:                                              ; preds = %548
  %555 = getelementptr inbounds %struct.jc_test_fixture, ptr %553, i32 0, i32 4
  store ptr @.str.3, ptr %555, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %556 unwind label %311

556:                                              ; preds = %554
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  store i32 1147, ptr %36, align 4, !tbaa !18
  %557 = load ptr, ptr %18, align 8, !tbaa !5
  %558 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %557, i32 0, i32 1
  %559 = load ptr, ptr %558, align 8, !tbaa !12
  %560 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %559, i32 0, i32 5
  %561 = load ptr, ptr %560, align 8, !tbaa !33
  %562 = getelementptr inbounds i32, ptr %561, i64 1
  %563 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 4 dereferenceable(4) %562, ptr noundef @.str.287, ptr noundef @.str.288)
          to label %564 unwind label %568

564:                                              ; preds = %556
  %565 = icmp eq i32 %563, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br i1 %565, label %566, label %572

566:                                              ; preds = %564
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %567 unwind label %311

567:                                              ; preds = %566
  store i32 1, ptr %17, align 4
  br label %1181

568:                                              ; preds = %556
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %13, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br label %1190

572:                                              ; preds = %564
  br label %573

573:                                              ; preds = %572
  br label %574

574:                                              ; preds = %573
  br label %575

575:                                              ; preds = %574
  %576 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %577 unwind label %311

577:                                              ; preds = %575
  %578 = getelementptr inbounds %struct.jc_test_fixture, ptr %576, i32 0, i32 11
  %579 = load i32, ptr %578, align 8
  %580 = and i32 %579, -16776961
  %581 = or i32 %580, 513536
  store i32 %581, ptr %578, align 8
  %582 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %583 unwind label %311

583:                                              ; preds = %577
  %584 = getelementptr inbounds %struct.jc_test_fixture, ptr %582, i32 0, i32 4
  store ptr @.str.3, ptr %584, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %585 unwind label %311

585:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  store i32 2, ptr %37, align 4, !tbaa !18
  %586 = load ptr, ptr %18, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %586, i32 0, i32 1
  %588 = load ptr, ptr %587, align 8, !tbaa !12
  %589 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %588, i32 0, i32 2
  %590 = load ptr, ptr %589, align 8, !tbaa !34
  %591 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %590, ptr noundef @.str.138, ptr noundef @.str.289)
          to label %592 unwind label %596

592:                                              ; preds = %585
  %593 = icmp eq i32 %591, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br i1 %593, label %594, label %600

594:                                              ; preds = %592
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %595 unwind label %311

595:                                              ; preds = %594
  store i32 1, ptr %17, align 4
  br label %1181

596:                                              ; preds = %585
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %13, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %1190

600:                                              ; preds = %592
  br label %601

601:                                              ; preds = %600
  br label %602

602:                                              ; preds = %601
  br label %603

603:                                              ; preds = %602
  %604 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %605 unwind label %311

605:                                              ; preds = %603
  %606 = getelementptr inbounds %struct.jc_test_fixture, ptr %604, i32 0, i32 11
  %607 = load i32, ptr %606, align 8
  %608 = and i32 %607, -16776961
  %609 = or i32 %608, 513792
  store i32 %609, ptr %606, align 8
  %610 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %611 unwind label %311

611:                                              ; preds = %605
  %612 = getelementptr inbounds %struct.jc_test_fixture, ptr %610, i32 0, i32 4
  store ptr @.str.3, ptr %612, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %613 unwind label %311

613:                                              ; preds = %611
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  store i32 0, ptr %38, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %614 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 2
  %615 = load ptr, ptr %614, align 8, !tbaa !13
  %616 = load ptr, ptr %18, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %616, i32 0, i32 2
  %618 = load ptr, ptr %617, align 8, !tbaa !13
  %619 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 3
  %620 = load i32, ptr %619, align 8, !tbaa !35
  %621 = zext i32 %620 to i64
  %622 = call i32 @memcmp(ptr noundef %615, ptr noundef %618, i64 noundef %621) #8
  store i32 %622, ptr %39, align 4, !tbaa !18
  %623 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef @.str.46, ptr noundef @.str.290, ptr noundef null)
          to label %624 unwind label %628

624:                                              ; preds = %613
  %625 = icmp eq i32 %623, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br i1 %625, label %626, label %632

626:                                              ; preds = %624
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %627 unwind label %311

627:                                              ; preds = %626
  store i32 1, ptr %17, align 4
  br label %1181

628:                                              ; preds = %613
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %13, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %1190

632:                                              ; preds = %624
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  %635 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %11, i32 0, i32 2
  %636 = load ptr, ptr %635, align 8, !tbaa !13
  invoke void @Longtail_Free(ptr noundef %636)
          to label %637 unwind label %311

637:                                              ; preds = %634
  %638 = load ptr, ptr %18, align 8, !tbaa !5
  %639 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %638, i32 0, i32 0
  %640 = load ptr, ptr %639, align 8, !tbaa !9
  %641 = load ptr, ptr %18, align 8, !tbaa !5
  %642 = invoke noundef i32 %640(ptr noundef %641)
          to label %643 unwind label %311

643:                                              ; preds = %637
  call void @llvm.lifetime.start.p0(i64 176, ptr %40) #7
  %644 = load ptr, ptr %10, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %644, i32 0, i32 6
  %646 = load ptr, ptr %645, align 8, !tbaa !37
  %647 = load ptr, ptr %10, align 8, !tbaa !5
  %648 = invoke noundef i32 %646(ptr noundef %647, ptr noundef %40)
          to label %649 unwind label %680

649:                                              ; preds = %643
  call void @llvm.lifetime.start.p0(i64 176, ptr %41) #7
  %650 = load ptr, ptr %9, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %650, i32 0, i32 6
  %652 = load ptr, ptr %651, align 8, !tbaa !37
  %653 = load ptr, ptr %9, align 8, !tbaa !5
  %654 = invoke noundef i32 %652(ptr noundef %653, ptr noundef %41)
          to label %655 unwind label %684

655:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 176, ptr %42) #7
  %656 = load ptr, ptr %8, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %656, i32 0, i32 6
  %658 = load ptr, ptr %657, align 8, !tbaa !37
  %659 = load ptr, ptr %8, align 8, !tbaa !5
  %660 = invoke noundef i32 %658(ptr noundef %659, ptr noundef %42)
          to label %661 unwind label %688

661:                                              ; preds = %655
  br label %662

662:                                              ; preds = %661
  %663 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %664 unwind label %688

664:                                              ; preds = %662
  %665 = getelementptr inbounds %struct.jc_test_fixture, ptr %663, i32 0, i32 11
  %666 = load i32, ptr %665, align 8
  %667 = and i32 %666, -16776961
  %668 = or i32 %667, 516608
  store i32 %668, ptr %665, align 8
  %669 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %670 unwind label %688

670:                                              ; preds = %664
  %671 = getelementptr inbounds %struct.jc_test_fixture, ptr %669, i32 0, i32 4
  store ptr @.str.3, ptr %671, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %672 unwind label %688

672:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  store i32 2, ptr %43, align 4, !tbaa !18
  %673 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %674 = getelementptr inbounds [22 x i64], ptr %673, i64 0, i64 0
  %675 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull align 8 dereferenceable(8) %674, ptr noundef @.str.138, ptr noundef @.str.324)
          to label %676 unwind label %692

676:                                              ; preds = %672
  %677 = icmp eq i32 %675, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br i1 %677, label %678, label %696

678:                                              ; preds = %676
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %679 unwind label %688

679:                                              ; preds = %678
  store i32 1, ptr %17, align 4
  br label %1180

680:                                              ; preds = %643
  %681 = landingpad { ptr, i32 }
          cleanup
  %682 = extractvalue { ptr, i32 } %681, 0
  store ptr %682, ptr %13, align 8
  %683 = extractvalue { ptr, i32 } %681, 1
  store i32 %683, ptr %14, align 4
  br label %1189

684:                                              ; preds = %649
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %13, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %14, align 4
  br label %1188

688:                                              ; preds = %1175, %1168, %1161, %1154, %1147, %1140, %1133, %1126, %1115, %1107, %1101, %1099, %1090, %1082, %1076, %1074, %1065, %1057, %1051, %1049, %1040, %1032, %1026, %1024, %1015, %1007, %1001, %999, %990, %982, %976, %974, %965, %957, %951, %949, %940, %932, %926, %924, %915, %907, %901, %899, %890, %882, %876, %874, %865, %857, %851, %849, %840, %832, %826, %824, %815, %807, %801, %799, %790, %782, %776, %774, %765, %757, %751, %749, %740, %732, %726, %724, %715, %707, %701, %699, %678, %670, %664, %662, %655
  %689 = landingpad { ptr, i32 }
          cleanup
  %690 = extractvalue { ptr, i32 } %689, 0
  store ptr %690, ptr %13, align 8
  %691 = extractvalue { ptr, i32 } %689, 1
  store i32 %691, ptr %14, align 4
  br label %1187

692:                                              ; preds = %672
  %693 = landingpad { ptr, i32 }
          cleanup
  %694 = extractvalue { ptr, i32 } %693, 0
  store ptr %694, ptr %13, align 8
  %695 = extractvalue { ptr, i32 } %693, 1
  store i32 %695, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %1187

696:                                              ; preds = %676
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %697
  br label %699

699:                                              ; preds = %698
  %700 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %701 unwind label %688

701:                                              ; preds = %699
  %702 = getelementptr inbounds %struct.jc_test_fixture, ptr %700, i32 0, i32 11
  %703 = load i32, ptr %702, align 8
  %704 = and i32 %703, -16776961
  %705 = or i32 %704, 516864
  store i32 %705, ptr %702, align 8
  %706 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %707 unwind label %688

707:                                              ; preds = %701
  %708 = getelementptr inbounds %struct.jc_test_fixture, ptr %706, i32 0, i32 4
  store ptr @.str.3, ptr %708, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %709 unwind label %688

709:                                              ; preds = %707
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  store i32 0, ptr %44, align 4, !tbaa !18
  %710 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %711 = getelementptr inbounds [22 x i64], ptr %710, i64 0, i64 5
  %712 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIimEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 8 dereferenceable(8) %711, ptr noundef @.str.46, ptr noundef @.str.325, ptr noundef null)
          to label %713 unwind label %717

713:                                              ; preds = %709
  %714 = icmp eq i32 %712, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br i1 %714, label %715, label %721

715:                                              ; preds = %713
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %716 unwind label %688

716:                                              ; preds = %715
  store i32 1, ptr %17, align 4
  br label %1180

717:                                              ; preds = %709
  %718 = landingpad { ptr, i32 }
          cleanup
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %13, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %1187

721:                                              ; preds = %713
  br label %722

722:                                              ; preds = %721
  br label %723

723:                                              ; preds = %722
  br label %724

724:                                              ; preds = %723
  %725 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %726 unwind label %688

726:                                              ; preds = %724
  %727 = getelementptr inbounds %struct.jc_test_fixture, ptr %725, i32 0, i32 11
  %728 = load i32, ptr %727, align 8
  %729 = and i32 %728, -16776961
  %730 = or i32 %729, 517120
  store i32 %730, ptr %727, align 8
  %731 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %732 unwind label %688

732:                                              ; preds = %726
  %733 = getelementptr inbounds %struct.jc_test_fixture, ptr %731, i32 0, i32 4
  store ptr @.str.3, ptr %733, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %734 unwind label %688

734:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  store i32 2, ptr %45, align 4, !tbaa !18
  %735 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %736 = getelementptr inbounds [22 x i64], ptr %735, i64 0, i64 3
  %737 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 8 dereferenceable(8) %736, ptr noundef @.str.138, ptr noundef @.str.326)
          to label %738 unwind label %742

738:                                              ; preds = %734
  %739 = icmp eq i32 %737, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br i1 %739, label %740, label %746

740:                                              ; preds = %738
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %741 unwind label %688

741:                                              ; preds = %740
  store i32 1, ptr %17, align 4
  br label %1180

742:                                              ; preds = %734
  %743 = landingpad { ptr, i32 }
          cleanup
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %13, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %1187

746:                                              ; preds = %738
  br label %747

747:                                              ; preds = %746
  br label %748

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %748
  %750 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %751 unwind label %688

751:                                              ; preds = %749
  %752 = getelementptr inbounds %struct.jc_test_fixture, ptr %750, i32 0, i32 11
  %753 = load i32, ptr %752, align 8
  %754 = and i32 %753, -16776961
  %755 = or i32 %754, 517376
  store i32 %755, ptr %752, align 8
  %756 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %757 unwind label %688

757:                                              ; preds = %751
  %758 = getelementptr inbounds %struct.jc_test_fixture, ptr %756, i32 0, i32 4
  store ptr @.str.3, ptr %758, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %759 unwind label %688

759:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  store i32 0, ptr %46, align 4, !tbaa !18
  %760 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %761 = getelementptr inbounds [22 x i64], ptr %760, i64 0, i64 8
  %762 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIimEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 8 dereferenceable(8) %761, ptr noundef @.str.46, ptr noundef @.str.327, ptr noundef null)
          to label %763 unwind label %767

763:                                              ; preds = %759
  %764 = icmp eq i32 %762, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br i1 %764, label %765, label %771

765:                                              ; preds = %763
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %766 unwind label %688

766:                                              ; preds = %765
  store i32 1, ptr %17, align 4
  br label %1180

767:                                              ; preds = %759
  %768 = landingpad { ptr, i32 }
          cleanup
  %769 = extractvalue { ptr, i32 } %768, 0
  store ptr %769, ptr %13, align 8
  %770 = extractvalue { ptr, i32 } %768, 1
  store i32 %770, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %1187

771:                                              ; preds = %763
  br label %772

772:                                              ; preds = %771
  br label %773

773:                                              ; preds = %772
  br label %774

774:                                              ; preds = %773
  %775 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %776 unwind label %688

776:                                              ; preds = %774
  %777 = getelementptr inbounds %struct.jc_test_fixture, ptr %775, i32 0, i32 11
  %778 = load i32, ptr %777, align 8
  %779 = and i32 %778, -16776961
  %780 = or i32 %779, 517632
  store i32 %780, ptr %777, align 8
  %781 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %782 unwind label %688

782:                                              ; preds = %776
  %783 = getelementptr inbounds %struct.jc_test_fixture, ptr %781, i32 0, i32 4
  store ptr @.str.3, ptr %783, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %784 unwind label %688

784:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  store i32 5902, ptr %47, align 4, !tbaa !18
  %785 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %786 = getelementptr inbounds [22 x i64], ptr %785, i64 0, i64 4
  %787 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 8 dereferenceable(8) %786, ptr noundef @.str.297, ptr noundef @.str.328)
          to label %788 unwind label %792

788:                                              ; preds = %784
  %789 = icmp eq i32 %787, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br i1 %789, label %790, label %796

790:                                              ; preds = %788
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %791 unwind label %688

791:                                              ; preds = %790
  store i32 1, ptr %17, align 4
  br label %1180

792:                                              ; preds = %784
  %793 = landingpad { ptr, i32 }
          cleanup
  %794 = extractvalue { ptr, i32 } %793, 0
  store ptr %794, ptr %13, align 8
  %795 = extractvalue { ptr, i32 } %793, 1
  store i32 %795, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %1187

796:                                              ; preds = %788
  br label %797

797:                                              ; preds = %796
  br label %798

798:                                              ; preds = %797
  br label %799

799:                                              ; preds = %798
  %800 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %801 unwind label %688

801:                                              ; preds = %799
  %802 = getelementptr inbounds %struct.jc_test_fixture, ptr %800, i32 0, i32 11
  %803 = load i32, ptr %802, align 8
  %804 = and i32 %803, -16776961
  %805 = or i32 %804, 517888
  store i32 %805, ptr %802, align 8
  %806 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %807 unwind label %688

807:                                              ; preds = %801
  %808 = getelementptr inbounds %struct.jc_test_fixture, ptr %806, i32 0, i32 4
  store ptr @.str.3, ptr %808, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %809 unwind label %688

809:                                              ; preds = %807
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  store i32 0, ptr %48, align 4, !tbaa !18
  %810 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %811 = getelementptr inbounds [22 x i64], ptr %810, i64 0, i64 9
  %812 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIimEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef nonnull align 8 dereferenceable(8) %811, ptr noundef @.str.46, ptr noundef @.str.329, ptr noundef null)
          to label %813 unwind label %817

813:                                              ; preds = %809
  %814 = icmp eq i32 %812, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br i1 %814, label %815, label %821

815:                                              ; preds = %813
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %816 unwind label %688

816:                                              ; preds = %815
  store i32 1, ptr %17, align 4
  br label %1180

817:                                              ; preds = %809
  %818 = landingpad { ptr, i32 }
          cleanup
  %819 = extractvalue { ptr, i32 } %818, 0
  store ptr %819, ptr %13, align 8
  %820 = extractvalue { ptr, i32 } %818, 1
  store i32 %820, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %1187

821:                                              ; preds = %813
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822
  br label %824

824:                                              ; preds = %823
  %825 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %826 unwind label %688

826:                                              ; preds = %824
  %827 = getelementptr inbounds %struct.jc_test_fixture, ptr %825, i32 0, i32 11
  %828 = load i32, ptr %827, align 8
  %829 = and i32 %828, -16776961
  %830 = or i32 %829, 518400
  store i32 %830, ptr %827, align 8
  %831 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %832 unwind label %688

832:                                              ; preds = %826
  %833 = getelementptr inbounds %struct.jc_test_fixture, ptr %831, i32 0, i32 4
  store ptr @.str.3, ptr %833, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %834 unwind label %688

834:                                              ; preds = %832
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #7
  store i32 2, ptr %49, align 4, !tbaa !18
  %835 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %41, i32 0, i32 0
  %836 = getelementptr inbounds [22 x i64], ptr %835, i64 0, i64 0
  %837 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef nonnull align 8 dereferenceable(8) %836, ptr noundef @.str.138, ptr noundef @.str.330)
          to label %838 unwind label %842

838:                                              ; preds = %834
  %839 = icmp eq i32 %837, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br i1 %839, label %840, label %846

840:                                              ; preds = %838
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %841 unwind label %688

841:                                              ; preds = %840
  store i32 1, ptr %17, align 4
  br label %1180

842:                                              ; preds = %834
  %843 = landingpad { ptr, i32 }
          cleanup
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %13, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br label %1187

846:                                              ; preds = %838
  br label %847

847:                                              ; preds = %846
  br label %848

848:                                              ; preds = %847
  br label %849

849:                                              ; preds = %848
  %850 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %851 unwind label %688

851:                                              ; preds = %849
  %852 = getelementptr inbounds %struct.jc_test_fixture, ptr %850, i32 0, i32 11
  %853 = load i32, ptr %852, align 8
  %854 = and i32 %853, -16776961
  %855 = or i32 %854, 518656
  store i32 %855, ptr %852, align 8
  %856 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %857 unwind label %688

857:                                              ; preds = %851
  %858 = getelementptr inbounds %struct.jc_test_fixture, ptr %856, i32 0, i32 4
  store ptr @.str.3, ptr %858, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %859 unwind label %688

859:                                              ; preds = %857
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  store i32 1, ptr %50, align 4, !tbaa !18
  %860 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %41, i32 0, i32 0
  %861 = getelementptr inbounds [22 x i64], ptr %860, i64 0, i64 5
  %862 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %50, ptr noundef nonnull align 8 dereferenceable(8) %861, ptr noundef @.str.232, ptr noundef @.str.331)
          to label %863 unwind label %867

863:                                              ; preds = %859
  %864 = icmp eq i32 %862, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br i1 %864, label %865, label %871

865:                                              ; preds = %863
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %866 unwind label %688

866:                                              ; preds = %865
  store i32 1, ptr %17, align 4
  br label %1180

867:                                              ; preds = %859
  %868 = landingpad { ptr, i32 }
          cleanup
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %13, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %1187

871:                                              ; preds = %863
  br label %872

872:                                              ; preds = %871
  br label %873

873:                                              ; preds = %872
  br label %874

874:                                              ; preds = %873
  %875 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %876 unwind label %688

876:                                              ; preds = %874
  %877 = getelementptr inbounds %struct.jc_test_fixture, ptr %875, i32 0, i32 11
  %878 = load i32, ptr %877, align 8
  %879 = and i32 %878, -16776961
  %880 = or i32 %879, 518912
  store i32 %880, ptr %877, align 8
  %881 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %882 unwind label %688

882:                                              ; preds = %876
  %883 = getelementptr inbounds %struct.jc_test_fixture, ptr %881, i32 0, i32 4
  store ptr @.str.3, ptr %883, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %884 unwind label %688

884:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  store i32 2, ptr %51, align 4, !tbaa !18
  %885 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %41, i32 0, i32 0
  %886 = getelementptr inbounds [22 x i64], ptr %885, i64 0, i64 3
  %887 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %51, ptr noundef nonnull align 8 dereferenceable(8) %886, ptr noundef @.str.138, ptr noundef @.str.332)
          to label %888 unwind label %892

888:                                              ; preds = %884
  %889 = icmp eq i32 %887, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br i1 %889, label %890, label %896

890:                                              ; preds = %888
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %891 unwind label %688

891:                                              ; preds = %890
  store i32 1, ptr %17, align 4
  br label %1180

892:                                              ; preds = %884
  %893 = landingpad { ptr, i32 }
          cleanup
  %894 = extractvalue { ptr, i32 } %893, 0
  store ptr %894, ptr %13, align 8
  %895 = extractvalue { ptr, i32 } %893, 1
  store i32 %895, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %1187

896:                                              ; preds = %888
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898
  %900 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %901 unwind label %688

901:                                              ; preds = %899
  %902 = getelementptr inbounds %struct.jc_test_fixture, ptr %900, i32 0, i32 11
  %903 = load i32, ptr %902, align 8
  %904 = and i32 %903, -16776961
  %905 = or i32 %904, 519168
  store i32 %905, ptr %902, align 8
  %906 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %907 unwind label %688

907:                                              ; preds = %901
  %908 = getelementptr inbounds %struct.jc_test_fixture, ptr %906, i32 0, i32 4
  store ptr @.str.3, ptr %908, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %909 unwind label %688

909:                                              ; preds = %907
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #7
  store i32 2, ptr %52, align 4, !tbaa !18
  %910 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %41, i32 0, i32 0
  %911 = getelementptr inbounds [22 x i64], ptr %910, i64 0, i64 8
  %912 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %52, ptr noundef nonnull align 8 dereferenceable(8) %911, ptr noundef @.str.138, ptr noundef @.str.333)
          to label %913 unwind label %917

913:                                              ; preds = %909
  %914 = icmp eq i32 %912, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br i1 %914, label %915, label %921

915:                                              ; preds = %913
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %916 unwind label %688

916:                                              ; preds = %915
  store i32 1, ptr %17, align 4
  br label %1180

917:                                              ; preds = %909
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %13, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br label %1187

921:                                              ; preds = %913
  br label %922

922:                                              ; preds = %921
  br label %923

923:                                              ; preds = %922
  br label %924

924:                                              ; preds = %923
  %925 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %926 unwind label %688

926:                                              ; preds = %924
  %927 = getelementptr inbounds %struct.jc_test_fixture, ptr %925, i32 0, i32 11
  %928 = load i32, ptr %927, align 8
  %929 = and i32 %928, -16776961
  %930 = or i32 %929, 519424
  store i32 %930, ptr %927, align 8
  %931 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %932 unwind label %688

932:                                              ; preds = %926
  %933 = getelementptr inbounds %struct.jc_test_fixture, ptr %931, i32 0, i32 4
  store ptr @.str.3, ptr %933, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %934 unwind label %688

934:                                              ; preds = %932
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #7
  store i32 5902, ptr %53, align 4, !tbaa !18
  %935 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %41, i32 0, i32 0
  %936 = getelementptr inbounds [22 x i64], ptr %935, i64 0, i64 4
  %937 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %53, ptr noundef nonnull align 8 dereferenceable(8) %936, ptr noundef @.str.297, ptr noundef @.str.334)
          to label %938 unwind label %942

938:                                              ; preds = %934
  %939 = icmp eq i32 %937, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  br i1 %939, label %940, label %946

940:                                              ; preds = %938
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %941 unwind label %688

941:                                              ; preds = %940
  store i32 1, ptr %17, align 4
  br label %1180

942:                                              ; preds = %934
  %943 = landingpad { ptr, i32 }
          cleanup
  %944 = extractvalue { ptr, i32 } %943, 0
  store ptr %944, ptr %13, align 8
  %945 = extractvalue { ptr, i32 } %943, 1
  store i32 %945, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  br label %1187

946:                                              ; preds = %938
  br label %947

947:                                              ; preds = %946
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948
  %950 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %951 unwind label %688

951:                                              ; preds = %949
  %952 = getelementptr inbounds %struct.jc_test_fixture, ptr %950, i32 0, i32 11
  %953 = load i32, ptr %952, align 8
  %954 = and i32 %953, -16776961
  %955 = or i32 %954, 519680
  store i32 %955, ptr %952, align 8
  %956 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %957 unwind label %688

957:                                              ; preds = %951
  %958 = getelementptr inbounds %struct.jc_test_fixture, ptr %956, i32 0, i32 4
  store ptr @.str.3, ptr %958, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %959 unwind label %688

959:                                              ; preds = %957
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #7
  store i32 5902, ptr %54, align 4, !tbaa !18
  %960 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %41, i32 0, i32 0
  %961 = getelementptr inbounds [22 x i64], ptr %960, i64 0, i64 9
  %962 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef nonnull align 8 dereferenceable(8) %961, ptr noundef @.str.297, ptr noundef @.str.335)
          to label %963 unwind label %967

963:                                              ; preds = %959
  %964 = icmp eq i32 %962, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  br i1 %964, label %965, label %971

965:                                              ; preds = %963
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %966 unwind label %688

966:                                              ; preds = %965
  store i32 1, ptr %17, align 4
  br label %1180

967:                                              ; preds = %959
  %968 = landingpad { ptr, i32 }
          cleanup
  %969 = extractvalue { ptr, i32 } %968, 0
  store ptr %969, ptr %13, align 8
  %970 = extractvalue { ptr, i32 } %968, 1
  store i32 %970, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  br label %1187

971:                                              ; preds = %963
  br label %972

972:                                              ; preds = %971
  br label %973

973:                                              ; preds = %972
  br label %974

974:                                              ; preds = %973
  %975 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %976 unwind label %688

976:                                              ; preds = %974
  %977 = getelementptr inbounds %struct.jc_test_fixture, ptr %975, i32 0, i32 11
  %978 = load i32, ptr %977, align 8
  %979 = and i32 %978, -16776961
  %980 = or i32 %979, 520192
  store i32 %980, ptr %977, align 8
  %981 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %982 unwind label %688

982:                                              ; preds = %976
  %983 = getelementptr inbounds %struct.jc_test_fixture, ptr %981, i32 0, i32 4
  store ptr @.str.3, ptr %983, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %984 unwind label %688

984:                                              ; preds = %982
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  store i32 2, ptr %55, align 4, !tbaa !18
  %985 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %42, i32 0, i32 0
  %986 = getelementptr inbounds [22 x i64], ptr %985, i64 0, i64 0
  %987 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef nonnull align 8 dereferenceable(8) %986, ptr noundef @.str.138, ptr noundef @.str.311)
          to label %988 unwind label %992

988:                                              ; preds = %984
  %989 = icmp eq i32 %987, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  br i1 %989, label %990, label %996

990:                                              ; preds = %988
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %991 unwind label %688

991:                                              ; preds = %990
  store i32 1, ptr %17, align 4
  br label %1180

992:                                              ; preds = %984
  %993 = landingpad { ptr, i32 }
          cleanup
  %994 = extractvalue { ptr, i32 } %993, 0
  store ptr %994, ptr %13, align 8
  %995 = extractvalue { ptr, i32 } %993, 1
  store i32 %995, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  br label %1187

996:                                              ; preds = %988
  br label %997

997:                                              ; preds = %996
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  %1000 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1001 unwind label %688

1001:                                             ; preds = %999
  %1002 = getelementptr inbounds %struct.jc_test_fixture, ptr %1000, i32 0, i32 11
  %1003 = load i32, ptr %1002, align 8
  %1004 = and i32 %1003, -16776961
  %1005 = or i32 %1004, 520448
  store i32 %1005, ptr %1002, align 8
  %1006 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1007 unwind label %688

1007:                                             ; preds = %1001
  %1008 = getelementptr inbounds %struct.jc_test_fixture, ptr %1006, i32 0, i32 4
  store ptr @.str.3, ptr %1008, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1009 unwind label %688

1009:                                             ; preds = %1007
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #7
  store i32 1, ptr %56, align 4, !tbaa !18
  %1010 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %42, i32 0, i32 0
  %1011 = getelementptr inbounds [22 x i64], ptr %1010, i64 0, i64 5
  %1012 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %56, ptr noundef nonnull align 8 dereferenceable(8) %1011, ptr noundef @.str.232, ptr noundef @.str.336)
          to label %1013 unwind label %1017

1013:                                             ; preds = %1009
  %1014 = icmp eq i32 %1012, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  br i1 %1014, label %1015, label %1021

1015:                                             ; preds = %1013
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1016 unwind label %688

1016:                                             ; preds = %1015
  store i32 1, ptr %17, align 4
  br label %1180

1017:                                             ; preds = %1009
  %1018 = landingpad { ptr, i32 }
          cleanup
  %1019 = extractvalue { ptr, i32 } %1018, 0
  store ptr %1019, ptr %13, align 8
  %1020 = extractvalue { ptr, i32 } %1018, 1
  store i32 %1020, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  br label %1187

1021:                                             ; preds = %1013
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  %1025 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1026 unwind label %688

1026:                                             ; preds = %1024
  %1027 = getelementptr inbounds %struct.jc_test_fixture, ptr %1025, i32 0, i32 11
  %1028 = load i32, ptr %1027, align 8
  %1029 = and i32 %1028, -16776961
  %1030 = or i32 %1029, 520704
  store i32 %1030, ptr %1027, align 8
  %1031 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1032 unwind label %688

1032:                                             ; preds = %1026
  %1033 = getelementptr inbounds %struct.jc_test_fixture, ptr %1031, i32 0, i32 4
  store ptr @.str.3, ptr %1033, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1034 unwind label %688

1034:                                             ; preds = %1032
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #7
  store i32 0, ptr %57, align 4, !tbaa !18
  %1035 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %42, i32 0, i32 0
  %1036 = getelementptr inbounds [22 x i64], ptr %1035, i64 0, i64 3
  %1037 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIimEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %57, ptr noundef nonnull align 8 dereferenceable(8) %1036, ptr noundef @.str.46, ptr noundef @.str.337, ptr noundef null)
          to label %1038 unwind label %1042

1038:                                             ; preds = %1034
  %1039 = icmp eq i32 %1037, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  br i1 %1039, label %1040, label %1046

1040:                                             ; preds = %1038
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1041 unwind label %688

1041:                                             ; preds = %1040
  store i32 1, ptr %17, align 4
  br label %1180

1042:                                             ; preds = %1034
  %1043 = landingpad { ptr, i32 }
          cleanup
  %1044 = extractvalue { ptr, i32 } %1043, 0
  store ptr %1044, ptr %13, align 8
  %1045 = extractvalue { ptr, i32 } %1043, 1
  store i32 %1045, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  br label %1187

1046:                                             ; preds = %1038
  br label %1047

1047:                                             ; preds = %1046
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

1049:                                             ; preds = %1048
  %1050 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1051 unwind label %688

1051:                                             ; preds = %1049
  %1052 = getelementptr inbounds %struct.jc_test_fixture, ptr %1050, i32 0, i32 11
  %1053 = load i32, ptr %1052, align 8
  %1054 = and i32 %1053, -16776961
  %1055 = or i32 %1054, 520960
  store i32 %1055, ptr %1052, align 8
  %1056 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1057 unwind label %688

1057:                                             ; preds = %1051
  %1058 = getelementptr inbounds %struct.jc_test_fixture, ptr %1056, i32 0, i32 4
  store ptr @.str.3, ptr %1058, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1059 unwind label %688

1059:                                             ; preds = %1057
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #7
  store i32 2, ptr %58, align 4, !tbaa !18
  %1060 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %42, i32 0, i32 0
  %1061 = getelementptr inbounds [22 x i64], ptr %1060, i64 0, i64 8
  %1062 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %58, ptr noundef nonnull align 8 dereferenceable(8) %1061, ptr noundef @.str.138, ptr noundef @.str.338)
          to label %1063 unwind label %1067

1063:                                             ; preds = %1059
  %1064 = icmp eq i32 %1062, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #7
  br i1 %1064, label %1065, label %1071

1065:                                             ; preds = %1063
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1066 unwind label %688

1066:                                             ; preds = %1065
  store i32 1, ptr %17, align 4
  br label %1180

1067:                                             ; preds = %1059
  %1068 = landingpad { ptr, i32 }
          cleanup
  %1069 = extractvalue { ptr, i32 } %1068, 0
  store ptr %1069, ptr %13, align 8
  %1070 = extractvalue { ptr, i32 } %1068, 1
  store i32 %1070, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #7
  br label %1187

1071:                                             ; preds = %1063
  br label %1072

1072:                                             ; preds = %1071
  br label %1073

1073:                                             ; preds = %1072
  br label %1074

1074:                                             ; preds = %1073
  %1075 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1076 unwind label %688

1076:                                             ; preds = %1074
  %1077 = getelementptr inbounds %struct.jc_test_fixture, ptr %1075, i32 0, i32 11
  %1078 = load i32, ptr %1077, align 8
  %1079 = and i32 %1078, -16776961
  %1080 = or i32 %1079, 521216
  store i32 %1080, ptr %1077, align 8
  %1081 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1082 unwind label %688

1082:                                             ; preds = %1076
  %1083 = getelementptr inbounds %struct.jc_test_fixture, ptr %1081, i32 0, i32 4
  store ptr @.str.3, ptr %1083, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1084 unwind label %688

1084:                                             ; preds = %1082
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #7
  store i32 0, ptr %59, align 4, !tbaa !18
  %1085 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %42, i32 0, i32 0
  %1086 = getelementptr inbounds [22 x i64], ptr %1085, i64 0, i64 4
  %1087 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIimEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %59, ptr noundef nonnull align 8 dereferenceable(8) %1086, ptr noundef @.str.46, ptr noundef @.str.339, ptr noundef null)
          to label %1088 unwind label %1092

1088:                                             ; preds = %1084
  %1089 = icmp eq i32 %1087, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br i1 %1089, label %1090, label %1096

1090:                                             ; preds = %1088
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1091 unwind label %688

1091:                                             ; preds = %1090
  store i32 1, ptr %17, align 4
  br label %1180

1092:                                             ; preds = %1084
  %1093 = landingpad { ptr, i32 }
          cleanup
  %1094 = extractvalue { ptr, i32 } %1093, 0
  store ptr %1094, ptr %13, align 8
  %1095 = extractvalue { ptr, i32 } %1093, 1
  store i32 %1095, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br label %1187

1096:                                             ; preds = %1088
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

1098:                                             ; preds = %1097
  br label %1099

1099:                                             ; preds = %1098
  %1100 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1101 unwind label %688

1101:                                             ; preds = %1099
  %1102 = getelementptr inbounds %struct.jc_test_fixture, ptr %1100, i32 0, i32 11
  %1103 = load i32, ptr %1102, align 8
  %1104 = and i32 %1103, -16776961
  %1105 = or i32 %1104, 521472
  store i32 %1105, ptr %1102, align 8
  %1106 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1107 unwind label %688

1107:                                             ; preds = %1101
  %1108 = getelementptr inbounds %struct.jc_test_fixture, ptr %1106, i32 0, i32 4
  store ptr @.str.3, ptr %1108, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1109 unwind label %688

1109:                                             ; preds = %1107
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  store i32 5902, ptr %60, align 4, !tbaa !18
  %1110 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %42, i32 0, i32 0
  %1111 = getelementptr inbounds [22 x i64], ptr %1110, i64 0, i64 9
  %1112 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef nonnull align 8 dereferenceable(8) %1111, ptr noundef @.str.297, ptr noundef @.str.340)
          to label %1113 unwind label %1117

1113:                                             ; preds = %1109
  %1114 = icmp eq i32 %1112, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br i1 %1114, label %1115, label %1121

1115:                                             ; preds = %1113
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1116 unwind label %688

1116:                                             ; preds = %1115
  store i32 1, ptr %17, align 4
  br label %1180

1117:                                             ; preds = %1109
  %1118 = landingpad { ptr, i32 }
          cleanup
  %1119 = extractvalue { ptr, i32 } %1118, 0
  store ptr %1119, ptr %13, align 8
  %1120 = extractvalue { ptr, i32 } %1118, 1
  store i32 %1120, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br label %1187

1121:                                             ; preds = %1113
  br label %1122

1122:                                             ; preds = %1121
  br label %1123

1123:                                             ; preds = %1122
  %1124 = load ptr, ptr %10, align 8, !tbaa !5
  %1125 = icmp ne ptr %1124, null
  br i1 %1125, label %1126, label %1130

1126:                                             ; preds = %1123
  %1127 = load ptr, ptr %10, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1127, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1128)
          to label %1129 unwind label %688

1129:                                             ; preds = %1126
  br label %1130

1130:                                             ; preds = %1129, %1123
  %1131 = load ptr, ptr %9, align 8, !tbaa !5
  %1132 = icmp ne ptr %1131, null
  br i1 %1132, label %1133, label %1137

1133:                                             ; preds = %1130
  %1134 = load ptr, ptr %9, align 8, !tbaa !5
  %1135 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1134, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1135)
          to label %1136 unwind label %688

1136:                                             ; preds = %1133
  br label %1137

1137:                                             ; preds = %1136, %1130
  %1138 = load ptr, ptr %8, align 8, !tbaa !5
  %1139 = icmp ne ptr %1138, null
  br i1 %1139, label %1140, label %1144

1140:                                             ; preds = %1137
  %1141 = load ptr, ptr %8, align 8, !tbaa !5
  %1142 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1141, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1142)
          to label %1143 unwind label %688

1143:                                             ; preds = %1140
  br label %1144

1144:                                             ; preds = %1143, %1137
  %1145 = load ptr, ptr %7, align 8, !tbaa !5
  %1146 = icmp ne ptr %1145, null
  br i1 %1146, label %1147, label %1151

1147:                                             ; preds = %1144
  %1148 = load ptr, ptr %7, align 8, !tbaa !5
  %1149 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %1148, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1149)
          to label %1150 unwind label %688

1150:                                             ; preds = %1147
  br label %1151

1151:                                             ; preds = %1150, %1144
  %1152 = load ptr, ptr %6, align 8, !tbaa !5
  %1153 = icmp ne ptr %1152, null
  br i1 %1153, label %1154, label %1158

1154:                                             ; preds = %1151
  %1155 = load ptr, ptr %6, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %1155, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1156)
          to label %1157 unwind label %688

1157:                                             ; preds = %1154
  br label %1158

1158:                                             ; preds = %1157, %1151
  %1159 = load ptr, ptr %5, align 8, !tbaa !5
  %1160 = icmp ne ptr %1159, null
  br i1 %1160, label %1161, label %1165

1161:                                             ; preds = %1158
  %1162 = load ptr, ptr %5, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %1162, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1163)
          to label %1164 unwind label %688

1164:                                             ; preds = %1161
  br label %1165

1165:                                             ; preds = %1164, %1158
  %1166 = load ptr, ptr %4, align 8, !tbaa !5
  %1167 = icmp ne ptr %1166, null
  br i1 %1167, label %1168, label %1172

1168:                                             ; preds = %1165
  %1169 = load ptr, ptr %4, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1169, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1170)
          to label %1171 unwind label %688

1171:                                             ; preds = %1168
  br label %1172

1172:                                             ; preds = %1171, %1165
  %1173 = load ptr, ptr %3, align 8, !tbaa !5
  %1174 = icmp ne ptr %1173, null
  br i1 %1174, label %1175, label %1179

1175:                                             ; preds = %1172
  %1176 = load ptr, ptr %3, align 8, !tbaa !5
  %1177 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1176, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1177)
          to label %1178 unwind label %688

1178:                                             ; preds = %1175
  br label %1179

1179:                                             ; preds = %1178, %1172
  store i32 0, ptr %17, align 4
  br label %1180

1180:                                             ; preds = %1179, %1116, %1091, %1066, %1041, %1016, %991, %966, %941, %916, %891, %866, %841, %816, %791, %766, %741, %716, %679
  call void @llvm.lifetime.end.p0(i64 176, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 176, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 176, ptr %40) #7
  br label %1181

1181:                                             ; preds = %1180, %627, %595, %567, %538, %509, %480, %451, %423, %389, %365, %341, %306
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %26) #7
  br label %1182

1182:                                             ; preds = %1181, %275, %231
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %1183

1183:                                             ; preds = %1182, %133
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %1184

1184:                                             ; preds = %1183, %102
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #7
  %1185 = load i32, ptr %17, align 4
  switch i32 %1185, label %1203 [
    i32 0, label %1186
    i32 1, label %1186
  ]

1186:                                             ; preds = %1184, %1184
  ret void

1187:                                             ; preds = %1117, %1092, %1067, %1042, %1017, %992, %967, %942, %917, %892, %867, %842, %817, %792, %767, %742, %717, %692, %688
  call void @llvm.lifetime.end.p0(i64 176, ptr %42) #7
  br label %1188

1188:                                             ; preds = %1187, %684
  call void @llvm.lifetime.end.p0(i64 176, ptr %41) #7
  br label %1189

1189:                                             ; preds = %1188, %680
  call void @llvm.lifetime.end.p0(i64 176, ptr %40) #7
  br label %1190

1190:                                             ; preds = %1189, %628, %596, %568, %539, %510, %481, %452, %424, %390, %342, %315, %311
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26) #7
  br label %1191

1191:                                             ; preds = %1190, %307
  call void @llvm.lifetime.end.p0(i64 40, ptr %26) #7
  br label %1192

1192:                                             ; preds = %1191, %276, %248, %244
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %22) #7
  br label %1193

1193:                                             ; preds = %1192, %240
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %1194

1194:                                             ; preds = %1193, %236
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %1195

1195:                                             ; preds = %1194, %232
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %1196

1196:                                             ; preds = %1195, %138, %134
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %1197

1197:                                             ; preds = %1196, %107, %103
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #7
  br label %1198

1198:                                             ; preds = %1197
  %1199 = load ptr, ptr %13, align 8
  %1200 = load i32, ptr %14, align 4
  %1201 = insertvalue { ptr, i32 } poison, ptr %1199, 0
  %1202 = insertvalue { ptr, i32 } %1201, i32 %1200, 1
  resume { ptr, i32 } %1202

1203:                                             ; preds = %1184
  unreachable
}

declare ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef) #1

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

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

!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 0}
!10 = !{!"_ZTS20Longtail_StoredBlock", !6, i64 0, !6, i64 8, !6, i64 16, !11, i64 24}
!11 = !{!"int", !7, i64 0}
!12 = !{!10, !6, i64 8}
!13 = !{!10, !6, i64 16}
!14 = !{!15, !6, i64 32}
!15 = !{!"_ZTS15jc_test_fixture", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !16, 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}
!16 = !{!"_ZTS13jc_test_stats", !11, i64 0, !11, i64 4, !11, i64 6, !11, i64 8, !11, i64 12, !17, i64 16}
!17 = !{!"long", !7, i64 0}
!18 = !{!11, !11, i64 0}
!19 = !{!20, !6, i64 24}
!20 = !{!"_ZTS22Longtail_BlockStoreAPI", !21, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56}
!21 = !{!"_ZTS12Longtail_API", !6, i64 0}
!22 = !{!23, !6, i64 32}
!23 = !{!"_ZTS25TestAsyncGetBlockComplete", !24, i64 0, !6, i64 16, !11, i64 24, !6, i64 32}
!24 = !{!"_ZTS31Longtail_AsyncGetStoredBlockAPI", !21, i64 0, !6, i64 8}
!25 = !{!17, !17, i64 0}
!26 = !{!27, !6, i64 0}
!27 = !{!"_ZTS19Longtail_BlockIndex", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!28 = !{!29, !6, i64 8}
!29 = !{!"_ZTS16Longtail_HashAPI", !21, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!30 = !{!27, !6, i64 8}
!31 = !{!27, !6, i64 24}
!32 = !{!27, !6, i64 32}
!33 = !{!27, !6, i64 40}
!34 = !{!27, !6, i64 16}
!35 = !{!10, !11, i64 24}
!36 = !{!20, !6, i64 8}
!37 = !{!20, !6, i64 48}


; 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_StoredBlock = type { ptr, ptr, ptr, i32 }
%struct.TestAsyncGetBlockComplete = type { %struct.Longtail_AsyncGetStoredBlockAPI, ptr, i32, ptr }
%struct.Longtail_AsyncGetStoredBlockAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_API = type { ptr }
%struct.TestAsyncPutBlockComplete = type <{ %struct.Longtail_AsyncPutStoredBlockAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncPutStoredBlockAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_BlockStore_Stats = type { [22 x i64] }

@.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.76 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.275 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.276 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.277 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.278 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.279 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.280 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.281 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.282 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.283 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.284 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.311 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.325 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.326 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.328 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.329 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.330 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.331 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.332 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.333 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.334 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.335 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [80 x i8], align 1

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

declare ptr @Longtail_Alloc(ptr noundef, i64 noundef) local_unnamed_addr #1

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

declare void @_Z28jc_test_increment_assertionsv() local_unnamed_addr #1

declare void @_Z21jc_test_set_test_faili(i32 noundef) local_unnamed_addr #1

declare void @Longtail_Free(ptr noundef) local_unnamed_addr #1

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

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

declare void @Longtail_DisposeAPI(ptr noundef) local_unnamed_addr #1

declare ptr @Longtail_CreateBlake3HashAPI() local_unnamed_addr #1

; 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 nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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

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

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

declare ptr @Longtail_CreateInMemStorageAPI() local_unnamed_addr #1

declare ptr @Longtail_CreateFullCompressionRegistry() local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #3 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_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 i64 @Longtail_GetBlockIndexSize(i32 noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN25TestAsyncPutBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @memcmp(ptr nocapture noundef, ptr nocapture noundef, i64 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN43Longtail_Longtail_CacheBlockStore__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %struct.Longtail_StoredBlock, align 8
  %3 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca %struct.TestAsyncPutBlockComplete, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %12 = alloca i32, align 4
  %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 i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.Longtail_BlockStore_Stats, align 8
  %26 = alloca %struct.Longtail_BlockStore_Stats, align 8
  %27 = alloca %struct.Longtail_BlockStore_Stats, align 8
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = tail call ptr @Longtail_CreateInMemStorageAPI()
  %47 = tail call ptr @Longtail_CreateInMemStorageAPI()
  %48 = tail call ptr @Longtail_CreateFullCompressionRegistry()
  %49 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %50 = tail call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  %51 = tail call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %50, ptr noundef %46, ptr noundef nonnull @.str.270, ptr noundef null, i32 noundef 0)
  %52 = tail call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %50, ptr noundef %47, ptr noundef nonnull @.str.270, ptr noundef null, i32 noundef 0)
  %53 = tail call ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef %50, ptr noundef %51, ptr noundef %52)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #7
  %54 = getelementptr inbounds i8, ptr %2, i64 8
  %55 = getelementptr inbounds i8, ptr %2, i64 16
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %2, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #7
  call void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %3)
  %56 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %57 unwind label %74

57:                                               ; preds = %1
  %58 = getelementptr inbounds i8, ptr %56, i64 96
  %59 = load i32, ptr %58, align 8
  %60 = and i32 %59, -16776961
  %61 = or disjoint i32 %60, 502784
  store i32 %61, ptr %58, align 8
  %62 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %63 unwind label %74

63:                                               ; preds = %57
  %64 = getelementptr inbounds i8, ptr %62, i64 32
  store ptr @.str.3, ptr %64, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %65 unwind label %74

65:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #7
  store i32 0, ptr %4, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #7
  %66 = getelementptr inbounds i8, ptr %53, i64 24
  %67 = load ptr, ptr %66, align 8, !tbaa !14
  %68 = invoke noundef i32 %67(ptr noundef nonnull %53, i64 noundef 4711, ptr noundef nonnull %3)
          to label %69 unwind label %76

69:                                               ; preds = %65
  store i32 %68, ptr %5, align 4, !tbaa !13
  %70 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.320, ptr noundef null)
          to label %71 unwind label %76

71:                                               ; preds = %69
  %72 = icmp eq i32 %70, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  br i1 %72, label %73, label %78

73:                                               ; preds = %71
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %754 unwind label %74

74:                                               ; preds = %78, %73, %63, %57, %1
  %75 = landingpad { ptr, i32 }
          cleanup
  br label %762

76:                                               ; preds = %69, %65
  %77 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  br label %762

78:                                               ; preds = %71
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %3)
          to label %79 unwind label %74

79:                                               ; preds = %78
  %80 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %81 unwind label %95

81:                                               ; preds = %79
  %82 = getelementptr inbounds i8, ptr %80, i64 96
  %83 = load i32, ptr %82, align 8
  %84 = and i32 %83, -16776961
  %85 = or disjoint i32 %84, 503552
  store i32 %85, ptr %82, align 8
  %86 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %87 unwind label %95

87:                                               ; preds = %81
  %88 = getelementptr inbounds i8, ptr %86, i64 32
  store ptr @.str.3, ptr %88, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %89 unwind label %95

89:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #7
  store i32 2, ptr %6, align 4, !tbaa !13
  %90 = getelementptr inbounds i8, ptr %3, i64 24
  %91 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 4 dereferenceable(4) %90, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.275)
          to label %92 unwind label %97

92:                                               ; preds = %89
  %93 = icmp eq i32 %91, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #7
  br i1 %93, label %94, label %99

94:                                               ; preds = %92
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %754 unwind label %95

95:                                               ; preds = %94, %87, %81, %79
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %762

97:                                               ; preds = %89
  %98 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #7
  br label %762

99:                                               ; preds = %92
  %100 = invoke i64 @Longtail_GetBlockIndexSize(i32 noundef 2)
          to label %101 unwind label %146

101:                                              ; preds = %99
  %102 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %100)
          to label %103 unwind label %148

103:                                              ; preds = %101
  %104 = invoke ptr @Longtail_InitBlockIndex(ptr noundef %102, i32 noundef 2)
          to label %105 unwind label %148

105:                                              ; preds = %103
  store ptr %104, ptr %54, align 8, !tbaa !17
  %106 = load ptr, ptr %104, align 8, !tbaa !19
  store i64 3735928559, ptr %106, align 8, !tbaa !21
  %107 = getelementptr inbounds i8, ptr %49, i64 8
  %108 = load ptr, ptr %107, align 8, !tbaa !22
  %109 = invoke noundef i32 %108(ptr noundef nonnull %49)
          to label %110 unwind label %148

110:                                              ; preds = %105
  %111 = load ptr, ptr %54, align 8, !tbaa !17
  %112 = getelementptr inbounds i8, ptr %111, i64 8
  %113 = load ptr, ptr %112, align 8, !tbaa !24
  store i32 %109, ptr %113, align 4, !tbaa !13
  %114 = getelementptr inbounds i8, ptr %111, i64 24
  %115 = load ptr, ptr %114, align 8, !tbaa !25
  store i32 0, ptr %115, align 4, !tbaa !13
  %116 = getelementptr inbounds i8, ptr %111, i64 32
  %117 = load ptr, ptr %116, align 8, !tbaa !26
  store i64 251666341, ptr %117, align 8, !tbaa !21
  %118 = getelementptr inbounds i8, ptr %117, i64 8
  store i64 268378021, ptr %118, align 8, !tbaa !21
  %119 = getelementptr inbounds i8, ptr %111, i64 40
  %120 = load ptr, ptr %119, align 8, !tbaa !27
  store i32 4711, ptr %120, align 4, !tbaa !13
  %121 = getelementptr inbounds i8, ptr %120, i64 4
  store i32 1147, ptr %121, align 4, !tbaa !13
  %122 = getelementptr inbounds i8, ptr %111, i64 16
  %123 = load ptr, ptr %122, align 8, !tbaa !28
  store i32 2, ptr %123, align 4, !tbaa !13
  %124 = getelementptr inbounds i8, ptr %2, i64 24
  store i32 5858, ptr %124, align 8, !tbaa !29
  %125 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef 5858)
          to label %126 unwind label %148

126:                                              ; preds = %110
  store ptr %125, ptr %55, align 8, !tbaa !30
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(4711) %125, i8 77, i64 4711, i1 false)
  %127 = getelementptr inbounds i8, ptr %125, i64 4711
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1147) %127, i8 13, i64 1147, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  invoke void @_ZN25TestAsyncPutBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %7)
          to label %128 unwind label %150

128:                                              ; preds = %126
  %129 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %130 unwind label %152

130:                                              ; preds = %128
  %131 = getelementptr inbounds i8, ptr %129, i64 96
  %132 = load i32, ptr %131, align 8
  %133 = and i32 %132, -16776961
  %134 = or disjoint i32 %133, 508672
  store i32 %134, ptr %131, align 8
  %135 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %136 unwind label %152

136:                                              ; preds = %130
  %137 = getelementptr inbounds i8, ptr %135, i64 32
  store ptr @.str.3, ptr %137, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %138 unwind label %152

138:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #7
  store i32 0, ptr %8, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #7
  %139 = getelementptr inbounds i8, ptr %52, i64 8
  %140 = load ptr, ptr %139, align 8, !tbaa !31
  %141 = invoke noundef i32 %140(ptr noundef nonnull %52, ptr noundef nonnull %2, ptr noundef nonnull %7)
          to label %142 unwind label %154

142:                                              ; preds = %138
  store i32 %141, ptr %9, align 4, !tbaa !13
  %143 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %9, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.321, ptr noundef null)
          to label %144 unwind label %154

144:                                              ; preds = %142
  %145 = icmp eq i32 %143, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  br i1 %145, label %.invoke, label %156

146:                                              ; preds = %99
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %762

148:                                              ; preds = %110, %105, %103, %101
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %762

150:                                              ; preds = %126
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %761

152:                                              ; preds = %.invoke, %167, %161, %159, %157, %156, %136, %130, %128
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %760

154:                                              ; preds = %142, %138
  %155 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  br label %760

156:                                              ; preds = %144
  invoke void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %7)
          to label %157 unwind label %152

157:                                              ; preds = %156
  %158 = load ptr, ptr %54, align 8, !tbaa !17
  invoke void @Longtail_Free(ptr noundef %158)
          to label %159 unwind label %152

159:                                              ; preds = %157
  %160 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %161 unwind label %152

161:                                              ; preds = %159
  %162 = getelementptr inbounds i8, ptr %160, i64 96
  %163 = load i32, ptr %162, align 8
  %164 = and i32 %163, -16776961
  %165 = or disjoint i32 %164, 509440
  store i32 %165, ptr %162, align 8
  %166 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %167 unwind label %152

167:                                              ; preds = %161
  %168 = getelementptr inbounds i8, ptr %166, i64 32
  store ptr @.str.3, ptr %168, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %169 unwind label %152

169:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #7
  store i32 0, ptr %10, align 4, !tbaa !13
  %170 = getelementptr inbounds i8, ptr %7, i64 24
  %171 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %170, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.273, ptr noundef null)
          to label %172 unwind label %174

172:                                              ; preds = %169
  %173 = icmp eq i32 %171, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #7
  br i1 %173, label %.invoke, label %176

.invoke:                                          ; preds = %144, %172
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %753 unwind label %152

174:                                              ; preds = %169
  %175 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #7
  br label %760

176:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #7
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %11)
          to label %177 unwind label %194

177:                                              ; preds = %176
  %178 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %179 unwind label %196

179:                                              ; preds = %177
  %180 = getelementptr inbounds i8, ptr %178, i64 96
  %181 = load i32, ptr %180, align 8
  %182 = and i32 %181, -16776961
  %183 = or disjoint i32 %182, 510208
  store i32 %183, ptr %180, align 8
  %184 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %185 unwind label %196

185:                                              ; preds = %179
  %186 = getelementptr inbounds i8, ptr %184, i64 32
  store ptr @.str.3, ptr %186, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %187 unwind label %196

187:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #7
  store i32 0, ptr %12, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  %188 = load ptr, ptr %66, align 8, !tbaa !14
  %189 = invoke noundef i32 %188(ptr noundef nonnull %53, i64 noundef 3735928559, ptr noundef nonnull %11)
          to label %190 unwind label %198

190:                                              ; preds = %187
  store i32 %189, ptr %13, align 4, !tbaa !13
  %191 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.322, ptr noundef null)
          to label %192 unwind label %198

192:                                              ; preds = %190
  %193 = icmp eq i32 %191, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  br i1 %193, label %.invoke96, label %200

194:                                              ; preds = %176
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %759

196:                                              ; preds = %.invoke96, %415, %413, %399, %393, %391, %380, %374, %372, %360, %354, %352, %341, %335, %333, %321, %315, %313, %302, %296, %294, %283, %277, %275, %261, %255, %253, %242, %236, %234, %230, %228, %222, %220, %211, %205, %201, %200, %185, %179, %177
  %197 = landingpad { ptr, i32 }
          cleanup
  br label %758

198:                                              ; preds = %190, %187
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  br label %758

200:                                              ; preds = %192
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %11)
          to label %201 unwind label %196

201:                                              ; preds = %200
  %202 = getelementptr inbounds i8, ptr %11, i64 32
  %203 = load ptr, ptr %202, align 8, !tbaa !32
  %204 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %205 unwind label %196

205:                                              ; preds = %201
  %206 = getelementptr inbounds i8, ptr %204, i64 96
  %207 = load i32, ptr %206, align 8
  %208 = and i32 %207, -16776961
  %209 = or disjoint i32 %208, 510976
  store i32 %209, ptr %206, align 8
  %210 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %211 unwind label %196

211:                                              ; preds = %205
  %212 = getelementptr inbounds i8, ptr %210, i64 32
  store ptr @.str.3, ptr %212, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %213 unwind label %196

213:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #7
  store i32 0, ptr %14, align 4, !tbaa !13
  %214 = getelementptr inbounds i8, ptr %11, i64 24
  %215 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %214, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.323, ptr noundef null)
          to label %216 unwind label %218

216:                                              ; preds = %213
  %217 = icmp eq i32 %215, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #7
  br i1 %217, label %.invoke96, label %220

218:                                              ; preds = %213
  %219 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #7
  br label %758

220:                                              ; preds = %216
  %221 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %222 unwind label %196

222:                                              ; preds = %220
  %223 = getelementptr inbounds i8, ptr %221, i64 96
  %224 = load i32, ptr %223, align 8
  %225 = and i32 %224, -16776961
  %226 = or disjoint i32 %225, 511232
  store i32 %226, ptr %223, align 8
  %227 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %228 unwind label %196

228:                                              ; preds = %222
  %229 = getelementptr inbounds i8, ptr %227, i64 32
  store ptr @.str.3, ptr %229, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %230 unwind label %196

230:                                              ; preds = %228
  %231 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %203, ptr noundef nonnull @.str.276, ptr noundef nonnull @.str.277)
          to label %232 unwind label %196

232:                                              ; preds = %230
  %233 = icmp eq i32 %231, 0
  br i1 %233, label %.invoke96, label %234

234:                                              ; preds = %232
  %235 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %236 unwind label %196

236:                                              ; preds = %234
  %237 = getelementptr inbounds i8, ptr %235, i64 96
  %238 = load i32, ptr %237, align 8
  %239 = and i32 %238, -16776961
  %240 = or disjoint i32 %239, 511744
  store i32 %240, ptr %237, align 8
  %241 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %242 unwind label %196

242:                                              ; preds = %236
  %243 = getelementptr inbounds i8, ptr %241, i64 32
  store ptr @.str.3, ptr %243, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %244 unwind label %196

244:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #7
  store i32 -559038737, ptr %15, align 4, !tbaa !13
  %245 = getelementptr inbounds i8, ptr %203, i64 8
  %246 = load ptr, ptr %245, align 8, !tbaa !17
  %247 = load ptr, ptr %246, align 8, !tbaa !19
  %248 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 8 dereferenceable(8) %247, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.278)
          to label %249 unwind label %251

249:                                              ; preds = %244
  %250 = icmp eq i32 %248, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br i1 %250, label %.invoke96, label %253

251:                                              ; preds = %244
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br label %758

253:                                              ; preds = %249
  %254 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %255 unwind label %196

255:                                              ; preds = %253
  %256 = getelementptr inbounds i8, ptr %254, i64 96
  %257 = load i32, ptr %256, align 8
  %258 = and i32 %257, -16776961
  %259 = or disjoint i32 %258, 512000
  store i32 %259, ptr %256, align 8
  %260 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %261 unwind label %196

261:                                              ; preds = %255
  %262 = getelementptr inbounds i8, ptr %260, i64 32
  store ptr @.str.3, ptr %262, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %263 unwind label %196

263:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #7
  %264 = load ptr, ptr %107, align 8, !tbaa !22
  %265 = invoke noundef i32 %264(ptr noundef nonnull %49)
          to label %266 unwind label %273

266:                                              ; preds = %263
  store i32 %265, ptr %16, align 4, !tbaa !13
  %267 = load ptr, ptr %245, align 8, !tbaa !17
  %268 = getelementptr inbounds i8, ptr %267, i64 8
  %269 = load ptr, ptr %268, align 8, !tbaa !24
  %270 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %16, ptr noundef nonnull align 4 dereferenceable(4) %269, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.279)
          to label %271 unwind label %273

271:                                              ; preds = %266
  %272 = icmp eq i32 %270, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  br i1 %272, label %.invoke96, label %275

273:                                              ; preds = %266, %263
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  br label %758

275:                                              ; preds = %271
  %276 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %277 unwind label %196

277:                                              ; preds = %275
  %278 = getelementptr inbounds i8, ptr %276, i64 96
  %279 = load i32, ptr %278, align 8
  %280 = and i32 %279, -16776961
  %281 = or disjoint i32 %280, 512256
  store i32 %281, ptr %278, align 8
  %282 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %283 unwind label %196

283:                                              ; preds = %277
  %284 = getelementptr inbounds i8, ptr %282, i64 32
  store ptr @.str.3, ptr %284, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %285 unwind label %196

285:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #7
  store i32 0, ptr %17, align 4, !tbaa !13
  %286 = load ptr, ptr %245, align 8, !tbaa !17
  %287 = getelementptr inbounds i8, ptr %286, i64 24
  %288 = load ptr, ptr %287, align 8, !tbaa !25
  %289 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIijEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 4 dereferenceable(4) %288, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.280, ptr noundef null)
          to label %290 unwind label %292

290:                                              ; preds = %285
  %291 = icmp eq i32 %289, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  br i1 %291, label %.invoke96, label %294

292:                                              ; preds = %285
  %293 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  br label %758

294:                                              ; preds = %290
  %295 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %296 unwind label %196

296:                                              ; preds = %294
  %297 = getelementptr inbounds i8, ptr %295, i64 96
  %298 = load i32, ptr %297, align 8
  %299 = and i32 %298, -16776961
  %300 = or disjoint i32 %299, 512512
  store i32 %300, ptr %297, align 8
  %301 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %302 unwind label %196

302:                                              ; preds = %296
  %303 = getelementptr inbounds i8, ptr %301, i64 32
  store ptr @.str.3, ptr %303, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %304 unwind label %196

304:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #7
  store i32 251666341, ptr %18, align 4, !tbaa !13
  %305 = load ptr, ptr %245, align 8, !tbaa !17
  %306 = getelementptr inbounds i8, ptr %305, i64 32
  %307 = load ptr, ptr %306, align 8, !tbaa !26
  %308 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 8 dereferenceable(8) %307, ptr noundef nonnull @.str.281, ptr noundef nonnull @.str.282)
          to label %309 unwind label %311

309:                                              ; preds = %304
  %310 = icmp eq i32 %308, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br i1 %310, label %.invoke96, label %313

311:                                              ; preds = %304
  %312 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br label %758

313:                                              ; preds = %309
  %314 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %315 unwind label %196

315:                                              ; preds = %313
  %316 = getelementptr inbounds i8, ptr %314, i64 96
  %317 = load i32, ptr %316, align 8
  %318 = and i32 %317, -16776961
  %319 = or disjoint i32 %318, 512768
  store i32 %319, ptr %316, align 8
  %320 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %321 unwind label %196

321:                                              ; preds = %315
  %322 = getelementptr inbounds i8, ptr %320, i64 32
  store ptr @.str.3, ptr %322, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %323 unwind label %196

323:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #7
  store i32 268378021, ptr %19, align 4, !tbaa !13
  %324 = load ptr, ptr %245, align 8, !tbaa !17
  %325 = getelementptr inbounds i8, ptr %324, i64 32
  %326 = load ptr, ptr %325, align 8, !tbaa !26
  %327 = getelementptr inbounds i8, ptr %326, i64 8
  %328 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 8 dereferenceable(8) %327, ptr noundef nonnull @.str.283, ptr noundef nonnull @.str.284)
          to label %329 unwind label %331

329:                                              ; preds = %323
  %330 = icmp eq i32 %328, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br i1 %330, label %.invoke96, label %333

331:                                              ; preds = %323
  %332 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br label %758

333:                                              ; preds = %329
  %334 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %335 unwind label %196

335:                                              ; preds = %333
  %336 = getelementptr inbounds i8, ptr %334, i64 96
  %337 = load i32, ptr %336, align 8
  %338 = and i32 %337, -16776961
  %339 = or disjoint i32 %338, 513024
  store i32 %339, ptr %336, align 8
  %340 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %341 unwind label %196

341:                                              ; preds = %335
  %342 = getelementptr inbounds i8, ptr %340, i64 32
  store ptr @.str.3, ptr %342, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %343 unwind label %196

343:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #7
  store i32 4711, ptr %20, align 4, !tbaa !13
  %344 = load ptr, ptr %245, align 8, !tbaa !17
  %345 = getelementptr inbounds i8, ptr %344, i64 40
  %346 = load ptr, ptr %345, align 8, !tbaa !27
  %347 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 4 dereferenceable(4) %346, ptr noundef nonnull @.str.285, ptr noundef nonnull @.str.286)
          to label %348 unwind label %350

348:                                              ; preds = %343
  %349 = icmp eq i32 %347, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  br i1 %349, label %.invoke96, label %352

350:                                              ; preds = %343
  %351 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  br label %758

352:                                              ; preds = %348
  %353 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %354 unwind label %196

354:                                              ; preds = %352
  %355 = getelementptr inbounds i8, ptr %353, i64 96
  %356 = load i32, ptr %355, align 8
  %357 = and i32 %356, -16776961
  %358 = or disjoint i32 %357, 513280
  store i32 %358, ptr %355, align 8
  %359 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %360 unwind label %196

360:                                              ; preds = %354
  %361 = getelementptr inbounds i8, ptr %359, i64 32
  store ptr @.str.3, ptr %361, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %362 unwind label %196

362:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #7
  store i32 1147, ptr %21, align 4, !tbaa !13
  %363 = load ptr, ptr %245, align 8, !tbaa !17
  %364 = getelementptr inbounds i8, ptr %363, i64 40
  %365 = load ptr, ptr %364, align 8, !tbaa !27
  %366 = getelementptr inbounds i8, ptr %365, i64 4
  %367 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 4 dereferenceable(4) %366, ptr noundef nonnull @.str.287, ptr noundef nonnull @.str.288)
          to label %368 unwind label %370

368:                                              ; preds = %362
  %369 = icmp eq i32 %367, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  br i1 %369, label %.invoke96, label %372

370:                                              ; preds = %362
  %371 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  br label %758

372:                                              ; preds = %368
  %373 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %374 unwind label %196

374:                                              ; preds = %372
  %375 = getelementptr inbounds i8, ptr %373, i64 96
  %376 = load i32, ptr %375, align 8
  %377 = and i32 %376, -16776961
  %378 = or disjoint i32 %377, 513536
  store i32 %378, ptr %375, align 8
  %379 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %380 unwind label %196

380:                                              ; preds = %374
  %381 = getelementptr inbounds i8, ptr %379, i64 32
  store ptr @.str.3, ptr %381, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %382 unwind label %196

382:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #7
  store i32 2, ptr %22, align 4, !tbaa !13
  %383 = load ptr, ptr %245, align 8, !tbaa !17
  %384 = getelementptr inbounds i8, ptr %383, i64 16
  %385 = load ptr, ptr %384, align 8, !tbaa !28
  %386 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %385, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.289)
          to label %387 unwind label %389

387:                                              ; preds = %382
  %388 = icmp eq i32 %386, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  br i1 %388, label %.invoke96, label %391

389:                                              ; preds = %382
  %390 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  br label %758

391:                                              ; preds = %387
  %392 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %393 unwind label %196

393:                                              ; preds = %391
  %394 = getelementptr inbounds i8, ptr %392, i64 96
  %395 = load i32, ptr %394, align 8
  %396 = and i32 %395, -16776961
  %397 = or disjoint i32 %396, 513792
  store i32 %397, ptr %394, align 8
  %398 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %399 unwind label %196

399:                                              ; preds = %393
  %400 = getelementptr inbounds i8, ptr %398, i64 32
  store ptr @.str.3, ptr %400, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %401 unwind label %196

401:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #7
  store i32 0, ptr %23, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #7
  %402 = load ptr, ptr %55, align 8, !tbaa !30
  %403 = getelementptr inbounds i8, ptr %203, i64 16
  %404 = load ptr, ptr %403, align 8, !tbaa !30
  %405 = load i32, ptr %124, align 8, !tbaa !29
  %406 = zext i32 %405 to i64
  %407 = call i32 @memcmp(ptr noundef %402, ptr noundef %404, i64 noundef %406) #8
  store i32 %407, ptr %24, align 4, !tbaa !13
  %408 = invoke 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.290, ptr noundef null)
          to label %409 unwind label %411

409:                                              ; preds = %401
  %410 = icmp eq i32 %408, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  br i1 %410, label %.invoke96, label %413

.invoke96:                                        ; preds = %192, %409, %387, %368, %348, %329, %309, %290, %271, %249, %232, %216
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %752 unwind label %196

411:                                              ; preds = %401
  %412 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  br label %758

413:                                              ; preds = %409
  %414 = load ptr, ptr %55, align 8, !tbaa !30
  invoke void @Longtail_Free(ptr noundef %414)
          to label %415 unwind label %196

415:                                              ; preds = %413
  %416 = load ptr, ptr %203, align 8, !tbaa !35
  %417 = invoke noundef i32 %416(ptr noundef nonnull %203)
          to label %418 unwind label %196

418:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %25) #7
  %419 = getelementptr inbounds i8, ptr %53, i64 48
  %420 = load ptr, ptr %419, align 8, !tbaa !36
  %421 = invoke noundef i32 %420(ptr noundef nonnull %53, ptr noundef nonnull %25)
          to label %422 unwind label %444

422:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %26) #7
  %423 = getelementptr inbounds i8, ptr %52, i64 48
  %424 = load ptr, ptr %423, align 8, !tbaa !36
  %425 = invoke noundef i32 %424(ptr noundef nonnull %52, ptr noundef nonnull %26)
          to label %426 unwind label %446

426:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %27) #7
  %427 = getelementptr inbounds i8, ptr %51, i64 48
  %428 = load ptr, ptr %427, align 8, !tbaa !36
  %429 = invoke noundef i32 %428(ptr noundef nonnull %51, ptr noundef nonnull %27)
          to label %430 unwind label %448

430:                                              ; preds = %426
  %431 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %432 unwind label %448

432:                                              ; preds = %430
  %433 = getelementptr inbounds i8, ptr %431, i64 96
  %434 = load i32, ptr %433, align 8
  %435 = and i32 %434, -16776961
  %436 = or disjoint i32 %435, 516608
  store i32 %436, ptr %433, align 8
  %437 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %438 unwind label %448

438:                                              ; preds = %432
  %439 = getelementptr inbounds i8, ptr %437, i64 32
  store ptr @.str.3, ptr %439, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %440 unwind label %448

440:                                              ; preds = %438
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #7
  store i32 2, ptr %28, align 4, !tbaa !13
  %441 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.324)
          to label %442 unwind label %450

442:                                              ; preds = %440
  %443 = icmp eq i32 %441, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  br i1 %443, label %.invoke97, label %452

444:                                              ; preds = %418
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %757

446:                                              ; preds = %422
  %447 = landingpad { ptr, i32 }
          cleanup
  br label %756

448:                                              ; preds = %.invoke97, %750, %748, %746, %744, %743, %741, %740, %739, %730, %724, %722, %713, %707, %705, %696, %690, %688, %679, %673, %671, %662, %656, %654, %646, %640, %638, %629, %623, %621, %612, %606, %604, %595, %589, %587, %578, %572, %570, %561, %555, %553, %545, %539, %537, %528, %522, %520, %511, %505, %503, %494, %488, %486, %477, %471, %469, %460, %454, %452, %438, %432, %430, %426
  %449 = landingpad { ptr, i32 }
          cleanup
  br label %755

450:                                              ; preds = %440
  %451 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  br label %755

452:                                              ; preds = %442
  %453 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %454 unwind label %448

454:                                              ; preds = %452
  %455 = getelementptr inbounds i8, ptr %453, i64 96
  %456 = load i32, ptr %455, align 8
  %457 = and i32 %456, -16776961
  %458 = or disjoint i32 %457, 516864
  store i32 %458, ptr %455, align 8
  %459 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %460 unwind label %448

460:                                              ; preds = %454
  %461 = getelementptr inbounds i8, ptr %459, i64 32
  store ptr @.str.3, ptr %461, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %462 unwind label %448

462:                                              ; preds = %460
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  store i32 0, ptr %29, align 4, !tbaa !13
  %463 = getelementptr inbounds i8, ptr %25, i64 40
  %464 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIimEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 8 dereferenceable(8) %463, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.325, ptr noundef null)
          to label %465 unwind label %467

465:                                              ; preds = %462
  %466 = icmp eq i32 %464, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  br i1 %466, label %.invoke97, label %469

467:                                              ; preds = %462
  %468 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  br label %755

469:                                              ; preds = %465
  %470 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %471 unwind label %448

471:                                              ; preds = %469
  %472 = getelementptr inbounds i8, ptr %470, i64 96
  %473 = load i32, ptr %472, align 8
  %474 = and i32 %473, -16776961
  %475 = or disjoint i32 %474, 517120
  store i32 %475, ptr %472, align 8
  %476 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %477 unwind label %448

477:                                              ; preds = %471
  %478 = getelementptr inbounds i8, ptr %476, i64 32
  store ptr @.str.3, ptr %478, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %479 unwind label %448

479:                                              ; preds = %477
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #7
  store i32 2, ptr %30, align 4, !tbaa !13
  %480 = getelementptr inbounds i8, ptr %25, i64 24
  %481 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 8 dereferenceable(8) %480, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.326)
          to label %482 unwind label %484

482:                                              ; preds = %479
  %483 = icmp eq i32 %481, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  br i1 %483, label %.invoke97, label %486

484:                                              ; preds = %479
  %485 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  br label %755

486:                                              ; preds = %482
  %487 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %488 unwind label %448

488:                                              ; preds = %486
  %489 = getelementptr inbounds i8, ptr %487, i64 96
  %490 = load i32, ptr %489, align 8
  %491 = and i32 %490, -16776961
  %492 = or disjoint i32 %491, 517376
  store i32 %492, ptr %489, align 8
  %493 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %494 unwind label %448

494:                                              ; preds = %488
  %495 = getelementptr inbounds i8, ptr %493, i64 32
  store ptr @.str.3, ptr %495, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %496 unwind label %448

496:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #7
  store i32 0, ptr %31, align 4, !tbaa !13
  %497 = getelementptr inbounds i8, ptr %25, i64 64
  %498 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIimEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 8 dereferenceable(8) %497, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.327, ptr noundef null)
          to label %499 unwind label %501

499:                                              ; preds = %496
  %500 = icmp eq i32 %498, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  br i1 %500, label %.invoke97, label %503

501:                                              ; preds = %496
  %502 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  br label %755

503:                                              ; preds = %499
  %504 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %505 unwind label %448

505:                                              ; preds = %503
  %506 = getelementptr inbounds i8, ptr %504, i64 96
  %507 = load i32, ptr %506, align 8
  %508 = and i32 %507, -16776961
  %509 = or disjoint i32 %508, 517632
  store i32 %509, ptr %506, align 8
  %510 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %511 unwind label %448

511:                                              ; preds = %505
  %512 = getelementptr inbounds i8, ptr %510, i64 32
  store ptr @.str.3, ptr %512, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %513 unwind label %448

513:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #7
  store i32 5902, ptr %32, align 4, !tbaa !13
  %514 = getelementptr inbounds i8, ptr %25, i64 32
  %515 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 8 dereferenceable(8) %514, ptr noundef nonnull @.str.297, ptr noundef nonnull @.str.328)
          to label %516 unwind label %518

516:                                              ; preds = %513
  %517 = icmp eq i32 %515, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  br i1 %517, label %.invoke97, label %520

518:                                              ; preds = %513
  %519 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  br label %755

520:                                              ; preds = %516
  %521 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %522 unwind label %448

522:                                              ; preds = %520
  %523 = getelementptr inbounds i8, ptr %521, i64 96
  %524 = load i32, ptr %523, align 8
  %525 = and i32 %524, -16776961
  %526 = or disjoint i32 %525, 517888
  store i32 %526, ptr %523, align 8
  %527 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %528 unwind label %448

528:                                              ; preds = %522
  %529 = getelementptr inbounds i8, ptr %527, i64 32
  store ptr @.str.3, ptr %529, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %530 unwind label %448

530:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #7
  store i32 0, ptr %33, align 4, !tbaa !13
  %531 = getelementptr inbounds i8, ptr %25, i64 72
  %532 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIimEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 8 dereferenceable(8) %531, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.329, ptr noundef null)
          to label %533 unwind label %535

533:                                              ; preds = %530
  %534 = icmp eq i32 %532, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  br i1 %534, label %.invoke97, label %537

535:                                              ; preds = %530
  %536 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  br label %755

537:                                              ; preds = %533
  %538 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %539 unwind label %448

539:                                              ; preds = %537
  %540 = getelementptr inbounds i8, ptr %538, i64 96
  %541 = load i32, ptr %540, align 8
  %542 = and i32 %541, -16776961
  %543 = or disjoint i32 %542, 518400
  store i32 %543, ptr %540, align 8
  %544 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %545 unwind label %448

545:                                              ; preds = %539
  %546 = getelementptr inbounds i8, ptr %544, i64 32
  store ptr @.str.3, ptr %546, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %547 unwind label %448

547:                                              ; preds = %545
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #7
  store i32 2, ptr %34, align 4, !tbaa !13
  %548 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.330)
          to label %549 unwind label %551

549:                                              ; preds = %547
  %550 = icmp eq i32 %548, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  br i1 %550, label %.invoke97, label %553

551:                                              ; preds = %547
  %552 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  br label %755

553:                                              ; preds = %549
  %554 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %555 unwind label %448

555:                                              ; preds = %553
  %556 = getelementptr inbounds i8, ptr %554, i64 96
  %557 = load i32, ptr %556, align 8
  %558 = and i32 %557, -16776961
  %559 = or disjoint i32 %558, 518656
  store i32 %559, ptr %556, align 8
  %560 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %561 unwind label %448

561:                                              ; preds = %555
  %562 = getelementptr inbounds i8, ptr %560, i64 32
  store ptr @.str.3, ptr %562, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %563 unwind label %448

563:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #7
  store i32 1, ptr %35, align 4, !tbaa !13
  %564 = getelementptr inbounds i8, ptr %26, i64 40
  %565 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 8 dereferenceable(8) %564, ptr noundef nonnull @.str.232, ptr noundef nonnull @.str.331)
          to label %566 unwind label %568

566:                                              ; preds = %563
  %567 = icmp eq i32 %565, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  br i1 %567, label %.invoke97, label %570

568:                                              ; preds = %563
  %569 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  br label %755

570:                                              ; preds = %566
  %571 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %572 unwind label %448

572:                                              ; preds = %570
  %573 = getelementptr inbounds i8, ptr %571, i64 96
  %574 = load i32, ptr %573, align 8
  %575 = and i32 %574, -16776961
  %576 = or disjoint i32 %575, 518912
  store i32 %576, ptr %573, align 8
  %577 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %578 unwind label %448

578:                                              ; preds = %572
  %579 = getelementptr inbounds i8, ptr %577, i64 32
  store ptr @.str.3, ptr %579, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %580 unwind label %448

580:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #7
  store i32 2, ptr %36, align 4, !tbaa !13
  %581 = getelementptr inbounds i8, ptr %26, i64 24
  %582 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 8 dereferenceable(8) %581, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.332)
          to label %583 unwind label %585

583:                                              ; preds = %580
  %584 = icmp eq i32 %582, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  br i1 %584, label %.invoke97, label %587

585:                                              ; preds = %580
  %586 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  br label %755

587:                                              ; preds = %583
  %588 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %589 unwind label %448

589:                                              ; preds = %587
  %590 = getelementptr inbounds i8, ptr %588, i64 96
  %591 = load i32, ptr %590, align 8
  %592 = and i32 %591, -16776961
  %593 = or disjoint i32 %592, 519168
  store i32 %593, ptr %590, align 8
  %594 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %595 unwind label %448

595:                                              ; preds = %589
  %596 = getelementptr inbounds i8, ptr %594, i64 32
  store ptr @.str.3, ptr %596, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %597 unwind label %448

597:                                              ; preds = %595
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #7
  store i32 2, ptr %37, align 4, !tbaa !13
  %598 = getelementptr inbounds i8, ptr %26, i64 64
  %599 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 8 dereferenceable(8) %598, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.333)
          to label %600 unwind label %602

600:                                              ; preds = %597
  %601 = icmp eq i32 %599, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  br i1 %601, label %.invoke97, label %604

602:                                              ; preds = %597
  %603 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  br label %755

604:                                              ; preds = %600
  %605 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %606 unwind label %448

606:                                              ; preds = %604
  %607 = getelementptr inbounds i8, ptr %605, i64 96
  %608 = load i32, ptr %607, align 8
  %609 = and i32 %608, -16776961
  %610 = or disjoint i32 %609, 519424
  store i32 %610, ptr %607, align 8
  %611 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %612 unwind label %448

612:                                              ; preds = %606
  %613 = getelementptr inbounds i8, ptr %611, i64 32
  store ptr @.str.3, ptr %613, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %614 unwind label %448

614:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #7
  store i32 5902, ptr %38, align 4, !tbaa !13
  %615 = getelementptr inbounds i8, ptr %26, i64 32
  %616 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 8 dereferenceable(8) %615, ptr noundef nonnull @.str.297, ptr noundef nonnull @.str.334)
          to label %617 unwind label %619

617:                                              ; preds = %614
  %618 = icmp eq i32 %616, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #7
  br i1 %618, label %.invoke97, label %621

619:                                              ; preds = %614
  %620 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #7
  br label %755

621:                                              ; preds = %617
  %622 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %623 unwind label %448

623:                                              ; preds = %621
  %624 = getelementptr inbounds i8, ptr %622, i64 96
  %625 = load i32, ptr %624, align 8
  %626 = and i32 %625, -16776961
  %627 = or disjoint i32 %626, 519680
  store i32 %627, ptr %624, align 8
  %628 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %629 unwind label %448

629:                                              ; preds = %623
  %630 = getelementptr inbounds i8, ptr %628, i64 32
  store ptr @.str.3, ptr %630, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %631 unwind label %448

631:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #7
  store i32 5902, ptr %39, align 4, !tbaa !13
  %632 = getelementptr inbounds i8, ptr %26, i64 72
  %633 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 8 dereferenceable(8) %632, ptr noundef nonnull @.str.297, ptr noundef nonnull @.str.335)
          to label %634 unwind label %636

634:                                              ; preds = %631
  %635 = icmp eq i32 %633, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #7
  br i1 %635, label %.invoke97, label %638

636:                                              ; preds = %631
  %637 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #7
  br label %755

638:                                              ; preds = %634
  %639 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %640 unwind label %448

640:                                              ; preds = %638
  %641 = getelementptr inbounds i8, ptr %639, i64 96
  %642 = load i32, ptr %641, align 8
  %643 = and i32 %642, -16776961
  %644 = or disjoint i32 %643, 520192
  store i32 %644, ptr %641, align 8
  %645 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %646 unwind label %448

646:                                              ; preds = %640
  %647 = getelementptr inbounds i8, ptr %645, i64 32
  store ptr @.str.3, ptr %647, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %648 unwind label %448

648:                                              ; preds = %646
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #7
  store i32 2, ptr %40, align 4, !tbaa !13
  %649 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.311)
          to label %650 unwind label %652

650:                                              ; preds = %648
  %651 = icmp eq i32 %649, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #7
  br i1 %651, label %.invoke97, label %654

652:                                              ; preds = %648
  %653 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #7
  br label %755

654:                                              ; preds = %650
  %655 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %656 unwind label %448

656:                                              ; preds = %654
  %657 = getelementptr inbounds i8, ptr %655, i64 96
  %658 = load i32, ptr %657, align 8
  %659 = and i32 %658, -16776961
  %660 = or disjoint i32 %659, 520448
  store i32 %660, ptr %657, align 8
  %661 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %662 unwind label %448

662:                                              ; preds = %656
  %663 = getelementptr inbounds i8, ptr %661, i64 32
  store ptr @.str.3, ptr %663, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %664 unwind label %448

664:                                              ; preds = %662
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #7
  store i32 1, ptr %41, align 4, !tbaa !13
  %665 = getelementptr inbounds i8, ptr %27, i64 40
  %666 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %41, ptr noundef nonnull align 8 dereferenceable(8) %665, ptr noundef nonnull @.str.232, ptr noundef nonnull @.str.336)
          to label %667 unwind label %669

667:                                              ; preds = %664
  %668 = icmp eq i32 %666, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  br i1 %668, label %.invoke97, label %671

669:                                              ; preds = %664
  %670 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  br label %755

671:                                              ; preds = %667
  %672 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %673 unwind label %448

673:                                              ; preds = %671
  %674 = getelementptr inbounds i8, ptr %672, i64 96
  %675 = load i32, ptr %674, align 8
  %676 = and i32 %675, -16776961
  %677 = or disjoint i32 %676, 520704
  store i32 %677, ptr %674, align 8
  %678 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %679 unwind label %448

679:                                              ; preds = %673
  %680 = getelementptr inbounds i8, ptr %678, i64 32
  store ptr @.str.3, ptr %680, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %681 unwind label %448

681:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #7
  store i32 0, ptr %42, align 4, !tbaa !13
  %682 = getelementptr inbounds i8, ptr %27, i64 24
  %683 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIimEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %42, ptr noundef nonnull align 8 dereferenceable(8) %682, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.337, ptr noundef null)
          to label %684 unwind label %686

684:                                              ; preds = %681
  %685 = icmp eq i32 %683, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  br i1 %685, label %.invoke97, label %688

686:                                              ; preds = %681
  %687 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  br label %755

688:                                              ; preds = %684
  %689 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %690 unwind label %448

690:                                              ; preds = %688
  %691 = getelementptr inbounds i8, ptr %689, i64 96
  %692 = load i32, ptr %691, align 8
  %693 = and i32 %692, -16776961
  %694 = or disjoint i32 %693, 520960
  store i32 %694, ptr %691, align 8
  %695 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %696 unwind label %448

696:                                              ; preds = %690
  %697 = getelementptr inbounds i8, ptr %695, i64 32
  store ptr @.str.3, ptr %697, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %698 unwind label %448

698:                                              ; preds = %696
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #7
  store i32 2, ptr %43, align 4, !tbaa !13
  %699 = getelementptr inbounds i8, ptr %27, i64 64
  %700 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull align 8 dereferenceable(8) %699, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.338)
          to label %701 unwind label %703

701:                                              ; preds = %698
  %702 = icmp eq i32 %700, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #7
  br i1 %702, label %.invoke97, label %705

703:                                              ; preds = %698
  %704 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #7
  br label %755

705:                                              ; preds = %701
  %706 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %707 unwind label %448

707:                                              ; preds = %705
  %708 = getelementptr inbounds i8, ptr %706, i64 96
  %709 = load i32, ptr %708, align 8
  %710 = and i32 %709, -16776961
  %711 = or disjoint i32 %710, 521216
  store i32 %711, ptr %708, align 8
  %712 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %713 unwind label %448

713:                                              ; preds = %707
  %714 = getelementptr inbounds i8, ptr %712, i64 32
  store ptr @.str.3, ptr %714, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %715 unwind label %448

715:                                              ; preds = %713
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #7
  store i32 0, ptr %44, align 4, !tbaa !13
  %716 = getelementptr inbounds i8, ptr %27, i64 32
  %717 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIimEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 8 dereferenceable(8) %716, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.339, ptr noundef null)
          to label %718 unwind label %720

718:                                              ; preds = %715
  %719 = icmp eq i32 %717, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #7
  br i1 %719, label %.invoke97, label %722

720:                                              ; preds = %715
  %721 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #7
  br label %755

722:                                              ; preds = %718
  %723 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %724 unwind label %448

724:                                              ; preds = %722
  %725 = getelementptr inbounds i8, ptr %723, i64 96
  %726 = load i32, ptr %725, align 8
  %727 = and i32 %726, -16776961
  %728 = or disjoint i32 %727, 521472
  store i32 %728, ptr %725, align 8
  %729 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %730 unwind label %448

730:                                              ; preds = %724
  %731 = getelementptr inbounds i8, ptr %729, i64 32
  store ptr @.str.3, ptr %731, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %732 unwind label %448

732:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #7
  store i32 5902, ptr %45, align 4, !tbaa !13
  %733 = getelementptr inbounds i8, ptr %27, i64 72
  %734 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 8 dereferenceable(8) %733, ptr noundef nonnull @.str.297, ptr noundef nonnull @.str.340)
          to label %735 unwind label %737

735:                                              ; preds = %732
  %736 = icmp eq i32 %734, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #7
  br i1 %736, label %.invoke97, label %739

.invoke97:                                        ; preds = %442, %735, %718, %701, %684, %667, %650, %634, %617, %600, %583, %566, %549, %533, %516, %499, %482, %465
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %751 unwind label %448

737:                                              ; preds = %732
  %738 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #7
  br label %755

739:                                              ; preds = %735
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %53)
          to label %740 unwind label %448

740:                                              ; preds = %739
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %52)
          to label %741 unwind label %448

741:                                              ; preds = %740
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %51)
          to label %742 unwind label %448

742:                                              ; preds = %741
  %.not76 = icmp eq ptr %50, null
  br i1 %.not76, label %744, label %743

743:                                              ; preds = %742
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %50)
          to label %744 unwind label %448

744:                                              ; preds = %742, %743
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %49)
          to label %745 unwind label %448

745:                                              ; preds = %744
  %.not78 = icmp eq ptr %48, null
  br i1 %.not78, label %747, label %746

746:                                              ; preds = %745
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %48)
          to label %747 unwind label %448

747:                                              ; preds = %746, %745
  %.not79 = icmp eq ptr %47, null
  br i1 %.not79, label %749, label %748

748:                                              ; preds = %747
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %47)
          to label %749 unwind label %448

749:                                              ; preds = %748, %747
  %.not80 = icmp eq ptr %46, null
  br i1 %.not80, label %751, label %750

750:                                              ; preds = %749
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %46)
          to label %751 unwind label %448

751:                                              ; preds = %.invoke97, %749, %750
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %25) #7
  br label %752

752:                                              ; preds = %.invoke96, %751
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #7
  br label %753

753:                                              ; preds = %.invoke, %752
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %754

754:                                              ; preds = %753, %94, %73
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #7
  ret void

755:                                              ; preds = %737, %720, %703, %686, %669, %652, %636, %619, %602, %585, %568, %551, %535, %518, %501, %484, %467, %450, %448
  %.pn = phi { ptr, i32 } [ %449, %448 ], [ %738, %737 ], [ %721, %720 ], [ %704, %703 ], [ %687, %686 ], [ %670, %669 ], [ %653, %652 ], [ %637, %636 ], [ %620, %619 ], [ %603, %602 ], [ %586, %585 ], [ %569, %568 ], [ %552, %551 ], [ %536, %535 ], [ %519, %518 ], [ %502, %501 ], [ %485, %484 ], [ %468, %467 ], [ %451, %450 ]
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %27) #7
  br label %756

756:                                              ; preds = %755, %446
  %.pn.pn = phi { ptr, i32 } [ %.pn, %755 ], [ %447, %446 ]
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %26) #7
  br label %757

757:                                              ; preds = %756, %444
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %756 ], [ %445, %444 ]
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %25) #7
  br label %758

758:                                              ; preds = %757, %411, %389, %370, %350, %331, %311, %292, %273, %251, %218, %198, %196
  %.pn84 = phi { ptr, i32 } [ %197, %196 ], [ %.pn.pn.pn, %757 ], [ %412, %411 ], [ %390, %389 ], [ %371, %370 ], [ %351, %350 ], [ %332, %331 ], [ %312, %311 ], [ %293, %292 ], [ %274, %273 ], [ %252, %251 ], [ %219, %218 ], [ %199, %198 ]
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #7
  br label %759

759:                                              ; preds = %758, %194
  %.pn84.pn = phi { ptr, i32 } [ %.pn84, %758 ], [ %195, %194 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #7
  br label %760

760:                                              ; preds = %759, %174, %154, %152
  %.pn87 = phi { ptr, i32 } [ %153, %152 ], [ %.pn84.pn, %759 ], [ %175, %174 ], [ %155, %154 ]
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %7) #7
  br label %761

761:                                              ; preds = %760, %150
  %.pn87.pn = phi { ptr, i32 } [ %.pn87, %760 ], [ %151, %150 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %762

762:                                              ; preds = %95, %97, %148, %761, %146, %76, %74
  %.pn94 = phi { ptr, i32 } [ %75, %74 ], [ %77, %76 ], [ %96, %95 ], [ %98, %97 ], [ %147, %146 ], [ %.pn87.pn, %761 ], [ %149, %148 ]
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %3) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #7
  resume { ptr, i32 } %.pn94
}

declare ptr @Longtail_CreateCacheBlockStoreAPI(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

!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 = !{!15, !7, i64 24}
!15 = !{!"_ZTS22Longtail_BlockStoreAPI", !16, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56}
!16 = !{!"_ZTS12Longtail_API", !7, i64 0}
!17 = !{!18, !7, i64 8}
!18 = !{!"_ZTS20Longtail_StoredBlock", !7, i64 0, !7, i64 8, !7, i64 16, !11, i64 24}
!19 = !{!20, !7, i64 0}
!20 = !{!"_ZTS19Longtail_BlockIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!21 = !{!12, !12, i64 0}
!22 = !{!23, !7, i64 8}
!23 = !{!"_ZTS16Longtail_HashAPI", !16, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!24 = !{!20, !7, i64 8}
!25 = !{!20, !7, i64 24}
!26 = !{!20, !7, i64 32}
!27 = !{!20, !7, i64 40}
!28 = !{!20, !7, i64 16}
!29 = !{!18, !11, i64 24}
!30 = !{!18, !7, i64 16}
!31 = !{!15, !7, i64 8}
!32 = !{!33, !7, i64 32}
!33 = !{!"_ZTS25TestAsyncGetBlockComplete", !34, i64 0, !7, i64 16, !11, i64 24, !7, i64 32}
!34 = !{!"_ZTS31Longtail_AsyncGetStoredBlockAPI", !16, i64 0, !7, i64 8}
!35 = !{!18, !7, i64 0}
!36 = !{!15, !7, i64 48}


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