; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN51Longtail_Longtail_FSBlockStoreReadContent (TestCase8TestBodyEv)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.Longtail_StoredBlock = type { ptr, ptr, ptr, i32 }
%struct.TestAsyncGetBlockComplete = type { %struct.Longtail_AsyncGetStoredBlockAPI, ptr, i32, ptr }
%struct.Longtail_AsyncGetStoredBlockAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_API = type { ptr }
%struct.TestAsyncPutBlockComplete = type <{ %struct.Longtail_AsyncPutStoredBlockAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncPutStoredBlockAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_BlockStore_Stats = type { [22 x i64] }
%struct.jc_test_fixture = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.jc_test_stats, i32, i32, i32, i32 }
%struct.jc_test_stats = type { i32, i32, i32, i32, i64 }
%struct.Longtail_BlockStoreAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_BlockIndex = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_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 }
%struct.Longtail_JobAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_CompressionRegistryAPI = type { %struct.Longtail_API, 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.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
@.str.302 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [76 x i8], align 1

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

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

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

declare void @_Z28jc_test_increment_assertionsv() #1

declare void @_Z21jc_test_set_test_faili(i32 noundef) #1

declare void @Longtail_Free(ptr noundef) #1

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

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

declare void @Longtail_DisposeAPI(ptr noundef) #1

declare ptr @Longtail_CreateBlake3HashAPI() #1

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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

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

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

declare ptr @Longtail_CreateInMemStorageAPI() #1

declare ptr @Longtail_CreateFullCompressionRegistry() #1

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

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

declare i32 @__gxx_personality_v0(...)

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

declare i64 @Longtail_GetBlockIndexSize(i32 noundef) #1

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN51Longtail_Longtail_FSBlockStoreReadContent__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.Longtail_BlockStore_Stats, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %69 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #7
  %70 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %70, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #7
  %71 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %71, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %72 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %72, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #7
  %73 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  store ptr %73, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  %74 = load ptr, ptr %6, align 8, !tbaa !5
  %75 = load ptr, ptr %3, align 8, !tbaa !5
  %76 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %74, ptr noundef %75, ptr noundef @.str.270, ptr noundef null, i32 noundef 0)
  store ptr %76, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #7
  %77 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 0
  store ptr null, ptr %77, align 8, !tbaa !9
  %78 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  store ptr null, ptr %78, align 8, !tbaa !12
  %79 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  store ptr null, ptr %79, 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 %80

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

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

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

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

97:                                               ; preds = %90
  store i32 %96, ptr %13, align 4, !tbaa !18
  %98 = 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 %99 unwind label %107

99:                                               ; preds = %97
  %100 = icmp eq i32 %98, 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 %100, label %101, label %111

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

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

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

107:                                              ; preds = %97, %90
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %10, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, 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 %1525

111:                                              ; preds = %99
  br label %112

112:                                              ; preds = %111
  br label %113

113:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %114 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %9, i32 0, i32 3
  %115 = load ptr, ptr %114, align 8, !tbaa !22
  store ptr %115, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %116 = invoke i64 @Longtail_GetBlockIndexSize(i32 noundef 2)
          to label %117 unwind label %203

117:                                              ; preds = %113
  store i64 %116, ptr %16, align 8, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %118 = load i64, ptr %16, align 8, !tbaa !25
  %119 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %118)
          to label %120 unwind label %207

120:                                              ; preds = %117
  store ptr %119, ptr %17, align 8, !tbaa !5
  %121 = load ptr, ptr %17, align 8, !tbaa !5
  %122 = invoke ptr @Longtail_InitBlockIndex(ptr noundef %121, i32 noundef 2)
          to label %123 unwind label %207

123:                                              ; preds = %120
  %124 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  store ptr %122, ptr %124, align 8, !tbaa !12
  %125 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %126 = load ptr, ptr %125, align 8, !tbaa !12
  %127 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %126, i32 0, i32 0
  %128 = load ptr, ptr %127, align 8, !tbaa !26
  store i64 3735928559, ptr %128, align 8, !tbaa !25
  %129 = load ptr, ptr %5, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %129, i32 0, i32 1
  %131 = load ptr, ptr %130, align 8, !tbaa !28
  %132 = load ptr, ptr %5, align 8, !tbaa !5
  %133 = invoke noundef i32 %131(ptr noundef %132)
          to label %134 unwind label %207

134:                                              ; preds = %123
  %135 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %136 = load ptr, ptr %135, align 8, !tbaa !12
  %137 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %136, i32 0, i32 1
  %138 = load ptr, ptr %137, align 8, !tbaa !30
  store i32 %133, ptr %138, align 4, !tbaa !18
  %139 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %140 = load ptr, ptr %139, align 8, !tbaa !12
  %141 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %140, i32 0, i32 3
  %142 = load ptr, ptr %141, align 8, !tbaa !31
  store i32 0, ptr %142, align 4, !tbaa !18
  %143 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %144 = load ptr, ptr %143, align 8, !tbaa !12
  %145 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %144, i32 0, i32 4
  %146 = load ptr, ptr %145, align 8, !tbaa !32
  %147 = getelementptr inbounds i64, ptr %146, i64 0
  store i64 251666341, ptr %147, align 8, !tbaa !25
  %148 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %149 = load ptr, ptr %148, align 8, !tbaa !12
  %150 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %149, i32 0, i32 4
  %151 = load ptr, ptr %150, align 8, !tbaa !32
  %152 = getelementptr inbounds i64, ptr %151, i64 1
  store i64 268378021, ptr %152, align 8, !tbaa !25
  %153 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %154 = load ptr, ptr %153, align 8, !tbaa !12
  %155 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %154, i32 0, i32 5
  %156 = load ptr, ptr %155, align 8, !tbaa !33
  %157 = getelementptr inbounds i32, ptr %156, i64 0
  store i32 4711, ptr %157, align 4, !tbaa !18
  %158 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %159 = load ptr, ptr %158, align 8, !tbaa !12
  %160 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %159, i32 0, i32 5
  %161 = load ptr, ptr %160, align 8, !tbaa !33
  %162 = getelementptr inbounds i32, ptr %161, i64 1
  store i32 1147, ptr %162, align 4, !tbaa !18
  %163 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %164 = load ptr, ptr %163, align 8, !tbaa !12
  %165 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %164, i32 0, i32 2
  %166 = load ptr, ptr %165, align 8, !tbaa !34
  store i32 2, ptr %166, align 4, !tbaa !18
  %167 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 3
  store i32 5858, ptr %167, align 8, !tbaa !35
  %168 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 3
  %169 = load i32, ptr %168, align 8, !tbaa !35
  %170 = zext i32 %169 to i64
  %171 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %170)
          to label %172 unwind label %207

172:                                              ; preds = %134
  %173 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  store ptr %171, ptr %173, align 8, !tbaa !13
  %174 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  %175 = load ptr, ptr %174, align 8, !tbaa !13
  call void @llvm.memset.p0.i64(ptr align 1 %175, i8 77, i64 4711, i1 false)
  %176 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  %177 = load ptr, ptr %176, align 8, !tbaa !13
  %178 = getelementptr inbounds i8, ptr %177, i64 4711
  call void @llvm.memset.p0.i64(ptr align 1 %178, 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 %179 unwind label %211

179:                                              ; preds = %172
  br label %180

180:                                              ; preds = %179
  %181 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %182 unwind label %215

182:                                              ; preds = %180
  %183 = getelementptr inbounds %struct.jc_test_fixture, ptr %181, i32 0, i32 11
  %184 = load i32, ptr %183, align 8
  %185 = and i32 %184, -16776961
  %186 = or i32 %185, 414720
  store i32 %186, ptr %183, align 8
  %187 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %188 unwind label %215

188:                                              ; preds = %182
  %189 = getelementptr inbounds %struct.jc_test_fixture, ptr %187, i32 0, i32 4
  store ptr @.str.3, ptr %189, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %190 unwind label %215

190:                                              ; preds = %188
  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
  %191 = load ptr, ptr %7, align 8, !tbaa !5
  %192 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %191, i32 0, i32 1
  %193 = load ptr, ptr %192, align 8, !tbaa !36
  %194 = load ptr, ptr %7, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.TestAsyncPutBlockComplete, ptr %18, i32 0, i32 0
  %196 = invoke noundef i32 %193(ptr noundef %194, ptr noundef %8, ptr noundef %195)
          to label %197 unwind label %219

197:                                              ; preds = %190
  store i32 %196, ptr %20, align 4, !tbaa !18
  %198 = 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 %199 unwind label %219

199:                                              ; preds = %197
  %200 = icmp eq i32 %198, 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 %200, label %201, label %223

201:                                              ; preds = %199
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %202 unwind label %215

202:                                              ; preds = %201
  store i32 1, ptr %14, align 4
  br label %1510

203:                                              ; preds = %113
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %10, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %11, align 4
  br label %1524

207:                                              ; preds = %134, %123, %120, %117
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %10, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %11, align 4
  br label %1523

211:                                              ; preds = %172
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %10, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %11, align 4
  br label %1522

215:                                              ; preds = %245, %238, %232, %230, %226, %225, %201, %188, %182, %180
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %10, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %11, align 4
  br label %1521

219:                                              ; preds = %197, %190
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %10, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, 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 %1521

223:                                              ; preds = %199
  br label %224

224:                                              ; preds = %223
  br label %225

225:                                              ; preds = %224
  invoke void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %18)
          to label %226 unwind label %215

226:                                              ; preds = %225
  %227 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 1
  %228 = load ptr, ptr %227, align 8, !tbaa !12
  invoke void @Longtail_Free(ptr noundef %228)
          to label %229 unwind label %215

229:                                              ; preds = %226
  br label %230

230:                                              ; preds = %229
  %231 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %232 unwind label %215

232:                                              ; preds = %230
  %233 = getelementptr inbounds %struct.jc_test_fixture, ptr %231, i32 0, i32 11
  %234 = load i32, ptr %233, align 8
  %235 = and i32 %234, -16776961
  %236 = or i32 %235, 415488
  store i32 %236, ptr %233, align 8
  %237 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %238 unwind label %215

238:                                              ; preds = %232
  %239 = getelementptr inbounds %struct.jc_test_fixture, ptr %237, i32 0, i32 4
  store ptr @.str.3, ptr %239, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %240 unwind label %215

240:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  store i32 0, ptr %21, align 4, !tbaa !18
  %241 = getelementptr inbounds %struct.TestAsyncPutBlockComplete, ptr %18, i32 0, i32 2
  %242 = 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) %241, ptr noundef @.str.46, ptr noundef @.str.273, ptr noundef null)
          to label %243 unwind label %247

243:                                              ; preds = %240
  %244 = icmp eq i32 %242, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br i1 %244, label %245, label %251

245:                                              ; preds = %243
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %246 unwind label %215

246:                                              ; preds = %245
  store i32 1, ptr %14, align 4
  br label %1510

247:                                              ; preds = %240
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %10, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %1521

251:                                              ; preds = %243
  br label %252

252:                                              ; preds = %251
  br label %253

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

254:                                              ; preds = %253
  br label %255

255:                                              ; preds = %254
  %256 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %257 unwind label %282

257:                                              ; preds = %255
  %258 = getelementptr inbounds %struct.jc_test_fixture, ptr %256, i32 0, i32 11
  %259 = load i32, ptr %258, align 8
  %260 = and i32 %259, -16776961
  %261 = or i32 %260, 416256
  store i32 %261, ptr %258, align 8
  %262 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %263 unwind label %282

263:                                              ; preds = %257
  %264 = getelementptr inbounds %struct.jc_test_fixture, ptr %262, i32 0, i32 4
  store ptr @.str.3, ptr %264, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %265 unwind label %282

265:                                              ; preds = %263
  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
  %266 = load ptr, ptr %7, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %266, i32 0, i32 3
  %268 = load ptr, ptr %267, align 8, !tbaa !19
  %269 = load ptr, ptr %7, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %22, i32 0, i32 0
  %271 = invoke noundef i32 %268(ptr noundef %269, i64 noundef 3735928559, ptr noundef %270)
          to label %272 unwind label %286

272:                                              ; preds = %265
  store i32 %271, ptr %24, align 4, !tbaa !18
  %273 = 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 %274 unwind label %286

274:                                              ; preds = %272
  %275 = icmp eq i32 %273, 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 %275, label %276, label %290

276:                                              ; preds = %274
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %277 unwind label %282

277:                                              ; preds = %276
  store i32 1, ptr %14, align 4
  br label %1509

278:                                              ; preds = %253
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %10, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %11, align 4
  br label %1520

282:                                              ; preds = %605, %597, %582, %576, %574, %565, %554, %548, %546, %537, %525, %519, %517, %508, %496, %490, %488, %479, %467, %461, %459, %450, %438, %432, %430, %421, %410, %404, %402, %393, %376, %370, %368, %359, %348, %342, %340, %335, %330, %328, %322, %320, %311, %304, %298, %296, %292, %276, %263, %257, %255
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %10, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %11, align 4
  br label %1519

286:                                              ; preds = %272, %265
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %10, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, 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 %1519

290:                                              ; preds = %274
  br label %291

291:                                              ; preds = %290
  br label %292

292:                                              ; preds = %291
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %293 unwind label %282

293:                                              ; preds = %292
  %294 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %22, i32 0, i32 3
  %295 = load ptr, ptr %294, align 8, !tbaa !22
  store ptr %295, ptr %15, align 8, !tbaa !5
  br label %296

296:                                              ; preds = %293
  %297 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %298 unwind label %282

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

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

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

309:                                              ; preds = %306
  %310 = icmp eq i32 %308, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br i1 %310, label %311, label %317

311:                                              ; preds = %309
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %312 unwind label %282

312:                                              ; preds = %311
  store i32 1, ptr %14, align 4
  br label %1509

313:                                              ; preds = %306
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %10, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %1519

317:                                              ; preds = %309
  br label %318

318:                                              ; preds = %317
  br label %319

319:                                              ; preds = %318
  br label %320

320:                                              ; preds = %319
  %321 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %322 unwind label %282

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

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

330:                                              ; preds = %328
  %331 = load ptr, ptr %15, align 8, !tbaa !5
  %332 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %331, ptr noundef @.str.276, ptr noundef @.str.277)
          to label %333 unwind label %282

333:                                              ; preds = %330
  %334 = icmp eq i32 %332, 0
  br i1 %334, label %335, label %337

335:                                              ; preds = %333
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %336 unwind label %282

336:                                              ; preds = %335
  store i32 1, ptr %14, align 4
  br label %1509

337:                                              ; preds = %333
  br label %338

338:                                              ; preds = %337
  br label %339

339:                                              ; preds = %338
  br label %340

340:                                              ; preds = %339
  %341 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %342 unwind label %282

342:                                              ; preds = %340
  %343 = getelementptr inbounds %struct.jc_test_fixture, ptr %341, i32 0, i32 11
  %344 = load i32, ptr %343, align 8
  %345 = and i32 %344, -16776961
  %346 = or i32 %345, 417792
  store i32 %346, ptr %343, align 8
  %347 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %348 unwind label %282

348:                                              ; preds = %342
  %349 = getelementptr inbounds %struct.jc_test_fixture, ptr %347, i32 0, i32 4
  store ptr @.str.3, ptr %349, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %350 unwind label %282

350:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  store i32 -559038737, ptr %26, align 4, !tbaa !18
  %351 = load ptr, ptr %15, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %351, i32 0, i32 1
  %353 = load ptr, ptr %352, align 8, !tbaa !12
  %354 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %353, i32 0, i32 0
  %355 = load ptr, ptr %354, align 8, !tbaa !26
  %356 = 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) %355, ptr noundef @.str.108, ptr noundef @.str.278)
          to label %357 unwind label %361

357:                                              ; preds = %350
  %358 = icmp eq i32 %356, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br i1 %358, label %359, label %365

359:                                              ; preds = %357
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %360 unwind label %282

360:                                              ; preds = %359
  store i32 1, ptr %14, align 4
  br label %1509

361:                                              ; preds = %350
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %10, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %1519

365:                                              ; preds = %357
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  br label %368

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

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

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

378:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %379 = load ptr, ptr %5, align 8, !tbaa !5
  %380 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %379, i32 0, i32 1
  %381 = load ptr, ptr %380, align 8, !tbaa !28
  %382 = load ptr, ptr %5, align 8, !tbaa !5
  %383 = invoke noundef i32 %381(ptr noundef %382)
          to label %384 unwind label %395

384:                                              ; preds = %378
  store i32 %383, ptr %27, align 4, !tbaa !18
  %385 = load ptr, ptr %15, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %385, i32 0, i32 1
  %387 = load ptr, ptr %386, align 8, !tbaa !12
  %388 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %387, i32 0, i32 1
  %389 = load ptr, ptr %388, align 8, !tbaa !30
  %390 = 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) %389, ptr noundef @.str.76, ptr noundef @.str.279)
          to label %391 unwind label %395

391:                                              ; preds = %384
  %392 = icmp eq i32 %390, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br i1 %392, label %393, label %399

393:                                              ; preds = %391
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %394 unwind label %282

394:                                              ; preds = %393
  store i32 1, ptr %14, align 4
  br label %1509

395:                                              ; preds = %384, %378
  %396 = landingpad { ptr, i32 }
          cleanup
  %397 = extractvalue { ptr, i32 } %396, 0
  store ptr %397, ptr %10, align 8
  %398 = extractvalue { ptr, i32 } %396, 1
  store i32 %398, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %1519

399:                                              ; preds = %391
  br label %400

400:                                              ; preds = %399
  br label %401

401:                                              ; preds = %400
  br label %402

402:                                              ; preds = %401
  %403 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %404 unwind label %282

404:                                              ; preds = %402
  %405 = getelementptr inbounds %struct.jc_test_fixture, ptr %403, i32 0, i32 11
  %406 = load i32, ptr %405, align 8
  %407 = and i32 %406, -16776961
  %408 = or i32 %407, 418304
  store i32 %408, ptr %405, align 8
  %409 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %410 unwind label %282

410:                                              ; preds = %404
  %411 = getelementptr inbounds %struct.jc_test_fixture, ptr %409, i32 0, i32 4
  store ptr @.str.3, ptr %411, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %412 unwind label %282

412:                                              ; preds = %410
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  store i32 0, ptr %28, align 4, !tbaa !18
  %413 = load ptr, ptr %15, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %413, i32 0, i32 1
  %415 = load ptr, ptr %414, align 8, !tbaa !12
  %416 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %415, i32 0, i32 3
  %417 = load ptr, ptr %416, align 8, !tbaa !31
  %418 = 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) %417, ptr noundef @.str.46, ptr noundef @.str.280, ptr noundef null)
          to label %419 unwind label %423

419:                                              ; preds = %412
  %420 = icmp eq i32 %418, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br i1 %420, label %421, label %427

421:                                              ; preds = %419
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %422 unwind label %282

422:                                              ; preds = %421
  store i32 1, ptr %14, align 4
  br label %1509

423:                                              ; preds = %412
  %424 = landingpad { ptr, i32 }
          cleanup
  %425 = extractvalue { ptr, i32 } %424, 0
  store ptr %425, ptr %10, align 8
  %426 = extractvalue { ptr, i32 } %424, 1
  store i32 %426, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %1519

427:                                              ; preds = %419
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  br label %430

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

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

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

440:                                              ; preds = %438
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  store i32 251666341, ptr %29, align 4, !tbaa !18
  %441 = load ptr, ptr %15, align 8, !tbaa !5
  %442 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %441, i32 0, i32 1
  %443 = load ptr, ptr %442, align 8, !tbaa !12
  %444 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %443, i32 0, i32 4
  %445 = load ptr, ptr %444, align 8, !tbaa !32
  %446 = getelementptr inbounds i64, ptr %445, i64 0
  %447 = 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) %446, ptr noundef @.str.281, ptr noundef @.str.282)
          to label %448 unwind label %452

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

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

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

452:                                              ; preds = %440
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %10, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %1519

456:                                              ; preds = %448
  br label %457

457:                                              ; preds = %456
  br label %458

458:                                              ; preds = %457
  br label %459

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

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

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

469:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  store i32 268378021, ptr %30, align 4, !tbaa !18
  %470 = load ptr, ptr %15, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %470, i32 0, i32 1
  %472 = load ptr, ptr %471, align 8, !tbaa !12
  %473 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %472, i32 0, i32 4
  %474 = load ptr, ptr %473, align 8, !tbaa !32
  %475 = getelementptr inbounds i64, ptr %474, i64 1
  %476 = 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) %475, ptr noundef @.str.283, ptr noundef @.str.284)
          to label %477 unwind label %481

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

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

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

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

485:                                              ; preds = %477
  br label %486

486:                                              ; preds = %485
  br label %487

487:                                              ; preds = %486
  br label %488

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

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

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

498:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  store i32 4711, ptr %31, align 4, !tbaa !18
  %499 = load ptr, ptr %15, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %499, i32 0, i32 1
  %501 = load ptr, ptr %500, align 8, !tbaa !12
  %502 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %501, i32 0, i32 5
  %503 = load ptr, ptr %502, align 8, !tbaa !33
  %504 = getelementptr inbounds i32, ptr %503, i64 0
  %505 = 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) %504, ptr noundef @.str.285, ptr noundef @.str.286)
          to label %506 unwind label %510

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

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

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

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

514:                                              ; preds = %506
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515
  br label %517

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

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

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

527:                                              ; preds = %525
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #7
  store i32 1147, ptr %32, align 4, !tbaa !18
  %528 = load ptr, ptr %15, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %528, i32 0, i32 1
  %530 = load ptr, ptr %529, align 8, !tbaa !12
  %531 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %530, i32 0, i32 5
  %532 = load ptr, ptr %531, align 8, !tbaa !33
  %533 = getelementptr inbounds i32, ptr %532, i64 1
  %534 = 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) %533, ptr noundef @.str.287, ptr noundef @.str.288)
          to label %535 unwind label %539

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

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

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

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

543:                                              ; preds = %535
  br label %544

544:                                              ; preds = %543
  br label %545

545:                                              ; preds = %544
  br label %546

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

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

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

556:                                              ; preds = %554
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  store i32 2, ptr %33, align 4, !tbaa !18
  %557 = load ptr, ptr %15, align 8, !tbaa !5
  %558 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %557, i32 0, i32 1
  %559 = load ptr, ptr %558, align 8, !tbaa !12
  %560 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %559, i32 0, i32 2
  %561 = load ptr, ptr %560, align 8, !tbaa !34
  %562 = 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) %561, ptr noundef @.str.138, ptr noundef @.str.289)
          to label %563 unwind label %567

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

565:                                              ; preds = %563
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %566 unwind label %282

566:                                              ; preds = %565
  store i32 1, ptr %14, align 4
  br label %1509

567:                                              ; preds = %556
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %10, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %1519

571:                                              ; preds = %563
  br label %572

572:                                              ; preds = %571
  br label %573

573:                                              ; preds = %572
  br label %574

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

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

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

584:                                              ; preds = %582
  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
  %585 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  %586 = load ptr, ptr %585, align 8, !tbaa !13
  %587 = load ptr, ptr %15, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %587, i32 0, i32 2
  %589 = load ptr, ptr %588, align 8, !tbaa !13
  %590 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 3
  %591 = load i32, ptr %590, align 8, !tbaa !35
  %592 = zext i32 %591 to i64
  %593 = call i32 @memcmp(ptr noundef %586, ptr noundef %589, i64 noundef %592) #8
  store i32 %593, ptr %35, align 4, !tbaa !18
  %594 = 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 %595 unwind label %599

595:                                              ; preds = %584
  %596 = icmp eq i32 %594, 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 %596, label %597, label %603

597:                                              ; preds = %595
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %598 unwind label %282

598:                                              ; preds = %597
  store i32 1, ptr %14, align 4
  br label %1509

599:                                              ; preds = %584
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %10, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, 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 %1519

603:                                              ; preds = %595
  br label %604

604:                                              ; preds = %603
  br label %605

605:                                              ; preds = %604
  %606 = load ptr, ptr %15, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %606, i32 0, i32 0
  %608 = load ptr, ptr %607, align 8, !tbaa !9
  %609 = load ptr, ptr %15, align 8, !tbaa !5
  %610 = invoke noundef i32 %608(ptr noundef %609)
          to label %611 unwind label %282

611:                                              ; preds = %605
  call void @llvm.lifetime.start.p0(i64 176, ptr %36) #7
  %612 = load ptr, ptr %7, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %612, i32 0, i32 6
  %614 = load ptr, ptr %613, align 8, !tbaa !37
  %615 = load ptr, ptr %7, align 8, !tbaa !5
  %616 = invoke noundef i32 %614(ptr noundef %615, ptr noundef %36)
          to label %617 unwind label %636

617:                                              ; preds = %611
  br label %618

618:                                              ; preds = %617
  %619 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %620 unwind label %636

620:                                              ; preds = %618
  %621 = getelementptr inbounds %struct.jc_test_fixture, ptr %619, i32 0, i32 11
  %622 = load i32, ptr %621, align 8
  %623 = and i32 %622, -16776961
  %624 = or i32 %623, 421376
  store i32 %624, ptr %621, align 8
  %625 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %626 unwind label %636

626:                                              ; preds = %620
  %627 = getelementptr inbounds %struct.jc_test_fixture, ptr %625, i32 0, i32 4
  store ptr @.str.3, ptr %627, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %628 unwind label %636

628:                                              ; preds = %626
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  store i32 2, ptr %37, align 4, !tbaa !18
  %629 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %36, i32 0, i32 0
  %630 = getelementptr inbounds [22 x i64], ptr %629, i64 0, i64 0
  %631 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 8 dereferenceable(8) %630, ptr noundef @.str.138, ptr noundef @.str.293)
          to label %632 unwind label %640

632:                                              ; preds = %628
  %633 = icmp eq i32 %631, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br i1 %633, label %634, label %644

634:                                              ; preds = %632
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %635 unwind label %636

635:                                              ; preds = %634
  store i32 1, ptr %14, align 4
  br label %1508

636:                                              ; preds = %778, %774, %763, %755, %749, %747, %738, %730, %724, %722, %713, %705, %699, %697, %688, %680, %674, %672, %663, %655, %649, %647, %634, %626, %620, %618, %611
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %10, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %11, align 4
  br label %1518

640:                                              ; preds = %628
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %10, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %1518

644:                                              ; preds = %632
  br label %645

645:                                              ; preds = %644
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646
  %648 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %649 unwind label %636

649:                                              ; preds = %647
  %650 = getelementptr inbounds %struct.jc_test_fixture, ptr %648, i32 0, i32 11
  %651 = load i32, ptr %650, align 8
  %652 = and i32 %651, -16776961
  %653 = or i32 %652, 421632
  store i32 %653, ptr %650, align 8
  %654 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %655 unwind label %636

655:                                              ; preds = %649
  %656 = getelementptr inbounds %struct.jc_test_fixture, ptr %654, i32 0, i32 4
  store ptr @.str.3, ptr %656, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %657 unwind label %636

657:                                              ; preds = %655
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  store i32 1, ptr %38, align 4, !tbaa !18
  %658 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %36, i32 0, i32 0
  %659 = getelementptr inbounds [22 x i64], ptr %658, i64 0, i64 5
  %660 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 8 dereferenceable(8) %659, ptr noundef @.str.232, ptr noundef @.str.294)
          to label %661 unwind label %665

661:                                              ; preds = %657
  %662 = icmp eq i32 %660, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br i1 %662, label %663, label %669

663:                                              ; preds = %661
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %664 unwind label %636

664:                                              ; preds = %663
  store i32 1, ptr %14, align 4
  br label %1508

665:                                              ; preds = %657
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %10, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %1518

669:                                              ; preds = %661
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670
  br label %672

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

674:                                              ; preds = %672
  %675 = getelementptr inbounds %struct.jc_test_fixture, ptr %673, i32 0, i32 11
  %676 = load i32, ptr %675, align 8
  %677 = and i32 %676, -16776961
  %678 = or i32 %677, 421888
  store i32 %678, ptr %675, align 8
  %679 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %680 unwind label %636

680:                                              ; preds = %674
  %681 = getelementptr inbounds %struct.jc_test_fixture, ptr %679, i32 0, i32 4
  store ptr @.str.3, ptr %681, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %682 unwind label %636

682:                                              ; preds = %680
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  store i32 2, ptr %39, align 4, !tbaa !18
  %683 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %36, i32 0, i32 0
  %684 = getelementptr inbounds [22 x i64], ptr %683, i64 0, i64 3
  %685 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 8 dereferenceable(8) %684, ptr noundef @.str.138, ptr noundef @.str.295)
          to label %686 unwind label %690

686:                                              ; preds = %682
  %687 = icmp eq i32 %685, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br i1 %687, label %688, label %694

688:                                              ; preds = %686
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %689 unwind label %636

689:                                              ; preds = %688
  store i32 1, ptr %14, align 4
  br label %1508

690:                                              ; preds = %682
  %691 = landingpad { ptr, i32 }
          cleanup
  %692 = extractvalue { ptr, i32 } %691, 0
  store ptr %692, ptr %10, align 8
  %693 = extractvalue { ptr, i32 } %691, 1
  store i32 %693, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %1518

694:                                              ; preds = %686
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  br label %697

697:                                              ; preds = %696
  %698 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %699 unwind label %636

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

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

707:                                              ; preds = %705
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  store i32 2, ptr %40, align 4, !tbaa !18
  %708 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %36, i32 0, i32 0
  %709 = getelementptr inbounds [22 x i64], ptr %708, i64 0, i64 8
  %710 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 8 dereferenceable(8) %709, ptr noundef @.str.138, ptr noundef @.str.296)
          to label %711 unwind label %715

711:                                              ; preds = %707
  %712 = icmp eq i32 %710, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br i1 %712, label %713, label %719

713:                                              ; preds = %711
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %714 unwind label %636

714:                                              ; preds = %713
  store i32 1, ptr %14, align 4
  br label %1508

715:                                              ; preds = %707
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %10, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %1518

719:                                              ; preds = %711
  br label %720

720:                                              ; preds = %719
  br label %721

721:                                              ; preds = %720
  br label %722

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

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

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

732:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  store i32 5902, ptr %41, align 4, !tbaa !18
  %733 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %36, i32 0, i32 0
  %734 = getelementptr inbounds [22 x i64], ptr %733, i64 0, i64 4
  %735 = 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) %734, ptr noundef @.str.297, ptr noundef @.str.298)
          to label %736 unwind label %740

736:                                              ; preds = %732
  %737 = icmp eq i32 %735, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br i1 %737, label %738, label %744

738:                                              ; preds = %736
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %739 unwind label %636

739:                                              ; preds = %738
  store i32 1, ptr %14, align 4
  br label %1508

740:                                              ; preds = %732
  %741 = landingpad { ptr, i32 }
          cleanup
  %742 = extractvalue { ptr, i32 } %741, 0
  store ptr %742, ptr %10, align 8
  %743 = extractvalue { ptr, i32 } %741, 1
  store i32 %743, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br label %1518

744:                                              ; preds = %736
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745
  br label %747

747:                                              ; preds = %746
  %748 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %749 unwind label %636

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

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

757:                                              ; preds = %755
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  store i32 5902, ptr %42, align 4, !tbaa !18
  %758 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %36, i32 0, i32 0
  %759 = getelementptr inbounds [22 x i64], ptr %758, i64 0, i64 9
  %760 = 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) %759, ptr noundef @.str.297, ptr noundef @.str.299)
          to label %761 unwind label %765

761:                                              ; preds = %757
  %762 = icmp eq i32 %760, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br i1 %762, label %763, label %769

763:                                              ; preds = %761
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %764 unwind label %636

764:                                              ; preds = %763
  store i32 1, ptr %14, align 4
  br label %1508

765:                                              ; preds = %757
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %10, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %1518

769:                                              ; preds = %761
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770
  %772 = load ptr, ptr %7, align 8, !tbaa !5
  %773 = icmp ne ptr %772, null
  br i1 %773, label %774, label %778

774:                                              ; preds = %771
  %775 = load ptr, ptr %7, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %775, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %776)
          to label %777 unwind label %636

777:                                              ; preds = %774
  br label %778

778:                                              ; preds = %777, %771
  %779 = load ptr, ptr %6, align 8, !tbaa !5
  %780 = load ptr, ptr %3, align 8, !tbaa !5
  %781 = invoke ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %779, ptr noundef %780, ptr noundef @.str.270, ptr noundef null, i32 noundef 0)
          to label %782 unwind label %636

782:                                              ; preds = %778
  store ptr %781, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %43) #7
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %43)
          to label %783 unwind label %807

783:                                              ; preds = %782
  br label %784

784:                                              ; preds = %783
  %785 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %786 unwind label %811

786:                                              ; preds = %784
  %787 = getelementptr inbounds %struct.jc_test_fixture, ptr %785, i32 0, i32 11
  %788 = load i32, ptr %787, align 8
  %789 = and i32 %788, -16776961
  %790 = or i32 %789, 424192
  store i32 %790, ptr %787, align 8
  %791 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %792 unwind label %811

792:                                              ; preds = %786
  %793 = getelementptr inbounds %struct.jc_test_fixture, ptr %791, i32 0, i32 4
  store ptr @.str.3, ptr %793, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %794 unwind label %811

794:                                              ; preds = %792
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  store i32 0, ptr %44, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  %795 = load ptr, ptr %7, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %795, i32 0, i32 3
  %797 = load ptr, ptr %796, align 8, !tbaa !19
  %798 = load ptr, ptr %7, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %43, i32 0, i32 0
  %800 = invoke noundef i32 %797(ptr noundef %798, i64 noundef 3735928559, ptr noundef %799)
          to label %801 unwind label %815

801:                                              ; preds = %794
  store i32 %800, ptr %45, align 4, !tbaa !18
  %802 = 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) %44, ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef @.str.46, ptr noundef @.str.302, ptr noundef null)
          to label %803 unwind label %815

803:                                              ; preds = %801
  %804 = icmp eq i32 %802, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br i1 %804, label %805, label %819

805:                                              ; preds = %803
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %806 unwind label %811

806:                                              ; preds = %805
  store i32 1, ptr %14, align 4
  br label %1507

807:                                              ; preds = %782
  %808 = landingpad { ptr, i32 }
          cleanup
  %809 = extractvalue { ptr, i32 } %808, 0
  store ptr %809, ptr %10, align 8
  %810 = extractvalue { ptr, i32 } %808, 1
  store i32 %810, ptr %11, align 4
  br label %1517

811:                                              ; preds = %1129, %1123, %1119, %1110, %1102, %1087, %1081, %1079, %1070, %1059, %1053, %1051, %1042, %1030, %1024, %1022, %1013, %1001, %995, %993, %984, %972, %966, %964, %955, %943, %937, %935, %926, %915, %909, %907, %898, %881, %875, %873, %864, %853, %847, %845, %840, %835, %833, %827, %825, %821, %805, %792, %786, %784
  %812 = landingpad { ptr, i32 }
          cleanup
  %813 = extractvalue { ptr, i32 } %812, 0
  store ptr %813, ptr %10, align 8
  %814 = extractvalue { ptr, i32 } %812, 1
  store i32 %814, ptr %11, align 4
  br label %1516

815:                                              ; preds = %801, %794
  %816 = landingpad { ptr, i32 }
          cleanup
  %817 = extractvalue { ptr, i32 } %816, 0
  store ptr %817, ptr %10, align 8
  %818 = extractvalue { ptr, i32 } %816, 1
  store i32 %818, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %1516

819:                                              ; preds = %803
  br label %820

820:                                              ; preds = %819
  br label %821

821:                                              ; preds = %820
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %43)
          to label %822 unwind label %811

822:                                              ; preds = %821
  %823 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %43, i32 0, i32 3
  %824 = load ptr, ptr %823, align 8, !tbaa !22
  store ptr %824, ptr %15, align 8, !tbaa !5
  br label %825

825:                                              ; preds = %822
  %826 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %827 unwind label %811

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

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

835:                                              ; preds = %833
  %836 = load ptr, ptr %15, align 8, !tbaa !5
  %837 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %836, ptr noundef @.str.276, ptr noundef @.str.277)
          to label %838 unwind label %811

838:                                              ; preds = %835
  %839 = icmp eq i32 %837, 0
  br i1 %839, label %840, label %842

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

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

842:                                              ; preds = %838
  br label %843

843:                                              ; preds = %842
  br label %844

844:                                              ; preds = %843
  br label %845

845:                                              ; preds = %844
  %846 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %847 unwind label %811

847:                                              ; preds = %845
  %848 = getelementptr inbounds %struct.jc_test_fixture, ptr %846, i32 0, i32 11
  %849 = load i32, ptr %848, align 8
  %850 = and i32 %849, -16776961
  %851 = or i32 %850, 425472
  store i32 %851, ptr %848, align 8
  %852 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %853 unwind label %811

853:                                              ; preds = %847
  %854 = getelementptr inbounds %struct.jc_test_fixture, ptr %852, i32 0, i32 4
  store ptr @.str.3, ptr %854, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %855 unwind label %811

855:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  store i32 -559038737, ptr %46, align 4, !tbaa !18
  %856 = load ptr, ptr %15, align 8, !tbaa !5
  %857 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %856, i32 0, i32 1
  %858 = load ptr, ptr %857, align 8, !tbaa !12
  %859 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %858, i32 0, i32 0
  %860 = load ptr, ptr %859, align 8, !tbaa !26
  %861 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 8 dereferenceable(8) %860, ptr noundef @.str.108, ptr noundef @.str.278)
          to label %862 unwind label %866

862:                                              ; preds = %855
  %863 = icmp eq i32 %861, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br i1 %863, label %864, label %870

864:                                              ; preds = %862
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %865 unwind label %811

865:                                              ; preds = %864
  store i32 1, ptr %14, align 4
  br label %1507

866:                                              ; preds = %855
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %10, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %1516

870:                                              ; preds = %862
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  br label %873

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

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

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

883:                                              ; preds = %881
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  %884 = load ptr, ptr %5, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %884, i32 0, i32 1
  %886 = load ptr, ptr %885, align 8, !tbaa !28
  %887 = load ptr, ptr %5, align 8, !tbaa !5
  %888 = invoke noundef i32 %886(ptr noundef %887)
          to label %889 unwind label %900

889:                                              ; preds = %883
  store i32 %888, ptr %47, align 4, !tbaa !18
  %890 = load ptr, ptr %15, align 8, !tbaa !5
  %891 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %890, i32 0, i32 1
  %892 = load ptr, ptr %891, align 8, !tbaa !12
  %893 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %892, i32 0, i32 1
  %894 = load ptr, ptr %893, align 8, !tbaa !30
  %895 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 4 dereferenceable(4) %894, ptr noundef @.str.76, ptr noundef @.str.279)
          to label %896 unwind label %900

896:                                              ; preds = %889
  %897 = icmp eq i32 %895, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br i1 %897, label %898, label %904

898:                                              ; preds = %896
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %899 unwind label %811

899:                                              ; preds = %898
  store i32 1, ptr %14, align 4
  br label %1507

900:                                              ; preds = %889, %883
  %901 = landingpad { ptr, i32 }
          cleanup
  %902 = extractvalue { ptr, i32 } %901, 0
  store ptr %902, ptr %10, align 8
  %903 = extractvalue { ptr, i32 } %901, 1
  store i32 %903, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %1516

904:                                              ; preds = %896
  br label %905

905:                                              ; preds = %904
  br label %906

906:                                              ; preds = %905
  br label %907

907:                                              ; preds = %906
  %908 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %909 unwind label %811

909:                                              ; preds = %907
  %910 = getelementptr inbounds %struct.jc_test_fixture, ptr %908, i32 0, i32 11
  %911 = load i32, ptr %910, align 8
  %912 = and i32 %911, -16776961
  %913 = or i32 %912, 425984
  store i32 %913, ptr %910, align 8
  %914 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %915 unwind label %811

915:                                              ; preds = %909
  %916 = getelementptr inbounds %struct.jc_test_fixture, ptr %914, i32 0, i32 4
  store ptr @.str.3, ptr %916, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %917 unwind label %811

917:                                              ; preds = %915
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  store i32 0, ptr %48, align 4, !tbaa !18
  %918 = load ptr, ptr %15, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %918, i32 0, i32 1
  %920 = load ptr, ptr %919, align 8, !tbaa !12
  %921 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %920, i32 0, i32 3
  %922 = load ptr, ptr %921, align 8, !tbaa !31
  %923 = 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) %48, ptr noundef nonnull align 4 dereferenceable(4) %922, ptr noundef @.str.46, ptr noundef @.str.280, ptr noundef null)
          to label %924 unwind label %928

924:                                              ; preds = %917
  %925 = icmp eq i32 %923, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br i1 %925, label %926, label %932

926:                                              ; preds = %924
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %927 unwind label %811

927:                                              ; preds = %926
  store i32 1, ptr %14, align 4
  br label %1507

928:                                              ; preds = %917
  %929 = landingpad { ptr, i32 }
          cleanup
  %930 = extractvalue { ptr, i32 } %929, 0
  store ptr %930, ptr %10, align 8
  %931 = extractvalue { ptr, i32 } %929, 1
  store i32 %931, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %1516

932:                                              ; preds = %924
  br label %933

933:                                              ; preds = %932
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934
  %936 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %937 unwind label %811

937:                                              ; preds = %935
  %938 = getelementptr inbounds %struct.jc_test_fixture, ptr %936, i32 0, i32 11
  %939 = load i32, ptr %938, align 8
  %940 = and i32 %939, -16776961
  %941 = or i32 %940, 426240
  store i32 %941, ptr %938, align 8
  %942 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %943 unwind label %811

943:                                              ; preds = %937
  %944 = getelementptr inbounds %struct.jc_test_fixture, ptr %942, i32 0, i32 4
  store ptr @.str.3, ptr %944, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %945 unwind label %811

945:                                              ; preds = %943
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #7
  store i32 251666341, ptr %49, align 4, !tbaa !18
  %946 = load ptr, ptr %15, align 8, !tbaa !5
  %947 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %946, i32 0, i32 1
  %948 = load ptr, ptr %947, align 8, !tbaa !12
  %949 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %948, i32 0, i32 4
  %950 = load ptr, ptr %949, align 8, !tbaa !32
  %951 = getelementptr inbounds i64, ptr %950, i64 0
  %952 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef nonnull align 8 dereferenceable(8) %951, ptr noundef @.str.281, ptr noundef @.str.282)
          to label %953 unwind label %957

953:                                              ; preds = %945
  %954 = icmp eq i32 %952, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br i1 %954, label %955, label %961

955:                                              ; preds = %953
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %956 unwind label %811

956:                                              ; preds = %955
  store i32 1, ptr %14, align 4
  br label %1507

957:                                              ; preds = %945
  %958 = landingpad { ptr, i32 }
          cleanup
  %959 = extractvalue { ptr, i32 } %958, 0
  store ptr %959, ptr %10, align 8
  %960 = extractvalue { ptr, i32 } %958, 1
  store i32 %960, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br label %1516

961:                                              ; preds = %953
  br label %962

962:                                              ; preds = %961
  br label %963

963:                                              ; preds = %962
  br label %964

964:                                              ; preds = %963
  %965 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %966 unwind label %811

966:                                              ; preds = %964
  %967 = getelementptr inbounds %struct.jc_test_fixture, ptr %965, i32 0, i32 11
  %968 = load i32, ptr %967, align 8
  %969 = and i32 %968, -16776961
  %970 = or i32 %969, 426496
  store i32 %970, ptr %967, align 8
  %971 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %972 unwind label %811

972:                                              ; preds = %966
  %973 = getelementptr inbounds %struct.jc_test_fixture, ptr %971, i32 0, i32 4
  store ptr @.str.3, ptr %973, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %974 unwind label %811

974:                                              ; preds = %972
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  store i32 268378021, ptr %50, align 4, !tbaa !18
  %975 = load ptr, ptr %15, align 8, !tbaa !5
  %976 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %975, i32 0, i32 1
  %977 = load ptr, ptr %976, align 8, !tbaa !12
  %978 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %977, i32 0, i32 4
  %979 = load ptr, ptr %978, align 8, !tbaa !32
  %980 = getelementptr inbounds i64, ptr %979, i64 1
  %981 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %50, ptr noundef nonnull align 8 dereferenceable(8) %980, ptr noundef @.str.283, ptr noundef @.str.284)
          to label %982 unwind label %986

982:                                              ; preds = %974
  %983 = icmp eq i32 %981, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br i1 %983, label %984, label %990

984:                                              ; preds = %982
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %985 unwind label %811

985:                                              ; preds = %984
  store i32 1, ptr %14, align 4
  br label %1507

986:                                              ; preds = %974
  %987 = landingpad { ptr, i32 }
          cleanup
  %988 = extractvalue { ptr, i32 } %987, 0
  store ptr %988, ptr %10, align 8
  %989 = extractvalue { ptr, i32 } %987, 1
  store i32 %989, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %1516

990:                                              ; preds = %982
  br label %991

991:                                              ; preds = %990
  br label %992

992:                                              ; preds = %991
  br label %993

993:                                              ; preds = %992
  %994 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %995 unwind label %811

995:                                              ; preds = %993
  %996 = getelementptr inbounds %struct.jc_test_fixture, ptr %994, i32 0, i32 11
  %997 = load i32, ptr %996, align 8
  %998 = and i32 %997, -16776961
  %999 = or i32 %998, 426752
  store i32 %999, ptr %996, align 8
  %1000 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1001 unwind label %811

1001:                                             ; preds = %995
  %1002 = getelementptr inbounds %struct.jc_test_fixture, ptr %1000, i32 0, i32 4
  store ptr @.str.3, ptr %1002, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1003 unwind label %811

1003:                                             ; preds = %1001
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  store i32 4711, ptr %51, align 4, !tbaa !18
  %1004 = load ptr, ptr %15, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1004, i32 0, i32 1
  %1006 = load ptr, ptr %1005, align 8, !tbaa !12
  %1007 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1006, i32 0, i32 5
  %1008 = load ptr, ptr %1007, align 8, !tbaa !33
  %1009 = getelementptr inbounds i32, ptr %1008, i64 0
  %1010 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %51, ptr noundef nonnull align 4 dereferenceable(4) %1009, ptr noundef @.str.285, ptr noundef @.str.286)
          to label %1011 unwind label %1015

1011:                                             ; preds = %1003
  %1012 = icmp eq i32 %1010, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br i1 %1012, label %1013, label %1019

1013:                                             ; preds = %1011
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1014 unwind label %811

1014:                                             ; preds = %1013
  store i32 1, ptr %14, align 4
  br label %1507

1015:                                             ; preds = %1003
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %10, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %1516

1019:                                             ; preds = %1011
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020
  br label %1022

1022:                                             ; preds = %1021
  %1023 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1024 unwind label %811

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

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

1032:                                             ; preds = %1030
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #7
  store i32 1147, ptr %52, align 4, !tbaa !18
  %1033 = load ptr, ptr %15, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1033, i32 0, i32 1
  %1035 = load ptr, ptr %1034, align 8, !tbaa !12
  %1036 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1035, i32 0, i32 5
  %1037 = load ptr, ptr %1036, align 8, !tbaa !33
  %1038 = getelementptr inbounds i32, ptr %1037, i64 1
  %1039 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %52, ptr noundef nonnull align 4 dereferenceable(4) %1038, ptr noundef @.str.287, ptr noundef @.str.288)
          to label %1040 unwind label %1044

1040:                                             ; preds = %1032
  %1041 = icmp eq i32 %1039, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br i1 %1041, label %1042, label %1048

1042:                                             ; preds = %1040
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1043 unwind label %811

1043:                                             ; preds = %1042
  store i32 1, ptr %14, align 4
  br label %1507

1044:                                             ; preds = %1032
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %10, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br label %1516

1048:                                             ; preds = %1040
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050
  %1052 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1053 unwind label %811

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

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

1061:                                             ; preds = %1059
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #7
  store i32 2, ptr %53, align 4, !tbaa !18
  %1062 = load ptr, ptr %15, align 8, !tbaa !5
  %1063 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1062, i32 0, i32 1
  %1064 = load ptr, ptr %1063, align 8, !tbaa !12
  %1065 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1064, i32 0, i32 2
  %1066 = load ptr, ptr %1065, align 8, !tbaa !34
  %1067 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %53, ptr noundef nonnull align 4 dereferenceable(4) %1066, ptr noundef @.str.138, ptr noundef @.str.289)
          to label %1068 unwind label %1072

1068:                                             ; preds = %1061
  %1069 = icmp eq i32 %1067, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  br i1 %1069, label %1070, label %1076

1070:                                             ; preds = %1068
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1071 unwind label %811

1071:                                             ; preds = %1070
  store i32 1, ptr %14, align 4
  br label %1507

1072:                                             ; preds = %1061
  %1073 = landingpad { ptr, i32 }
          cleanup
  %1074 = extractvalue { ptr, i32 } %1073, 0
  store ptr %1074, ptr %10, align 8
  %1075 = extractvalue { ptr, i32 } %1073, 1
  store i32 %1075, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  br label %1516

1076:                                             ; preds = %1068
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

1079:                                             ; preds = %1078
  %1080 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1081 unwind label %811

1081:                                             ; preds = %1079
  %1082 = getelementptr inbounds %struct.jc_test_fixture, ptr %1080, i32 0, i32 11
  %1083 = load i32, ptr %1082, align 8
  %1084 = and i32 %1083, -16776961
  %1085 = or i32 %1084, 427520
  store i32 %1085, ptr %1082, align 8
  %1086 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1087 unwind label %811

1087:                                             ; preds = %1081
  %1088 = getelementptr inbounds %struct.jc_test_fixture, ptr %1086, i32 0, i32 4
  store ptr @.str.3, ptr %1088, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1089 unwind label %811

1089:                                             ; preds = %1087
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #7
  store i32 0, ptr %54, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  %1090 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  %1091 = load ptr, ptr %1090, align 8, !tbaa !13
  %1092 = load ptr, ptr %15, align 8, !tbaa !5
  %1093 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1092, i32 0, i32 2
  %1094 = load ptr, ptr %1093, align 8, !tbaa !13
  %1095 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 3
  %1096 = load i32, ptr %1095, align 8, !tbaa !35
  %1097 = zext i32 %1096 to i64
  %1098 = call i32 @memcmp(ptr noundef %1091, ptr noundef %1094, i64 noundef %1097) #8
  store i32 %1098, ptr %55, align 4, !tbaa !18
  %1099 = 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) %54, ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef @.str.46, ptr noundef @.str.290, ptr noundef null)
          to label %1100 unwind label %1104

1100:                                             ; preds = %1089
  %1101 = icmp eq i32 %1099, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  br i1 %1101, label %1102, label %1108

1102:                                             ; preds = %1100
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1103 unwind label %811

1103:                                             ; preds = %1102
  store i32 1, ptr %14, align 4
  br label %1507

1104:                                             ; preds = %1089
  %1105 = landingpad { ptr, i32 }
          cleanup
  %1106 = extractvalue { ptr, i32 } %1105, 0
  store ptr %1106, ptr %10, align 8
  %1107 = extractvalue { ptr, i32 } %1105, 1
  store i32 %1107, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  br label %1516

1108:                                             ; preds = %1100
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

1110:                                             ; preds = %1109
  %1111 = load ptr, ptr %15, align 8, !tbaa !5
  %1112 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1111, i32 0, i32 0
  %1113 = load ptr, ptr %1112, align 8, !tbaa !9
  %1114 = load ptr, ptr %15, align 8, !tbaa !5
  %1115 = invoke noundef i32 %1113(ptr noundef %1114)
          to label %1116 unwind label %811

1116:                                             ; preds = %1110
  %1117 = load ptr, ptr %7, align 8, !tbaa !5
  %1118 = icmp ne ptr %1117, null
  br i1 %1118, label %1119, label %1123

1119:                                             ; preds = %1116
  %1120 = load ptr, ptr %7, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1120, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1121)
          to label %1122 unwind label %811

1122:                                             ; preds = %1119
  br label %1123

1123:                                             ; preds = %1122, %1116
  %1124 = load ptr, ptr %3, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1124, i32 0, i32 16
  %1126 = load ptr, ptr %1125, align 8, !tbaa !38
  %1127 = load ptr, ptr %3, align 8, !tbaa !5
  %1128 = invoke noundef i32 %1126(ptr noundef %1127, ptr noundef @.str.303)
          to label %1129 unwind label %811

1129:                                             ; preds = %1123
  %1130 = load ptr, ptr %6, align 8, !tbaa !5
  %1131 = load ptr, ptr %3, align 8, !tbaa !5
  %1132 = invoke ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %1130, ptr noundef %1131, ptr noundef @.str.270, ptr noundef null, i32 noundef 0)
          to label %1133 unwind label %811

1133:                                             ; preds = %1129
  store ptr %1132, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %56) #7
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %56)
          to label %1134 unwind label %1158

1134:                                             ; preds = %1133
  br label %1135

1135:                                             ; preds = %1134
  %1136 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1137 unwind label %1162

1137:                                             ; preds = %1135
  %1138 = getelementptr inbounds %struct.jc_test_fixture, ptr %1136, i32 0, i32 11
  %1139 = load i32, ptr %1138, align 8
  %1140 = and i32 %1139, -16776961
  %1141 = or i32 %1140, 429568
  store i32 %1141, ptr %1138, align 8
  %1142 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1143 unwind label %1162

1143:                                             ; preds = %1137
  %1144 = getelementptr inbounds %struct.jc_test_fixture, ptr %1142, i32 0, i32 4
  store ptr @.str.3, ptr %1144, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1145 unwind label %1162

1145:                                             ; preds = %1143
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #7
  store i32 0, ptr %57, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #7
  %1146 = load ptr, ptr %7, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1146, i32 0, i32 3
  %1148 = load ptr, ptr %1147, align 8, !tbaa !19
  %1149 = load ptr, ptr %7, align 8, !tbaa !5
  %1150 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %56, i32 0, i32 0
  %1151 = invoke noundef i32 %1148(ptr noundef %1149, i64 noundef 3735928559, ptr noundef %1150)
          to label %1152 unwind label %1166

1152:                                             ; preds = %1145
  store i32 %1151, ptr %58, align 4, !tbaa !18
  %1153 = 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) %57, ptr noundef nonnull align 4 dereferenceable(4) %58, ptr noundef @.str.46, ptr noundef @.str.304, ptr noundef null)
          to label %1154 unwind label %1166

1154:                                             ; preds = %1152
  %1155 = icmp eq i32 %1153, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  br i1 %1155, label %1156, label %1170

1156:                                             ; preds = %1154
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1157 unwind label %1162

1157:                                             ; preds = %1156
  store i32 1, ptr %14, align 4
  br label %1506

1158:                                             ; preds = %1133
  %1159 = landingpad { ptr, i32 }
          cleanup
  %1160 = extractvalue { ptr, i32 } %1159, 0
  store ptr %1160, ptr %10, align 8
  %1161 = extractvalue { ptr, i32 } %1159, 1
  store i32 %1161, ptr %11, align 4
  br label %1515

1162:                                             ; preds = %1501, %1494, %1487, %1480, %1473, %1464, %1461, %1453, %1438, %1432, %1430, %1421, %1410, %1404, %1402, %1393, %1381, %1375, %1373, %1364, %1352, %1346, %1344, %1335, %1323, %1317, %1315, %1306, %1294, %1288, %1286, %1277, %1266, %1260, %1258, %1249, %1232, %1226, %1224, %1215, %1204, %1198, %1196, %1191, %1186, %1184, %1178, %1176, %1172, %1156, %1143, %1137, %1135
  %1163 = landingpad { ptr, i32 }
          cleanup
  %1164 = extractvalue { ptr, i32 } %1163, 0
  store ptr %1164, ptr %10, align 8
  %1165 = extractvalue { ptr, i32 } %1163, 1
  store i32 %1165, ptr %11, align 4
  br label %1514

1166:                                             ; preds = %1152, %1145
  %1167 = landingpad { ptr, i32 }
          cleanup
  %1168 = extractvalue { ptr, i32 } %1167, 0
  store ptr %1168, ptr %10, align 8
  %1169 = extractvalue { ptr, i32 } %1167, 1
  store i32 %1169, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  br label %1514

1170:                                             ; preds = %1154
  br label %1171

1171:                                             ; preds = %1170
  br label %1172

1172:                                             ; preds = %1171
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %56)
          to label %1173 unwind label %1162

1173:                                             ; preds = %1172
  %1174 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %56, i32 0, i32 3
  %1175 = load ptr, ptr %1174, align 8, !tbaa !22
  store ptr %1175, ptr %15, align 8, !tbaa !5
  br label %1176

1176:                                             ; preds = %1173
  %1177 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1178 unwind label %1162

1178:                                             ; preds = %1176
  %1179 = getelementptr inbounds %struct.jc_test_fixture, ptr %1177, i32 0, i32 11
  %1180 = load i32, ptr %1179, align 8
  %1181 = and i32 %1180, -16776961
  %1182 = or i32 %1181, 430592
  store i32 %1182, ptr %1179, align 8
  %1183 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1184 unwind label %1162

1184:                                             ; preds = %1178
  %1185 = getelementptr inbounds %struct.jc_test_fixture, ptr %1183, i32 0, i32 4
  store ptr @.str.3, ptr %1185, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1186 unwind label %1162

1186:                                             ; preds = %1184
  %1187 = load ptr, ptr %15, align 8, !tbaa !5
  %1188 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %1187, ptr noundef @.str.276, ptr noundef @.str.277)
          to label %1189 unwind label %1162

1189:                                             ; preds = %1186
  %1190 = icmp eq i32 %1188, 0
  br i1 %1190, label %1191, label %1193

1191:                                             ; preds = %1189
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1192 unwind label %1162

1192:                                             ; preds = %1191
  store i32 1, ptr %14, align 4
  br label %1506

1193:                                             ; preds = %1189
  br label %1194

1194:                                             ; preds = %1193
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

1196:                                             ; preds = %1195
  %1197 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1198 unwind label %1162

1198:                                             ; preds = %1196
  %1199 = getelementptr inbounds %struct.jc_test_fixture, ptr %1197, i32 0, i32 11
  %1200 = load i32, ptr %1199, align 8
  %1201 = and i32 %1200, -16776961
  %1202 = or i32 %1201, 430848
  store i32 %1202, ptr %1199, align 8
  %1203 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1204 unwind label %1162

1204:                                             ; preds = %1198
  %1205 = getelementptr inbounds %struct.jc_test_fixture, ptr %1203, i32 0, i32 4
  store ptr @.str.3, ptr %1205, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1206 unwind label %1162

1206:                                             ; preds = %1204
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #7
  store i32 -559038737, ptr %59, align 4, !tbaa !18
  %1207 = load ptr, ptr %15, align 8, !tbaa !5
  %1208 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1207, i32 0, i32 1
  %1209 = load ptr, ptr %1208, align 8, !tbaa !12
  %1210 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1209, i32 0, i32 0
  %1211 = load ptr, ptr %1210, align 8, !tbaa !26
  %1212 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %59, ptr noundef nonnull align 8 dereferenceable(8) %1211, ptr noundef @.str.108, ptr noundef @.str.278)
          to label %1213 unwind label %1217

1213:                                             ; preds = %1206
  %1214 = icmp eq i32 %1212, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br i1 %1214, label %1215, label %1221

1215:                                             ; preds = %1213
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1216 unwind label %1162

1216:                                             ; preds = %1215
  store i32 1, ptr %14, align 4
  br label %1506

1217:                                             ; preds = %1206
  %1218 = landingpad { ptr, i32 }
          cleanup
  %1219 = extractvalue { ptr, i32 } %1218, 0
  store ptr %1219, ptr %10, align 8
  %1220 = extractvalue { ptr, i32 } %1218, 1
  store i32 %1220, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br label %1514

1221:                                             ; preds = %1213
  br label %1222

1222:                                             ; preds = %1221
  br label %1223

1223:                                             ; preds = %1222
  br label %1224

1224:                                             ; preds = %1223
  %1225 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1226 unwind label %1162

1226:                                             ; preds = %1224
  %1227 = getelementptr inbounds %struct.jc_test_fixture, ptr %1225, i32 0, i32 11
  %1228 = load i32, ptr %1227, align 8
  %1229 = and i32 %1228, -16776961
  %1230 = or i32 %1229, 431104
  store i32 %1230, ptr %1227, align 8
  %1231 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1232 unwind label %1162

1232:                                             ; preds = %1226
  %1233 = getelementptr inbounds %struct.jc_test_fixture, ptr %1231, i32 0, i32 4
  store ptr @.str.3, ptr %1233, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1234 unwind label %1162

1234:                                             ; preds = %1232
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  %1235 = load ptr, ptr %5, align 8, !tbaa !5
  %1236 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %1235, i32 0, i32 1
  %1237 = load ptr, ptr %1236, align 8, !tbaa !28
  %1238 = load ptr, ptr %5, align 8, !tbaa !5
  %1239 = invoke noundef i32 %1237(ptr noundef %1238)
          to label %1240 unwind label %1251

1240:                                             ; preds = %1234
  store i32 %1239, ptr %60, align 4, !tbaa !18
  %1241 = load ptr, ptr %15, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1241, i32 0, i32 1
  %1243 = load ptr, ptr %1242, align 8, !tbaa !12
  %1244 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1243, i32 0, i32 1
  %1245 = load ptr, ptr %1244, align 8, !tbaa !30
  %1246 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef nonnull align 4 dereferenceable(4) %1245, ptr noundef @.str.76, ptr noundef @.str.279)
          to label %1247 unwind label %1251

1247:                                             ; preds = %1240
  %1248 = icmp eq i32 %1246, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br i1 %1248, label %1249, label %1255

1249:                                             ; preds = %1247
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1250 unwind label %1162

1250:                                             ; preds = %1249
  store i32 1, ptr %14, align 4
  br label %1506

1251:                                             ; preds = %1240, %1234
  %1252 = landingpad { ptr, i32 }
          cleanup
  %1253 = extractvalue { ptr, i32 } %1252, 0
  store ptr %1253, ptr %10, align 8
  %1254 = extractvalue { ptr, i32 } %1252, 1
  store i32 %1254, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br label %1514

1255:                                             ; preds = %1247
  br label %1256

1256:                                             ; preds = %1255
  br label %1257

1257:                                             ; preds = %1256
  br label %1258

1258:                                             ; preds = %1257
  %1259 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1260 unwind label %1162

1260:                                             ; preds = %1258
  %1261 = getelementptr inbounds %struct.jc_test_fixture, ptr %1259, i32 0, i32 11
  %1262 = load i32, ptr %1261, align 8
  %1263 = and i32 %1262, -16776961
  %1264 = or i32 %1263, 431360
  store i32 %1264, ptr %1261, align 8
  %1265 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1266 unwind label %1162

1266:                                             ; preds = %1260
  %1267 = getelementptr inbounds %struct.jc_test_fixture, ptr %1265, i32 0, i32 4
  store ptr @.str.3, ptr %1267, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1268 unwind label %1162

1268:                                             ; preds = %1266
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  store i32 0, ptr %61, align 4, !tbaa !18
  %1269 = load ptr, ptr %15, align 8, !tbaa !5
  %1270 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1269, i32 0, i32 1
  %1271 = load ptr, ptr %1270, align 8, !tbaa !12
  %1272 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1271, i32 0, i32 3
  %1273 = load ptr, ptr %1272, align 8, !tbaa !31
  %1274 = 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) %61, ptr noundef nonnull align 4 dereferenceable(4) %1273, ptr noundef @.str.46, ptr noundef @.str.280, ptr noundef null)
          to label %1275 unwind label %1279

1275:                                             ; preds = %1268
  %1276 = icmp eq i32 %1274, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br i1 %1276, label %1277, label %1283

1277:                                             ; preds = %1275
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1278 unwind label %1162

1278:                                             ; preds = %1277
  store i32 1, ptr %14, align 4
  br label %1506

1279:                                             ; preds = %1268
  %1280 = landingpad { ptr, i32 }
          cleanup
  %1281 = extractvalue { ptr, i32 } %1280, 0
  store ptr %1281, ptr %10, align 8
  %1282 = extractvalue { ptr, i32 } %1280, 1
  store i32 %1282, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br label %1514

1283:                                             ; preds = %1275
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

1286:                                             ; preds = %1285
  %1287 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1288 unwind label %1162

1288:                                             ; preds = %1286
  %1289 = getelementptr inbounds %struct.jc_test_fixture, ptr %1287, i32 0, i32 11
  %1290 = load i32, ptr %1289, align 8
  %1291 = and i32 %1290, -16776961
  %1292 = or i32 %1291, 431616
  store i32 %1292, ptr %1289, align 8
  %1293 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1294 unwind label %1162

1294:                                             ; preds = %1288
  %1295 = getelementptr inbounds %struct.jc_test_fixture, ptr %1293, i32 0, i32 4
  store ptr @.str.3, ptr %1295, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1296 unwind label %1162

1296:                                             ; preds = %1294
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #7
  store i32 251666341, ptr %62, align 4, !tbaa !18
  %1297 = load ptr, ptr %15, align 8, !tbaa !5
  %1298 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1297, i32 0, i32 1
  %1299 = load ptr, ptr %1298, align 8, !tbaa !12
  %1300 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1299, i32 0, i32 4
  %1301 = load ptr, ptr %1300, align 8, !tbaa !32
  %1302 = getelementptr inbounds i64, ptr %1301, i64 0
  %1303 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %62, ptr noundef nonnull align 8 dereferenceable(8) %1302, ptr noundef @.str.281, ptr noundef @.str.282)
          to label %1304 unwind label %1308

1304:                                             ; preds = %1296
  %1305 = icmp eq i32 %1303, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  br i1 %1305, label %1306, label %1312

1306:                                             ; preds = %1304
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1307 unwind label %1162

1307:                                             ; preds = %1306
  store i32 1, ptr %14, align 4
  br label %1506

1308:                                             ; preds = %1296
  %1309 = landingpad { ptr, i32 }
          cleanup
  %1310 = extractvalue { ptr, i32 } %1309, 0
  store ptr %1310, ptr %10, align 8
  %1311 = extractvalue { ptr, i32 } %1309, 1
  store i32 %1311, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  br label %1514

1312:                                             ; preds = %1304
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314
  %1316 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1317 unwind label %1162

1317:                                             ; preds = %1315
  %1318 = getelementptr inbounds %struct.jc_test_fixture, ptr %1316, i32 0, i32 11
  %1319 = load i32, ptr %1318, align 8
  %1320 = and i32 %1319, -16776961
  %1321 = or i32 %1320, 431872
  store i32 %1321, ptr %1318, align 8
  %1322 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1323 unwind label %1162

1323:                                             ; preds = %1317
  %1324 = getelementptr inbounds %struct.jc_test_fixture, ptr %1322, i32 0, i32 4
  store ptr @.str.3, ptr %1324, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1325 unwind label %1162

1325:                                             ; preds = %1323
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #7
  store i32 268378021, ptr %63, align 4, !tbaa !18
  %1326 = load ptr, ptr %15, align 8, !tbaa !5
  %1327 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1326, i32 0, i32 1
  %1328 = load ptr, ptr %1327, align 8, !tbaa !12
  %1329 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1328, i32 0, i32 4
  %1330 = load ptr, ptr %1329, align 8, !tbaa !32
  %1331 = getelementptr inbounds i64, ptr %1330, i64 1
  %1332 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %63, ptr noundef nonnull align 8 dereferenceable(8) %1331, ptr noundef @.str.283, ptr noundef @.str.284)
          to label %1333 unwind label %1337

1333:                                             ; preds = %1325
  %1334 = icmp eq i32 %1332, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  br i1 %1334, label %1335, label %1341

1335:                                             ; preds = %1333
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1336 unwind label %1162

1336:                                             ; preds = %1335
  store i32 1, ptr %14, align 4
  br label %1506

1337:                                             ; preds = %1325
  %1338 = landingpad { ptr, i32 }
          cleanup
  %1339 = extractvalue { ptr, i32 } %1338, 0
  store ptr %1339, ptr %10, align 8
  %1340 = extractvalue { ptr, i32 } %1338, 1
  store i32 %1340, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #7
  br label %1514

1341:                                             ; preds = %1333
  br label %1342

1342:                                             ; preds = %1341
  br label %1343

1343:                                             ; preds = %1342
  br label %1344

1344:                                             ; preds = %1343
  %1345 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1346 unwind label %1162

1346:                                             ; preds = %1344
  %1347 = getelementptr inbounds %struct.jc_test_fixture, ptr %1345, i32 0, i32 11
  %1348 = load i32, ptr %1347, align 8
  %1349 = and i32 %1348, -16776961
  %1350 = or i32 %1349, 432128
  store i32 %1350, ptr %1347, align 8
  %1351 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1352 unwind label %1162

1352:                                             ; preds = %1346
  %1353 = getelementptr inbounds %struct.jc_test_fixture, ptr %1351, i32 0, i32 4
  store ptr @.str.3, ptr %1353, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1354 unwind label %1162

1354:                                             ; preds = %1352
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  store i32 4711, ptr %64, align 4, !tbaa !18
  %1355 = load ptr, ptr %15, align 8, !tbaa !5
  %1356 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1355, i32 0, i32 1
  %1357 = load ptr, ptr %1356, align 8, !tbaa !12
  %1358 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1357, i32 0, i32 5
  %1359 = load ptr, ptr %1358, align 8, !tbaa !33
  %1360 = getelementptr inbounds i32, ptr %1359, i64 0
  %1361 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %64, ptr noundef nonnull align 4 dereferenceable(4) %1360, ptr noundef @.str.285, ptr noundef @.str.286)
          to label %1362 unwind label %1366

1362:                                             ; preds = %1354
  %1363 = icmp eq i32 %1361, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  br i1 %1363, label %1364, label %1370

1364:                                             ; preds = %1362
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1365 unwind label %1162

1365:                                             ; preds = %1364
  store i32 1, ptr %14, align 4
  br label %1506

1366:                                             ; preds = %1354
  %1367 = landingpad { ptr, i32 }
          cleanup
  %1368 = extractvalue { ptr, i32 } %1367, 0
  store ptr %1368, ptr %10, align 8
  %1369 = extractvalue { ptr, i32 } %1367, 1
  store i32 %1369, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  br label %1514

1370:                                             ; preds = %1362
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

1372:                                             ; preds = %1371
  br label %1373

1373:                                             ; preds = %1372
  %1374 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1375 unwind label %1162

1375:                                             ; preds = %1373
  %1376 = getelementptr inbounds %struct.jc_test_fixture, ptr %1374, i32 0, i32 11
  %1377 = load i32, ptr %1376, align 8
  %1378 = and i32 %1377, -16776961
  %1379 = or i32 %1378, 432384
  store i32 %1379, ptr %1376, align 8
  %1380 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1381 unwind label %1162

1381:                                             ; preds = %1375
  %1382 = getelementptr inbounds %struct.jc_test_fixture, ptr %1380, i32 0, i32 4
  store ptr @.str.3, ptr %1382, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1383 unwind label %1162

1383:                                             ; preds = %1381
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #7
  store i32 1147, ptr %65, align 4, !tbaa !18
  %1384 = load ptr, ptr %15, align 8, !tbaa !5
  %1385 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1384, i32 0, i32 1
  %1386 = load ptr, ptr %1385, align 8, !tbaa !12
  %1387 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1386, i32 0, i32 5
  %1388 = load ptr, ptr %1387, align 8, !tbaa !33
  %1389 = getelementptr inbounds i32, ptr %1388, i64 1
  %1390 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %65, ptr noundef nonnull align 4 dereferenceable(4) %1389, ptr noundef @.str.287, ptr noundef @.str.288)
          to label %1391 unwind label %1395

1391:                                             ; preds = %1383
  %1392 = icmp eq i32 %1390, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  br i1 %1392, label %1393, label %1399

1393:                                             ; preds = %1391
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1394 unwind label %1162

1394:                                             ; preds = %1393
  store i32 1, ptr %14, align 4
  br label %1506

1395:                                             ; preds = %1383
  %1396 = landingpad { ptr, i32 }
          cleanup
  %1397 = extractvalue { ptr, i32 } %1396, 0
  store ptr %1397, ptr %10, align 8
  %1398 = extractvalue { ptr, i32 } %1396, 1
  store i32 %1398, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  br label %1514

1399:                                             ; preds = %1391
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

1401:                                             ; preds = %1400
  br label %1402

1402:                                             ; preds = %1401
  %1403 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1404 unwind label %1162

1404:                                             ; preds = %1402
  %1405 = getelementptr inbounds %struct.jc_test_fixture, ptr %1403, i32 0, i32 11
  %1406 = load i32, ptr %1405, align 8
  %1407 = and i32 %1406, -16776961
  %1408 = or i32 %1407, 432640
  store i32 %1408, ptr %1405, align 8
  %1409 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1410 unwind label %1162

1410:                                             ; preds = %1404
  %1411 = getelementptr inbounds %struct.jc_test_fixture, ptr %1409, i32 0, i32 4
  store ptr @.str.3, ptr %1411, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1412 unwind label %1162

1412:                                             ; preds = %1410
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #7
  store i32 2, ptr %66, align 4, !tbaa !18
  %1413 = load ptr, ptr %15, align 8, !tbaa !5
  %1414 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1413, i32 0, i32 1
  %1415 = load ptr, ptr %1414, align 8, !tbaa !12
  %1416 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1415, i32 0, i32 2
  %1417 = load ptr, ptr %1416, align 8, !tbaa !34
  %1418 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %66, ptr noundef nonnull align 4 dereferenceable(4) %1417, ptr noundef @.str.138, ptr noundef @.str.289)
          to label %1419 unwind label %1423

1419:                                             ; preds = %1412
  %1420 = icmp eq i32 %1418, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #7
  br i1 %1420, label %1421, label %1427

1421:                                             ; preds = %1419
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1422 unwind label %1162

1422:                                             ; preds = %1421
  store i32 1, ptr %14, align 4
  br label %1506

1423:                                             ; preds = %1412
  %1424 = landingpad { ptr, i32 }
          cleanup
  %1425 = extractvalue { ptr, i32 } %1424, 0
  store ptr %1425, ptr %10, align 8
  %1426 = extractvalue { ptr, i32 } %1424, 1
  store i32 %1426, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #7
  br label %1514

1427:                                             ; preds = %1419
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  br label %1430

1430:                                             ; preds = %1429
  %1431 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1432 unwind label %1162

1432:                                             ; preds = %1430
  %1433 = getelementptr inbounds %struct.jc_test_fixture, ptr %1431, i32 0, i32 11
  %1434 = load i32, ptr %1433, align 8
  %1435 = and i32 %1434, -16776961
  %1436 = or i32 %1435, 432896
  store i32 %1436, ptr %1433, align 8
  %1437 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1438 unwind label %1162

1438:                                             ; preds = %1432
  %1439 = getelementptr inbounds %struct.jc_test_fixture, ptr %1437, i32 0, i32 4
  store ptr @.str.3, ptr %1439, align 8, !tbaa !14
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1440 unwind label %1162

1440:                                             ; preds = %1438
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #7
  store i32 0, ptr %67, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #7
  %1441 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  %1442 = load ptr, ptr %1441, align 8, !tbaa !13
  %1443 = load ptr, ptr %15, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1443, i32 0, i32 2
  %1445 = load ptr, ptr %1444, align 8, !tbaa !13
  %1446 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 3
  %1447 = load i32, ptr %1446, align 8, !tbaa !35
  %1448 = zext i32 %1447 to i64
  %1449 = call i32 @memcmp(ptr noundef %1442, ptr noundef %1445, i64 noundef %1448) #8
  store i32 %1449, ptr %68, align 4, !tbaa !18
  %1450 = 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) %67, ptr noundef nonnull align 4 dereferenceable(4) %68, ptr noundef @.str.46, ptr noundef @.str.290, ptr noundef null)
          to label %1451 unwind label %1455

1451:                                             ; preds = %1440
  %1452 = icmp eq i32 %1450, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #7
  br i1 %1452, label %1453, label %1459

1453:                                             ; preds = %1451
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1454 unwind label %1162

1454:                                             ; preds = %1453
  store i32 1, ptr %14, align 4
  br label %1506

1455:                                             ; preds = %1440
  %1456 = landingpad { ptr, i32 }
          cleanup
  %1457 = extractvalue { ptr, i32 } %1456, 0
  store ptr %1457, ptr %10, align 8
  %1458 = extractvalue { ptr, i32 } %1456, 1
  store i32 %1458, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #7
  br label %1514

1459:                                             ; preds = %1451
  br label %1460

1460:                                             ; preds = %1459
  br label %1461

1461:                                             ; preds = %1460
  %1462 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %8, i32 0, i32 2
  %1463 = load ptr, ptr %1462, align 8, !tbaa !13
  invoke void @Longtail_Free(ptr noundef %1463)
          to label %1464 unwind label %1162

1464:                                             ; preds = %1461
  %1465 = load ptr, ptr %15, align 8, !tbaa !5
  %1466 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1465, i32 0, i32 0
  %1467 = load ptr, ptr %1466, align 8, !tbaa !9
  %1468 = load ptr, ptr %15, align 8, !tbaa !5
  %1469 = invoke noundef i32 %1467(ptr noundef %1468)
          to label %1470 unwind label %1162

1470:                                             ; preds = %1464
  %1471 = load ptr, ptr %7, align 8, !tbaa !5
  %1472 = icmp ne ptr %1471, null
  br i1 %1472, label %1473, label %1477

1473:                                             ; preds = %1470
  %1474 = load ptr, ptr %7, align 8, !tbaa !5
  %1475 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1474, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1475)
          to label %1476 unwind label %1162

1476:                                             ; preds = %1473
  br label %1477

1477:                                             ; preds = %1476, %1470
  %1478 = load ptr, ptr %6, align 8, !tbaa !5
  %1479 = icmp ne ptr %1478, null
  br i1 %1479, label %1480, label %1484

1480:                                             ; preds = %1477
  %1481 = load ptr, ptr %6, align 8, !tbaa !5
  %1482 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %1481, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1482)
          to label %1483 unwind label %1162

1483:                                             ; preds = %1480
  br label %1484

1484:                                             ; preds = %1483, %1477
  %1485 = load ptr, ptr %5, align 8, !tbaa !5
  %1486 = icmp ne ptr %1485, null
  br i1 %1486, label %1487, label %1491

1487:                                             ; preds = %1484
  %1488 = load ptr, ptr %5, align 8, !tbaa !5
  %1489 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %1488, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1489)
          to label %1490 unwind label %1162

1490:                                             ; preds = %1487
  br label %1491

1491:                                             ; preds = %1490, %1484
  %1492 = load ptr, ptr %4, align 8, !tbaa !5
  %1493 = icmp ne ptr %1492, null
  br i1 %1493, label %1494, label %1498

1494:                                             ; preds = %1491
  %1495 = load ptr, ptr %4, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %1495, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1496)
          to label %1497 unwind label %1162

1497:                                             ; preds = %1494
  br label %1498

1498:                                             ; preds = %1497, %1491
  %1499 = load ptr, ptr %3, align 8, !tbaa !5
  %1500 = icmp ne ptr %1499, null
  br i1 %1500, label %1501, label %1505

1501:                                             ; preds = %1498
  %1502 = load ptr, ptr %3, align 8, !tbaa !5
  %1503 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1502, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1503)
          to label %1504 unwind label %1162

1504:                                             ; preds = %1501
  br label %1505

1505:                                             ; preds = %1504, %1498
  store i32 0, ptr %14, align 4
  br label %1506

1506:                                             ; preds = %1505, %1454, %1422, %1394, %1365, %1336, %1307, %1278, %1250, %1216, %1192, %1157
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %56) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %56) #7
  br label %1507

1507:                                             ; preds = %1506, %1103, %1071, %1043, %1014, %985, %956, %927, %899, %865, %841, %806
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %43) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %43) #7
  br label %1508

1508:                                             ; preds = %1507, %764, %739, %714, %689, %664, %635
  call void @llvm.lifetime.end.p0(i64 176, ptr %36) #7
  br label %1509

1509:                                             ; preds = %1508, %598, %566, %538, %509, %480, %451, %422, %394, %360, %336, %312, %277
  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 %1510

1510:                                             ; preds = %1509, %246, %202
  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 %1511

1511:                                             ; preds = %1510, %102
  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
  %1512 = load i32, ptr %14, align 4
  switch i32 %1512, label %1531 [
    i32 0, label %1513
    i32 1, label %1513
  ]

1513:                                             ; preds = %1511, %1511
  ret void

1514:                                             ; preds = %1455, %1423, %1395, %1366, %1337, %1308, %1279, %1251, %1217, %1166, %1162
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %56) #7
  br label %1515

1515:                                             ; preds = %1514, %1158
  call void @llvm.lifetime.end.p0(i64 40, ptr %56) #7
  br label %1516

1516:                                             ; preds = %1515, %1104, %1072, %1044, %1015, %986, %957, %928, %900, %866, %815, %811
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %43) #7
  br label %1517

1517:                                             ; preds = %1516, %807
  call void @llvm.lifetime.end.p0(i64 40, ptr %43) #7
  br label %1518

1518:                                             ; preds = %1517, %765, %740, %715, %690, %665, %640, %636
  call void @llvm.lifetime.end.p0(i64 176, ptr %36) #7
  br label %1519

1519:                                             ; preds = %1518, %599, %567, %539, %510, %481, %452, %423, %395, %361, %313, %286, %282
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #7
  br label %1520

1520:                                             ; preds = %1519, %278
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #7
  br label %1521

1521:                                             ; preds = %1520, %247, %219, %215
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %18) #7
  br label %1522

1522:                                             ; preds = %1521, %211
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #7
  br label %1523

1523:                                             ; preds = %1522, %207
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %1524

1524:                                             ; preds = %1523, %203
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %1525

1525:                                             ; preds = %1524, %107, %103
  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 %1526

1526:                                             ; preds = %1525
  %1527 = load ptr, ptr %10, align 8
  %1528 = load i32, ptr %11, align 4
  %1529 = insertvalue { ptr, i32 } poison, ptr %1527, 0
  %1530 = insertvalue { ptr, i32 } %1529, i32 %1528, 1
  resume { ptr, i32 } %1530

1531:                                             ; preds = %1511
  unreachable
}

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"_ZTS20Longtail_StoredBlock", !6, i64 0, !6, i64 8, !6, i64 16, !11, i64 24}
!11 = !{!"int", !7, i64 0}
!12 = !{!10, !6, i64 8}
!13 = !{!10, !6, i64 16}
!14 = !{!15, !6, i64 32}
!15 = !{!"_ZTS15jc_test_fixture", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !16, i64 64, !11, i64 88, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 92, !11, i64 96, !11, i64 97, !11, i64 99, !11, i64 100}
!16 = !{!"_ZTS13jc_test_stats", !11, i64 0, !11, i64 4, !11, i64 6, !11, i64 8, !11, i64 12, !17, i64 16}
!17 = !{!"long", !7, i64 0}
!18 = !{!11, !11, i64 0}
!19 = !{!20, !6, i64 24}
!20 = !{!"_ZTS22Longtail_BlockStoreAPI", !21, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56}
!21 = !{!"_ZTS12Longtail_API", !6, i64 0}
!22 = !{!23, !6, i64 32}
!23 = !{!"_ZTS25TestAsyncGetBlockComplete", !24, i64 0, !6, i64 16, !11, i64 24, !6, i64 32}
!24 = !{!"_ZTS31Longtail_AsyncGetStoredBlockAPI", !21, i64 0, !6, i64 8}
!25 = !{!17, !17, i64 0}
!26 = !{!27, !6, i64 0}
!27 = !{!"_ZTS19Longtail_BlockIndex", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!28 = !{!29, !6, i64 8}
!29 = !{!"_ZTS16Longtail_HashAPI", !21, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!30 = !{!27, !6, i64 8}
!31 = !{!27, !6, i64 24}
!32 = !{!27, !6, i64 32}
!33 = !{!27, !6, i64 40}
!34 = !{!27, !6, i64 16}
!35 = !{!10, !11, i64 24}
!36 = !{!20, !6, i64 8}
!37 = !{!20, !6, i64 48}
!38 = !{!39, !6, i64 128}
!39 = !{!"_ZTS19Longtail_StorageAPI", !21, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208}


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

%struct.Longtail_StoredBlock = type { ptr, ptr, ptr, i32 }
%struct.TestAsyncGetBlockComplete = type { %struct.Longtail_AsyncGetStoredBlockAPI, ptr, i32, ptr }
%struct.Longtail_AsyncGetStoredBlockAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_API = type { ptr }
%struct.TestAsyncPutBlockComplete = type <{ %struct.Longtail_AsyncPutStoredBlockAPI, ptr, i32, [4 x i8] }>
%struct.Longtail_AsyncPutStoredBlockAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_BlockStore_Stats = type { [22 x i64] }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.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.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
@.str.302 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.303 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.304 = external hidden unnamed_addr constant [76 x i8], align 1

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

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

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

declare void @_Z28jc_test_increment_assertionsv() local_unnamed_addr #1

declare void @_Z21jc_test_set_test_faili(i32 noundef) local_unnamed_addr #1

declare void @Longtail_Free(ptr noundef) local_unnamed_addr #1

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

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

declare void @Longtail_DisposeAPI(ptr noundef) local_unnamed_addr #1

declare ptr @Longtail_CreateBlake3HashAPI() local_unnamed_addr #1

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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

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

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

declare ptr @Longtail_CreateInMemStorageAPI() local_unnamed_addr #1

declare ptr @Longtail_CreateFullCompressionRegistry() local_unnamed_addr #1

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

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

declare i32 @__gxx_personality_v0(...)

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

declare i64 @Longtail_GetBlockIndexSize(i32 noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN51Longtail_Longtail_FSBlockStoreReadContent__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.Longtail_BlockStore_Stats, align 8
  %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 %struct.TestAsyncGetBlockComplete, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = tail call ptr @Longtail_CreateInMemStorageAPI()
  %58 = tail call ptr @Longtail_CreateFullCompressionRegistry()
  %59 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %60 = tail call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  %61 = tail call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %60, ptr noundef %57, ptr noundef nonnull @.str.270, ptr noundef null, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #7
  %62 = getelementptr inbounds i8, ptr %2, i64 8
  %63 = 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)
  %64 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %65 unwind label %82

65:                                               ; preds = %1
  %66 = getelementptr inbounds i8, ptr %64, i64 96
  %67 = load i32, ptr %66, align 8
  %68 = and i32 %67, -16776961
  %69 = or disjoint i32 %68, 409344
  store i32 %69, ptr %66, align 8
  %70 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %71 unwind label %82

71:                                               ; preds = %65
  %72 = getelementptr inbounds i8, ptr %70, i64 32
  store ptr @.str.3, ptr %72, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %73 unwind label %82

73:                                               ; preds = %71
  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
  %74 = getelementptr inbounds i8, ptr %61, i64 24
  %75 = load ptr, ptr %74, align 8, !tbaa !14
  %76 = invoke noundef i32 %75(ptr noundef nonnull %61, i64 noundef 4711, ptr noundef nonnull %3)
          to label %77 unwind label %84

77:                                               ; preds = %73
  store i32 %76, ptr %5, align 4, !tbaa !13
  %78 = 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 %79 unwind label %84

79:                                               ; preds = %77
  %80 = icmp eq i32 %78, 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 %80, label %81, label %86

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

82:                                               ; preds = %81, %71, %65, %1
  %83 = landingpad { ptr, i32 }
          cleanup
  br label %992

84:                                               ; preds = %77, %73
  %85 = 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 %992

86:                                               ; preds = %79
  %87 = invoke i64 @Longtail_GetBlockIndexSize(i32 noundef 2)
          to label %88 unwind label %133

88:                                               ; preds = %86
  %89 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %87)
          to label %90 unwind label %135

90:                                               ; preds = %88
  %91 = invoke ptr @Longtail_InitBlockIndex(ptr noundef %89, i32 noundef 2)
          to label %92 unwind label %135

92:                                               ; preds = %90
  store ptr %91, ptr %62, align 8, !tbaa !17
  %93 = load ptr, ptr %91, align 8, !tbaa !19
  store i64 3735928559, ptr %93, align 8, !tbaa !21
  %94 = getelementptr inbounds i8, ptr %59, i64 8
  %95 = load ptr, ptr %94, align 8, !tbaa !22
  %96 = invoke noundef i32 %95(ptr noundef nonnull %59)
          to label %97 unwind label %135

97:                                               ; preds = %92
  %98 = load ptr, ptr %62, align 8, !tbaa !17
  %99 = getelementptr inbounds i8, ptr %98, i64 8
  %100 = load ptr, ptr %99, align 8, !tbaa !24
  store i32 %96, ptr %100, align 4, !tbaa !13
  %101 = getelementptr inbounds i8, ptr %98, i64 24
  %102 = load ptr, ptr %101, align 8, !tbaa !25
  store i32 0, ptr %102, align 4, !tbaa !13
  %103 = getelementptr inbounds i8, ptr %98, i64 32
  %104 = load ptr, ptr %103, align 8, !tbaa !26
  store i64 251666341, ptr %104, align 8, !tbaa !21
  %105 = getelementptr inbounds i8, ptr %104, i64 8
  store i64 268378021, ptr %105, align 8, !tbaa !21
  %106 = getelementptr inbounds i8, ptr %98, i64 40
  %107 = load ptr, ptr %106, align 8, !tbaa !27
  store i32 4711, ptr %107, align 4, !tbaa !13
  %108 = getelementptr inbounds i8, ptr %107, i64 4
  store i32 1147, ptr %108, align 4, !tbaa !13
  %109 = getelementptr inbounds i8, ptr %98, i64 16
  %110 = load ptr, ptr %109, align 8, !tbaa !28
  store i32 2, ptr %110, align 4, !tbaa !13
  %111 = getelementptr inbounds i8, ptr %2, i64 24
  store i32 5858, ptr %111, align 8, !tbaa !29
  %112 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef 5858)
          to label %113 unwind label %135

113:                                              ; preds = %97
  store ptr %112, ptr %63, align 8, !tbaa !30
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(4711) %112, i8 77, i64 4711, i1 false)
  %114 = getelementptr inbounds i8, ptr %112, i64 4711
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1147) %114, 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 %115 unwind label %137

115:                                              ; preds = %113
  %116 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %117 unwind label %139

117:                                              ; preds = %115
  %118 = getelementptr inbounds i8, ptr %116, i64 96
  %119 = load i32, ptr %118, align 8
  %120 = and i32 %119, -16776961
  %121 = or disjoint i32 %120, 414720
  store i32 %121, ptr %118, align 8
  %122 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %123 unwind label %139

123:                                              ; preds = %117
  %124 = getelementptr inbounds i8, ptr %122, i64 32
  store ptr @.str.3, ptr %124, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %125 unwind label %139

125:                                              ; preds = %123
  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
  %126 = getelementptr inbounds i8, ptr %61, i64 8
  %127 = load ptr, ptr %126, align 8, !tbaa !31
  %128 = invoke noundef i32 %127(ptr noundef nonnull %61, ptr noundef nonnull %2, ptr noundef nonnull %6)
          to label %129 unwind label %141

129:                                              ; preds = %125
  store i32 %128, ptr %8, align 4, !tbaa !13
  %130 = 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 %131 unwind label %141

131:                                              ; preds = %129
  %132 = icmp eq i32 %130, 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 %132, label %.invoke, label %143

133:                                              ; preds = %86
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %992

135:                                              ; preds = %97, %92, %90, %88
  %136 = landingpad { ptr, i32 }
          cleanup
  br label %992

137:                                              ; preds = %113
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %991

139:                                              ; preds = %.invoke, %154, %148, %146, %144, %143, %123, %117, %115
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %990

141:                                              ; preds = %129, %125
  %142 = 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 %990

143:                                              ; preds = %131
  invoke void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %6)
          to label %144 unwind label %139

144:                                              ; preds = %143
  %145 = load ptr, ptr %62, align 8, !tbaa !17
  invoke void @Longtail_Free(ptr noundef %145)
          to label %146 unwind label %139

146:                                              ; preds = %144
  %147 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %148 unwind label %139

148:                                              ; preds = %146
  %149 = getelementptr inbounds i8, ptr %147, i64 96
  %150 = load i32, ptr %149, align 8
  %151 = and i32 %150, -16776961
  %152 = or disjoint i32 %151, 415488
  store i32 %152, ptr %149, align 8
  %153 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %154 unwind label %139

154:                                              ; preds = %148
  %155 = getelementptr inbounds i8, ptr %153, i64 32
  store ptr @.str.3, ptr %155, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %156 unwind label %139

156:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #7
  store i32 0, ptr %9, align 4, !tbaa !13
  %157 = getelementptr inbounds i8, ptr %6, i64 24
  %158 = 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) %157, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.273, ptr noundef null)
          to label %159 unwind label %161

159:                                              ; preds = %156
  %160 = icmp eq i32 %158, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  br i1 %160, label %.invoke, label %163

.invoke:                                          ; preds = %131, %159
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %981 unwind label %139

161:                                              ; preds = %156
  %162 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #7
  br label %990

163:                                              ; preds = %159
  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 %164 unwind label %181

164:                                              ; preds = %163
  %165 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %166 unwind label %183

166:                                              ; preds = %164
  %167 = getelementptr inbounds i8, ptr %165, i64 96
  %168 = load i32, ptr %167, align 8
  %169 = and i32 %168, -16776961
  %170 = or disjoint i32 %169, 416256
  store i32 %170, ptr %167, align 8
  %171 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %172 unwind label %183

172:                                              ; preds = %166
  %173 = getelementptr inbounds i8, ptr %171, i64 32
  store ptr @.str.3, ptr %173, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %174 unwind label %183

174:                                              ; preds = %172
  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
  %175 = load ptr, ptr %74, align 8, !tbaa !14
  %176 = invoke noundef i32 %175(ptr noundef nonnull %61, i64 noundef 3735928559, ptr noundef nonnull %10)
          to label %177 unwind label %185

177:                                              ; preds = %174
  store i32 %176, ptr %12, align 4, !tbaa !13
  %178 = 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 %179 unwind label %185

179:                                              ; preds = %177
  %180 = icmp eq i32 %178, 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 %180, label %.invoke125, label %187

181:                                              ; preds = %163
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %989

183:                                              ; preds = %.invoke125, %400, %386, %380, %378, %367, %361, %359, %347, %341, %339, %328, %322, %320, %308, %302, %300, %289, %283, %281, %270, %264, %262, %248, %242, %240, %229, %223, %221, %217, %215, %209, %207, %198, %192, %188, %187, %172, %166, %164
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %988

185:                                              ; preds = %177, %174
  %186 = 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 %988

187:                                              ; preds = %179
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %10)
          to label %188 unwind label %183

188:                                              ; preds = %187
  %189 = getelementptr inbounds i8, ptr %10, i64 32
  %190 = load ptr, ptr %189, align 8, !tbaa !32
  %191 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %192 unwind label %183

192:                                              ; preds = %188
  %193 = getelementptr inbounds i8, ptr %191, i64 96
  %194 = load i32, ptr %193, align 8
  %195 = and i32 %194, -16776961
  %196 = or disjoint i32 %195, 417024
  store i32 %196, ptr %193, align 8
  %197 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %198 unwind label %183

198:                                              ; preds = %192
  %199 = getelementptr inbounds i8, ptr %197, i64 32
  store ptr @.str.3, ptr %199, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %200 unwind label %183

200:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  store i32 0, ptr %13, align 4, !tbaa !13
  %201 = getelementptr inbounds i8, ptr %10, i64 24
  %202 = 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) %201, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.275, ptr noundef null)
          to label %203 unwind label %205

203:                                              ; preds = %200
  %204 = icmp eq i32 %202, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  br i1 %204, label %.invoke125, label %207

205:                                              ; preds = %200
  %206 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  br label %988

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

209:                                              ; preds = %207
  %210 = getelementptr inbounds i8, ptr %208, i64 96
  %211 = load i32, ptr %210, align 8
  %212 = and i32 %211, -16776961
  %213 = or disjoint i32 %212, 417536
  store i32 %213, ptr %210, align 8
  %214 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %215 unwind label %183

215:                                              ; preds = %209
  %216 = getelementptr inbounds i8, ptr %214, i64 32
  store ptr @.str.3, ptr %216, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %217 unwind label %183

217:                                              ; preds = %215
  %218 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %190, ptr noundef nonnull @.str.276, ptr noundef nonnull @.str.277)
          to label %219 unwind label %183

219:                                              ; preds = %217
  %220 = icmp eq i32 %218, 0
  br i1 %220, label %.invoke125, label %221

221:                                              ; preds = %219
  %222 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %223 unwind label %183

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

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

231:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #7
  store i32 -559038737, ptr %14, align 4, !tbaa !13
  %232 = getelementptr inbounds i8, ptr %190, i64 8
  %233 = load ptr, ptr %232, align 8, !tbaa !17
  %234 = load ptr, ptr %233, align 8, !tbaa !19
  %235 = 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) %234, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.278)
          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 %14) #7
  br i1 %237, label %.invoke125, label %240

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

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

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, 418048
  store i32 %246, ptr %243, align 8
  %247 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %248 unwind label %183

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

250:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #7
  %251 = load ptr, ptr %94, align 8, !tbaa !22
  %252 = invoke noundef i32 %251(ptr noundef nonnull %59)
          to label %253 unwind label %260

253:                                              ; preds = %250
  store i32 %252, ptr %15, align 4, !tbaa !13
  %254 = load ptr, ptr %232, align 8, !tbaa !17
  %255 = getelementptr inbounds i8, ptr %254, i64 8
  %256 = load ptr, ptr %255, align 8, !tbaa !24
  %257 = 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) %256, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.279)
          to label %258 unwind label %260

258:                                              ; preds = %253
  %259 = icmp eq i32 %257, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br i1 %259, label %.invoke125, label %262

260:                                              ; preds = %253, %250
  %261 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #7
  br label %988

262:                                              ; preds = %258
  %263 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %264 unwind label %183

264:                                              ; preds = %262
  %265 = getelementptr inbounds i8, ptr %263, i64 96
  %266 = load i32, ptr %265, align 8
  %267 = and i32 %266, -16776961
  %268 = or disjoint i32 %267, 418304
  store i32 %268, ptr %265, align 8
  %269 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %270 unwind label %183

270:                                              ; preds = %264
  %271 = getelementptr inbounds i8, ptr %269, i64 32
  store ptr @.str.3, ptr %271, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %272 unwind label %183

272:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #7
  store i32 0, ptr %16, align 4, !tbaa !13
  %273 = load ptr, ptr %232, align 8, !tbaa !17
  %274 = getelementptr inbounds i8, ptr %273, i64 24
  %275 = load ptr, ptr %274, align 8, !tbaa !25
  %276 = 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) %275, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.280, ptr noundef null)
          to label %277 unwind label %279

277:                                              ; preds = %272
  %278 = icmp eq i32 %276, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  br i1 %278, label %.invoke125, label %281

279:                                              ; preds = %272
  %280 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #7
  br label %988

281:                                              ; preds = %277
  %282 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %283 unwind label %183

283:                                              ; preds = %281
  %284 = getelementptr inbounds i8, ptr %282, i64 96
  %285 = load i32, ptr %284, align 8
  %286 = and i32 %285, -16776961
  %287 = or disjoint i32 %286, 418560
  store i32 %287, ptr %284, align 8
  %288 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %289 unwind label %183

289:                                              ; preds = %283
  %290 = getelementptr inbounds i8, ptr %288, i64 32
  store ptr @.str.3, ptr %290, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %291 unwind label %183

291:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #7
  store i32 251666341, ptr %17, align 4, !tbaa !13
  %292 = load ptr, ptr %232, align 8, !tbaa !17
  %293 = getelementptr inbounds i8, ptr %292, i64 32
  %294 = load ptr, ptr %293, align 8, !tbaa !26
  %295 = 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) %294, ptr noundef nonnull @.str.281, ptr noundef nonnull @.str.282)
          to label %296 unwind label %298

296:                                              ; preds = %291
  %297 = icmp eq i32 %295, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  br i1 %297, label %.invoke125, label %300

298:                                              ; preds = %291
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #7
  br label %988

300:                                              ; preds = %296
  %301 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %302 unwind label %183

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

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

310:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #7
  store i32 268378021, ptr %18, align 4, !tbaa !13
  %311 = load ptr, ptr %232, align 8, !tbaa !17
  %312 = getelementptr inbounds i8, ptr %311, i64 32
  %313 = load ptr, ptr %312, align 8, !tbaa !26
  %314 = getelementptr inbounds i8, ptr %313, i64 8
  %315 = 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) %314, ptr noundef nonnull @.str.283, ptr noundef nonnull @.str.284)
          to label %316 unwind label %318

316:                                              ; preds = %310
  %317 = icmp eq i32 %315, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br i1 %317, label %.invoke125, label %320

318:                                              ; preds = %310
  %319 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  br label %988

320:                                              ; preds = %316
  %321 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %322 unwind label %183

322:                                              ; preds = %320
  %323 = getelementptr inbounds i8, ptr %321, i64 96
  %324 = load i32, ptr %323, align 8
  %325 = and i32 %324, -16776961
  %326 = or disjoint i32 %325, 419072
  store i32 %326, ptr %323, align 8
  %327 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %328 unwind label %183

328:                                              ; preds = %322
  %329 = getelementptr inbounds i8, ptr %327, i64 32
  store ptr @.str.3, ptr %329, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %330 unwind label %183

330:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #7
  store i32 4711, ptr %19, align 4, !tbaa !13
  %331 = load ptr, ptr %232, align 8, !tbaa !17
  %332 = getelementptr inbounds i8, ptr %331, i64 40
  %333 = load ptr, ptr %332, align 8, !tbaa !27
  %334 = 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) %333, ptr noundef nonnull @.str.285, ptr noundef nonnull @.str.286)
          to label %335 unwind label %337

335:                                              ; preds = %330
  %336 = icmp eq i32 %334, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br i1 %336, label %.invoke125, label %339

337:                                              ; preds = %330
  %338 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #7
  br label %988

339:                                              ; preds = %335
  %340 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %341 unwind label %183

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

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

349:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #7
  store i32 1147, ptr %20, align 4, !tbaa !13
  %350 = load ptr, ptr %232, align 8, !tbaa !17
  %351 = getelementptr inbounds i8, ptr %350, i64 40
  %352 = load ptr, ptr %351, align 8, !tbaa !27
  %353 = getelementptr inbounds i8, ptr %352, i64 4
  %354 = 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) %353, ptr noundef nonnull @.str.287, ptr noundef nonnull @.str.288)
          to label %355 unwind label %357

355:                                              ; preds = %349
  %356 = icmp eq i32 %354, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  br i1 %356, label %.invoke125, label %359

357:                                              ; preds = %349
  %358 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #7
  br label %988

359:                                              ; preds = %355
  %360 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %361 unwind label %183

361:                                              ; preds = %359
  %362 = getelementptr inbounds i8, ptr %360, i64 96
  %363 = load i32, ptr %362, align 8
  %364 = and i32 %363, -16776961
  %365 = or disjoint i32 %364, 419584
  store i32 %365, ptr %362, align 8
  %366 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %367 unwind label %183

367:                                              ; preds = %361
  %368 = getelementptr inbounds i8, ptr %366, i64 32
  store ptr @.str.3, ptr %368, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %369 unwind label %183

369:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #7
  store i32 2, ptr %21, align 4, !tbaa !13
  %370 = load ptr, ptr %232, align 8, !tbaa !17
  %371 = getelementptr inbounds i8, ptr %370, i64 16
  %372 = load ptr, ptr %371, align 8, !tbaa !28
  %373 = 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) %372, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.289)
          to label %374 unwind label %376

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

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

378:                                              ; preds = %374
  %379 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %380 unwind label %183

380:                                              ; preds = %378
  %381 = getelementptr inbounds i8, ptr %379, i64 96
  %382 = load i32, ptr %381, align 8
  %383 = and i32 %382, -16776961
  %384 = or disjoint i32 %383, 419840
  store i32 %384, ptr %381, align 8
  %385 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %386 unwind label %183

386:                                              ; preds = %380
  %387 = getelementptr inbounds i8, ptr %385, i64 32
  store ptr @.str.3, ptr %387, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %388 unwind label %183

388:                                              ; preds = %386
  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
  %389 = load ptr, ptr %63, align 8, !tbaa !30
  %390 = getelementptr inbounds i8, ptr %190, i64 16
  %391 = load ptr, ptr %390, align 8, !tbaa !30
  %392 = load i32, ptr %111, align 8, !tbaa !29
  %393 = zext i32 %392 to i64
  %394 = call i32 @memcmp(ptr noundef %389, ptr noundef %391, i64 noundef %393) #8
  store i32 %394, ptr %23, align 4, !tbaa !13
  %395 = 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 %396 unwind label %398

396:                                              ; preds = %388
  %397 = icmp eq i32 %395, 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 %397, label %.invoke125, label %400

.invoke125:                                       ; preds = %179, %396, %374, %355, %335, %316, %296, %277, %258, %236, %219, %203
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %980 unwind label %183

398:                                              ; preds = %388
  %399 = 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 %988

400:                                              ; preds = %396
  %401 = load ptr, ptr %190, align 8, !tbaa !35
  %402 = invoke noundef i32 %401(ptr noundef nonnull %190)
          to label %403 unwind label %183

403:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %24) #7
  %404 = getelementptr inbounds i8, ptr %61, i64 48
  %405 = load ptr, ptr %404, align 8, !tbaa !36
  %406 = invoke noundef i32 %405(ptr noundef nonnull %61, ptr noundef nonnull %24)
          to label %407 unwind label %421

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

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

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

417:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #7
  store i32 2, ptr %25, align 4, !tbaa !13
  %418 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.293)
          to label %419 unwind label %423

419:                                              ; preds = %417
  %420 = icmp eq i32 %418, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  br i1 %420, label %.invoke126, label %425

421:                                              ; preds = %.invoke126, %511, %510, %501, %495, %493, %484, %478, %476, %467, %461, %459, %450, %444, %442, %433, %427, %425, %415, %409, %407, %403
  %422 = landingpad { ptr, i32 }
          cleanup
  br label %987

423:                                              ; preds = %417
  %424 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  br label %987

425:                                              ; preds = %419
  %426 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %427 unwind label %421

427:                                              ; preds = %425
  %428 = getelementptr inbounds i8, ptr %426, i64 96
  %429 = load i32, ptr %428, align 8
  %430 = and i32 %429, -16776961
  %431 = or disjoint i32 %430, 421632
  store i32 %431, ptr %428, align 8
  %432 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %433 unwind label %421

433:                                              ; preds = %427
  %434 = getelementptr inbounds i8, ptr %432, i64 32
  store ptr @.str.3, ptr %434, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %435 unwind label %421

435:                                              ; preds = %433
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #7
  store i32 1, ptr %26, align 4, !tbaa !13
  %436 = getelementptr inbounds i8, ptr %24, i64 40
  %437 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 8 dereferenceable(8) %436, ptr noundef nonnull @.str.232, ptr noundef nonnull @.str.294)
          to label %438 unwind label %440

438:                                              ; preds = %435
  %439 = icmp eq i32 %437, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  br i1 %439, label %.invoke126, label %442

440:                                              ; preds = %435
  %441 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #7
  br label %987

442:                                              ; preds = %438
  %443 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %444 unwind label %421

444:                                              ; preds = %442
  %445 = getelementptr inbounds i8, ptr %443, i64 96
  %446 = load i32, ptr %445, align 8
  %447 = and i32 %446, -16776961
  %448 = or disjoint i32 %447, 421888
  store i32 %448, ptr %445, align 8
  %449 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %450 unwind label %421

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

452:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #7
  store i32 2, ptr %27, align 4, !tbaa !13
  %453 = getelementptr inbounds i8, ptr %24, i64 24
  %454 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 8 dereferenceable(8) %453, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.295)
          to label %455 unwind label %457

455:                                              ; preds = %452
  %456 = icmp eq i32 %454, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  br i1 %456, label %.invoke126, label %459

457:                                              ; preds = %452
  %458 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  br label %987

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

461:                                              ; preds = %459
  %462 = getelementptr inbounds i8, ptr %460, i64 96
  %463 = load i32, ptr %462, align 8
  %464 = and i32 %463, -16776961
  %465 = or disjoint i32 %464, 422144
  store i32 %465, ptr %462, align 8
  %466 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %467 unwind label %421

467:                                              ; preds = %461
  %468 = getelementptr inbounds i8, ptr %466, i64 32
  store ptr @.str.3, ptr %468, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %469 unwind label %421

469:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #7
  store i32 2, ptr %28, align 4, !tbaa !13
  %470 = getelementptr inbounds i8, ptr %24, i64 64
  %471 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %28, ptr noundef nonnull align 8 dereferenceable(8) %470, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.296)
          to label %472 unwind label %474

472:                                              ; preds = %469
  %473 = icmp eq i32 %471, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  br i1 %473, label %.invoke126, label %476

474:                                              ; preds = %469
  %475 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  br label %987

476:                                              ; preds = %472
  %477 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %478 unwind label %421

478:                                              ; preds = %476
  %479 = getelementptr inbounds i8, ptr %477, i64 96
  %480 = load i32, ptr %479, align 8
  %481 = and i32 %480, -16776961
  %482 = or disjoint i32 %481, 422400
  store i32 %482, ptr %479, align 8
  %483 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %484 unwind label %421

484:                                              ; preds = %478
  %485 = getelementptr inbounds i8, ptr %483, i64 32
  store ptr @.str.3, ptr %485, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %486 unwind label %421

486:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  store i32 5902, ptr %29, align 4, !tbaa !13
  %487 = getelementptr inbounds i8, ptr %24, i64 32
  %488 = 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) %487, ptr noundef nonnull @.str.297, ptr noundef nonnull @.str.298)
          to label %489 unwind label %491

489:                                              ; preds = %486
  %490 = icmp eq i32 %488, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  br i1 %490, label %.invoke126, label %493

491:                                              ; preds = %486
  %492 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  br label %987

493:                                              ; preds = %489
  %494 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %495 unwind label %421

495:                                              ; preds = %493
  %496 = getelementptr inbounds i8, ptr %494, i64 96
  %497 = load i32, ptr %496, align 8
  %498 = and i32 %497, -16776961
  %499 = or disjoint i32 %498, 422656
  store i32 %499, ptr %496, align 8
  %500 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %501 unwind label %421

501:                                              ; preds = %495
  %502 = getelementptr inbounds i8, ptr %500, i64 32
  store ptr @.str.3, ptr %502, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %503 unwind label %421

503:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #7
  store i32 5902, ptr %30, align 4, !tbaa !13
  %504 = getelementptr inbounds i8, ptr %24, i64 72
  %505 = 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) %504, ptr noundef nonnull @.str.297, ptr noundef nonnull @.str.299)
          to label %506 unwind label %508

506:                                              ; preds = %503
  %507 = icmp eq i32 %505, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  br i1 %507, label %.invoke126, label %510

.invoke126:                                       ; preds = %419, %506, %489, %472, %455, %438
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %979 unwind label %421

508:                                              ; preds = %503
  %509 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  br label %987

510:                                              ; preds = %506
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %61)
          to label %511 unwind label %421

511:                                              ; preds = %510
  %512 = invoke ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %60, ptr noundef %57, ptr noundef nonnull @.str.270, ptr noundef null, i32 noundef 0)
          to label %513 unwind label %421

513:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %31) #7
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31)
          to label %514 unwind label %532

514:                                              ; preds = %513
  %515 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %516 unwind label %534

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

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

524:                                              ; preds = %522
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #7
  store i32 0, ptr %32, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #7
  %525 = getelementptr inbounds i8, ptr %512, i64 24
  %526 = load ptr, ptr %525, align 8, !tbaa !14
  %527 = invoke noundef i32 %526(ptr noundef nonnull %512, i64 noundef 3735928559, ptr noundef nonnull %31)
          to label %528 unwind label %536

528:                                              ; preds = %524
  store i32 %527, ptr %33, align 4, !tbaa !13
  %529 = 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) %32, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.302, ptr noundef null)
          to label %530 unwind label %536

530:                                              ; preds = %528
  %531 = icmp eq i32 %529, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  br i1 %531, label %.invoke127, label %538

532:                                              ; preds = %513
  %533 = landingpad { ptr, i32 }
          cleanup
  br label %986

534:                                              ; preds = %.invoke127, %742, %738, %737, %734, %720, %714, %712, %701, %695, %693, %681, %675, %673, %662, %656, %654, %642, %636, %634, %623, %617, %615, %604, %598, %596, %582, %576, %574, %563, %557, %555, %551, %549, %543, %539, %538, %522, %516, %514
  %535 = landingpad { ptr, i32 }
          cleanup
  br label %985

536:                                              ; preds = %528, %524
  %537 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  br label %985

538:                                              ; preds = %530
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %31)
          to label %539 unwind label %534

539:                                              ; preds = %538
  %540 = getelementptr inbounds i8, ptr %31, i64 32
  %541 = load ptr, ptr %540, align 8, !tbaa !32
  %542 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %543 unwind label %534

543:                                              ; preds = %539
  %544 = getelementptr inbounds i8, ptr %542, i64 96
  %545 = load i32, ptr %544, align 8
  %546 = and i32 %545, -16776961
  %547 = or disjoint i32 %546, 425216
  store i32 %547, ptr %544, align 8
  %548 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %549 unwind label %534

549:                                              ; preds = %543
  %550 = getelementptr inbounds i8, ptr %548, i64 32
  store ptr @.str.3, ptr %550, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %551 unwind label %534

551:                                              ; preds = %549
  %552 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %541, ptr noundef nonnull @.str.276, ptr noundef nonnull @.str.277)
          to label %553 unwind label %534

553:                                              ; preds = %551
  %554 = icmp eq i32 %552, 0
  br i1 %554, label %.invoke127, label %555

555:                                              ; preds = %553
  %556 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %557 unwind label %534

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

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

565:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #7
  store i32 -559038737, ptr %34, align 4, !tbaa !13
  %566 = getelementptr inbounds i8, ptr %541, i64 8
  %567 = load ptr, ptr %566, align 8, !tbaa !17
  %568 = load ptr, ptr %567, align 8, !tbaa !19
  %569 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 8 dereferenceable(8) %568, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.278)
          to label %570 unwind label %572

570:                                              ; preds = %565
  %571 = icmp eq i32 %569, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  br i1 %571, label %.invoke127, label %574

572:                                              ; preds = %565
  %573 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  br label %985

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

576:                                              ; preds = %574
  %577 = getelementptr inbounds i8, ptr %575, i64 96
  %578 = load i32, ptr %577, align 8
  %579 = and i32 %578, -16776961
  %580 = or disjoint i32 %579, 425728
  store i32 %580, ptr %577, align 8
  %581 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %582 unwind label %534

582:                                              ; preds = %576
  %583 = getelementptr inbounds i8, ptr %581, i64 32
  store ptr @.str.3, ptr %583, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %584 unwind label %534

584:                                              ; preds = %582
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #7
  %585 = load ptr, ptr %94, align 8, !tbaa !22
  %586 = invoke noundef i32 %585(ptr noundef nonnull %59)
          to label %587 unwind label %594

587:                                              ; preds = %584
  store i32 %586, ptr %35, align 4, !tbaa !13
  %588 = load ptr, ptr %566, align 8, !tbaa !17
  %589 = getelementptr inbounds i8, ptr %588, i64 8
  %590 = load ptr, ptr %589, align 8, !tbaa !24
  %591 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) %590, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.279)
          to label %592 unwind label %594

592:                                              ; preds = %587
  %593 = icmp eq i32 %591, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  br i1 %593, label %.invoke127, label %596

594:                                              ; preds = %587, %584
  %595 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  br label %985

596:                                              ; preds = %592
  %597 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %598 unwind label %534

598:                                              ; preds = %596
  %599 = getelementptr inbounds i8, ptr %597, i64 96
  %600 = load i32, ptr %599, align 8
  %601 = and i32 %600, -16776961
  %602 = or disjoint i32 %601, 425984
  store i32 %602, ptr %599, align 8
  %603 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %604 unwind label %534

604:                                              ; preds = %598
  %605 = getelementptr inbounds i8, ptr %603, i64 32
  store ptr @.str.3, ptr %605, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %606 unwind label %534

606:                                              ; preds = %604
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #7
  store i32 0, ptr %36, align 4, !tbaa !13
  %607 = load ptr, ptr %566, align 8, !tbaa !17
  %608 = getelementptr inbounds i8, ptr %607, i64 24
  %609 = load ptr, ptr %608, align 8, !tbaa !25
  %610 = 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) %36, ptr noundef nonnull align 4 dereferenceable(4) %609, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.280, ptr noundef null)
          to label %611 unwind label %613

611:                                              ; preds = %606
  %612 = icmp eq i32 %610, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  br i1 %612, label %.invoke127, label %615

613:                                              ; preds = %606
  %614 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  br label %985

615:                                              ; preds = %611
  %616 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %617 unwind label %534

617:                                              ; preds = %615
  %618 = getelementptr inbounds i8, ptr %616, i64 96
  %619 = load i32, ptr %618, align 8
  %620 = and i32 %619, -16776961
  %621 = or disjoint i32 %620, 426240
  store i32 %621, ptr %618, align 8
  %622 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %623 unwind label %534

623:                                              ; preds = %617
  %624 = getelementptr inbounds i8, ptr %622, i64 32
  store ptr @.str.3, ptr %624, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %625 unwind label %534

625:                                              ; preds = %623
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #7
  store i32 251666341, ptr %37, align 4, !tbaa !13
  %626 = load ptr, ptr %566, align 8, !tbaa !17
  %627 = getelementptr inbounds i8, ptr %626, i64 32
  %628 = load ptr, ptr %627, align 8, !tbaa !26
  %629 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 8 dereferenceable(8) %628, ptr noundef nonnull @.str.281, ptr noundef nonnull @.str.282)
          to label %630 unwind label %632

630:                                              ; preds = %625
  %631 = icmp eq i32 %629, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  br i1 %631, label %.invoke127, label %634

632:                                              ; preds = %625
  %633 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  br label %985

634:                                              ; preds = %630
  %635 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %636 unwind label %534

636:                                              ; preds = %634
  %637 = getelementptr inbounds i8, ptr %635, i64 96
  %638 = load i32, ptr %637, align 8
  %639 = and i32 %638, -16776961
  %640 = or disjoint i32 %639, 426496
  store i32 %640, ptr %637, align 8
  %641 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %642 unwind label %534

642:                                              ; preds = %636
  %643 = getelementptr inbounds i8, ptr %641, i64 32
  store ptr @.str.3, ptr %643, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %644 unwind label %534

644:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #7
  store i32 268378021, ptr %38, align 4, !tbaa !13
  %645 = load ptr, ptr %566, align 8, !tbaa !17
  %646 = getelementptr inbounds i8, ptr %645, i64 32
  %647 = load ptr, ptr %646, align 8, !tbaa !26
  %648 = getelementptr inbounds i8, ptr %647, i64 8
  %649 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 8 dereferenceable(8) %648, ptr noundef nonnull @.str.283, ptr noundef nonnull @.str.284)
          to label %650 unwind label %652

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

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

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

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

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

664:                                              ; preds = %662
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #7
  store i32 4711, ptr %39, align 4, !tbaa !13
  %665 = load ptr, ptr %566, align 8, !tbaa !17
  %666 = getelementptr inbounds i8, ptr %665, i64 40
  %667 = load ptr, ptr %666, align 8, !tbaa !27
  %668 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %39, ptr noundef nonnull align 4 dereferenceable(4) %667, ptr noundef nonnull @.str.285, ptr noundef nonnull @.str.286)
          to label %669 unwind label %671

669:                                              ; preds = %664
  %670 = icmp eq i32 %668, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #7
  br i1 %670, label %.invoke127, label %673

671:                                              ; preds = %664
  %672 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #7
  br label %985

673:                                              ; preds = %669
  %674 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %675 unwind label %534

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

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

683:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #7
  store i32 1147, ptr %40, align 4, !tbaa !13
  %684 = load ptr, ptr %566, align 8, !tbaa !17
  %685 = getelementptr inbounds i8, ptr %684, i64 40
  %686 = load ptr, ptr %685, align 8, !tbaa !27
  %687 = getelementptr inbounds i8, ptr %686, i64 4
  %688 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 4 dereferenceable(4) %687, ptr noundef nonnull @.str.287, ptr noundef nonnull @.str.288)
          to label %689 unwind label %691

689:                                              ; preds = %683
  %690 = icmp eq i32 %688, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #7
  br i1 %690, label %.invoke127, label %693

691:                                              ; preds = %683
  %692 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #7
  br label %985

693:                                              ; preds = %689
  %694 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %695 unwind label %534

695:                                              ; preds = %693
  %696 = getelementptr inbounds i8, ptr %694, i64 96
  %697 = load i32, ptr %696, align 8
  %698 = and i32 %697, -16776961
  %699 = or disjoint i32 %698, 427264
  store i32 %699, ptr %696, align 8
  %700 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %701 unwind label %534

701:                                              ; preds = %695
  %702 = getelementptr inbounds i8, ptr %700, i64 32
  store ptr @.str.3, ptr %702, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %703 unwind label %534

703:                                              ; preds = %701
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #7
  store i32 2, ptr %41, align 4, !tbaa !13
  %704 = load ptr, ptr %566, align 8, !tbaa !17
  %705 = getelementptr inbounds i8, ptr %704, i64 16
  %706 = load ptr, ptr %705, align 8, !tbaa !28
  %707 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %41, ptr noundef nonnull align 4 dereferenceable(4) %706, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.289)
          to label %708 unwind label %710

708:                                              ; preds = %703
  %709 = icmp eq i32 %707, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  br i1 %709, label %.invoke127, label %712

710:                                              ; preds = %703
  %711 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  br label %985

712:                                              ; preds = %708
  %713 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %714 unwind label %534

714:                                              ; preds = %712
  %715 = getelementptr inbounds i8, ptr %713, i64 96
  %716 = load i32, ptr %715, align 8
  %717 = and i32 %716, -16776961
  %718 = or disjoint i32 %717, 427520
  store i32 %718, ptr %715, align 8
  %719 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %720 unwind label %534

720:                                              ; preds = %714
  %721 = getelementptr inbounds i8, ptr %719, i64 32
  store ptr @.str.3, ptr %721, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %722 unwind label %534

722:                                              ; preds = %720
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #7
  store i32 0, ptr %42, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #7
  %723 = load ptr, ptr %63, align 8, !tbaa !30
  %724 = getelementptr inbounds i8, ptr %541, i64 16
  %725 = load ptr, ptr %724, align 8, !tbaa !30
  %726 = load i32, ptr %111, align 8, !tbaa !29
  %727 = zext i32 %726 to i64
  %728 = call i32 @memcmp(ptr noundef %723, ptr noundef %725, i64 noundef %727) #8
  store i32 %728, ptr %43, align 4, !tbaa !13
  %729 = 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) %42, ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.290, ptr noundef null)
          to label %730 unwind label %732

730:                                              ; preds = %722
  %731 = icmp eq i32 %729, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  br i1 %731, label %.invoke127, label %734

.invoke127:                                       ; preds = %530, %730, %708, %689, %669, %650, %630, %611, %592, %570, %553
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %978 unwind label %534

732:                                              ; preds = %722
  %733 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  br label %985

734:                                              ; preds = %730
  %735 = load ptr, ptr %541, align 8, !tbaa !35
  %736 = invoke noundef i32 %735(ptr noundef nonnull %541)
          to label %737 unwind label %534

737:                                              ; preds = %734
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %512)
          to label %738 unwind label %534

738:                                              ; preds = %737
  %739 = getelementptr inbounds i8, ptr %57, i64 128
  %740 = load ptr, ptr %739, align 8, !tbaa !37
  %741 = invoke noundef i32 %740(ptr noundef nonnull %57, ptr noundef nonnull @.str.303)
          to label %742 unwind label %534

742:                                              ; preds = %738
  %743 = invoke ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %60, ptr noundef nonnull %57, ptr noundef nonnull @.str.270, ptr noundef null, i32 noundef 0)
          to label %744 unwind label %534

744:                                              ; preds = %742
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %44) #7
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44)
          to label %745 unwind label %763

745:                                              ; preds = %744
  %746 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %747 unwind label %765

747:                                              ; preds = %745
  %748 = getelementptr inbounds i8, ptr %746, i64 96
  %749 = load i32, ptr %748, align 8
  %750 = and i32 %749, -16776961
  %751 = or disjoint i32 %750, 429568
  store i32 %751, ptr %748, align 8
  %752 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %753 unwind label %765

753:                                              ; preds = %747
  %754 = getelementptr inbounds i8, ptr %752, i64 32
  store ptr @.str.3, ptr %754, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %755 unwind label %765

755:                                              ; preds = %753
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #7
  store i32 0, ptr %45, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #7
  %756 = getelementptr inbounds i8, ptr %743, i64 24
  %757 = load ptr, ptr %756, align 8, !tbaa !14
  %758 = invoke noundef i32 %757(ptr noundef nonnull %743, i64 noundef 3735928559, ptr noundef nonnull %44)
          to label %759 unwind label %767

759:                                              ; preds = %755
  store i32 %758, ptr %46, align 4, !tbaa !13
  %760 = 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) %45, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.304, ptr noundef null)
          to label %761 unwind label %767

761:                                              ; preds = %759
  %762 = icmp eq i32 %760, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #7
  br i1 %762, label %.invoke128, label %769

763:                                              ; preds = %744
  %764 = landingpad { ptr, i32 }
          cleanup
  br label %984

765:                                              ; preds = %.invoke128, %.thread, %975, %973, %972, %970, %967, %965, %951, %945, %943, %932, %926, %924, %912, %906, %904, %893, %887, %885, %873, %867, %865, %854, %848, %846, %835, %829, %827, %813, %807, %805, %794, %788, %786, %782, %780, %774, %770, %769, %753, %747, %745
  %766 = landingpad { ptr, i32 }
          cleanup
  br label %983

767:                                              ; preds = %759, %755
  %768 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #7
  br label %983

769:                                              ; preds = %761
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %44)
          to label %770 unwind label %765

770:                                              ; preds = %769
  %771 = getelementptr inbounds i8, ptr %44, i64 32
  %772 = load ptr, ptr %771, align 8, !tbaa !32
  %773 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %774 unwind label %765

774:                                              ; preds = %770
  %775 = getelementptr inbounds i8, ptr %773, i64 96
  %776 = load i32, ptr %775, align 8
  %777 = and i32 %776, -16776961
  %778 = or disjoint i32 %777, 430592
  store i32 %778, ptr %775, align 8
  %779 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %780 unwind label %765

780:                                              ; preds = %774
  %781 = getelementptr inbounds i8, ptr %779, i64 32
  store ptr @.str.3, ptr %781, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %782 unwind label %765

782:                                              ; preds = %780
  %783 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %772, ptr noundef nonnull @.str.276, ptr noundef nonnull @.str.277)
          to label %784 unwind label %765

784:                                              ; preds = %782
  %785 = icmp eq i32 %783, 0
  br i1 %785, label %.invoke128, label %786

786:                                              ; preds = %784
  %787 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %788 unwind label %765

788:                                              ; preds = %786
  %789 = getelementptr inbounds i8, ptr %787, i64 96
  %790 = load i32, ptr %789, align 8
  %791 = and i32 %790, -16776961
  %792 = or disjoint i32 %791, 430848
  store i32 %792, ptr %789, align 8
  %793 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %794 unwind label %765

794:                                              ; preds = %788
  %795 = getelementptr inbounds i8, ptr %793, i64 32
  store ptr @.str.3, ptr %795, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %796 unwind label %765

796:                                              ; preds = %794
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #7
  store i32 -559038737, ptr %47, align 4, !tbaa !13
  %797 = getelementptr inbounds i8, ptr %772, i64 8
  %798 = load ptr, ptr %797, align 8, !tbaa !17
  %799 = load ptr, ptr %798, align 8, !tbaa !19
  %800 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 8 dereferenceable(8) %799, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.278)
          to label %801 unwind label %803

801:                                              ; preds = %796
  %802 = icmp eq i32 %800, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #7
  br i1 %802, label %.invoke128, label %805

803:                                              ; preds = %796
  %804 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #7
  br label %983

805:                                              ; preds = %801
  %806 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %807 unwind label %765

807:                                              ; preds = %805
  %808 = getelementptr inbounds i8, ptr %806, i64 96
  %809 = load i32, ptr %808, align 8
  %810 = and i32 %809, -16776961
  %811 = or disjoint i32 %810, 431104
  store i32 %811, ptr %808, align 8
  %812 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %813 unwind label %765

813:                                              ; preds = %807
  %814 = getelementptr inbounds i8, ptr %812, i64 32
  store ptr @.str.3, ptr %814, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %815 unwind label %765

815:                                              ; preds = %813
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #7
  %816 = load ptr, ptr %94, align 8, !tbaa !22
  %817 = invoke noundef i32 %816(ptr noundef nonnull %59)
          to label %818 unwind label %825

818:                                              ; preds = %815
  store i32 %817, ptr %48, align 4, !tbaa !13
  %819 = load ptr, ptr %797, align 8, !tbaa !17
  %820 = getelementptr inbounds i8, ptr %819, i64 8
  %821 = load ptr, ptr %820, align 8, !tbaa !24
  %822 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef nonnull align 4 dereferenceable(4) %821, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.279)
          to label %823 unwind label %825

823:                                              ; preds = %818
  %824 = icmp eq i32 %822, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #7
  br i1 %824, label %.invoke128, label %827

825:                                              ; preds = %818, %815
  %826 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #7
  br label %983

827:                                              ; preds = %823
  %828 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %829 unwind label %765

829:                                              ; preds = %827
  %830 = getelementptr inbounds i8, ptr %828, i64 96
  %831 = load i32, ptr %830, align 8
  %832 = and i32 %831, -16776961
  %833 = or disjoint i32 %832, 431360
  store i32 %833, ptr %830, align 8
  %834 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %835 unwind label %765

835:                                              ; preds = %829
  %836 = getelementptr inbounds i8, ptr %834, i64 32
  store ptr @.str.3, ptr %836, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %837 unwind label %765

837:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #7
  store i32 0, ptr %49, align 4, !tbaa !13
  %838 = load ptr, ptr %797, align 8, !tbaa !17
  %839 = getelementptr inbounds i8, ptr %838, i64 24
  %840 = load ptr, ptr %839, align 8, !tbaa !25
  %841 = 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) %49, ptr noundef nonnull align 4 dereferenceable(4) %840, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.280, ptr noundef null)
          to label %842 unwind label %844

842:                                              ; preds = %837
  %843 = icmp eq i32 %841, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #7
  br i1 %843, label %.invoke128, label %846

844:                                              ; preds = %837
  %845 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #7
  br label %983

846:                                              ; preds = %842
  %847 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %848 unwind label %765

848:                                              ; preds = %846
  %849 = getelementptr inbounds i8, ptr %847, i64 96
  %850 = load i32, ptr %849, align 8
  %851 = and i32 %850, -16776961
  %852 = or disjoint i32 %851, 431616
  store i32 %852, ptr %849, align 8
  %853 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %854 unwind label %765

854:                                              ; preds = %848
  %855 = getelementptr inbounds i8, ptr %853, i64 32
  store ptr @.str.3, ptr %855, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %856 unwind label %765

856:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #7
  store i32 251666341, ptr %50, align 4, !tbaa !13
  %857 = load ptr, ptr %797, align 8, !tbaa !17
  %858 = getelementptr inbounds i8, ptr %857, i64 32
  %859 = load ptr, ptr %858, align 8, !tbaa !26
  %860 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %50, ptr noundef nonnull align 8 dereferenceable(8) %859, ptr noundef nonnull @.str.281, ptr noundef nonnull @.str.282)
          to label %861 unwind label %863

861:                                              ; preds = %856
  %862 = icmp eq i32 %860, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #7
  br i1 %862, label %.invoke128, label %865

863:                                              ; preds = %856
  %864 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #7
  br label %983

865:                                              ; preds = %861
  %866 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %867 unwind label %765

867:                                              ; preds = %865
  %868 = getelementptr inbounds i8, ptr %866, i64 96
  %869 = load i32, ptr %868, align 8
  %870 = and i32 %869, -16776961
  %871 = or disjoint i32 %870, 431872
  store i32 %871, ptr %868, align 8
  %872 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %873 unwind label %765

873:                                              ; preds = %867
  %874 = getelementptr inbounds i8, ptr %872, i64 32
  store ptr @.str.3, ptr %874, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %875 unwind label %765

875:                                              ; preds = %873
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #7
  store i32 268378021, ptr %51, align 4, !tbaa !13
  %876 = load ptr, ptr %797, align 8, !tbaa !17
  %877 = getelementptr inbounds i8, ptr %876, i64 32
  %878 = load ptr, ptr %877, align 8, !tbaa !26
  %879 = getelementptr inbounds i8, ptr %878, i64 8
  %880 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %51, ptr noundef nonnull align 8 dereferenceable(8) %879, ptr noundef nonnull @.str.283, ptr noundef nonnull @.str.284)
          to label %881 unwind label %883

881:                                              ; preds = %875
  %882 = icmp eq i32 %880, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #7
  br i1 %882, label %.invoke128, label %885

883:                                              ; preds = %875
  %884 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #7
  br label %983

885:                                              ; preds = %881
  %886 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %887 unwind label %765

887:                                              ; preds = %885
  %888 = getelementptr inbounds i8, ptr %886, i64 96
  %889 = load i32, ptr %888, align 8
  %890 = and i32 %889, -16776961
  %891 = or disjoint i32 %890, 432128
  store i32 %891, ptr %888, align 8
  %892 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %893 unwind label %765

893:                                              ; preds = %887
  %894 = getelementptr inbounds i8, ptr %892, i64 32
  store ptr @.str.3, ptr %894, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %895 unwind label %765

895:                                              ; preds = %893
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #7
  store i32 4711, ptr %52, align 4, !tbaa !13
  %896 = load ptr, ptr %797, align 8, !tbaa !17
  %897 = getelementptr inbounds i8, ptr %896, i64 40
  %898 = load ptr, ptr %897, align 8, !tbaa !27
  %899 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %52, ptr noundef nonnull align 4 dereferenceable(4) %898, ptr noundef nonnull @.str.285, ptr noundef nonnull @.str.286)
          to label %900 unwind label %902

900:                                              ; preds = %895
  %901 = icmp eq i32 %899, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #7
  br i1 %901, label %.invoke128, label %904

902:                                              ; preds = %895
  %903 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #7
  br label %983

904:                                              ; preds = %900
  %905 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %906 unwind label %765

906:                                              ; preds = %904
  %907 = getelementptr inbounds i8, ptr %905, i64 96
  %908 = load i32, ptr %907, align 8
  %909 = and i32 %908, -16776961
  %910 = or disjoint i32 %909, 432384
  store i32 %910, ptr %907, align 8
  %911 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %912 unwind label %765

912:                                              ; preds = %906
  %913 = getelementptr inbounds i8, ptr %911, i64 32
  store ptr @.str.3, ptr %913, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %914 unwind label %765

914:                                              ; preds = %912
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #7
  store i32 1147, ptr %53, align 4, !tbaa !13
  %915 = load ptr, ptr %797, align 8, !tbaa !17
  %916 = getelementptr inbounds i8, ptr %915, i64 40
  %917 = load ptr, ptr %916, align 8, !tbaa !27
  %918 = getelementptr inbounds i8, ptr %917, i64 4
  %919 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %53, ptr noundef nonnull align 4 dereferenceable(4) %918, ptr noundef nonnull @.str.287, ptr noundef nonnull @.str.288)
          to label %920 unwind label %922

920:                                              ; preds = %914
  %921 = icmp eq i32 %919, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #7
  br i1 %921, label %.invoke128, label %924

922:                                              ; preds = %914
  %923 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #7
  br label %983

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

926:                                              ; preds = %924
  %927 = getelementptr inbounds i8, ptr %925, i64 96
  %928 = load i32, ptr %927, align 8
  %929 = and i32 %928, -16776961
  %930 = or disjoint i32 %929, 432640
  store i32 %930, ptr %927, align 8
  %931 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %932 unwind label %765

932:                                              ; preds = %926
  %933 = getelementptr inbounds i8, ptr %931, i64 32
  store ptr @.str.3, ptr %933, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %934 unwind label %765

934:                                              ; preds = %932
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %54) #7
  store i32 2, ptr %54, align 4, !tbaa !13
  %935 = load ptr, ptr %797, align 8, !tbaa !17
  %936 = getelementptr inbounds i8, ptr %935, i64 16
  %937 = load ptr, ptr %936, align 8, !tbaa !28
  %938 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef nonnull align 4 dereferenceable(4) %937, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.289)
          to label %939 unwind label %941

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

941:                                              ; preds = %934
  %942 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #7
  br label %983

943:                                              ; preds = %939
  %944 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %945 unwind label %765

945:                                              ; preds = %943
  %946 = getelementptr inbounds i8, ptr %944, i64 96
  %947 = load i32, ptr %946, align 8
  %948 = and i32 %947, -16776961
  %949 = or disjoint i32 %948, 432896
  store i32 %949, ptr %946, align 8
  %950 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %951 unwind label %765

951:                                              ; preds = %945
  %952 = getelementptr inbounds i8, ptr %950, i64 32
  store ptr @.str.3, ptr %952, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %953 unwind label %765

953:                                              ; preds = %951
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %55) #7
  store i32 0, ptr %55, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %56) #7
  %954 = load ptr, ptr %63, align 8, !tbaa !30
  %955 = getelementptr inbounds i8, ptr %772, i64 16
  %956 = load ptr, ptr %955, align 8, !tbaa !30
  %957 = load i32, ptr %111, align 8, !tbaa !29
  %958 = zext i32 %957 to i64
  %959 = call i32 @memcmp(ptr noundef %954, ptr noundef %956, i64 noundef %958) #8
  store i32 %959, ptr %56, align 4, !tbaa !13
  %960 = 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) %55, ptr noundef nonnull align 4 dereferenceable(4) %56, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.290, ptr noundef null)
          to label %961 unwind label %963

961:                                              ; preds = %953
  %962 = icmp eq i32 %960, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #7
  br i1 %962, label %.invoke128, label %965

.invoke128:                                       ; preds = %761, %961, %939, %920, %900, %881, %861, %842, %823, %801, %784
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %977 unwind label %765

963:                                              ; preds = %953
  %964 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #7
  br label %983

965:                                              ; preds = %961
  %966 = load ptr, ptr %63, align 8, !tbaa !30
  invoke void @Longtail_Free(ptr noundef %966)
          to label %967 unwind label %765

967:                                              ; preds = %965
  %968 = load ptr, ptr %772, align 8, !tbaa !35
  %969 = invoke noundef i32 %968(ptr noundef nonnull %772)
          to label %970 unwind label %765

970:                                              ; preds = %967
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %743)
          to label %971 unwind label %765

971:                                              ; preds = %970
  %.not103 = icmp eq ptr %60, null
  br i1 %.not103, label %973, label %972

972:                                              ; preds = %971
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %60)
          to label %973 unwind label %765

973:                                              ; preds = %971, %972
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %59)
          to label %974 unwind label %765

974:                                              ; preds = %973
  %.not105 = icmp eq ptr %58, null
  br i1 %.not105, label %.thread, label %975

975:                                              ; preds = %974
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %58)
          to label %976 unwind label %765

976:                                              ; preds = %975
  %.not106 = icmp eq ptr %57, null
  br i1 %.not106, label %977, label %.thread

.thread:                                          ; preds = %974, %976
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %57)
          to label %977 unwind label %765

977:                                              ; preds = %.invoke128, %976, %.thread
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %44) #7
  br label %978

978:                                              ; preds = %.invoke127, %977
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #7
  br label %979

979:                                              ; preds = %.invoke126, %978
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %24) #7
  br label %980

980:                                              ; preds = %.invoke125, %979
  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 %981

981:                                              ; preds = %.invoke, %980
  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 %982

982:                                              ; preds = %81, %981
  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

983:                                              ; preds = %963, %941, %922, %902, %883, %863, %844, %825, %803, %767, %765
  %.pn = phi { ptr, i32 } [ %766, %765 ], [ %964, %963 ], [ %942, %941 ], [ %923, %922 ], [ %903, %902 ], [ %884, %883 ], [ %864, %863 ], [ %845, %844 ], [ %826, %825 ], [ %804, %803 ], [ %768, %767 ]
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44) #7
  br label %984

984:                                              ; preds = %983, %763
  %.pn.pn = phi { ptr, i32 } [ %.pn, %983 ], [ %764, %763 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %44) #7
  br label %985

985:                                              ; preds = %984, %732, %710, %691, %671, %652, %632, %613, %594, %572, %536, %534
  %.pn109 = phi { ptr, i32 } [ %535, %534 ], [ %.pn.pn, %984 ], [ %733, %732 ], [ %711, %710 ], [ %692, %691 ], [ %672, %671 ], [ %653, %652 ], [ %633, %632 ], [ %614, %613 ], [ %595, %594 ], [ %573, %572 ], [ %537, %536 ]
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #7
  br label %986

986:                                              ; preds = %985, %532
  %.pn109.pn = phi { ptr, i32 } [ %.pn109, %985 ], [ %533, %532 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #7
  br label %987

987:                                              ; preds = %986, %508, %491, %474, %457, %440, %423, %421
  %.pn112 = phi { ptr, i32 } [ %422, %421 ], [ %.pn109.pn, %986 ], [ %509, %508 ], [ %492, %491 ], [ %475, %474 ], [ %458, %457 ], [ %441, %440 ], [ %424, %423 ]
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %24) #7
  br label %988

988:                                              ; preds = %987, %398, %376, %357, %337, %318, %298, %279, %260, %238, %205, %185, %183
  %.pn114 = phi { ptr, i32 } [ %184, %183 ], [ %.pn112, %987 ], [ %399, %398 ], [ %377, %376 ], [ %358, %357 ], [ %338, %337 ], [ %319, %318 ], [ %299, %298 ], [ %280, %279 ], [ %261, %260 ], [ %239, %238 ], [ %206, %205 ], [ %186, %185 ]
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #7
  br label %989

989:                                              ; preds = %988, %181
  %.pn114.pn = phi { ptr, i32 } [ %.pn114, %988 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #7
  br label %990

990:                                              ; preds = %989, %161, %141, %139
  %.pn117 = phi { ptr, i32 } [ %140, %139 ], [ %.pn114.pn, %989 ], [ %162, %161 ], [ %142, %141 ]
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %6) #7
  br label %991

991:                                              ; preds = %990, %137
  %.pn117.pn = phi { ptr, i32 } [ %.pn117, %990 ], [ %138, %137 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  br label %992

992:                                              ; preds = %133, %991, %135, %84, %82
  %.pn122 = phi { ptr, i32 } [ %83, %82 ], [ %85, %84 ], [ %134, %133 ], [ %.pn117.pn, %991 ], [ %136, %135 ]
  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 } %.pn122
}

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 32}
!6 = !{!"_ZTS15jc_test_fixture", !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !10, i64 64, !11, i64 88, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 92, !11, i64 96, !11, i64 97, !11, i64 99, !11, i64 100}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS13jc_test_stats", !11, i64 0, !11, i64 4, !11, i64 6, !11, i64 8, !11, i64 12, !12, i64 16}
!11 = !{!"int", !8, i64 0}
!12 = !{!"long", !8, i64 0}
!13 = !{!11, !11, i64 0}
!14 = !{!15, !7, i64 24}
!15 = !{!"_ZTS22Longtail_BlockStoreAPI", !16, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56}
!16 = !{!"_ZTS12Longtail_API", !7, i64 0}
!17 = !{!18, !7, i64 8}
!18 = !{!"_ZTS20Longtail_StoredBlock", !7, i64 0, !7, i64 8, !7, i64 16, !11, i64 24}
!19 = !{!20, !7, i64 0}
!20 = !{!"_ZTS19Longtail_BlockIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!21 = !{!12, !12, i64 0}
!22 = !{!23, !7, i64 8}
!23 = !{!"_ZTS16Longtail_HashAPI", !16, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!24 = !{!20, !7, i64 8}
!25 = !{!20, !7, i64 24}
!26 = !{!20, !7, i64 32}
!27 = !{!20, !7, i64 40}
!28 = !{!20, !7, i64 16}
!29 = !{!18, !11, i64 24}
!30 = !{!18, !7, i64 16}
!31 = !{!15, !7, i64 8}
!32 = !{!33, !7, i64 32}
!33 = !{!"_ZTS25TestAsyncGetBlockComplete", !34, i64 0, !7, i64 16, !11, i64 24, !7, i64 32}
!34 = !{!"_ZTS31Longtail_AsyncGetStoredBlockAPI", !16, i64 0, !7, i64 8}
!35 = !{!18, !7, i64 0}
!36 = !{!15, !7, i64 48}
!37 = !{!38, !7, i64 128}
!38 = !{!"_ZTS19Longtail_StorageAPI", !16, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !7, i64 120, !7, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176, !7, i64 184, !7, i64 192, !7, i64 200, !7, i64 208}


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