; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN40Longtail_Longtail_FSBlockStore (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.TestAsyncFlushComplete = type <{ %struct.Longtail_AsyncFlushAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncFlushAPI = 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.271 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [76 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.291 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [74 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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN40Longtail_Longtail_FSBlockStore__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 %struct.Longtail_StoredBlock, align 8
  %9 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i64, align 8
  %17 = alloca ptr, align 8
  %18 = alloca %struct.TestAsyncPutBlockComplete, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = 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 %struct.TestAsyncFlushComplete, align 8
  %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 i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %47 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #7
  %48 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %48, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #7
  %49 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %49, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %50 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %50, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  %51 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  store ptr %51, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  %52 = load ptr, ptr %6, align 8, !tbaa !5
  %53 = load ptr, ptr %3, align 8, !tbaa !5
  %54 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %52, ptr noundef %53, ptr noundef @.str.270, ptr noundef null, i32 noundef 0)
  store ptr %54, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #7
  %55 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 0
  store ptr null, ptr %55, align 8, !tbaa !9
  %56 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  store ptr null, ptr %56, align 8, !tbaa !12
  %57 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  store ptr null, ptr %57, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 40, ptr %9) #7
  call void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9)
  br label %58

58:                                               ; preds = %1
  %59 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %60 unwind label %81

60:                                               ; preds = %58
  %61 = getelementptr inbounds %struct.jc_test_fixture, ptr %59, i32 0, i32 11
  %62 = load i32, ptr %61, align 8
  %63 = and i32 %62, -16776961
  %64 = or i32 %63, 388608
  store i32 %64, ptr %61, align 8
  %65 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %66 unwind label %81

66:                                               ; preds = %60
  %67 = getelementptr inbounds %struct.jc_test_fixture, ptr %65, i32 0, i32 4
  store ptr @.str.3, ptr %67, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %68 unwind label %81

68:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  store i32 2, ptr %12, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  %69 = load ptr, ptr %7, align 8, !tbaa !5
  %70 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %69, i32 0, i32 3
  %71 = load ptr, ptr %70, align 8, !tbaa !19
  %72 = load ptr, ptr %7, align 8, !tbaa !5
  %73 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %9, i32 0, i32 0
  %74 = invoke noundef i32 %71(ptr noundef %72, i64 noundef 4711, ptr noundef %73)
          to label %75 unwind label %85

75:                                               ; preds = %68
  store i32 %74, ptr %13, align 4, !tbaa !18
  %76 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef @.str.138, ptr noundef @.str.271)
          to label %77 unwind label %85

77:                                               ; preds = %75
  %78 = icmp eq i32 %76, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br i1 %78, label %79, label %89

79:                                               ; preds = %77
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %80 unwind label %81

80:                                               ; preds = %79
  store i32 1, ptr %14, align 4
  br label %856

81:                                               ; preds = %79, %66, %60, %58
  %82 = landingpad { ptr, i32 }
          cleanup
  %83 = extractvalue { ptr, i32 } %82, 0
  store ptr %83, ptr %10, align 8
  %84 = extractvalue { ptr, i32 } %82, 1
  store i32 %84, ptr %11, align 4
  br label %868

85:                                               ; preds = %75, %68
  %86 = landingpad { ptr, i32 }
          cleanup
  %87 = extractvalue { ptr, i32 } %86, 0
  store ptr %87, ptr %10, align 8
  %88 = extractvalue { ptr, i32 } %86, 1
  store i32 %88, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %868

89:                                               ; preds = %77
  br label %90

90:                                               ; preds = %89
  br label %91

91:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %92 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %9, i32 0, i32 3
  %93 = load ptr, ptr %92, align 8, !tbaa !22
  store ptr %93, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %94 = invoke i64 @Longtail_GetBlockIndexSize(i32 noundef 2)
          to label %95 unwind label %181

95:                                               ; preds = %91
  store i64 %94, ptr %16, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %96 = load i64, ptr %16, align 8, !tbaa !25
  %97 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %96)
          to label %98 unwind label %185

98:                                               ; preds = %95
  store ptr %97, ptr %17, align 8, !tbaa !5
  %99 = load ptr, ptr %17, align 8, !tbaa !5
  %100 = invoke ptr @Longtail_InitBlockIndex(ptr noundef %99, i32 noundef 2)
          to label %101 unwind label %185

101:                                              ; preds = %98
  %102 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  store ptr %100, ptr %102, align 8, !tbaa !12
  %103 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %104 = load ptr, ptr %103, align 8, !tbaa !12
  %105 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %104, i32 0, i32 0
  %106 = load ptr, ptr %105, align 8, !tbaa !26
  store i64 3735928559, ptr %106, align 8, !tbaa !25
  %107 = load ptr, ptr %5, align 8, !tbaa !5
  %108 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %107, i32 0, i32 1
  %109 = load ptr, ptr %108, align 8, !tbaa !28
  %110 = load ptr, ptr %5, align 8, !tbaa !5
  %111 = invoke noundef i32 %109(ptr noundef %110)
          to label %112 unwind label %185

112:                                              ; preds = %101
  %113 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %114 = load ptr, ptr %113, align 8, !tbaa !12
  %115 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %114, i32 0, i32 1
  %116 = load ptr, ptr %115, align 8, !tbaa !30
  store i32 %111, ptr %116, align 4, !tbaa !18
  %117 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %118 = load ptr, ptr %117, align 8, !tbaa !12
  %119 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %118, i32 0, i32 3
  %120 = load ptr, ptr %119, align 8, !tbaa !31
  store i32 0, ptr %120, align 4, !tbaa !18
  %121 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %122 = load ptr, ptr %121, align 8, !tbaa !12
  %123 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %122, i32 0, i32 4
  %124 = load ptr, ptr %123, align 8, !tbaa !32
  %125 = getelementptr inbounds i64, ptr %124, i64 0
  store i64 251666341, ptr %125, align 8, !tbaa !25
  %126 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %127 = load ptr, ptr %126, align 8, !tbaa !12
  %128 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %127, i32 0, i32 4
  %129 = load ptr, ptr %128, align 8, !tbaa !32
  %130 = getelementptr inbounds i64, ptr %129, i64 1
  store i64 268378021, ptr %130, align 8, !tbaa !25
  %131 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %132 = load ptr, ptr %131, align 8, !tbaa !12
  %133 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %132, i32 0, i32 5
  %134 = load ptr, ptr %133, align 8, !tbaa !33
  %135 = getelementptr inbounds i32, ptr %134, i64 0
  store i32 4711, ptr %135, align 4, !tbaa !18
  %136 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %137 = load ptr, ptr %136, align 8, !tbaa !12
  %138 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %137, i32 0, i32 5
  %139 = load ptr, ptr %138, align 8, !tbaa !33
  %140 = getelementptr inbounds i32, ptr %139, i64 1
  store i32 1147, ptr %140, align 4, !tbaa !18
  %141 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %142 = load ptr, ptr %141, align 8, !tbaa !12
  %143 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %142, i32 0, i32 2
  %144 = load ptr, ptr %143, align 8, !tbaa !34
  store i32 2, ptr %144, align 4, !tbaa !18
  %145 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 3
  store i32 5858, ptr %145, align 8, !tbaa !35
  %146 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 3
  %147 = load i32, ptr %146, align 8, !tbaa !35
  %148 = zext i32 %147 to i64
  %149 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %148)
          to label %150 unwind label %185

150:                                              ; preds = %112
  %151 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  store ptr %149, ptr %151, align 8, !tbaa !13
  %152 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  %153 = load ptr, ptr %152, align 8, !tbaa !13
  call void @llvm.memset.p0.i64(ptr align 1 %153, i8 77, i64 4711, i1 false)
  %154 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  %155 = load ptr, ptr %154, align 8, !tbaa !13
  %156 = getelementptr inbounds i8, ptr %155, i64 4711
  call void @llvm.memset.p0.i64(ptr align 1 %156, i8 13, i64 1147, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #7
  invoke void @_ZN25TestAsyncPutBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %18)
          to label %157 unwind label %189

157:                                              ; preds = %150
  br label %158

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

160:                                              ; preds = %158
  %161 = getelementptr inbounds %struct.jc_test_fixture, ptr %159, i32 0, i32 11
  %162 = load i32, ptr %161, align 8
  %163 = and i32 %162, -16776961
  %164 = or i32 %163, 393984
  store i32 %164, ptr %161, align 8
  %165 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %166 unwind label %193

166:                                              ; preds = %160
  %167 = getelementptr inbounds %struct.jc_test_fixture, ptr %165, i32 0, i32 4
  store ptr @.str.3, ptr %167, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %168 unwind label %193

168:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 0, ptr %19, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  %169 = load ptr, ptr %7, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %169, i32 0, i32 1
  %171 = load ptr, ptr %170, align 8, !tbaa !36
  %172 = load ptr, ptr %7, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.TestAsyncPutBlockComplete, ptr %18, i32 0, i32 0
  %174 = invoke noundef i32 %171(ptr noundef %172, ptr noundef %8, ptr noundef %173)
          to label %175 unwind label %197

175:                                              ; preds = %168
  store i32 %174, ptr %20, align 4, !tbaa !18
  %176 = 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) %19, ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef @.str.46, ptr noundef @.str.272, ptr noundef null)
          to label %177 unwind label %197

177:                                              ; preds = %175
  %178 = icmp eq i32 %176, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br i1 %178, label %179, label %201

179:                                              ; preds = %177
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %180 unwind label %193

180:                                              ; preds = %179
  store i32 1, ptr %14, align 4
  br label %855

181:                                              ; preds = %91
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %10, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %11, align 4
  br label %867

185:                                              ; preds = %112, %101, %98, %95
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %10, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %11, align 4
  br label %866

189:                                              ; preds = %150
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %10, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %11, align 4
  br label %865

193:                                              ; preds = %223, %216, %210, %208, %204, %203, %179, %166, %160, %158
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %10, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %11, align 4
  br label %864

197:                                              ; preds = %175, %168
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %10, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %864

201:                                              ; preds = %177
  br label %202

202:                                              ; preds = %201
  br label %203

203:                                              ; preds = %202
  invoke void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %18)
          to label %204 unwind label %193

204:                                              ; preds = %203
  %205 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %206 = load ptr, ptr %205, align 8, !tbaa !12
  invoke void @Longtail_Free(ptr noundef %206)
          to label %207 unwind label %193

207:                                              ; preds = %204
  br label %208

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

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

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

218:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  store i32 0, ptr %21, align 4, !tbaa !18
  %219 = getelementptr inbounds %struct.TestAsyncPutBlockComplete, ptr %18, i32 0, i32 2
  %220 = 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) %21, ptr noundef nonnull align 4 dereferenceable(4) %219, ptr noundef @.str.46, ptr noundef @.str.273, ptr noundef null)
          to label %221 unwind label %225

221:                                              ; preds = %218
  %222 = icmp eq i32 %220, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br i1 %222, label %223, label %229

223:                                              ; preds = %221
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %224 unwind label %193

224:                                              ; preds = %223
  store i32 1, ptr %14, align 4
  br label %855

225:                                              ; preds = %218
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %10, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %864

229:                                              ; preds = %221
  br label %230

230:                                              ; preds = %229
  br label %231

231:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 40, ptr %22) #7
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %232 unwind label %256

232:                                              ; preds = %231
  br label %233

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

235:                                              ; preds = %233
  %236 = getelementptr inbounds %struct.jc_test_fixture, ptr %234, i32 0, i32 11
  %237 = load i32, ptr %236, align 8
  %238 = and i32 %237, -16776961
  %239 = or i32 %238, 395520
  store i32 %239, ptr %236, align 8
  %240 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %241 unwind label %260

241:                                              ; preds = %235
  %242 = getelementptr inbounds %struct.jc_test_fixture, ptr %240, i32 0, i32 4
  store ptr @.str.3, ptr %242, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %243 unwind label %260

243:                                              ; preds = %241
  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
  %244 = load ptr, ptr %7, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %244, i32 0, i32 3
  %246 = load ptr, ptr %245, align 8, !tbaa !19
  %247 = load ptr, ptr %7, align 8, !tbaa !5
  %248 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %22, i32 0, i32 0
  %249 = invoke noundef i32 %246(ptr noundef %247, i64 noundef 3735928559, ptr noundef %248)
          to label %250 unwind label %264

250:                                              ; preds = %243
  store i32 %249, ptr %24, align 4, !tbaa !18
  %251 = 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.274, ptr noundef null)
          to label %252 unwind label %264

252:                                              ; preds = %250
  %253 = icmp eq i32 %251, 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 %253, label %254, label %268

254:                                              ; preds = %252
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %255 unwind label %260

255:                                              ; preds = %254
  store i32 1, ptr %14, align 4
  br label %854

256:                                              ; preds = %231
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %10, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %11, align 4
  br label %863

260:                                              ; preds = %586, %583, %575, %560, %554, %552, %543, %532, %526, %524, %515, %503, %497, %495, %486, %474, %468, %466, %457, %445, %439, %437, %428, %416, %410, %408, %399, %388, %382, %380, %371, %354, %348, %346, %337, %326, %320, %318, %313, %308, %306, %300, %298, %289, %282, %276, %274, %270, %254, %241, %235, %233
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %10, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %11, align 4
  br label %862

264:                                              ; preds = %250, %243
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %10, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %11, 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 %862

268:                                              ; preds = %252
  br label %269

269:                                              ; preds = %268
  br label %270

270:                                              ; preds = %269
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %271 unwind label %260

271:                                              ; preds = %270
  %272 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %22, i32 0, i32 3
  %273 = load ptr, ptr %272, align 8, !tbaa !22
  store ptr %273, ptr %15, align 8, !tbaa !5
  br label %274

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

276:                                              ; preds = %274
  %277 = getelementptr inbounds %struct.jc_test_fixture, ptr %275, i32 0, i32 11
  %278 = load i32, ptr %277, align 8
  %279 = and i32 %278, -16776961
  %280 = or i32 %279, 396288
  store i32 %280, ptr %277, align 8
  %281 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %282 unwind label %260

282:                                              ; preds = %276
  %283 = getelementptr inbounds %struct.jc_test_fixture, ptr %281, i32 0, i32 4
  store ptr @.str.3, ptr %283, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %284 unwind label %260

284:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  store i32 0, ptr %25, align 4, !tbaa !18
  %285 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %22, i32 0, i32 2
  %286 = 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) %285, ptr noundef @.str.46, ptr noundef @.str.275, ptr noundef null)
          to label %287 unwind label %291

287:                                              ; preds = %284
  %288 = icmp eq i32 %286, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br i1 %288, label %289, label %295

289:                                              ; preds = %287
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %290 unwind label %260

290:                                              ; preds = %289
  store i32 1, ptr %14, align 4
  br label %854

291:                                              ; preds = %284
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %10, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %862

295:                                              ; preds = %287
  br label %296

296:                                              ; preds = %295
  br label %297

297:                                              ; preds = %296
  br label %298

298:                                              ; preds = %297
  %299 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %300 unwind label %260

300:                                              ; preds = %298
  %301 = getelementptr inbounds %struct.jc_test_fixture, ptr %299, i32 0, i32 11
  %302 = load i32, ptr %301, align 8
  %303 = and i32 %302, -16776961
  %304 = or i32 %303, 396800
  store i32 %304, ptr %301, align 8
  %305 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %306 unwind label %260

306:                                              ; preds = %300
  %307 = getelementptr inbounds %struct.jc_test_fixture, ptr %305, i32 0, i32 4
  store ptr @.str.3, ptr %307, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %308 unwind label %260

308:                                              ; preds = %306
  %309 = load ptr, ptr %15, align 8, !tbaa !5
  %310 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %309, ptr noundef @.str.276, ptr noundef @.str.277)
          to label %311 unwind label %260

311:                                              ; preds = %308
  %312 = icmp eq i32 %310, 0
  br i1 %312, label %313, label %315

313:                                              ; preds = %311
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %314 unwind label %260

314:                                              ; preds = %313
  store i32 1, ptr %14, align 4
  br label %854

315:                                              ; preds = %311
  br label %316

316:                                              ; preds = %315
  br label %317

317:                                              ; preds = %316
  br label %318

318:                                              ; preds = %317
  %319 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %320 unwind label %260

320:                                              ; preds = %318
  %321 = getelementptr inbounds %struct.jc_test_fixture, ptr %319, i32 0, i32 11
  %322 = load i32, ptr %321, align 8
  %323 = and i32 %322, -16776961
  %324 = or i32 %323, 397056
  store i32 %324, ptr %321, align 8
  %325 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %326 unwind label %260

326:                                              ; preds = %320
  %327 = getelementptr inbounds %struct.jc_test_fixture, ptr %325, i32 0, i32 4
  store ptr @.str.3, ptr %327, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %328 unwind label %260

328:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  store i32 -559038737, ptr %26, align 4, !tbaa !18
  %329 = load ptr, ptr %15, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %329, i32 0, i32 1
  %331 = load ptr, ptr %330, align 8, !tbaa !12
  %332 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %331, i32 0, i32 0
  %333 = load ptr, ptr %332, align 8, !tbaa !26
  %334 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 8 dereferenceable(8) %333, ptr noundef @.str.108, ptr noundef @.str.278)
          to label %335 unwind label %339

335:                                              ; preds = %328
  %336 = icmp eq i32 %334, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br i1 %336, label %337, label %343

337:                                              ; preds = %335
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %338 unwind label %260

338:                                              ; preds = %337
  store i32 1, ptr %14, align 4
  br label %854

339:                                              ; preds = %328
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %10, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %862

343:                                              ; preds = %335
  br label %344

344:                                              ; preds = %343
  br label %345

345:                                              ; preds = %344
  br label %346

346:                                              ; preds = %345
  %347 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %348 unwind label %260

348:                                              ; preds = %346
  %349 = getelementptr inbounds %struct.jc_test_fixture, ptr %347, i32 0, i32 11
  %350 = load i32, ptr %349, align 8
  %351 = and i32 %350, -16776961
  %352 = or i32 %351, 397312
  store i32 %352, ptr %349, align 8
  %353 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %354 unwind label %260

354:                                              ; preds = %348
  %355 = getelementptr inbounds %struct.jc_test_fixture, ptr %353, i32 0, i32 4
  store ptr @.str.3, ptr %355, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %356 unwind label %260

356:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %357 = load ptr, ptr %5, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %357, i32 0, i32 1
  %359 = load ptr, ptr %358, align 8, !tbaa !28
  %360 = load ptr, ptr %5, align 8, !tbaa !5
  %361 = invoke noundef i32 %359(ptr noundef %360)
          to label %362 unwind label %373

362:                                              ; preds = %356
  store i32 %361, ptr %27, align 4, !tbaa !18
  %363 = load ptr, ptr %15, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %363, i32 0, i32 1
  %365 = load ptr, ptr %364, align 8, !tbaa !12
  %366 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %365, i32 0, i32 1
  %367 = load ptr, ptr %366, align 8, !tbaa !30
  %368 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 4 dereferenceable(4) %367, ptr noundef @.str.76, ptr noundef @.str.279)
          to label %369 unwind label %373

369:                                              ; preds = %362
  %370 = icmp eq i32 %368, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br i1 %370, label %371, label %377

371:                                              ; preds = %369
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %372 unwind label %260

372:                                              ; preds = %371
  store i32 1, ptr %14, align 4
  br label %854

373:                                              ; preds = %362, %356
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %10, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %862

377:                                              ; preds = %369
  br label %378

378:                                              ; preds = %377
  br label %379

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  %381 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %382 unwind label %260

382:                                              ; preds = %380
  %383 = getelementptr inbounds %struct.jc_test_fixture, ptr %381, i32 0, i32 11
  %384 = load i32, ptr %383, align 8
  %385 = and i32 %384, -16776961
  %386 = or i32 %385, 397568
  store i32 %386, ptr %383, align 8
  %387 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %388 unwind label %260

388:                                              ; preds = %382
  %389 = getelementptr inbounds %struct.jc_test_fixture, ptr %387, i32 0, i32 4
  store ptr @.str.3, ptr %389, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %390 unwind label %260

390:                                              ; preds = %388
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  store i32 0, ptr %28, align 4, !tbaa !18
  %391 = load ptr, ptr %15, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %391, i32 0, i32 1
  %393 = load ptr, ptr %392, align 8, !tbaa !12
  %394 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %393, i32 0, i32 3
  %395 = load ptr, ptr %394, align 8, !tbaa !31
  %396 = 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) %28, ptr noundef nonnull align 4 dereferenceable(4) %395, ptr noundef @.str.46, ptr noundef @.str.280, ptr noundef null)
          to label %397 unwind label %401

397:                                              ; preds = %390
  %398 = icmp eq i32 %396, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br i1 %398, label %399, label %405

399:                                              ; preds = %397
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %400 unwind label %260

400:                                              ; preds = %399
  store i32 1, ptr %14, align 4
  br label %854

401:                                              ; preds = %390
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %10, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %862

405:                                              ; preds = %397
  br label %406

406:                                              ; preds = %405
  br label %407

407:                                              ; preds = %406
  br label %408

408:                                              ; preds = %407
  %409 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %410 unwind label %260

410:                                              ; preds = %408
  %411 = getelementptr inbounds %struct.jc_test_fixture, ptr %409, i32 0, i32 11
  %412 = load i32, ptr %411, align 8
  %413 = and i32 %412, -16776961
  %414 = or i32 %413, 397824
  store i32 %414, ptr %411, align 8
  %415 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %416 unwind label %260

416:                                              ; preds = %410
  %417 = getelementptr inbounds %struct.jc_test_fixture, ptr %415, i32 0, i32 4
  store ptr @.str.3, ptr %417, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %418 unwind label %260

418:                                              ; preds = %416
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  store i32 251666341, ptr %29, align 4, !tbaa !18
  %419 = load ptr, ptr %15, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %419, i32 0, i32 1
  %421 = load ptr, ptr %420, align 8, !tbaa !12
  %422 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %421, i32 0, i32 4
  %423 = load ptr, ptr %422, align 8, !tbaa !32
  %424 = getelementptr inbounds i64, ptr %423, i64 0
  %425 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 8 dereferenceable(8) %424, ptr noundef @.str.281, ptr noundef @.str.282)
          to label %426 unwind label %430

426:                                              ; preds = %418
  %427 = icmp eq i32 %425, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br i1 %427, label %428, label %434

428:                                              ; preds = %426
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %429 unwind label %260

429:                                              ; preds = %428
  store i32 1, ptr %14, align 4
  br label %854

430:                                              ; preds = %418
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %10, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %862

434:                                              ; preds = %426
  br label %435

435:                                              ; preds = %434
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  %438 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %439 unwind label %260

439:                                              ; preds = %437
  %440 = getelementptr inbounds %struct.jc_test_fixture, ptr %438, i32 0, i32 11
  %441 = load i32, ptr %440, align 8
  %442 = and i32 %441, -16776961
  %443 = or i32 %442, 398080
  store i32 %443, ptr %440, align 8
  %444 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %445 unwind label %260

445:                                              ; preds = %439
  %446 = getelementptr inbounds %struct.jc_test_fixture, ptr %444, i32 0, i32 4
  store ptr @.str.3, ptr %446, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %447 unwind label %260

447:                                              ; preds = %445
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  store i32 268378021, ptr %30, align 4, !tbaa !18
  %448 = load ptr, ptr %15, align 8, !tbaa !5
  %449 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %448, i32 0, i32 1
  %450 = load ptr, ptr %449, align 8, !tbaa !12
  %451 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %450, i32 0, i32 4
  %452 = load ptr, ptr %451, align 8, !tbaa !32
  %453 = getelementptr inbounds i64, ptr %452, i64 1
  %454 = 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) %453, ptr noundef @.str.283, ptr noundef @.str.284)
          to label %455 unwind label %459

455:                                              ; preds = %447
  %456 = icmp eq i32 %454, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br i1 %456, label %457, label %463

457:                                              ; preds = %455
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %458 unwind label %260

458:                                              ; preds = %457
  store i32 1, ptr %14, align 4
  br label %854

459:                                              ; preds = %447
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %10, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %862

463:                                              ; preds = %455
  br label %464

464:                                              ; preds = %463
  br label %465

465:                                              ; preds = %464
  br label %466

466:                                              ; preds = %465
  %467 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %468 unwind label %260

468:                                              ; preds = %466
  %469 = getelementptr inbounds %struct.jc_test_fixture, ptr %467, i32 0, i32 11
  %470 = load i32, ptr %469, align 8
  %471 = and i32 %470, -16776961
  %472 = or i32 %471, 398336
  store i32 %472, ptr %469, align 8
  %473 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %474 unwind label %260

474:                                              ; preds = %468
  %475 = getelementptr inbounds %struct.jc_test_fixture, ptr %473, i32 0, i32 4
  store ptr @.str.3, ptr %475, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %476 unwind label %260

476:                                              ; preds = %474
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  store i32 4711, ptr %31, align 4, !tbaa !18
  %477 = load ptr, ptr %15, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %477, i32 0, i32 1
  %479 = load ptr, ptr %478, align 8, !tbaa !12
  %480 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %479, i32 0, i32 5
  %481 = load ptr, ptr %480, align 8, !tbaa !33
  %482 = getelementptr inbounds i32, ptr %481, i64 0
  %483 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 4 dereferenceable(4) %482, ptr noundef @.str.285, ptr noundef @.str.286)
          to label %484 unwind label %488

484:                                              ; preds = %476
  %485 = icmp eq i32 %483, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br i1 %485, label %486, label %492

486:                                              ; preds = %484
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %487 unwind label %260

487:                                              ; preds = %486
  store i32 1, ptr %14, align 4
  br label %854

488:                                              ; preds = %476
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %10, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %862

492:                                              ; preds = %484
  br label %493

493:                                              ; preds = %492
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494
  %496 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %497 unwind label %260

497:                                              ; preds = %495
  %498 = getelementptr inbounds %struct.jc_test_fixture, ptr %496, i32 0, i32 11
  %499 = load i32, ptr %498, align 8
  %500 = and i32 %499, -16776961
  %501 = or i32 %500, 398592
  store i32 %501, ptr %498, align 8
  %502 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %503 unwind label %260

503:                                              ; preds = %497
  %504 = getelementptr inbounds %struct.jc_test_fixture, ptr %502, i32 0, i32 4
  store ptr @.str.3, ptr %504, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %505 unwind label %260

505:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  store i32 1147, ptr %32, align 4, !tbaa !18
  %506 = load ptr, ptr %15, align 8, !tbaa !5
  %507 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %506, i32 0, i32 1
  %508 = load ptr, ptr %507, align 8, !tbaa !12
  %509 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %508, i32 0, i32 5
  %510 = load ptr, ptr %509, align 8, !tbaa !33
  %511 = getelementptr inbounds i32, ptr %510, i64 1
  %512 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 4 dereferenceable(4) %511, ptr noundef @.str.287, ptr noundef @.str.288)
          to label %513 unwind label %517

513:                                              ; preds = %505
  %514 = icmp eq i32 %512, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br i1 %514, label %515, label %521

515:                                              ; preds = %513
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %516 unwind label %260

516:                                              ; preds = %515
  store i32 1, ptr %14, align 4
  br label %854

517:                                              ; preds = %505
  %518 = landingpad { ptr, i32 }
          cleanup
  %519 = extractvalue { ptr, i32 } %518, 0
  store ptr %519, ptr %10, align 8
  %520 = extractvalue { ptr, i32 } %518, 1
  store i32 %520, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %862

521:                                              ; preds = %513
  br label %522

522:                                              ; preds = %521
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  %525 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %526 unwind label %260

526:                                              ; preds = %524
  %527 = getelementptr inbounds %struct.jc_test_fixture, ptr %525, i32 0, i32 11
  %528 = load i32, ptr %527, align 8
  %529 = and i32 %528, -16776961
  %530 = or i32 %529, 398848
  store i32 %530, ptr %527, align 8
  %531 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %532 unwind label %260

532:                                              ; preds = %526
  %533 = getelementptr inbounds %struct.jc_test_fixture, ptr %531, i32 0, i32 4
  store ptr @.str.3, ptr %533, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %534 unwind label %260

534:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  store i32 2, ptr %33, align 4, !tbaa !18
  %535 = load ptr, ptr %15, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %535, i32 0, i32 1
  %537 = load ptr, ptr %536, align 8, !tbaa !12
  %538 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %537, i32 0, i32 2
  %539 = load ptr, ptr %538, align 8, !tbaa !34
  %540 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 4 dereferenceable(4) %539, ptr noundef @.str.138, ptr noundef @.str.289)
          to label %541 unwind label %545

541:                                              ; preds = %534
  %542 = icmp eq i32 %540, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br i1 %542, label %543, label %549

543:                                              ; preds = %541
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %544 unwind label %260

544:                                              ; preds = %543
  store i32 1, ptr %14, align 4
  br label %854

545:                                              ; preds = %534
  %546 = landingpad { ptr, i32 }
          cleanup
  %547 = extractvalue { ptr, i32 } %546, 0
  store ptr %547, ptr %10, align 8
  %548 = extractvalue { ptr, i32 } %546, 1
  store i32 %548, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %862

549:                                              ; preds = %541
  br label %550

550:                                              ; preds = %549
  br label %551

551:                                              ; preds = %550
  br label %552

552:                                              ; preds = %551
  %553 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %554 unwind label %260

554:                                              ; preds = %552
  %555 = getelementptr inbounds %struct.jc_test_fixture, ptr %553, i32 0, i32 11
  %556 = load i32, ptr %555, align 8
  %557 = and i32 %556, -16776961
  %558 = or i32 %557, 399104
  store i32 %558, ptr %555, align 8
  %559 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %560 unwind label %260

560:                                              ; preds = %554
  %561 = getelementptr inbounds %struct.jc_test_fixture, ptr %559, i32 0, i32 4
  store ptr @.str.3, ptr %561, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %562 unwind label %260

562:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  store i32 0, ptr %34, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %563 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  %564 = load ptr, ptr %563, align 8, !tbaa !13
  %565 = load ptr, ptr %15, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %565, i32 0, i32 2
  %567 = load ptr, ptr %566, align 8, !tbaa !13
  %568 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 3
  %569 = load i32, ptr %568, align 8, !tbaa !35
  %570 = zext i32 %569 to i64
  %571 = call i32 @memcmp(ptr noundef %564, ptr noundef %567, i64 noundef %570) #8
  store i32 %571, ptr %35, align 4, !tbaa !18
  %572 = 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) %34, ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef @.str.46, ptr noundef @.str.290, ptr noundef null)
          to label %573 unwind label %577

573:                                              ; preds = %562
  %574 = icmp eq i32 %572, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br i1 %574, label %575, label %581

575:                                              ; preds = %573
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %576 unwind label %260

576:                                              ; preds = %575
  store i32 1, ptr %14, align 4
  br label %854

577:                                              ; preds = %562
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %10, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br label %862

581:                                              ; preds = %573
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582
  %584 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  %585 = load ptr, ptr %584, align 8, !tbaa !13
  invoke void @Longtail_Free(ptr noundef %585)
          to label %586 unwind label %260

586:                                              ; preds = %583
  %587 = load ptr, ptr %15, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %587, i32 0, i32 0
  %589 = load ptr, ptr %588, align 8, !tbaa !9
  %590 = load ptr, ptr %15, align 8, !tbaa !5
  %591 = invoke noundef i32 %589(ptr noundef %590)
          to label %592 unwind label %260

592:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #7
  invoke void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %36)
          to label %593 unwind label %617

593:                                              ; preds = %592
  br label %594

594:                                              ; preds = %593
  %595 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %596 unwind label %621

596:                                              ; preds = %594
  %597 = getelementptr inbounds %struct.jc_test_fixture, ptr %595, i32 0, i32 11
  %598 = load i32, ptr %597, align 8
  %599 = and i32 %598, -16776961
  %600 = or i32 %599, 400384
  store i32 %600, ptr %597, align 8
  %601 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %602 unwind label %621

602:                                              ; preds = %596
  %603 = getelementptr inbounds %struct.jc_test_fixture, ptr %601, i32 0, i32 4
  store ptr @.str.3, ptr %603, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %604 unwind label %621

604:                                              ; preds = %602
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  store i32 0, ptr %37, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %605 = load ptr, ptr %7, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %605, i32 0, i32 7
  %607 = load ptr, ptr %606, align 8, !tbaa !37
  %608 = load ptr, ptr %7, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.TestAsyncFlushComplete, ptr %36, i32 0, i32 0
  %610 = invoke noundef i32 %607(ptr noundef %608, ptr noundef %609)
          to label %611 unwind label %625

611:                                              ; preds = %604
  store i32 %610, ptr %38, align 4, !tbaa !18
  %612 = 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) %37, ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef @.str.46, ptr noundef @.str.291, ptr noundef null)
          to label %613 unwind label %625

613:                                              ; preds = %611
  %614 = icmp eq i32 %612, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br i1 %614, label %615, label %629

615:                                              ; preds = %613
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %616 unwind label %621

616:                                              ; preds = %615
  store i32 1, ptr %14, align 4
  br label %853

617:                                              ; preds = %592
  %618 = landingpad { ptr, i32 }
          cleanup
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %10, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %11, align 4
  br label %861

621:                                              ; preds = %648, %641, %635, %633, %631, %615, %602, %596, %594
  %622 = landingpad { ptr, i32 }
          cleanup
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %10, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %11, align 4
  br label %860

625:                                              ; preds = %611, %604
  %626 = landingpad { ptr, i32 }
          cleanup
  %627 = extractvalue { ptr, i32 } %626, 0
  store ptr %627, ptr %10, align 8
  %628 = extractvalue { ptr, i32 } %626, 1
  store i32 %628, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %860

629:                                              ; preds = %613
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630
  invoke void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %36)
          to label %632 unwind label %621

632:                                              ; preds = %631
  br label %633

633:                                              ; preds = %632
  %634 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %635 unwind label %621

635:                                              ; preds = %633
  %636 = getelementptr inbounds %struct.jc_test_fixture, ptr %634, i32 0, i32 11
  %637 = load i32, ptr %636, align 8
  %638 = and i32 %637, -16776961
  %639 = or i32 %638, 400896
  store i32 %639, ptr %636, align 8
  %640 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %641 unwind label %621

641:                                              ; preds = %635
  %642 = getelementptr inbounds %struct.jc_test_fixture, ptr %640, i32 0, i32 4
  store ptr @.str.3, ptr %642, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %643 unwind label %621

643:                                              ; preds = %641
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  store i32 0, ptr %39, align 4, !tbaa !18
  %644 = getelementptr inbounds %struct.TestAsyncFlushComplete, ptr %36, i32 0, i32 2
  %645 = 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) %39, ptr noundef nonnull align 4 dereferenceable(4) %644, ptr noundef @.str.46, ptr noundef @.str.292, ptr noundef null)
          to label %646 unwind label %650

646:                                              ; preds = %643
  %647 = icmp eq i32 %645, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br i1 %647, label %648, label %654

648:                                              ; preds = %646
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %649 unwind label %621

649:                                              ; preds = %648
  store i32 1, ptr %14, align 4
  br label %853

650:                                              ; preds = %643
  %651 = landingpad { ptr, i32 }
          cleanup
  %652 = extractvalue { ptr, i32 } %651, 0
  store ptr %652, ptr %10, align 8
  %653 = extractvalue { ptr, i32 } %651, 1
  store i32 %653, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %860

654:                                              ; preds = %646
  br label %655

655:                                              ; preds = %654
  br label %656

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

662:                                              ; preds = %656
  br label %663

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

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

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

673:                                              ; preds = %671
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  store i32 2, ptr %41, align 4, !tbaa !18
  %674 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %675 = getelementptr inbounds [22 x i64], ptr %674, i64 0, i64 0
  %676 = 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) %675, ptr noundef @.str.138, ptr noundef @.str.293)
          to label %677 unwind label %685

677:                                              ; preds = %673
  %678 = icmp eq i32 %676, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br i1 %678, label %679, label %689

679:                                              ; preds = %677
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %680 unwind label %681

680:                                              ; preds = %679
  store i32 1, ptr %14, align 4
  br label %852

681:                                              ; preds = %847, %840, %833, %826, %819, %808, %800, %794, %792, %783, %775, %769, %767, %758, %750, %744, %742, %733, %725, %719, %717, %708, %700, %694, %692, %679, %671, %665, %663, %656
  %682 = landingpad { ptr, i32 }
          cleanup
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %10, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, ptr %11, align 4
  br label %859

685:                                              ; preds = %673
  %686 = landingpad { ptr, i32 }
          cleanup
  %687 = extractvalue { ptr, i32 } %686, 0
  store ptr %687, ptr %10, align 8
  %688 = extractvalue { ptr, i32 } %686, 1
  store i32 %688, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br label %859

689:                                              ; preds = %677
  br label %690

690:                                              ; preds = %689
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691
  %693 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %694 unwind label %681

694:                                              ; preds = %692
  %695 = getelementptr inbounds %struct.jc_test_fixture, ptr %693, i32 0, i32 11
  %696 = load i32, ptr %695, align 8
  %697 = and i32 %696, -16776961
  %698 = or i32 %697, 402432
  store i32 %698, ptr %695, align 8
  %699 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %700 unwind label %681

700:                                              ; preds = %694
  %701 = getelementptr inbounds %struct.jc_test_fixture, ptr %699, i32 0, i32 4
  store ptr @.str.3, ptr %701, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %702 unwind label %681

702:                                              ; preds = %700
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  store i32 1, ptr %42, align 4, !tbaa !18
  %703 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %704 = getelementptr inbounds [22 x i64], ptr %703, i64 0, i64 5
  %705 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %42, ptr noundef nonnull align 8 dereferenceable(8) %704, ptr noundef @.str.232, ptr noundef @.str.294)
          to label %706 unwind label %710

706:                                              ; preds = %702
  %707 = icmp eq i32 %705, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br i1 %707, label %708, label %714

708:                                              ; preds = %706
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %709 unwind label %681

709:                                              ; preds = %708
  store i32 1, ptr %14, align 4
  br label %852

710:                                              ; preds = %702
  %711 = landingpad { ptr, i32 }
          cleanup
  %712 = extractvalue { ptr, i32 } %711, 0
  store ptr %712, ptr %10, align 8
  %713 = extractvalue { ptr, i32 } %711, 1
  store i32 %713, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %859

714:                                              ; preds = %706
  br label %715

715:                                              ; preds = %714
  br label %716

716:                                              ; preds = %715
  br label %717

717:                                              ; preds = %716
  %718 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %719 unwind label %681

719:                                              ; preds = %717
  %720 = getelementptr inbounds %struct.jc_test_fixture, ptr %718, i32 0, i32 11
  %721 = load i32, ptr %720, align 8
  %722 = and i32 %721, -16776961
  %723 = or i32 %722, 402688
  store i32 %723, ptr %720, align 8
  %724 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %725 unwind label %681

725:                                              ; preds = %719
  %726 = getelementptr inbounds %struct.jc_test_fixture, ptr %724, i32 0, i32 4
  store ptr @.str.3, ptr %726, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %727 unwind label %681

727:                                              ; preds = %725
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  store i32 2, ptr %43, align 4, !tbaa !18
  %728 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %729 = getelementptr inbounds [22 x i64], ptr %728, i64 0, i64 3
  %730 = 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) %729, ptr noundef @.str.138, ptr noundef @.str.295)
          to label %731 unwind label %735

731:                                              ; preds = %727
  %732 = icmp eq i32 %730, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br i1 %732, label %733, label %739

733:                                              ; preds = %731
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %734 unwind label %681

734:                                              ; preds = %733
  store i32 1, ptr %14, align 4
  br label %852

735:                                              ; preds = %727
  %736 = landingpad { ptr, i32 }
          cleanup
  %737 = extractvalue { ptr, i32 } %736, 0
  store ptr %737, ptr %10, align 8
  %738 = extractvalue { ptr, i32 } %736, 1
  store i32 %738, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %859

739:                                              ; preds = %731
  br label %740

740:                                              ; preds = %739
  br label %741

741:                                              ; preds = %740
  br label %742

742:                                              ; preds = %741
  %743 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %744 unwind label %681

744:                                              ; preds = %742
  %745 = getelementptr inbounds %struct.jc_test_fixture, ptr %743, i32 0, i32 11
  %746 = load i32, ptr %745, align 8
  %747 = and i32 %746, -16776961
  %748 = or i32 %747, 402944
  store i32 %748, ptr %745, align 8
  %749 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %750 unwind label %681

750:                                              ; preds = %744
  %751 = getelementptr inbounds %struct.jc_test_fixture, ptr %749, i32 0, i32 4
  store ptr @.str.3, ptr %751, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %752 unwind label %681

752:                                              ; preds = %750
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  store i32 2, ptr %44, align 4, !tbaa !18
  %753 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %754 = getelementptr inbounds [22 x i64], ptr %753, i64 0, i64 8
  %755 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 8 dereferenceable(8) %754, ptr noundef @.str.138, ptr noundef @.str.296)
          to label %756 unwind label %760

756:                                              ; preds = %752
  %757 = icmp eq i32 %755, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br i1 %757, label %758, label %764

758:                                              ; preds = %756
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %759 unwind label %681

759:                                              ; preds = %758
  store i32 1, ptr %14, align 4
  br label %852

760:                                              ; preds = %752
  %761 = landingpad { ptr, i32 }
          cleanup
  %762 = extractvalue { ptr, i32 } %761, 0
  store ptr %762, ptr %10, align 8
  %763 = extractvalue { ptr, i32 } %761, 1
  store i32 %763, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %859

764:                                              ; preds = %756
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  br label %767

767:                                              ; preds = %766
  %768 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %769 unwind label %681

769:                                              ; preds = %767
  %770 = getelementptr inbounds %struct.jc_test_fixture, ptr %768, i32 0, i32 11
  %771 = load i32, ptr %770, align 8
  %772 = and i32 %771, -16776961
  %773 = or i32 %772, 403200
  store i32 %773, ptr %770, align 8
  %774 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %775 unwind label %681

775:                                              ; preds = %769
  %776 = getelementptr inbounds %struct.jc_test_fixture, ptr %774, i32 0, i32 4
  store ptr @.str.3, ptr %776, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %777 unwind label %681

777:                                              ; preds = %775
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  store i32 5902, ptr %45, align 4, !tbaa !18
  %778 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %779 = getelementptr inbounds [22 x i64], ptr %778, i64 0, i64 4
  %780 = 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) %779, ptr noundef @.str.297, ptr noundef @.str.298)
          to label %781 unwind label %785

781:                                              ; preds = %777
  %782 = icmp eq i32 %780, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br i1 %782, label %783, label %789

783:                                              ; preds = %781
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %784 unwind label %681

784:                                              ; preds = %783
  store i32 1, ptr %14, align 4
  br label %852

785:                                              ; preds = %777
  %786 = landingpad { ptr, i32 }
          cleanup
  %787 = extractvalue { ptr, i32 } %786, 0
  store ptr %787, ptr %10, align 8
  %788 = extractvalue { ptr, i32 } %786, 1
  store i32 %788, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %859

789:                                              ; preds = %781
  br label %790

790:                                              ; preds = %789
  br label %791

791:                                              ; preds = %790
  br label %792

792:                                              ; preds = %791
  %793 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %794 unwind label %681

794:                                              ; preds = %792
  %795 = getelementptr inbounds %struct.jc_test_fixture, ptr %793, i32 0, i32 11
  %796 = load i32, ptr %795, align 8
  %797 = and i32 %796, -16776961
  %798 = or i32 %797, 403456
  store i32 %798, ptr %795, align 8
  %799 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %800 unwind label %681

800:                                              ; preds = %794
  %801 = getelementptr inbounds %struct.jc_test_fixture, ptr %799, i32 0, i32 4
  store ptr @.str.3, ptr %801, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %802 unwind label %681

802:                                              ; preds = %800
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  store i32 5902, ptr %46, align 4, !tbaa !18
  %803 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %40, i32 0, i32 0
  %804 = getelementptr inbounds [22 x i64], ptr %803, i64 0, i64 9
  %805 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 8 dereferenceable(8) %804, ptr noundef @.str.297, ptr noundef @.str.299)
          to label %806 unwind label %810

806:                                              ; preds = %802
  %807 = icmp eq i32 %805, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br i1 %807, label %808, label %814

808:                                              ; preds = %806
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %809 unwind label %681

809:                                              ; preds = %808
  store i32 1, ptr %14, align 4
  br label %852

810:                                              ; preds = %802
  %811 = landingpad { ptr, i32 }
          cleanup
  %812 = extractvalue { ptr, i32 } %811, 0
  store ptr %812, ptr %10, align 8
  %813 = extractvalue { ptr, i32 } %811, 1
  store i32 %813, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %859

814:                                              ; preds = %806
  br label %815

815:                                              ; preds = %814
  br label %816

816:                                              ; preds = %815
  %817 = load ptr, ptr %7, align 8, !tbaa !5
  %818 = icmp ne ptr %817, null
  br i1 %818, label %819, label %823

819:                                              ; preds = %816
  %820 = load ptr, ptr %7, align 8, !tbaa !5
  %821 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %820, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %821)
          to label %822 unwind label %681

822:                                              ; preds = %819
  br label %823

823:                                              ; preds = %822, %816
  %824 = load ptr, ptr %6, align 8, !tbaa !5
  %825 = icmp ne ptr %824, null
  br i1 %825, label %826, label %830

826:                                              ; preds = %823
  %827 = load ptr, ptr %6, align 8, !tbaa !5
  %828 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %827, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %828)
          to label %829 unwind label %681

829:                                              ; preds = %826
  br label %830

830:                                              ; preds = %829, %823
  %831 = load ptr, ptr %5, align 8, !tbaa !5
  %832 = icmp ne ptr %831, null
  br i1 %832, label %833, label %837

833:                                              ; preds = %830
  %834 = load ptr, ptr %5, align 8, !tbaa !5
  %835 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %834, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %835)
          to label %836 unwind label %681

836:                                              ; preds = %833
  br label %837

837:                                              ; preds = %836, %830
  %838 = load ptr, ptr %4, align 8, !tbaa !5
  %839 = icmp ne ptr %838, null
  br i1 %839, label %840, label %844

840:                                              ; preds = %837
  %841 = load ptr, ptr %4, align 8, !tbaa !5
  %842 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %841, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %842)
          to label %843 unwind label %681

843:                                              ; preds = %840
  br label %844

844:                                              ; preds = %843, %837
  %845 = load ptr, ptr %3, align 8, !tbaa !5
  %846 = icmp ne ptr %845, null
  br i1 %846, label %847, label %851

847:                                              ; preds = %844
  %848 = load ptr, ptr %3, align 8, !tbaa !5
  %849 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %848, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %849)
          to label %850 unwind label %681

850:                                              ; preds = %847
  br label %851

851:                                              ; preds = %850, %844
  store i32 0, ptr %14, align 4
  br label %852

852:                                              ; preds = %851, %809, %784, %759, %734, %709, %680
  call void @llvm.lifetime.end.p0(i64 176, ptr %40) #7
  br label %853

853:                                              ; preds = %852, %649, %616
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  br label %854

854:                                              ; preds = %853, %576, %544, %516, %487, %458, %429, %400, %372, %338, %314, %290, %255
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #7
  br label %855

855:                                              ; preds = %854, %224, %180
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %856

856:                                              ; preds = %855, %80
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 32, 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
  %857 = load i32, ptr %14, align 4
  switch i32 %857, label %874 [
    i32 0, label %858
    i32 1, label %858
  ]

858:                                              ; preds = %856, %856
  ret void

859:                                              ; preds = %810, %785, %760, %735, %710, %685, %681
  call void @llvm.lifetime.end.p0(i64 176, ptr %40) #7
  br label %860

860:                                              ; preds = %859, %650, %625, %621
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %36) #7
  br label %861

861:                                              ; preds = %860, %617
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  br label %862

862:                                              ; preds = %861, %577, %545, %517, %488, %459, %430, %401, %373, %339, %291, %264, %260
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #7
  br label %863

863:                                              ; preds = %862, %256
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #7
  br label %864

864:                                              ; preds = %863, %225, %197, %193
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %18) #7
  br label %865

865:                                              ; preds = %864, %189
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  br label %866

866:                                              ; preds = %865, %185
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %867

867:                                              ; preds = %866, %181
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %868

868:                                              ; preds = %867, %85, %81
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 32, 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 %869

869:                                              ; preds = %868
  %870 = load ptr, ptr %10, align 8
  %871 = load i32, ptr %11, align 4
  %872 = insertvalue { ptr, i32 } poison, ptr %870, 0
  %873 = insertvalue { ptr, i32 } %872, i32 %871, 1
  resume { ptr, i32 } %873

874:                                              ; preds = %856
  unreachable
}

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 uwtable
declare dso_local void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #3 align 2

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

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

; 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

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 56}
!38 = !{!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.TestAsyncFlushComplete = type <{ %struct.Longtail_AsyncFlushAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncFlushAPI = 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.271 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.272 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.273 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.274 = external hidden unnamed_addr constant [76 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.291 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [74 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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN40Longtail_Longtail_FSBlockStore__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 %struct.TestAsyncPutBlockComplete, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %11 = alloca i32, align 4
  %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 %struct.TestAsyncFlushComplete, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca %struct.Longtail_BlockStore_Stats, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = tail call ptr @Longtail_CreateInMemStorageAPI()
  %36 = tail call ptr @Longtail_CreateFullCompressionRegistry()
  %37 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %38 = tail call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  %39 = tail call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %38, ptr noundef %35, ptr noundef nonnull @.str.270, ptr noundef null, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #7
  %40 = getelementptr inbounds i8, ptr %2, i64 8
  %41 = 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)
  %42 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %43 unwind label %60

43:                                               ; preds = %1
  %44 = getelementptr inbounds i8, ptr %42, i64 96
  %45 = load i32, ptr %44, align 8
  %46 = and i32 %45, -16776961
  %47 = or disjoint i32 %46, 388608
  store i32 %47, ptr %44, align 8
  %48 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %49 unwind label %60

49:                                               ; preds = %43
  %50 = getelementptr inbounds i8, ptr %48, i64 32
  store ptr @.str.3, ptr %50, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %51 unwind label %60

51:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #7
  store i32 2, ptr %4, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #7
  %52 = getelementptr inbounds i8, ptr %39, i64 24
  %53 = load ptr, ptr %52, align 8, !tbaa !14
  %54 = invoke noundef i32 %53(ptr noundef nonnull %39, i64 noundef 4711, ptr noundef nonnull %3)
          to label %55 unwind label %62

55:                                               ; preds = %51
  store i32 %54, ptr %5, align 4, !tbaa !13
  %56 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.271)
          to label %57 unwind label %62

57:                                               ; preds = %55
  %58 = icmp eq i32 %56, 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 %58, label %59, label %64

59:                                               ; preds = %57
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %545 unwind label %60

60:                                               ; preds = %59, %49, %43, %1
  %61 = landingpad { ptr, i32 }
          cleanup
  br label %553

62:                                               ; preds = %55, %51
  %63 = 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 %553

64:                                               ; preds = %57
  %65 = invoke i64 @Longtail_GetBlockIndexSize(i32 noundef 2)
          to label %66 unwind label %111

66:                                               ; preds = %64
  %67 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %65)
          to label %68 unwind label %113

68:                                               ; preds = %66
  %69 = invoke ptr @Longtail_InitBlockIndex(ptr noundef %67, i32 noundef 2)
          to label %70 unwind label %113

70:                                               ; preds = %68
  store ptr %69, ptr %40, align 8, !tbaa !17
  %71 = load ptr, ptr %69, align 8, !tbaa !19
  store i64 3735928559, ptr %71, align 8, !tbaa !21
  %72 = getelementptr inbounds i8, ptr %37, i64 8
  %73 = load ptr, ptr %72, align 8, !tbaa !22
  %74 = invoke noundef i32 %73(ptr noundef nonnull %37)
          to label %75 unwind label %113

75:                                               ; preds = %70
  %76 = load ptr, ptr %40, align 8, !tbaa !17
  %77 = getelementptr inbounds i8, ptr %76, i64 8
  %78 = load ptr, ptr %77, align 8, !tbaa !24
  store i32 %74, ptr %78, align 4, !tbaa !13
  %79 = getelementptr inbounds i8, ptr %76, i64 24
  %80 = load ptr, ptr %79, align 8, !tbaa !25
  store i32 0, ptr %80, align 4, !tbaa !13
  %81 = getelementptr inbounds i8, ptr %76, i64 32
  %82 = load ptr, ptr %81, align 8, !tbaa !26
  store i64 251666341, ptr %82, align 8, !tbaa !21
  %83 = getelementptr inbounds i8, ptr %82, i64 8
  store i64 268378021, ptr %83, align 8, !tbaa !21
  %84 = getelementptr inbounds i8, ptr %76, i64 40
  %85 = load ptr, ptr %84, align 8, !tbaa !27
  store i32 4711, ptr %85, align 4, !tbaa !13
  %86 = getelementptr inbounds i8, ptr %85, i64 4
  store i32 1147, ptr %86, align 4, !tbaa !13
  %87 = getelementptr inbounds i8, ptr %76, i64 16
  %88 = load ptr, ptr %87, align 8, !tbaa !28
  store i32 2, ptr %88, align 4, !tbaa !13
  %89 = getelementptr inbounds i8, ptr %2, i64 24
  store i32 5858, ptr %89, align 8, !tbaa !29
  %90 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef 5858)
          to label %91 unwind label %113

91:                                               ; preds = %75
  store ptr %90, ptr %41, align 8, !tbaa !30
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(4711) %90, i8 77, i64 4711, i1 false)
  %92 = getelementptr inbounds i8, ptr %90, i64 4711
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1147) %92, i8 13, i64 1147, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #7
  invoke void @_ZN25TestAsyncPutBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %93 unwind label %115

93:                                               ; preds = %91
  %94 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %95 unwind label %117

95:                                               ; preds = %93
  %96 = getelementptr inbounds i8, ptr %94, i64 96
  %97 = load i32, ptr %96, align 8
  %98 = and i32 %97, -16776961
  %99 = or disjoint i32 %98, 393984
  store i32 %99, ptr %96, align 8
  %100 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %101 unwind label %117

101:                                              ; preds = %95
  %102 = getelementptr inbounds i8, ptr %100, i64 32
  store ptr @.str.3, ptr %102, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %103 unwind label %117

103:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #7
  store i32 0, ptr %7, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #7
  %104 = getelementptr inbounds i8, ptr %39, i64 8
  %105 = load ptr, ptr %104, align 8, !tbaa !31
  %106 = invoke noundef i32 %105(ptr noundef nonnull %39, ptr noundef nonnull %2, ptr noundef nonnull %6)
          to label %107 unwind label %119

107:                                              ; preds = %103
  store i32 %106, ptr %8, align 4, !tbaa !13
  %108 = 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) %7, ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.272, ptr noundef null)
          to label %109 unwind label %119

109:                                              ; preds = %107
  %110 = icmp eq i32 %108, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  br i1 %110, label %.invoke, label %121

111:                                              ; preds = %64
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %553

113:                                              ; preds = %75, %70, %68, %66
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %553

115:                                              ; preds = %91
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %552

117:                                              ; preds = %.invoke, %132, %126, %124, %122, %121, %101, %95, %93
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %551

119:                                              ; preds = %107, %103
  %120 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  br label %551

121:                                              ; preds = %109
  invoke void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %122 unwind label %117

122:                                              ; preds = %121
  %123 = load ptr, ptr %40, align 8, !tbaa !17
  invoke void @Longtail_Free(ptr noundef %123)
          to label %124 unwind label %117

124:                                              ; preds = %122
  %125 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %126 unwind label %117

126:                                              ; preds = %124
  %127 = getelementptr inbounds i8, ptr %125, i64 96
  %128 = load i32, ptr %127, align 8
  %129 = and i32 %128, -16776961
  %130 = or disjoint i32 %129, 394752
  store i32 %130, ptr %127, align 8
  %131 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %132 unwind label %117

132:                                              ; preds = %126
  %133 = getelementptr inbounds i8, ptr %131, i64 32
  store ptr @.str.3, ptr %133, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %134 unwind label %117

134:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #7
  store i32 0, ptr %9, align 4, !tbaa !13
  %135 = getelementptr inbounds i8, ptr %6, i64 24
  %136 = 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) %9, ptr noundef nonnull align 4 dereferenceable(4) %135, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.273, ptr noundef null)
          to label %137 unwind label %139

137:                                              ; preds = %134
  %138 = icmp eq i32 %136, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  br i1 %138, label %.invoke, label %141

.invoke:                                          ; preds = %109, %137
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %544 unwind label %117

139:                                              ; preds = %134
  %140 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  br label %551

141:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #7
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10)
          to label %142 unwind label %159

142:                                              ; preds = %141
  %143 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %144 unwind label %161

144:                                              ; preds = %142
  %145 = getelementptr inbounds i8, ptr %143, i64 96
  %146 = load i32, ptr %145, align 8
  %147 = and i32 %146, -16776961
  %148 = or disjoint i32 %147, 395520
  store i32 %148, ptr %145, align 8
  %149 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %150 unwind label %161

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

152:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #7
  store i32 0, ptr %11, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #7
  %153 = load ptr, ptr %52, align 8, !tbaa !14
  %154 = invoke noundef i32 %153(ptr noundef nonnull %39, i64 noundef 3735928559, ptr noundef nonnull %10)
          to label %155 unwind label %163

155:                                              ; preds = %152
  store i32 %154, ptr %12, align 4, !tbaa !13
  %156 = 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) %11, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.274, ptr noundef null)
          to label %157 unwind label %163

157:                                              ; preds = %155
  %158 = icmp eq i32 %156, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  br i1 %158, label %.invoke75, label %165

159:                                              ; preds = %141
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %550

161:                                              ; preds = %.invoke75, %380, %378, %364, %358, %356, %345, %339, %337, %325, %319, %317, %306, %300, %298, %286, %280, %278, %267, %261, %259, %248, %242, %240, %226, %220, %218, %207, %201, %199, %195, %193, %187, %185, %176, %170, %166, %165, %150, %144, %142
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %549

163:                                              ; preds = %155, %152
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  br label %549

165:                                              ; preds = %157
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %10)
          to label %166 unwind label %161

166:                                              ; preds = %165
  %167 = getelementptr inbounds i8, ptr %10, i64 32
  %168 = load ptr, ptr %167, align 8, !tbaa !32
  %169 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %170 unwind label %161

170:                                              ; preds = %166
  %171 = getelementptr inbounds i8, ptr %169, i64 96
  %172 = load i32, ptr %171, align 8
  %173 = and i32 %172, -16776961
  %174 = or disjoint i32 %173, 396288
  store i32 %174, ptr %171, align 8
  %175 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %176 unwind label %161

176:                                              ; preds = %170
  %177 = getelementptr inbounds i8, ptr %175, i64 32
  store ptr @.str.3, ptr %177, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %178 unwind label %161

178:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  store i32 0, ptr %13, align 4, !tbaa !13
  %179 = getelementptr inbounds i8, ptr %10, i64 24
  %180 = 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) %13, ptr noundef nonnull align 4 dereferenceable(4) %179, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.275, ptr noundef null)
          to label %181 unwind label %183

181:                                              ; preds = %178
  %182 = icmp eq i32 %180, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  br i1 %182, label %.invoke75, label %185

183:                                              ; preds = %178
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  br label %549

185:                                              ; preds = %181
  %186 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %187 unwind label %161

187:                                              ; preds = %185
  %188 = getelementptr inbounds i8, ptr %186, i64 96
  %189 = load i32, ptr %188, align 8
  %190 = and i32 %189, -16776961
  %191 = or disjoint i32 %190, 396800
  store i32 %191, ptr %188, align 8
  %192 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %193 unwind label %161

193:                                              ; preds = %187
  %194 = getelementptr inbounds i8, ptr %192, i64 32
  store ptr @.str.3, ptr %194, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %195 unwind label %161

195:                                              ; preds = %193
  %196 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %168, ptr noundef nonnull @.str.276, ptr noundef nonnull @.str.277)
          to label %197 unwind label %161

197:                                              ; preds = %195
  %198 = icmp eq i32 %196, 0
  br i1 %198, label %.invoke75, label %199

199:                                              ; preds = %197
  %200 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %201 unwind label %161

201:                                              ; preds = %199
  %202 = getelementptr inbounds i8, ptr %200, i64 96
  %203 = load i32, ptr %202, align 8
  %204 = and i32 %203, -16776961
  %205 = or disjoint i32 %204, 397056
  store i32 %205, ptr %202, align 8
  %206 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %207 unwind label %161

207:                                              ; preds = %201
  %208 = getelementptr inbounds i8, ptr %206, i64 32
  store ptr @.str.3, ptr %208, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %209 unwind label %161

209:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #7
  store i32 -559038737, ptr %14, align 4, !tbaa !13
  %210 = getelementptr inbounds i8, ptr %168, i64 8
  %211 = load ptr, ptr %210, align 8, !tbaa !17
  %212 = load ptr, ptr %211, align 8, !tbaa !19
  %213 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 8 dereferenceable(8) %212, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.278)
          to label %214 unwind label %216

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

216:                                              ; preds = %209
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #7
  br label %549

218:                                              ; preds = %214
  %219 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %220 unwind label %161

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

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

228:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #7
  %229 = load ptr, ptr %72, align 8, !tbaa !22
  %230 = invoke noundef i32 %229(ptr noundef nonnull %37)
          to label %231 unwind label %238

231:                                              ; preds = %228
  store i32 %230, ptr %15, align 4, !tbaa !13
  %232 = load ptr, ptr %210, align 8, !tbaa !17
  %233 = getelementptr inbounds i8, ptr %232, i64 8
  %234 = load ptr, ptr %233, align 8, !tbaa !24
  %235 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull align 4 dereferenceable(4) %234, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.279)
          to label %236 unwind label %238

236:                                              ; preds = %231
  %237 = icmp eq i32 %235, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br i1 %237, label %.invoke75, label %240

238:                                              ; preds = %231, %228
  %239 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br label %549

240:                                              ; preds = %236
  %241 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %242 unwind label %161

242:                                              ; preds = %240
  %243 = getelementptr inbounds i8, ptr %241, i64 96
  %244 = load i32, ptr %243, align 8
  %245 = and i32 %244, -16776961
  %246 = or disjoint i32 %245, 397568
  store i32 %246, ptr %243, align 8
  %247 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %248 unwind label %161

248:                                              ; preds = %242
  %249 = getelementptr inbounds i8, ptr %247, i64 32
  store ptr @.str.3, ptr %249, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %250 unwind label %161

250:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #7
  store i32 0, ptr %16, align 4, !tbaa !13
  %251 = load ptr, ptr %210, align 8, !tbaa !17
  %252 = getelementptr inbounds i8, ptr %251, i64 24
  %253 = load ptr, ptr %252, align 8, !tbaa !25
  %254 = 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) %16, ptr noundef nonnull align 4 dereferenceable(4) %253, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.280, ptr noundef null)
          to label %255 unwind label %257

255:                                              ; preds = %250
  %256 = icmp eq i32 %254, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  br i1 %256, label %.invoke75, label %259

257:                                              ; preds = %250
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  br label %549

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

261:                                              ; preds = %259
  %262 = getelementptr inbounds i8, ptr %260, i64 96
  %263 = load i32, ptr %262, align 8
  %264 = and i32 %263, -16776961
  %265 = or disjoint i32 %264, 397824
  store i32 %265, ptr %262, align 8
  %266 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %267 unwind label %161

267:                                              ; preds = %261
  %268 = getelementptr inbounds i8, ptr %266, i64 32
  store ptr @.str.3, ptr %268, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %269 unwind label %161

269:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #7
  store i32 251666341, ptr %17, align 4, !tbaa !13
  %270 = load ptr, ptr %210, align 8, !tbaa !17
  %271 = getelementptr inbounds i8, ptr %270, i64 32
  %272 = load ptr, ptr %271, align 8, !tbaa !26
  %273 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 8 dereferenceable(8) %272, ptr noundef nonnull @.str.281, ptr noundef nonnull @.str.282)
          to label %274 unwind label %276

274:                                              ; preds = %269
  %275 = icmp eq i32 %273, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  br i1 %275, label %.invoke75, label %278

276:                                              ; preds = %269
  %277 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  br label %549

278:                                              ; preds = %274
  %279 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %280 unwind label %161

280:                                              ; preds = %278
  %281 = getelementptr inbounds i8, ptr %279, i64 96
  %282 = load i32, ptr %281, align 8
  %283 = and i32 %282, -16776961
  %284 = or disjoint i32 %283, 398080
  store i32 %284, ptr %281, align 8
  %285 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %286 unwind label %161

286:                                              ; preds = %280
  %287 = getelementptr inbounds i8, ptr %285, i64 32
  store ptr @.str.3, ptr %287, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %288 unwind label %161

288:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #7
  store i32 268378021, ptr %18, align 4, !tbaa !13
  %289 = load ptr, ptr %210, align 8, !tbaa !17
  %290 = getelementptr inbounds i8, ptr %289, i64 32
  %291 = load ptr, ptr %290, align 8, !tbaa !26
  %292 = getelementptr inbounds i8, ptr %291, i64 8
  %293 = 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) %292, ptr noundef nonnull @.str.283, ptr noundef nonnull @.str.284)
          to label %294 unwind label %296

294:                                              ; preds = %288
  %295 = icmp eq i32 %293, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br i1 %295, label %.invoke75, label %298

296:                                              ; preds = %288
  %297 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br label %549

298:                                              ; preds = %294
  %299 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %300 unwind label %161

300:                                              ; preds = %298
  %301 = getelementptr inbounds i8, ptr %299, i64 96
  %302 = load i32, ptr %301, align 8
  %303 = and i32 %302, -16776961
  %304 = or disjoint i32 %303, 398336
  store i32 %304, ptr %301, align 8
  %305 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %306 unwind label %161

306:                                              ; preds = %300
  %307 = getelementptr inbounds i8, ptr %305, i64 32
  store ptr @.str.3, ptr %307, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %308 unwind label %161

308:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #7
  store i32 4711, ptr %19, align 4, !tbaa !13
  %309 = load ptr, ptr %210, align 8, !tbaa !17
  %310 = getelementptr inbounds i8, ptr %309, i64 40
  %311 = load ptr, ptr %310, align 8, !tbaa !27
  %312 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %19, ptr noundef nonnull align 4 dereferenceable(4) %311, ptr noundef nonnull @.str.285, ptr noundef nonnull @.str.286)
          to label %313 unwind label %315

313:                                              ; preds = %308
  %314 = icmp eq i32 %312, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br i1 %314, label %.invoke75, label %317

315:                                              ; preds = %308
  %316 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br label %549

317:                                              ; preds = %313
  %318 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %319 unwind label %161

319:                                              ; preds = %317
  %320 = getelementptr inbounds i8, ptr %318, i64 96
  %321 = load i32, ptr %320, align 8
  %322 = and i32 %321, -16776961
  %323 = or disjoint i32 %322, 398592
  store i32 %323, ptr %320, align 8
  %324 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %325 unwind label %161

325:                                              ; preds = %319
  %326 = getelementptr inbounds i8, ptr %324, i64 32
  store ptr @.str.3, ptr %326, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %327 unwind label %161

327:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #7
  store i32 1147, ptr %20, align 4, !tbaa !13
  %328 = load ptr, ptr %210, align 8, !tbaa !17
  %329 = getelementptr inbounds i8, ptr %328, i64 40
  %330 = load ptr, ptr %329, align 8, !tbaa !27
  %331 = getelementptr inbounds i8, ptr %330, i64 4
  %332 = 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) %331, ptr noundef nonnull @.str.287, ptr noundef nonnull @.str.288)
          to label %333 unwind label %335

333:                                              ; preds = %327
  %334 = icmp eq i32 %332, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  br i1 %334, label %.invoke75, label %337

335:                                              ; preds = %327
  %336 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  br label %549

337:                                              ; preds = %333
  %338 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %339 unwind label %161

339:                                              ; preds = %337
  %340 = getelementptr inbounds i8, ptr %338, i64 96
  %341 = load i32, ptr %340, align 8
  %342 = and i32 %341, -16776961
  %343 = or disjoint i32 %342, 398848
  store i32 %343, ptr %340, align 8
  %344 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %345 unwind label %161

345:                                              ; preds = %339
  %346 = getelementptr inbounds i8, ptr %344, i64 32
  store ptr @.str.3, ptr %346, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %347 unwind label %161

347:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #7
  store i32 2, ptr %21, align 4, !tbaa !13
  %348 = load ptr, ptr %210, align 8, !tbaa !17
  %349 = getelementptr inbounds i8, ptr %348, i64 16
  %350 = load ptr, ptr %349, align 8, !tbaa !28
  %351 = 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) %350, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.289)
          to label %352 unwind label %354

352:                                              ; preds = %347
  %353 = icmp eq i32 %351, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  br i1 %353, label %.invoke75, label %356

354:                                              ; preds = %347
  %355 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #7
  br label %549

356:                                              ; preds = %352
  %357 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %358 unwind label %161

358:                                              ; preds = %356
  %359 = getelementptr inbounds i8, ptr %357, i64 96
  %360 = load i32, ptr %359, align 8
  %361 = and i32 %360, -16776961
  %362 = or disjoint i32 %361, 399104
  store i32 %362, ptr %359, align 8
  %363 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %364 unwind label %161

364:                                              ; preds = %358
  %365 = getelementptr inbounds i8, ptr %363, i64 32
  store ptr @.str.3, ptr %365, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %366 unwind label %161

366:                                              ; preds = %364
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #7
  store i32 0, ptr %22, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #7
  %367 = load ptr, ptr %41, align 8, !tbaa !30
  %368 = getelementptr inbounds i8, ptr %168, i64 16
  %369 = load ptr, ptr %368, align 8, !tbaa !30
  %370 = load i32, ptr %89, align 8, !tbaa !29
  %371 = zext i32 %370 to i64
  %372 = call i32 @memcmp(ptr noundef %367, ptr noundef %369, i64 noundef %371) #8
  store i32 %372, ptr %23, align 4, !tbaa !13
  %373 = 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) %22, ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.290, ptr noundef null)
          to label %374 unwind label %376

374:                                              ; preds = %366
  %375 = icmp eq i32 %373, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  br i1 %375, label %.invoke75, label %378

.invoke75:                                        ; preds = %157, %374, %352, %333, %313, %294, %274, %255, %236, %214, %197, %181
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %543 unwind label %161

376:                                              ; preds = %366
  %377 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  br label %549

378:                                              ; preds = %374
  %379 = load ptr, ptr %41, align 8, !tbaa !30
  invoke void @Longtail_Free(ptr noundef %379)
          to label %380 unwind label %161

380:                                              ; preds = %378
  %381 = load ptr, ptr %168, align 8, !tbaa !35
  %382 = invoke noundef i32 %381(ptr noundef nonnull %168)
          to label %383 unwind label %161

383:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  invoke void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %24)
          to label %384 unwind label %402

384:                                              ; preds = %383
  %385 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %386 unwind label %404

386:                                              ; preds = %384
  %387 = getelementptr inbounds i8, ptr %385, i64 96
  %388 = load i32, ptr %387, align 8
  %389 = and i32 %388, -16776961
  %390 = or disjoint i32 %389, 400384
  store i32 %390, ptr %387, align 8
  %391 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %392 unwind label %404

392:                                              ; preds = %386
  %393 = getelementptr inbounds i8, ptr %391, i64 32
  store ptr @.str.3, ptr %393, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %394 unwind label %404

394:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #7
  store i32 0, ptr %25, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #7
  %395 = getelementptr inbounds i8, ptr %39, i64 56
  %396 = load ptr, ptr %395, align 8, !tbaa !36
  %397 = invoke noundef i32 %396(ptr noundef nonnull %39, ptr noundef nonnull %24)
          to label %398 unwind label %406

398:                                              ; preds = %394
  store i32 %397, ptr %26, align 4, !tbaa !13
  %399 = 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) %26, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.291, ptr noundef null)
          to label %400 unwind label %406

400:                                              ; preds = %398
  %401 = icmp eq i32 %399, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  br i1 %401, label %.invoke76, label %408

402:                                              ; preds = %383
  %403 = landingpad { ptr, i32 }
          cleanup
  br label %548

404:                                              ; preds = %.invoke76, %417, %411, %409, %408, %392, %386, %384
  %405 = landingpad { ptr, i32 }
          cleanup
  br label %547

406:                                              ; preds = %398, %394
  %407 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  br label %547

408:                                              ; preds = %400
  invoke void @_ZN22TestAsyncFlushComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %24)
          to label %409 unwind label %404

409:                                              ; preds = %408
  %410 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %411 unwind label %404

411:                                              ; preds = %409
  %412 = getelementptr inbounds i8, ptr %410, i64 96
  %413 = load i32, ptr %412, align 8
  %414 = and i32 %413, -16776961
  %415 = or disjoint i32 %414, 400896
  store i32 %415, ptr %412, align 8
  %416 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %417 unwind label %404

417:                                              ; preds = %411
  %418 = getelementptr inbounds i8, ptr %416, i64 32
  store ptr @.str.3, ptr %418, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %419 unwind label %404

419:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #7
  store i32 0, ptr %27, align 4, !tbaa !13
  %420 = getelementptr inbounds i8, ptr %24, i64 24
  %421 = 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) %420, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.292, ptr noundef null)
          to label %422 unwind label %424

422:                                              ; preds = %419
  %423 = icmp eq i32 %421, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  br i1 %423, label %.invoke76, label %426

.invoke76:                                        ; preds = %400, %422
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %542 unwind label %404

424:                                              ; preds = %419
  %425 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  br label %547

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

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

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, 402176
  store i32 %436, ptr %433, align 8
  %437 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %438 unwind label %444

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 %444

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

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

444:                                              ; preds = %.invoke77, %540, %538, %536, %535, %533, %524, %518, %516, %507, %501, %499, %490, %484, %482, %473, %467, %465, %456, %450, %448, %438, %432, %430, %426
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %546

446:                                              ; preds = %440
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  br label %546

448:                                              ; preds = %442
  %449 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %450 unwind label %444

450:                                              ; preds = %448
  %451 = getelementptr inbounds i8, ptr %449, i64 96
  %452 = load i32, ptr %451, align 8
  %453 = and i32 %452, -16776961
  %454 = or disjoint i32 %453, 402432
  store i32 %454, ptr %451, align 8
  %455 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %456 unwind label %444

456:                                              ; preds = %450
  %457 = getelementptr inbounds i8, ptr %455, i64 32
  store ptr @.str.3, ptr %457, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %458 unwind label %444

458:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #7
  store i32 1, ptr %30, align 4, !tbaa !13
  %459 = getelementptr inbounds i8, ptr %28, i64 40
  %460 = 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) %459, ptr noundef nonnull @.str.232, ptr noundef nonnull @.str.294)
          to label %461 unwind label %463

461:                                              ; preds = %458
  %462 = icmp eq i32 %460, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  br i1 %462, label %.invoke77, label %465

463:                                              ; preds = %458
  %464 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  br label %546

465:                                              ; preds = %461
  %466 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %467 unwind label %444

467:                                              ; preds = %465
  %468 = getelementptr inbounds i8, ptr %466, i64 96
  %469 = load i32, ptr %468, align 8
  %470 = and i32 %469, -16776961
  %471 = or disjoint i32 %470, 402688
  store i32 %471, ptr %468, align 8
  %472 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %473 unwind label %444

473:                                              ; preds = %467
  %474 = getelementptr inbounds i8, ptr %472, i64 32
  store ptr @.str.3, ptr %474, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %475 unwind label %444

475:                                              ; preds = %473
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #7
  store i32 2, ptr %31, align 4, !tbaa !13
  %476 = getelementptr inbounds i8, ptr %28, i64 24
  %477 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef nonnull align 8 dereferenceable(8) %476, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.295)
          to label %478 unwind label %480

478:                                              ; preds = %475
  %479 = icmp eq i32 %477, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  br i1 %479, label %.invoke77, label %482

480:                                              ; preds = %475
  %481 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  br label %546

482:                                              ; preds = %478
  %483 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %484 unwind label %444

484:                                              ; preds = %482
  %485 = getelementptr inbounds i8, ptr %483, i64 96
  %486 = load i32, ptr %485, align 8
  %487 = and i32 %486, -16776961
  %488 = or disjoint i32 %487, 402944
  store i32 %488, ptr %485, align 8
  %489 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %490 unwind label %444

490:                                              ; preds = %484
  %491 = getelementptr inbounds i8, ptr %489, i64 32
  store ptr @.str.3, ptr %491, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %492 unwind label %444

492:                                              ; preds = %490
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #7
  store i32 2, ptr %32, align 4, !tbaa !13
  %493 = getelementptr inbounds i8, ptr %28, i64 64
  %494 = 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) %493, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.296)
          to label %495 unwind label %497

495:                                              ; preds = %492
  %496 = icmp eq i32 %494, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  br i1 %496, label %.invoke77, label %499

497:                                              ; preds = %492
  %498 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  br label %546

499:                                              ; preds = %495
  %500 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %501 unwind label %444

501:                                              ; preds = %499
  %502 = getelementptr inbounds i8, ptr %500, i64 96
  %503 = load i32, ptr %502, align 8
  %504 = and i32 %503, -16776961
  %505 = or disjoint i32 %504, 403200
  store i32 %505, ptr %502, align 8
  %506 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %507 unwind label %444

507:                                              ; preds = %501
  %508 = getelementptr inbounds i8, ptr %506, i64 32
  store ptr @.str.3, ptr %508, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %509 unwind label %444

509:                                              ; preds = %507
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #7
  store i32 5902, ptr %33, align 4, !tbaa !13
  %510 = getelementptr inbounds i8, ptr %28, i64 32
  %511 = 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) %510, ptr noundef nonnull @.str.297, ptr noundef nonnull @.str.298)
          to label %512 unwind label %514

512:                                              ; preds = %509
  %513 = icmp eq i32 %511, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  br i1 %513, label %.invoke77, label %516

514:                                              ; preds = %509
  %515 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  br label %546

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

518:                                              ; preds = %516
  %519 = getelementptr inbounds i8, ptr %517, i64 96
  %520 = load i32, ptr %519, align 8
  %521 = and i32 %520, -16776961
  %522 = or disjoint i32 %521, 403456
  store i32 %522, ptr %519, align 8
  %523 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %524 unwind label %444

524:                                              ; preds = %518
  %525 = getelementptr inbounds i8, ptr %523, i64 32
  store ptr @.str.3, ptr %525, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %526 unwind label %444

526:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #7
  store i32 5902, ptr %34, align 4, !tbaa !13
  %527 = getelementptr inbounds i8, ptr %28, i64 72
  %528 = 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) %527, ptr noundef nonnull @.str.297, ptr noundef nonnull @.str.299)
          to label %529 unwind label %531

529:                                              ; preds = %526
  %530 = icmp eq i32 %528, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  br i1 %530, label %.invoke77, label %533

.invoke77:                                        ; preds = %442, %529, %512, %495, %478, %461
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %541 unwind label %444

531:                                              ; preds = %526
  %532 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  br label %546

533:                                              ; preds = %529
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %39)
          to label %534 unwind label %444

534:                                              ; preds = %533
  %.not57 = icmp eq ptr %38, null
  br i1 %.not57, label %536, label %535

535:                                              ; preds = %534
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %38)
          to label %536 unwind label %444

536:                                              ; preds = %534, %535
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %37)
          to label %537 unwind label %444

537:                                              ; preds = %536
  %.not59 = icmp eq ptr %36, null
  br i1 %.not59, label %539, label %538

538:                                              ; preds = %537
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %36)
          to label %539 unwind label %444

539:                                              ; preds = %538, %537
  %.not60 = icmp eq ptr %35, null
  br i1 %.not60, label %541, label %540

540:                                              ; preds = %539
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %35)
          to label %541 unwind label %444

541:                                              ; preds = %.invoke77, %539, %540
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %28) #7
  br label %542

542:                                              ; preds = %.invoke76, %541
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %543

543:                                              ; preds = %.invoke75, %542
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #7
  br label %544

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

545:                                              ; preds = %59, %544
  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

546:                                              ; preds = %531, %514, %497, %480, %463, %446, %444
  %.pn = phi { ptr, i32 } [ %445, %444 ], [ %532, %531 ], [ %515, %514 ], [ %498, %497 ], [ %481, %480 ], [ %464, %463 ], [ %447, %446 ]
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %28) #7
  br label %547

547:                                              ; preds = %546, %424, %406, %404
  %.pn62 = phi { ptr, i32 } [ %405, %404 ], [ %.pn, %546 ], [ %425, %424 ], [ %407, %406 ]
  call void @_ZN22TestAsyncFlushCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %24) #7
  br label %548

548:                                              ; preds = %547, %402
  %.pn62.pn = phi { ptr, i32 } [ %.pn62, %547 ], [ %403, %402 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %549

549:                                              ; preds = %548, %376, %354, %335, %315, %296, %276, %257, %238, %216, %183, %163, %161
  %.pn65 = phi { ptr, i32 } [ %162, %161 ], [ %.pn62.pn, %548 ], [ %377, %376 ], [ %355, %354 ], [ %336, %335 ], [ %316, %315 ], [ %297, %296 ], [ %277, %276 ], [ %258, %257 ], [ %239, %238 ], [ %217, %216 ], [ %184, %183 ], [ %164, %163 ]
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #7
  br label %550

550:                                              ; preds = %549, %159
  %.pn65.pn = phi { ptr, i32 } [ %.pn65, %549 ], [ %160, %159 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #7
  br label %551

551:                                              ; preds = %550, %139, %119, %117
  %.pn68 = phi { ptr, i32 } [ %118, %117 ], [ %.pn65.pn, %550 ], [ %140, %139 ], [ %120, %119 ]
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %6) #7
  br label %552

552:                                              ; preds = %551, %115
  %.pn68.pn = phi { ptr, i32 } [ %.pn68, %551 ], [ %116, %115 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  br label %553

553:                                              ; preds = %111, %552, %113, %62, %60
  %.pn73 = phi { ptr, i32 } [ %61, %60 ], [ %63, %62 ], [ %112, %111 ], [ %.pn68.pn, %552 ], [ %114, %113 ]
  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 } %.pn73
}

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 uwtable
declare dso_local void @_ZN22TestAsyncFlushCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28)) unnamed_addr #3 align 2

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

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

; 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

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 56}
!37 = !{!15, !7, i64 48}


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