; LLVM IR from DanEngelbrecht/longtail :: test/test.ll/ZN46Longtail_Longtail_CompressBlockStore (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.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_StoredBlock = type { ptr, ptr, ptr, i32 }
%struct.Longtail_BlockIndex = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_HashAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_JobAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.Longtail_CompressionRegistryAPI = type { %struct.Longtail_API, ptr }
%struct.Longtail_StorageAPI = type { %struct.Longtail_API, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@.str.3 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.140 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [7 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.311 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [83 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

declare i32 @Longtail_GetLZ4DefaultQuality() #1

; 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

declare i64 @Longtail_GetStoredBlockSize(i64 noundef) #1

; 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: mustprogress nounwind uwtable
declare dso_local void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN46Longtail_Longtail_CompressBlockStore__TestCase8TestBodyEv(ptr noundef nonnull align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca ptr, align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca %struct.TestAsyncPutBlockComplete, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %struct.TestAsyncPutBlockComplete, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %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 %struct.Longtail_BlockStore_Stats, align 8
  %68 = alloca %struct.Longtail_BlockStore_Stats, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %81 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #6
  %82 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %82, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #6
  %83 = call ptr @Longtail_CreateInMemStorageAPI()
  store ptr %83, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #6
  %84 = call ptr @Longtail_CreateFullCompressionRegistry()
  store ptr %84, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  %85 = call ptr @Longtail_CreateBlake3HashAPI()
  store ptr %85, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  %86 = call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  store ptr %86, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  %87 = load ptr, ptr %7, align 8, !tbaa !5
  %88 = load ptr, ptr %3, align 8, !tbaa !5
  %89 = call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %87, ptr noundef %88, ptr noundef @.str.270, ptr noundef null, i32 noundef 0)
  store ptr %89, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #6
  %90 = load ptr, ptr %8, align 8, !tbaa !5
  %91 = load ptr, ptr %5, align 8, !tbaa !5
  %92 = call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %90, ptr noundef %91)
  store ptr %92, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %10) #6
  call void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10)
  br label %93

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

95:                                               ; preds = %93
  %96 = getelementptr inbounds %struct.jc_test_fixture, ptr %94, i32 0, i32 11
  %97 = load i32, ptr %96, align 8
  %98 = and i32 %97, -16776961
  %99 = or i32 %98, 527360
  store i32 %99, ptr %96, align 8
  %100 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %101 unwind label %116

101:                                              ; preds = %95
  %102 = getelementptr inbounds %struct.jc_test_fixture, ptr %100, i32 0, i32 4
  store ptr @.str.3, ptr %102, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %103 unwind label %116

103:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  store i32 2, ptr %13, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  %104 = load ptr, ptr %9, align 8, !tbaa !5
  %105 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %104, i32 0, i32 3
  %106 = load ptr, ptr %105, align 8, !tbaa !15
  %107 = load ptr, ptr %9, align 8, !tbaa !5
  %108 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %10, i32 0, i32 0
  %109 = invoke noundef i32 %106(ptr noundef %107, i64 noundef 4711, ptr noundef %108)
          to label %110 unwind label %120

110:                                              ; preds = %103
  store i32 %109, ptr %14, align 4, !tbaa !14
  %111 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %13, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef @.str.138, ptr noundef @.str.343)
          to label %112 unwind label %120

112:                                              ; preds = %110
  %113 = icmp eq i32 %111, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  br i1 %113, label %114, label %124

114:                                              ; preds = %112
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %115 unwind label %116

115:                                              ; preds = %114
  store i32 1, ptr %15, align 4
  br label %1715

116:                                              ; preds = %114, %101, %95, %93
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %11, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %12, align 4
  br label %1730

120:                                              ; preds = %110, %103
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %11, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  br label %1730

124:                                              ; preds = %112
  br label %125

125:                                              ; preds = %124
  br label %126

126:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  %127 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %10, i32 0, i32 3
  %128 = load ptr, ptr %127, align 8, !tbaa !18
  store ptr %128, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  %129 = invoke i64 @Longtail_GetBlockIndexSize(i32 noundef 2)
          to label %130 unwind label %328

130:                                              ; preds = %126
  store i64 %129, ptr %18, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  store i64 5858, ptr %19, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %131 = load i64, ptr %18, align 8, !tbaa !21
  %132 = load i64, ptr %19, align 8, !tbaa !21
  %133 = add i64 %131, %132
  %134 = invoke i64 @Longtail_GetStoredBlockSize(i64 noundef %133)
          to label %135 unwind label %332

135:                                              ; preds = %130
  store i64 %134, ptr %20, align 8, !tbaa !21
  %136 = load i64, ptr %20, align 8, !tbaa !21
  %137 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %136)
          to label %138 unwind label %332

138:                                              ; preds = %135
  store ptr %137, ptr %17, align 8, !tbaa !5
  %139 = load ptr, ptr %17, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %139, i32 0, i32 0
  store ptr null, ptr %140, align 8, !tbaa !22
  %141 = load ptr, ptr %17, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %141, i64 1
  %143 = invoke ptr @Longtail_InitBlockIndex(ptr noundef %142, i32 noundef 2)
          to label %144 unwind label %332

144:                                              ; preds = %138
  %145 = load ptr, ptr %17, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %145, i32 0, i32 1
  store ptr %143, ptr %146, align 8, !tbaa !24
  %147 = load ptr, ptr %17, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %147, i32 0, i32 1
  %149 = load ptr, ptr %148, align 8, !tbaa !24
  %150 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %149, i32 0, i32 0
  %151 = load ptr, ptr %150, align 8, !tbaa !25
  store i64 3735928559, ptr %151, align 8, !tbaa !21
  %152 = load ptr, ptr %6, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %152, i32 0, i32 1
  %154 = load ptr, ptr %153, align 8, !tbaa !27
  %155 = load ptr, ptr %6, align 8, !tbaa !5
  %156 = invoke noundef i32 %154(ptr noundef %155)
          to label %157 unwind label %332

157:                                              ; preds = %144
  %158 = load ptr, ptr %17, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %158, i32 0, i32 1
  %160 = load ptr, ptr %159, align 8, !tbaa !24
  %161 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %160, i32 0, i32 1
  %162 = load ptr, ptr %161, align 8, !tbaa !29
  store i32 %156, ptr %162, align 4, !tbaa !14
  %163 = load ptr, ptr %17, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %163, i32 0, i32 1
  %165 = load ptr, ptr %164, align 8, !tbaa !24
  %166 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %165, i32 0, i32 3
  %167 = load ptr, ptr %166, align 8, !tbaa !30
  store i32 0, ptr %167, align 4, !tbaa !14
  %168 = load ptr, ptr %17, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %168, i32 0, i32 1
  %170 = load ptr, ptr %169, align 8, !tbaa !24
  %171 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %170, i32 0, i32 4
  %172 = load ptr, ptr %171, align 8, !tbaa !31
  %173 = getelementptr inbounds i64, ptr %172, i64 0
  store i64 251666341, ptr %173, align 8, !tbaa !21
  %174 = load ptr, ptr %17, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %174, i32 0, i32 1
  %176 = load ptr, ptr %175, align 8, !tbaa !24
  %177 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %176, i32 0, i32 4
  %178 = load ptr, ptr %177, align 8, !tbaa !31
  %179 = getelementptr inbounds i64, ptr %178, i64 1
  store i64 268378021, ptr %179, align 8, !tbaa !21
  %180 = load ptr, ptr %17, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %180, i32 0, i32 1
  %182 = load ptr, ptr %181, align 8, !tbaa !24
  %183 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %182, i32 0, i32 5
  %184 = load ptr, ptr %183, align 8, !tbaa !32
  %185 = getelementptr inbounds i32, ptr %184, i64 0
  store i32 4711, ptr %185, align 4, !tbaa !14
  %186 = load ptr, ptr %17, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %186, i32 0, i32 1
  %188 = load ptr, ptr %187, align 8, !tbaa !24
  %189 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %188, i32 0, i32 5
  %190 = load ptr, ptr %189, align 8, !tbaa !32
  %191 = getelementptr inbounds i32, ptr %190, i64 1
  store i32 1147, ptr %191, align 4, !tbaa !14
  %192 = load ptr, ptr %17, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %192, i32 0, i32 1
  %194 = load ptr, ptr %193, align 8, !tbaa !24
  %195 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %194, i32 0, i32 2
  %196 = load ptr, ptr %195, align 8, !tbaa !33
  store i32 2, ptr %196, align 4, !tbaa !14
  %197 = load i64, ptr %19, align 8, !tbaa !21
  %198 = trunc i64 %197 to i32
  %199 = load ptr, ptr %17, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %199, i32 0, i32 3
  store i32 %198, ptr %200, align 8, !tbaa !34
  %201 = load ptr, ptr %17, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %201, i32 0, i32 1
  %203 = load ptr, ptr %202, align 8, !tbaa !24
  %204 = load i64, ptr %18, align 8, !tbaa !21
  %205 = getelementptr inbounds i8, ptr %203, i64 %204
  %206 = load ptr, ptr %17, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %206, i32 0, i32 2
  store ptr %205, ptr %207, align 8, !tbaa !35
  %208 = load ptr, ptr %17, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %208, i32 0, i32 2
  %210 = load ptr, ptr %209, align 8, !tbaa !35
  call void @llvm.memset.p0.i64(ptr align 1 %210, i8 77, i64 4711, i1 false)
  %211 = load ptr, ptr %17, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %211, i32 0, i32 2
  %213 = load ptr, ptr %212, align 8, !tbaa !35
  %214 = getelementptr inbounds i8, ptr %213, i64 4711
  call void @llvm.memset.p0.i64(ptr align 1 %214, i8 13, i64 1147, i1 false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  %215 = invoke i64 @Longtail_GetBlockIndexSize(i32 noundef 2)
          to label %216 unwind label %337

216:                                              ; preds = %157
  store i64 %215, ptr %22, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  store i64 5858, ptr %23, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  %217 = load i64, ptr %22, align 8, !tbaa !21
  %218 = load i64, ptr %23, align 8, !tbaa !21
  %219 = add i64 %217, %218
  %220 = invoke i64 @Longtail_GetStoredBlockSize(i64 noundef %219)
          to label %221 unwind label %341

221:                                              ; preds = %216
  store i64 %220, ptr %24, align 8, !tbaa !21
  %222 = load i64, ptr %24, align 8, !tbaa !21
  %223 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %222)
          to label %224 unwind label %341

224:                                              ; preds = %221
  store ptr %223, ptr %21, align 8, !tbaa !5
  %225 = load ptr, ptr %21, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %225, i32 0, i32 0
  store ptr null, ptr %226, align 8, !tbaa !22
  %227 = load ptr, ptr %21, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %227, i64 1
  %229 = invoke ptr @Longtail_InitBlockIndex(ptr noundef %228, i32 noundef 2)
          to label %230 unwind label %341

230:                                              ; preds = %224
  %231 = load ptr, ptr %21, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %231, i32 0, i32 1
  store ptr %229, ptr %232, align 8, !tbaa !24
  %233 = load ptr, ptr %21, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %233, i32 0, i32 1
  %235 = load ptr, ptr %234, align 8, !tbaa !24
  %236 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %235, i32 0, i32 0
  %237 = load ptr, ptr %236, align 8, !tbaa !25
  store i64 3199065839, ptr %237, align 8, !tbaa !21
  %238 = load ptr, ptr %6, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %238, i32 0, i32 1
  %240 = load ptr, ptr %239, align 8, !tbaa !27
  %241 = load ptr, ptr %6, align 8, !tbaa !5
  %242 = invoke noundef i32 %240(ptr noundef %241)
          to label %243 unwind label %341

243:                                              ; preds = %230
  %244 = load ptr, ptr %21, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %244, i32 0, i32 1
  %246 = load ptr, ptr %245, align 8, !tbaa !24
  %247 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %246, i32 0, i32 1
  %248 = load ptr, ptr %247, align 8, !tbaa !29
  store i32 %242, ptr %248, align 4, !tbaa !14
  %249 = invoke i32 @Longtail_GetLZ4DefaultQuality()
          to label %250 unwind label %341

250:                                              ; preds = %243
  %251 = load ptr, ptr %21, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %251, i32 0, i32 1
  %253 = load ptr, ptr %252, align 8, !tbaa !24
  %254 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %253, i32 0, i32 3
  %255 = load ptr, ptr %254, align 8, !tbaa !30
  store i32 %249, ptr %255, align 4, !tbaa !14
  %256 = load ptr, ptr %21, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %256, i32 0, i32 1
  %258 = load ptr, ptr %257, align 8, !tbaa !24
  %259 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %258, i32 0, i32 4
  %260 = load ptr, ptr %259, align 8, !tbaa !31
  %261 = getelementptr inbounds i64, ptr %260, i64 0
  store i64 268378021, ptr %261, align 8, !tbaa !21
  %262 = load ptr, ptr %21, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %262, i32 0, i32 1
  %264 = load ptr, ptr %263, align 8, !tbaa !24
  %265 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %264, i32 0, i32 4
  %266 = load ptr, ptr %265, align 8, !tbaa !31
  %267 = getelementptr inbounds i64, ptr %266, i64 1
  store i64 251666341, ptr %267, align 8, !tbaa !21
  %268 = load ptr, ptr %21, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %268, i32 0, i32 1
  %270 = load ptr, ptr %269, align 8, !tbaa !24
  %271 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %270, i32 0, i32 5
  %272 = load ptr, ptr %271, align 8, !tbaa !32
  %273 = getelementptr inbounds i32, ptr %272, i64 0
  store i32 1147, ptr %273, align 4, !tbaa !14
  %274 = load ptr, ptr %21, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %274, i32 0, i32 1
  %276 = load ptr, ptr %275, align 8, !tbaa !24
  %277 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %276, i32 0, i32 5
  %278 = load ptr, ptr %277, align 8, !tbaa !32
  %279 = getelementptr inbounds i32, ptr %278, i64 1
  store i32 4711, ptr %279, align 4, !tbaa !14
  %280 = load ptr, ptr %21, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %280, i32 0, i32 1
  %282 = load ptr, ptr %281, align 8, !tbaa !24
  %283 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %282, i32 0, i32 2
  %284 = load ptr, ptr %283, align 8, !tbaa !33
  store i32 2, ptr %284, align 4, !tbaa !14
  %285 = load i64, ptr %23, align 8, !tbaa !21
  %286 = trunc i64 %285 to i32
  %287 = load ptr, ptr %21, align 8, !tbaa !5
  %288 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %287, i32 0, i32 3
  store i32 %286, ptr %288, align 8, !tbaa !34
  %289 = load ptr, ptr %21, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %289, i32 0, i32 1
  %291 = load ptr, ptr %290, align 8, !tbaa !24
  %292 = load i64, ptr %22, align 8, !tbaa !21
  %293 = getelementptr inbounds i8, ptr %291, i64 %292
  %294 = load ptr, ptr %21, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %294, i32 0, i32 2
  store ptr %293, ptr %295, align 8, !tbaa !35
  %296 = load ptr, ptr %21, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %296, i32 0, i32 2
  %298 = load ptr, ptr %297, align 8, !tbaa !35
  call void @llvm.memset.p0.i64(ptr align 1 %298, i8 13, i64 1147, i1 false)
  %299 = load ptr, ptr %21, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %299, i32 0, i32 2
  %301 = load ptr, ptr %300, align 8, !tbaa !35
  %302 = getelementptr inbounds i8, ptr %301, i64 1147
  call void @llvm.memset.p0.i64(ptr align 1 %302, i8 77, i64 4711, i1 false)
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #6
  invoke void @_ZN25TestAsyncPutBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %25)
          to label %303 unwind label %346

303:                                              ; preds = %250
  br label %304

304:                                              ; preds = %303
  %305 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %306 unwind label %350

306:                                              ; preds = %304
  %307 = getelementptr inbounds %struct.jc_test_fixture, ptr %305, i32 0, i32 11
  %308 = load i32, ptr %307, align 8
  %309 = and i32 %308, -16776961
  %310 = or i32 %309, 539904
  store i32 %310, ptr %307, align 8
  %311 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %312 unwind label %350

312:                                              ; preds = %306
  %313 = getelementptr inbounds %struct.jc_test_fixture, ptr %311, i32 0, i32 4
  store ptr @.str.3, ptr %313, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %314 unwind label %350

314:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  store i32 0, ptr %26, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  %315 = load ptr, ptr %9, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %315, i32 0, i32 1
  %317 = load ptr, ptr %316, align 8, !tbaa !36
  %318 = load ptr, ptr %9, align 8, !tbaa !5
  %319 = load ptr, ptr %17, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.TestAsyncPutBlockComplete, ptr %25, i32 0, i32 0
  %321 = invoke noundef i32 %317(ptr noundef %318, ptr noundef %319, ptr noundef %320)
          to label %322 unwind label %354

322:                                              ; preds = %314
  store i32 %321, ptr %27, align 4, !tbaa !14
  %323 = 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) %26, ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef @.str.46, ptr noundef @.str.344, ptr noundef null)
          to label %324 unwind label %354

324:                                              ; preds = %322
  %325 = icmp eq i32 %323, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  br i1 %325, label %326, label %358

326:                                              ; preds = %324
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %327 unwind label %350

327:                                              ; preds = %326
  store i32 1, ptr %15, align 4
  br label %1714

328:                                              ; preds = %126
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %11, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %12, align 4
  br label %336

332:                                              ; preds = %144, %138, %135, %130
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %11, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br label %336

336:                                              ; preds = %332, %328
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  br label %1729

337:                                              ; preds = %157
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %11, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %12, align 4
  br label %345

341:                                              ; preds = %243, %230, %224, %221, %216
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %11, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  br label %345

345:                                              ; preds = %341, %337
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  br label %1728

346:                                              ; preds = %250
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %11, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %12, align 4
  br label %1727

350:                                              ; preds = %379, %372, %366, %364, %361, %360, %326, %312, %306, %304
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %11, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %12, align 4
  br label %1726

354:                                              ; preds = %322, %314
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %11, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  br label %1726

358:                                              ; preds = %324
  br label %359

359:                                              ; preds = %358
  br label %360

360:                                              ; preds = %359
  invoke void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %25)
          to label %361 unwind label %350

361:                                              ; preds = %360
  %362 = load ptr, ptr %17, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %362)
          to label %363 unwind label %350

363:                                              ; preds = %361
  br label %364

364:                                              ; preds = %363
  %365 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %366 unwind label %350

366:                                              ; preds = %364
  %367 = getelementptr inbounds %struct.jc_test_fixture, ptr %365, i32 0, i32 11
  %368 = load i32, ptr %367, align 8
  %369 = and i32 %368, -16776961
  %370 = or i32 %369, 540672
  store i32 %370, ptr %367, align 8
  %371 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %372 unwind label %350

372:                                              ; preds = %366
  %373 = getelementptr inbounds %struct.jc_test_fixture, ptr %371, i32 0, i32 4
  store ptr @.str.3, ptr %373, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %374 unwind label %350

374:                                              ; preds = %372
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  store i32 0, ptr %28, align 4, !tbaa !14
  %375 = getelementptr inbounds %struct.TestAsyncPutBlockComplete, ptr %25, i32 0, i32 2
  %376 = 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) %28, ptr noundef nonnull align 4 dereferenceable(4) %375, ptr noundef @.str.46, ptr noundef @.str.345, ptr noundef null)
          to label %377 unwind label %381

377:                                              ; preds = %374
  %378 = icmp eq i32 %376, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  br i1 %378, label %379, label %385

379:                                              ; preds = %377
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %380 unwind label %350

380:                                              ; preds = %379
  store i32 1, ptr %15, align 4
  br label %1714

381:                                              ; preds = %374
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %11, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  br label %1726

385:                                              ; preds = %377
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #6
  invoke void @_ZN25TestAsyncPutBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %29)
          to label %388 unwind label %413

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388
  %390 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %391 unwind label %417

391:                                              ; preds = %389
  %392 = getelementptr inbounds %struct.jc_test_fixture, ptr %390, i32 0, i32 11
  %393 = load i32, ptr %392, align 8
  %394 = and i32 %393, -16776961
  %395 = or i32 %394, 541184
  store i32 %395, ptr %392, align 8
  %396 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %397 unwind label %417

397:                                              ; preds = %391
  %398 = getelementptr inbounds %struct.jc_test_fixture, ptr %396, i32 0, i32 4
  store ptr @.str.3, ptr %398, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %399 unwind label %417

399:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #6
  store i32 0, ptr %30, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #6
  %400 = load ptr, ptr %9, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %400, i32 0, i32 1
  %402 = load ptr, ptr %401, align 8, !tbaa !36
  %403 = load ptr, ptr %9, align 8, !tbaa !5
  %404 = load ptr, ptr %21, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.TestAsyncPutBlockComplete, ptr %29, i32 0, i32 0
  %406 = invoke noundef i32 %402(ptr noundef %403, ptr noundef %404, ptr noundef %405)
          to label %407 unwind label %421

407:                                              ; preds = %399
  store i32 %406, ptr %31, align 4, !tbaa !14
  %408 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 4 dereferenceable(4) %31, ptr noundef @.str.46, ptr noundef @.str.346, ptr noundef null)
          to label %409 unwind label %421

409:                                              ; preds = %407
  %410 = icmp eq i32 %408, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  br i1 %410, label %411, label %425

411:                                              ; preds = %409
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %412 unwind label %417

412:                                              ; preds = %411
  store i32 1, ptr %15, align 4
  br label %1713

413:                                              ; preds = %387
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %11, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %12, align 4
  br label %1725

417:                                              ; preds = %446, %439, %433, %431, %428, %427, %411, %397, %391, %389
  %418 = landingpad { ptr, i32 }
          cleanup
  %419 = extractvalue { ptr, i32 } %418, 0
  store ptr %419, ptr %11, align 8
  %420 = extractvalue { ptr, i32 } %418, 1
  store i32 %420, ptr %12, align 4
  br label %1724

421:                                              ; preds = %407, %399
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %11, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #6
  br label %1724

425:                                              ; preds = %409
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  invoke void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %29)
          to label %428 unwind label %417

428:                                              ; preds = %427
  %429 = load ptr, ptr %21, align 8, !tbaa !5
  invoke void @Longtail_Free(ptr noundef %429)
          to label %430 unwind label %417

430:                                              ; preds = %428
  br label %431

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

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

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

441:                                              ; preds = %439
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #6
  store i32 0, ptr %32, align 4, !tbaa !14
  %442 = getelementptr inbounds %struct.TestAsyncPutBlockComplete, ptr %29, i32 0, i32 2
  %443 = 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) %442, ptr noundef @.str.46, ptr noundef @.str.347, ptr noundef null)
          to label %444 unwind label %448

444:                                              ; preds = %441
  %445 = icmp eq i32 %443, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  br i1 %445, label %446, label %452

446:                                              ; preds = %444
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %447 unwind label %417

447:                                              ; preds = %446
  store i32 1, ptr %15, align 4
  br label %1713

448:                                              ; preds = %441
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %11, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #6
  br label %1724

452:                                              ; preds = %444
  br label %453

453:                                              ; preds = %452
  br label %454

454:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 40, ptr %33) #6
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %33)
          to label %455 unwind label %479

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455
  %457 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %458 unwind label %483

458:                                              ; preds = %456
  %459 = getelementptr inbounds %struct.jc_test_fixture, ptr %457, i32 0, i32 11
  %460 = load i32, ptr %459, align 8
  %461 = and i32 %460, -16776961
  %462 = or i32 %461, 542720
  store i32 %462, ptr %459, align 8
  %463 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %464 unwind label %483

464:                                              ; preds = %458
  %465 = getelementptr inbounds %struct.jc_test_fixture, ptr %463, i32 0, i32 4
  store ptr @.str.3, ptr %465, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %466 unwind label %483

466:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #6
  store i32 0, ptr %34, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #6
  %467 = load ptr, ptr %9, align 8, !tbaa !5
  %468 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %467, i32 0, i32 3
  %469 = load ptr, ptr %468, align 8, !tbaa !15
  %470 = load ptr, ptr %9, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %33, i32 0, i32 0
  %472 = invoke noundef i32 %469(ptr noundef %470, i64 noundef 3735928559, ptr noundef %471)
          to label %473 unwind label %487

473:                                              ; preds = %466
  store i32 %472, ptr %35, align 4, !tbaa !14
  %474 = 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.348, ptr noundef null)
          to label %475 unwind label %487

475:                                              ; preds = %473
  %476 = icmp eq i32 %474, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  br i1 %476, label %477, label %491

477:                                              ; preds = %475
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %478 unwind label %483

478:                                              ; preds = %477
  store i32 1, ptr %15, align 4
  br label %1712

479:                                              ; preds = %454
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %11, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %12, align 4
  br label %1723

483:                                              ; preds = %890, %791, %780, %774, %772, %763, %751, %745, %743, %734, %722, %716, %714, %705, %693, %687, %685, %676, %664, %658, %656, %647, %639, %633, %631, %622, %611, %605, %603, %594, %577, %571, %569, %560, %549, %543, %541, %536, %531, %529, %523, %521, %512, %505, %499, %497, %493, %477, %464, %458, %456
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %11, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %12, align 4
  br label %1722

487:                                              ; preds = %473, %466
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %11, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #6
  br label %1722

491:                                              ; preds = %475
  br label %492

492:                                              ; preds = %491
  br label %493

493:                                              ; preds = %492
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %33)
          to label %494 unwind label %483

494:                                              ; preds = %493
  %495 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %33, i32 0, i32 3
  %496 = load ptr, ptr %495, align 8, !tbaa !18
  store ptr %496, ptr %16, align 8, !tbaa !5
  br label %497

497:                                              ; preds = %494
  %498 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %499 unwind label %483

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

505:                                              ; preds = %499
  %506 = getelementptr inbounds %struct.jc_test_fixture, ptr %504, i32 0, i32 4
  store ptr @.str.3, ptr %506, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %507 unwind label %483

507:                                              ; preds = %505
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #6
  store i32 0, ptr %36, align 4, !tbaa !14
  %508 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %33, i32 0, i32 2
  %509 = 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) %36, ptr noundef nonnull align 4 dereferenceable(4) %508, ptr noundef @.str.46, ptr noundef @.str.275, ptr noundef null)
          to label %510 unwind label %514

510:                                              ; preds = %507
  %511 = icmp eq i32 %509, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  br i1 %511, label %512, label %518

512:                                              ; preds = %510
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %513 unwind label %483

513:                                              ; preds = %512
  store i32 1, ptr %15, align 4
  br label %1712

514:                                              ; preds = %507
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %11, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #6
  br label %1722

518:                                              ; preds = %510
  br label %519

519:                                              ; preds = %518
  br label %520

520:                                              ; preds = %519
  br label %521

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

523:                                              ; preds = %521
  %524 = getelementptr inbounds %struct.jc_test_fixture, ptr %522, i32 0, i32 11
  %525 = load i32, ptr %524, align 8
  %526 = and i32 %525, -16776961
  %527 = or i32 %526, 543744
  store i32 %527, ptr %524, align 8
  %528 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %529 unwind label %483

529:                                              ; preds = %523
  %530 = getelementptr inbounds %struct.jc_test_fixture, ptr %528, i32 0, i32 4
  store ptr @.str.3, ptr %530, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %531 unwind label %483

531:                                              ; preds = %529
  %532 = load ptr, ptr %16, align 8, !tbaa !5
  %533 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %532, ptr noundef @.str.276, ptr noundef @.str.277)
          to label %534 unwind label %483

534:                                              ; preds = %531
  %535 = icmp eq i32 %533, 0
  br i1 %535, label %536, label %538

536:                                              ; preds = %534
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %537 unwind label %483

537:                                              ; preds = %536
  store i32 1, ptr %15, align 4
  br label %1712

538:                                              ; preds = %534
  br label %539

539:                                              ; preds = %538
  br label %540

540:                                              ; preds = %539
  br label %541

541:                                              ; preds = %540
  %542 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %543 unwind label %483

543:                                              ; preds = %541
  %544 = getelementptr inbounds %struct.jc_test_fixture, ptr %542, i32 0, i32 11
  %545 = load i32, ptr %544, align 8
  %546 = and i32 %545, -16776961
  %547 = or i32 %546, 544000
  store i32 %547, ptr %544, align 8
  %548 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %549 unwind label %483

549:                                              ; preds = %543
  %550 = getelementptr inbounds %struct.jc_test_fixture, ptr %548, i32 0, i32 4
  store ptr @.str.3, ptr %550, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %551 unwind label %483

551:                                              ; preds = %549
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #6
  store i32 -559038737, ptr %37, align 4, !tbaa !14
  %552 = load ptr, ptr %16, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %552, i32 0, i32 1
  %554 = load ptr, ptr %553, align 8, !tbaa !24
  %555 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %554, i32 0, i32 0
  %556 = load ptr, ptr %555, align 8, !tbaa !25
  %557 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 8 dereferenceable(8) %556, ptr noundef @.str.108, ptr noundef @.str.278)
          to label %558 unwind label %562

558:                                              ; preds = %551
  %559 = icmp eq i32 %557, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  br i1 %559, label %560, label %566

560:                                              ; preds = %558
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %561 unwind label %483

561:                                              ; preds = %560
  store i32 1, ptr %15, align 4
  br label %1712

562:                                              ; preds = %551
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %11, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #6
  br label %1722

566:                                              ; preds = %558
  br label %567

567:                                              ; preds = %566
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568
  %570 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %571 unwind label %483

571:                                              ; preds = %569
  %572 = getelementptr inbounds %struct.jc_test_fixture, ptr %570, i32 0, i32 11
  %573 = load i32, ptr %572, align 8
  %574 = and i32 %573, -16776961
  %575 = or i32 %574, 544256
  store i32 %575, ptr %572, align 8
  %576 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %577 unwind label %483

577:                                              ; preds = %571
  %578 = getelementptr inbounds %struct.jc_test_fixture, ptr %576, i32 0, i32 4
  store ptr @.str.3, ptr %578, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %579 unwind label %483

579:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #6
  %580 = load ptr, ptr %6, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %580, i32 0, i32 1
  %582 = load ptr, ptr %581, align 8, !tbaa !27
  %583 = load ptr, ptr %6, align 8, !tbaa !5
  %584 = invoke noundef i32 %582(ptr noundef %583)
          to label %585 unwind label %596

585:                                              ; preds = %579
  store i32 %584, ptr %38, align 4, !tbaa !14
  %586 = load ptr, ptr %16, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %586, i32 0, i32 1
  %588 = load ptr, ptr %587, align 8, !tbaa !24
  %589 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %588, i32 0, i32 1
  %590 = load ptr, ptr %589, align 8, !tbaa !29
  %591 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %590, ptr noundef @.str.76, ptr noundef @.str.279)
          to label %592 unwind label %596

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

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

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

596:                                              ; preds = %585, %579
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %11, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #6
  br label %1722

600:                                              ; preds = %592
  br label %601

601:                                              ; preds = %600
  br label %602

602:                                              ; preds = %601
  br label %603

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

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

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

613:                                              ; preds = %611
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #6
  store i32 0, ptr %39, align 4, !tbaa !14
  %614 = load ptr, ptr %16, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %614, i32 0, i32 1
  %616 = load ptr, ptr %615, align 8, !tbaa !24
  %617 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %616, i32 0, i32 3
  %618 = load ptr, ptr %617, align 8, !tbaa !30
  %619 = 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) %39, ptr noundef nonnull align 4 dereferenceable(4) %618, ptr noundef @.str.46, ptr noundef @.str.280, ptr noundef null)
          to label %620 unwind label %624

620:                                              ; preds = %613
  %621 = icmp eq i32 %619, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #6
  br i1 %621, label %622, label %628

622:                                              ; preds = %620
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %623 unwind label %483

623:                                              ; preds = %622
  store i32 1, ptr %15, align 4
  br label %1712

624:                                              ; preds = %613
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %11, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #6
  br label %1722

628:                                              ; preds = %620
  br label %629

629:                                              ; preds = %628
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630
  %632 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %633 unwind label %483

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

639:                                              ; preds = %633
  %640 = getelementptr inbounds %struct.jc_test_fixture, ptr %638, i32 0, i32 4
  store ptr @.str.3, ptr %640, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %641 unwind label %483

641:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #6
  store i32 5858, ptr %40, align 4, !tbaa !14
  %642 = load ptr, ptr %16, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %642, i32 0, i32 3
  %644 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %40, ptr noundef nonnull align 4 dereferenceable(4) %643, ptr noundef @.str.349, ptr noundef @.str.350)
          to label %645 unwind label %649

645:                                              ; preds = %641
  %646 = icmp eq i32 %644, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  br i1 %646, label %647, label %653

647:                                              ; preds = %645
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %648 unwind label %483

648:                                              ; preds = %647
  store i32 1, ptr %15, align 4
  br label %1712

649:                                              ; preds = %641
  %650 = landingpad { ptr, i32 }
          cleanup
  %651 = extractvalue { ptr, i32 } %650, 0
  store ptr %651, ptr %11, align 8
  %652 = extractvalue { ptr, i32 } %650, 1
  store i32 %652, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  br label %1722

653:                                              ; preds = %645
  br label %654

654:                                              ; preds = %653
  br label %655

655:                                              ; preds = %654
  br label %656

656:                                              ; preds = %655
  %657 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %658 unwind label %483

658:                                              ; preds = %656
  %659 = getelementptr inbounds %struct.jc_test_fixture, ptr %657, i32 0, i32 11
  %660 = load i32, ptr %659, align 8
  %661 = and i32 %660, -16776961
  %662 = or i32 %661, 545024
  store i32 %662, ptr %659, align 8
  %663 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %664 unwind label %483

664:                                              ; preds = %658
  %665 = getelementptr inbounds %struct.jc_test_fixture, ptr %663, i32 0, i32 4
  store ptr @.str.3, ptr %665, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %666 unwind label %483

666:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #6
  store i32 251666341, ptr %41, align 4, !tbaa !14
  %667 = load ptr, ptr %16, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %667, i32 0, i32 1
  %669 = load ptr, ptr %668, align 8, !tbaa !24
  %670 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %669, i32 0, i32 4
  %671 = load ptr, ptr %670, align 8, !tbaa !31
  %672 = getelementptr inbounds i64, ptr %671, i64 0
  %673 = 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) %672, ptr noundef @.str.281, ptr noundef @.str.282)
          to label %674 unwind label %678

674:                                              ; preds = %666
  %675 = icmp eq i32 %673, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  br i1 %675, label %676, label %682

676:                                              ; preds = %674
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %677 unwind label %483

677:                                              ; preds = %676
  store i32 1, ptr %15, align 4
  br label %1712

678:                                              ; preds = %666
  %679 = landingpad { ptr, i32 }
          cleanup
  %680 = extractvalue { ptr, i32 } %679, 0
  store ptr %680, ptr %11, align 8
  %681 = extractvalue { ptr, i32 } %679, 1
  store i32 %681, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  br label %1722

682:                                              ; preds = %674
  br label %683

683:                                              ; preds = %682
  br label %684

684:                                              ; preds = %683
  br label %685

685:                                              ; preds = %684
  %686 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %687 unwind label %483

687:                                              ; preds = %685
  %688 = getelementptr inbounds %struct.jc_test_fixture, ptr %686, i32 0, i32 11
  %689 = load i32, ptr %688, align 8
  %690 = and i32 %689, -16776961
  %691 = or i32 %690, 545280
  store i32 %691, ptr %688, align 8
  %692 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %693 unwind label %483

693:                                              ; preds = %687
  %694 = getelementptr inbounds %struct.jc_test_fixture, ptr %692, i32 0, i32 4
  store ptr @.str.3, ptr %694, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %695 unwind label %483

695:                                              ; preds = %693
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #6
  store i32 268378021, ptr %42, align 4, !tbaa !14
  %696 = load ptr, ptr %16, align 8, !tbaa !5
  %697 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %696, i32 0, i32 1
  %698 = load ptr, ptr %697, align 8, !tbaa !24
  %699 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %698, i32 0, i32 4
  %700 = load ptr, ptr %699, align 8, !tbaa !31
  %701 = getelementptr inbounds i64, ptr %700, i64 1
  %702 = 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) %701, ptr noundef @.str.283, ptr noundef @.str.284)
          to label %703 unwind label %707

703:                                              ; preds = %695
  %704 = icmp eq i32 %702, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  br i1 %704, label %705, label %711

705:                                              ; preds = %703
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %706 unwind label %483

706:                                              ; preds = %705
  store i32 1, ptr %15, align 4
  br label %1712

707:                                              ; preds = %695
  %708 = landingpad { ptr, i32 }
          cleanup
  %709 = extractvalue { ptr, i32 } %708, 0
  store ptr %709, ptr %11, align 8
  %710 = extractvalue { ptr, i32 } %708, 1
  store i32 %710, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  br label %1722

711:                                              ; preds = %703
  br label %712

712:                                              ; preds = %711
  br label %713

713:                                              ; preds = %712
  br label %714

714:                                              ; preds = %713
  %715 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %716 unwind label %483

716:                                              ; preds = %714
  %717 = getelementptr inbounds %struct.jc_test_fixture, ptr %715, i32 0, i32 11
  %718 = load i32, ptr %717, align 8
  %719 = and i32 %718, -16776961
  %720 = or i32 %719, 545536
  store i32 %720, ptr %717, align 8
  %721 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %722 unwind label %483

722:                                              ; preds = %716
  %723 = getelementptr inbounds %struct.jc_test_fixture, ptr %721, i32 0, i32 4
  store ptr @.str.3, ptr %723, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %724 unwind label %483

724:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #6
  store i32 4711, ptr %43, align 4, !tbaa !14
  %725 = load ptr, ptr %16, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %725, i32 0, i32 1
  %727 = load ptr, ptr %726, align 8, !tbaa !24
  %728 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %727, i32 0, i32 5
  %729 = load ptr, ptr %728, align 8, !tbaa !32
  %730 = getelementptr inbounds i32, ptr %729, i64 0
  %731 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %43, ptr noundef nonnull align 4 dereferenceable(4) %730, ptr noundef @.str.285, ptr noundef @.str.286)
          to label %732 unwind label %736

732:                                              ; preds = %724
  %733 = icmp eq i32 %731, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  br i1 %733, label %734, label %740

734:                                              ; preds = %732
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %735 unwind label %483

735:                                              ; preds = %734
  store i32 1, ptr %15, align 4
  br label %1712

736:                                              ; preds = %724
  %737 = landingpad { ptr, i32 }
          cleanup
  %738 = extractvalue { ptr, i32 } %737, 0
  store ptr %738, ptr %11, align 8
  %739 = extractvalue { ptr, i32 } %737, 1
  store i32 %739, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  br label %1722

740:                                              ; preds = %732
  br label %741

741:                                              ; preds = %740
  br label %742

742:                                              ; preds = %741
  br label %743

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

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

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

753:                                              ; preds = %751
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #6
  store i32 1147, ptr %44, align 4, !tbaa !14
  %754 = load ptr, ptr %16, align 8, !tbaa !5
  %755 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %754, i32 0, i32 1
  %756 = load ptr, ptr %755, align 8, !tbaa !24
  %757 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %756, i32 0, i32 5
  %758 = load ptr, ptr %757, align 8, !tbaa !32
  %759 = getelementptr inbounds i32, ptr %758, i64 1
  %760 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %44, ptr noundef nonnull align 4 dereferenceable(4) %759, ptr noundef @.str.287, ptr noundef @.str.288)
          to label %761 unwind label %765

761:                                              ; preds = %753
  %762 = icmp eq i32 %760, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  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 %483

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

765:                                              ; preds = %753
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %11, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #6
  br label %1722

769:                                              ; preds = %761
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  %773 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %774 unwind label %483

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

780:                                              ; preds = %774
  %781 = getelementptr inbounds %struct.jc_test_fixture, ptr %779, i32 0, i32 4
  store ptr @.str.3, ptr %781, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %782 unwind label %483

782:                                              ; preds = %780
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #6
  store i32 2, ptr %45, align 4, !tbaa !14
  %783 = load ptr, ptr %16, align 8, !tbaa !5
  %784 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %783, i32 0, i32 1
  %785 = load ptr, ptr %784, align 8, !tbaa !24
  %786 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %785, i32 0, i32 2
  %787 = load ptr, ptr %786, align 8, !tbaa !33
  %788 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 4 dereferenceable(4) %787, ptr noundef @.str.138, ptr noundef @.str.289)
          to label %789 unwind label %793

789:                                              ; preds = %782
  %790 = icmp eq i32 %788, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #6
  br i1 %790, label %791, label %797

791:                                              ; preds = %789
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %792 unwind label %483

792:                                              ; preds = %791
  store i32 1, ptr %15, align 4
  br label %1712

793:                                              ; preds = %782
  %794 = landingpad { ptr, i32 }
          cleanup
  %795 = extractvalue { ptr, i32 } %794, 0
  store ptr %795, ptr %11, align 8
  %796 = extractvalue { ptr, i32 } %794, 1
  store i32 %796, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #6
  br label %1722

797:                                              ; preds = %789
  br label %798

798:                                              ; preds = %797
  br label %799

799:                                              ; preds = %798
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #6
  store i32 0, ptr %46, align 4, !tbaa !14
  br label %800

800:                                              ; preds = %838, %799
  %801 = load i32, ptr %46, align 4, !tbaa !14
  %802 = icmp ult i32 %801, 4711
  br i1 %802, label %804, label %803

803:                                              ; preds = %800
  store i32 36, ptr %15, align 4
  br label %841

804:                                              ; preds = %800
  br label %805

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

807:                                              ; preds = %805
  %808 = getelementptr inbounds %struct.jc_test_fixture, ptr %806, i32 0, i32 11
  %809 = load i32, ptr %808, align 8
  %810 = and i32 %809, -16776961
  %811 = or i32 %810, 546816
  store i32 %811, ptr %808, align 8
  %812 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %813 unwind label %827

813:                                              ; preds = %807
  %814 = getelementptr inbounds %struct.jc_test_fixture, ptr %812, i32 0, i32 4
  store ptr @.str.3, ptr %814, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %815 unwind label %827

815:                                              ; preds = %813
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #6
  store i32 77, ptr %47, align 4, !tbaa !14
  %816 = load ptr, ptr %16, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %816, i32 0, i32 2
  %818 = load ptr, ptr %817, align 8, !tbaa !35
  %819 = load i32, ptr %46, align 4, !tbaa !14
  %820 = zext i32 %819 to i64
  %821 = getelementptr inbounds i8, ptr %818, i64 %820
  %822 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIihEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 1 dereferenceable(1) %821, ptr noundef @.str.351, ptr noundef @.str.352)
          to label %823 unwind label %831

823:                                              ; preds = %815
  %824 = icmp eq i32 %822, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  br i1 %824, label %825, label %835

825:                                              ; preds = %823
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %826 unwind label %827

826:                                              ; preds = %825
  store i32 1, ptr %15, align 4
  br label %841

827:                                              ; preds = %825, %813, %807, %805
  %828 = landingpad { ptr, i32 }
          cleanup
  %829 = extractvalue { ptr, i32 } %828, 0
  store ptr %829, ptr %11, align 8
  %830 = extractvalue { ptr, i32 } %828, 1
  store i32 %830, ptr %12, align 4
  br label %843

831:                                              ; preds = %815
  %832 = landingpad { ptr, i32 }
          cleanup
  %833 = extractvalue { ptr, i32 } %832, 0
  store ptr %833, ptr %11, align 8
  %834 = extractvalue { ptr, i32 } %832, 1
  store i32 %834, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #6
  br label %843

835:                                              ; preds = %823
  br label %836

836:                                              ; preds = %835
  br label %837

837:                                              ; preds = %836
  br label %838

838:                                              ; preds = %837
  %839 = load i32, ptr %46, align 4, !tbaa !14
  %840 = add i32 %839, 1
  store i32 %840, ptr %46, align 4, !tbaa !14
  br label %800, !llvm.loop !37

841:                                              ; preds = %826, %803
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #6
  %842 = load i32, ptr %15, align 4
  switch i32 %842, label %1712 [
    i32 36, label %844
  ]

843:                                              ; preds = %831, %827
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #6
  br label %1722

844:                                              ; preds = %841
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #6
  store i32 0, ptr %48, align 4, !tbaa !14
  br label %845

845:                                              ; preds = %884, %844
  %846 = load i32, ptr %48, align 4, !tbaa !14
  %847 = icmp ult i32 %846, 1147
  br i1 %847, label %849, label %848

848:                                              ; preds = %845
  store i32 41, ptr %15, align 4
  br label %887

849:                                              ; preds = %845
  br label %850

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

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

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

860:                                              ; preds = %858
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #6
  store i32 13, ptr %49, align 4, !tbaa !14
  %861 = load ptr, ptr %16, align 8, !tbaa !5
  %862 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %861, i32 0, i32 2
  %863 = load ptr, ptr %862, align 8, !tbaa !35
  %864 = load i32, ptr %48, align 4, !tbaa !14
  %865 = add i32 4711, %864
  %866 = zext i32 %865 to i64
  %867 = getelementptr inbounds i8, ptr %863, i64 %866
  %868 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIihEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %49, ptr noundef nonnull align 1 dereferenceable(1) %867, ptr noundef @.str.353, ptr noundef @.str.354)
          to label %869 unwind label %877

869:                                              ; preds = %860
  %870 = icmp eq i32 %868, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  br i1 %870, label %871, label %881

871:                                              ; preds = %869
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %872 unwind label %873

872:                                              ; preds = %871
  store i32 1, ptr %15, align 4
  br label %887

873:                                              ; preds = %871, %858, %852, %850
  %874 = landingpad { ptr, i32 }
          cleanup
  %875 = extractvalue { ptr, i32 } %874, 0
  store ptr %875, ptr %11, align 8
  %876 = extractvalue { ptr, i32 } %874, 1
  store i32 %876, ptr %12, align 4
  br label %889

877:                                              ; preds = %860
  %878 = landingpad { ptr, i32 }
          cleanup
  %879 = extractvalue { ptr, i32 } %878, 0
  store ptr %879, ptr %11, align 8
  %880 = extractvalue { ptr, i32 } %878, 1
  store i32 %880, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #6
  br label %889

881:                                              ; preds = %869
  br label %882

882:                                              ; preds = %881
  br label %883

883:                                              ; preds = %882
  br label %884

884:                                              ; preds = %883
  %885 = load i32, ptr %48, align 4, !tbaa !14
  %886 = add i32 %885, 1
  store i32 %886, ptr %48, align 4, !tbaa !14
  br label %845, !llvm.loop !39

887:                                              ; preds = %872, %848
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  %888 = load i32, ptr %15, align 4
  switch i32 %888, label %1712 [
    i32 41, label %890
  ]

889:                                              ; preds = %877, %873
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #6
  br label %1722

890:                                              ; preds = %887
  %891 = load ptr, ptr %16, align 8, !tbaa !5
  %892 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %891, i32 0, i32 0
  %893 = load ptr, ptr %892, align 8, !tbaa !22
  %894 = load ptr, ptr %16, align 8, !tbaa !5
  %895 = invoke noundef i32 %893(ptr noundef %894)
          to label %896 unwind label %483

896:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 40, ptr %50) #6
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50)
          to label %897 unwind label %921

897:                                              ; preds = %896
  br label %898

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

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

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

908:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #6
  store i32 0, ptr %51, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #6
  %909 = load ptr, ptr %9, align 8, !tbaa !5
  %910 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %909, i32 0, i32 3
  %911 = load ptr, ptr %910, align 8, !tbaa !15
  %912 = load ptr, ptr %9, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %50, i32 0, i32 0
  %914 = invoke noundef i32 %911(ptr noundef %912, i64 noundef 3199065839, ptr noundef %913)
          to label %915 unwind label %929

915:                                              ; preds = %908
  store i32 %914, ptr %52, align 4, !tbaa !14
  %916 = 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) %51, ptr noundef nonnull align 4 dereferenceable(4) %52, ptr noundef @.str.46, ptr noundef @.str.355, ptr noundef null)
          to label %917 unwind label %929

917:                                              ; preds = %915
  %918 = icmp eq i32 %916, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  br i1 %918, label %919, label %933

919:                                              ; preds = %917
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %920 unwind label %925

920:                                              ; preds = %919
  store i32 1, ptr %15, align 4
  br label %1711

921:                                              ; preds = %896
  %922 = landingpad { ptr, i32 }
          cleanup
  %923 = extractvalue { ptr, i32 } %922, 0
  store ptr %923, ptr %11, align 8
  %924 = extractvalue { ptr, i32 } %922, 1
  store i32 %924, ptr %12, align 4
  br label %1721

925:                                              ; preds = %1334, %1235, %1224, %1218, %1216, %1207, %1195, %1189, %1187, %1178, %1166, %1160, %1158, %1149, %1137, %1131, %1129, %1120, %1108, %1102, %1100, %1091, %1083, %1077, %1075, %1066, %1053, %1047, %1045, %1036, %1019, %1013, %1011, %1002, %991, %985, %983, %978, %973, %971, %965, %963, %954, %947, %941, %939, %935, %919, %906, %900, %898
  %926 = landingpad { ptr, i32 }
          cleanup
  %927 = extractvalue { ptr, i32 } %926, 0
  store ptr %927, ptr %11, align 8
  %928 = extractvalue { ptr, i32 } %926, 1
  store i32 %928, ptr %12, align 4
  br label %1720

929:                                              ; preds = %915, %908
  %930 = landingpad { ptr, i32 }
          cleanup
  %931 = extractvalue { ptr, i32 } %930, 0
  store ptr %931, ptr %11, align 8
  %932 = extractvalue { ptr, i32 } %930, 1
  store i32 %932, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #6
  br label %1720

933:                                              ; preds = %917
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %50)
          to label %936 unwind label %925

936:                                              ; preds = %935
  %937 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %50, i32 0, i32 3
  %938 = load ptr, ptr %937, align 8, !tbaa !18
  store ptr %938, ptr %16, align 8, !tbaa !5
  br label %939

939:                                              ; preds = %936
  %940 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %941 unwind label %925

941:                                              ; preds = %939
  %942 = getelementptr inbounds %struct.jc_test_fixture, ptr %940, i32 0, i32 11
  %943 = load i32, ptr %942, align 8
  %944 = and i32 %943, -16776961
  %945 = or i32 %944, 549888
  store i32 %945, ptr %942, align 8
  %946 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %947 unwind label %925

947:                                              ; preds = %941
  %948 = getelementptr inbounds %struct.jc_test_fixture, ptr %946, i32 0, i32 4
  store ptr @.str.3, ptr %948, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %949 unwind label %925

949:                                              ; preds = %947
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #6
  store i32 0, ptr %53, align 4, !tbaa !14
  %950 = getelementptr inbounds %struct.TestAsyncGetBlockComplete, ptr %50, i32 0, i32 2
  %951 = 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) %53, ptr noundef nonnull align 4 dereferenceable(4) %950, ptr noundef @.str.46, ptr noundef @.str.356, ptr noundef null)
          to label %952 unwind label %956

952:                                              ; preds = %949
  %953 = icmp eq i32 %951, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  br i1 %953, label %954, label %960

954:                                              ; preds = %952
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %955 unwind label %925

955:                                              ; preds = %954
  store i32 1, ptr %15, align 4
  br label %1711

956:                                              ; preds = %949
  %957 = landingpad { ptr, i32 }
          cleanup
  %958 = extractvalue { ptr, i32 } %957, 0
  store ptr %958, ptr %11, align 8
  %959 = extractvalue { ptr, i32 } %957, 1
  store i32 %959, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #6
  br label %1720

960:                                              ; preds = %952
  br label %961

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961
  br label %963

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

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

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

973:                                              ; preds = %971
  %974 = load ptr, ptr %16, align 8, !tbaa !5
  %975 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %974, ptr noundef @.str.276, ptr noundef @.str.277)
          to label %976 unwind label %925

976:                                              ; preds = %973
  %977 = icmp eq i32 %975, 0
  br i1 %977, label %978, label %980

978:                                              ; preds = %976
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %979 unwind label %925

979:                                              ; preds = %978
  store i32 1, ptr %15, align 4
  br label %1711

980:                                              ; preds = %976
  br label %981

981:                                              ; preds = %980
  br label %982

982:                                              ; preds = %981
  br label %983

983:                                              ; preds = %982
  %984 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %985 unwind label %925

985:                                              ; preds = %983
  %986 = getelementptr inbounds %struct.jc_test_fixture, ptr %984, i32 0, i32 11
  %987 = load i32, ptr %986, align 8
  %988 = and i32 %987, -16776961
  %989 = or i32 %988, 550400
  store i32 %989, ptr %986, align 8
  %990 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %991 unwind label %925

991:                                              ; preds = %985
  %992 = getelementptr inbounds %struct.jc_test_fixture, ptr %990, i32 0, i32 4
  store ptr @.str.3, ptr %992, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %993 unwind label %925

993:                                              ; preds = %991
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  store i32 -1095901457, ptr %54, align 4, !tbaa !14
  %994 = load ptr, ptr %16, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %994, i32 0, i32 1
  %996 = load ptr, ptr %995, align 8, !tbaa !24
  %997 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %996, i32 0, i32 0
  %998 = load ptr, ptr %997, align 8, !tbaa !25
  %999 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef nonnull align 8 dereferenceable(8) %998, ptr noundef @.str.357, ptr noundef @.str.278)
          to label %1000 unwind label %1004

1000:                                             ; preds = %993
  %1001 = icmp eq i32 %999, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  br i1 %1001, label %1002, label %1008

1002:                                             ; preds = %1000
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1003 unwind label %925

1003:                                             ; preds = %1002
  store i32 1, ptr %15, align 4
  br label %1711

1004:                                             ; preds = %993
  %1005 = landingpad { ptr, i32 }
          cleanup
  %1006 = extractvalue { ptr, i32 } %1005, 0
  store ptr %1006, ptr %11, align 8
  %1007 = extractvalue { ptr, i32 } %1005, 1
  store i32 %1007, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  br label %1720

1008:                                             ; preds = %1000
  br label %1009

1009:                                             ; preds = %1008
  br label %1010

1010:                                             ; preds = %1009
  br label %1011

1011:                                             ; preds = %1010
  %1012 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1013 unwind label %925

1013:                                             ; preds = %1011
  %1014 = getelementptr inbounds %struct.jc_test_fixture, ptr %1012, i32 0, i32 11
  %1015 = load i32, ptr %1014, align 8
  %1016 = and i32 %1015, -16776961
  %1017 = or i32 %1016, 550656
  store i32 %1017, ptr %1014, align 8
  %1018 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1019 unwind label %925

1019:                                             ; preds = %1013
  %1020 = getelementptr inbounds %struct.jc_test_fixture, ptr %1018, i32 0, i32 4
  store ptr @.str.3, ptr %1020, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1021 unwind label %925

1021:                                             ; preds = %1019
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #6
  %1022 = load ptr, ptr %6, align 8, !tbaa !5
  %1023 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %1022, i32 0, i32 1
  %1024 = load ptr, ptr %1023, align 8, !tbaa !27
  %1025 = load ptr, ptr %6, align 8, !tbaa !5
  %1026 = invoke noundef i32 %1024(ptr noundef %1025)
          to label %1027 unwind label %1038

1027:                                             ; preds = %1021
  store i32 %1026, ptr %55, align 4, !tbaa !14
  %1028 = load ptr, ptr %16, align 8, !tbaa !5
  %1029 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1028, i32 0, i32 1
  %1030 = load ptr, ptr %1029, align 8, !tbaa !24
  %1031 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1030, i32 0, i32 1
  %1032 = load ptr, ptr %1031, align 8, !tbaa !29
  %1033 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef nonnull align 4 dereferenceable(4) %1032, ptr noundef @.str.76, ptr noundef @.str.279)
          to label %1034 unwind label %1038

1034:                                             ; preds = %1027
  %1035 = icmp eq i32 %1033, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  br i1 %1035, label %1036, label %1042

1036:                                             ; preds = %1034
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1037 unwind label %925

1037:                                             ; preds = %1036
  store i32 1, ptr %15, align 4
  br label %1711

1038:                                             ; preds = %1027, %1021
  %1039 = landingpad { ptr, i32 }
          cleanup
  %1040 = extractvalue { ptr, i32 } %1039, 0
  store ptr %1040, ptr %11, align 8
  %1041 = extractvalue { ptr, i32 } %1039, 1
  store i32 %1041, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  br label %1720

1042:                                             ; preds = %1034
  br label %1043

1043:                                             ; preds = %1042
  br label %1044

1044:                                             ; preds = %1043
  br label %1045

1045:                                             ; preds = %1044
  %1046 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1047 unwind label %925

1047:                                             ; preds = %1045
  %1048 = getelementptr inbounds %struct.jc_test_fixture, ptr %1046, i32 0, i32 11
  %1049 = load i32, ptr %1048, align 8
  %1050 = and i32 %1049, -16776961
  %1051 = or i32 %1050, 550912
  store i32 %1051, ptr %1048, align 8
  %1052 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1053 unwind label %925

1053:                                             ; preds = %1047
  %1054 = getelementptr inbounds %struct.jc_test_fixture, ptr %1052, i32 0, i32 4
  store ptr @.str.3, ptr %1054, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1055 unwind label %925

1055:                                             ; preds = %1053
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #6
  %1056 = invoke i32 @Longtail_GetLZ4DefaultQuality()
          to label %1057 unwind label %1068

1057:                                             ; preds = %1055
  store i32 %1056, ptr %56, align 4, !tbaa !14
  %1058 = load ptr, ptr %16, align 8, !tbaa !5
  %1059 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1058, i32 0, i32 1
  %1060 = load ptr, ptr %1059, align 8, !tbaa !24
  %1061 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1060, i32 0, i32 3
  %1062 = load ptr, ptr %1061, align 8, !tbaa !30
  %1063 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %56, ptr noundef nonnull align 4 dereferenceable(4) %1062, ptr noundef @.str.358, ptr noundef @.str.280)
          to label %1064 unwind label %1068

1064:                                             ; preds = %1057
  %1065 = icmp eq i32 %1063, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  br i1 %1065, label %1066, label %1072

1066:                                             ; preds = %1064
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1067 unwind label %925

1067:                                             ; preds = %1066
  store i32 1, ptr %15, align 4
  br label %1711

1068:                                             ; preds = %1057, %1055
  %1069 = landingpad { ptr, i32 }
          cleanup
  %1070 = extractvalue { ptr, i32 } %1069, 0
  store ptr %1070, ptr %11, align 8
  %1071 = extractvalue { ptr, i32 } %1069, 1
  store i32 %1071, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  br label %1720

1072:                                             ; preds = %1064
  br label %1073

1073:                                             ; preds = %1072
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

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

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

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

1085:                                             ; preds = %1083
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #6
  store i32 5858, ptr %57, align 4, !tbaa !14
  %1086 = load ptr, ptr %16, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1086, i32 0, i32 3
  %1088 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %57, ptr noundef nonnull align 4 dereferenceable(4) %1087, ptr noundef @.str.349, ptr noundef @.str.350)
          to label %1089 unwind label %1093

1089:                                             ; preds = %1085
  %1090 = icmp eq i32 %1088, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  br i1 %1090, label %1091, label %1097

1091:                                             ; preds = %1089
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1092 unwind label %925

1092:                                             ; preds = %1091
  store i32 1, ptr %15, align 4
  br label %1711

1093:                                             ; preds = %1085
  %1094 = landingpad { ptr, i32 }
          cleanup
  %1095 = extractvalue { ptr, i32 } %1094, 0
  store ptr %1095, ptr %11, align 8
  %1096 = extractvalue { ptr, i32 } %1094, 1
  store i32 %1096, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  br label %1720

1097:                                             ; preds = %1089
  br label %1098

1098:                                             ; preds = %1097
  br label %1099

1099:                                             ; preds = %1098
  br label %1100

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

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

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

1110:                                             ; preds = %1108
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #6
  store i32 268378021, ptr %58, align 4, !tbaa !14
  %1111 = load ptr, ptr %16, align 8, !tbaa !5
  %1112 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1111, i32 0, i32 1
  %1113 = load ptr, ptr %1112, align 8, !tbaa !24
  %1114 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1113, i32 0, i32 4
  %1115 = load ptr, ptr %1114, align 8, !tbaa !31
  %1116 = getelementptr inbounds i64, ptr %1115, i64 0
  %1117 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %58, ptr noundef nonnull align 8 dereferenceable(8) %1116, ptr noundef @.str.283, ptr noundef @.str.282)
          to label %1118 unwind label %1122

1118:                                             ; preds = %1110
  %1119 = icmp eq i32 %1117, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #6
  br i1 %1119, label %1120, label %1126

1120:                                             ; preds = %1118
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1121 unwind label %925

1121:                                             ; preds = %1120
  store i32 1, ptr %15, align 4
  br label %1711

1122:                                             ; preds = %1110
  %1123 = landingpad { ptr, i32 }
          cleanup
  %1124 = extractvalue { ptr, i32 } %1123, 0
  store ptr %1124, ptr %11, align 8
  %1125 = extractvalue { ptr, i32 } %1123, 1
  store i32 %1125, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #6
  br label %1720

1126:                                             ; preds = %1118
  br label %1127

1127:                                             ; preds = %1126
  br label %1128

1128:                                             ; preds = %1127
  br label %1129

1129:                                             ; preds = %1128
  %1130 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1131 unwind label %925

1131:                                             ; preds = %1129
  %1132 = getelementptr inbounds %struct.jc_test_fixture, ptr %1130, i32 0, i32 11
  %1133 = load i32, ptr %1132, align 8
  %1134 = and i32 %1133, -16776961
  %1135 = or i32 %1134, 551680
  store i32 %1135, ptr %1132, align 8
  %1136 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1137 unwind label %925

1137:                                             ; preds = %1131
  %1138 = getelementptr inbounds %struct.jc_test_fixture, ptr %1136, i32 0, i32 4
  store ptr @.str.3, ptr %1138, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1139 unwind label %925

1139:                                             ; preds = %1137
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #6
  store i32 251666341, ptr %59, align 4, !tbaa !14
  %1140 = load ptr, ptr %16, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1140, i32 0, i32 1
  %1142 = load ptr, ptr %1141, align 8, !tbaa !24
  %1143 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1142, i32 0, i32 4
  %1144 = load ptr, ptr %1143, align 8, !tbaa !31
  %1145 = getelementptr inbounds i64, ptr %1144, i64 1
  %1146 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %59, ptr noundef nonnull align 8 dereferenceable(8) %1145, ptr noundef @.str.281, ptr noundef @.str.284)
          to label %1147 unwind label %1151

1147:                                             ; preds = %1139
  %1148 = icmp eq i32 %1146, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  br i1 %1148, label %1149, label %1155

1149:                                             ; preds = %1147
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1150 unwind label %925

1150:                                             ; preds = %1149
  store i32 1, ptr %15, align 4
  br label %1711

1151:                                             ; preds = %1139
  %1152 = landingpad { ptr, i32 }
          cleanup
  %1153 = extractvalue { ptr, i32 } %1152, 0
  store ptr %1153, ptr %11, align 8
  %1154 = extractvalue { ptr, i32 } %1152, 1
  store i32 %1154, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  br label %1720

1155:                                             ; preds = %1147
  br label %1156

1156:                                             ; preds = %1155
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

1158:                                             ; preds = %1157
  %1159 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1160 unwind label %925

1160:                                             ; preds = %1158
  %1161 = getelementptr inbounds %struct.jc_test_fixture, ptr %1159, i32 0, i32 11
  %1162 = load i32, ptr %1161, align 8
  %1163 = and i32 %1162, -16776961
  %1164 = or i32 %1163, 551936
  store i32 %1164, ptr %1161, align 8
  %1165 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1166 unwind label %925

1166:                                             ; preds = %1160
  %1167 = getelementptr inbounds %struct.jc_test_fixture, ptr %1165, i32 0, i32 4
  store ptr @.str.3, ptr %1167, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1168 unwind label %925

1168:                                             ; preds = %1166
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #6
  store i32 1147, ptr %60, align 4, !tbaa !14
  %1169 = load ptr, ptr %16, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1169, i32 0, i32 1
  %1171 = load ptr, ptr %1170, align 8, !tbaa !24
  %1172 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1171, i32 0, i32 5
  %1173 = load ptr, ptr %1172, align 8, !tbaa !32
  %1174 = getelementptr inbounds i32, ptr %1173, i64 0
  %1175 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %60, ptr noundef nonnull align 4 dereferenceable(4) %1174, ptr noundef @.str.287, ptr noundef @.str.286)
          to label %1176 unwind label %1180

1176:                                             ; preds = %1168
  %1177 = icmp eq i32 %1175, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #6
  br i1 %1177, label %1178, label %1184

1178:                                             ; preds = %1176
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1179 unwind label %925

1179:                                             ; preds = %1178
  store i32 1, ptr %15, align 4
  br label %1711

1180:                                             ; preds = %1168
  %1181 = landingpad { ptr, i32 }
          cleanup
  %1182 = extractvalue { ptr, i32 } %1181, 0
  store ptr %1182, ptr %11, align 8
  %1183 = extractvalue { ptr, i32 } %1181, 1
  store i32 %1183, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #6
  br label %1720

1184:                                             ; preds = %1176
  br label %1185

1185:                                             ; preds = %1184
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

1187:                                             ; preds = %1186
  %1188 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1189 unwind label %925

1189:                                             ; preds = %1187
  %1190 = getelementptr inbounds %struct.jc_test_fixture, ptr %1188, i32 0, i32 11
  %1191 = load i32, ptr %1190, align 8
  %1192 = and i32 %1191, -16776961
  %1193 = or i32 %1192, 552192
  store i32 %1193, ptr %1190, align 8
  %1194 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1195 unwind label %925

1195:                                             ; preds = %1189
  %1196 = getelementptr inbounds %struct.jc_test_fixture, ptr %1194, i32 0, i32 4
  store ptr @.str.3, ptr %1196, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1197 unwind label %925

1197:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #6
  store i32 4711, ptr %61, align 4, !tbaa !14
  %1198 = load ptr, ptr %16, align 8, !tbaa !5
  %1199 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1198, i32 0, i32 1
  %1200 = load ptr, ptr %1199, align 8, !tbaa !24
  %1201 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1200, i32 0, i32 5
  %1202 = load ptr, ptr %1201, align 8, !tbaa !32
  %1203 = getelementptr inbounds i32, ptr %1202, i64 1
  %1204 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %61, ptr noundef nonnull align 4 dereferenceable(4) %1203, ptr noundef @.str.285, ptr noundef @.str.288)
          to label %1205 unwind label %1209

1205:                                             ; preds = %1197
  %1206 = icmp eq i32 %1204, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #6
  br i1 %1206, label %1207, label %1213

1207:                                             ; preds = %1205
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1208 unwind label %925

1208:                                             ; preds = %1207
  store i32 1, ptr %15, align 4
  br label %1711

1209:                                             ; preds = %1197
  %1210 = landingpad { ptr, i32 }
          cleanup
  %1211 = extractvalue { ptr, i32 } %1210, 0
  store ptr %1211, ptr %11, align 8
  %1212 = extractvalue { ptr, i32 } %1210, 1
  store i32 %1212, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #6
  br label %1720

1213:                                             ; preds = %1205
  br label %1214

1214:                                             ; preds = %1213
  br label %1215

1215:                                             ; preds = %1214
  br label %1216

1216:                                             ; preds = %1215
  %1217 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1218 unwind label %925

1218:                                             ; preds = %1216
  %1219 = getelementptr inbounds %struct.jc_test_fixture, ptr %1217, i32 0, i32 11
  %1220 = load i32, ptr %1219, align 8
  %1221 = and i32 %1220, -16776961
  %1222 = or i32 %1221, 552448
  store i32 %1222, ptr %1219, align 8
  %1223 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1224 unwind label %925

1224:                                             ; preds = %1218
  %1225 = getelementptr inbounds %struct.jc_test_fixture, ptr %1223, i32 0, i32 4
  store ptr @.str.3, ptr %1225, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1226 unwind label %925

1226:                                             ; preds = %1224
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #6
  store i32 2, ptr %62, align 4, !tbaa !14
  %1227 = load ptr, ptr %16, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1227, i32 0, i32 1
  %1229 = load ptr, ptr %1228, align 8, !tbaa !24
  %1230 = getelementptr inbounds %struct.Longtail_BlockIndex, ptr %1229, i32 0, i32 2
  %1231 = load ptr, ptr %1230, align 8, !tbaa !33
  %1232 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %62, ptr noundef nonnull align 4 dereferenceable(4) %1231, ptr noundef @.str.138, ptr noundef @.str.289)
          to label %1233 unwind label %1237

1233:                                             ; preds = %1226
  %1234 = icmp eq i32 %1232, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  br i1 %1234, label %1235, label %1241

1235:                                             ; preds = %1233
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1236 unwind label %925

1236:                                             ; preds = %1235
  store i32 1, ptr %15, align 4
  br label %1711

1237:                                             ; preds = %1226
  %1238 = landingpad { ptr, i32 }
          cleanup
  %1239 = extractvalue { ptr, i32 } %1238, 0
  store ptr %1239, ptr %11, align 8
  %1240 = extractvalue { ptr, i32 } %1238, 1
  store i32 %1240, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  br label %1720

1241:                                             ; preds = %1233
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

1243:                                             ; preds = %1242
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #6
  store i32 0, ptr %63, align 4, !tbaa !14
  br label %1244

1244:                                             ; preds = %1282, %1243
  %1245 = load i32, ptr %63, align 4, !tbaa !14
  %1246 = icmp ult i32 %1245, 1147
  br i1 %1246, label %1248, label %1247

1247:                                             ; preds = %1244
  store i32 70, ptr %15, align 4
  br label %1285

1248:                                             ; preds = %1244
  br label %1249

1249:                                             ; preds = %1248
  %1250 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1251 unwind label %1271

1251:                                             ; preds = %1249
  %1252 = getelementptr inbounds %struct.jc_test_fixture, ptr %1250, i32 0, i32 11
  %1253 = load i32, ptr %1252, align 8
  %1254 = and i32 %1253, -16776961
  %1255 = or i32 %1254, 553216
  store i32 %1255, ptr %1252, align 8
  %1256 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1257 unwind label %1271

1257:                                             ; preds = %1251
  %1258 = getelementptr inbounds %struct.jc_test_fixture, ptr %1256, i32 0, i32 4
  store ptr @.str.3, ptr %1258, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1259 unwind label %1271

1259:                                             ; preds = %1257
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #6
  store i32 13, ptr %64, align 4, !tbaa !14
  %1260 = load ptr, ptr %16, align 8, !tbaa !5
  %1261 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1260, i32 0, i32 2
  %1262 = load ptr, ptr %1261, align 8, !tbaa !35
  %1263 = load i32, ptr %63, align 4, !tbaa !14
  %1264 = zext i32 %1263 to i64
  %1265 = getelementptr inbounds i8, ptr %1262, i64 %1264
  %1266 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIihEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %64, ptr noundef nonnull align 1 dereferenceable(1) %1265, ptr noundef @.str.353, ptr noundef @.str.352)
          to label %1267 unwind label %1275

1267:                                             ; preds = %1259
  %1268 = icmp eq i32 %1266, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  br i1 %1268, label %1269, label %1279

1269:                                             ; preds = %1267
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1270 unwind label %1271

1270:                                             ; preds = %1269
  store i32 1, ptr %15, align 4
  br label %1285

1271:                                             ; preds = %1269, %1257, %1251, %1249
  %1272 = landingpad { ptr, i32 }
          cleanup
  %1273 = extractvalue { ptr, i32 } %1272, 0
  store ptr %1273, ptr %11, align 8
  %1274 = extractvalue { ptr, i32 } %1272, 1
  store i32 %1274, ptr %12, align 4
  br label %1287

1275:                                             ; preds = %1259
  %1276 = landingpad { ptr, i32 }
          cleanup
  %1277 = extractvalue { ptr, i32 } %1276, 0
  store ptr %1277, ptr %11, align 8
  %1278 = extractvalue { ptr, i32 } %1276, 1
  store i32 %1278, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #6
  br label %1287

1279:                                             ; preds = %1267
  br label %1280

1280:                                             ; preds = %1279
  br label %1281

1281:                                             ; preds = %1280
  br label %1282

1282:                                             ; preds = %1281
  %1283 = load i32, ptr %63, align 4, !tbaa !14
  %1284 = add i32 %1283, 1
  store i32 %1284, ptr %63, align 4, !tbaa !14
  br label %1244, !llvm.loop !40

1285:                                             ; preds = %1270, %1247
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #6
  %1286 = load i32, ptr %15, align 4
  switch i32 %1286, label %1711 [
    i32 70, label %1288
  ]

1287:                                             ; preds = %1275, %1271
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #6
  br label %1720

1288:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #6
  store i32 0, ptr %65, align 4, !tbaa !14
  br label %1289

1289:                                             ; preds = %1328, %1288
  %1290 = load i32, ptr %65, align 4, !tbaa !14
  %1291 = icmp ult i32 %1290, 4711
  br i1 %1291, label %1293, label %1292

1292:                                             ; preds = %1289
  store i32 75, ptr %15, align 4
  br label %1331

1293:                                             ; preds = %1289
  br label %1294

1294:                                             ; preds = %1293
  %1295 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1296 unwind label %1317

1296:                                             ; preds = %1294
  %1297 = getelementptr inbounds %struct.jc_test_fixture, ptr %1295, i32 0, i32 11
  %1298 = load i32, ptr %1297, align 8
  %1299 = and i32 %1298, -16776961
  %1300 = or i32 %1299, 554240
  store i32 %1300, ptr %1297, align 8
  %1301 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1302 unwind label %1317

1302:                                             ; preds = %1296
  %1303 = getelementptr inbounds %struct.jc_test_fixture, ptr %1301, i32 0, i32 4
  store ptr @.str.3, ptr %1303, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1304 unwind label %1317

1304:                                             ; preds = %1302
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #6
  store i32 77, ptr %66, align 4, !tbaa !14
  %1305 = load ptr, ptr %16, align 8, !tbaa !5
  %1306 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1305, i32 0, i32 2
  %1307 = load ptr, ptr %1306, align 8, !tbaa !35
  %1308 = load i32, ptr %65, align 4, !tbaa !14
  %1309 = add i32 1147, %1308
  %1310 = zext i32 %1309 to i64
  %1311 = getelementptr inbounds i8, ptr %1307, i64 %1310
  %1312 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIihEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %66, ptr noundef nonnull align 1 dereferenceable(1) %1311, ptr noundef @.str.351, ptr noundef @.str.359)
          to label %1313 unwind label %1321

1313:                                             ; preds = %1304
  %1314 = icmp eq i32 %1312, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #6
  br i1 %1314, label %1315, label %1325

1315:                                             ; preds = %1313
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1316 unwind label %1317

1316:                                             ; preds = %1315
  store i32 1, ptr %15, align 4
  br label %1331

1317:                                             ; preds = %1315, %1302, %1296, %1294
  %1318 = landingpad { ptr, i32 }
          cleanup
  %1319 = extractvalue { ptr, i32 } %1318, 0
  store ptr %1319, ptr %11, align 8
  %1320 = extractvalue { ptr, i32 } %1318, 1
  store i32 %1320, ptr %12, align 4
  br label %1333

1321:                                             ; preds = %1304
  %1322 = landingpad { ptr, i32 }
          cleanup
  %1323 = extractvalue { ptr, i32 } %1322, 0
  store ptr %1323, ptr %11, align 8
  %1324 = extractvalue { ptr, i32 } %1322, 1
  store i32 %1324, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #6
  br label %1333

1325:                                             ; preds = %1313
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

1328:                                             ; preds = %1327
  %1329 = load i32, ptr %65, align 4, !tbaa !14
  %1330 = add i32 %1329, 1
  store i32 %1330, ptr %65, align 4, !tbaa !14
  br label %1289, !llvm.loop !41

1331:                                             ; preds = %1316, %1292
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  %1332 = load i32, ptr %15, align 4
  switch i32 %1332, label %1711 [
    i32 75, label %1334
  ]

1333:                                             ; preds = %1321, %1317
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  br label %1720

1334:                                             ; preds = %1331
  %1335 = load ptr, ptr %16, align 8, !tbaa !5
  %1336 = getelementptr inbounds %struct.Longtail_StoredBlock, ptr %1335, i32 0, i32 0
  %1337 = load ptr, ptr %1336, align 8, !tbaa !22
  %1338 = load ptr, ptr %16, align 8, !tbaa !5
  %1339 = invoke noundef i32 %1337(ptr noundef %1338)
          to label %1340 unwind label %925

1340:                                             ; preds = %1334
  call void @llvm.lifetime.start.p0(i64 176, ptr %67) #6
  %1341 = load ptr, ptr %9, align 8, !tbaa !5
  %1342 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1341, i32 0, i32 6
  %1343 = load ptr, ptr %1342, align 8, !tbaa !42
  %1344 = load ptr, ptr %9, align 8, !tbaa !5
  %1345 = invoke noundef i32 %1343(ptr noundef %1344, ptr noundef %67)
          to label %1346 unwind label %1371

1346:                                             ; preds = %1340
  call void @llvm.lifetime.start.p0(i64 176, ptr %68) #6
  %1347 = load ptr, ptr %8, align 8, !tbaa !5
  %1348 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1347, i32 0, i32 6
  %1349 = load ptr, ptr %1348, align 8, !tbaa !42
  %1350 = load ptr, ptr %8, align 8, !tbaa !5
  %1351 = invoke noundef i32 %1349(ptr noundef %1350, ptr noundef %68)
          to label %1352 unwind label %1375

1352:                                             ; preds = %1346
  br label %1353

1353:                                             ; preds = %1352
  %1354 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1355 unwind label %1375

1355:                                             ; preds = %1353
  %1356 = getelementptr inbounds %struct.jc_test_fixture, ptr %1354, i32 0, i32 11
  %1357 = load i32, ptr %1356, align 8
  %1358 = and i32 %1357, -16776961
  %1359 = or i32 %1358, 556544
  store i32 %1359, ptr %1356, align 8
  %1360 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1361 unwind label %1375

1361:                                             ; preds = %1355
  %1362 = getelementptr inbounds %struct.jc_test_fixture, ptr %1360, i32 0, i32 4
  store ptr @.str.3, ptr %1362, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1363 unwind label %1375

1363:                                             ; preds = %1361
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #6
  store i32 3, ptr %69, align 4, !tbaa !14
  %1364 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %67, i32 0, i32 0
  %1365 = getelementptr inbounds [22 x i64], ptr %1364, i64 0, i64 0
  %1366 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %69, ptr noundef nonnull align 8 dereferenceable(8) %1365, ptr noundef @.str.192, ptr noundef @.str.360)
          to label %1367 unwind label %1379

1367:                                             ; preds = %1363
  %1368 = icmp eq i32 %1366, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  br i1 %1368, label %1369, label %1383

1369:                                             ; preds = %1367
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1370 unwind label %1375

1370:                                             ; preds = %1369
  store i32 1, ptr %15, align 4
  br label %1710

1371:                                             ; preds = %1340
  %1372 = landingpad { ptr, i32 }
          cleanup
  %1373 = extractvalue { ptr, i32 } %1372, 0
  store ptr %1373, ptr %11, align 8
  %1374 = extractvalue { ptr, i32 } %1372, 1
  store i32 %1374, ptr %12, align 4
  br label %1719

1375:                                             ; preds = %1705, %1698, %1691, %1684, %1677, %1670, %1663, %1652, %1644, %1638, %1636, %1627, %1619, %1613, %1611, %1602, %1594, %1588, %1586, %1577, %1569, %1563, %1561, %1552, %1544, %1538, %1536, %1527, %1519, %1513, %1511, %1502, %1494, %1488, %1486, %1477, %1469, %1463, %1461, %1452, %1444, %1438, %1436, %1427, %1419, %1413, %1411, %1402, %1394, %1388, %1386, %1369, %1361, %1355, %1353, %1346
  %1376 = landingpad { ptr, i32 }
          cleanup
  %1377 = extractvalue { ptr, i32 } %1376, 0
  store ptr %1377, ptr %11, align 8
  %1378 = extractvalue { ptr, i32 } %1376, 1
  store i32 %1378, ptr %12, align 4
  br label %1718

1379:                                             ; preds = %1363
  %1380 = landingpad { ptr, i32 }
          cleanup
  %1381 = extractvalue { ptr, i32 } %1380, 0
  store ptr %1381, ptr %11, align 8
  %1382 = extractvalue { ptr, i32 } %1380, 1
  store i32 %1382, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #6
  br label %1718

1383:                                             ; preds = %1367
  br label %1384

1384:                                             ; preds = %1383
  br label %1385

1385:                                             ; preds = %1384
  br label %1386

1386:                                             ; preds = %1385
  %1387 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1388 unwind label %1375

1388:                                             ; preds = %1386
  %1389 = getelementptr inbounds %struct.jc_test_fixture, ptr %1387, i32 0, i32 11
  %1390 = load i32, ptr %1389, align 8
  %1391 = and i32 %1390, -16776961
  %1392 = or i32 %1391, 556800
  store i32 %1392, ptr %1389, align 8
  %1393 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1394 unwind label %1375

1394:                                             ; preds = %1388
  %1395 = getelementptr inbounds %struct.jc_test_fixture, ptr %1393, i32 0, i32 4
  store ptr @.str.3, ptr %1395, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1396 unwind label %1375

1396:                                             ; preds = %1394
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #6
  store i32 2, ptr %70, align 4, !tbaa !14
  %1397 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %67, i32 0, i32 0
  %1398 = getelementptr inbounds [22 x i64], ptr %1397, i64 0, i64 5
  %1399 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %70, ptr noundef nonnull align 8 dereferenceable(8) %1398, ptr noundef @.str.138, ptr noundef @.str.361)
          to label %1400 unwind label %1404

1400:                                             ; preds = %1396
  %1401 = icmp eq i32 %1399, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #6
  br i1 %1401, label %1402, label %1408

1402:                                             ; preds = %1400
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1403 unwind label %1375

1403:                                             ; preds = %1402
  store i32 1, ptr %15, align 4
  br label %1710

1404:                                             ; preds = %1396
  %1405 = landingpad { ptr, i32 }
          cleanup
  %1406 = extractvalue { ptr, i32 } %1405, 0
  store ptr %1406, ptr %11, align 8
  %1407 = extractvalue { ptr, i32 } %1405, 1
  store i32 %1407, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #6
  br label %1718

1408:                                             ; preds = %1400
  br label %1409

1409:                                             ; preds = %1408
  br label %1410

1410:                                             ; preds = %1409
  br label %1411

1411:                                             ; preds = %1410
  %1412 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1413 unwind label %1375

1413:                                             ; preds = %1411
  %1414 = getelementptr inbounds %struct.jc_test_fixture, ptr %1412, i32 0, i32 11
  %1415 = load i32, ptr %1414, align 8
  %1416 = and i32 %1415, -16776961
  %1417 = or i32 %1416, 557056
  store i32 %1417, ptr %1414, align 8
  %1418 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1419 unwind label %1375

1419:                                             ; preds = %1413
  %1420 = getelementptr inbounds %struct.jc_test_fixture, ptr %1418, i32 0, i32 4
  store ptr @.str.3, ptr %1420, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1421 unwind label %1375

1421:                                             ; preds = %1419
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #6
  store i32 4, ptr %71, align 4, !tbaa !14
  %1422 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %67, i32 0, i32 0
  %1423 = getelementptr inbounds [22 x i64], ptr %1422, i64 0, i64 3
  %1424 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %71, ptr noundef nonnull align 8 dereferenceable(8) %1423, ptr noundef @.str.140, ptr noundef @.str.362)
          to label %1425 unwind label %1429

1425:                                             ; preds = %1421
  %1426 = icmp eq i32 %1424, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  br i1 %1426, label %1427, label %1433

1427:                                             ; preds = %1425
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1428 unwind label %1375

1428:                                             ; preds = %1427
  store i32 1, ptr %15, align 4
  br label %1710

1429:                                             ; preds = %1421
  %1430 = landingpad { ptr, i32 }
          cleanup
  %1431 = extractvalue { ptr, i32 } %1430, 0
  store ptr %1431, ptr %11, align 8
  %1432 = extractvalue { ptr, i32 } %1430, 1
  store i32 %1432, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  br label %1718

1433:                                             ; preds = %1425
  br label %1434

1434:                                             ; preds = %1433
  br label %1435

1435:                                             ; preds = %1434
  br label %1436

1436:                                             ; preds = %1435
  %1437 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1438 unwind label %1375

1438:                                             ; preds = %1436
  %1439 = getelementptr inbounds %struct.jc_test_fixture, ptr %1437, i32 0, i32 11
  %1440 = load i32, ptr %1439, align 8
  %1441 = and i32 %1440, -16776961
  %1442 = or i32 %1441, 557312
  store i32 %1442, ptr %1439, align 8
  %1443 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1444 unwind label %1375

1444:                                             ; preds = %1438
  %1445 = getelementptr inbounds %struct.jc_test_fixture, ptr %1443, i32 0, i32 4
  store ptr @.str.3, ptr %1445, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1446 unwind label %1375

1446:                                             ; preds = %1444
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #6
  store i32 4, ptr %72, align 4, !tbaa !14
  %1447 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %67, i32 0, i32 0
  %1448 = getelementptr inbounds [22 x i64], ptr %1447, i64 0, i64 8
  %1449 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %72, ptr noundef nonnull align 8 dereferenceable(8) %1448, ptr noundef @.str.140, ptr noundef @.str.363)
          to label %1450 unwind label %1454

1450:                                             ; preds = %1446
  %1451 = icmp eq i32 %1449, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #6
  br i1 %1451, label %1452, label %1458

1452:                                             ; preds = %1450
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1453 unwind label %1375

1453:                                             ; preds = %1452
  store i32 1, ptr %15, align 4
  br label %1710

1454:                                             ; preds = %1446
  %1455 = landingpad { ptr, i32 }
          cleanup
  %1456 = extractvalue { ptr, i32 } %1455, 0
  store ptr %1456, ptr %11, align 8
  %1457 = extractvalue { ptr, i32 } %1455, 1
  store i32 %1457, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #6
  br label %1718

1458:                                             ; preds = %1450
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

1460:                                             ; preds = %1459
  br label %1461

1461:                                             ; preds = %1460
  %1462 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1463 unwind label %1375

1463:                                             ; preds = %1461
  %1464 = getelementptr inbounds %struct.jc_test_fixture, ptr %1462, i32 0, i32 11
  %1465 = load i32, ptr %1464, align 8
  %1466 = and i32 %1465, -16776961
  %1467 = or i32 %1466, 557568
  store i32 %1467, ptr %1464, align 8
  %1468 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1469 unwind label %1375

1469:                                             ; preds = %1463
  %1470 = getelementptr inbounds %struct.jc_test_fixture, ptr %1468, i32 0, i32 4
  store ptr @.str.3, ptr %1470, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1471 unwind label %1375

1471:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #6
  store i32 5992, ptr %73, align 4, !tbaa !14
  %1472 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %67, i32 0, i32 0
  %1473 = getelementptr inbounds [22 x i64], ptr %1472, i64 0, i64 4
  %1474 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %73, ptr noundef nonnull align 8 dereferenceable(8) %1473, ptr noundef @.str.364, ptr noundef @.str.365)
          to label %1475 unwind label %1479

1475:                                             ; preds = %1471
  %1476 = icmp eq i32 %1474, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #6
  br i1 %1476, label %1477, label %1483

1477:                                             ; preds = %1475
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1478 unwind label %1375

1478:                                             ; preds = %1477
  store i32 1, ptr %15, align 4
  br label %1710

1479:                                             ; preds = %1471
  %1480 = landingpad { ptr, i32 }
          cleanup
  %1481 = extractvalue { ptr, i32 } %1480, 0
  store ptr %1481, ptr %11, align 8
  %1482 = extractvalue { ptr, i32 } %1480, 1
  store i32 %1482, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #6
  br label %1718

1483:                                             ; preds = %1475
  br label %1484

1484:                                             ; preds = %1483
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485
  %1487 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1488 unwind label %1375

1488:                                             ; preds = %1486
  %1489 = getelementptr inbounds %struct.jc_test_fixture, ptr %1487, i32 0, i32 11
  %1490 = load i32, ptr %1489, align 8
  %1491 = and i32 %1490, -16776961
  %1492 = or i32 %1491, 557824
  store i32 %1492, ptr %1489, align 8
  %1493 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1494 unwind label %1375

1494:                                             ; preds = %1488
  %1495 = getelementptr inbounds %struct.jc_test_fixture, ptr %1493, i32 0, i32 4
  store ptr @.str.3, ptr %1495, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1496 unwind label %1375

1496:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #6
  store i32 11804, ptr %74, align 4, !tbaa !14
  %1497 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %67, i32 0, i32 0
  %1498 = getelementptr inbounds [22 x i64], ptr %1497, i64 0, i64 9
  %1499 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %74, ptr noundef nonnull align 8 dereferenceable(8) %1498, ptr noundef @.str.366, ptr noundef @.str.367)
          to label %1500 unwind label %1504

1500:                                             ; preds = %1496
  %1501 = icmp eq i32 %1499, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  br i1 %1501, label %1502, label %1508

1502:                                             ; preds = %1500
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1503 unwind label %1375

1503:                                             ; preds = %1502
  store i32 1, ptr %15, align 4
  br label %1710

1504:                                             ; preds = %1496
  %1505 = landingpad { ptr, i32 }
          cleanup
  %1506 = extractvalue { ptr, i32 } %1505, 0
  store ptr %1506, ptr %11, align 8
  %1507 = extractvalue { ptr, i32 } %1505, 1
  store i32 %1507, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  br label %1718

1508:                                             ; preds = %1500
  br label %1509

1509:                                             ; preds = %1508
  br label %1510

1510:                                             ; preds = %1509
  br label %1511

1511:                                             ; preds = %1510
  %1512 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1513 unwind label %1375

1513:                                             ; preds = %1511
  %1514 = getelementptr inbounds %struct.jc_test_fixture, ptr %1512, i32 0, i32 11
  %1515 = load i32, ptr %1514, align 8
  %1516 = and i32 %1515, -16776961
  %1517 = or i32 %1516, 558336
  store i32 %1517, ptr %1514, align 8
  %1518 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1519 unwind label %1375

1519:                                             ; preds = %1513
  %1520 = getelementptr inbounds %struct.jc_test_fixture, ptr %1518, i32 0, i32 4
  store ptr @.str.3, ptr %1520, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1521 unwind label %1375

1521:                                             ; preds = %1519
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #6
  store i32 3, ptr %75, align 4, !tbaa !14
  %1522 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %68, i32 0, i32 0
  %1523 = getelementptr inbounds [22 x i64], ptr %1522, i64 0, i64 0
  %1524 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %75, ptr noundef nonnull align 8 dereferenceable(8) %1523, ptr noundef @.str.192, ptr noundef @.str.311)
          to label %1525 unwind label %1529

1525:                                             ; preds = %1521
  %1526 = icmp eq i32 %1524, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  br i1 %1526, label %1527, label %1533

1527:                                             ; preds = %1525
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1528 unwind label %1375

1528:                                             ; preds = %1527
  store i32 1, ptr %15, align 4
  br label %1710

1529:                                             ; preds = %1521
  %1530 = landingpad { ptr, i32 }
          cleanup
  %1531 = extractvalue { ptr, i32 } %1530, 0
  store ptr %1531, ptr %11, align 8
  %1532 = extractvalue { ptr, i32 } %1530, 1
  store i32 %1532, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #6
  br label %1718

1533:                                             ; preds = %1525
  br label %1534

1534:                                             ; preds = %1533
  br label %1535

1535:                                             ; preds = %1534
  br label %1536

1536:                                             ; preds = %1535
  %1537 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1538 unwind label %1375

1538:                                             ; preds = %1536
  %1539 = getelementptr inbounds %struct.jc_test_fixture, ptr %1537, i32 0, i32 11
  %1540 = load i32, ptr %1539, align 8
  %1541 = and i32 %1540, -16776961
  %1542 = or i32 %1541, 558592
  store i32 %1542, ptr %1539, align 8
  %1543 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1544 unwind label %1375

1544:                                             ; preds = %1538
  %1545 = getelementptr inbounds %struct.jc_test_fixture, ptr %1543, i32 0, i32 4
  store ptr @.str.3, ptr %1545, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1546 unwind label %1375

1546:                                             ; preds = %1544
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #6
  store i32 2, ptr %76, align 4, !tbaa !14
  %1547 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %68, i32 0, i32 0
  %1548 = getelementptr inbounds [22 x i64], ptr %1547, i64 0, i64 5
  %1549 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %76, ptr noundef nonnull align 8 dereferenceable(8) %1548, ptr noundef @.str.138, ptr noundef @.str.336)
          to label %1550 unwind label %1554

1550:                                             ; preds = %1546
  %1551 = icmp eq i32 %1549, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #6
  br i1 %1551, label %1552, label %1558

1552:                                             ; preds = %1550
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1553 unwind label %1375

1553:                                             ; preds = %1552
  store i32 1, ptr %15, align 4
  br label %1710

1554:                                             ; preds = %1546
  %1555 = landingpad { ptr, i32 }
          cleanup
  %1556 = extractvalue { ptr, i32 } %1555, 0
  store ptr %1556, ptr %11, align 8
  %1557 = extractvalue { ptr, i32 } %1555, 1
  store i32 %1557, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #6
  br label %1718

1558:                                             ; preds = %1550
  br label %1559

1559:                                             ; preds = %1558
  br label %1560

1560:                                             ; preds = %1559
  br label %1561

1561:                                             ; preds = %1560
  %1562 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1563 unwind label %1375

1563:                                             ; preds = %1561
  %1564 = getelementptr inbounds %struct.jc_test_fixture, ptr %1562, i32 0, i32 11
  %1565 = load i32, ptr %1564, align 8
  %1566 = and i32 %1565, -16776961
  %1567 = or i32 %1566, 558848
  store i32 %1567, ptr %1564, align 8
  %1568 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1569 unwind label %1375

1569:                                             ; preds = %1563
  %1570 = getelementptr inbounds %struct.jc_test_fixture, ptr %1568, i32 0, i32 4
  store ptr @.str.3, ptr %1570, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1571 unwind label %1375

1571:                                             ; preds = %1569
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #6
  store i32 4, ptr %77, align 4, !tbaa !14
  %1572 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %68, i32 0, i32 0
  %1573 = getelementptr inbounds [22 x i64], ptr %1572, i64 0, i64 3
  %1574 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %77, ptr noundef nonnull align 8 dereferenceable(8) %1573, ptr noundef @.str.140, ptr noundef @.str.337)
          to label %1575 unwind label %1579

1575:                                             ; preds = %1571
  %1576 = icmp eq i32 %1574, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  br i1 %1576, label %1577, label %1583

1577:                                             ; preds = %1575
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1578 unwind label %1375

1578:                                             ; preds = %1577
  store i32 1, ptr %15, align 4
  br label %1710

1579:                                             ; preds = %1571
  %1580 = landingpad { ptr, i32 }
          cleanup
  %1581 = extractvalue { ptr, i32 } %1580, 0
  store ptr %1581, ptr %11, align 8
  %1582 = extractvalue { ptr, i32 } %1580, 1
  store i32 %1582, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  br label %1718

1583:                                             ; preds = %1575
  br label %1584

1584:                                             ; preds = %1583
  br label %1585

1585:                                             ; preds = %1584
  br label %1586

1586:                                             ; preds = %1585
  %1587 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1588 unwind label %1375

1588:                                             ; preds = %1586
  %1589 = getelementptr inbounds %struct.jc_test_fixture, ptr %1587, i32 0, i32 11
  %1590 = load i32, ptr %1589, align 8
  %1591 = and i32 %1590, -16776961
  %1592 = or i32 %1591, 559104
  store i32 %1592, ptr %1589, align 8
  %1593 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1594 unwind label %1375

1594:                                             ; preds = %1588
  %1595 = getelementptr inbounds %struct.jc_test_fixture, ptr %1593, i32 0, i32 4
  store ptr @.str.3, ptr %1595, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1596 unwind label %1375

1596:                                             ; preds = %1594
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #6
  store i32 4, ptr %78, align 4, !tbaa !14
  %1597 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %68, i32 0, i32 0
  %1598 = getelementptr inbounds [22 x i64], ptr %1597, i64 0, i64 8
  %1599 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %78, ptr noundef nonnull align 8 dereferenceable(8) %1598, ptr noundef @.str.140, ptr noundef @.str.338)
          to label %1600 unwind label %1604

1600:                                             ; preds = %1596
  %1601 = icmp eq i32 %1599, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #6
  br i1 %1601, label %1602, label %1608

1602:                                             ; preds = %1600
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1603 unwind label %1375

1603:                                             ; preds = %1602
  store i32 1, ptr %15, align 4
  br label %1710

1604:                                             ; preds = %1596
  %1605 = landingpad { ptr, i32 }
          cleanup
  %1606 = extractvalue { ptr, i32 } %1605, 0
  store ptr %1606, ptr %11, align 8
  %1607 = extractvalue { ptr, i32 } %1605, 1
  store i32 %1607, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #6
  br label %1718

1608:                                             ; preds = %1600
  br label %1609

1609:                                             ; preds = %1608
  br label %1610

1610:                                             ; preds = %1609
  br label %1611

1611:                                             ; preds = %1610
  %1612 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1613 unwind label %1375

1613:                                             ; preds = %1611
  %1614 = getelementptr inbounds %struct.jc_test_fixture, ptr %1612, i32 0, i32 11
  %1615 = load i32, ptr %1614, align 8
  %1616 = and i32 %1615, -16776961
  %1617 = or i32 %1616, 559360
  store i32 %1617, ptr %1614, align 8
  %1618 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1619 unwind label %1375

1619:                                             ; preds = %1613
  %1620 = getelementptr inbounds %struct.jc_test_fixture, ptr %1618, i32 0, i32 4
  store ptr @.str.3, ptr %1620, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1621 unwind label %1375

1621:                                             ; preds = %1619
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #6
  store i32 5992, ptr %79, align 4, !tbaa !14
  %1622 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %68, i32 0, i32 0
  %1623 = getelementptr inbounds [22 x i64], ptr %1622, i64 0, i64 4
  %1624 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %79, ptr noundef nonnull align 8 dereferenceable(8) %1623, ptr noundef @.str.364, ptr noundef @.str.339)
          to label %1625 unwind label %1629

1625:                                             ; preds = %1621
  %1626 = icmp eq i32 %1624, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #6
  br i1 %1626, label %1627, label %1633

1627:                                             ; preds = %1625
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1628 unwind label %1375

1628:                                             ; preds = %1627
  store i32 1, ptr %15, align 4
  br label %1710

1629:                                             ; preds = %1621
  %1630 = landingpad { ptr, i32 }
          cleanup
  %1631 = extractvalue { ptr, i32 } %1630, 0
  store ptr %1631, ptr %11, align 8
  %1632 = extractvalue { ptr, i32 } %1630, 1
  store i32 %1632, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #6
  br label %1718

1633:                                             ; preds = %1625
  br label %1634

1634:                                             ; preds = %1633
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635
  %1637 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1638 unwind label %1375

1638:                                             ; preds = %1636
  %1639 = getelementptr inbounds %struct.jc_test_fixture, ptr %1637, i32 0, i32 11
  %1640 = load i32, ptr %1639, align 8
  %1641 = and i32 %1640, -16776961
  %1642 = or i32 %1641, 559616
  store i32 %1642, ptr %1639, align 8
  %1643 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1644 unwind label %1375

1644:                                             ; preds = %1638
  %1645 = getelementptr inbounds %struct.jc_test_fixture, ptr %1643, i32 0, i32 4
  store ptr @.str.3, ptr %1645, align 8, !tbaa !9
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1646 unwind label %1375

1646:                                             ; preds = %1644
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #6
  store i32 5992, ptr %80, align 4, !tbaa !14
  %1647 = getelementptr inbounds %struct.Longtail_BlockStore_Stats, ptr %68, i32 0, i32 0
  %1648 = getelementptr inbounds [22 x i64], ptr %1647, i64 0, i64 9
  %1649 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %80, ptr noundef nonnull align 8 dereferenceable(8) %1648, ptr noundef @.str.364, ptr noundef @.str.340)
          to label %1650 unwind label %1654

1650:                                             ; preds = %1646
  %1651 = icmp eq i32 %1649, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  br i1 %1651, label %1652, label %1658

1652:                                             ; preds = %1650
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1653 unwind label %1375

1653:                                             ; preds = %1652
  store i32 1, ptr %15, align 4
  br label %1710

1654:                                             ; preds = %1646
  %1655 = landingpad { ptr, i32 }
          cleanup
  %1656 = extractvalue { ptr, i32 } %1655, 0
  store ptr %1656, ptr %11, align 8
  %1657 = extractvalue { ptr, i32 } %1655, 1
  store i32 %1657, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  br label %1718

1658:                                             ; preds = %1650
  br label %1659

1659:                                             ; preds = %1658
  br label %1660

1660:                                             ; preds = %1659
  %1661 = load ptr, ptr %9, align 8, !tbaa !5
  %1662 = icmp ne ptr %1661, null
  br i1 %1662, label %1663, label %1667

1663:                                             ; preds = %1660
  %1664 = load ptr, ptr %9, align 8, !tbaa !5
  %1665 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1664, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1665)
          to label %1666 unwind label %1375

1666:                                             ; preds = %1663
  br label %1667

1667:                                             ; preds = %1666, %1660
  %1668 = load ptr, ptr %8, align 8, !tbaa !5
  %1669 = icmp ne ptr %1668, null
  br i1 %1669, label %1670, label %1674

1670:                                             ; preds = %1667
  %1671 = load ptr, ptr %8, align 8, !tbaa !5
  %1672 = getelementptr inbounds %struct.Longtail_BlockStoreAPI, ptr %1671, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1672)
          to label %1673 unwind label %1375

1673:                                             ; preds = %1670
  br label %1674

1674:                                             ; preds = %1673, %1667
  %1675 = load ptr, ptr %7, align 8, !tbaa !5
  %1676 = icmp ne ptr %1675, null
  br i1 %1676, label %1677, label %1681

1677:                                             ; preds = %1674
  %1678 = load ptr, ptr %7, align 8, !tbaa !5
  %1679 = getelementptr inbounds %struct.Longtail_JobAPI, ptr %1678, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1679)
          to label %1680 unwind label %1375

1680:                                             ; preds = %1677
  br label %1681

1681:                                             ; preds = %1680, %1674
  %1682 = load ptr, ptr %6, align 8, !tbaa !5
  %1683 = icmp ne ptr %1682, null
  br i1 %1683, label %1684, label %1688

1684:                                             ; preds = %1681
  %1685 = load ptr, ptr %6, align 8, !tbaa !5
  %1686 = getelementptr inbounds %struct.Longtail_HashAPI, ptr %1685, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1686)
          to label %1687 unwind label %1375

1687:                                             ; preds = %1684
  br label %1688

1688:                                             ; preds = %1687, %1681
  %1689 = load ptr, ptr %5, align 8, !tbaa !5
  %1690 = icmp ne ptr %1689, null
  br i1 %1690, label %1691, label %1695

1691:                                             ; preds = %1688
  %1692 = load ptr, ptr %5, align 8, !tbaa !5
  %1693 = getelementptr inbounds %struct.Longtail_CompressionRegistryAPI, ptr %1692, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1693)
          to label %1694 unwind label %1375

1694:                                             ; preds = %1691
  br label %1695

1695:                                             ; preds = %1694, %1688
  %1696 = load ptr, ptr %4, align 8, !tbaa !5
  %1697 = icmp ne ptr %1696, null
  br i1 %1697, label %1698, label %1702

1698:                                             ; preds = %1695
  %1699 = load ptr, ptr %4, align 8, !tbaa !5
  %1700 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1699, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1700)
          to label %1701 unwind label %1375

1701:                                             ; preds = %1698
  br label %1702

1702:                                             ; preds = %1701, %1695
  %1703 = load ptr, ptr %3, align 8, !tbaa !5
  %1704 = icmp ne ptr %1703, null
  br i1 %1704, label %1705, label %1709

1705:                                             ; preds = %1702
  %1706 = load ptr, ptr %3, align 8, !tbaa !5
  %1707 = getelementptr inbounds %struct.Longtail_StorageAPI, ptr %1706, i32 0, i32 0
  invoke void @Longtail_DisposeAPI(ptr noundef %1707)
          to label %1708 unwind label %1375

1708:                                             ; preds = %1705
  br label %1709

1709:                                             ; preds = %1708, %1702
  store i32 0, ptr %15, align 4
  br label %1710

1710:                                             ; preds = %1709, %1653, %1628, %1603, %1578, %1553, %1528, %1503, %1478, %1453, %1428, %1403, %1370
  call void @llvm.lifetime.end.p0(i64 176, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 176, ptr %67) #6
  br label %1711

1711:                                             ; preds = %1710, %1331, %1285, %1236, %1208, %1179, %1150, %1121, %1092, %1067, %1037, %1003, %979, %955, %920
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %50) #6
  br label %1712

1712:                                             ; preds = %1711, %887, %841, %792, %764, %735, %706, %677, %648, %623, %595, %561, %537, %513, %478
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %33) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %33) #6
  br label %1713

1713:                                             ; preds = %1712, %447, %412
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %29) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  br label %1714

1714:                                             ; preds = %1713, %380, %327
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  br label %1715

1715:                                             ; preds = %1714, %115
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #6
  %1716 = load i32, ptr %15, align 4
  switch i32 %1716, label %1736 [
    i32 0, label %1717
    i32 1, label %1717
  ]

1717:                                             ; preds = %1715, %1715
  ret void

1718:                                             ; preds = %1654, %1629, %1604, %1579, %1554, %1529, %1504, %1479, %1454, %1429, %1404, %1379, %1375
  call void @llvm.lifetime.end.p0(i64 176, ptr %68) #6
  br label %1719

1719:                                             ; preds = %1718, %1371
  call void @llvm.lifetime.end.p0(i64 176, ptr %67) #6
  br label %1720

1720:                                             ; preds = %1719, %1333, %1287, %1237, %1209, %1180, %1151, %1122, %1093, %1068, %1038, %1004, %956, %929, %925
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50) #6
  br label %1721

1721:                                             ; preds = %1720, %921
  call void @llvm.lifetime.end.p0(i64 40, ptr %50) #6
  br label %1722

1722:                                             ; preds = %1721, %889, %843, %793, %765, %736, %707, %678, %649, %624, %596, %562, %514, %487, %483
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %33) #6
  br label %1723

1723:                                             ; preds = %1722, %479
  call void @llvm.lifetime.end.p0(i64 40, ptr %33) #6
  br label %1724

1724:                                             ; preds = %1723, %448, %421, %417
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %29) #6
  br label %1725

1725:                                             ; preds = %1724, %413
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  br label %1726

1726:                                             ; preds = %1725, %381, %354, %350
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %25) #6
  br label %1727

1727:                                             ; preds = %1726, %346
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  br label %1728

1728:                                             ; preds = %1727, %345
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  br label %1729

1729:                                             ; preds = %1728, %336
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  br label %1730

1730:                                             ; preds = %1729, %120, %116
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #6
  br label %1731

1731:                                             ; preds = %1730
  %1732 = load ptr, ptr %11, align 8
  %1733 = load i32, ptr %12, align 4
  %1734 = insertvalue { ptr, i32 } poison, ptr %1732, 0
  %1735 = insertvalue { ptr, i32 } %1734, i32 %1733, 1
  resume { ptr, i32 } %1735

1736:                                             ; preds = %1715
  unreachable
}

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

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

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

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

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


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

%struct.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.140 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.270 = external hidden unnamed_addr constant [7 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.311 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.336 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.337 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.338 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.339 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.340 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.343 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.344 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.345 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.346 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.347 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.348 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.349 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.350 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.351 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.352 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.353 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.354 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.355 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.356 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.357 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.358 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.359 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.360 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.361 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.362 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.363 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.364 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.365 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.366 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.367 = external hidden unnamed_addr constant [83 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

declare i32 @Longtail_GetLZ4DefaultQuality() local_unnamed_addr #1

; 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

declare i64 @Longtail_GetStoredBlockSize(i64 noundef) local_unnamed_addr #1

; 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 nounwind uwtable
declare dso_local void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN46Longtail_Longtail_CompressBlockStore__TestCase8TestBodyEv(ptr nocapture noundef nonnull readnone align 8 dereferenceable(8) %0) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca %struct.TestAsyncPutBlockComplete, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca %struct.TestAsyncPutBlockComplete, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca %struct.TestAsyncGetBlockComplete, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = 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 %struct.Longtail_BlockStore_Stats, align 8
  %44 = alloca %struct.Longtail_BlockStore_Stats, 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_CreateInMemStorageAPI()
  %59 = tail call ptr @Longtail_CreateFullCompressionRegistry()
  %60 = tail call ptr @Longtail_CreateBlake3HashAPI()
  %61 = tail call ptr @Longtail_CreateBikeshedJobAPI(i32 noundef 0, i32 noundef 0)
  %62 = tail call ptr @Longtail_CreateFSBlockStoreAPI(ptr noundef %61, ptr noundef %57, ptr noundef nonnull @.str.270, ptr noundef null, i32 noundef 0)
  %63 = tail call ptr @Longtail_CreateCompressBlockStoreAPI(ptr noundef %62, ptr noundef %59)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %2) #6
  call void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2)
  %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, 527360
  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 %3) #6
  store i32 2, ptr %3, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #6
  %74 = getelementptr inbounds i8, ptr %63, i64 24
  %75 = load ptr, ptr %74, align 8, !tbaa !14
  %76 = invoke noundef i32 %75(ptr noundef nonnull %63, i64 noundef 4711, ptr noundef nonnull %2)
          to label %77 unwind label %84

77:                                               ; preds = %73
  store i32 %76, ptr %4, align 4, !tbaa !13
  %78 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIiiEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.343)
          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 %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  br i1 %80, label %81, label %86

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

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

84:                                               ; preds = %77, %73
  %85 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  br label %1043

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

88:                                               ; preds = %86
  %89 = add i64 %87, 5858
  %90 = invoke i64 @Longtail_GetStoredBlockSize(i64 noundef %89)
          to label %91 unwind label %177

91:                                               ; preds = %88
  %92 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %90)
          to label %93 unwind label %177

93:                                               ; preds = %91
  store ptr null, ptr %92, align 8, !tbaa !17
  %94 = getelementptr inbounds i8, ptr %92, i64 32
  %95 = invoke ptr @Longtail_InitBlockIndex(ptr noundef nonnull %94, i32 noundef 2)
          to label %96 unwind label %177

96:                                               ; preds = %93
  %97 = getelementptr inbounds i8, ptr %92, i64 8
  store ptr %95, ptr %97, align 8, !tbaa !19
  %98 = load ptr, ptr %95, align 8, !tbaa !20
  store i64 3735928559, ptr %98, align 8, !tbaa !22
  %99 = getelementptr inbounds i8, ptr %60, i64 8
  %100 = load ptr, ptr %99, align 8, !tbaa !23
  %101 = invoke noundef i32 %100(ptr noundef nonnull %60)
          to label %102 unwind label %177

102:                                              ; preds = %96
  %103 = load ptr, ptr %97, align 8, !tbaa !19
  %104 = getelementptr inbounds i8, ptr %103, i64 8
  %105 = load ptr, ptr %104, align 8, !tbaa !25
  store i32 %101, ptr %105, align 4, !tbaa !13
  %106 = getelementptr inbounds i8, ptr %103, i64 24
  %107 = load ptr, ptr %106, align 8, !tbaa !26
  store i32 0, ptr %107, align 4, !tbaa !13
  %108 = getelementptr inbounds i8, ptr %103, i64 32
  %109 = load ptr, ptr %108, align 8, !tbaa !27
  store i64 251666341, ptr %109, align 8, !tbaa !22
  %110 = getelementptr inbounds i8, ptr %109, i64 8
  store i64 268378021, ptr %110, align 8, !tbaa !22
  %111 = getelementptr inbounds i8, ptr %103, i64 40
  %112 = load ptr, ptr %111, align 8, !tbaa !28
  store i32 4711, ptr %112, align 4, !tbaa !13
  %113 = getelementptr inbounds i8, ptr %112, i64 4
  store i32 1147, ptr %113, align 4, !tbaa !13
  %114 = getelementptr inbounds i8, ptr %103, i64 16
  %115 = load ptr, ptr %114, align 8, !tbaa !29
  store i32 2, ptr %115, align 4, !tbaa !13
  %116 = getelementptr inbounds i8, ptr %92, i64 24
  store i32 5858, ptr %116, align 8, !tbaa !30
  %117 = getelementptr inbounds i8, ptr %103, i64 %87
  %118 = getelementptr inbounds i8, ptr %92, i64 16
  store ptr %117, ptr %118, align 8, !tbaa !31
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(4711) %117, i8 77, i64 4711, i1 false)
  %119 = load ptr, ptr %118, align 8, !tbaa !31
  %120 = getelementptr inbounds i8, ptr %119, i64 4711
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1147) %120, i8 13, i64 1147, i1 false)
  %121 = invoke i64 @Longtail_GetBlockIndexSize(i32 noundef 2)
          to label %122 unwind label %179

122:                                              ; preds = %102
  %123 = add i64 %121, 5858
  %124 = invoke i64 @Longtail_GetStoredBlockSize(i64 noundef %123)
          to label %125 unwind label %181

125:                                              ; preds = %122
  %126 = invoke ptr @Longtail_Alloc(ptr noundef null, i64 noundef %124)
          to label %127 unwind label %181

127:                                              ; preds = %125
  store ptr null, ptr %126, align 8, !tbaa !17
  %128 = getelementptr inbounds i8, ptr %126, i64 32
  %129 = invoke ptr @Longtail_InitBlockIndex(ptr noundef nonnull %128, i32 noundef 2)
          to label %130 unwind label %181

130:                                              ; preds = %127
  %131 = getelementptr inbounds i8, ptr %126, i64 8
  store ptr %129, ptr %131, align 8, !tbaa !19
  %132 = load ptr, ptr %129, align 8, !tbaa !20
  store i64 3199065839, ptr %132, align 8, !tbaa !22
  %133 = load ptr, ptr %99, align 8, !tbaa !23
  %134 = invoke noundef i32 %133(ptr noundef nonnull %60)
          to label %135 unwind label %181

135:                                              ; preds = %130
  %136 = load ptr, ptr %131, align 8, !tbaa !19
  %137 = getelementptr inbounds i8, ptr %136, i64 8
  %138 = load ptr, ptr %137, align 8, !tbaa !25
  store i32 %134, ptr %138, align 4, !tbaa !13
  %139 = invoke i32 @Longtail_GetLZ4DefaultQuality()
          to label %140 unwind label %181

140:                                              ; preds = %135
  %141 = load ptr, ptr %131, align 8, !tbaa !19
  %142 = getelementptr inbounds i8, ptr %141, i64 24
  %143 = load ptr, ptr %142, align 8, !tbaa !26
  store i32 %139, ptr %143, align 4, !tbaa !13
  %144 = getelementptr inbounds i8, ptr %141, i64 32
  %145 = load ptr, ptr %144, align 8, !tbaa !27
  store i64 268378021, ptr %145, align 8, !tbaa !22
  %146 = getelementptr inbounds i8, ptr %145, i64 8
  store i64 251666341, ptr %146, align 8, !tbaa !22
  %147 = getelementptr inbounds i8, ptr %141, i64 40
  %148 = load ptr, ptr %147, align 8, !tbaa !28
  store i32 1147, ptr %148, align 4, !tbaa !13
  %149 = getelementptr inbounds i8, ptr %148, i64 4
  store i32 4711, ptr %149, align 4, !tbaa !13
  %150 = getelementptr inbounds i8, ptr %141, i64 16
  %151 = load ptr, ptr %150, align 8, !tbaa !29
  store i32 2, ptr %151, align 4, !tbaa !13
  %152 = getelementptr inbounds i8, ptr %126, i64 24
  store i32 5858, ptr %152, align 8, !tbaa !30
  %153 = getelementptr inbounds i8, ptr %141, i64 %121
  %154 = getelementptr inbounds i8, ptr %126, i64 16
  store ptr %153, ptr %154, align 8, !tbaa !31
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1147) %153, i8 13, i64 1147, i1 false)
  %155 = load ptr, ptr %154, align 8, !tbaa !31
  %156 = getelementptr inbounds i8, ptr %155, i64 1147
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(4711) %156, i8 77, i64 4711, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  invoke void @_ZN25TestAsyncPutBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %5)
          to label %157 unwind label %183

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

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

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

167:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #6
  store i32 0, ptr %6, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  %168 = getelementptr inbounds i8, ptr %63, i64 8
  %169 = load ptr, ptr %168, align 8, !tbaa !32
  %170 = invoke noundef i32 %169(ptr noundef nonnull %63, ptr noundef nonnull %92, ptr noundef nonnull %5)
          to label %171 unwind label %187

171:                                              ; preds = %167
  store i32 %170, ptr %7, align 4, !tbaa !13
  %172 = 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) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.344, ptr noundef null)
          to label %173 unwind label %187

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

175:                                              ; preds = %86
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %1043

177:                                              ; preds = %96, %93, %91, %88
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %1043

179:                                              ; preds = %102
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %1043

181:                                              ; preds = %135, %130, %127, %125, %122
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %1043

183:                                              ; preds = %140
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %1042

185:                                              ; preds = %.invoke, %199, %193, %191, %190, %189, %165, %159, %157
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %1041

187:                                              ; preds = %171, %167
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  br label %1041

189:                                              ; preds = %173
  invoke void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %5)
          to label %190 unwind label %185

190:                                              ; preds = %189
  invoke void @Longtail_Free(ptr noundef nonnull %92)
          to label %191 unwind label %185

191:                                              ; preds = %190
  %192 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %193 unwind label %185

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

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

201:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #6
  store i32 0, ptr %8, align 4, !tbaa !13
  %202 = getelementptr inbounds i8, ptr %5, i64 24
  %203 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %8, ptr noundef nonnull align 4 dereferenceable(4) %202, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.345, ptr noundef null)
          to label %204 unwind label %206

204:                                              ; preds = %201
  %205 = icmp eq i32 %203, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  br i1 %205, label %.invoke, label %208

.invoke:                                          ; preds = %173, %204
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1031 unwind label %185

206:                                              ; preds = %201
  %207 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  br label %1041

208:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #6
  invoke void @_ZN25TestAsyncPutBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(28) %9)
          to label %209 unwind label %226

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

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

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

219:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #6
  store i32 0, ptr %10, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  %220 = load ptr, ptr %168, align 8, !tbaa !32
  %221 = invoke noundef i32 %220(ptr noundef nonnull %63, ptr noundef nonnull %126, ptr noundef nonnull %9)
          to label %222 unwind label %230

222:                                              ; preds = %219
  store i32 %221, ptr %11, align 4, !tbaa !13
  %223 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %10, ptr noundef nonnull align 4 dereferenceable(4) %11, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.346, ptr noundef null)
          to label %224 unwind label %230

224:                                              ; preds = %222
  %225 = icmp eq i32 %223, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  br i1 %225, label %.invoke244, label %232

226:                                              ; preds = %208
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %1040

228:                                              ; preds = %.invoke244, %242, %236, %234, %233, %232, %217, %211, %209
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %1039

230:                                              ; preds = %222, %219
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  br label %1039

232:                                              ; preds = %224
  invoke void @_ZN25TestAsyncPutBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(28) %9)
          to label %233 unwind label %228

233:                                              ; preds = %232
  invoke void @Longtail_Free(ptr noundef nonnull %126)
          to label %234 unwind label %228

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

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

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

244:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  store i32 0, ptr %12, align 4, !tbaa !13
  %245 = getelementptr inbounds i8, ptr %9, i64 24
  %246 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 4 dereferenceable(4) %245, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.347, ptr noundef null)
          to label %247 unwind label %249

247:                                              ; preds = %244
  %248 = icmp eq i32 %246, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  br i1 %248, label %.invoke244, label %251

.invoke244:                                       ; preds = %224, %247
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1030 unwind label %228

249:                                              ; preds = %244
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  br label %1039

251:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #6
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13)
          to label %252 unwind label %269

252:                                              ; preds = %251
  %253 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %254 unwind label %271

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

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

262:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  store i32 0, ptr %14, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  %263 = load ptr, ptr %74, align 8, !tbaa !14
  %264 = invoke noundef i32 %263(ptr noundef nonnull %63, i64 noundef 3735928559, ptr noundef nonnull %13)
          to label %265 unwind label %273

265:                                              ; preds = %262
  store i32 %264, ptr %15, align 4, !tbaa !13
  %266 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 4 dereferenceable(4) %15, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.348, ptr noundef null)
          to label %267 unwind label %273

267:                                              ; preds = %265
  %268 = icmp eq i32 %266, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br i1 %268, label %.invoke245, label %275

269:                                              ; preds = %251
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %1038

271:                                              ; preds = %.invoke245, %.critedge206, %472, %466, %464, %452, %446, %444, %433, %427, %425, %413, %407, %405, %394, %388, %386, %377, %371, %369, %358, %352, %350, %336, %330, %328, %317, %311, %309, %305, %303, %297, %295, %286, %280, %276, %275, %260, %254, %252
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %1037

273:                                              ; preds = %265, %262
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br label %1037

275:                                              ; preds = %267
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %13)
          to label %276 unwind label %271

276:                                              ; preds = %275
  %277 = getelementptr inbounds i8, ptr %13, i64 32
  %278 = load ptr, ptr %277, align 8, !tbaa !33
  %279 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %280 unwind label %271

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

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

288:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  store i32 0, ptr %16, align 4, !tbaa !13
  %289 = getelementptr inbounds i8, ptr %13, i64 24
  %290 = 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) %16, ptr noundef nonnull align 4 dereferenceable(4) %289, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.275, ptr noundef null)
          to label %291 unwind label %293

291:                                              ; preds = %288
  %292 = icmp eq i32 %290, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br i1 %292, label %.invoke245, label %295

293:                                              ; preds = %288
  %294 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br label %1037

295:                                              ; preds = %291
  %296 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %297 unwind label %271

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

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

305:                                              ; preds = %303
  %306 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %278, ptr noundef nonnull @.str.276, ptr noundef nonnull @.str.277)
          to label %307 unwind label %271

307:                                              ; preds = %305
  %308 = icmp eq i32 %306, 0
  br i1 %308, label %.invoke245, label %309

309:                                              ; preds = %307
  %310 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %311 unwind label %271

311:                                              ; preds = %309
  %312 = getelementptr inbounds i8, ptr %310, i64 96
  %313 = load i32, ptr %312, align 8
  %314 = and i32 %313, -16776961
  %315 = or disjoint i32 %314, 544000
  store i32 %315, ptr %312, align 8
  %316 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %317 unwind label %271

317:                                              ; preds = %311
  %318 = getelementptr inbounds i8, ptr %316, i64 32
  store ptr @.str.3, ptr %318, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %319 unwind label %271

319:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  store i32 -559038737, ptr %17, align 4, !tbaa !13
  %320 = getelementptr inbounds i8, ptr %278, i64 8
  %321 = load ptr, ptr %320, align 8, !tbaa !19
  %322 = load ptr, ptr %321, align 8, !tbaa !20
  %323 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 8 dereferenceable(8) %322, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.278)
          to label %324 unwind label %326

324:                                              ; preds = %319
  %325 = icmp eq i32 %323, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  br i1 %325, label %.invoke245, label %328

326:                                              ; preds = %319
  %327 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  br label %1037

328:                                              ; preds = %324
  %329 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %330 unwind label %271

330:                                              ; preds = %328
  %331 = getelementptr inbounds i8, ptr %329, i64 96
  %332 = load i32, ptr %331, align 8
  %333 = and i32 %332, -16776961
  %334 = or disjoint i32 %333, 544256
  store i32 %334, ptr %331, align 8
  %335 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %336 unwind label %271

336:                                              ; preds = %330
  %337 = getelementptr inbounds i8, ptr %335, i64 32
  store ptr @.str.3, ptr %337, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %338 unwind label %271

338:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  %339 = load ptr, ptr %99, align 8, !tbaa !23
  %340 = invoke noundef i32 %339(ptr noundef nonnull %60)
          to label %341 unwind label %348

341:                                              ; preds = %338
  store i32 %340, ptr %18, align 4, !tbaa !13
  %342 = load ptr, ptr %320, align 8, !tbaa !19
  %343 = getelementptr inbounds i8, ptr %342, i64 8
  %344 = load ptr, ptr %343, align 8, !tbaa !25
  %345 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %18, ptr noundef nonnull align 4 dereferenceable(4) %344, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.279)
          to label %346 unwind label %348

346:                                              ; preds = %341
  %347 = icmp eq i32 %345, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  br i1 %347, label %.invoke245, label %350

348:                                              ; preds = %341, %338
  %349 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  br label %1037

350:                                              ; preds = %346
  %351 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %352 unwind label %271

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

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

360:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  store i32 0, ptr %19, align 4, !tbaa !13
  %361 = load ptr, ptr %320, align 8, !tbaa !19
  %362 = getelementptr inbounds i8, ptr %361, i64 24
  %363 = load ptr, ptr %362, align 8, !tbaa !26
  %364 = 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) %19, ptr noundef nonnull align 4 dereferenceable(4) %363, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.280, ptr noundef null)
          to label %365 unwind label %367

365:                                              ; preds = %360
  %366 = icmp eq i32 %364, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  br i1 %366, label %.invoke245, label %369

367:                                              ; preds = %360
  %368 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  br label %1037

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

371:                                              ; preds = %369
  %372 = getelementptr inbounds i8, ptr %370, i64 96
  %373 = load i32, ptr %372, align 8
  %374 = and i32 %373, -16776961
  %375 = or disjoint i32 %374, 544768
  store i32 %375, ptr %372, align 8
  %376 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %377 unwind label %271

377:                                              ; preds = %371
  %378 = getelementptr inbounds i8, ptr %376, i64 32
  store ptr @.str.3, ptr %378, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %379 unwind label %271

379:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  store i32 5858, ptr %20, align 4, !tbaa !13
  %380 = getelementptr inbounds i8, ptr %278, i64 24
  %381 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 4 dereferenceable(4) %380, ptr noundef nonnull @.str.349, ptr noundef nonnull @.str.350)
          to label %382 unwind label %384

382:                                              ; preds = %379
  %383 = icmp eq i32 %381, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  br i1 %383, label %.invoke245, label %386

384:                                              ; preds = %379
  %385 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  br label %1037

386:                                              ; preds = %382
  %387 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %388 unwind label %271

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

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

396:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  store i32 251666341, ptr %21, align 4, !tbaa !13
  %397 = load ptr, ptr %320, align 8, !tbaa !19
  %398 = getelementptr inbounds i8, ptr %397, i64 32
  %399 = load ptr, ptr %398, align 8, !tbaa !27
  %400 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %21, ptr noundef nonnull align 8 dereferenceable(8) %399, ptr noundef nonnull @.str.281, ptr noundef nonnull @.str.282)
          to label %401 unwind label %403

401:                                              ; preds = %396
  %402 = icmp eq i32 %400, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  br i1 %402, label %.invoke245, label %405

403:                                              ; preds = %396
  %404 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  br label %1037

405:                                              ; preds = %401
  %406 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %407 unwind label %271

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

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

415:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  store i32 268378021, ptr %22, align 4, !tbaa !13
  %416 = load ptr, ptr %320, align 8, !tbaa !19
  %417 = getelementptr inbounds i8, ptr %416, i64 32
  %418 = load ptr, ptr %417, align 8, !tbaa !27
  %419 = getelementptr inbounds i8, ptr %418, i64 8
  %420 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 8 dereferenceable(8) %419, ptr noundef nonnull @.str.283, ptr noundef nonnull @.str.284)
          to label %421 unwind label %423

421:                                              ; preds = %415
  %422 = icmp eq i32 %420, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  br i1 %422, label %.invoke245, label %425

423:                                              ; preds = %415
  %424 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  br label %1037

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

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, 545536
  store i32 %431, ptr %428, align 8
  %432 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %433 unwind label %271

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

435:                                              ; preds = %433
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  store i32 4711, ptr %23, align 4, !tbaa !13
  %436 = load ptr, ptr %320, align 8, !tbaa !19
  %437 = getelementptr inbounds i8, ptr %436, i64 40
  %438 = load ptr, ptr %437, align 8, !tbaa !28
  %439 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %23, ptr noundef nonnull align 4 dereferenceable(4) %438, ptr noundef nonnull @.str.285, ptr noundef nonnull @.str.286)
          to label %440 unwind label %442

440:                                              ; preds = %435
  %441 = icmp eq i32 %439, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  br i1 %441, label %.invoke245, label %444

442:                                              ; preds = %435
  %443 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  br label %1037

444:                                              ; preds = %440
  %445 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %446 unwind label %271

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

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

454:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  store i32 1147, ptr %24, align 4, !tbaa !13
  %455 = load ptr, ptr %320, align 8, !tbaa !19
  %456 = getelementptr inbounds i8, ptr %455, i64 40
  %457 = load ptr, ptr %456, align 8, !tbaa !28
  %458 = getelementptr inbounds i8, ptr %457, i64 4
  %459 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %458, ptr noundef nonnull @.str.287, ptr noundef nonnull @.str.288)
          to label %460 unwind label %462

460:                                              ; preds = %454
  %461 = icmp eq i32 %459, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br i1 %461, label %.invoke245, label %464

462:                                              ; preds = %454
  %463 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br label %1037

464:                                              ; preds = %460
  %465 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %466 unwind label %271

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

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

474:                                              ; preds = %472
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  store i32 2, ptr %25, align 4, !tbaa !13
  %475 = load ptr, ptr %320, align 8, !tbaa !19
  %476 = getelementptr inbounds i8, ptr %475, i64 16
  %477 = load ptr, ptr %476, align 8, !tbaa !29
  %478 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %477, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.289)
          to label %479 unwind label %482

479:                                              ; preds = %474
  %480 = icmp eq i32 %478, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  br i1 %480, label %.invoke245, label %.preheader221

.preheader221:                                    ; preds = %479
  %481 = getelementptr inbounds i8, ptr %278, i64 16
  br label %485

.invoke245:                                       ; preds = %267, %479, %460, %440, %421, %401, %382, %365, %346, %324, %307, %291
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1029 unwind label %271

482:                                              ; preds = %474
  %483 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  br label %1037

484:                                              ; preds = %499
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond = icmp eq i64 %indvars.iv.next, 4711
  br i1 %exitcond, label %.critedge.preheader, label %485, !llvm.loop !36

485:                                              ; preds = %.preheader221, %484
  %indvars.iv = phi i64 [ 0, %.preheader221 ], [ %indvars.iv.next, %484 ]
  %486 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %487 unwind label %.loopexit222

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

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

495:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  store i32 77, ptr %26, align 4, !tbaa !13
  %496 = load ptr, ptr %481, align 8, !tbaa !31
  %497 = getelementptr inbounds i8, ptr %496, i64 %indvars.iv
  %498 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIihEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %26, ptr noundef nonnull align 1 dereferenceable(1) %497, ptr noundef nonnull @.str.351, ptr noundef nonnull @.str.352)
          to label %499 unwind label %502

499:                                              ; preds = %495
  %500 = icmp eq i32 %498, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  br i1 %500, label %501, label %484

501:                                              ; preds = %499
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1029 unwind label %.loopexit.split-lp223

.loopexit222:                                     ; preds = %485, %487, %493
  %lpad.loopexit224 = landingpad { ptr, i32 }
          cleanup
  br label %1037

.loopexit.split-lp223:                            ; preds = %501
  %lpad.loopexit.split-lp225 = landingpad { ptr, i32 }
          cleanup
  br label %1037

502:                                              ; preds = %495
  %503 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  br label %1037

.critedge:                                        ; preds = %518
  %indvars.iv.next233 = add nuw nsw i64 %indvars.iv232, 1
  %exitcond235 = icmp eq i64 %indvars.iv.next233, 1147
  br i1 %exitcond235, label %.critedge206, label %.critedge.preheader, !llvm.loop !38

.critedge.preheader:                              ; preds = %484, %.critedge
  %indvars.iv232 = phi i64 [ %indvars.iv.next233, %.critedge ], [ 0, %484 ]
  %504 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %505 unwind label %.loopexit216

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

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

513:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  store i32 13, ptr %27, align 4, !tbaa !13
  %514 = load ptr, ptr %481, align 8, !tbaa !31
  %515 = getelementptr inbounds i8, ptr %514, i64 %indvars.iv232
  %516 = getelementptr inbounds i8, ptr %515, i64 4711
  %517 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIihEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %27, ptr noundef nonnull align 1 dereferenceable(1) %516, ptr noundef nonnull @.str.353, ptr noundef nonnull @.str.354)
          to label %518 unwind label %521

518:                                              ; preds = %513
  %519 = icmp eq i32 %517, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  br i1 %519, label %520, label %.critedge

520:                                              ; preds = %518
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1029 unwind label %.loopexit.split-lp217

.loopexit216:                                     ; preds = %.critedge.preheader, %505, %511
  %lpad.loopexit218 = landingpad { ptr, i32 }
          cleanup
  br label %1037

.loopexit.split-lp217:                            ; preds = %520
  %lpad.loopexit.split-lp219 = landingpad { ptr, i32 }
          cleanup
  br label %1037

521:                                              ; preds = %513
  %522 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  br label %1037

.critedge206:                                     ; preds = %.critedge
  %523 = load ptr, ptr %278, align 8, !tbaa !17
  %524 = invoke noundef i32 %523(ptr noundef nonnull %278)
          to label %525 unwind label %271

525:                                              ; preds = %.critedge206
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %28) #6
  invoke void @_ZN25TestAsyncGetBlockCompleteC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28)
          to label %526 unwind label %543

526:                                              ; preds = %525
  %527 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %528 unwind label %545

528:                                              ; preds = %526
  %529 = getelementptr inbounds i8, ptr %527, i64 96
  %530 = load i32, ptr %529, align 8
  %531 = and i32 %530, -16776961
  %532 = or disjoint i32 %531, 549120
  store i32 %532, ptr %529, align 8
  %533 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %534 unwind label %545

534:                                              ; preds = %528
  %535 = getelementptr inbounds i8, ptr %533, i64 32
  store ptr @.str.3, ptr %535, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %536 unwind label %545

536:                                              ; preds = %534
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  store i32 0, ptr %29, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  %537 = load ptr, ptr %74, align 8, !tbaa !14
  %538 = invoke noundef i32 %537(ptr noundef nonnull %63, i64 noundef 3199065839, ptr noundef nonnull %28)
          to label %539 unwind label %547

539:                                              ; preds = %536
  store i32 %538, ptr %30, align 4, !tbaa !13
  %540 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb1EE7compareIiiEEiRKT_RKT0_PKcS9_PN23jc_test_enable_argumentIXntsr18jc_test_is_pointerIS5_EE5valueEE4typeE(ptr noundef nonnull align 4 dereferenceable(4) %29, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.355, ptr noundef null)
          to label %541 unwind label %547

541:                                              ; preds = %539
  %542 = icmp eq i32 %540, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  br i1 %542, label %.invoke246, label %549

543:                                              ; preds = %525
  %544 = landingpad { ptr, i32 }
          cleanup
  br label %1036

545:                                              ; preds = %.invoke246, %.critedge210, %748, %742, %740, %728, %722, %720, %709, %703, %701, %689, %683, %681, %670, %664, %662, %653, %647, %645, %632, %626, %624, %610, %604, %602, %591, %585, %583, %579, %577, %571, %569, %560, %554, %550, %549, %534, %528, %526
  %546 = landingpad { ptr, i32 }
          cleanup
  br label %1035

547:                                              ; preds = %539, %536
  %548 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  br label %1035

549:                                              ; preds = %541
  invoke void @_ZN25TestAsyncGetBlockComplete4WaitEv(ptr noundef nonnull align 8 dereferenceable(40) %28)
          to label %550 unwind label %545

550:                                              ; preds = %549
  %551 = getelementptr inbounds i8, ptr %28, i64 32
  %552 = load ptr, ptr %551, align 8, !tbaa !33
  %553 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %554 unwind label %545

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

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

562:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  store i32 0, ptr %31, align 4, !tbaa !13
  %563 = getelementptr inbounds i8, ptr %28, i64 24
  %564 = 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) %31, ptr noundef nonnull align 4 dereferenceable(4) %563, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.356, ptr noundef null)
          to label %565 unwind label %567

565:                                              ; preds = %562
  %566 = icmp eq i32 %564, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  br i1 %566, label %.invoke246, label %569

567:                                              ; preds = %562
  %568 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  br label %1035

569:                                              ; preds = %565
  %570 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %571 unwind label %545

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

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

579:                                              ; preds = %577
  %580 = invoke noundef i32 @_Z14jc_test_cmp_NEIP20Longtail_StoredBlockS1_EiT_T0_PKcS5_(ptr noundef null, ptr noundef %552, ptr noundef nonnull @.str.276, ptr noundef nonnull @.str.277)
          to label %581 unwind label %545

581:                                              ; preds = %579
  %582 = icmp eq i32 %580, 0
  br i1 %582, label %.invoke246, label %583

583:                                              ; preds = %581
  %584 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %585 unwind label %545

585:                                              ; preds = %583
  %586 = getelementptr inbounds i8, ptr %584, i64 96
  %587 = load i32, ptr %586, align 8
  %588 = and i32 %587, -16776961
  %589 = or disjoint i32 %588, 550400
  store i32 %589, ptr %586, align 8
  %590 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %591 unwind label %545

591:                                              ; preds = %585
  %592 = getelementptr inbounds i8, ptr %590, i64 32
  store ptr @.str.3, ptr %592, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %593 unwind label %545

593:                                              ; preds = %591
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  store i32 -1095901457, ptr %32, align 4, !tbaa !13
  %594 = getelementptr inbounds i8, ptr %552, i64 8
  %595 = load ptr, ptr %594, align 8, !tbaa !19
  %596 = load ptr, ptr %595, align 8, !tbaa !20
  %597 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjmEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %32, ptr noundef nonnull align 8 dereferenceable(8) %596, ptr noundef nonnull @.str.357, ptr noundef nonnull @.str.278)
          to label %598 unwind label %600

598:                                              ; preds = %593
  %599 = icmp eq i32 %597, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  br i1 %599, label %.invoke246, label %602

600:                                              ; preds = %593
  %601 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  br label %1035

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

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

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

612:                                              ; preds = %610
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  %613 = load ptr, ptr %99, align 8, !tbaa !23
  %614 = invoke noundef i32 %613(ptr noundef nonnull %60)
          to label %615 unwind label %622

615:                                              ; preds = %612
  store i32 %614, ptr %33, align 4, !tbaa !13
  %616 = load ptr, ptr %594, align 8, !tbaa !19
  %617 = getelementptr inbounds i8, ptr %616, i64 8
  %618 = load ptr, ptr %617, align 8, !tbaa !25
  %619 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 4 dereferenceable(4) %618, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.279)
          to label %620 unwind label %622

620:                                              ; preds = %615
  %621 = icmp eq i32 %619, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  br i1 %621, label %.invoke246, label %624

622:                                              ; preds = %615, %612
  %623 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  br label %1035

624:                                              ; preds = %620
  %625 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %626 unwind label %545

626:                                              ; preds = %624
  %627 = getelementptr inbounds i8, ptr %625, i64 96
  %628 = load i32, ptr %627, align 8
  %629 = and i32 %628, -16776961
  %630 = or disjoint i32 %629, 550912
  store i32 %630, ptr %627, align 8
  %631 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %632 unwind label %545

632:                                              ; preds = %626
  %633 = getelementptr inbounds i8, ptr %631, i64 32
  store ptr @.str.3, ptr %633, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %634 unwind label %545

634:                                              ; preds = %632
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  %635 = invoke i32 @Longtail_GetLZ4DefaultQuality()
          to label %636 unwind label %643

636:                                              ; preds = %634
  store i32 %635, ptr %34, align 4, !tbaa !13
  %637 = load ptr, ptr %594, align 8, !tbaa !19
  %638 = getelementptr inbounds i8, ptr %637, i64 24
  %639 = load ptr, ptr %638, align 8, !tbaa !26
  %640 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIjjEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %639, ptr noundef nonnull @.str.358, ptr noundef nonnull @.str.280)
          to label %641 unwind label %643

641:                                              ; preds = %636
  %642 = icmp eq i32 %640, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  br i1 %642, label %.invoke246, label %645

643:                                              ; preds = %636, %634
  %644 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  br label %1035

645:                                              ; preds = %641
  %646 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %647 unwind label %545

647:                                              ; preds = %645
  %648 = getelementptr inbounds i8, ptr %646, i64 96
  %649 = load i32, ptr %648, align 8
  %650 = and i32 %649, -16776961
  %651 = or disjoint i32 %650, 551168
  store i32 %651, ptr %648, align 8
  %652 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %653 unwind label %545

653:                                              ; preds = %647
  %654 = getelementptr inbounds i8, ptr %652, i64 32
  store ptr @.str.3, ptr %654, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %655 unwind label %545

655:                                              ; preds = %653
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  store i32 5858, ptr %35, align 4, !tbaa !13
  %656 = getelementptr inbounds i8, ptr %552, i64 24
  %657 = 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) %656, ptr noundef nonnull @.str.349, ptr noundef nonnull @.str.350)
          to label %658 unwind label %660

658:                                              ; preds = %655
  %659 = icmp eq i32 %657, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  br i1 %659, label %.invoke246, label %662

660:                                              ; preds = %655
  %661 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  br label %1035

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

664:                                              ; preds = %662
  %665 = getelementptr inbounds i8, ptr %663, i64 96
  %666 = load i32, ptr %665, align 8
  %667 = and i32 %666, -16776961
  %668 = or disjoint i32 %667, 551424
  store i32 %668, ptr %665, align 8
  %669 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %670 unwind label %545

670:                                              ; preds = %664
  %671 = getelementptr inbounds i8, ptr %669, i64 32
  store ptr @.str.3, ptr %671, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %672 unwind label %545

672:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  store i32 268378021, ptr %36, align 4, !tbaa !13
  %673 = load ptr, ptr %594, align 8, !tbaa !19
  %674 = getelementptr inbounds i8, ptr %673, i64 32
  %675 = load ptr, ptr %674, align 8, !tbaa !27
  %676 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %36, ptr noundef nonnull align 8 dereferenceable(8) %675, ptr noundef nonnull @.str.283, ptr noundef nonnull @.str.282)
          to label %677 unwind label %679

677:                                              ; preds = %672
  %678 = icmp eq i32 %676, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  br i1 %678, label %.invoke246, label %681

679:                                              ; preds = %672
  %680 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  br label %1035

681:                                              ; preds = %677
  %682 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %683 unwind label %545

683:                                              ; preds = %681
  %684 = getelementptr inbounds i8, ptr %682, i64 96
  %685 = load i32, ptr %684, align 8
  %686 = and i32 %685, -16776961
  %687 = or disjoint i32 %686, 551680
  store i32 %687, ptr %684, align 8
  %688 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %689 unwind label %545

689:                                              ; preds = %683
  %690 = getelementptr inbounds i8, ptr %688, i64 32
  store ptr @.str.3, ptr %690, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %691 unwind label %545

691:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  store i32 251666341, ptr %37, align 4, !tbaa !13
  %692 = load ptr, ptr %594, align 8, !tbaa !19
  %693 = getelementptr inbounds i8, ptr %692, i64 32
  %694 = load ptr, ptr %693, align 8, !tbaa !27
  %695 = getelementptr inbounds i8, ptr %694, i64 8
  %696 = 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) %695, ptr noundef nonnull @.str.281, ptr noundef nonnull @.str.284)
          to label %697 unwind label %699

697:                                              ; preds = %691
  %698 = icmp eq i32 %696, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  br i1 %698, label %.invoke246, label %701

699:                                              ; preds = %691
  %700 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  br label %1035

701:                                              ; preds = %697
  %702 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %703 unwind label %545

703:                                              ; preds = %701
  %704 = getelementptr inbounds i8, ptr %702, i64 96
  %705 = load i32, ptr %704, align 8
  %706 = and i32 %705, -16776961
  %707 = or disjoint i32 %706, 551936
  store i32 %707, ptr %704, align 8
  %708 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %709 unwind label %545

709:                                              ; preds = %703
  %710 = getelementptr inbounds i8, ptr %708, i64 32
  store ptr @.str.3, ptr %710, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %711 unwind label %545

711:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #6
  store i32 1147, ptr %38, align 4, !tbaa !13
  %712 = load ptr, ptr %594, align 8, !tbaa !19
  %713 = getelementptr inbounds i8, ptr %712, i64 40
  %714 = load ptr, ptr %713, align 8, !tbaa !28
  %715 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIijEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %714, ptr noundef nonnull @.str.287, ptr noundef nonnull @.str.286)
          to label %716 unwind label %718

716:                                              ; preds = %711
  %717 = icmp eq i32 %715, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  br i1 %717, label %.invoke246, label %720

718:                                              ; preds = %711
  %719 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  br label %1035

720:                                              ; preds = %716
  %721 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %722 unwind label %545

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

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

730:                                              ; preds = %728
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  store i32 4711, ptr %39, align 4, !tbaa !13
  %731 = load ptr, ptr %594, align 8, !tbaa !19
  %732 = getelementptr inbounds i8, ptr %731, i64 40
  %733 = load ptr, ptr %732, align 8, !tbaa !28
  %734 = getelementptr inbounds i8, ptr %733, i64 4
  %735 = 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) %734, ptr noundef nonnull @.str.285, ptr noundef nonnull @.str.288)
          to label %736 unwind label %738

736:                                              ; preds = %730
  %737 = icmp eq i32 %735, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  br i1 %737, label %.invoke246, label %740

738:                                              ; preds = %730
  %739 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  br label %1035

740:                                              ; preds = %736
  %741 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %742 unwind label %545

742:                                              ; preds = %740
  %743 = getelementptr inbounds i8, ptr %741, i64 96
  %744 = load i32, ptr %743, align 8
  %745 = and i32 %744, -16776961
  %746 = or disjoint i32 %745, 552448
  store i32 %746, ptr %743, align 8
  %747 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %748 unwind label %545

748:                                              ; preds = %742
  %749 = getelementptr inbounds i8, ptr %747, i64 32
  store ptr @.str.3, ptr %749, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %750 unwind label %545

750:                                              ; preds = %748
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  store i32 2, ptr %40, align 4, !tbaa !13
  %751 = load ptr, ptr %594, align 8, !tbaa !19
  %752 = getelementptr inbounds i8, ptr %751, i64 16
  %753 = load ptr, ptr %752, align 8, !tbaa !29
  %754 = 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) %753, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.289)
          to label %755 unwind label %758

755:                                              ; preds = %750
  %756 = icmp eq i32 %754, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  br i1 %756, label %.invoke246, label %.preheader

.preheader:                                       ; preds = %755
  %757 = getelementptr inbounds i8, ptr %552, i64 16
  br label %761

.invoke246:                                       ; preds = %541, %755, %736, %716, %697, %677, %658, %641, %620, %598, %581, %565
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1028 unwind label %545

758:                                              ; preds = %750
  %759 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  br label %1035

760:                                              ; preds = %775
  %indvars.iv.next237 = add nuw nsw i64 %indvars.iv236, 1
  %exitcond239 = icmp eq i64 %indvars.iv.next237, 1147
  br i1 %exitcond239, label %.critedge208.preheader, label %761, !llvm.loop !39

761:                                              ; preds = %.preheader, %760
  %indvars.iv236 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next237, %760 ]
  %762 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %763 unwind label %.loopexit211

763:                                              ; preds = %761
  %764 = getelementptr inbounds i8, ptr %762, i64 96
  %765 = load i32, ptr %764, align 8
  %766 = and i32 %765, -16776961
  %767 = or disjoint i32 %766, 553216
  store i32 %767, ptr %764, align 8
  %768 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %769 unwind label %.loopexit211

769:                                              ; preds = %763
  %770 = getelementptr inbounds i8, ptr %768, i64 32
  store ptr @.str.3, ptr %770, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %771 unwind label %.loopexit211

771:                                              ; preds = %769
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #6
  store i32 13, ptr %41, align 4, !tbaa !13
  %772 = load ptr, ptr %757, align 8, !tbaa !31
  %773 = getelementptr inbounds i8, ptr %772, i64 %indvars.iv236
  %774 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIihEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %41, ptr noundef nonnull align 1 dereferenceable(1) %773, ptr noundef nonnull @.str.353, ptr noundef nonnull @.str.352)
          to label %775 unwind label %778

775:                                              ; preds = %771
  %776 = icmp eq i32 %774, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  br i1 %776, label %777, label %760

777:                                              ; preds = %775
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1028 unwind label %.loopexit.split-lp212

.loopexit211:                                     ; preds = %761, %763, %769
  %lpad.loopexit213 = landingpad { ptr, i32 }
          cleanup
  br label %1035

.loopexit.split-lp212:                            ; preds = %777
  %lpad.loopexit.split-lp214 = landingpad { ptr, i32 }
          cleanup
  br label %1035

778:                                              ; preds = %771
  %779 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  br label %1035

.critedge208:                                     ; preds = %794
  %indvars.iv.next241 = add nuw nsw i64 %indvars.iv240, 1
  %exitcond243 = icmp eq i64 %indvars.iv.next241, 4711
  br i1 %exitcond243, label %.critedge210, label %.critedge208.preheader, !llvm.loop !40

.critedge208.preheader:                           ; preds = %760, %.critedge208
  %indvars.iv240 = phi i64 [ %indvars.iv.next241, %.critedge208 ], [ 0, %760 ]
  %780 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %781 unwind label %.loopexit

781:                                              ; preds = %.critedge208.preheader
  %782 = getelementptr inbounds i8, ptr %780, i64 96
  %783 = load i32, ptr %782, align 8
  %784 = and i32 %783, -16776961
  %785 = or disjoint i32 %784, 554240
  store i32 %785, ptr %782, align 8
  %786 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %787 unwind label %.loopexit

787:                                              ; preds = %781
  %788 = getelementptr inbounds i8, ptr %786, i64 32
  store ptr @.str.3, ptr %788, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %789 unwind label %.loopexit

789:                                              ; preds = %787
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #6
  store i32 77, ptr %42, align 4, !tbaa !13
  %790 = load ptr, ptr %757, align 8, !tbaa !31
  %791 = getelementptr inbounds i8, ptr %790, i64 %indvars.iv240
  %792 = getelementptr inbounds i8, ptr %791, i64 1147
  %793 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIihEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %42, ptr noundef nonnull align 1 dereferenceable(1) %792, ptr noundef nonnull @.str.351, ptr noundef nonnull @.str.359)
          to label %794 unwind label %797

794:                                              ; preds = %789
  %795 = icmp eq i32 %793, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  br i1 %795, label %796, label %.critedge208

796:                                              ; preds = %794
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1028 unwind label %.loopexit.split-lp

.loopexit:                                        ; preds = %.critedge208.preheader, %781, %787
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %1035

.loopexit.split-lp:                               ; preds = %796
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %1035

797:                                              ; preds = %789
  %798 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  br label %1035

.critedge210:                                     ; preds = %.critedge208
  %799 = load ptr, ptr %552, align 8, !tbaa !17
  %800 = invoke noundef i32 %799(ptr noundef nonnull %552)
          to label %801 unwind label %545

801:                                              ; preds = %.critedge210
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %43) #6
  %802 = getelementptr inbounds i8, ptr %63, i64 48
  %803 = load ptr, ptr %802, align 8, !tbaa !41
  %804 = invoke noundef i32 %803(ptr noundef nonnull %63, ptr noundef nonnull %43)
          to label %805 unwind label %823

805:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %44) #6
  %806 = getelementptr inbounds i8, ptr %62, i64 48
  %807 = load ptr, ptr %806, align 8, !tbaa !41
  %808 = invoke noundef i32 %807(ptr noundef nonnull %62, ptr noundef nonnull %44)
          to label %809 unwind label %825

809:                                              ; preds = %805
  %810 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %811 unwind label %825

811:                                              ; preds = %809
  %812 = getelementptr inbounds i8, ptr %810, i64 96
  %813 = load i32, ptr %812, align 8
  %814 = and i32 %813, -16776961
  %815 = or disjoint i32 %814, 556544
  store i32 %815, ptr %812, align 8
  %816 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %817 unwind label %825

817:                                              ; preds = %811
  %818 = getelementptr inbounds i8, ptr %816, i64 32
  store ptr @.str.3, ptr %818, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %819 unwind label %825

819:                                              ; preds = %817
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #6
  store i32 3, ptr %45, align 4, !tbaa !13
  %820 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull @.str.192, ptr noundef nonnull @.str.360)
          to label %821 unwind label %827

821:                                              ; preds = %819
  %822 = icmp eq i32 %820, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  br i1 %822, label %.invoke247, label %829

823:                                              ; preds = %801
  %824 = landingpad { ptr, i32 }
          cleanup
  br label %1034

825:                                              ; preds = %.invoke247, %1026, %1024, %1022, %1020, %1018, %1016, %1015, %1006, %1000, %998, %989, %983, %981, %972, %966, %964, %955, %949, %947, %938, %932, %930, %922, %916, %914, %905, %899, %897, %888, %882, %880, %871, %865, %863, %854, %848, %846, %837, %831, %829, %817, %811, %809, %805
  %826 = landingpad { ptr, i32 }
          cleanup
  br label %1033

827:                                              ; preds = %819
  %828 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #6
  br label %1033

829:                                              ; preds = %821
  %830 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %831 unwind label %825

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

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

839:                                              ; preds = %837
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #6
  store i32 2, ptr %46, align 4, !tbaa !13
  %840 = getelementptr inbounds i8, ptr %43, i64 40
  %841 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 8 dereferenceable(8) %840, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.361)
          to label %842 unwind label %844

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

844:                                              ; preds = %839
  %845 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #6
  br label %1033

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

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, 557056
  store i32 %852, ptr %849, align 8
  %853 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %854 unwind label %825

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

856:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #6
  store i32 4, ptr %47, align 4, !tbaa !13
  %857 = getelementptr inbounds i8, ptr %43, i64 24
  %858 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %47, ptr noundef nonnull align 8 dereferenceable(8) %857, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.362)
          to label %859 unwind label %861

859:                                              ; preds = %856
  %860 = icmp eq i32 %858, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #6
  br i1 %860, label %.invoke247, label %863

861:                                              ; preds = %856
  %862 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #6
  br label %1033

863:                                              ; preds = %859
  %864 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %865 unwind label %825

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

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

873:                                              ; preds = %871
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #6
  store i32 4, ptr %48, align 4, !tbaa !13
  %874 = getelementptr inbounds i8, ptr %43, i64 64
  %875 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef nonnull align 8 dereferenceable(8) %874, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.363)
          to label %876 unwind label %878

876:                                              ; preds = %873
  %877 = icmp eq i32 %875, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #6
  br i1 %877, label %.invoke247, label %880

878:                                              ; preds = %873
  %879 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #6
  br label %1033

880:                                              ; preds = %876
  %881 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %882 unwind label %825

882:                                              ; preds = %880
  %883 = getelementptr inbounds i8, ptr %881, i64 96
  %884 = load i32, ptr %883, align 8
  %885 = and i32 %884, -16776961
  %886 = or disjoint i32 %885, 557568
  store i32 %886, ptr %883, align 8
  %887 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %888 unwind label %825

888:                                              ; preds = %882
  %889 = getelementptr inbounds i8, ptr %887, i64 32
  store ptr @.str.3, ptr %889, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %890 unwind label %825

890:                                              ; preds = %888
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #6
  store i32 5992, ptr %49, align 4, !tbaa !13
  %891 = getelementptr inbounds i8, ptr %43, i64 32
  %892 = 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) %891, ptr noundef nonnull @.str.364, ptr noundef nonnull @.str.365)
          to label %893 unwind label %895

893:                                              ; preds = %890
  %894 = icmp eq i32 %892, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #6
  br i1 %894, label %.invoke247, label %897

895:                                              ; preds = %890
  %896 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #6
  br label %1033

897:                                              ; preds = %893
  %898 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %899 unwind label %825

899:                                              ; preds = %897
  %900 = getelementptr inbounds i8, ptr %898, i64 96
  %901 = load i32, ptr %900, align 8
  %902 = and i32 %901, -16776961
  %903 = or disjoint i32 %902, 557824
  store i32 %903, ptr %900, align 8
  %904 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %905 unwind label %825

905:                                              ; preds = %899
  %906 = getelementptr inbounds i8, ptr %904, i64 32
  store ptr @.str.3, ptr %906, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %907 unwind label %825

907:                                              ; preds = %905
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #6
  store i32 11804, ptr %50, align 4, !tbaa !13
  %908 = getelementptr inbounds i8, ptr %43, i64 72
  %909 = 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) %908, ptr noundef nonnull @.str.366, ptr noundef nonnull @.str.367)
          to label %910 unwind label %912

910:                                              ; preds = %907
  %911 = icmp eq i32 %909, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #6
  br i1 %911, label %.invoke247, label %914

912:                                              ; preds = %907
  %913 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #6
  br label %1033

914:                                              ; preds = %910
  %915 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %916 unwind label %825

916:                                              ; preds = %914
  %917 = getelementptr inbounds i8, ptr %915, i64 96
  %918 = load i32, ptr %917, align 8
  %919 = and i32 %918, -16776961
  %920 = or disjoint i32 %919, 558336
  store i32 %920, ptr %917, align 8
  %921 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %922 unwind label %825

922:                                              ; preds = %916
  %923 = getelementptr inbounds i8, ptr %921, i64 32
  store ptr @.str.3, ptr %923, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %924 unwind label %825

924:                                              ; preds = %922
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #6
  store i32 3, ptr %51, align 4, !tbaa !13
  %925 = 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) %44, ptr noundef nonnull @.str.192, ptr noundef nonnull @.str.311)
          to label %926 unwind label %928

926:                                              ; preds = %924
  %927 = icmp eq i32 %925, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #6
  br i1 %927, label %.invoke247, label %930

928:                                              ; preds = %924
  %929 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #6
  br label %1033

930:                                              ; preds = %926
  %931 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %932 unwind label %825

932:                                              ; preds = %930
  %933 = getelementptr inbounds i8, ptr %931, i64 96
  %934 = load i32, ptr %933, align 8
  %935 = and i32 %934, -16776961
  %936 = or disjoint i32 %935, 558592
  store i32 %936, ptr %933, align 8
  %937 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %938 unwind label %825

938:                                              ; preds = %932
  %939 = getelementptr inbounds i8, ptr %937, i64 32
  store ptr @.str.3, ptr %939, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %940 unwind label %825

940:                                              ; preds = %938
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #6
  store i32 2, ptr %52, align 4, !tbaa !13
  %941 = getelementptr inbounds i8, ptr %44, i64 40
  %942 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %52, ptr noundef nonnull align 8 dereferenceable(8) %941, ptr noundef nonnull @.str.138, ptr noundef nonnull @.str.336)
          to label %943 unwind label %945

943:                                              ; preds = %940
  %944 = icmp eq i32 %942, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #6
  br i1 %944, label %.invoke247, label %947

945:                                              ; preds = %940
  %946 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #6
  br label %1033

947:                                              ; preds = %943
  %948 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %949 unwind label %825

949:                                              ; preds = %947
  %950 = getelementptr inbounds i8, ptr %948, i64 96
  %951 = load i32, ptr %950, align 8
  %952 = and i32 %951, -16776961
  %953 = or disjoint i32 %952, 558848
  store i32 %953, ptr %950, align 8
  %954 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %955 unwind label %825

955:                                              ; preds = %949
  %956 = getelementptr inbounds i8, ptr %954, i64 32
  store ptr @.str.3, ptr %956, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %957 unwind label %825

957:                                              ; preds = %955
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #6
  store i32 4, ptr %53, align 4, !tbaa !13
  %958 = getelementptr inbounds i8, ptr %44, i64 24
  %959 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %53, ptr noundef nonnull align 8 dereferenceable(8) %958, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.337)
          to label %960 unwind label %962

960:                                              ; preds = %957
  %961 = icmp eq i32 %959, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #6
  br i1 %961, label %.invoke247, label %964

962:                                              ; preds = %957
  %963 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #6
  br label %1033

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

966:                                              ; preds = %964
  %967 = getelementptr inbounds i8, ptr %965, i64 96
  %968 = load i32, ptr %967, align 8
  %969 = and i32 %968, -16776961
  %970 = or disjoint i32 %969, 559104
  store i32 %970, ptr %967, align 8
  %971 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %972 unwind label %825

972:                                              ; preds = %966
  %973 = getelementptr inbounds i8, ptr %971, i64 32
  store ptr @.str.3, ptr %973, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %974 unwind label %825

974:                                              ; preds = %972
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %54) #6
  store i32 4, ptr %54, align 4, !tbaa !13
  %975 = getelementptr inbounds i8, ptr %44, i64 64
  %976 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef nonnull align 8 dereferenceable(8) %975, ptr noundef nonnull @.str.140, ptr noundef nonnull @.str.338)
          to label %977 unwind label %979

977:                                              ; preds = %974
  %978 = icmp eq i32 %976, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #6
  br i1 %978, label %.invoke247, label %981

979:                                              ; preds = %974
  %980 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #6
  br label %1033

981:                                              ; preds = %977
  %982 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %983 unwind label %825

983:                                              ; preds = %981
  %984 = getelementptr inbounds i8, ptr %982, i64 96
  %985 = load i32, ptr %984, align 8
  %986 = and i32 %985, -16776961
  %987 = or disjoint i32 %986, 559360
  store i32 %987, ptr %984, align 8
  %988 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %989 unwind label %825

989:                                              ; preds = %983
  %990 = getelementptr inbounds i8, ptr %988, i64 32
  store ptr @.str.3, ptr %990, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %991 unwind label %825

991:                                              ; preds = %989
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %55) #6
  store i32 5992, ptr %55, align 4, !tbaa !13
  %992 = getelementptr inbounds i8, ptr %44, i64 32
  %993 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %55, ptr noundef nonnull align 8 dereferenceable(8) %992, ptr noundef nonnull @.str.364, ptr noundef nonnull @.str.339)
          to label %994 unwind label %996

994:                                              ; preds = %991
  %995 = icmp eq i32 %993, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #6
  br i1 %995, label %.invoke247, label %998

996:                                              ; preds = %991
  %997 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #6
  br label %1033

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

1000:                                             ; preds = %998
  %1001 = getelementptr inbounds i8, ptr %999, i64 96
  %1002 = load i32, ptr %1001, align 8
  %1003 = and i32 %1002, -16776961
  %1004 = or disjoint i32 %1003, 559616
  store i32 %1004, ptr %1001, align 8
  %1005 = invoke noundef ptr @_ZL19jc_test_get_fixturev()
          to label %1006 unwind label %825

1006:                                             ; preds = %1000
  %1007 = getelementptr inbounds i8, ptr %1005, i64 32
  store ptr @.str.3, ptr %1007, align 8, !tbaa !5
  invoke void @_Z28jc_test_increment_assertionsv()
          to label %1008 unwind label %825

1008:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %56) #6
  store i32 5992, ptr %56, align 4, !tbaa !13
  %1009 = getelementptr inbounds i8, ptr %44, i64 72
  %1010 = invoke noundef i32 @_ZN21jc_test_cmp_eq_helperILb0EE7compareIimEEiRKT_RKT0_PKcS9_(ptr noundef nonnull align 4 dereferenceable(4) %56, ptr noundef nonnull align 8 dereferenceable(8) %1009, ptr noundef nonnull @.str.364, ptr noundef nonnull @.str.340)
          to label %1011 unwind label %1013

1011:                                             ; preds = %1008
  %1012 = icmp eq i32 %1010, 0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #6
  br i1 %1012, label %.invoke247, label %1015

.invoke247:                                       ; preds = %821, %1011, %994, %977, %960, %943, %926, %910, %893, %876, %859, %842
  invoke void @_Z21jc_test_set_test_faili(i32 noundef 1)
          to label %1027 unwind label %825

1013:                                             ; preds = %1008
  %1014 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #6
  br label %1033

1015:                                             ; preds = %1011
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %63)
          to label %1016 unwind label %825

1016:                                             ; preds = %1015
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %62)
          to label %1017 unwind label %825

1017:                                             ; preds = %1016
  %.not181 = icmp eq ptr %61, null
  br i1 %.not181, label %1019, label %1018

1018:                                             ; preds = %1017
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %61)
          to label %1019 unwind label %825

1019:                                             ; preds = %1018, %1017
  %.not182 = icmp eq ptr %60, null
  br i1 %.not182, label %1021, label %1020

1020:                                             ; preds = %1019
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %60)
          to label %1021 unwind label %825

1021:                                             ; preds = %1020, %1019
  %.not183 = icmp eq ptr %59, null
  br i1 %.not183, label %1023, label %1022

1022:                                             ; preds = %1021
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %59)
          to label %1023 unwind label %825

1023:                                             ; preds = %1022, %1021
  %.not184 = icmp eq ptr %58, null
  br i1 %.not184, label %1025, label %1024

1024:                                             ; preds = %1023
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %58)
          to label %1025 unwind label %825

1025:                                             ; preds = %1024, %1023
  %.not185 = icmp eq ptr %57, null
  br i1 %.not185, label %1027, label %1026

1026:                                             ; preds = %1025
  invoke void @Longtail_DisposeAPI(ptr noundef nonnull %57)
          to label %1027 unwind label %825

1027:                                             ; preds = %.invoke247, %1025, %1026
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %43) #6
  br label %1028

1028:                                             ; preds = %.invoke246, %796, %777, %1027
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #6
  br label %1029

1029:                                             ; preds = %.invoke245, %520, %501, %1028
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #6
  br label %1030

1030:                                             ; preds = %.invoke244, %1029
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  br label %1031

1031:                                             ; preds = %.invoke, %1030
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  br label %1032

1032:                                             ; preds = %81, %1031
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %2) #6
  ret void

1033:                                             ; preds = %1013, %996, %979, %962, %945, %928, %912, %895, %878, %861, %844, %827, %825
  %.pn186 = phi { ptr, i32 } [ %826, %825 ], [ %1014, %1013 ], [ %997, %996 ], [ %980, %979 ], [ %963, %962 ], [ %946, %945 ], [ %929, %928 ], [ %913, %912 ], [ %896, %895 ], [ %879, %878 ], [ %862, %861 ], [ %845, %844 ], [ %828, %827 ]
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %44) #6
  br label %1034

1034:                                             ; preds = %1033, %823
  %.pn186.pn = phi { ptr, i32 } [ %.pn186, %1033 ], [ %824, %823 ]
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %43) #6
  br label %1035

1035:                                             ; preds = %.loopexit, %.loopexit.split-lp, %.loopexit211, %.loopexit.split-lp212, %797, %778, %1034, %758, %738, %718, %699, %679, %660, %643, %622, %600, %567, %547, %545
  %.pn189 = phi { ptr, i32 } [ %546, %545 ], [ %.pn186.pn, %1034 ], [ %759, %758 ], [ %739, %738 ], [ %719, %718 ], [ %700, %699 ], [ %680, %679 ], [ %661, %660 ], [ %644, %643 ], [ %623, %622 ], [ %601, %600 ], [ %568, %567 ], [ %548, %547 ], [ %779, %778 ], [ %798, %797 ], [ %lpad.loopexit213, %.loopexit211 ], [ %lpad.loopexit.split-lp214, %.loopexit.split-lp212 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #6
  br label %1036

1036:                                             ; preds = %1035, %543
  %.pn189.pn = phi { ptr, i32 } [ %.pn189, %1035 ], [ %544, %543 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #6
  br label %1037

1037:                                             ; preds = %.loopexit216, %.loopexit.split-lp217, %.loopexit222, %.loopexit.split-lp223, %521, %502, %1036, %482, %462, %442, %423, %403, %384, %367, %348, %326, %293, %273, %271
  %.pn192 = phi { ptr, i32 } [ %272, %271 ], [ %.pn189.pn, %1036 ], [ %483, %482 ], [ %463, %462 ], [ %443, %442 ], [ %424, %423 ], [ %404, %403 ], [ %385, %384 ], [ %368, %367 ], [ %349, %348 ], [ %327, %326 ], [ %294, %293 ], [ %274, %273 ], [ %503, %502 ], [ %522, %521 ], [ %lpad.loopexit224, %.loopexit222 ], [ %lpad.loopexit.split-lp225, %.loopexit.split-lp223 ], [ %lpad.loopexit218, %.loopexit216 ], [ %lpad.loopexit.split-lp219, %.loopexit.split-lp217 ]
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #6
  br label %1038

1038:                                             ; preds = %1037, %269
  %.pn192.pn = phi { ptr, i32 } [ %.pn192, %1037 ], [ %270, %269 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #6
  br label %1039

1039:                                             ; preds = %1038, %249, %230, %228
  %.pn195 = phi { ptr, i32 } [ %229, %228 ], [ %.pn192.pn, %1038 ], [ %250, %249 ], [ %231, %230 ]
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %9) #6
  br label %1040

1040:                                             ; preds = %1039, %226
  %.pn195.pn = phi { ptr, i32 } [ %.pn195, %1039 ], [ %227, %226 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #6
  br label %1041

1041:                                             ; preds = %1040, %206, %187, %185
  %.pn198 = phi { ptr, i32 } [ %186, %185 ], [ %.pn195.pn, %1040 ], [ %207, %206 ], [ %188, %187 ]
  call void @_ZN25TestAsyncPutBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(28) %5) #6
  br label %1042

1042:                                             ; preds = %1041, %183
  %.pn198.pn = phi { ptr, i32 } [ %.pn198, %1041 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  br label %1043

1043:                                             ; preds = %177, %175, %179, %181, %1042, %84, %82
  %.pn203 = phi { ptr, i32 } [ %83, %82 ], [ %85, %84 ], [ %178, %177 ], [ %176, %175 ], [ %.pn198.pn, %1042 ], [ %182, %181 ], [ %180, %179 ]
  call void @_ZN25TestAsyncGetBlockCompleteD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %2) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %2) #6
  resume { ptr, i32 } %.pn203
}

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 32}
!6 = !{!"_ZTS15jc_test_fixture", !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !10, i64 64, !11, i64 88, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 91, !11, i64 92, !11, i64 96, !11, i64 97, !11, i64 99, !11, i64 100}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS13jc_test_stats", !11, i64 0, !11, i64 4, !11, i64 6, !11, i64 8, !11, i64 12, !12, i64 16}
!11 = !{!"int", !8, i64 0}
!12 = !{!"long", !8, i64 0}
!13 = !{!11, !11, i64 0}
!14 = !{!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 0}
!18 = !{!"_ZTS20Longtail_StoredBlock", !7, i64 0, !7, i64 8, !7, i64 16, !11, i64 24}
!19 = !{!18, !7, i64 8}
!20 = !{!21, !7, i64 0}
!21 = !{!"_ZTS19Longtail_BlockIndex", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!22 = !{!12, !12, i64 0}
!23 = !{!24, !7, i64 8}
!24 = !{!"_ZTS16Longtail_HashAPI", !16, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!25 = !{!21, !7, i64 8}
!26 = !{!21, !7, i64 24}
!27 = !{!21, !7, i64 32}
!28 = !{!21, !7, i64 40}
!29 = !{!21, !7, i64 16}
!30 = !{!18, !11, i64 24}
!31 = !{!18, !7, i64 16}
!32 = !{!15, !7, i64 8}
!33 = !{!34, !7, i64 32}
!34 = !{!"_ZTS25TestAsyncGetBlockComplete", !35, i64 0, !7, i64 16, !11, i64 24, !7, i64 32}
!35 = !{!"_ZTS31Longtail_AsyncGetStoredBlockAPI", !16, i64 0, !7, i64 8}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = distinct !{!38, !37}
!39 = distinct !{!39, !37}
!40 = distinct !{!40, !37}
!41 = !{!15, !7, i64 48}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass