; LLVM IR from dnbaker/sketch :: testsrc (timerevhash)

; 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.sketch::hash::WangHash" = type { i8 }
%"struct.sketch::hash::MultiplyAddXoRot" = type { %"struct.sketch::hash::FusedReversible3" }
%"struct.sketch::hash::FusedReversible3" = type { %"struct.sketch::hash::InvH", %"struct.sketch::hash::InvH.0", %"struct.sketch::hash::InvH.2" }
%"struct.sketch::hash::InvH" = type <{ i64, i64, [8 x i8] }>
%"struct.sketch::hash::InvH.0" = type <{ i64, i64, [8 x i8] }>
%"struct.sketch::hash::InvH.2" = type <{ i64, i64, [8 x i8] }>
%"struct.sketch::hash::MultiplyAddXor" = type { %"struct.sketch::hash::FusedReversible3.4" }
%"struct.sketch::hash::FusedReversible3.4" = type { %"struct.sketch::hash::InvH.5", %"struct.sketch::hash::InvH", %"struct.sketch::hash::InvH.0" }
%"struct.sketch::hash::InvH.5" = type <{ i64, i64, [8 x i8] }>
%"struct.sketch::hash::XorMultiply" = type { %"struct.sketch::hash::FusedReversible" }
%"struct.sketch::hash::FusedReversible" = type { %"struct.sketch::hash::InvH.0", %"struct.sketch::hash::InvH" }
%"struct.sketch::hash::FusedReversible3.7" = type { %"struct.sketch::hash::InvH", [8 x i8], %"struct.sketch::hash::MultiplyAddXoRot.8" }
%"struct.sketch::hash::MultiplyAddXoRot.8" = type { %"struct.sketch::hash::FusedReversible3.9" }
%"struct.sketch::hash::FusedReversible3.9" = type { %"struct.sketch::hash::InvH", %"struct.sketch::hash::InvH.0", %"struct.sketch::hash::InvH.10" }
%"struct.sketch::hash::InvH.10" = type <{ i64, i64, [8 x i8] }>
%"class.sketch::hash::KWiseIndependentPolynomialHash" = type { %"struct.std::array" }
%"struct.std::array" = type { [4 x %"struct.std::array.12"] }
%"struct.std::array.12" = type { [3 x i32] }
%"struct.sketch::hash::MurFinHash" = type { i8 }
%"struct.sketch::hash::FusedReversible3.13" = type { %"struct.sketch::hash::XorMultiply", [8 x i8], %"struct.sketch::hash::MultiplyAddXoRot.14" }
%"struct.sketch::hash::MultiplyAddXoRot.14" = type { %"struct.sketch::hash::FusedReversible3.15" }
%"struct.sketch::hash::FusedReversible3.15" = type { %"struct.sketch::hash::InvH", %"struct.sketch::hash::InvH.0", %"struct.sketch::hash::InvH.16" }
%"struct.sketch::hash::InvH.16" = type <{ i64, i64, [8 x i8] }>
%"struct.sketch::hash::CEHasher" = type { [3 x i8] }
%"struct.std::array.20" = type { [10 x i64] }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }

@.str = external hidden unnamed_addr constant [40 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [72 x i8], align 1
@__PRETTY_FUNCTION__.main = external hidden unnamed_addr constant [23 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [36 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i64, align 8
  %7 = alloca %"struct.sketch::hash::WangHash", align 1
  %8 = alloca i64, align 8
  %9 = alloca %"struct.sketch::hash::MultiplyAddXoRot", align 8
  %10 = alloca %"struct.sketch::hash::MultiplyAddXor", align 8
  %11 = alloca %"struct.sketch::hash::XorMultiply", align 8
  %12 = alloca %"struct.sketch::hash::FusedReversible3.7", align 8
  %13 = alloca %"struct.sketch::hash::XorMultiply", align 8
  %14 = alloca %"class.sketch::hash::KWiseIndependentPolynomialHash", align 4
  %15 = alloca %"struct.sketch::hash::MurFinHash", align 1
  %16 = alloca %"struct.sketch::hash::FusedReversible3.13", align 8
  %17 = alloca %"struct.sketch::hash::CEHasher", align 1
  %18 = alloca %"struct.std::array.20", align 8
  %19 = alloca %"class.std::chrono::time_point", align 8
  %20 = alloca i64, align 8
  %21 = alloca %"class.std::vector", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca i64, align 8
  %26 = alloca i32, align 4
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca %"class.std::chrono::time_point", align 8
  %30 = alloca %"class.std::chrono::duration", align 8
  %31 = alloca %"class.std::chrono::duration", align 8
  %32 = alloca i64, align 8
  %33 = alloca %"class.std::chrono::time_point", align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca %"class.std::chrono::time_point", align 8
  %38 = alloca %"class.std::chrono::duration", align 8
  %39 = alloca %"class.std::chrono::duration", align 8
  %40 = alloca i64, align 8
  %41 = alloca %"class.std::chrono::time_point", align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca %"class.std::chrono::time_point", align 8
  %46 = alloca %"class.std::chrono::duration", align 8
  %47 = alloca %"class.std::chrono::duration", align 8
  %48 = alloca i64, align 8
  %49 = alloca %"class.std::chrono::time_point", align 8
  %50 = alloca i64, align 8
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca %"class.std::chrono::time_point", align 8
  %54 = alloca %"class.std::chrono::duration", align 8
  %55 = alloca %"class.std::chrono::duration", align 8
  %56 = alloca i64, align 8
  %57 = alloca %"class.std::chrono::time_point", align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca %"class.std::chrono::time_point", align 8
  %62 = alloca %"class.std::chrono::duration", align 8
  %63 = alloca %"class.std::chrono::duration", align 8
  %64 = alloca i64, align 8
  %65 = alloca %"class.std::chrono::time_point", align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca %"class.std::chrono::time_point", align 8
  %70 = alloca %"class.std::chrono::duration", align 8
  %71 = alloca %"class.std::chrono::duration", align 8
  %72 = alloca i64, align 8
  %73 = alloca %"class.std::chrono::time_point", align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca i64, align 8
  %77 = alloca %"class.std::chrono::time_point", align 8
  %78 = alloca %"class.std::chrono::duration", align 8
  %79 = alloca %"class.std::chrono::duration", align 8
  %80 = alloca i64, align 8
  %81 = alloca %"class.std::chrono::time_point", align 8
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %84 = alloca i64, align 8
  %85 = alloca %"class.std::chrono::time_point", align 8
  %86 = alloca %"class.std::chrono::duration", align 8
  %87 = alloca %"class.std::chrono::duration", align 8
  %88 = alloca i64, align 8
  %89 = alloca %"class.std::chrono::time_point", align 8
  %90 = alloca i64, align 8
  %91 = alloca i64, align 8
  %92 = alloca i64, align 8
  %93 = alloca %"class.std::chrono::time_point", align 8
  %94 = alloca %"class.std::chrono::duration", align 8
  %95 = alloca %"class.std::chrono::duration", align 8
  %96 = alloca i64, align 8
  %97 = alloca %"class.std::chrono::time_point", align 8
  %98 = alloca i64, align 8
  %99 = alloca i64, align 8
  %100 = alloca i64, align 8
  %101 = alloca %"class.std::chrono::time_point", align 8
  %102 = alloca %"class.std::chrono::duration", align 8
  %103 = alloca %"class.std::chrono::duration", align 8
  %104 = alloca i64, align 8
  %105 = alloca i64, align 8
  %106 = alloca %"class.std::chrono::time_point", align 8
  %107 = alloca i64, align 8
  %108 = alloca i64, align 8
  %109 = alloca i64, align 8
  %110 = alloca %"class.std::chrono::time_point", align 8
  %111 = alloca %"class.std::chrono::duration", align 8
  %112 = alloca %"class.std::chrono::duration", align 8
  %113 = alloca i64, align 8
  %114 = alloca %"class.std::chrono::time_point", align 8
  %115 = alloca i64, align 8
  %116 = alloca i64, align 8
  %117 = alloca i64, align 8
  %118 = alloca %"class.std::chrono::time_point", align 8
  %119 = alloca %"class.std::chrono::duration", align 8
  %120 = alloca %"class.std::chrono::duration", align 8
  %121 = alloca i64, align 8
  %122 = alloca %"class.std::chrono::time_point", align 8
  %123 = alloca i64, align 8
  %124 = alloca i64, align 8
  %125 = alloca i64, align 8
  %126 = alloca %"class.std::chrono::time_point", align 8
  %127 = alloca %"class.std::chrono::duration", align 8
  %128 = alloca %"class.std::chrono::duration", align 8
  %129 = alloca i64, align 8
  %130 = alloca %"class.std::chrono::time_point", align 8
  %131 = alloca i64, align 8
  %132 = alloca i64, align 8
  %133 = alloca i64, align 8
  %134 = alloca %"class.std::chrono::time_point", align 8
  %135 = alloca %"class.std::chrono::duration", align 8
  %136 = alloca %"class.std::chrono::duration", align 8
  %137 = alloca i64, align 8
  %138 = alloca %"class.std::chrono::time_point", align 8
  %139 = alloca i64, align 8
  %140 = alloca i64, align 8
  %141 = alloca i64, align 8
  %142 = alloca %"class.std::chrono::time_point", align 8
  %143 = alloca %"class.std::chrono::duration", align 8
  %144 = alloca %"class.std::chrono::duration", align 8
  %145 = alloca i64, align 8
  %146 = alloca %"class.std::chrono::time_point", align 8
  %147 = alloca i64, align 8
  %148 = alloca i64, align 8
  %149 = alloca i64, align 8
  %150 = alloca %"class.std::chrono::time_point", align 8
  %151 = alloca %"class.std::chrono::duration", align 8
  %152 = alloca %"class.std::chrono::duration", align 8
  %153 = alloca i64, align 8
  %154 = alloca %"class.std::chrono::time_point", align 8
  %155 = alloca i64, align 8
  %156 = alloca i64, align 8
  %157 = alloca i64, align 8
  %158 = alloca %"class.std::chrono::time_point", align 8
  %159 = alloca %"class.std::chrono::duration", align 8
  %160 = alloca %"class.std::chrono::duration", align 8
  %161 = alloca i64, align 8
  %162 = alloca %"class.std::chrono::time_point", align 8
  %163 = alloca i64, align 8
  %164 = alloca i64, align 8
  %165 = alloca i64, align 8
  %166 = alloca %"class.std::chrono::time_point", align 8
  %167 = alloca %"class.std::chrono::duration", align 8
  %168 = alloca %"class.std::chrono::duration", align 8
  %169 = alloca i64, align 8
  %170 = alloca %"class.std::chrono::time_point", align 8
  %171 = alloca i64, align 8
  %172 = alloca i64, align 8
  %173 = alloca i64, align 8
  %174 = alloca %"class.std::chrono::time_point", align 8
  %175 = alloca %"class.std::chrono::duration", align 8
  %176 = alloca %"class.std::chrono::duration", align 8
  %177 = alloca i64, align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #11
  store i64 100000000, ptr %6, align 8, !tbaa !11
  %178 = load i32, ptr %4, align 4, !tbaa !5
  %179 = icmp sgt i32 %178, 1
  br i1 %179, label %180, label %185

180:                                              ; preds = %2
  %181 = load ptr, ptr %5, align 8, !tbaa !9
  %182 = getelementptr inbounds ptr, ptr %181, i64 1
  %183 = load ptr, ptr %182, align 8, !tbaa !9
  %184 = call i64 @strtoull(ptr noundef %183, ptr noundef null, i32 noundef 10) #11
  store i64 %184, ptr %6, align 8, !tbaa !11
  br label %185

185:                                              ; preds = %180, %2
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #11
  call void @_ZN6sketch4hash8WangHashC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(1) %7)
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #11
  %186 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %7, i64 noundef 1337)
  %187 = add i64 %186, 17
  store i64 %187, ptr %8, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 72, ptr %9) #11
  %188 = load i64, ptr %8, align 8, !tbaa !11
  %189 = load i64, ptr %8, align 8, !tbaa !11
  %190 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %7, i64 noundef %189)
  call void @_ZN6sketch4hash16MultiplyAddXoRotILm33EEC2Emm(ptr noundef nonnull align 8 dereferenceable(72) %9, i64 noundef %188, i64 noundef %190)
  call void @llvm.lifetime.start.p0(i64 72, ptr %10) #11
  %191 = load i64, ptr %8, align 8, !tbaa !11
  call void @_ZN6sketch4hash14MultiplyAddXorC2Emm(ptr noundef nonnull align 8 dereferenceable(72) %10, i64 noundef %191, i64 noundef -2054159557099562467)
  call void @llvm.lifetime.start.p0(i64 48, ptr %11) #11
  %192 = load i64, ptr %8, align 8, !tbaa !11
  %193 = load i64, ptr %8, align 8, !tbaa !11
  %194 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %7, i64 noundef %193)
  call void @_ZN6sketch4hash11XorMultiplyC2Emm(ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %192, i64 noundef %194)
  call void @llvm.lifetime.start.p0(i64 104, ptr %12) #11
  %195 = load i64, ptr %8, align 8, !tbaa !11
  %196 = load i64, ptr %8, align 8, !tbaa !11
  %197 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %7, i64 noundef %196)
  call void @_ZN6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEC2Emm(ptr noundef nonnull align 8 dereferenceable(104) %12, i64 noundef %195, i64 noundef %197)
  call void @llvm.lifetime.start.p0(i64 48, ptr %13) #11
  %198 = load i64, ptr %8, align 8, !tbaa !11
  %199 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %7, i64 noundef %198)
  %200 = load i64, ptr %8, align 8, !tbaa !11
  %201 = xor i64 %199, %200
  %202 = or i64 %201, 1
  %203 = load i64, ptr %8, align 8, !tbaa !11
  %204 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %7, i64 noundef %203)
  %205 = or i64 %204, 1
  call void @_ZN6sketch4hash11XorMultiplyC2Emm(ptr noundef nonnull align 8 dereferenceable(48) %13, i64 noundef %202, i64 noundef %205)
  call void @llvm.lifetime.start.p0(i64 48, ptr %14) #11
  call void @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EEC2Em(ptr noundef nonnull align 4 dereferenceable(48) %14, i64 noundef 137)
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #11
  call void @_ZN6sketch4hash10MurFinHashC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(1) %15)
  call void @llvm.lifetime.start.p0(i64 128, ptr %16) #11
  %206 = load i64, ptr %8, align 8, !tbaa !11
  %207 = load i64, ptr %8, align 8, !tbaa !11
  %208 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %7, i64 noundef %207)
  call void @_ZN6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEC2Emm(ptr noundef nonnull align 8 dereferenceable(128) %16, i64 noundef %206, i64 noundef %208)
  call void @llvm.lifetime.start.p0(i64 3, ptr %17) #11
  call void @_ZN6sketch4hash8CEHasherC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(3) %17)
  call void @llvm.lifetime.start.p0(i64 80, ptr %18) #11
  call void @llvm.memset.p0.i64(ptr align 8 %18, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #11
  %209 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %210 = getelementptr inbounds %"class.std::chrono::time_point", ptr %19, i32 0, i32 0
  %211 = getelementptr inbounds %"class.std::chrono::duration", ptr %210, i32 0, i32 0
  store i64 %209, ptr %211, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #11
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #11
  %212 = load i64, ptr %6, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #11
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #11
  invoke void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %212, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %213 unwind label %218

213:                                              ; preds = %185
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #11
  store i64 0, ptr %25, align 8, !tbaa !11
  br label %214

214:                                              ; preds = %259, %213
  %215 = load i64, ptr %25, align 8, !tbaa !11
  %216 = icmp ult i64 %215, 5
  br i1 %216, label %222, label %217

217:                                              ; preds = %214
  store i32 2, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  br label %262

218:                                              ; preds = %185
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %23, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %24, align 4
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #11
  br label %1861

222:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #11
  store i64 0, ptr %27, align 8, !tbaa !11
  br label %223

223:                                              ; preds = %250, %222
  %224 = load i64, ptr %27, align 8, !tbaa !11
  %225 = load i64, ptr %6, align 8, !tbaa !11
  %226 = icmp ult i64 %224, %225
  br i1 %226, label %228, label %227

227:                                              ; preds = %223
  store i32 5, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  br label %258

228:                                              ; preds = %223
  %229 = load i64, ptr %27, align 8, !tbaa !11
  %230 = invoke noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %7, i64 noundef %229)
          to label %231 unwind label %238

231:                                              ; preds = %228
  %232 = invoke noundef i64 @_Z15irving_inv_hashm(i64 noundef %230)
          to label %233 unwind label %238

233:                                              ; preds = %231
  %234 = load i64, ptr %27, align 8, !tbaa !11
  %235 = icmp eq i64 %232, %234
  br i1 %235, label %236, label %237

236:                                              ; preds = %233
  br label %243

237:                                              ; preds = %233
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 66, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

238:                                              ; preds = %231, %228
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %23, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %24, align 4
  br label %257

242:                                              ; No predecessors!
  br label %243

243:                                              ; preds = %242, %236
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #11
  %244 = load i64, ptr %27, align 8, !tbaa !11
  %245 = invoke noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %7, i64 noundef %244)
          to label %246 unwind label %253

246:                                              ; preds = %243
  %247 = invoke noundef i64 @_Z15irving_inv_hashm(i64 noundef %245)
          to label %248 unwind label %253

248:                                              ; preds = %246
  store i64 %247, ptr %28, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %249 unwind label %253

249:                                              ; preds = %248
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  br label %250

250:                                              ; preds = %249
  %251 = load i64, ptr %27, align 8, !tbaa !11
  %252 = add i64 %251, 1
  store i64 %252, ptr %27, align 8, !tbaa !11
  br label %223, !llvm.loop !13

253:                                              ; preds = %248, %246, %243
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %23, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  br label %257

257:                                              ; preds = %253, %238
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  br label %1860

258:                                              ; preds = %227
  br label %259

259:                                              ; preds = %258
  %260 = load i64, ptr %25, align 8, !tbaa !11
  %261 = add i64 %260, 1
  store i64 %261, ptr %25, align 8, !tbaa !11
  br label %214, !llvm.loop !15

262:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #11
  %263 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %264 = getelementptr inbounds %"class.std::chrono::time_point", ptr %29, i32 0, i32 0
  %265 = getelementptr inbounds %"class.std::chrono::duration", ptr %264, i32 0, i32 0
  store i64 %263, ptr %265, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #11
  %266 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %267 unwind label %285

267:                                              ; preds = %262
  %268 = getelementptr inbounds %"class.std::chrono::duration", ptr %30, i32 0, i32 0
  store i64 %266, ptr %268, align 8
  %269 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %270 unwind label %285

270:                                              ; preds = %267
  %271 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 0) #11
  store i64 %269, ptr %271, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  %273 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %274 unwind label %289

274:                                              ; preds = %270
  %275 = getelementptr inbounds %"class.std::chrono::duration", ptr %31, i32 0, i32 0
  store i64 %273, ptr %275, align 8
  %276 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %277 unwind label %289

277:                                              ; preds = %274
  %278 = load i64, ptr %20, align 8, !tbaa !11
  %279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %272, ptr noundef @.str.2, i64 noundef %276, i64 noundef %278) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  store i64 0, ptr %32, align 8, !tbaa !11
  br label %280

280:                                              ; preds = %313, %277
  %281 = load i64, ptr %32, align 8, !tbaa !11
  %282 = load i64, ptr %6, align 8, !tbaa !11
  %283 = icmp ult i64 %281, %282
  br i1 %283, label %293, label %284

284:                                              ; preds = %280
  store i32 8, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %316

285:                                              ; preds = %267, %262
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %23, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  br label %1859

289:                                              ; preds = %274, %270
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %23, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  br label %1859

293:                                              ; preds = %280
  %294 = load i64, ptr %32, align 8, !tbaa !11
  %295 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %294) #11
  %296 = load i64, ptr %295, align 8, !tbaa !11
  %297 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %9, i64 noundef %296)
          to label %298 unwind label %307

298:                                              ; preds = %293
  %299 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %9, i64 noundef %297)
          to label %300 unwind label %307

300:                                              ; preds = %298
  %301 = load i64, ptr %32, align 8, !tbaa !11
  %302 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %301) #11
  %303 = load i64, ptr %302, align 8, !tbaa !11
  %304 = icmp eq i64 %299, %303
  br i1 %304, label %305, label %306

305:                                              ; preds = %300
  br label %312

306:                                              ; preds = %300
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 88, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

307:                                              ; preds = %298, %293
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %23, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %1859

311:                                              ; No predecessors!
  br label %312

312:                                              ; preds = %311, %305
  br label %313

313:                                              ; preds = %312
  %314 = load i64, ptr %32, align 8, !tbaa !11
  %315 = add i64 %314, 1
  store i64 %315, ptr %32, align 8, !tbaa !11
  br label %280, !llvm.loop !16

316:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  %317 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %318 = getelementptr inbounds %"class.std::chrono::time_point", ptr %33, i32 0, i32 0
  %319 = getelementptr inbounds %"class.std::chrono::duration", ptr %318, i32 0, i32 0
  store i64 %317, ptr %319, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %33, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  store i64 0, ptr %34, align 8, !tbaa !11
  br label %320

320:                                              ; preds = %345, %316
  %321 = load i64, ptr %34, align 8, !tbaa !11
  %322 = icmp ult i64 %321, 5
  br i1 %322, label %324, label %323

323:                                              ; preds = %320
  store i32 11, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  br label %348

324:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #11
  store i64 0, ptr %35, align 8, !tbaa !11
  br label %325

325:                                              ; preds = %337, %324
  %326 = load i64, ptr %35, align 8, !tbaa !11
  %327 = load i64, ptr %6, align 8, !tbaa !11
  %328 = icmp ult i64 %326, %327
  br i1 %328, label %330, label %329

329:                                              ; preds = %325
  store i32 14, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  br label %344

330:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #11
  %331 = load i64, ptr %35, align 8, !tbaa !11
  %332 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %331) #11
  %333 = load i64, ptr %332, align 8, !tbaa !11
  %334 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %9, i64 noundef %333)
          to label %335 unwind label %340

335:                                              ; preds = %330
  store i64 %334, ptr %36, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %336 unwind label %340

336:                                              ; preds = %335
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  br label %337

337:                                              ; preds = %336
  %338 = load i64, ptr %35, align 8, !tbaa !11
  %339 = add i64 %338, 1
  store i64 %339, ptr %35, align 8, !tbaa !11
  br label %325, !llvm.loop !18

340:                                              ; preds = %335, %330
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %23, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  br label %1859

344:                                              ; preds = %329
  br label %345

345:                                              ; preds = %344
  %346 = load i64, ptr %34, align 8, !tbaa !11
  %347 = add i64 %346, 1
  store i64 %347, ptr %34, align 8, !tbaa !11
  br label %320, !llvm.loop !19

348:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #11
  %349 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %350 = getelementptr inbounds %"class.std::chrono::time_point", ptr %37, i32 0, i32 0
  %351 = getelementptr inbounds %"class.std::chrono::duration", ptr %350, i32 0, i32 0
  store i64 %349, ptr %351, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %37, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #11
  %352 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %353 unwind label %371

353:                                              ; preds = %348
  %354 = getelementptr inbounds %"class.std::chrono::duration", ptr %38, i32 0, i32 0
  store i64 %352, ptr %354, align 8
  %355 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %356 unwind label %371

356:                                              ; preds = %353
  %357 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 1) #11
  store i64 %355, ptr %357, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #11
  %359 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %360 unwind label %375

360:                                              ; preds = %356
  %361 = getelementptr inbounds %"class.std::chrono::duration", ptr %39, i32 0, i32 0
  store i64 %359, ptr %361, align 8
  %362 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %363 unwind label %375

363:                                              ; preds = %360
  %364 = load i64, ptr %20, align 8, !tbaa !11
  %365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef @.str.4, ptr noundef @.str.5, i64 noundef %362, i64 noundef %364) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #11
  store i64 0, ptr %40, align 8, !tbaa !11
  br label %366

366:                                              ; preds = %399, %363
  %367 = load i64, ptr %40, align 8, !tbaa !11
  %368 = load i64, ptr %6, align 8, !tbaa !11
  %369 = icmp ult i64 %367, %368
  br i1 %369, label %379, label %370

370:                                              ; preds = %366
  store i32 17, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  br label %402

371:                                              ; preds = %353, %348
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %23, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  br label %1859

375:                                              ; preds = %360, %356
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %23, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  br label %1859

379:                                              ; preds = %366
  %380 = load i64, ptr %40, align 8, !tbaa !11
  %381 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %380) #11
  %382 = load i64, ptr %381, align 8, !tbaa !11
  %383 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %10, i64 noundef %382)
          to label %384 unwind label %393

384:                                              ; preds = %379
  %385 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %10, i64 noundef %383)
          to label %386 unwind label %393

386:                                              ; preds = %384
  %387 = load i64, ptr %40, align 8, !tbaa !11
  %388 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %387) #11
  %389 = load i64, ptr %388, align 8, !tbaa !11
  %390 = icmp eq i64 %385, %389
  br i1 %390, label %391, label %392

391:                                              ; preds = %386
  br label %398

392:                                              ; preds = %386
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 89, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

393:                                              ; preds = %384, %379
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %23, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  br label %1859

397:                                              ; No predecessors!
  br label %398

398:                                              ; preds = %397, %391
  br label %399

399:                                              ; preds = %398
  %400 = load i64, ptr %40, align 8, !tbaa !11
  %401 = add i64 %400, 1
  store i64 %401, ptr %40, align 8, !tbaa !11
  br label %366, !llvm.loop !20

402:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #11
  %403 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %404 = getelementptr inbounds %"class.std::chrono::time_point", ptr %41, i32 0, i32 0
  %405 = getelementptr inbounds %"class.std::chrono::duration", ptr %404, i32 0, i32 0
  store i64 %403, ptr %405, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %41, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #11
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  store i64 0, ptr %42, align 8, !tbaa !11
  br label %406

406:                                              ; preds = %431, %402
  %407 = load i64, ptr %42, align 8, !tbaa !11
  %408 = icmp ult i64 %407, 5
  br i1 %408, label %410, label %409

409:                                              ; preds = %406
  store i32 20, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %434

410:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #11
  store i64 0, ptr %43, align 8, !tbaa !11
  br label %411

411:                                              ; preds = %423, %410
  %412 = load i64, ptr %43, align 8, !tbaa !11
  %413 = load i64, ptr %6, align 8, !tbaa !11
  %414 = icmp ult i64 %412, %413
  br i1 %414, label %416, label %415

415:                                              ; preds = %411
  store i32 23, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  br label %430

416:                                              ; preds = %411
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #11
  %417 = load i64, ptr %43, align 8, !tbaa !11
  %418 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %417) #11
  %419 = load i64, ptr %418, align 8, !tbaa !11
  %420 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %10, i64 noundef %419)
          to label %421 unwind label %426

421:                                              ; preds = %416
  store i64 %420, ptr %44, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %422 unwind label %426

422:                                              ; preds = %421
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  br label %423

423:                                              ; preds = %422
  %424 = load i64, ptr %43, align 8, !tbaa !11
  %425 = add i64 %424, 1
  store i64 %425, ptr %43, align 8, !tbaa !11
  br label %411, !llvm.loop !21

426:                                              ; preds = %421, %416
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %23, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %1859

430:                                              ; preds = %415
  br label %431

431:                                              ; preds = %430
  %432 = load i64, ptr %42, align 8, !tbaa !11
  %433 = add i64 %432, 1
  store i64 %433, ptr %42, align 8, !tbaa !11
  br label %406, !llvm.loop !22

434:                                              ; preds = %409
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  %435 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %436 = getelementptr inbounds %"class.std::chrono::time_point", ptr %45, i32 0, i32 0
  %437 = getelementptr inbounds %"class.std::chrono::duration", ptr %436, i32 0, i32 0
  store i64 %435, ptr %437, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %45, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  %438 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %439 unwind label %457

439:                                              ; preds = %434
  %440 = getelementptr inbounds %"class.std::chrono::duration", ptr %46, i32 0, i32 0
  store i64 %438, ptr %440, align 8
  %441 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %442 unwind label %457

442:                                              ; preds = %439
  %443 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 2) #11
  store i64 %441, ptr %443, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  %444 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #11
  %445 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %446 unwind label %461

446:                                              ; preds = %442
  %447 = getelementptr inbounds %"class.std::chrono::duration", ptr %47, i32 0, i32 0
  store i64 %445, ptr %447, align 8
  %448 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %449 unwind label %461

449:                                              ; preds = %446
  %450 = load i64, ptr %20, align 8, !tbaa !11
  %451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %444, ptr noundef @.str.4, ptr noundef @.str.7, i64 noundef %448, i64 noundef %450) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #11
  store i64 0, ptr %48, align 8, !tbaa !11
  br label %452

452:                                              ; preds = %485, %449
  %453 = load i64, ptr %48, align 8, !tbaa !11
  %454 = load i64, ptr %6, align 8, !tbaa !11
  %455 = icmp ult i64 %453, %454
  br i1 %455, label %465, label %456

456:                                              ; preds = %452
  store i32 26, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #11
  br label %488

457:                                              ; preds = %439, %434
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %23, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  br label %1859

461:                                              ; preds = %446, %442
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %23, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  br label %1859

465:                                              ; preds = %452
  %466 = load i64, ptr %48, align 8, !tbaa !11
  %467 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %466) #11
  %468 = load i64, ptr %467, align 8, !tbaa !11
  %469 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %468)
          to label %470 unwind label %479

470:                                              ; preds = %465
  %471 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %469)
          to label %472 unwind label %479

472:                                              ; preds = %470
  %473 = load i64, ptr %48, align 8, !tbaa !11
  %474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %473) #11
  %475 = load i64, ptr %474, align 8, !tbaa !11
  %476 = icmp eq i64 %471, %475
  br i1 %476, label %477, label %478

477:                                              ; preds = %472
  br label %484

478:                                              ; preds = %472
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 90, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

479:                                              ; preds = %470, %465
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %23, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #11
  br label %1859

483:                                              ; No predecessors!
  br label %484

484:                                              ; preds = %483, %477
  br label %485

485:                                              ; preds = %484
  %486 = load i64, ptr %48, align 8, !tbaa !11
  %487 = add i64 %486, 1
  store i64 %487, ptr %48, align 8, !tbaa !11
  br label %452, !llvm.loop !23

488:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #11
  %489 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %490 = getelementptr inbounds %"class.std::chrono::time_point", ptr %49, i32 0, i32 0
  %491 = getelementptr inbounds %"class.std::chrono::duration", ptr %490, i32 0, i32 0
  store i64 %489, ptr %491, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %49, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #11
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #11
  store i64 0, ptr %50, align 8, !tbaa !11
  br label %492

492:                                              ; preds = %517, %488
  %493 = load i64, ptr %50, align 8, !tbaa !11
  %494 = icmp ult i64 %493, 5
  br i1 %494, label %496, label %495

495:                                              ; preds = %492
  store i32 29, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  br label %520

496:                                              ; preds = %492
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #11
  store i64 0, ptr %51, align 8, !tbaa !11
  br label %497

497:                                              ; preds = %509, %496
  %498 = load i64, ptr %51, align 8, !tbaa !11
  %499 = load i64, ptr %6, align 8, !tbaa !11
  %500 = icmp ult i64 %498, %499
  br i1 %500, label %502, label %501

501:                                              ; preds = %497
  store i32 32, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #11
  br label %516

502:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #11
  %503 = load i64, ptr %51, align 8, !tbaa !11
  %504 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %503) #11
  %505 = load i64, ptr %504, align 8, !tbaa !11
  %506 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %505)
          to label %507 unwind label %512

507:                                              ; preds = %502
  store i64 %506, ptr %52, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %508 unwind label %512

508:                                              ; preds = %507
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #11
  br label %509

509:                                              ; preds = %508
  %510 = load i64, ptr %51, align 8, !tbaa !11
  %511 = add i64 %510, 1
  store i64 %511, ptr %51, align 8, !tbaa !11
  br label %497, !llvm.loop !24

512:                                              ; preds = %507, %502
  %513 = landingpad { ptr, i32 }
          cleanup
  %514 = extractvalue { ptr, i32 } %513, 0
  store ptr %514, ptr %23, align 8
  %515 = extractvalue { ptr, i32 } %513, 1
  store i32 %515, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  br label %1859

516:                                              ; preds = %501
  br label %517

517:                                              ; preds = %516
  %518 = load i64, ptr %50, align 8, !tbaa !11
  %519 = add i64 %518, 1
  store i64 %519, ptr %50, align 8, !tbaa !11
  br label %492, !llvm.loop !25

520:                                              ; preds = %495
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  %521 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %522 = getelementptr inbounds %"class.std::chrono::time_point", ptr %53, i32 0, i32 0
  %523 = getelementptr inbounds %"class.std::chrono::duration", ptr %522, i32 0, i32 0
  store i64 %521, ptr %523, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %53, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  %524 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %525 unwind label %543

525:                                              ; preds = %520
  %526 = getelementptr inbounds %"class.std::chrono::duration", ptr %54, i32 0, i32 0
  store i64 %524, ptr %526, align 8
  %527 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %528 unwind label %543

528:                                              ; preds = %525
  %529 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 3) #11
  store i64 %527, ptr %529, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  %530 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  %531 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %532 unwind label %547

532:                                              ; preds = %528
  %533 = getelementptr inbounds %"class.std::chrono::duration", ptr %55, i32 0, i32 0
  store i64 %531, ptr %533, align 8
  %534 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %535 unwind label %547

535:                                              ; preds = %532
  %536 = load i64, ptr %20, align 8, !tbaa !11
  %537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %530, ptr noundef @.str.4, ptr noundef @.str.9, i64 noundef %534, i64 noundef %536) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #11
  store i64 0, ptr %56, align 8, !tbaa !11
  br label %538

538:                                              ; preds = %571, %535
  %539 = load i64, ptr %56, align 8, !tbaa !11
  %540 = load i64, ptr %6, align 8, !tbaa !11
  %541 = icmp ult i64 %539, %540
  br i1 %541, label %551, label %542

542:                                              ; preds = %538
  store i32 35, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  br label %574

543:                                              ; preds = %525, %520
  %544 = landingpad { ptr, i32 }
          cleanup
  %545 = extractvalue { ptr, i32 } %544, 0
  store ptr %545, ptr %23, align 8
  %546 = extractvalue { ptr, i32 } %544, 1
  store i32 %546, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  br label %1859

547:                                              ; preds = %532, %528
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %23, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %1859

551:                                              ; preds = %538
  %552 = load i64, ptr %56, align 8, !tbaa !11
  %553 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %552) #11
  %554 = load i64, ptr %553, align 8, !tbaa !11
  %555 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %12, i64 noundef %554)
          to label %556 unwind label %565

556:                                              ; preds = %551
  %557 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %12, i64 noundef %555)
          to label %558 unwind label %565

558:                                              ; preds = %556
  %559 = load i64, ptr %56, align 8, !tbaa !11
  %560 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %559) #11
  %561 = load i64, ptr %560, align 8, !tbaa !11
  %562 = icmp eq i64 %557, %561
  br i1 %562, label %563, label %564

563:                                              ; preds = %558
  br label %570

564:                                              ; preds = %558
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 91, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

565:                                              ; preds = %556, %551
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %23, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  br label %1859

569:                                              ; No predecessors!
  br label %570

570:                                              ; preds = %569, %563
  br label %571

571:                                              ; preds = %570
  %572 = load i64, ptr %56, align 8, !tbaa !11
  %573 = add i64 %572, 1
  store i64 %573, ptr %56, align 8, !tbaa !11
  br label %538, !llvm.loop !26

574:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  %575 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %576 = getelementptr inbounds %"class.std::chrono::time_point", ptr %57, i32 0, i32 0
  %577 = getelementptr inbounds %"class.std::chrono::duration", ptr %576, i32 0, i32 0
  store i64 %575, ptr %577, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %57, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  store i64 0, ptr %58, align 8, !tbaa !11
  br label %578

578:                                              ; preds = %603, %574
  %579 = load i64, ptr %58, align 8, !tbaa !11
  %580 = icmp ult i64 %579, 5
  br i1 %580, label %582, label %581

581:                                              ; preds = %578
  store i32 38, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  br label %606

582:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  store i64 0, ptr %59, align 8, !tbaa !11
  br label %583

583:                                              ; preds = %595, %582
  %584 = load i64, ptr %59, align 8, !tbaa !11
  %585 = load i64, ptr %6, align 8, !tbaa !11
  %586 = icmp ult i64 %584, %585
  br i1 %586, label %588, label %587

587:                                              ; preds = %583
  store i32 41, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  br label %602

588:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %589 = load i64, ptr %59, align 8, !tbaa !11
  %590 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %589) #11
  %591 = load i64, ptr %590, align 8, !tbaa !11
  %592 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %12, i64 noundef %591)
          to label %593 unwind label %598

593:                                              ; preds = %588
  store i64 %592, ptr %60, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %594 unwind label %598

594:                                              ; preds = %593
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  br label %595

595:                                              ; preds = %594
  %596 = load i64, ptr %59, align 8, !tbaa !11
  %597 = add i64 %596, 1
  store i64 %597, ptr %59, align 8, !tbaa !11
  br label %583, !llvm.loop !27

598:                                              ; preds = %593, %588
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %23, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  br label %1859

602:                                              ; preds = %587
  br label %603

603:                                              ; preds = %602
  %604 = load i64, ptr %58, align 8, !tbaa !11
  %605 = add i64 %604, 1
  store i64 %605, ptr %58, align 8, !tbaa !11
  br label %578, !llvm.loop !28

606:                                              ; preds = %581
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  %607 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %608 = getelementptr inbounds %"class.std::chrono::time_point", ptr %61, i32 0, i32 0
  %609 = getelementptr inbounds %"class.std::chrono::duration", ptr %608, i32 0, i32 0
  store i64 %607, ptr %609, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %61, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  %610 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %611 unwind label %629

611:                                              ; preds = %606
  %612 = getelementptr inbounds %"class.std::chrono::duration", ptr %62, i32 0, i32 0
  store i64 %610, ptr %612, align 8
  %613 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %614 unwind label %629

614:                                              ; preds = %611
  %615 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 4) #11
  store i64 %613, ptr %615, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #11
  %617 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %618 unwind label %633

618:                                              ; preds = %614
  %619 = getelementptr inbounds %"class.std::chrono::duration", ptr %63, i32 0, i32 0
  store i64 %617, ptr %619, align 8
  %620 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %621 unwind label %633

621:                                              ; preds = %618
  %622 = load i64, ptr %20, align 8, !tbaa !11
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %616, ptr noundef @.str.4, ptr noundef @.str.11, i64 noundef %620, i64 noundef %622) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #11
  store i64 0, ptr %64, align 8, !tbaa !11
  br label %624

624:                                              ; preds = %638, %621
  %625 = load i64, ptr %64, align 8, !tbaa !11
  %626 = load i64, ptr %6, align 8, !tbaa !11
  %627 = icmp ult i64 %625, %626
  br i1 %627, label %637, label %628

628:                                              ; preds = %624
  store i32 44, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #11
  br label %641

629:                                              ; preds = %611, %606
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %23, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  br label %1859

633:                                              ; preds = %618, %614
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %23, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #11
  br label %1859

637:                                              ; preds = %624
  br label %638

638:                                              ; preds = %637
  %639 = load i64, ptr %64, align 8, !tbaa !11
  %640 = add i64 %639, 1
  store i64 %640, ptr %64, align 8, !tbaa !11
  br label %624, !llvm.loop !29

641:                                              ; preds = %628
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #11
  %642 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %643 = getelementptr inbounds %"class.std::chrono::time_point", ptr %65, i32 0, i32 0
  %644 = getelementptr inbounds %"class.std::chrono::duration", ptr %643, i32 0, i32 0
  store i64 %642, ptr %644, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %65, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #11
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #11
  store i64 0, ptr %66, align 8, !tbaa !11
  br label %645

645:                                              ; preds = %670, %641
  %646 = load i64, ptr %66, align 8, !tbaa !11
  %647 = icmp ult i64 %646, 5
  br i1 %647, label %649, label %648

648:                                              ; preds = %645
  store i32 47, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #11
  br label %673

649:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #11
  store i64 0, ptr %67, align 8, !tbaa !11
  br label %650

650:                                              ; preds = %662, %649
  %651 = load i64, ptr %67, align 8, !tbaa !11
  %652 = load i64, ptr %6, align 8, !tbaa !11
  %653 = icmp ult i64 %651, %652
  br i1 %653, label %655, label %654

654:                                              ; preds = %650
  store i32 50, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #11
  br label %669

655:                                              ; preds = %650
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #11
  %656 = load i64, ptr %67, align 8, !tbaa !11
  %657 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %656) #11
  %658 = load i64, ptr %657, align 8, !tbaa !11
  %659 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %14, i64 noundef %658)
          to label %660 unwind label %665

660:                                              ; preds = %655
  store i64 %659, ptr %68, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %661 unwind label %665

661:                                              ; preds = %660
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  br label %662

662:                                              ; preds = %661
  %663 = load i64, ptr %67, align 8, !tbaa !11
  %664 = add i64 %663, 1
  store i64 %664, ptr %67, align 8, !tbaa !11
  br label %650, !llvm.loop !30

665:                                              ; preds = %660, %655
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %23, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #11
  br label %1859

669:                                              ; preds = %654
  br label %670

670:                                              ; preds = %669
  %671 = load i64, ptr %66, align 8, !tbaa !11
  %672 = add i64 %671, 1
  store i64 %672, ptr %66, align 8, !tbaa !11
  br label %645, !llvm.loop !31

673:                                              ; preds = %648
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #11
  %674 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %675 = getelementptr inbounds %"class.std::chrono::time_point", ptr %69, i32 0, i32 0
  %676 = getelementptr inbounds %"class.std::chrono::duration", ptr %675, i32 0, i32 0
  store i64 %674, ptr %676, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %69, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #11
  %677 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %678 unwind label %696

678:                                              ; preds = %673
  %679 = getelementptr inbounds %"class.std::chrono::duration", ptr %70, i32 0, i32 0
  store i64 %677, ptr %679, align 8
  %680 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %681 unwind label %696

681:                                              ; preds = %678
  %682 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 5) #11
  store i64 %680, ptr %682, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #11
  %684 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %685 unwind label %700

685:                                              ; preds = %681
  %686 = getelementptr inbounds %"class.std::chrono::duration", ptr %71, i32 0, i32 0
  store i64 %684, ptr %686, align 8
  %687 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %688 unwind label %700

688:                                              ; preds = %685
  %689 = load i64, ptr %20, align 8, !tbaa !11
  %690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef @.str.4, ptr noundef @.str.12, i64 noundef %687, i64 noundef %689) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #11
  store i64 0, ptr %72, align 8, !tbaa !11
  br label %691

691:                                              ; preds = %724, %688
  %692 = load i64, ptr %72, align 8, !tbaa !11
  %693 = load i64, ptr %6, align 8, !tbaa !11
  %694 = icmp ult i64 %692, %693
  br i1 %694, label %704, label %695

695:                                              ; preds = %691
  store i32 53, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  br label %727

696:                                              ; preds = %678, %673
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %23, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  br label %1859

700:                                              ; preds = %685, %681
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %23, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #11
  br label %1859

704:                                              ; preds = %691
  %705 = load i64, ptr %72, align 8, !tbaa !11
  %706 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %705) #11
  %707 = load i64, ptr %706, align 8, !tbaa !11
  %708 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef %707)
          to label %709 unwind label %718

709:                                              ; preds = %704
  %710 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef %708)
          to label %711 unwind label %718

711:                                              ; preds = %709
  %712 = load i64, ptr %72, align 8, !tbaa !11
  %713 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %712) #11
  %714 = load i64, ptr %713, align 8, !tbaa !11
  %715 = icmp eq i64 %710, %714
  br i1 %715, label %716, label %717

716:                                              ; preds = %711
  br label %723

717:                                              ; preds = %711
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 93, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

718:                                              ; preds = %709, %704
  %719 = landingpad { ptr, i32 }
          cleanup
  %720 = extractvalue { ptr, i32 } %719, 0
  store ptr %720, ptr %23, align 8
  %721 = extractvalue { ptr, i32 } %719, 1
  store i32 %721, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #11
  br label %1859

722:                                              ; No predecessors!
  br label %723

723:                                              ; preds = %722, %716
  br label %724

724:                                              ; preds = %723
  %725 = load i64, ptr %72, align 8, !tbaa !11
  %726 = add i64 %725, 1
  store i64 %726, ptr %72, align 8, !tbaa !11
  br label %691, !llvm.loop !32

727:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #11
  %728 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %729 = getelementptr inbounds %"class.std::chrono::time_point", ptr %73, i32 0, i32 0
  %730 = getelementptr inbounds %"class.std::chrono::duration", ptr %729, i32 0, i32 0
  store i64 %728, ptr %730, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %73, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #11
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #11
  store i64 0, ptr %74, align 8, !tbaa !11
  br label %731

731:                                              ; preds = %756, %727
  %732 = load i64, ptr %74, align 8, !tbaa !11
  %733 = icmp ult i64 %732, 5
  br i1 %733, label %735, label %734

734:                                              ; preds = %731
  store i32 56, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #11
  br label %759

735:                                              ; preds = %731
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #11
  store i64 0, ptr %75, align 8, !tbaa !11
  br label %736

736:                                              ; preds = %748, %735
  %737 = load i64, ptr %75, align 8, !tbaa !11
  %738 = load i64, ptr %6, align 8, !tbaa !11
  %739 = icmp ult i64 %737, %738
  br i1 %739, label %741, label %740

740:                                              ; preds = %736
  store i32 59, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  br label %755

741:                                              ; preds = %736
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #11
  %742 = load i64, ptr %75, align 8, !tbaa !11
  %743 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %742) #11
  %744 = load i64, ptr %743, align 8, !tbaa !11
  %745 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef %744)
          to label %746 unwind label %751

746:                                              ; preds = %741
  store i64 %745, ptr %76, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %747 unwind label %751

747:                                              ; preds = %746
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #11
  br label %748

748:                                              ; preds = %747
  %749 = load i64, ptr %75, align 8, !tbaa !11
  %750 = add i64 %749, 1
  store i64 %750, ptr %75, align 8, !tbaa !11
  br label %736, !llvm.loop !33

751:                                              ; preds = %746, %741
  %752 = landingpad { ptr, i32 }
          cleanup
  %753 = extractvalue { ptr, i32 } %752, 0
  store ptr %753, ptr %23, align 8
  %754 = extractvalue { ptr, i32 } %752, 1
  store i32 %754, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #11
  br label %1859

755:                                              ; preds = %740
  br label %756

756:                                              ; preds = %755
  %757 = load i64, ptr %74, align 8, !tbaa !11
  %758 = add i64 %757, 1
  store i64 %758, ptr %74, align 8, !tbaa !11
  br label %731, !llvm.loop !34

759:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #11
  %760 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %761 = getelementptr inbounds %"class.std::chrono::time_point", ptr %77, i32 0, i32 0
  %762 = getelementptr inbounds %"class.std::chrono::duration", ptr %761, i32 0, i32 0
  store i64 %760, ptr %762, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %77, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  %763 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %764 unwind label %782

764:                                              ; preds = %759
  %765 = getelementptr inbounds %"class.std::chrono::duration", ptr %78, i32 0, i32 0
  store i64 %763, ptr %765, align 8
  %766 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %767 unwind label %782

767:                                              ; preds = %764
  %768 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 7) #11
  store i64 %766, ptr %768, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #11
  %770 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %771 unwind label %786

771:                                              ; preds = %767
  %772 = getelementptr inbounds %"class.std::chrono::duration", ptr %79, i32 0, i32 0
  store i64 %770, ptr %772, align 8
  %773 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %79)
          to label %774 unwind label %786

774:                                              ; preds = %771
  %775 = load i64, ptr %20, align 8, !tbaa !11
  %776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %769, ptr noundef @.str.4, ptr noundef @.str.14, i64 noundef %773, i64 noundef %775) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #11
  store i64 0, ptr %80, align 8, !tbaa !11
  br label %777

777:                                              ; preds = %810, %774
  %778 = load i64, ptr %80, align 8, !tbaa !11
  %779 = load i64, ptr %6, align 8, !tbaa !11
  %780 = icmp ult i64 %778, %779
  br i1 %780, label %790, label %781

781:                                              ; preds = %777
  store i32 62, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #11
  br label %813

782:                                              ; preds = %764, %759
  %783 = landingpad { ptr, i32 }
          cleanup
  %784 = extractvalue { ptr, i32 } %783, 0
  store ptr %784, ptr %23, align 8
  %785 = extractvalue { ptr, i32 } %783, 1
  store i32 %785, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  br label %1859

786:                                              ; preds = %771, %767
  %787 = landingpad { ptr, i32 }
          cleanup
  %788 = extractvalue { ptr, i32 } %787, 0
  store ptr %788, ptr %23, align 8
  %789 = extractvalue { ptr, i32 } %787, 1
  store i32 %789, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #11
  br label %1859

790:                                              ; preds = %777
  %791 = load i64, ptr %80, align 8, !tbaa !11
  %792 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %791) #11
  %793 = load i64, ptr %792, align 8, !tbaa !11
  %794 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %16, i64 noundef %793)
          to label %795 unwind label %804

795:                                              ; preds = %790
  %796 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %16, i64 noundef %794)
          to label %797 unwind label %804

797:                                              ; preds = %795
  %798 = load i64, ptr %80, align 8, !tbaa !11
  %799 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %798) #11
  %800 = load i64, ptr %799, align 8, !tbaa !11
  %801 = icmp eq i64 %796, %800
  br i1 %801, label %802, label %803

802:                                              ; preds = %797
  br label %809

803:                                              ; preds = %797
  call void @__assert_fail(ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 94, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

804:                                              ; preds = %795, %790
  %805 = landingpad { ptr, i32 }
          cleanup
  %806 = extractvalue { ptr, i32 } %805, 0
  store ptr %806, ptr %23, align 8
  %807 = extractvalue { ptr, i32 } %805, 1
  store i32 %807, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #11
  br label %1859

808:                                              ; No predecessors!
  br label %809

809:                                              ; preds = %808, %802
  br label %810

810:                                              ; preds = %809
  %811 = load i64, ptr %80, align 8, !tbaa !11
  %812 = add i64 %811, 1
  store i64 %812, ptr %80, align 8, !tbaa !11
  br label %777, !llvm.loop !35

813:                                              ; preds = %781
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #11
  %814 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %815 = getelementptr inbounds %"class.std::chrono::time_point", ptr %81, i32 0, i32 0
  %816 = getelementptr inbounds %"class.std::chrono::duration", ptr %815, i32 0, i32 0
  store i64 %814, ptr %816, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %81, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #11
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #11
  store i64 0, ptr %82, align 8, !tbaa !11
  br label %817

817:                                              ; preds = %842, %813
  %818 = load i64, ptr %82, align 8, !tbaa !11
  %819 = icmp ult i64 %818, 5
  br i1 %819, label %821, label %820

820:                                              ; preds = %817
  store i32 65, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  br label %845

821:                                              ; preds = %817
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #11
  store i64 0, ptr %83, align 8, !tbaa !11
  br label %822

822:                                              ; preds = %834, %821
  %823 = load i64, ptr %83, align 8, !tbaa !11
  %824 = load i64, ptr %6, align 8, !tbaa !11
  %825 = icmp ult i64 %823, %824
  br i1 %825, label %827, label %826

826:                                              ; preds = %822
  store i32 68, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  br label %841

827:                                              ; preds = %822
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #11
  %828 = load i64, ptr %83, align 8, !tbaa !11
  %829 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %828) #11
  %830 = load i64, ptr %829, align 8, !tbaa !11
  %831 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %16, i64 noundef %830)
          to label %832 unwind label %837

832:                                              ; preds = %827
  store i64 %831, ptr %84, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %833 unwind label %837

833:                                              ; preds = %832
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #11
  br label %834

834:                                              ; preds = %833
  %835 = load i64, ptr %83, align 8, !tbaa !11
  %836 = add i64 %835, 1
  store i64 %836, ptr %83, align 8, !tbaa !11
  br label %822, !llvm.loop !36

837:                                              ; preds = %832, %827
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %23, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #11
  br label %1859

841:                                              ; preds = %826
  br label %842

842:                                              ; preds = %841
  %843 = load i64, ptr %82, align 8, !tbaa !11
  %844 = add i64 %843, 1
  store i64 %844, ptr %82, align 8, !tbaa !11
  br label %817, !llvm.loop !37

845:                                              ; preds = %820
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #11
  %846 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %847 = getelementptr inbounds %"class.std::chrono::time_point", ptr %85, i32 0, i32 0
  %848 = getelementptr inbounds %"class.std::chrono::duration", ptr %847, i32 0, i32 0
  store i64 %846, ptr %848, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %85, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #11
  %849 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %850 unwind label %868

850:                                              ; preds = %845
  %851 = getelementptr inbounds %"class.std::chrono::duration", ptr %86, i32 0, i32 0
  store i64 %849, ptr %851, align 8
  %852 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %86)
          to label %853 unwind label %868

853:                                              ; preds = %850
  %854 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 8) #11
  store i64 %852, ptr %854, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #11
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #11
  %856 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %857 unwind label %872

857:                                              ; preds = %853
  %858 = getelementptr inbounds %"class.std::chrono::duration", ptr %87, i32 0, i32 0
  store i64 %856, ptr %858, align 8
  %859 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %860 unwind label %872

860:                                              ; preds = %857
  %861 = load i64, ptr %20, align 8, !tbaa !11
  %862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %855, ptr noundef @.str.4, ptr noundef @.str.16, i64 noundef %859, i64 noundef %861) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #11
  store i64 0, ptr %88, align 8, !tbaa !11
  br label %863

863:                                              ; preds = %896, %860
  %864 = load i64, ptr %88, align 8, !tbaa !11
  %865 = load i64, ptr %6, align 8, !tbaa !11
  %866 = icmp ult i64 %864, %865
  br i1 %866, label %876, label %867

867:                                              ; preds = %863
  store i32 71, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #11
  br label %899

868:                                              ; preds = %850, %845
  %869 = landingpad { ptr, i32 }
          cleanup
  %870 = extractvalue { ptr, i32 } %869, 0
  store ptr %870, ptr %23, align 8
  %871 = extractvalue { ptr, i32 } %869, 1
  store i32 %871, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #11
  br label %1859

872:                                              ; preds = %857, %853
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %23, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #11
  br label %1859

876:                                              ; preds = %863
  %877 = load i64, ptr %88, align 8, !tbaa !11
  %878 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %877) #11
  %879 = load i64, ptr %878, align 8, !tbaa !11
  %880 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %13, i64 noundef %879)
          to label %881 unwind label %890

881:                                              ; preds = %876
  %882 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %13, i64 noundef %880)
          to label %883 unwind label %890

883:                                              ; preds = %881
  %884 = load i64, ptr %88, align 8, !tbaa !11
  %885 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %884) #11
  %886 = load i64, ptr %885, align 8, !tbaa !11
  %887 = icmp eq i64 %882, %886
  br i1 %887, label %888, label %889

888:                                              ; preds = %883
  br label %895

889:                                              ; preds = %883
  call void @__assert_fail(ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 95, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

890:                                              ; preds = %881, %876
  %891 = landingpad { ptr, i32 }
          cleanup
  %892 = extractvalue { ptr, i32 } %891, 0
  store ptr %892, ptr %23, align 8
  %893 = extractvalue { ptr, i32 } %891, 1
  store i32 %893, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #11
  br label %1859

894:                                              ; No predecessors!
  br label %895

895:                                              ; preds = %894, %888
  br label %896

896:                                              ; preds = %895
  %897 = load i64, ptr %88, align 8, !tbaa !11
  %898 = add i64 %897, 1
  store i64 %898, ptr %88, align 8, !tbaa !11
  br label %863, !llvm.loop !38

899:                                              ; preds = %867
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #11
  %900 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %901 = getelementptr inbounds %"class.std::chrono::time_point", ptr %89, i32 0, i32 0
  %902 = getelementptr inbounds %"class.std::chrono::duration", ptr %901, i32 0, i32 0
  store i64 %900, ptr %902, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %89, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #11
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #11
  store i64 0, ptr %90, align 8, !tbaa !11
  br label %903

903:                                              ; preds = %928, %899
  %904 = load i64, ptr %90, align 8, !tbaa !11
  %905 = icmp ult i64 %904, 5
  br i1 %905, label %907, label %906

906:                                              ; preds = %903
  store i32 74, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #11
  br label %931

907:                                              ; preds = %903
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #11
  store i64 0, ptr %91, align 8, !tbaa !11
  br label %908

908:                                              ; preds = %920, %907
  %909 = load i64, ptr %91, align 8, !tbaa !11
  %910 = load i64, ptr %6, align 8, !tbaa !11
  %911 = icmp ult i64 %909, %910
  br i1 %911, label %913, label %912

912:                                              ; preds = %908
  store i32 77, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #11
  br label %927

913:                                              ; preds = %908
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #11
  %914 = load i64, ptr %91, align 8, !tbaa !11
  %915 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %914) #11
  %916 = load i64, ptr %915, align 8, !tbaa !11
  %917 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %13, i64 noundef %916)
          to label %918 unwind label %923

918:                                              ; preds = %913
  store i64 %917, ptr %92, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %92)
          to label %919 unwind label %923

919:                                              ; preds = %918
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #11
  br label %920

920:                                              ; preds = %919
  %921 = load i64, ptr %91, align 8, !tbaa !11
  %922 = add i64 %921, 1
  store i64 %922, ptr %91, align 8, !tbaa !11
  br label %908, !llvm.loop !39

923:                                              ; preds = %918, %913
  %924 = landingpad { ptr, i32 }
          cleanup
  %925 = extractvalue { ptr, i32 } %924, 0
  store ptr %925, ptr %23, align 8
  %926 = extractvalue { ptr, i32 } %924, 1
  store i32 %926, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #11
  br label %1859

927:                                              ; preds = %912
  br label %928

928:                                              ; preds = %927
  %929 = load i64, ptr %90, align 8, !tbaa !11
  %930 = add i64 %929, 1
  store i64 %930, ptr %90, align 8, !tbaa !11
  br label %903, !llvm.loop !40

931:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #11
  %932 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %933 = getelementptr inbounds %"class.std::chrono::time_point", ptr %93, i32 0, i32 0
  %934 = getelementptr inbounds %"class.std::chrono::duration", ptr %933, i32 0, i32 0
  store i64 %932, ptr %934, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %93, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #11
  %935 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %936 unwind label %954

936:                                              ; preds = %931
  %937 = getelementptr inbounds %"class.std::chrono::duration", ptr %94, i32 0, i32 0
  store i64 %935, ptr %937, align 8
  %938 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %94)
          to label %939 unwind label %954

939:                                              ; preds = %936
  %940 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 6) #11
  store i64 %938, ptr %940, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #11
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #11
  %942 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %943 unwind label %958

943:                                              ; preds = %939
  %944 = getelementptr inbounds %"class.std::chrono::duration", ptr %95, i32 0, i32 0
  store i64 %942, ptr %944, align 8
  %945 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %95)
          to label %946 unwind label %958

946:                                              ; preds = %943
  %947 = load i64, ptr %20, align 8, !tbaa !11
  %948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef @.str.4, ptr noundef @.str.18, i64 noundef %945, i64 noundef %947) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #11
  store i64 0, ptr %96, align 8, !tbaa !11
  br label %949

949:                                              ; preds = %982, %946
  %950 = load i64, ptr %96, align 8, !tbaa !11
  %951 = load i64, ptr %6, align 8, !tbaa !11
  %952 = icmp ult i64 %950, %951
  br i1 %952, label %962, label %953

953:                                              ; preds = %949
  store i32 80, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #11
  br label %985

954:                                              ; preds = %936, %931
  %955 = landingpad { ptr, i32 }
          cleanup
  %956 = extractvalue { ptr, i32 } %955, 0
  store ptr %956, ptr %23, align 8
  %957 = extractvalue { ptr, i32 } %955, 1
  store i32 %957, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #11
  br label %1859

958:                                              ; preds = %943, %939
  %959 = landingpad { ptr, i32 }
          cleanup
  %960 = extractvalue { ptr, i32 } %959, 0
  store ptr %960, ptr %23, align 8
  %961 = extractvalue { ptr, i32 } %959, 1
  store i32 %961, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  br label %1859

962:                                              ; preds = %949
  %963 = load i64, ptr %96, align 8, !tbaa !11
  %964 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %963) #11
  %965 = load i64, ptr %964, align 8, !tbaa !11
  %966 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %17, i64 noundef %965)
          to label %967 unwind label %976

967:                                              ; preds = %962
  %968 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %17, i64 noundef %966)
          to label %969 unwind label %976

969:                                              ; preds = %967
  %970 = load i64, ptr %96, align 8, !tbaa !11
  %971 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %970) #11
  %972 = load i64, ptr %971, align 8, !tbaa !11
  %973 = icmp eq i64 %968, %972
  br i1 %973, label %974, label %975

974:                                              ; preds = %969
  br label %981

975:                                              ; preds = %969
  call void @__assert_fail(ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 96, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

976:                                              ; preds = %967, %962
  %977 = landingpad { ptr, i32 }
          cleanup
  %978 = extractvalue { ptr, i32 } %977, 0
  store ptr %978, ptr %23, align 8
  %979 = extractvalue { ptr, i32 } %977, 1
  store i32 %979, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #11
  br label %1859

980:                                              ; No predecessors!
  br label %981

981:                                              ; preds = %980, %974
  br label %982

982:                                              ; preds = %981
  %983 = load i64, ptr %96, align 8, !tbaa !11
  %984 = add i64 %983, 1
  store i64 %984, ptr %96, align 8, !tbaa !11
  br label %949, !llvm.loop !41

985:                                              ; preds = %953
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  %986 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %987 = getelementptr inbounds %"class.std::chrono::time_point", ptr %97, i32 0, i32 0
  %988 = getelementptr inbounds %"class.std::chrono::duration", ptr %987, i32 0, i32 0
  store i64 %986, ptr %988, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %97, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #11
  store i64 0, ptr %98, align 8, !tbaa !11
  br label %989

989:                                              ; preds = %1014, %985
  %990 = load i64, ptr %98, align 8, !tbaa !11
  %991 = icmp ult i64 %990, 5
  br i1 %991, label %993, label %992

992:                                              ; preds = %989
  store i32 83, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  br label %1017

993:                                              ; preds = %989
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #11
  store i64 0, ptr %99, align 8, !tbaa !11
  br label %994

994:                                              ; preds = %1006, %993
  %995 = load i64, ptr %99, align 8, !tbaa !11
  %996 = load i64, ptr %6, align 8, !tbaa !11
  %997 = icmp ult i64 %995, %996
  br i1 %997, label %999, label %998

998:                                              ; preds = %994
  store i32 86, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  br label %1013

999:                                              ; preds = %994
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #11
  %1000 = load i64, ptr %99, align 8, !tbaa !11
  %1001 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1000) #11
  %1002 = load i64, ptr %1001, align 8, !tbaa !11
  %1003 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %17, i64 noundef %1002)
          to label %1004 unwind label %1009

1004:                                             ; preds = %999
  store i64 %1003, ptr %100, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %100)
          to label %1005 unwind label %1009

1005:                                             ; preds = %1004
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #11
  br label %1006

1006:                                             ; preds = %1005
  %1007 = load i64, ptr %99, align 8, !tbaa !11
  %1008 = add i64 %1007, 1
  store i64 %1008, ptr %99, align 8, !tbaa !11
  br label %994, !llvm.loop !42

1009:                                             ; preds = %1004, %999
  %1010 = landingpad { ptr, i32 }
          cleanup
  %1011 = extractvalue { ptr, i32 } %1010, 0
  store ptr %1011, ptr %23, align 8
  %1012 = extractvalue { ptr, i32 } %1010, 1
  store i32 %1012, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #11
  br label %1859

1013:                                             ; preds = %998
  br label %1014

1014:                                             ; preds = %1013
  %1015 = load i64, ptr %98, align 8, !tbaa !11
  %1016 = add i64 %1015, 1
  store i64 %1016, ptr %98, align 8, !tbaa !11
  br label %989, !llvm.loop !43

1017:                                             ; preds = %992
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #11
  %1018 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1019 = getelementptr inbounds %"class.std::chrono::time_point", ptr %101, i32 0, i32 0
  %1020 = getelementptr inbounds %"class.std::chrono::duration", ptr %1019, i32 0, i32 0
  store i64 %1018, ptr %1020, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %101, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #11
  %1021 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1022 unwind label %1040

1022:                                             ; preds = %1017
  %1023 = getelementptr inbounds %"class.std::chrono::duration", ptr %102, i32 0, i32 0
  store i64 %1021, ptr %1023, align 8
  %1024 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %102)
          to label %1025 unwind label %1040

1025:                                             ; preds = %1022
  %1026 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 9) #11
  store i64 %1024, ptr %1026, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #11
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #11
  %1028 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1029 unwind label %1044

1029:                                             ; preds = %1025
  %1030 = getelementptr inbounds %"class.std::chrono::duration", ptr %103, i32 0, i32 0
  store i64 %1028, ptr %1030, align 8
  %1031 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %1032 unwind label %1044

1032:                                             ; preds = %1029
  %1033 = load i64, ptr %20, align 8, !tbaa !11
  %1034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef @.str.4, ptr noundef @.str.20, i64 noundef %1031, i64 noundef %1033) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #11
  store i64 1, ptr %104, align 8, !tbaa !11
  br label %1035

1035:                                             ; preds = %1060, %1032
  %1036 = load i64, ptr %104, align 8, !tbaa !11
  %1037 = call noundef i64 @_ZNKSt5arrayImLm10EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %18) #13
  %1038 = icmp ult i64 %1036, %1037
  br i1 %1038, label %1048, label %1039

1039:                                             ; preds = %1035
  store i32 89, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #11
  br label %1063

1040:                                             ; preds = %1022, %1017
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %23, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #11
  br label %1859

1044:                                             ; preds = %1029, %1025
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %23, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  br label %1859

1048:                                             ; preds = %1035
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = load i64, ptr %104, align 8, !tbaa !11
  %1051 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 0) #11
  %1052 = load i64, ptr %1051, align 8, !tbaa !11
  %1053 = uitofp i64 %1052 to double
  %1054 = load i64, ptr %104, align 8, !tbaa !11
  %1055 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef %1054) #11
  %1056 = load i64, ptr %1055, align 8, !tbaa !11
  %1057 = uitofp i64 %1056 to double
  %1058 = fdiv double %1053, %1057
  %1059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef @.str.21, i64 noundef %1050, double noundef %1058) #11
  br label %1060

1060:                                             ; preds = %1048
  %1061 = load i64, ptr %104, align 8, !tbaa !11
  %1062 = add i64 %1061, 1
  store i64 %1062, ptr %104, align 8, !tbaa !11
  br label %1035, !llvm.loop !44

1063:                                             ; preds = %1039
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #11
  store i64 0, ptr %105, align 8, !tbaa !11
  br label %1064

1064:                                             ; preds = %1089, %1063
  %1065 = load i64, ptr %105, align 8, !tbaa !11
  %1066 = load i64, ptr %6, align 8, !tbaa !11
  %1067 = icmp ult i64 %1065, %1066
  br i1 %1067, label %1069, label %1068

1068:                                             ; preds = %1064
  store i32 92, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #11
  br label %1092

1069:                                             ; preds = %1064
  %1070 = load i64, ptr %105, align 8, !tbaa !11
  %1071 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1070) #11
  %1072 = load i64, ptr %1071, align 8, !tbaa !11
  %1073 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %9, i64 noundef %1072)
          to label %1074 unwind label %1083

1074:                                             ; preds = %1069
  %1075 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %9, i64 noundef %1073)
          to label %1076 unwind label %1083

1076:                                             ; preds = %1074
  %1077 = load i64, ptr %105, align 8, !tbaa !11
  %1078 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1077) #11
  %1079 = load i64, ptr %1078, align 8, !tbaa !11
  %1080 = icmp eq i64 %1075, %1079
  br i1 %1080, label %1081, label %1082

1081:                                             ; preds = %1076
  br label %1088

1082:                                             ; preds = %1076
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 115, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

1083:                                             ; preds = %1074, %1069
  %1084 = landingpad { ptr, i32 }
          cleanup
  %1085 = extractvalue { ptr, i32 } %1084, 0
  store ptr %1085, ptr %23, align 8
  %1086 = extractvalue { ptr, i32 } %1084, 1
  store i32 %1086, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #11
  br label %1859

1087:                                             ; No predecessors!
  br label %1088

1088:                                             ; preds = %1087, %1081
  br label %1089

1089:                                             ; preds = %1088
  %1090 = load i64, ptr %105, align 8, !tbaa !11
  %1091 = add i64 %1090, 1
  store i64 %1091, ptr %105, align 8, !tbaa !11
  br label %1064, !llvm.loop !45

1092:                                             ; preds = %1068
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #11
  %1093 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1094 = getelementptr inbounds %"class.std::chrono::time_point", ptr %106, i32 0, i32 0
  %1095 = getelementptr inbounds %"class.std::chrono::duration", ptr %1094, i32 0, i32 0
  store i64 %1093, ptr %1095, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %106, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #11
  store i64 0, ptr %107, align 8, !tbaa !11
  br label %1096

1096:                                             ; preds = %1123, %1092
  %1097 = load i64, ptr %107, align 8, !tbaa !11
  %1098 = icmp ult i64 %1097, 5
  br i1 %1098, label %1100, label %1099

1099:                                             ; preds = %1096
  store i32 95, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #11
  br label %1126

1100:                                             ; preds = %1096
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #11
  store i64 0, ptr %108, align 8, !tbaa !11
  br label %1101

1101:                                             ; preds = %1115, %1100
  %1102 = load i64, ptr %108, align 8, !tbaa !11
  %1103 = load i64, ptr %6, align 8, !tbaa !11
  %1104 = icmp ult i64 %1102, %1103
  br i1 %1104, label %1106, label %1105

1105:                                             ; preds = %1101
  store i32 98, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  br label %1122

1106:                                             ; preds = %1101
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #11
  %1107 = load i64, ptr %108, align 8, !tbaa !11
  %1108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1107) #11
  %1109 = load i64, ptr %1108, align 8, !tbaa !11
  %1110 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %9, i64 noundef %1109)
          to label %1111 unwind label %1118

1111:                                             ; preds = %1106
  %1112 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %9, i64 noundef %1110)
          to label %1113 unwind label %1118

1113:                                             ; preds = %1111
  store i64 %1112, ptr %109, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %109)
          to label %1114 unwind label %1118

1114:                                             ; preds = %1113
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  br label %1115

1115:                                             ; preds = %1114
  %1116 = load i64, ptr %108, align 8, !tbaa !11
  %1117 = add i64 %1116, 1
  store i64 %1117, ptr %108, align 8, !tbaa !11
  br label %1101, !llvm.loop !46

1118:                                             ; preds = %1113, %1111, %1106
  %1119 = landingpad { ptr, i32 }
          cleanup
  %1120 = extractvalue { ptr, i32 } %1119, 0
  store ptr %1120, ptr %23, align 8
  %1121 = extractvalue { ptr, i32 } %1119, 1
  store i32 %1121, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #11
  br label %1859

1122:                                             ; preds = %1105
  br label %1123

1123:                                             ; preds = %1122
  %1124 = load i64, ptr %107, align 8, !tbaa !11
  %1125 = add i64 %1124, 1
  store i64 %1125, ptr %107, align 8, !tbaa !11
  br label %1096, !llvm.loop !47

1126:                                             ; preds = %1099
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #11
  %1127 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1128 = getelementptr inbounds %"class.std::chrono::time_point", ptr %110, i32 0, i32 0
  %1129 = getelementptr inbounds %"class.std::chrono::duration", ptr %1128, i32 0, i32 0
  store i64 %1127, ptr %1129, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %110, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #11
  %1130 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1131 unwind label %1149

1131:                                             ; preds = %1126
  %1132 = getelementptr inbounds %"class.std::chrono::duration", ptr %111, i32 0, i32 0
  store i64 %1130, ptr %1132, align 8
  %1133 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %111)
          to label %1134 unwind label %1149

1134:                                             ; preds = %1131
  %1135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 1) #11
  store i64 %1133, ptr %1135, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #11
  %1137 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1138 unwind label %1153

1138:                                             ; preds = %1134
  %1139 = getelementptr inbounds %"class.std::chrono::duration", ptr %112, i32 0, i32 0
  store i64 %1137, ptr %1139, align 8
  %1140 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %1141 unwind label %1153

1141:                                             ; preds = %1138
  %1142 = load i64, ptr %20, align 8, !tbaa !11
  %1143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1136, ptr noundef @.str.22, ptr noundef @.str.5, i64 noundef %1140, i64 noundef %1142) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #11
  store i64 0, ptr %113, align 8, !tbaa !11
  br label %1144

1144:                                             ; preds = %1177, %1141
  %1145 = load i64, ptr %113, align 8, !tbaa !11
  %1146 = load i64, ptr %6, align 8, !tbaa !11
  %1147 = icmp ult i64 %1145, %1146
  br i1 %1147, label %1157, label %1148

1148:                                             ; preds = %1144
  store i32 101, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #11
  br label %1180

1149:                                             ; preds = %1131, %1126
  %1150 = landingpad { ptr, i32 }
          cleanup
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %23, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  br label %1859

1153:                                             ; preds = %1138, %1134
  %1154 = landingpad { ptr, i32 }
          cleanup
  %1155 = extractvalue { ptr, i32 } %1154, 0
  store ptr %1155, ptr %23, align 8
  %1156 = extractvalue { ptr, i32 } %1154, 1
  store i32 %1156, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #11
  br label %1859

1157:                                             ; preds = %1144
  %1158 = load i64, ptr %113, align 8, !tbaa !11
  %1159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1158) #11
  %1160 = load i64, ptr %1159, align 8, !tbaa !11
  %1161 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %10, i64 noundef %1160)
          to label %1162 unwind label %1171

1162:                                             ; preds = %1157
  %1163 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %10, i64 noundef %1161)
          to label %1164 unwind label %1171

1164:                                             ; preds = %1162
  %1165 = load i64, ptr %113, align 8, !tbaa !11
  %1166 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1165) #11
  %1167 = load i64, ptr %1166, align 8, !tbaa !11
  %1168 = icmp eq i64 %1163, %1167
  br i1 %1168, label %1169, label %1170

1169:                                             ; preds = %1164
  br label %1176

1170:                                             ; preds = %1164
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 116, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

1171:                                             ; preds = %1162, %1157
  %1172 = landingpad { ptr, i32 }
          cleanup
  %1173 = extractvalue { ptr, i32 } %1172, 0
  store ptr %1173, ptr %23, align 8
  %1174 = extractvalue { ptr, i32 } %1172, 1
  store i32 %1174, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #11
  br label %1859

1175:                                             ; No predecessors!
  br label %1176

1176:                                             ; preds = %1175, %1169
  br label %1177

1177:                                             ; preds = %1176
  %1178 = load i64, ptr %113, align 8, !tbaa !11
  %1179 = add i64 %1178, 1
  store i64 %1179, ptr %113, align 8, !tbaa !11
  br label %1144, !llvm.loop !48

1180:                                             ; preds = %1148
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #11
  %1181 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1182 = getelementptr inbounds %"class.std::chrono::time_point", ptr %114, i32 0, i32 0
  %1183 = getelementptr inbounds %"class.std::chrono::duration", ptr %1182, i32 0, i32 0
  store i64 %1181, ptr %1183, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %114, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #11
  store i64 0, ptr %115, align 8, !tbaa !11
  br label %1184

1184:                                             ; preds = %1211, %1180
  %1185 = load i64, ptr %115, align 8, !tbaa !11
  %1186 = icmp ult i64 %1185, 5
  br i1 %1186, label %1188, label %1187

1187:                                             ; preds = %1184
  store i32 104, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #11
  br label %1214

1188:                                             ; preds = %1184
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #11
  store i64 0, ptr %116, align 8, !tbaa !11
  br label %1189

1189:                                             ; preds = %1203, %1188
  %1190 = load i64, ptr %116, align 8, !tbaa !11
  %1191 = load i64, ptr %6, align 8, !tbaa !11
  %1192 = icmp ult i64 %1190, %1191
  br i1 %1192, label %1194, label %1193

1193:                                             ; preds = %1189
  store i32 107, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  br label %1210

1194:                                             ; preds = %1189
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #11
  %1195 = load i64, ptr %116, align 8, !tbaa !11
  %1196 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1195) #11
  %1197 = load i64, ptr %1196, align 8, !tbaa !11
  %1198 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %10, i64 noundef %1197)
          to label %1199 unwind label %1206

1199:                                             ; preds = %1194
  %1200 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %10, i64 noundef %1198)
          to label %1201 unwind label %1206

1201:                                             ; preds = %1199
  store i64 %1200, ptr %117, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %117)
          to label %1202 unwind label %1206

1202:                                             ; preds = %1201
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #11
  br label %1203

1203:                                             ; preds = %1202
  %1204 = load i64, ptr %116, align 8, !tbaa !11
  %1205 = add i64 %1204, 1
  store i64 %1205, ptr %116, align 8, !tbaa !11
  br label %1189, !llvm.loop !49

1206:                                             ; preds = %1201, %1199, %1194
  %1207 = landingpad { ptr, i32 }
          cleanup
  %1208 = extractvalue { ptr, i32 } %1207, 0
  store ptr %1208, ptr %23, align 8
  %1209 = extractvalue { ptr, i32 } %1207, 1
  store i32 %1209, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #11
  br label %1859

1210:                                             ; preds = %1193
  br label %1211

1211:                                             ; preds = %1210
  %1212 = load i64, ptr %115, align 8, !tbaa !11
  %1213 = add i64 %1212, 1
  store i64 %1213, ptr %115, align 8, !tbaa !11
  br label %1184, !llvm.loop !50

1214:                                             ; preds = %1187
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #11
  %1215 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1216 = getelementptr inbounds %"class.std::chrono::time_point", ptr %118, i32 0, i32 0
  %1217 = getelementptr inbounds %"class.std::chrono::duration", ptr %1216, i32 0, i32 0
  store i64 %1215, ptr %1217, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %118, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #11
  %1218 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1219 unwind label %1237

1219:                                             ; preds = %1214
  %1220 = getelementptr inbounds %"class.std::chrono::duration", ptr %119, i32 0, i32 0
  store i64 %1218, ptr %1220, align 8
  %1221 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %119)
          to label %1222 unwind label %1237

1222:                                             ; preds = %1219
  %1223 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 2) #11
  store i64 %1221, ptr %1223, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #11
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #11
  %1225 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1226 unwind label %1241

1226:                                             ; preds = %1222
  %1227 = getelementptr inbounds %"class.std::chrono::duration", ptr %120, i32 0, i32 0
  store i64 %1225, ptr %1227, align 8
  %1228 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %120)
          to label %1229 unwind label %1241

1229:                                             ; preds = %1226
  %1230 = load i64, ptr %20, align 8, !tbaa !11
  %1231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1224, ptr noundef @.str.22, ptr noundef @.str.7, i64 noundef %1228, i64 noundef %1230) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #11
  store i64 0, ptr %121, align 8, !tbaa !11
  br label %1232

1232:                                             ; preds = %1265, %1229
  %1233 = load i64, ptr %121, align 8, !tbaa !11
  %1234 = load i64, ptr %6, align 8, !tbaa !11
  %1235 = icmp ult i64 %1233, %1234
  br i1 %1235, label %1245, label %1236

1236:                                             ; preds = %1232
  store i32 110, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #11
  br label %1268

1237:                                             ; preds = %1219, %1214
  %1238 = landingpad { ptr, i32 }
          cleanup
  %1239 = extractvalue { ptr, i32 } %1238, 0
  store ptr %1239, ptr %23, align 8
  %1240 = extractvalue { ptr, i32 } %1238, 1
  store i32 %1240, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #11
  br label %1859

1241:                                             ; preds = %1226, %1222
  %1242 = landingpad { ptr, i32 }
          cleanup
  %1243 = extractvalue { ptr, i32 } %1242, 0
  store ptr %1243, ptr %23, align 8
  %1244 = extractvalue { ptr, i32 } %1242, 1
  store i32 %1244, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #11
  br label %1859

1245:                                             ; preds = %1232
  %1246 = load i64, ptr %121, align 8, !tbaa !11
  %1247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1246) #11
  %1248 = load i64, ptr %1247, align 8, !tbaa !11
  %1249 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %1248)
          to label %1250 unwind label %1259

1250:                                             ; preds = %1245
  %1251 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %1249)
          to label %1252 unwind label %1259

1252:                                             ; preds = %1250
  %1253 = load i64, ptr %121, align 8, !tbaa !11
  %1254 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1253) #11
  %1255 = load i64, ptr %1254, align 8, !tbaa !11
  %1256 = icmp eq i64 %1251, %1255
  br i1 %1256, label %1257, label %1258

1257:                                             ; preds = %1252
  br label %1264

1258:                                             ; preds = %1252
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 117, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

1259:                                             ; preds = %1250, %1245
  %1260 = landingpad { ptr, i32 }
          cleanup
  %1261 = extractvalue { ptr, i32 } %1260, 0
  store ptr %1261, ptr %23, align 8
  %1262 = extractvalue { ptr, i32 } %1260, 1
  store i32 %1262, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #11
  br label %1859

1263:                                             ; No predecessors!
  br label %1264

1264:                                             ; preds = %1263, %1257
  br label %1265

1265:                                             ; preds = %1264
  %1266 = load i64, ptr %121, align 8, !tbaa !11
  %1267 = add i64 %1266, 1
  store i64 %1267, ptr %121, align 8, !tbaa !11
  br label %1232, !llvm.loop !51

1268:                                             ; preds = %1236
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #11
  %1269 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1270 = getelementptr inbounds %"class.std::chrono::time_point", ptr %122, i32 0, i32 0
  %1271 = getelementptr inbounds %"class.std::chrono::duration", ptr %1270, i32 0, i32 0
  store i64 %1269, ptr %1271, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %122, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #11
  store i64 0, ptr %123, align 8, !tbaa !11
  br label %1272

1272:                                             ; preds = %1299, %1268
  %1273 = load i64, ptr %123, align 8, !tbaa !11
  %1274 = icmp ult i64 %1273, 5
  br i1 %1274, label %1276, label %1275

1275:                                             ; preds = %1272
  store i32 113, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #11
  br label %1302

1276:                                             ; preds = %1272
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #11
  store i64 0, ptr %124, align 8, !tbaa !11
  br label %1277

1277:                                             ; preds = %1291, %1276
  %1278 = load i64, ptr %124, align 8, !tbaa !11
  %1279 = load i64, ptr %6, align 8, !tbaa !11
  %1280 = icmp ult i64 %1278, %1279
  br i1 %1280, label %1282, label %1281

1281:                                             ; preds = %1277
  store i32 116, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  br label %1298

1282:                                             ; preds = %1277
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #11
  %1283 = load i64, ptr %124, align 8, !tbaa !11
  %1284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1283) #11
  %1285 = load i64, ptr %1284, align 8, !tbaa !11
  %1286 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %1285)
          to label %1287 unwind label %1294

1287:                                             ; preds = %1282
  %1288 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %11, i64 noundef %1286)
          to label %1289 unwind label %1294

1289:                                             ; preds = %1287
  store i64 %1288, ptr %125, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %1290 unwind label %1294

1290:                                             ; preds = %1289
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #11
  br label %1291

1291:                                             ; preds = %1290
  %1292 = load i64, ptr %124, align 8, !tbaa !11
  %1293 = add i64 %1292, 1
  store i64 %1293, ptr %124, align 8, !tbaa !11
  br label %1277, !llvm.loop !52

1294:                                             ; preds = %1289, %1287, %1282
  %1295 = landingpad { ptr, i32 }
          cleanup
  %1296 = extractvalue { ptr, i32 } %1295, 0
  store ptr %1296, ptr %23, align 8
  %1297 = extractvalue { ptr, i32 } %1295, 1
  store i32 %1297, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #11
  br label %1859

1298:                                             ; preds = %1281
  br label %1299

1299:                                             ; preds = %1298
  %1300 = load i64, ptr %123, align 8, !tbaa !11
  %1301 = add i64 %1300, 1
  store i64 %1301, ptr %123, align 8, !tbaa !11
  br label %1272, !llvm.loop !53

1302:                                             ; preds = %1275
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #11
  %1303 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1304 = getelementptr inbounds %"class.std::chrono::time_point", ptr %126, i32 0, i32 0
  %1305 = getelementptr inbounds %"class.std::chrono::duration", ptr %1304, i32 0, i32 0
  store i64 %1303, ptr %1305, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %126, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #11
  %1306 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1307 unwind label %1325

1307:                                             ; preds = %1302
  %1308 = getelementptr inbounds %"class.std::chrono::duration", ptr %127, i32 0, i32 0
  store i64 %1306, ptr %1308, align 8
  %1309 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %127)
          to label %1310 unwind label %1325

1310:                                             ; preds = %1307
  %1311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 3) #11
  store i64 %1309, ptr %1311, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #11
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #11
  %1313 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1314 unwind label %1329

1314:                                             ; preds = %1310
  %1315 = getelementptr inbounds %"class.std::chrono::duration", ptr %128, i32 0, i32 0
  store i64 %1313, ptr %1315, align 8
  %1316 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %128)
          to label %1317 unwind label %1329

1317:                                             ; preds = %1314
  %1318 = load i64, ptr %20, align 8, !tbaa !11
  %1319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1312, ptr noundef @.str.22, ptr noundef @.str.9, i64 noundef %1316, i64 noundef %1318) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #11
  store i64 0, ptr %129, align 8, !tbaa !11
  br label %1320

1320:                                             ; preds = %1353, %1317
  %1321 = load i64, ptr %129, align 8, !tbaa !11
  %1322 = load i64, ptr %6, align 8, !tbaa !11
  %1323 = icmp ult i64 %1321, %1322
  br i1 %1323, label %1333, label %1324

1324:                                             ; preds = %1320
  store i32 119, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #11
  br label %1356

1325:                                             ; preds = %1307, %1302
  %1326 = landingpad { ptr, i32 }
          cleanup
  %1327 = extractvalue { ptr, i32 } %1326, 0
  store ptr %1327, ptr %23, align 8
  %1328 = extractvalue { ptr, i32 } %1326, 1
  store i32 %1328, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #11
  br label %1859

1329:                                             ; preds = %1314, %1310
  %1330 = landingpad { ptr, i32 }
          cleanup
  %1331 = extractvalue { ptr, i32 } %1330, 0
  store ptr %1331, ptr %23, align 8
  %1332 = extractvalue { ptr, i32 } %1330, 1
  store i32 %1332, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #11
  br label %1859

1333:                                             ; preds = %1320
  %1334 = load i64, ptr %129, align 8, !tbaa !11
  %1335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1334) #11
  %1336 = load i64, ptr %1335, align 8, !tbaa !11
  %1337 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %12, i64 noundef %1336)
          to label %1338 unwind label %1347

1338:                                             ; preds = %1333
  %1339 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %12, i64 noundef %1337)
          to label %1340 unwind label %1347

1340:                                             ; preds = %1338
  %1341 = load i64, ptr %129, align 8, !tbaa !11
  %1342 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1341) #11
  %1343 = load i64, ptr %1342, align 8, !tbaa !11
  %1344 = icmp eq i64 %1339, %1343
  br i1 %1344, label %1345, label %1346

1345:                                             ; preds = %1340
  br label %1352

1346:                                             ; preds = %1340
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 118, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

1347:                                             ; preds = %1338, %1333
  %1348 = landingpad { ptr, i32 }
          cleanup
  %1349 = extractvalue { ptr, i32 } %1348, 0
  store ptr %1349, ptr %23, align 8
  %1350 = extractvalue { ptr, i32 } %1348, 1
  store i32 %1350, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #11
  br label %1859

1351:                                             ; No predecessors!
  br label %1352

1352:                                             ; preds = %1351, %1345
  br label %1353

1353:                                             ; preds = %1352
  %1354 = load i64, ptr %129, align 8, !tbaa !11
  %1355 = add i64 %1354, 1
  store i64 %1355, ptr %129, align 8, !tbaa !11
  br label %1320, !llvm.loop !54

1356:                                             ; preds = %1324
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #11
  %1357 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1358 = getelementptr inbounds %"class.std::chrono::time_point", ptr %130, i32 0, i32 0
  %1359 = getelementptr inbounds %"class.std::chrono::duration", ptr %1358, i32 0, i32 0
  store i64 %1357, ptr %1359, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %130, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #11
  store i64 0, ptr %131, align 8, !tbaa !11
  br label %1360

1360:                                             ; preds = %1387, %1356
  %1361 = load i64, ptr %131, align 8, !tbaa !11
  %1362 = icmp ult i64 %1361, 5
  br i1 %1362, label %1364, label %1363

1363:                                             ; preds = %1360
  store i32 122, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #11
  br label %1390

1364:                                             ; preds = %1360
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #11
  store i64 0, ptr %132, align 8, !tbaa !11
  br label %1365

1365:                                             ; preds = %1379, %1364
  %1366 = load i64, ptr %132, align 8, !tbaa !11
  %1367 = load i64, ptr %6, align 8, !tbaa !11
  %1368 = icmp ult i64 %1366, %1367
  br i1 %1368, label %1370, label %1369

1369:                                             ; preds = %1365
  store i32 125, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #11
  br label %1386

1370:                                             ; preds = %1365
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #11
  %1371 = load i64, ptr %132, align 8, !tbaa !11
  %1372 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1371) #11
  %1373 = load i64, ptr %1372, align 8, !tbaa !11
  %1374 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %12, i64 noundef %1373)
          to label %1375 unwind label %1382

1375:                                             ; preds = %1370
  %1376 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %12, i64 noundef %1374)
          to label %1377 unwind label %1382

1377:                                             ; preds = %1375
  store i64 %1376, ptr %133, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %133)
          to label %1378 unwind label %1382

1378:                                             ; preds = %1377
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  br label %1379

1379:                                             ; preds = %1378
  %1380 = load i64, ptr %132, align 8, !tbaa !11
  %1381 = add i64 %1380, 1
  store i64 %1381, ptr %132, align 8, !tbaa !11
  br label %1365, !llvm.loop !55

1382:                                             ; preds = %1377, %1375, %1370
  %1383 = landingpad { ptr, i32 }
          cleanup
  %1384 = extractvalue { ptr, i32 } %1383, 0
  store ptr %1384, ptr %23, align 8
  %1385 = extractvalue { ptr, i32 } %1383, 1
  store i32 %1385, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #11
  br label %1859

1386:                                             ; preds = %1369
  br label %1387

1387:                                             ; preds = %1386
  %1388 = load i64, ptr %131, align 8, !tbaa !11
  %1389 = add i64 %1388, 1
  store i64 %1389, ptr %131, align 8, !tbaa !11
  br label %1360, !llvm.loop !56

1390:                                             ; preds = %1363
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #11
  %1391 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1392 = getelementptr inbounds %"class.std::chrono::time_point", ptr %134, i32 0, i32 0
  %1393 = getelementptr inbounds %"class.std::chrono::duration", ptr %1392, i32 0, i32 0
  store i64 %1391, ptr %1393, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %134, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #11
  %1394 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1395 unwind label %1413

1395:                                             ; preds = %1390
  %1396 = getelementptr inbounds %"class.std::chrono::duration", ptr %135, i32 0, i32 0
  store i64 %1394, ptr %1396, align 8
  %1397 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %135)
          to label %1398 unwind label %1413

1398:                                             ; preds = %1395
  %1399 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 4) #11
  store i64 %1397, ptr %1399, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #11
  %1401 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1402 unwind label %1417

1402:                                             ; preds = %1398
  %1403 = getelementptr inbounds %"class.std::chrono::duration", ptr %136, i32 0, i32 0
  store i64 %1401, ptr %1403, align 8
  %1404 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %136)
          to label %1405 unwind label %1417

1405:                                             ; preds = %1402
  %1406 = load i64, ptr %20, align 8, !tbaa !11
  %1407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1400, ptr noundef @.str.22, ptr noundef @.str.11, i64 noundef %1404, i64 noundef %1406) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #11
  store i64 0, ptr %137, align 8, !tbaa !11
  br label %1408

1408:                                             ; preds = %1422, %1405
  %1409 = load i64, ptr %137, align 8, !tbaa !11
  %1410 = load i64, ptr %6, align 8, !tbaa !11
  %1411 = icmp ult i64 %1409, %1410
  br i1 %1411, label %1421, label %1412

1412:                                             ; preds = %1408
  store i32 128, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  br label %1425

1413:                                             ; preds = %1395, %1390
  %1414 = landingpad { ptr, i32 }
          cleanup
  %1415 = extractvalue { ptr, i32 } %1414, 0
  store ptr %1415, ptr %23, align 8
  %1416 = extractvalue { ptr, i32 } %1414, 1
  store i32 %1416, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  br label %1859

1417:                                             ; preds = %1402, %1398
  %1418 = landingpad { ptr, i32 }
          cleanup
  %1419 = extractvalue { ptr, i32 } %1418, 0
  store ptr %1419, ptr %23, align 8
  %1420 = extractvalue { ptr, i32 } %1418, 1
  store i32 %1420, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #11
  br label %1859

1421:                                             ; preds = %1408
  br label %1422

1422:                                             ; preds = %1421
  %1423 = load i64, ptr %137, align 8, !tbaa !11
  %1424 = add i64 %1423, 1
  store i64 %1424, ptr %137, align 8, !tbaa !11
  br label %1408, !llvm.loop !57

1425:                                             ; preds = %1412
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #11
  %1426 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1427 = getelementptr inbounds %"class.std::chrono::time_point", ptr %138, i32 0, i32 0
  %1428 = getelementptr inbounds %"class.std::chrono::duration", ptr %1427, i32 0, i32 0
  store i64 %1426, ptr %1428, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %138, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #11
  store i64 0, ptr %139, align 8, !tbaa !11
  br label %1429

1429:                                             ; preds = %1456, %1425
  %1430 = load i64, ptr %139, align 8, !tbaa !11
  %1431 = icmp ult i64 %1430, 5
  br i1 %1431, label %1433, label %1432

1432:                                             ; preds = %1429
  store i32 131, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #11
  br label %1459

1433:                                             ; preds = %1429
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #11
  store i64 0, ptr %140, align 8, !tbaa !11
  br label %1434

1434:                                             ; preds = %1448, %1433
  %1435 = load i64, ptr %140, align 8, !tbaa !11
  %1436 = load i64, ptr %6, align 8, !tbaa !11
  %1437 = icmp ult i64 %1435, %1436
  br i1 %1437, label %1439, label %1438

1438:                                             ; preds = %1434
  store i32 134, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #11
  br label %1455

1439:                                             ; preds = %1434
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #11
  %1440 = load i64, ptr %140, align 8, !tbaa !11
  %1441 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1440) #11
  %1442 = load i64, ptr %1441, align 8, !tbaa !11
  %1443 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %14, i64 noundef %1442)
          to label %1444 unwind label %1451

1444:                                             ; preds = %1439
  %1445 = invoke noundef i64 @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EE7inverseEm(ptr noundef nonnull align 4 dereferenceable(48) %14, i64 noundef %1443)
          to label %1446 unwind label %1451

1446:                                             ; preds = %1444
  store i64 %1445, ptr %141, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %141)
          to label %1447 unwind label %1451

1447:                                             ; preds = %1446
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #11
  br label %1448

1448:                                             ; preds = %1447
  %1449 = load i64, ptr %140, align 8, !tbaa !11
  %1450 = add i64 %1449, 1
  store i64 %1450, ptr %140, align 8, !tbaa !11
  br label %1434, !llvm.loop !58

1451:                                             ; preds = %1446, %1444, %1439
  %1452 = landingpad { ptr, i32 }
          cleanup
  %1453 = extractvalue { ptr, i32 } %1452, 0
  store ptr %1453, ptr %23, align 8
  %1454 = extractvalue { ptr, i32 } %1452, 1
  store i32 %1454, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #11
  br label %1859

1455:                                             ; preds = %1438
  br label %1456

1456:                                             ; preds = %1455
  %1457 = load i64, ptr %139, align 8, !tbaa !11
  %1458 = add i64 %1457, 1
  store i64 %1458, ptr %139, align 8, !tbaa !11
  br label %1429, !llvm.loop !59

1459:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #11
  %1460 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1461 = getelementptr inbounds %"class.std::chrono::time_point", ptr %142, i32 0, i32 0
  %1462 = getelementptr inbounds %"class.std::chrono::duration", ptr %1461, i32 0, i32 0
  store i64 %1460, ptr %1462, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %142, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #11
  %1463 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1464 unwind label %1482

1464:                                             ; preds = %1459
  %1465 = getelementptr inbounds %"class.std::chrono::duration", ptr %143, i32 0, i32 0
  store i64 %1463, ptr %1465, align 8
  %1466 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %143)
          to label %1467 unwind label %1482

1467:                                             ; preds = %1464
  %1468 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 5) #11
  store i64 %1466, ptr %1468, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #11
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #11
  %1470 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1471 unwind label %1486

1471:                                             ; preds = %1467
  %1472 = getelementptr inbounds %"class.std::chrono::duration", ptr %144, i32 0, i32 0
  store i64 %1470, ptr %1472, align 8
  %1473 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %144)
          to label %1474 unwind label %1486

1474:                                             ; preds = %1471
  %1475 = load i64, ptr %20, align 8, !tbaa !11
  %1476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1469, ptr noundef @.str.22, ptr noundef @.str.12, i64 noundef %1473, i64 noundef %1475) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #11
  store i64 0, ptr %145, align 8, !tbaa !11
  br label %1477

1477:                                             ; preds = %1510, %1474
  %1478 = load i64, ptr %145, align 8, !tbaa !11
  %1479 = load i64, ptr %6, align 8, !tbaa !11
  %1480 = icmp ult i64 %1478, %1479
  br i1 %1480, label %1490, label %1481

1481:                                             ; preds = %1477
  store i32 137, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #11
  br label %1513

1482:                                             ; preds = %1464, %1459
  %1483 = landingpad { ptr, i32 }
          cleanup
  %1484 = extractvalue { ptr, i32 } %1483, 0
  store ptr %1484, ptr %23, align 8
  %1485 = extractvalue { ptr, i32 } %1483, 1
  store i32 %1485, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #11
  br label %1859

1486:                                             ; preds = %1471, %1467
  %1487 = landingpad { ptr, i32 }
          cleanup
  %1488 = extractvalue { ptr, i32 } %1487, 0
  store ptr %1488, ptr %23, align 8
  %1489 = extractvalue { ptr, i32 } %1487, 1
  store i32 %1489, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #11
  br label %1859

1490:                                             ; preds = %1477
  %1491 = load i64, ptr %145, align 8, !tbaa !11
  %1492 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1491) #11
  %1493 = load i64, ptr %1492, align 8, !tbaa !11
  %1494 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %13, i64 noundef %1493)
          to label %1495 unwind label %1504

1495:                                             ; preds = %1490
  %1496 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %13, i64 noundef %1494)
          to label %1497 unwind label %1504

1497:                                             ; preds = %1495
  %1498 = load i64, ptr %145, align 8, !tbaa !11
  %1499 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1498) #11
  %1500 = load i64, ptr %1499, align 8, !tbaa !11
  %1501 = icmp eq i64 %1496, %1500
  br i1 %1501, label %1502, label %1503

1502:                                             ; preds = %1497
  br label %1509

1503:                                             ; preds = %1497
  call void @__assert_fail(ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 120, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

1504:                                             ; preds = %1495, %1490
  %1505 = landingpad { ptr, i32 }
          cleanup
  %1506 = extractvalue { ptr, i32 } %1505, 0
  store ptr %1506, ptr %23, align 8
  %1507 = extractvalue { ptr, i32 } %1505, 1
  store i32 %1507, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #11
  br label %1859

1508:                                             ; No predecessors!
  br label %1509

1509:                                             ; preds = %1508, %1502
  br label %1510

1510:                                             ; preds = %1509
  %1511 = load i64, ptr %145, align 8, !tbaa !11
  %1512 = add i64 %1511, 1
  store i64 %1512, ptr %145, align 8, !tbaa !11
  br label %1477, !llvm.loop !60

1513:                                             ; preds = %1481
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #11
  %1514 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1515 = getelementptr inbounds %"class.std::chrono::time_point", ptr %146, i32 0, i32 0
  %1516 = getelementptr inbounds %"class.std::chrono::duration", ptr %1515, i32 0, i32 0
  store i64 %1514, ptr %1516, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %146, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #11
  store i64 0, ptr %147, align 8, !tbaa !11
  br label %1517

1517:                                             ; preds = %1544, %1513
  %1518 = load i64, ptr %147, align 8, !tbaa !11
  %1519 = icmp ult i64 %1518, 5
  br i1 %1519, label %1521, label %1520

1520:                                             ; preds = %1517
  store i32 140, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #11
  br label %1547

1521:                                             ; preds = %1517
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #11
  store i64 0, ptr %148, align 8, !tbaa !11
  br label %1522

1522:                                             ; preds = %1536, %1521
  %1523 = load i64, ptr %148, align 8, !tbaa !11
  %1524 = load i64, ptr %6, align 8, !tbaa !11
  %1525 = icmp ult i64 %1523, %1524
  br i1 %1525, label %1527, label %1526

1526:                                             ; preds = %1522
  store i32 143, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  br label %1543

1527:                                             ; preds = %1522
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #11
  %1528 = load i64, ptr %148, align 8, !tbaa !11
  %1529 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1528) #11
  %1530 = load i64, ptr %1529, align 8, !tbaa !11
  %1531 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %13, i64 noundef %1530)
          to label %1532 unwind label %1539

1532:                                             ; preds = %1527
  %1533 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %13, i64 noundef %1531)
          to label %1534 unwind label %1539

1534:                                             ; preds = %1532
  store i64 %1533, ptr %149, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %149)
          to label %1535 unwind label %1539

1535:                                             ; preds = %1534
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #11
  br label %1536

1536:                                             ; preds = %1535
  %1537 = load i64, ptr %148, align 8, !tbaa !11
  %1538 = add i64 %1537, 1
  store i64 %1538, ptr %148, align 8, !tbaa !11
  br label %1522, !llvm.loop !61

1539:                                             ; preds = %1534, %1532, %1527
  %1540 = landingpad { ptr, i32 }
          cleanup
  %1541 = extractvalue { ptr, i32 } %1540, 0
  store ptr %1541, ptr %23, align 8
  %1542 = extractvalue { ptr, i32 } %1540, 1
  store i32 %1542, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #11
  br label %1859

1543:                                             ; preds = %1526
  br label %1544

1544:                                             ; preds = %1543
  %1545 = load i64, ptr %147, align 8, !tbaa !11
  %1546 = add i64 %1545, 1
  store i64 %1546, ptr %147, align 8, !tbaa !11
  br label %1517, !llvm.loop !62

1547:                                             ; preds = %1520
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #11
  %1548 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1549 = getelementptr inbounds %"class.std::chrono::time_point", ptr %150, i32 0, i32 0
  %1550 = getelementptr inbounds %"class.std::chrono::duration", ptr %1549, i32 0, i32 0
  store i64 %1548, ptr %1550, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %150, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  %1551 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1552 unwind label %1570

1552:                                             ; preds = %1547
  %1553 = getelementptr inbounds %"class.std::chrono::duration", ptr %151, i32 0, i32 0
  store i64 %1551, ptr %1553, align 8
  %1554 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %1555 unwind label %1570

1555:                                             ; preds = %1552
  %1556 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 6) #11
  store i64 %1554, ptr %1556, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #11
  %1558 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1559 unwind label %1574

1559:                                             ; preds = %1555
  %1560 = getelementptr inbounds %"class.std::chrono::duration", ptr %152, i32 0, i32 0
  store i64 %1558, ptr %1560, align 8
  %1561 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %152)
          to label %1562 unwind label %1574

1562:                                             ; preds = %1559
  %1563 = load i64, ptr %20, align 8, !tbaa !11
  %1564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1557, ptr noundef @.str.22, ptr noundef @.str.18, i64 noundef %1561, i64 noundef %1563) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #11
  store i64 0, ptr %153, align 8, !tbaa !11
  br label %1565

1565:                                             ; preds = %1598, %1562
  %1566 = load i64, ptr %153, align 8, !tbaa !11
  %1567 = load i64, ptr %6, align 8, !tbaa !11
  %1568 = icmp ult i64 %1566, %1567
  br i1 %1568, label %1578, label %1569

1569:                                             ; preds = %1565
  store i32 146, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  br label %1601

1570:                                             ; preds = %1552, %1547
  %1571 = landingpad { ptr, i32 }
          cleanup
  %1572 = extractvalue { ptr, i32 } %1571, 0
  store ptr %1572, ptr %23, align 8
  %1573 = extractvalue { ptr, i32 } %1571, 1
  store i32 %1573, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  br label %1859

1574:                                             ; preds = %1559, %1555
  %1575 = landingpad { ptr, i32 }
          cleanup
  %1576 = extractvalue { ptr, i32 } %1575, 0
  store ptr %1576, ptr %23, align 8
  %1577 = extractvalue { ptr, i32 } %1575, 1
  store i32 %1577, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #11
  br label %1859

1578:                                             ; preds = %1565
  %1579 = load i64, ptr %153, align 8, !tbaa !11
  %1580 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1579) #11
  %1581 = load i64, ptr %1580, align 8, !tbaa !11
  %1582 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef %1581)
          to label %1583 unwind label %1592

1583:                                             ; preds = %1578
  %1584 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef %1582)
          to label %1585 unwind label %1592

1585:                                             ; preds = %1583
  %1586 = load i64, ptr %153, align 8, !tbaa !11
  %1587 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1586) #11
  %1588 = load i64, ptr %1587, align 8, !tbaa !11
  %1589 = icmp eq i64 %1584, %1588
  br i1 %1589, label %1590, label %1591

1590:                                             ; preds = %1585
  br label %1597

1591:                                             ; preds = %1585
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 121, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

1592:                                             ; preds = %1583, %1578
  %1593 = landingpad { ptr, i32 }
          cleanup
  %1594 = extractvalue { ptr, i32 } %1593, 0
  store ptr %1594, ptr %23, align 8
  %1595 = extractvalue { ptr, i32 } %1593, 1
  store i32 %1595, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  br label %1859

1596:                                             ; No predecessors!
  br label %1597

1597:                                             ; preds = %1596, %1590
  br label %1598

1598:                                             ; preds = %1597
  %1599 = load i64, ptr %153, align 8, !tbaa !11
  %1600 = add i64 %1599, 1
  store i64 %1600, ptr %153, align 8, !tbaa !11
  br label %1565, !llvm.loop !63

1601:                                             ; preds = %1569
  call void @llvm.lifetime.start.p0(i64 8, ptr %154) #11
  %1602 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1603 = getelementptr inbounds %"class.std::chrono::time_point", ptr %154, i32 0, i32 0
  %1604 = getelementptr inbounds %"class.std::chrono::duration", ptr %1603, i32 0, i32 0
  store i64 %1602, ptr %1604, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %154, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %154) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #11
  store i64 0, ptr %155, align 8, !tbaa !11
  br label %1605

1605:                                             ; preds = %1632, %1601
  %1606 = load i64, ptr %155, align 8, !tbaa !11
  %1607 = icmp ult i64 %1606, 5
  br i1 %1607, label %1609, label %1608

1608:                                             ; preds = %1605
  store i32 149, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #11
  br label %1635

1609:                                             ; preds = %1605
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #11
  store i64 0, ptr %156, align 8, !tbaa !11
  br label %1610

1610:                                             ; preds = %1624, %1609
  %1611 = load i64, ptr %156, align 8, !tbaa !11
  %1612 = load i64, ptr %6, align 8, !tbaa !11
  %1613 = icmp ult i64 %1611, %1612
  br i1 %1613, label %1615, label %1614

1614:                                             ; preds = %1610
  store i32 152, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #11
  br label %1631

1615:                                             ; preds = %1610
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #11
  %1616 = load i64, ptr %156, align 8, !tbaa !11
  %1617 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1616) #11
  %1618 = load i64, ptr %1617, align 8, !tbaa !11
  %1619 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef %1618)
          to label %1620 unwind label %1627

1620:                                             ; preds = %1615
  %1621 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1) %15, i64 noundef %1619)
          to label %1622 unwind label %1627

1622:                                             ; preds = %1620
  store i64 %1621, ptr %157, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %157)
          to label %1623 unwind label %1627

1623:                                             ; preds = %1622
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #11
  br label %1624

1624:                                             ; preds = %1623
  %1625 = load i64, ptr %156, align 8, !tbaa !11
  %1626 = add i64 %1625, 1
  store i64 %1626, ptr %156, align 8, !tbaa !11
  br label %1610, !llvm.loop !64

1627:                                             ; preds = %1622, %1620, %1615
  %1628 = landingpad { ptr, i32 }
          cleanup
  %1629 = extractvalue { ptr, i32 } %1628, 0
  store ptr %1629, ptr %23, align 8
  %1630 = extractvalue { ptr, i32 } %1628, 1
  store i32 %1630, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #11
  br label %1859

1631:                                             ; preds = %1614
  br label %1632

1632:                                             ; preds = %1631
  %1633 = load i64, ptr %155, align 8, !tbaa !11
  %1634 = add i64 %1633, 1
  store i64 %1634, ptr %155, align 8, !tbaa !11
  br label %1605, !llvm.loop !65

1635:                                             ; preds = %1608
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #11
  %1636 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1637 = getelementptr inbounds %"class.std::chrono::time_point", ptr %158, i32 0, i32 0
  %1638 = getelementptr inbounds %"class.std::chrono::duration", ptr %1637, i32 0, i32 0
  store i64 %1636, ptr %1638, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %158, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #11
  %1639 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1640 unwind label %1658

1640:                                             ; preds = %1635
  %1641 = getelementptr inbounds %"class.std::chrono::duration", ptr %159, i32 0, i32 0
  store i64 %1639, ptr %1641, align 8
  %1642 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %159)
          to label %1643 unwind label %1658

1643:                                             ; preds = %1640
  %1644 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 7) #11
  store i64 %1642, ptr %1644, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #11
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #11
  %1646 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1647 unwind label %1662

1647:                                             ; preds = %1643
  %1648 = getelementptr inbounds %"class.std::chrono::duration", ptr %160, i32 0, i32 0
  store i64 %1646, ptr %1648, align 8
  %1649 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %160)
          to label %1650 unwind label %1662

1650:                                             ; preds = %1647
  %1651 = load i64, ptr %20, align 8, !tbaa !11
  %1652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef @.str.22, ptr noundef @.str.14, i64 noundef %1649, i64 noundef %1651) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #11
  store i64 0, ptr %161, align 8, !tbaa !11
  br label %1653

1653:                                             ; preds = %1686, %1650
  %1654 = load i64, ptr %161, align 8, !tbaa !11
  %1655 = load i64, ptr %6, align 8, !tbaa !11
  %1656 = icmp ult i64 %1654, %1655
  br i1 %1656, label %1666, label %1657

1657:                                             ; preds = %1653
  store i32 155, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #11
  br label %1689

1658:                                             ; preds = %1640, %1635
  %1659 = landingpad { ptr, i32 }
          cleanup
  %1660 = extractvalue { ptr, i32 } %1659, 0
  store ptr %1660, ptr %23, align 8
  %1661 = extractvalue { ptr, i32 } %1659, 1
  store i32 %1661, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #11
  br label %1859

1662:                                             ; preds = %1647, %1643
  %1663 = landingpad { ptr, i32 }
          cleanup
  %1664 = extractvalue { ptr, i32 } %1663, 0
  store ptr %1664, ptr %23, align 8
  %1665 = extractvalue { ptr, i32 } %1663, 1
  store i32 %1665, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #11
  br label %1859

1666:                                             ; preds = %1653
  %1667 = load i64, ptr %161, align 8, !tbaa !11
  %1668 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1667) #11
  %1669 = load i64, ptr %1668, align 8, !tbaa !11
  %1670 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %16, i64 noundef %1669)
          to label %1671 unwind label %1680

1671:                                             ; preds = %1666
  %1672 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %16, i64 noundef %1670)
          to label %1673 unwind label %1680

1673:                                             ; preds = %1671
  %1674 = load i64, ptr %161, align 8, !tbaa !11
  %1675 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1674) #11
  %1676 = load i64, ptr %1675, align 8, !tbaa !11
  %1677 = icmp eq i64 %1672, %1676
  br i1 %1677, label %1678, label %1679

1678:                                             ; preds = %1673
  br label %1685

1679:                                             ; preds = %1673
  call void @__assert_fail(ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 122, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

1680:                                             ; preds = %1671, %1666
  %1681 = landingpad { ptr, i32 }
          cleanup
  %1682 = extractvalue { ptr, i32 } %1681, 0
  store ptr %1682, ptr %23, align 8
  %1683 = extractvalue { ptr, i32 } %1681, 1
  store i32 %1683, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #11
  br label %1859

1684:                                             ; No predecessors!
  br label %1685

1685:                                             ; preds = %1684, %1678
  br label %1686

1686:                                             ; preds = %1685
  %1687 = load i64, ptr %161, align 8, !tbaa !11
  %1688 = add i64 %1687, 1
  store i64 %1688, ptr %161, align 8, !tbaa !11
  br label %1653, !llvm.loop !66

1689:                                             ; preds = %1657
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #11
  %1690 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1691 = getelementptr inbounds %"class.std::chrono::time_point", ptr %162, i32 0, i32 0
  %1692 = getelementptr inbounds %"class.std::chrono::duration", ptr %1691, i32 0, i32 0
  store i64 %1690, ptr %1692, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %162, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %163) #11
  store i64 0, ptr %163, align 8, !tbaa !11
  br label %1693

1693:                                             ; preds = %1720, %1689
  %1694 = load i64, ptr %163, align 8, !tbaa !11
  %1695 = icmp ult i64 %1694, 5
  br i1 %1695, label %1697, label %1696

1696:                                             ; preds = %1693
  store i32 158, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #11
  br label %1723

1697:                                             ; preds = %1693
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #11
  store i64 0, ptr %164, align 8, !tbaa !11
  br label %1698

1698:                                             ; preds = %1712, %1697
  %1699 = load i64, ptr %164, align 8, !tbaa !11
  %1700 = load i64, ptr %6, align 8, !tbaa !11
  %1701 = icmp ult i64 %1699, %1700
  br i1 %1701, label %1703, label %1702

1702:                                             ; preds = %1698
  store i32 161, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #11
  br label %1719

1703:                                             ; preds = %1698
  call void @llvm.lifetime.start.p0(i64 8, ptr %165) #11
  %1704 = load i64, ptr %164, align 8, !tbaa !11
  %1705 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1704) #11
  %1706 = load i64, ptr %1705, align 8, !tbaa !11
  %1707 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %16, i64 noundef %1706)
          to label %1708 unwind label %1715

1708:                                             ; preds = %1703
  %1709 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %16, i64 noundef %1707)
          to label %1710 unwind label %1715

1710:                                             ; preds = %1708
  store i64 %1709, ptr %165, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %165)
          to label %1711 unwind label %1715

1711:                                             ; preds = %1710
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #11
  br label %1712

1712:                                             ; preds = %1711
  %1713 = load i64, ptr %164, align 8, !tbaa !11
  %1714 = add i64 %1713, 1
  store i64 %1714, ptr %164, align 8, !tbaa !11
  br label %1698, !llvm.loop !67

1715:                                             ; preds = %1710, %1708, %1703
  %1716 = landingpad { ptr, i32 }
          cleanup
  %1717 = extractvalue { ptr, i32 } %1716, 0
  store ptr %1717, ptr %23, align 8
  %1718 = extractvalue { ptr, i32 } %1716, 1
  store i32 %1718, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %165) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %163) #11
  br label %1859

1719:                                             ; preds = %1702
  br label %1720

1720:                                             ; preds = %1719
  %1721 = load i64, ptr %163, align 8, !tbaa !11
  %1722 = add i64 %1721, 1
  store i64 %1722, ptr %163, align 8, !tbaa !11
  br label %1693, !llvm.loop !68

1723:                                             ; preds = %1696
  call void @llvm.lifetime.start.p0(i64 8, ptr %166) #11
  %1724 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1725 = getelementptr inbounds %"class.std::chrono::time_point", ptr %166, i32 0, i32 0
  %1726 = getelementptr inbounds %"class.std::chrono::duration", ptr %1725, i32 0, i32 0
  store i64 %1724, ptr %1726, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %166, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %166) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %167) #11
  %1727 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1728 unwind label %1746

1728:                                             ; preds = %1723
  %1729 = getelementptr inbounds %"class.std::chrono::duration", ptr %167, i32 0, i32 0
  store i64 %1727, ptr %1729, align 8
  %1730 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %167)
          to label %1731 unwind label %1746

1731:                                             ; preds = %1728
  %1732 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 8) #11
  store i64 %1730, ptr %1732, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #11
  %1733 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %168) #11
  %1734 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1735 unwind label %1750

1735:                                             ; preds = %1731
  %1736 = getelementptr inbounds %"class.std::chrono::duration", ptr %168, i32 0, i32 0
  store i64 %1734, ptr %1736, align 8
  %1737 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %168)
          to label %1738 unwind label %1750

1738:                                             ; preds = %1735
  %1739 = load i64, ptr %20, align 8, !tbaa !11
  %1740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1733, ptr noundef @.str.22, ptr noundef @.str.16, i64 noundef %1737, i64 noundef %1739) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #11
  store i64 0, ptr %169, align 8, !tbaa !11
  br label %1741

1741:                                             ; preds = %1774, %1738
  %1742 = load i64, ptr %169, align 8, !tbaa !11
  %1743 = load i64, ptr %6, align 8, !tbaa !11
  %1744 = icmp ult i64 %1742, %1743
  br i1 %1744, label %1754, label %1745

1745:                                             ; preds = %1741
  store i32 164, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #11
  br label %1777

1746:                                             ; preds = %1728, %1723
  %1747 = landingpad { ptr, i32 }
          cleanup
  %1748 = extractvalue { ptr, i32 } %1747, 0
  store ptr %1748, ptr %23, align 8
  %1749 = extractvalue { ptr, i32 } %1747, 1
  store i32 %1749, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %167) #11
  br label %1859

1750:                                             ; preds = %1735, %1731
  %1751 = landingpad { ptr, i32 }
          cleanup
  %1752 = extractvalue { ptr, i32 } %1751, 0
  store ptr %1752, ptr %23, align 8
  %1753 = extractvalue { ptr, i32 } %1751, 1
  store i32 %1753, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %168) #11
  br label %1859

1754:                                             ; preds = %1741
  %1755 = load i64, ptr %169, align 8, !tbaa !11
  %1756 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1755) #11
  %1757 = load i64, ptr %1756, align 8, !tbaa !11
  %1758 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %17, i64 noundef %1757)
          to label %1759 unwind label %1768

1759:                                             ; preds = %1754
  %1760 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %17, i64 noundef %1758)
          to label %1761 unwind label %1768

1761:                                             ; preds = %1759
  %1762 = load i64, ptr %169, align 8, !tbaa !11
  %1763 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1762) #11
  %1764 = load i64, ptr %1763, align 8, !tbaa !11
  %1765 = icmp eq i64 %1760, %1764
  br i1 %1765, label %1766, label %1767

1766:                                             ; preds = %1761
  br label %1773

1767:                                             ; preds = %1761
  call void @__assert_fail(ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 123, ptr noundef @__PRETTY_FUNCTION__.main) #12
  unreachable

1768:                                             ; preds = %1759, %1754
  %1769 = landingpad { ptr, i32 }
          cleanup
  %1770 = extractvalue { ptr, i32 } %1769, 0
  store ptr %1770, ptr %23, align 8
  %1771 = extractvalue { ptr, i32 } %1769, 1
  store i32 %1771, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #11
  br label %1859

1772:                                             ; No predecessors!
  br label %1773

1773:                                             ; preds = %1772, %1766
  br label %1774

1774:                                             ; preds = %1773
  %1775 = load i64, ptr %169, align 8, !tbaa !11
  %1776 = add i64 %1775, 1
  store i64 %1776, ptr %169, align 8, !tbaa !11
  br label %1741, !llvm.loop !69

1777:                                             ; preds = %1745
  call void @llvm.lifetime.start.p0(i64 8, ptr %170) #11
  %1778 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1779 = getelementptr inbounds %"class.std::chrono::time_point", ptr %170, i32 0, i32 0
  %1780 = getelementptr inbounds %"class.std::chrono::duration", ptr %1779, i32 0, i32 0
  store i64 %1778, ptr %1780, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %19, ptr align 8 %170, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %170) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %171) #11
  store i64 0, ptr %171, align 8, !tbaa !11
  br label %1781

1781:                                             ; preds = %1808, %1777
  %1782 = load i64, ptr %171, align 8, !tbaa !11
  %1783 = icmp ult i64 %1782, 5
  br i1 %1783, label %1785, label %1784

1784:                                             ; preds = %1781
  store i32 167, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #11
  br label %1811

1785:                                             ; preds = %1781
  store i64 0, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #11
  store i64 0, ptr %172, align 8, !tbaa !11
  br label %1786

1786:                                             ; preds = %1800, %1785
  %1787 = load i64, ptr %172, align 8, !tbaa !11
  %1788 = load i64, ptr %6, align 8, !tbaa !11
  %1789 = icmp ult i64 %1787, %1788
  br i1 %1789, label %1791, label %1790

1790:                                             ; preds = %1786
  store i32 170, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #11
  br label %1807

1791:                                             ; preds = %1786
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #11
  %1792 = load i64, ptr %172, align 8, !tbaa !11
  %1793 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %1792) #11
  %1794 = load i64, ptr %1793, align 8, !tbaa !11
  %1795 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %17, i64 noundef %1794)
          to label %1796 unwind label %1803

1796:                                             ; preds = %1791
  %1797 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %17, i64 noundef %1795)
          to label %1798 unwind label %1803

1798:                                             ; preds = %1796
  store i64 %1797, ptr %173, align 8, !tbaa !11
  invoke void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %173)
          to label %1799 unwind label %1803

1799:                                             ; preds = %1798
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #11
  br label %1800

1800:                                             ; preds = %1799
  %1801 = load i64, ptr %172, align 8, !tbaa !11
  %1802 = add i64 %1801, 1
  store i64 %1802, ptr %172, align 8, !tbaa !11
  br label %1786, !llvm.loop !70

1803:                                             ; preds = %1798, %1796, %1791
  %1804 = landingpad { ptr, i32 }
          cleanup
  %1805 = extractvalue { ptr, i32 } %1804, 0
  store ptr %1805, ptr %23, align 8
  %1806 = extractvalue { ptr, i32 } %1804, 1
  store i32 %1806, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %171) #11
  br label %1859

1807:                                             ; preds = %1790
  br label %1808

1808:                                             ; preds = %1807
  %1809 = load i64, ptr %171, align 8, !tbaa !11
  %1810 = add i64 %1809, 1
  store i64 %1810, ptr %171, align 8, !tbaa !11
  br label %1781, !llvm.loop !71

1811:                                             ; preds = %1784
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #11
  %1812 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #11
  %1813 = getelementptr inbounds %"class.std::chrono::time_point", ptr %174, i32 0, i32 0
  %1814 = getelementptr inbounds %"class.std::chrono::duration", ptr %1813, i32 0, i32 0
  store i64 %1812, ptr %1814, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %174, i64 8, i1 false), !tbaa.struct !17
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #11
  %1815 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1816 unwind label %1834

1816:                                             ; preds = %1811
  %1817 = getelementptr inbounds %"class.std::chrono::duration", ptr %175, i32 0, i32 0
  store i64 %1815, ptr %1817, align 8
  %1818 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %175)
          to label %1819 unwind label %1834

1819:                                             ; preds = %1816
  %1820 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 9) #11
  store i64 %1818, ptr %1820, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #11
  %1821 = load ptr, ptr @stderr, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #11
  %1822 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %1823 unwind label %1838

1823:                                             ; preds = %1819
  %1824 = getelementptr inbounds %"class.std::chrono::duration", ptr %176, i32 0, i32 0
  store i64 %1822, ptr %1824, align 8
  %1825 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %176)
          to label %1826 unwind label %1838

1826:                                             ; preds = %1823
  %1827 = load i64, ptr %20, align 8, !tbaa !11
  %1828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1821, ptr noundef @.str.22, ptr noundef @.str.20, i64 noundef %1825, i64 noundef %1827) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #11
  store i64 1, ptr %177, align 8, !tbaa !11
  br label %1829

1829:                                             ; preds = %1854, %1826
  %1830 = load i64, ptr %177, align 8, !tbaa !11
  %1831 = call noundef i64 @_ZNKSt5arrayImLm10EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %18) #13
  %1832 = icmp ult i64 %1830, %1831
  br i1 %1832, label %1842, label %1833

1833:                                             ; preds = %1829
  store i32 173, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #11
  br label %1857

1834:                                             ; preds = %1816, %1811
  %1835 = landingpad { ptr, i32 }
          cleanup
  %1836 = extractvalue { ptr, i32 } %1835, 0
  store ptr %1836, ptr %23, align 8
  %1837 = extractvalue { ptr, i32 } %1835, 1
  store i32 %1837, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #11
  br label %1859

1838:                                             ; preds = %1823, %1819
  %1839 = landingpad { ptr, i32 }
          cleanup
  %1840 = extractvalue { ptr, i32 } %1839, 0
  store ptr %1840, ptr %23, align 8
  %1841 = extractvalue { ptr, i32 } %1839, 1
  store i32 %1841, ptr %24, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #11
  br label %1859

1842:                                             ; preds = %1829
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = load i64, ptr %177, align 8, !tbaa !11
  %1845 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef 0) #11
  %1846 = load i64, ptr %1845, align 8, !tbaa !11
  %1847 = uitofp i64 %1846 to double
  %1848 = load i64, ptr %177, align 8, !tbaa !11
  %1849 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %18, i64 noundef %1848) #11
  %1850 = load i64, ptr %1849, align 8, !tbaa !11
  %1851 = uitofp i64 %1850 to double
  %1852 = fdiv double %1847, %1851
  %1853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1843, ptr noundef @.str.21, i64 noundef %1844, double noundef %1852) #11
  br label %1854

1854:                                             ; preds = %1842
  %1855 = load i64, ptr %177, align 8, !tbaa !11
  %1856 = add i64 %1855, 1
  store i64 %1856, ptr %177, align 8, !tbaa !11
  br label %1829, !llvm.loop !72

1857:                                             ; preds = %1833
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 3, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 128, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #11
  %1858 = load i32, ptr %3, align 4
  ret i32 %1858

1859:                                             ; preds = %1838, %1834, %1803, %1768, %1750, %1746, %1715, %1680, %1662, %1658, %1627, %1592, %1574, %1570, %1539, %1504, %1486, %1482, %1451, %1417, %1413, %1382, %1347, %1329, %1325, %1294, %1259, %1241, %1237, %1206, %1171, %1153, %1149, %1118, %1083, %1044, %1040, %1009, %976, %958, %954, %923, %890, %872, %868, %837, %804, %786, %782, %751, %718, %700, %696, %665, %633, %629, %598, %565, %547, %543, %512, %479, %461, %457, %426, %393, %375, %371, %340, %307, %289, %285
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  br label %1860

1860:                                             ; preds = %1859, %257
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #11
  br label %1861

1861:                                             ; preds = %1860, %218
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 3, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 128, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 104, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 72, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #11
  br label %1862

1862:                                             ; preds = %1861
  %1863 = load ptr, ptr %23, align 8
  %1864 = load i32, ptr %24, align 4
  %1865 = insertvalue { ptr, i32 } poison, ptr %1863, 0
  %1866 = insertvalue { ptr, i32 } %1865, i32 %1864, 1
  resume { ptr, i32 } %1866
}

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

; Function Attrs: nounwind
declare i64 @strtoull(ptr noundef, ptr noundef, i32 noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6sketch4hash8WangHashC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1), i64 noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash16MultiplyAddXoRotILm33EEC2Emm(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash14MultiplyAddXorC2Emm(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash11XorMultiplyC2Emm(ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEC2Emm(ptr noundef nonnull align 8 dereferenceable(104), i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EEC2Em(ptr noundef nonnull align 4 dereferenceable(48), i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6sketch4hash10MurFinHashC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEC2Emm(ptr noundef nonnull align 8 dereferenceable(128), i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash8CEHasherC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(3)) unnamed_addr #5 align 2

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

; Function Attrs: nounwind
declare i64 @_ZNSt6chrono3_V212system_clock3nowEv() #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_Z15irving_inv_hashm(i64 noundef) #4

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #7

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

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80), i64 noundef) #3 align 2

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef) #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48), i64 noundef) #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48), i64 noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104), i64 noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104), i64 noundef) #8 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48), i64 noundef) #5 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1), i64 noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1), i64 noundef) #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128), i64 noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128), i64 noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3), i64 noundef) #8 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3), i64 noundef) #8 align 2

; Function Attrs: mustprogress nounwind willreturn memory(none) uwtable
declare dso_local noundef i64 @_ZNKSt5arrayImLm10EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80)) #10 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EE7inverseEm(ptr noundef nonnull align 4 dereferenceable(48), i64 noundef) #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

attributes #0 = { mustprogress norecurse 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nounwind "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 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 #4 = { alwaysinline 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 #5 = { 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 #6 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #7 = { noreturn nounwind "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 #8 = { alwaysinline 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 #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { mustprogress nounwind willreturn memory(none) 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 #11 = { nounwind }
attributes #12 = { noreturn nounwind }
attributes #13 = { nounwind willreturn memory(none) }

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = !{i64 0, i64 8, !11}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = distinct !{!48, !14}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = distinct !{!51, !14}
!52 = distinct !{!52, !14}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}
!55 = distinct !{!55, !14}
!56 = distinct !{!56, !14}
!57 = distinct !{!57, !14}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14}
!60 = distinct !{!60, !14}
!61 = distinct !{!61, !14}
!62 = distinct !{!62, !14}
!63 = distinct !{!63, !14}
!64 = distinct !{!64, !14}
!65 = distinct !{!65, !14}
!66 = distinct !{!66, !14}
!67 = distinct !{!67, !14}
!68 = distinct !{!68, !14}
!69 = distinct !{!69, !14}
!70 = distinct !{!70, !14}
!71 = distinct !{!71, !14}
!72 = distinct !{!72, !14}


; 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.sketch::hash::WangHash" = type { i8 }
%"struct.sketch::hash::MultiplyAddXoRot" = type { %"struct.sketch::hash::FusedReversible3" }
%"struct.sketch::hash::FusedReversible3" = type { %"struct.sketch::hash::InvH", %"struct.sketch::hash::InvH.0", %"struct.sketch::hash::InvH.2" }
%"struct.sketch::hash::InvH" = type <{ i64, i64, [8 x i8] }>
%"struct.sketch::hash::InvH.0" = type <{ i64, i64, [8 x i8] }>
%"struct.sketch::hash::InvH.2" = type <{ i64, i64, [8 x i8] }>
%"struct.sketch::hash::MultiplyAddXor" = type { %"struct.sketch::hash::FusedReversible3.4" }
%"struct.sketch::hash::FusedReversible3.4" = type { %"struct.sketch::hash::InvH.5", %"struct.sketch::hash::InvH", %"struct.sketch::hash::InvH.0" }
%"struct.sketch::hash::InvH.5" = type <{ i64, i64, [8 x i8] }>
%"struct.sketch::hash::XorMultiply" = type { %"struct.sketch::hash::FusedReversible" }
%"struct.sketch::hash::FusedReversible" = type { %"struct.sketch::hash::InvH.0", %"struct.sketch::hash::InvH" }
%"struct.sketch::hash::FusedReversible3.7" = type { %"struct.sketch::hash::InvH", [8 x i8], %"struct.sketch::hash::MultiplyAddXoRot.8" }
%"struct.sketch::hash::MultiplyAddXoRot.8" = type { %"struct.sketch::hash::FusedReversible3.9" }
%"struct.sketch::hash::FusedReversible3.9" = type { %"struct.sketch::hash::InvH", %"struct.sketch::hash::InvH.0", %"struct.sketch::hash::InvH.10" }
%"struct.sketch::hash::InvH.10" = type <{ i64, i64, [8 x i8] }>
%"class.sketch::hash::KWiseIndependentPolynomialHash" = type { %"struct.std::array" }
%"struct.std::array" = type { [4 x %"struct.std::array.12"] }
%"struct.std::array.12" = type { [3 x i32] }
%"struct.sketch::hash::MurFinHash" = type { i8 }
%"struct.sketch::hash::FusedReversible3.13" = type { %"struct.sketch::hash::XorMultiply", [8 x i8], %"struct.sketch::hash::MultiplyAddXoRot.14" }
%"struct.sketch::hash::MultiplyAddXoRot.14" = type { %"struct.sketch::hash::FusedReversible3.15" }
%"struct.sketch::hash::FusedReversible3.15" = type { %"struct.sketch::hash::InvH", %"struct.sketch::hash::InvH.0", %"struct.sketch::hash::InvH.16" }
%"struct.sketch::hash::InvH.16" = type <{ i64, i64, [8 x i8] }>
%"struct.sketch::hash::CEHasher" = type { [3 x i8] }
%"struct.std::array.20" = type { [10 x i64] }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }

@.str = external hidden unnamed_addr constant [40 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [72 x i8], align 1
@__PRETTY_FUNCTION__.main = external hidden unnamed_addr constant [23 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [36 x i8], align 1

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"struct.sketch::hash::WangHash", align 1
  %4 = alloca %"struct.sketch::hash::MultiplyAddXoRot", align 8
  %5 = alloca %"struct.sketch::hash::MultiplyAddXor", align 8
  %6 = alloca %"struct.sketch::hash::XorMultiply", align 8
  %7 = alloca %"struct.sketch::hash::FusedReversible3.7", align 8
  %8 = alloca %"struct.sketch::hash::XorMultiply", align 8
  %9 = alloca %"class.sketch::hash::KWiseIndependentPolynomialHash", align 4
  %10 = alloca %"struct.sketch::hash::MurFinHash", align 1
  %11 = alloca %"struct.sketch::hash::FusedReversible3.13", align 8
  %12 = alloca %"struct.sketch::hash::CEHasher", align 1
  %13 = alloca %"struct.std::array.20", align 8
  %14 = alloca %"class.std::chrono::time_point", align 8
  %15 = alloca %"class.std::vector", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca i64, align 8
  %18 = alloca %"class.std::chrono::time_point", align 8
  %19 = alloca %"class.std::chrono::duration", align 8
  %20 = alloca %"class.std::chrono::duration", align 8
  %21 = alloca i64, align 8
  %22 = alloca %"class.std::chrono::duration", align 8
  %23 = alloca %"class.std::chrono::duration", align 8
  %24 = alloca i64, align 8
  %25 = alloca %"class.std::chrono::duration", align 8
  %26 = alloca %"class.std::chrono::duration", align 8
  %27 = alloca i64, align 8
  %28 = alloca %"class.std::chrono::duration", align 8
  %29 = alloca %"class.std::chrono::duration", align 8
  %30 = alloca i64, align 8
  %31 = alloca %"class.std::chrono::duration", align 8
  %32 = alloca %"class.std::chrono::duration", align 8
  %33 = alloca i64, align 8
  %34 = alloca %"class.std::chrono::duration", align 8
  %35 = alloca %"class.std::chrono::duration", align 8
  %36 = alloca i64, align 8
  %37 = alloca %"class.std::chrono::duration", align 8
  %38 = alloca %"class.std::chrono::duration", align 8
  %39 = alloca i64, align 8
  %40 = alloca %"class.std::chrono::duration", align 8
  %41 = alloca %"class.std::chrono::duration", align 8
  %42 = alloca i64, align 8
  %43 = alloca %"class.std::chrono::duration", align 8
  %44 = alloca %"class.std::chrono::duration", align 8
  %45 = alloca i64, align 8
  %46 = alloca %"class.std::chrono::duration", align 8
  %47 = alloca %"class.std::chrono::duration", align 8
  %48 = alloca i64, align 8
  %49 = alloca %"class.std::chrono::duration", align 8
  %50 = alloca %"class.std::chrono::duration", align 8
  %51 = alloca i64, align 8
  %52 = alloca %"class.std::chrono::duration", align 8
  %53 = alloca %"class.std::chrono::duration", align 8
  %54 = alloca i64, align 8
  %55 = alloca %"class.std::chrono::duration", align 8
  %56 = alloca %"class.std::chrono::duration", align 8
  %57 = alloca i64, align 8
  %58 = alloca %"class.std::chrono::duration", align 8
  %59 = alloca %"class.std::chrono::duration", align 8
  %60 = alloca i64, align 8
  %61 = alloca %"class.std::chrono::duration", align 8
  %62 = alloca %"class.std::chrono::duration", align 8
  %63 = alloca i64, align 8
  %64 = alloca %"class.std::chrono::duration", align 8
  %65 = alloca %"class.std::chrono::duration", align 8
  %66 = alloca i64, align 8
  %67 = alloca %"class.std::chrono::duration", align 8
  %68 = alloca %"class.std::chrono::duration", align 8
  %69 = alloca i64, align 8
  %70 = alloca %"class.std::chrono::duration", align 8
  %71 = alloca %"class.std::chrono::duration", align 8
  %72 = alloca i64, align 8
  %73 = alloca %"class.std::chrono::duration", align 8
  %74 = alloca %"class.std::chrono::duration", align 8
  %75 = icmp sgt i32 %0, 1
  br i1 %75, label %76, label %80

76:                                               ; preds = %2
  %77 = getelementptr inbounds i8, ptr %1, i64 8
  %78 = load ptr, ptr %77, align 8, !tbaa !5
  %79 = tail call i64 @strtoull(ptr nocapture noundef %78, ptr noundef null, i32 noundef 10) #12
  br label %80

80:                                               ; preds = %76, %2
  %.0281 = phi i64 [ %79, %76 ], [ 100000000, %2 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #12
  call void @_ZN6sketch4hash8WangHashC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(1) %3)
  %81 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef 1337)
  %82 = add i64 %81, 17
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %4) #12
  %83 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %82)
  call void @_ZN6sketch4hash16MultiplyAddXoRotILm33EEC2Emm(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %82, i64 noundef %83)
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %5) #12
  call void @_ZN6sketch4hash14MultiplyAddXorC2Emm(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %82, i64 noundef -2054159557099562467)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) #12
  %84 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %82)
  call void @_ZN6sketch4hash11XorMultiplyC2Emm(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %82, i64 noundef %84)
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %7) #12
  %85 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %82)
  call void @_ZN6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEC2Emm(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %82, i64 noundef %85)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) #12
  %86 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %82)
  %87 = xor i64 %86, %82
  %88 = or i64 %87, 1
  %89 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %82)
  %90 = or i64 %89, 1
  call void @_ZN6sketch4hash11XorMultiplyC2Emm(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %88, i64 noundef %90)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #12
  call void @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EEC2Em(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef 137)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #12
  call void @_ZN6sketch4hash10MurFinHashC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(1) %10)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %11) #12
  %91 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %82)
  call void @_ZN6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEC2Emm(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %82, i64 noundef %91)
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %12) #12
  call void @_ZN6sketch4hash8CEHasherC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(3) %12)
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %13, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  %92 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %92, ptr %14, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #12
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #12
  invoke void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0281, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %.preheader365 unwind label %93

.preheader365:                                    ; preds = %80
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #12
  %.not = icmp eq i64 %.0281, 0
  br i1 %.not, label %._crit_edge.4, label %.lr.ph

93:                                               ; preds = %80
  %94 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #12
  br label %1184

.lr.ph.1:                                         ; preds = %128, %98
  %.0297366.1 = phi i64 [ %101, %98 ], [ 0, %128 ]
  %95 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %.0297366.1)
  %96 = call noundef i64 @_Z15irving_inv_hashm(i64 noundef %95)
  %97 = icmp eq i64 %96, %.0297366.1
  br i1 %97, label %98, label %.loopexit

98:                                               ; preds = %.lr.ph.1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %99 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %.0297366.1)
  %100 = call noundef i64 @_Z15irving_inv_hashm(i64 noundef %99)
  store i64 %100, ptr %17, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  %101 = add nuw i64 %.0297366.1, 1
  %exitcond.1.not = icmp eq i64 %101, %.0281
  br i1 %exitcond.1.not, label %.lr.ph.2, label %.lr.ph.1, !llvm.loop !11

.lr.ph.2:                                         ; preds = %98, %105
  %.0297366.2 = phi i64 [ %108, %105 ], [ 0, %98 ]
  %102 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %.0297366.2)
  %103 = call noundef i64 @_Z15irving_inv_hashm(i64 noundef %102)
  %104 = icmp eq i64 %103, %.0297366.2
  br i1 %104, label %105, label %.loopexit

105:                                              ; preds = %.lr.ph.2
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %106 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %.0297366.2)
  %107 = call noundef i64 @_Z15irving_inv_hashm(i64 noundef %106)
  store i64 %107, ptr %17, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  %108 = add nuw i64 %.0297366.2, 1
  %exitcond.2.not = icmp eq i64 %108, %.0281
  br i1 %exitcond.2.not, label %.lr.ph.3, label %.lr.ph.2, !llvm.loop !11

.lr.ph.3:                                         ; preds = %105, %112
  %.0297366.3 = phi i64 [ %115, %112 ], [ 0, %105 ]
  %109 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %.0297366.3)
  %110 = call noundef i64 @_Z15irving_inv_hashm(i64 noundef %109)
  %111 = icmp eq i64 %110, %.0297366.3
  br i1 %111, label %112, label %.loopexit

112:                                              ; preds = %.lr.ph.3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %113 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %.0297366.3)
  %114 = call noundef i64 @_Z15irving_inv_hashm(i64 noundef %113)
  store i64 %114, ptr %17, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  %115 = add nuw i64 %.0297366.3, 1
  %exitcond.3.not = icmp eq i64 %115, %.0281
  br i1 %exitcond.3.not, label %.lr.ph.4, label %.lr.ph.3, !llvm.loop !11

.lr.ph.4:                                         ; preds = %112, %119
  %.0297366.4 = phi i64 [ %122, %119 ], [ 0, %112 ]
  %116 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %.0297366.4)
  %117 = call noundef i64 @_Z15irving_inv_hashm(i64 noundef %116)
  %118 = icmp eq i64 %117, %.0297366.4
  br i1 %118, label %119, label %.loopexit

119:                                              ; preds = %.lr.ph.4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %120 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %.0297366.4)
  %121 = call noundef i64 @_Z15irving_inv_hashm(i64 noundef %120)
  store i64 %121, ptr %17, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  %122 = add nuw i64 %.0297366.4, 1
  %exitcond.4.not = icmp eq i64 %122, %.0281
  br i1 %exitcond.4.not, label %._crit_edge.4, label %.lr.ph.4, !llvm.loop !11

._crit_edge.4:                                    ; preds = %119, %.preheader365
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %123 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %123, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #12
  %124 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %132 unwind label %143

.lr.ph:                                           ; preds = %.preheader365, %128
  %.0297366 = phi i64 [ %131, %128 ], [ 0, %.preheader365 ]
  %125 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %.0297366)
  %126 = call noundef i64 @_Z15irving_inv_hashm(i64 noundef %125)
  %127 = icmp eq i64 %126, %.0297366
  br i1 %127, label %128, label %.loopexit

.loopexit:                                        ; preds = %.lr.ph, %.lr.ph.1, %.lr.ph.2, %.lr.ph.3, %.lr.ph.4
  call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

128:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  %129 = call noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %3, i64 noundef %.0297366)
  %130 = call noundef i64 @_Z15irving_inv_hashm(i64 noundef %129)
  store i64 %130, ptr %17, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  %131 = add nuw i64 %.0297366, 1
  %exitcond.not = icmp eq i64 %131, %.0281
  br i1 %exitcond.not, label %.lr.ph.1, label %.lr.ph, !llvm.loop !11

132:                                              ; preds = %._crit_edge.4
  store i64 %124, ptr %19, align 8
  %133 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
  %134 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 0) #12
  store i64 %133, ptr %134, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  %135 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #12
  %136 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %137 unwind label %145

137:                                              ; preds = %132
  store i64 %136, ptr %20, align 8
  %138 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
  %139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %135, ptr noundef nonnull @.str.2, i64 noundef %138, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  br i1 %.not, label %._crit_edge374.3.thread, label %.lr.ph370

._crit_edge374.3.thread:                          ; preds = %137
  %140 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %140, ptr %14, align 8, !tbaa !9
  br label %._crit_edge374.4

141:                                              ; preds = %152
  %142 = add nuw i64 %.0300368, 1
  %exitcond549.not = icmp eq i64 %142, %.0281
  br i1 %exitcond549.not, label %.lr.ph373.preheader, label %.lr.ph370, !llvm.loop !13

143:                                              ; preds = %._crit_edge.4
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  br label %1183

145:                                              ; preds = %132
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  br label %1183

.lr.ph370:                                        ; preds = %137, %141
  %.0300368 = phi i64 [ %142, %141 ], [ 0, %137 ]
  %147 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0300368) #12
  %148 = load i64, ptr %147, align 8, !tbaa !9
  %149 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %148)
          to label %150 unwind label %157

150:                                              ; preds = %.lr.ph370
  %151 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %149)
          to label %152 unwind label %157

152:                                              ; preds = %150
  %153 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0300368) #12
  %154 = load i64, ptr %153, align 8, !tbaa !9
  %155 = icmp eq i64 %151, %154
  br i1 %155, label %141, label %156

156:                                              ; preds = %152
  call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

157:                                              ; preds = %150, %.lr.ph370
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph373.preheader:                              ; preds = %141
  %159 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %159, ptr %14, align 8, !tbaa !9
  br label %.lr.ph373

.lr.ph373.1:                                      ; preds = %185, %163
  %.0305372.1 = phi i64 [ %164, %163 ], [ 0, %185 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %160 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0305372.1) #12
  %161 = load i64, ptr %160, align 8, !tbaa !9
  %162 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %161)
          to label %163 unwind label %.loopexit.split-lp.loopexit

163:                                              ; preds = %.lr.ph373.1
  store i64 %162, ptr %21, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  %164 = add nuw i64 %.0305372.1, 1
  %exitcond550.1.not = icmp eq i64 %164, %.0281
  br i1 %exitcond550.1.not, label %.lr.ph373.2, label %.lr.ph373.1, !llvm.loop !14

.lr.ph373.2:                                      ; preds = %163, %168
  %.0305372.2 = phi i64 [ %169, %168 ], [ 0, %163 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0305372.2) #12
  %166 = load i64, ptr %165, align 8, !tbaa !9
  %167 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %166)
          to label %168 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit

168:                                              ; preds = %.lr.ph373.2
  store i64 %167, ptr %21, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  %169 = add nuw i64 %.0305372.2, 1
  %exitcond550.2.not = icmp eq i64 %169, %.0281
  br i1 %exitcond550.2.not, label %.lr.ph373.3, label %.lr.ph373.2, !llvm.loop !14

.lr.ph373.3:                                      ; preds = %168, %173
  %.0305372.3 = phi i64 [ %174, %173 ], [ 0, %168 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0305372.3) #12
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %171)
          to label %173 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit

173:                                              ; preds = %.lr.ph373.3
  store i64 %172, ptr %21, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  %174 = add nuw i64 %.0305372.3, 1
  %exitcond550.3.not = icmp eq i64 %174, %.0281
  br i1 %exitcond550.3.not, label %.lr.ph373.4, label %.lr.ph373.3, !llvm.loop !14

.lr.ph373.4:                                      ; preds = %173, %178
  %.0305372.4 = phi i64 [ %179, %178 ], [ 0, %173 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0305372.4) #12
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %176)
          to label %178 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

178:                                              ; preds = %.lr.ph373.4
  store i64 %177, ptr %21, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  %179 = add nuw i64 %.0305372.4, 1
  %exitcond550.4.not = icmp eq i64 %179, %.0281
  br i1 %exitcond550.4.not, label %._crit_edge374.4, label %.lr.ph373.4, !llvm.loop !14

._crit_edge374.4:                                 ; preds = %178, %._crit_edge374.3.thread
  %180 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %180, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #12
  %181 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %187 unwind label %198

.lr.ph373:                                        ; preds = %.lr.ph373.preheader, %185
  %.0305372 = phi i64 [ %186, %185 ], [ 0, %.lr.ph373.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0305372) #12
  %183 = load i64, ptr %182, align 8, !tbaa !9
  %184 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %183)
          to label %185 unwind label %.loopexit552

185:                                              ; preds = %.lr.ph373
  store i64 %184, ptr %21, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  %186 = add nuw i64 %.0305372, 1
  %exitcond550.not = icmp eq i64 %186, %.0281
  br i1 %exitcond550.not, label %.lr.ph373.1, label %.lr.ph373, !llvm.loop !14

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

.loopexit.split-lp.loopexit:                      ; preds = %.lr.ph373.1
  %lpad.loopexit553 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit:    ; preds = %.lr.ph373.2
  %lpad.loopexit556 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph373.3
  %lpad.loopexit558 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph373.4
  %lpad.loopexit.split-lp559 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp:                               ; preds = %.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit552
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit552 ], [ %lpad.loopexit553, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit556, %.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit558, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp559, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  br label %1183

187:                                              ; preds = %._crit_edge374.4
  store i64 %181, ptr %22, align 8
  %188 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %22)
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 1) #12
  store i64 %188, ptr %189, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  %190 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  %191 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %192 unwind label %200

192:                                              ; preds = %187
  store i64 %191, ptr %23, align 8
  %193 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %23)
  %194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %190, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.5, i64 noundef %193, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  br i1 %.not, label %._crit_edge382.3.thread, label %.lr.ph378

._crit_edge382.3.thread:                          ; preds = %192
  %195 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %195, ptr %14, align 8, !tbaa !9
  br label %._crit_edge382.4

196:                                              ; preds = %207
  %197 = add nuw i64 %.0307376, 1
  %exitcond561.not = icmp eq i64 %197, %.0281
  br i1 %exitcond561.not, label %.lr.ph381.preheader, label %.lr.ph378, !llvm.loop !15

198:                                              ; preds = %._crit_edge374.4
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  br label %1183

200:                                              ; preds = %187
  %201 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  br label %1183

.lr.ph378:                                        ; preds = %192, %196
  %.0307376 = phi i64 [ %197, %196 ], [ 0, %192 ]
  %202 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0307376) #12
  %203 = load i64, ptr %202, align 8, !tbaa !9
  %204 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %203)
          to label %205 unwind label %212

205:                                              ; preds = %.lr.ph378
  %206 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %204)
          to label %207 unwind label %212

207:                                              ; preds = %205
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0307376) #12
  %209 = load i64, ptr %208, align 8, !tbaa !9
  %210 = icmp eq i64 %206, %209
  br i1 %210, label %196, label %211

211:                                              ; preds = %207
  call void @__assert_fail(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

212:                                              ; preds = %205, %.lr.ph378
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph381.preheader:                              ; preds = %196
  %214 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %214, ptr %14, align 8, !tbaa !9
  br label %.lr.ph381

.lr.ph381.1:                                      ; preds = %240, %218
  %.0312380.1 = phi i64 [ %219, %218 ], [ 0, %240 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0312380.1) #12
  %216 = load i64, ptr %215, align 8, !tbaa !9
  %217 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %216)
          to label %218 unwind label %.loopexit.split-lp565.loopexit

218:                                              ; preds = %.lr.ph381.1
  store i64 %217, ptr %24, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %219 = add nuw i64 %.0312380.1, 1
  %exitcond562.1.not = icmp eq i64 %219, %.0281
  br i1 %exitcond562.1.not, label %.lr.ph381.2, label %.lr.ph381.1, !llvm.loop !16

.lr.ph381.2:                                      ; preds = %218, %223
  %.0312380.2 = phi i64 [ %224, %223 ], [ 0, %218 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0312380.2) #12
  %221 = load i64, ptr %220, align 8, !tbaa !9
  %222 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %221)
          to label %223 unwind label %.loopexit.split-lp565.loopexit.split-lp.loopexit

223:                                              ; preds = %.lr.ph381.2
  store i64 %222, ptr %24, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %224 = add nuw i64 %.0312380.2, 1
  %exitcond562.2.not = icmp eq i64 %224, %.0281
  br i1 %exitcond562.2.not, label %.lr.ph381.3, label %.lr.ph381.2, !llvm.loop !16

.lr.ph381.3:                                      ; preds = %223, %228
  %.0312380.3 = phi i64 [ %229, %228 ], [ 0, %223 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0312380.3) #12
  %226 = load i64, ptr %225, align 8, !tbaa !9
  %227 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %226)
          to label %228 unwind label %.loopexit.split-lp565.loopexit.split-lp.loopexit.split-lp.loopexit

228:                                              ; preds = %.lr.ph381.3
  store i64 %227, ptr %24, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %229 = add nuw i64 %.0312380.3, 1
  %exitcond562.3.not = icmp eq i64 %229, %.0281
  br i1 %exitcond562.3.not, label %.lr.ph381.4, label %.lr.ph381.3, !llvm.loop !16

.lr.ph381.4:                                      ; preds = %228, %233
  %.0312380.4 = phi i64 [ %234, %233 ], [ 0, %228 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0312380.4) #12
  %231 = load i64, ptr %230, align 8, !tbaa !9
  %232 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %231)
          to label %233 unwind label %.loopexit.split-lp565.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

233:                                              ; preds = %.lr.ph381.4
  store i64 %232, ptr %24, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %234 = add nuw i64 %.0312380.4, 1
  %exitcond562.4.not = icmp eq i64 %234, %.0281
  br i1 %exitcond562.4.not, label %._crit_edge382.4, label %.lr.ph381.4, !llvm.loop !16

._crit_edge382.4:                                 ; preds = %233, %._crit_edge382.3.thread
  %235 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %235, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #12
  %236 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %242 unwind label %253

.lr.ph381:                                        ; preds = %.lr.ph381.preheader, %240
  %.0312380 = phi i64 [ %241, %240 ], [ 0, %.lr.ph381.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %237 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0312380) #12
  %238 = load i64, ptr %237, align 8, !tbaa !9
  %239 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %238)
          to label %240 unwind label %.loopexit564

240:                                              ; preds = %.lr.ph381
  store i64 %239, ptr %24, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %24)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %241 = add nuw i64 %.0312380, 1
  %exitcond562.not = icmp eq i64 %241, %.0281
  br i1 %exitcond562.not, label %.lr.ph381.1, label %.lr.ph381, !llvm.loop !16

.loopexit564:                                     ; preds = %.lr.ph381
  %lpad.loopexit566 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp565

.loopexit.split-lp565.loopexit:                   ; preds = %.lr.ph381.1
  %lpad.loopexit568 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp565

.loopexit.split-lp565.loopexit.split-lp.loopexit: ; preds = %.lr.ph381.2
  %lpad.loopexit571 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp565

.loopexit.split-lp565.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph381.3
  %lpad.loopexit573 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp565

.loopexit.split-lp565.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph381.4
  %lpad.loopexit.split-lp574 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp565

.loopexit.split-lp565:                            ; preds = %.loopexit.split-lp565.loopexit, %.loopexit.split-lp565.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp565.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp565.loopexit.split-lp.loopexit, %.loopexit564
  %lpad.phi567 = phi { ptr, i32 } [ %lpad.loopexit566, %.loopexit564 ], [ %lpad.loopexit568, %.loopexit.split-lp565.loopexit ], [ %lpad.loopexit571, %.loopexit.split-lp565.loopexit.split-lp.loopexit ], [ %lpad.loopexit573, %.loopexit.split-lp565.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp574, %.loopexit.split-lp565.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  br label %1183

242:                                              ; preds = %._crit_edge382.4
  store i64 %236, ptr %25, align 8
  %243 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  %244 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 2) #12
  store i64 %243, ptr %244, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  %245 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #12
  %246 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %247 unwind label %255

247:                                              ; preds = %242
  store i64 %246, ptr %26, align 8
  %248 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
  %249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %245, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.7, i64 noundef %248, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #12
  br i1 %.not, label %._crit_edge390.3.thread, label %.lr.ph386

._crit_edge390.3.thread:                          ; preds = %247
  %250 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %250, ptr %14, align 8, !tbaa !9
  br label %._crit_edge390.4

251:                                              ; preds = %260
  %252 = add nuw i64 %.0315384, 1
  %exitcond576.not = icmp eq i64 %252, %.0281
  br i1 %exitcond576.not, label %.lr.ph389.preheader, label %.lr.ph386, !llvm.loop !17

253:                                              ; preds = %._crit_edge382.4
  %254 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  br label %1183

255:                                              ; preds = %242
  %256 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #12
  br label %1183

.lr.ph386:                                        ; preds = %247, %251
  %.0315384 = phi i64 [ %252, %251 ], [ 0, %247 ]
  %257 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0315384) #12
  %258 = load i64, ptr %257, align 8, !tbaa !9
  %259 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %258)
          to label %260 unwind label %266

260:                                              ; preds = %.lr.ph386
  %261 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %259)
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0315384) #12
  %263 = load i64, ptr %262, align 8, !tbaa !9
  %264 = icmp eq i64 %261, %263
  br i1 %264, label %251, label %265

265:                                              ; preds = %260
  call void @__assert_fail(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

266:                                              ; preds = %.lr.ph386
  %267 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph389.preheader:                              ; preds = %251
  %268 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %268, ptr %14, align 8, !tbaa !9
  br label %.lr.ph389

.lr.ph389.1:                                      ; preds = %294, %272
  %.0320388.1 = phi i64 [ %273, %272 ], [ 0, %294 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %269 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0320388.1) #12
  %270 = load i64, ptr %269, align 8, !tbaa !9
  %271 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %270)
          to label %272 unwind label %.loopexit.split-lp580.loopexit

272:                                              ; preds = %.lr.ph389.1
  store i64 %271, ptr %27, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %27)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  %273 = add nuw i64 %.0320388.1, 1
  %exitcond577.1.not = icmp eq i64 %273, %.0281
  br i1 %exitcond577.1.not, label %.lr.ph389.2, label %.lr.ph389.1, !llvm.loop !18

.lr.ph389.2:                                      ; preds = %272, %277
  %.0320388.2 = phi i64 [ %278, %277 ], [ 0, %272 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %274 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0320388.2) #12
  %275 = load i64, ptr %274, align 8, !tbaa !9
  %276 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %275)
          to label %277 unwind label %.loopexit.split-lp580.loopexit.split-lp.loopexit

277:                                              ; preds = %.lr.ph389.2
  store i64 %276, ptr %27, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %27)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  %278 = add nuw i64 %.0320388.2, 1
  %exitcond577.2.not = icmp eq i64 %278, %.0281
  br i1 %exitcond577.2.not, label %.lr.ph389.3, label %.lr.ph389.2, !llvm.loop !18

.lr.ph389.3:                                      ; preds = %277, %282
  %.0320388.3 = phi i64 [ %283, %282 ], [ 0, %277 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0320388.3) #12
  %280 = load i64, ptr %279, align 8, !tbaa !9
  %281 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %280)
          to label %282 unwind label %.loopexit.split-lp580.loopexit.split-lp.loopexit.split-lp.loopexit

282:                                              ; preds = %.lr.ph389.3
  store i64 %281, ptr %27, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %27)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  %283 = add nuw i64 %.0320388.3, 1
  %exitcond577.3.not = icmp eq i64 %283, %.0281
  br i1 %exitcond577.3.not, label %.lr.ph389.4, label %.lr.ph389.3, !llvm.loop !18

.lr.ph389.4:                                      ; preds = %282, %287
  %.0320388.4 = phi i64 [ %288, %287 ], [ 0, %282 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0320388.4) #12
  %285 = load i64, ptr %284, align 8, !tbaa !9
  %286 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %285)
          to label %287 unwind label %.loopexit.split-lp580.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

287:                                              ; preds = %.lr.ph389.4
  store i64 %286, ptr %27, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %27)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  %288 = add nuw i64 %.0320388.4, 1
  %exitcond577.4.not = icmp eq i64 %288, %.0281
  br i1 %exitcond577.4.not, label %._crit_edge390.4, label %.lr.ph389.4, !llvm.loop !18

._crit_edge390.4:                                 ; preds = %287, %._crit_edge390.3.thread
  %289 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %289, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #12
  %290 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %296 unwind label %307

.lr.ph389:                                        ; preds = %.lr.ph389.preheader, %294
  %.0320388 = phi i64 [ %295, %294 ], [ 0, %.lr.ph389.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %291 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0320388) #12
  %292 = load i64, ptr %291, align 8, !tbaa !9
  %293 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %292)
          to label %294 unwind label %.loopexit579

294:                                              ; preds = %.lr.ph389
  store i64 %293, ptr %27, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %27)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  %295 = add nuw i64 %.0320388, 1
  %exitcond577.not = icmp eq i64 %295, %.0281
  br i1 %exitcond577.not, label %.lr.ph389.1, label %.lr.ph389, !llvm.loop !18

.loopexit579:                                     ; preds = %.lr.ph389
  %lpad.loopexit581 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp580

.loopexit.split-lp580.loopexit:                   ; preds = %.lr.ph389.1
  %lpad.loopexit583 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp580

.loopexit.split-lp580.loopexit.split-lp.loopexit: ; preds = %.lr.ph389.2
  %lpad.loopexit586 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp580

.loopexit.split-lp580.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph389.3
  %lpad.loopexit588 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp580

.loopexit.split-lp580.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph389.4
  %lpad.loopexit.split-lp589 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp580

.loopexit.split-lp580:                            ; preds = %.loopexit.split-lp580.loopexit, %.loopexit.split-lp580.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp580.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp580.loopexit.split-lp.loopexit, %.loopexit579
  %lpad.phi582 = phi { ptr, i32 } [ %lpad.loopexit581, %.loopexit579 ], [ %lpad.loopexit583, %.loopexit.split-lp580.loopexit ], [ %lpad.loopexit586, %.loopexit.split-lp580.loopexit.split-lp.loopexit ], [ %lpad.loopexit588, %.loopexit.split-lp580.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp589, %.loopexit.split-lp580.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  br label %1183

296:                                              ; preds = %._crit_edge390.4
  store i64 %290, ptr %28, align 8
  %297 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
  %298 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 3) #12
  store i64 %297, ptr %298, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  %299 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  %300 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %301 unwind label %309

301:                                              ; preds = %296
  store i64 %300, ptr %29, align 8
  %302 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %29)
  %303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %299, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.9, i64 noundef %302, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  br i1 %.not, label %._crit_edge398.3.thread, label %.lr.ph394

._crit_edge398.3.thread:                          ; preds = %301
  %304 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %304, ptr %14, align 8, !tbaa !9
  br label %._crit_edge398.4

305:                                              ; preds = %316
  %306 = add nuw i64 %.0322392, 1
  %exitcond591.not = icmp eq i64 %306, %.0281
  br i1 %exitcond591.not, label %.lr.ph397.preheader, label %.lr.ph394, !llvm.loop !19

307:                                              ; preds = %._crit_edge390.4
  %308 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  br label %1183

309:                                              ; preds = %296
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  br label %1183

.lr.ph394:                                        ; preds = %301, %305
  %.0322392 = phi i64 [ %306, %305 ], [ 0, %301 ]
  %311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0322392) #12
  %312 = load i64, ptr %311, align 8, !tbaa !9
  %313 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %312)
          to label %314 unwind label %321

314:                                              ; preds = %.lr.ph394
  %315 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %313)
          to label %316 unwind label %321

316:                                              ; preds = %314
  %317 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0322392) #12
  %318 = load i64, ptr %317, align 8, !tbaa !9
  %319 = icmp eq i64 %315, %318
  br i1 %319, label %305, label %320

320:                                              ; preds = %316
  call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

321:                                              ; preds = %314, %.lr.ph394
  %322 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph397.preheader:                              ; preds = %305
  %323 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %323, ptr %14, align 8, !tbaa !9
  br label %.lr.ph397

.lr.ph397.1:                                      ; preds = %349, %327
  %.0328396.1 = phi i64 [ %328, %327 ], [ 0, %349 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %324 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0328396.1) #12
  %325 = load i64, ptr %324, align 8, !tbaa !9
  %326 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %325)
          to label %327 unwind label %.loopexit.split-lp595.loopexit

327:                                              ; preds = %.lr.ph397.1
  store i64 %326, ptr %30, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %30)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  %328 = add nuw i64 %.0328396.1, 1
  %exitcond592.1.not = icmp eq i64 %328, %.0281
  br i1 %exitcond592.1.not, label %.lr.ph397.2, label %.lr.ph397.1, !llvm.loop !20

.lr.ph397.2:                                      ; preds = %327, %332
  %.0328396.2 = phi i64 [ %333, %332 ], [ 0, %327 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %329 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0328396.2) #12
  %330 = load i64, ptr %329, align 8, !tbaa !9
  %331 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %330)
          to label %332 unwind label %.loopexit.split-lp595.loopexit.split-lp.loopexit

332:                                              ; preds = %.lr.ph397.2
  store i64 %331, ptr %30, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %30)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  %333 = add nuw i64 %.0328396.2, 1
  %exitcond592.2.not = icmp eq i64 %333, %.0281
  br i1 %exitcond592.2.not, label %.lr.ph397.3, label %.lr.ph397.2, !llvm.loop !20

.lr.ph397.3:                                      ; preds = %332, %337
  %.0328396.3 = phi i64 [ %338, %337 ], [ 0, %332 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %334 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0328396.3) #12
  %335 = load i64, ptr %334, align 8, !tbaa !9
  %336 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %335)
          to label %337 unwind label %.loopexit.split-lp595.loopexit.split-lp.loopexit.split-lp.loopexit

337:                                              ; preds = %.lr.ph397.3
  store i64 %336, ptr %30, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %30)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  %338 = add nuw i64 %.0328396.3, 1
  %exitcond592.3.not = icmp eq i64 %338, %.0281
  br i1 %exitcond592.3.not, label %.lr.ph397.4, label %.lr.ph397.3, !llvm.loop !20

.lr.ph397.4:                                      ; preds = %337, %342
  %.0328396.4 = phi i64 [ %343, %342 ], [ 0, %337 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %339 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0328396.4) #12
  %340 = load i64, ptr %339, align 8, !tbaa !9
  %341 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %340)
          to label %342 unwind label %.loopexit.split-lp595.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

342:                                              ; preds = %.lr.ph397.4
  store i64 %341, ptr %30, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %30)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  %343 = add nuw i64 %.0328396.4, 1
  %exitcond592.4.not = icmp eq i64 %343, %.0281
  br i1 %exitcond592.4.not, label %._crit_edge398.4, label %.lr.ph397.4, !llvm.loop !20

._crit_edge398.4:                                 ; preds = %342, %._crit_edge398.3.thread
  %344 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %344, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #12
  %345 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %351 unwind label %359

.lr.ph397:                                        ; preds = %.lr.ph397.preheader, %349
  %.0328396 = phi i64 [ %350, %349 ], [ 0, %.lr.ph397.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %346 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0328396) #12
  %347 = load i64, ptr %346, align 8, !tbaa !9
  %348 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %347)
          to label %349 unwind label %.loopexit594

349:                                              ; preds = %.lr.ph397
  store i64 %348, ptr %30, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %30)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  %350 = add nuw i64 %.0328396, 1
  %exitcond592.not = icmp eq i64 %350, %.0281
  br i1 %exitcond592.not, label %.lr.ph397.1, label %.lr.ph397, !llvm.loop !20

.loopexit594:                                     ; preds = %.lr.ph397
  %lpad.loopexit596 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp595

.loopexit.split-lp595.loopexit:                   ; preds = %.lr.ph397.1
  %lpad.loopexit598 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp595

.loopexit.split-lp595.loopexit.split-lp.loopexit: ; preds = %.lr.ph397.2
  %lpad.loopexit601 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp595

.loopexit.split-lp595.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph397.3
  %lpad.loopexit603 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp595

.loopexit.split-lp595.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph397.4
  %lpad.loopexit.split-lp604 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp595

.loopexit.split-lp595:                            ; preds = %.loopexit.split-lp595.loopexit, %.loopexit.split-lp595.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp595.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp595.loopexit.split-lp.loopexit, %.loopexit594
  %lpad.phi597 = phi { ptr, i32 } [ %lpad.loopexit596, %.loopexit594 ], [ %lpad.loopexit598, %.loopexit.split-lp595.loopexit ], [ %lpad.loopexit601, %.loopexit.split-lp595.loopexit.split-lp.loopexit ], [ %lpad.loopexit603, %.loopexit.split-lp595.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp604, %.loopexit.split-lp595.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  br label %1183

351:                                              ; preds = %._crit_edge398.4
  store i64 %345, ptr %31, align 8
  %352 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %31)
  %353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 4) #12
  store i64 %352, ptr %353, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #12
  %354 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #12
  %355 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %.preheader360 unwind label %361

.preheader360:                                    ; preds = %351
  store i64 %355, ptr %32, align 8
  %356 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %32)
  %357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %354, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.11, i64 noundef %356, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #12
  %358 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %358, ptr %14, align 8, !tbaa !9
  br i1 %.not, label %._crit_edge402.4, label %.lr.ph401

359:                                              ; preds = %._crit_edge398.4
  %360 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #12
  br label %1183

361:                                              ; preds = %351
  %362 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #12
  br label %1183

.lr.ph401.1:                                      ; preds = %388, %366
  %.0336400.1 = phi i64 [ %367, %366 ], [ 0, %388 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #12
  %363 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0336400.1) #12
  %364 = load i64, ptr %363, align 8, !tbaa !9
  %365 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %364)
          to label %366 unwind label %.loopexit.split-lp609.loopexit

366:                                              ; preds = %.lr.ph401.1
  store i64 %365, ptr %33, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  %367 = add nuw i64 %.0336400.1, 1
  %exitcond606.1.not = icmp eq i64 %367, %.0281
  br i1 %exitcond606.1.not, label %.lr.ph401.2, label %.lr.ph401.1, !llvm.loop !21

.lr.ph401.2:                                      ; preds = %366, %371
  %.0336400.2 = phi i64 [ %372, %371 ], [ 0, %366 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #12
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0336400.2) #12
  %369 = load i64, ptr %368, align 8, !tbaa !9
  %370 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %369)
          to label %371 unwind label %.loopexit.split-lp609.loopexit.split-lp.loopexit

371:                                              ; preds = %.lr.ph401.2
  store i64 %370, ptr %33, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  %372 = add nuw i64 %.0336400.2, 1
  %exitcond606.2.not = icmp eq i64 %372, %.0281
  br i1 %exitcond606.2.not, label %.lr.ph401.3, label %.lr.ph401.2, !llvm.loop !21

.lr.ph401.3:                                      ; preds = %371, %376
  %.0336400.3 = phi i64 [ %377, %376 ], [ 0, %371 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #12
  %373 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0336400.3) #12
  %374 = load i64, ptr %373, align 8, !tbaa !9
  %375 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %374)
          to label %376 unwind label %.loopexit.split-lp609.loopexit.split-lp.loopexit.split-lp.loopexit

376:                                              ; preds = %.lr.ph401.3
  store i64 %375, ptr %33, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  %377 = add nuw i64 %.0336400.3, 1
  %exitcond606.3.not = icmp eq i64 %377, %.0281
  br i1 %exitcond606.3.not, label %.lr.ph401.4, label %.lr.ph401.3, !llvm.loop !21

.lr.ph401.4:                                      ; preds = %376, %381
  %.0336400.4 = phi i64 [ %382, %381 ], [ 0, %376 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #12
  %378 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0336400.4) #12
  %379 = load i64, ptr %378, align 8, !tbaa !9
  %380 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %379)
          to label %381 unwind label %.loopexit.split-lp609.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

381:                                              ; preds = %.lr.ph401.4
  store i64 %380, ptr %33, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  %382 = add nuw i64 %.0336400.4, 1
  %exitcond606.4.not = icmp eq i64 %382, %.0281
  br i1 %exitcond606.4.not, label %._crit_edge402.4, label %.lr.ph401.4, !llvm.loop !21

._crit_edge402.4:                                 ; preds = %381, %.preheader360
  %383 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %383, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #12
  %384 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %390 unwind label %401

.lr.ph401:                                        ; preds = %.preheader360, %388
  %.0336400 = phi i64 [ %389, %388 ], [ 0, %.preheader360 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #12
  %385 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0336400) #12
  %386 = load i64, ptr %385, align 8, !tbaa !9
  %387 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %386)
          to label %388 unwind label %.loopexit608

388:                                              ; preds = %.lr.ph401
  store i64 %387, ptr %33, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %33)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  %389 = add nuw i64 %.0336400, 1
  %exitcond606.not = icmp eq i64 %389, %.0281
  br i1 %exitcond606.not, label %.lr.ph401.1, label %.lr.ph401, !llvm.loop !21

.loopexit608:                                     ; preds = %.lr.ph401
  %lpad.loopexit610 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp609

.loopexit.split-lp609.loopexit:                   ; preds = %.lr.ph401.1
  %lpad.loopexit612 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp609

.loopexit.split-lp609.loopexit.split-lp.loopexit: ; preds = %.lr.ph401.2
  %lpad.loopexit615 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp609

.loopexit.split-lp609.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph401.3
  %lpad.loopexit617 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp609

.loopexit.split-lp609.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph401.4
  %lpad.loopexit.split-lp618 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp609

.loopexit.split-lp609:                            ; preds = %.loopexit.split-lp609.loopexit, %.loopexit.split-lp609.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp609.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp609.loopexit.split-lp.loopexit, %.loopexit608
  %lpad.phi611 = phi { ptr, i32 } [ %lpad.loopexit610, %.loopexit608 ], [ %lpad.loopexit612, %.loopexit.split-lp609.loopexit ], [ %lpad.loopexit615, %.loopexit.split-lp609.loopexit.split-lp.loopexit ], [ %lpad.loopexit617, %.loopexit.split-lp609.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp618, %.loopexit.split-lp609.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #12
  br label %1183

390:                                              ; preds = %._crit_edge402.4
  store i64 %384, ptr %34, align 8
  %391 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %34)
  %392 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 5) #12
  store i64 %391, ptr %392, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  %393 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #12
  %394 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %395 unwind label %403

395:                                              ; preds = %390
  store i64 %394, ptr %35, align 8
  %396 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %35)
  %397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %393, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.12, i64 noundef %396, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  br i1 %.not, label %._crit_edge410.3.thread, label %.lr.ph406

._crit_edge410.3.thread:                          ; preds = %395
  %398 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %398, ptr %14, align 8, !tbaa !9
  br label %._crit_edge410.4

399:                                              ; preds = %409
  %400 = add nuw i64 %.0338404, 1
  %exitcond620.not = icmp eq i64 %400, %.0281
  br i1 %exitcond620.not, label %.lr.ph409.preheader, label %.lr.ph406, !llvm.loop !22

401:                                              ; preds = %._crit_edge402.4
  %402 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #12
  br label %1183

403:                                              ; preds = %390
  %404 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #12
  br label %1183

.lr.ph406:                                        ; preds = %395, %399
  %.0338404 = phi i64 [ %400, %399 ], [ 0, %395 ]
  %405 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0338404) #12
  %406 = load i64, ptr %405, align 8, !tbaa !9
  %407 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %406)
  %408 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %407)
          to label %409 unwind label %414

409:                                              ; preds = %.lr.ph406
  %410 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0338404) #12
  %411 = load i64, ptr %410, align 8, !tbaa !9
  %412 = icmp eq i64 %408, %411
  br i1 %412, label %399, label %413

413:                                              ; preds = %409
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

414:                                              ; preds = %.lr.ph406
  %415 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph409.preheader:                              ; preds = %399
  %416 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %416, ptr %14, align 8, !tbaa !9
  br label %.lr.ph409

.lr.ph409.1:                                      ; preds = %.lr.ph409, %.lr.ph409.1
  %.0343408.1 = phi i64 [ %420, %.lr.ph409.1 ], [ 0, %.lr.ph409 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0343408.1) #12
  %418 = load i64, ptr %417, align 8, !tbaa !9
  %419 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %418)
  store i64 %419, ptr %36, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %36)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  %420 = add nuw i64 %.0343408.1, 1
  %exitcond621.1.not = icmp eq i64 %420, %.0281
  br i1 %exitcond621.1.not, label %.lr.ph409.2, label %.lr.ph409.1, !llvm.loop !23

.lr.ph409.2:                                      ; preds = %.lr.ph409.1, %.lr.ph409.2
  %.0343408.2 = phi i64 [ %424, %.lr.ph409.2 ], [ 0, %.lr.ph409.1 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  %421 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0343408.2) #12
  %422 = load i64, ptr %421, align 8, !tbaa !9
  %423 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %422)
  store i64 %423, ptr %36, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %36)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  %424 = add nuw i64 %.0343408.2, 1
  %exitcond621.2.not = icmp eq i64 %424, %.0281
  br i1 %exitcond621.2.not, label %.lr.ph409.3, label %.lr.ph409.2, !llvm.loop !23

.lr.ph409.3:                                      ; preds = %.lr.ph409.2, %.lr.ph409.3
  %.0343408.3 = phi i64 [ %428, %.lr.ph409.3 ], [ 0, %.lr.ph409.2 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  %425 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0343408.3) #12
  %426 = load i64, ptr %425, align 8, !tbaa !9
  %427 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %426)
  store i64 %427, ptr %36, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %36)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  %428 = add nuw i64 %.0343408.3, 1
  %exitcond621.3.not = icmp eq i64 %428, %.0281
  br i1 %exitcond621.3.not, label %.lr.ph409.4, label %.lr.ph409.3, !llvm.loop !23

.lr.ph409.4:                                      ; preds = %.lr.ph409.3, %.lr.ph409.4
  %.0343408.4 = phi i64 [ %432, %.lr.ph409.4 ], [ 0, %.lr.ph409.3 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  %429 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0343408.4) #12
  %430 = load i64, ptr %429, align 8, !tbaa !9
  %431 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %430)
  store i64 %431, ptr %36, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %36)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  %432 = add nuw i64 %.0343408.4, 1
  %exitcond621.4.not = icmp eq i64 %432, %.0281
  br i1 %exitcond621.4.not, label %._crit_edge410.4, label %.lr.ph409.4, !llvm.loop !23

._crit_edge410.4:                                 ; preds = %.lr.ph409.4, %._crit_edge410.3.thread
  %433 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %433, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #12
  %434 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %439 unwind label %450

.lr.ph409:                                        ; preds = %.lr.ph409.preheader, %.lr.ph409
  %.0343408 = phi i64 [ %438, %.lr.ph409 ], [ 0, %.lr.ph409.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #12
  %435 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0343408) #12
  %436 = load i64, ptr %435, align 8, !tbaa !9
  %437 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %436)
  store i64 %437, ptr %36, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %36)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #12
  %438 = add nuw i64 %.0343408, 1
  %exitcond621.not = icmp eq i64 %438, %.0281
  br i1 %exitcond621.not, label %.lr.ph409.1, label %.lr.ph409, !llvm.loop !23

439:                                              ; preds = %._crit_edge410.4
  store i64 %434, ptr %37, align 8
  %440 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
  %441 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 7) #12
  store i64 %440, ptr %441, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #12
  %442 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #12
  %443 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %444 unwind label %452

444:                                              ; preds = %439
  store i64 %443, ptr %38, align 8
  %445 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %38)
  %446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %442, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.14, i64 noundef %445, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #12
  br i1 %.not, label %._crit_edge418.3.thread, label %.lr.ph414

._crit_edge418.3.thread:                          ; preds = %444
  %447 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %447, ptr %14, align 8, !tbaa !9
  br label %._crit_edge418.4

448:                                              ; preds = %459
  %449 = add nuw i64 %.0342412, 1
  %exitcond623.not = icmp eq i64 %449, %.0281
  br i1 %exitcond623.not, label %.lr.ph417.preheader, label %.lr.ph414, !llvm.loop !24

450:                                              ; preds = %._crit_edge410.4
  %451 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #12
  br label %1183

452:                                              ; preds = %439
  %453 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #12
  br label %1183

.lr.ph414:                                        ; preds = %444, %448
  %.0342412 = phi i64 [ %449, %448 ], [ 0, %444 ]
  %454 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0342412) #12
  %455 = load i64, ptr %454, align 8, !tbaa !9
  %456 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %455)
          to label %457 unwind label %464

457:                                              ; preds = %.lr.ph414
  %458 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %456)
          to label %459 unwind label %464

459:                                              ; preds = %457
  %460 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0342412) #12
  %461 = load i64, ptr %460, align 8, !tbaa !9
  %462 = icmp eq i64 %458, %461
  br i1 %462, label %448, label %463

463:                                              ; preds = %459
  call void @__assert_fail(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

464:                                              ; preds = %457, %.lr.ph414
  %465 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph417.preheader:                              ; preds = %448
  %466 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %466, ptr %14, align 8, !tbaa !9
  br label %.lr.ph417

.lr.ph417.1:                                      ; preds = %492, %470
  %.0339416.1 = phi i64 [ %471, %470 ], [ 0, %492 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  %467 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0339416.1) #12
  %468 = load i64, ptr %467, align 8, !tbaa !9
  %469 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %468)
          to label %470 unwind label %.loopexit.split-lp627.loopexit

470:                                              ; preds = %.lr.ph417.1
  store i64 %469, ptr %39, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  %471 = add nuw i64 %.0339416.1, 1
  %exitcond624.1.not = icmp eq i64 %471, %.0281
  br i1 %exitcond624.1.not, label %.lr.ph417.2, label %.lr.ph417.1, !llvm.loop !25

.lr.ph417.2:                                      ; preds = %470, %475
  %.0339416.2 = phi i64 [ %476, %475 ], [ 0, %470 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  %472 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0339416.2) #12
  %473 = load i64, ptr %472, align 8, !tbaa !9
  %474 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %473)
          to label %475 unwind label %.loopexit.split-lp627.loopexit.split-lp.loopexit

475:                                              ; preds = %.lr.ph417.2
  store i64 %474, ptr %39, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  %476 = add nuw i64 %.0339416.2, 1
  %exitcond624.2.not = icmp eq i64 %476, %.0281
  br i1 %exitcond624.2.not, label %.lr.ph417.3, label %.lr.ph417.2, !llvm.loop !25

.lr.ph417.3:                                      ; preds = %475, %480
  %.0339416.3 = phi i64 [ %481, %480 ], [ 0, %475 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0339416.3) #12
  %478 = load i64, ptr %477, align 8, !tbaa !9
  %479 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %478)
          to label %480 unwind label %.loopexit.split-lp627.loopexit.split-lp.loopexit.split-lp.loopexit

480:                                              ; preds = %.lr.ph417.3
  store i64 %479, ptr %39, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  %481 = add nuw i64 %.0339416.3, 1
  %exitcond624.3.not = icmp eq i64 %481, %.0281
  br i1 %exitcond624.3.not, label %.lr.ph417.4, label %.lr.ph417.3, !llvm.loop !25

.lr.ph417.4:                                      ; preds = %480, %485
  %.0339416.4 = phi i64 [ %486, %485 ], [ 0, %480 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  %482 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0339416.4) #12
  %483 = load i64, ptr %482, align 8, !tbaa !9
  %484 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %483)
          to label %485 unwind label %.loopexit.split-lp627.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

485:                                              ; preds = %.lr.ph417.4
  store i64 %484, ptr %39, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  %486 = add nuw i64 %.0339416.4, 1
  %exitcond624.4.not = icmp eq i64 %486, %.0281
  br i1 %exitcond624.4.not, label %._crit_edge418.4, label %.lr.ph417.4, !llvm.loop !25

._crit_edge418.4:                                 ; preds = %485, %._crit_edge418.3.thread
  %487 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %487, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #12
  %488 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %494 unwind label %505

.lr.ph417:                                        ; preds = %.lr.ph417.preheader, %492
  %.0339416 = phi i64 [ %493, %492 ], [ 0, %.lr.ph417.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #12
  %489 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0339416) #12
  %490 = load i64, ptr %489, align 8, !tbaa !9
  %491 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %490)
          to label %492 unwind label %.loopexit626

492:                                              ; preds = %.lr.ph417
  store i64 %491, ptr %39, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  %493 = add nuw i64 %.0339416, 1
  %exitcond624.not = icmp eq i64 %493, %.0281
  br i1 %exitcond624.not, label %.lr.ph417.1, label %.lr.ph417, !llvm.loop !25

.loopexit626:                                     ; preds = %.lr.ph417
  %lpad.loopexit628 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp627

.loopexit.split-lp627.loopexit:                   ; preds = %.lr.ph417.1
  %lpad.loopexit630 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp627

.loopexit.split-lp627.loopexit.split-lp.loopexit: ; preds = %.lr.ph417.2
  %lpad.loopexit633 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp627

.loopexit.split-lp627.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph417.3
  %lpad.loopexit635 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp627

.loopexit.split-lp627.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph417.4
  %lpad.loopexit.split-lp636 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp627

.loopexit.split-lp627:                            ; preds = %.loopexit.split-lp627.loopexit, %.loopexit.split-lp627.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp627.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp627.loopexit.split-lp.loopexit, %.loopexit626
  %lpad.phi629 = phi { ptr, i32 } [ %lpad.loopexit628, %.loopexit626 ], [ %lpad.loopexit630, %.loopexit.split-lp627.loopexit ], [ %lpad.loopexit633, %.loopexit.split-lp627.loopexit.split-lp.loopexit ], [ %lpad.loopexit635, %.loopexit.split-lp627.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp636, %.loopexit.split-lp627.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #12
  br label %1183

494:                                              ; preds = %._crit_edge418.4
  store i64 %488, ptr %40, align 8
  %495 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %40)
  %496 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 8) #12
  store i64 %495, ptr %496, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  %497 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #12
  %498 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %499 unwind label %507

499:                                              ; preds = %494
  store i64 %498, ptr %41, align 8
  %500 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %41)
  %501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.16, i64 noundef %500, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #12
  br i1 %.not, label %._crit_edge426.3.thread, label %.lr.ph422

._crit_edge426.3.thread:                          ; preds = %499
  %502 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %502, ptr %14, align 8, !tbaa !9
  br label %._crit_edge426.4

503:                                              ; preds = %512
  %504 = add nuw i64 %.0337420, 1
  %exitcond638.not = icmp eq i64 %504, %.0281
  br i1 %exitcond638.not, label %.lr.ph425.preheader, label %.lr.ph422, !llvm.loop !26

505:                                              ; preds = %._crit_edge418.4
  %506 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  br label %1183

507:                                              ; preds = %494
  %508 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #12
  br label %1183

.lr.ph422:                                        ; preds = %499, %503
  %.0337420 = phi i64 [ %504, %503 ], [ 0, %499 ]
  %509 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0337420) #12
  %510 = load i64, ptr %509, align 8, !tbaa !9
  %511 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %510)
          to label %512 unwind label %518

512:                                              ; preds = %.lr.ph422
  %513 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %511)
  %514 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0337420) #12
  %515 = load i64, ptr %514, align 8, !tbaa !9
  %516 = icmp eq i64 %513, %515
  br i1 %516, label %503, label %517

517:                                              ; preds = %512
  call void @__assert_fail(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

518:                                              ; preds = %.lr.ph422
  %519 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph425.preheader:                              ; preds = %503
  %520 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %520, ptr %14, align 8, !tbaa !9
  br label %.lr.ph425

.lr.ph425.1:                                      ; preds = %546, %524
  %.0334424.1 = phi i64 [ %525, %524 ], [ 0, %546 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #12
  %521 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0334424.1) #12
  %522 = load i64, ptr %521, align 8, !tbaa !9
  %523 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %522)
          to label %524 unwind label %.loopexit.split-lp642.loopexit

524:                                              ; preds = %.lr.ph425.1
  store i64 %523, ptr %42, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %42)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #12
  %525 = add nuw i64 %.0334424.1, 1
  %exitcond639.1.not = icmp eq i64 %525, %.0281
  br i1 %exitcond639.1.not, label %.lr.ph425.2, label %.lr.ph425.1, !llvm.loop !27

.lr.ph425.2:                                      ; preds = %524, %529
  %.0334424.2 = phi i64 [ %530, %529 ], [ 0, %524 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #12
  %526 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0334424.2) #12
  %527 = load i64, ptr %526, align 8, !tbaa !9
  %528 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %527)
          to label %529 unwind label %.loopexit.split-lp642.loopexit.split-lp.loopexit

529:                                              ; preds = %.lr.ph425.2
  store i64 %528, ptr %42, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %42)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #12
  %530 = add nuw i64 %.0334424.2, 1
  %exitcond639.2.not = icmp eq i64 %530, %.0281
  br i1 %exitcond639.2.not, label %.lr.ph425.3, label %.lr.ph425.2, !llvm.loop !27

.lr.ph425.3:                                      ; preds = %529, %534
  %.0334424.3 = phi i64 [ %535, %534 ], [ 0, %529 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #12
  %531 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0334424.3) #12
  %532 = load i64, ptr %531, align 8, !tbaa !9
  %533 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %532)
          to label %534 unwind label %.loopexit.split-lp642.loopexit.split-lp.loopexit.split-lp.loopexit

534:                                              ; preds = %.lr.ph425.3
  store i64 %533, ptr %42, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %42)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #12
  %535 = add nuw i64 %.0334424.3, 1
  %exitcond639.3.not = icmp eq i64 %535, %.0281
  br i1 %exitcond639.3.not, label %.lr.ph425.4, label %.lr.ph425.3, !llvm.loop !27

.lr.ph425.4:                                      ; preds = %534, %539
  %.0334424.4 = phi i64 [ %540, %539 ], [ 0, %534 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #12
  %536 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0334424.4) #12
  %537 = load i64, ptr %536, align 8, !tbaa !9
  %538 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %537)
          to label %539 unwind label %.loopexit.split-lp642.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

539:                                              ; preds = %.lr.ph425.4
  store i64 %538, ptr %42, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %42)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #12
  %540 = add nuw i64 %.0334424.4, 1
  %exitcond639.4.not = icmp eq i64 %540, %.0281
  br i1 %exitcond639.4.not, label %._crit_edge426.4, label %.lr.ph425.4, !llvm.loop !27

._crit_edge426.4:                                 ; preds = %539, %._crit_edge426.3.thread
  %541 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %541, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #12
  %542 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %548 unwind label %559

.lr.ph425:                                        ; preds = %.lr.ph425.preheader, %546
  %.0334424 = phi i64 [ %547, %546 ], [ 0, %.lr.ph425.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #12
  %543 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0334424) #12
  %544 = load i64, ptr %543, align 8, !tbaa !9
  %545 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %544)
          to label %546 unwind label %.loopexit641

546:                                              ; preds = %.lr.ph425
  store i64 %545, ptr %42, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %42)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #12
  %547 = add nuw i64 %.0334424, 1
  %exitcond639.not = icmp eq i64 %547, %.0281
  br i1 %exitcond639.not, label %.lr.ph425.1, label %.lr.ph425, !llvm.loop !27

.loopexit641:                                     ; preds = %.lr.ph425
  %lpad.loopexit643 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp642

.loopexit.split-lp642.loopexit:                   ; preds = %.lr.ph425.1
  %lpad.loopexit645 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp642

.loopexit.split-lp642.loopexit.split-lp.loopexit: ; preds = %.lr.ph425.2
  %lpad.loopexit648 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp642

.loopexit.split-lp642.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph425.3
  %lpad.loopexit650 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp642

.loopexit.split-lp642.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph425.4
  %lpad.loopexit.split-lp651 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp642

.loopexit.split-lp642:                            ; preds = %.loopexit.split-lp642.loopexit, %.loopexit.split-lp642.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp642.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp642.loopexit.split-lp.loopexit, %.loopexit641
  %lpad.phi644 = phi { ptr, i32 } [ %lpad.loopexit643, %.loopexit641 ], [ %lpad.loopexit645, %.loopexit.split-lp642.loopexit ], [ %lpad.loopexit648, %.loopexit.split-lp642.loopexit.split-lp.loopexit ], [ %lpad.loopexit650, %.loopexit.split-lp642.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp651, %.loopexit.split-lp642.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #12
  br label %1183

548:                                              ; preds = %._crit_edge426.4
  store i64 %542, ptr %43, align 8
  %549 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %43)
  %550 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 6) #12
  store i64 %549, ptr %550, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #12
  %551 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #12
  %552 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %553 unwind label %561

553:                                              ; preds = %548
  store i64 %552, ptr %44, align 8
  %554 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %44)
  %555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %551, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.18, i64 noundef %554, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  br i1 %.not, label %._crit_edge434.3.thread, label %.lr.ph430

._crit_edge434.3.thread:                          ; preds = %553
  %556 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %556, ptr %14, align 8, !tbaa !9
  br label %._crit_edge434.4

557:                                              ; preds = %568
  %558 = add nuw i64 %.0332428, 1
  %exitcond653.not = icmp eq i64 %558, %.0281
  br i1 %exitcond653.not, label %.lr.ph433.preheader, label %.lr.ph430, !llvm.loop !28

559:                                              ; preds = %._crit_edge426.4
  %560 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #12
  br label %1183

561:                                              ; preds = %548
  %562 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  br label %1183

.lr.ph430:                                        ; preds = %553, %557
  %.0332428 = phi i64 [ %558, %557 ], [ 0, %553 ]
  %563 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0332428) #12
  %564 = load i64, ptr %563, align 8, !tbaa !9
  %565 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %564)
          to label %566 unwind label %573

566:                                              ; preds = %.lr.ph430
  %567 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %565)
          to label %568 unwind label %573

568:                                              ; preds = %566
  %569 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0332428) #12
  %570 = load i64, ptr %569, align 8, !tbaa !9
  %571 = icmp eq i64 %567, %570
  br i1 %571, label %557, label %572

572:                                              ; preds = %568
  call void @__assert_fail(ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

573:                                              ; preds = %566, %.lr.ph430
  %574 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph433.preheader:                              ; preds = %557
  %575 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %575, ptr %14, align 8, !tbaa !9
  br label %.lr.ph433

.lr.ph433.1:                                      ; preds = %601, %579
  %.0329432.1 = phi i64 [ %580, %579 ], [ 0, %601 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #12
  %576 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0329432.1) #12
  %577 = load i64, ptr %576, align 8, !tbaa !9
  %578 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %577)
          to label %579 unwind label %.loopexit.split-lp657.loopexit

579:                                              ; preds = %.lr.ph433.1
  store i64 %578, ptr %45, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %45)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  %580 = add nuw i64 %.0329432.1, 1
  %exitcond654.1.not = icmp eq i64 %580, %.0281
  br i1 %exitcond654.1.not, label %.lr.ph433.2, label %.lr.ph433.1, !llvm.loop !29

.lr.ph433.2:                                      ; preds = %579, %584
  %.0329432.2 = phi i64 [ %585, %584 ], [ 0, %579 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #12
  %581 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0329432.2) #12
  %582 = load i64, ptr %581, align 8, !tbaa !9
  %583 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %582)
          to label %584 unwind label %.loopexit.split-lp657.loopexit.split-lp.loopexit

584:                                              ; preds = %.lr.ph433.2
  store i64 %583, ptr %45, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %45)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  %585 = add nuw i64 %.0329432.2, 1
  %exitcond654.2.not = icmp eq i64 %585, %.0281
  br i1 %exitcond654.2.not, label %.lr.ph433.3, label %.lr.ph433.2, !llvm.loop !29

.lr.ph433.3:                                      ; preds = %584, %589
  %.0329432.3 = phi i64 [ %590, %589 ], [ 0, %584 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #12
  %586 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0329432.3) #12
  %587 = load i64, ptr %586, align 8, !tbaa !9
  %588 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %587)
          to label %589 unwind label %.loopexit.split-lp657.loopexit.split-lp.loopexit.split-lp.loopexit

589:                                              ; preds = %.lr.ph433.3
  store i64 %588, ptr %45, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %45)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  %590 = add nuw i64 %.0329432.3, 1
  %exitcond654.3.not = icmp eq i64 %590, %.0281
  br i1 %exitcond654.3.not, label %.lr.ph433.4, label %.lr.ph433.3, !llvm.loop !29

.lr.ph433.4:                                      ; preds = %589, %594
  %.0329432.4 = phi i64 [ %595, %594 ], [ 0, %589 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #12
  %591 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0329432.4) #12
  %592 = load i64, ptr %591, align 8, !tbaa !9
  %593 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %592)
          to label %594 unwind label %.loopexit.split-lp657.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

594:                                              ; preds = %.lr.ph433.4
  store i64 %593, ptr %45, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %45)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  %595 = add nuw i64 %.0329432.4, 1
  %exitcond654.4.not = icmp eq i64 %595, %.0281
  br i1 %exitcond654.4.not, label %._crit_edge434.4, label %.lr.ph433.4, !llvm.loop !29

._crit_edge434.4:                                 ; preds = %594, %._crit_edge434.3.thread
  %596 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %596, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #12
  %597 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %603 unwind label %614

.lr.ph433:                                        ; preds = %.lr.ph433.preheader, %601
  %.0329432 = phi i64 [ %602, %601 ], [ 0, %.lr.ph433.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #12
  %598 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0329432) #12
  %599 = load i64, ptr %598, align 8, !tbaa !9
  %600 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %599)
          to label %601 unwind label %.loopexit656

601:                                              ; preds = %.lr.ph433
  store i64 %600, ptr %45, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %45)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  %602 = add nuw i64 %.0329432, 1
  %exitcond654.not = icmp eq i64 %602, %.0281
  br i1 %exitcond654.not, label %.lr.ph433.1, label %.lr.ph433, !llvm.loop !29

.loopexit656:                                     ; preds = %.lr.ph433
  %lpad.loopexit658 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp657

.loopexit.split-lp657.loopexit:                   ; preds = %.lr.ph433.1
  %lpad.loopexit660 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp657

.loopexit.split-lp657.loopexit.split-lp.loopexit: ; preds = %.lr.ph433.2
  %lpad.loopexit663 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp657

.loopexit.split-lp657.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph433.3
  %lpad.loopexit665 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp657

.loopexit.split-lp657.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph433.4
  %lpad.loopexit.split-lp666 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp657

.loopexit.split-lp657:                            ; preds = %.loopexit.split-lp657.loopexit, %.loopexit.split-lp657.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp657.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp657.loopexit.split-lp.loopexit, %.loopexit656
  %lpad.phi659 = phi { ptr, i32 } [ %lpad.loopexit658, %.loopexit656 ], [ %lpad.loopexit660, %.loopexit.split-lp657.loopexit ], [ %lpad.loopexit663, %.loopexit.split-lp657.loopexit.split-lp.loopexit ], [ %lpad.loopexit665, %.loopexit.split-lp657.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp666, %.loopexit.split-lp657.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  br label %1183

603:                                              ; preds = %._crit_edge434.4
  store i64 %597, ptr %46, align 8
  %604 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %46)
  %605 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 9) #12
  store i64 %604, ptr %605, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #12
  %606 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #12
  %607 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %608 unwind label %616

608:                                              ; preds = %603
  store i64 %607, ptr %47, align 8
  %609 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %47)
  %610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.20, i64 noundef %609, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  %611 = call noundef i64 @_ZNKSt5arrayImLm10EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80) %13) #15
  %612 = icmp ugt i64 %611, 1
  br i1 %612, label %.lr.ph438, label %.preheader355

.preheader355:                                    ; preds = %.lr.ph438, %608
  br i1 %.not, label %._crit_edge444.3.thread, label %.lr.ph440

._crit_edge444.3.thread:                          ; preds = %.preheader355
  %613 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %613, ptr %14, align 8, !tbaa !9
  br label %._crit_edge444.4

614:                                              ; preds = %._crit_edge434.4
  %615 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #12
  br label %1183

616:                                              ; preds = %603
  %617 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  br label %1183

.lr.ph438:                                        ; preds = %608, %.lr.ph438
  %.0327436 = phi i64 [ %627, %.lr.ph438 ], [ 1, %608 ]
  %618 = load ptr, ptr @stderr, align 8, !tbaa !5
  %619 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 0) #12
  %620 = load i64, ptr %619, align 8, !tbaa !9
  %621 = uitofp i64 %620 to double
  %622 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef %.0327436) #12
  %623 = load i64, ptr %622, align 8, !tbaa !9
  %624 = uitofp i64 %623 to double
  %625 = fdiv double %621, %624
  %626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %618, ptr noundef nonnull @.str.21, i64 noundef %.0327436, double noundef %625) #14
  %627 = add nuw i64 %.0327436, 1
  %exitcond668.not = icmp eq i64 %627, %611
  br i1 %exitcond668.not, label %.preheader355, label %.lr.ph438, !llvm.loop !30

628:                                              ; preds = %635
  %629 = add nuw i64 %.0326439, 1
  %exitcond669.not = icmp eq i64 %629, %.0281
  br i1 %exitcond669.not, label %.lr.ph443.preheader, label %.lr.ph440, !llvm.loop !31

.lr.ph440:                                        ; preds = %.preheader355, %628
  %.0326439 = phi i64 [ %629, %628 ], [ 0, %.preheader355 ]
  %630 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0326439) #12
  %631 = load i64, ptr %630, align 8, !tbaa !9
  %632 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %631)
          to label %633 unwind label %640

633:                                              ; preds = %.lr.ph440
  %634 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %632)
          to label %635 unwind label %640

635:                                              ; preds = %633
  %636 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0326439) #12
  %637 = load i64, ptr %636, align 8, !tbaa !9
  %638 = icmp eq i64 %634, %637
  br i1 %638, label %628, label %639

639:                                              ; preds = %635
  call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

640:                                              ; preds = %633, %.lr.ph440
  %641 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph443.preheader:                              ; preds = %628
  %642 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %642, ptr %14, align 8, !tbaa !9
  br label %.lr.ph443

.lr.ph443.1:                                      ; preds = %678, %648
  %.0323442.1 = phi i64 [ %649, %648 ], [ 0, %678 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  %643 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0323442.1) #12
  %644 = load i64, ptr %643, align 8, !tbaa !9
  %645 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %644)
          to label %646 unwind label %.loopexit.split-lp673.loopexit

646:                                              ; preds = %.lr.ph443.1
  %647 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %645)
          to label %648 unwind label %.loopexit.split-lp673.loopexit

648:                                              ; preds = %646
  store i64 %647, ptr %48, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  %649 = add nuw i64 %.0323442.1, 1
  %exitcond670.1.not = icmp eq i64 %649, %.0281
  br i1 %exitcond670.1.not, label %.lr.ph443.2, label %.lr.ph443.1, !llvm.loop !32

.lr.ph443.2:                                      ; preds = %648, %655
  %.0323442.2 = phi i64 [ %656, %655 ], [ 0, %648 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  %650 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0323442.2) #12
  %651 = load i64, ptr %650, align 8, !tbaa !9
  %652 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %651)
          to label %653 unwind label %.loopexit.split-lp673.loopexit.split-lp.loopexit

653:                                              ; preds = %.lr.ph443.2
  %654 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %652)
          to label %655 unwind label %.loopexit.split-lp673.loopexit.split-lp.loopexit

655:                                              ; preds = %653
  store i64 %654, ptr %48, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  %656 = add nuw i64 %.0323442.2, 1
  %exitcond670.2.not = icmp eq i64 %656, %.0281
  br i1 %exitcond670.2.not, label %.lr.ph443.3, label %.lr.ph443.2, !llvm.loop !32

.lr.ph443.3:                                      ; preds = %655, %662
  %.0323442.3 = phi i64 [ %663, %662 ], [ 0, %655 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  %657 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0323442.3) #12
  %658 = load i64, ptr %657, align 8, !tbaa !9
  %659 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %658)
          to label %660 unwind label %.loopexit.split-lp673.loopexit.split-lp.loopexit.split-lp.loopexit

660:                                              ; preds = %.lr.ph443.3
  %661 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %659)
          to label %662 unwind label %.loopexit.split-lp673.loopexit.split-lp.loopexit.split-lp.loopexit

662:                                              ; preds = %660
  store i64 %661, ptr %48, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  %663 = add nuw i64 %.0323442.3, 1
  %exitcond670.3.not = icmp eq i64 %663, %.0281
  br i1 %exitcond670.3.not, label %.lr.ph443.4, label %.lr.ph443.3, !llvm.loop !32

.lr.ph443.4:                                      ; preds = %662, %669
  %.0323442.4 = phi i64 [ %670, %669 ], [ 0, %662 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  %664 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0323442.4) #12
  %665 = load i64, ptr %664, align 8, !tbaa !9
  %666 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %665)
          to label %667 unwind label %.loopexit.split-lp673.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

667:                                              ; preds = %.lr.ph443.4
  %668 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %666)
          to label %669 unwind label %.loopexit.split-lp673.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

669:                                              ; preds = %667
  store i64 %668, ptr %48, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  %670 = add nuw i64 %.0323442.4, 1
  %exitcond670.4.not = icmp eq i64 %670, %.0281
  br i1 %exitcond670.4.not, label %._crit_edge444.4, label %.lr.ph443.4, !llvm.loop !32

._crit_edge444.4:                                 ; preds = %669, %._crit_edge444.3.thread
  %671 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %671, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #12
  %672 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %680 unwind label %691

.lr.ph443:                                        ; preds = %.lr.ph443.preheader, %678
  %.0323442 = phi i64 [ %679, %678 ], [ 0, %.lr.ph443.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  %673 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0323442) #12
  %674 = load i64, ptr %673, align 8, !tbaa !9
  %675 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %674)
          to label %676 unwind label %.loopexit672

676:                                              ; preds = %.lr.ph443
  %677 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72) %4, i64 noundef %675)
          to label %678 unwind label %.loopexit672

678:                                              ; preds = %676
  store i64 %677, ptr %48, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %48)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  %679 = add nuw i64 %.0323442, 1
  %exitcond670.not = icmp eq i64 %679, %.0281
  br i1 %exitcond670.not, label %.lr.ph443.1, label %.lr.ph443, !llvm.loop !32

.loopexit672:                                     ; preds = %.lr.ph443, %676
  %lpad.loopexit674 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp673

.loopexit.split-lp673.loopexit:                   ; preds = %646, %.lr.ph443.1
  %lpad.loopexit676 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp673

.loopexit.split-lp673.loopexit.split-lp.loopexit: ; preds = %.lr.ph443.2, %653
  %lpad.loopexit679 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp673

.loopexit.split-lp673.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %660, %.lr.ph443.3
  %lpad.loopexit681 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp673

.loopexit.split-lp673.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %667, %.lr.ph443.4
  %lpad.loopexit.split-lp682 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp673

.loopexit.split-lp673:                            ; preds = %.loopexit.split-lp673.loopexit, %.loopexit.split-lp673.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp673.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp673.loopexit.split-lp.loopexit, %.loopexit672
  %lpad.phi675 = phi { ptr, i32 } [ %lpad.loopexit674, %.loopexit672 ], [ %lpad.loopexit676, %.loopexit.split-lp673.loopexit ], [ %lpad.loopexit679, %.loopexit.split-lp673.loopexit.split-lp.loopexit ], [ %lpad.loopexit681, %.loopexit.split-lp673.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp682, %.loopexit.split-lp673.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  br label %1183

680:                                              ; preds = %._crit_edge444.4
  store i64 %672, ptr %49, align 8
  %681 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %49)
  %682 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 1) #12
  store i64 %681, ptr %682, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #12
  %683 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #12
  %684 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %685 unwind label %693

685:                                              ; preds = %680
  store i64 %684, ptr %50, align 8
  %686 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %50)
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.5, i64 noundef %686, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #12
  br i1 %.not, label %._crit_edge452.3.thread, label %.lr.ph448

._crit_edge452.3.thread:                          ; preds = %685
  %688 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %688, ptr %14, align 8, !tbaa !9
  br label %._crit_edge452.4

689:                                              ; preds = %700
  %690 = add nuw i64 %.0321446, 1
  %exitcond684.not = icmp eq i64 %690, %.0281
  br i1 %exitcond684.not, label %.lr.ph451.preheader, label %.lr.ph448, !llvm.loop !33

691:                                              ; preds = %._crit_edge444.4
  %692 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #12
  br label %1183

693:                                              ; preds = %680
  %694 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #12
  br label %1183

.lr.ph448:                                        ; preds = %685, %689
  %.0321446 = phi i64 [ %690, %689 ], [ 0, %685 ]
  %695 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0321446) #12
  %696 = load i64, ptr %695, align 8, !tbaa !9
  %697 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %696)
          to label %698 unwind label %705

698:                                              ; preds = %.lr.ph448
  %699 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %697)
          to label %700 unwind label %705

700:                                              ; preds = %698
  %701 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0321446) #12
  %702 = load i64, ptr %701, align 8, !tbaa !9
  %703 = icmp eq i64 %699, %702
  br i1 %703, label %689, label %704

704:                                              ; preds = %700
  call void @__assert_fail(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

705:                                              ; preds = %698, %.lr.ph448
  %706 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph451.preheader:                              ; preds = %689
  %707 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %707, ptr %14, align 8, !tbaa !9
  br label %.lr.ph451

.lr.ph451.1:                                      ; preds = %743, %713
  %.0318450.1 = phi i64 [ %714, %713 ], [ 0, %743 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #12
  %708 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0318450.1) #12
  %709 = load i64, ptr %708, align 8, !tbaa !9
  %710 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %709)
          to label %711 unwind label %.loopexit.split-lp688.loopexit

711:                                              ; preds = %.lr.ph451.1
  %712 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %710)
          to label %713 unwind label %.loopexit.split-lp688.loopexit

713:                                              ; preds = %711
  store i64 %712, ptr %51, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %51)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  %714 = add nuw i64 %.0318450.1, 1
  %exitcond685.1.not = icmp eq i64 %714, %.0281
  br i1 %exitcond685.1.not, label %.lr.ph451.2, label %.lr.ph451.1, !llvm.loop !34

.lr.ph451.2:                                      ; preds = %713, %720
  %.0318450.2 = phi i64 [ %721, %720 ], [ 0, %713 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #12
  %715 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0318450.2) #12
  %716 = load i64, ptr %715, align 8, !tbaa !9
  %717 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %716)
          to label %718 unwind label %.loopexit.split-lp688.loopexit.split-lp.loopexit

718:                                              ; preds = %.lr.ph451.2
  %719 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %717)
          to label %720 unwind label %.loopexit.split-lp688.loopexit.split-lp.loopexit

720:                                              ; preds = %718
  store i64 %719, ptr %51, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %51)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  %721 = add nuw i64 %.0318450.2, 1
  %exitcond685.2.not = icmp eq i64 %721, %.0281
  br i1 %exitcond685.2.not, label %.lr.ph451.3, label %.lr.ph451.2, !llvm.loop !34

.lr.ph451.3:                                      ; preds = %720, %727
  %.0318450.3 = phi i64 [ %728, %727 ], [ 0, %720 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #12
  %722 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0318450.3) #12
  %723 = load i64, ptr %722, align 8, !tbaa !9
  %724 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %723)
          to label %725 unwind label %.loopexit.split-lp688.loopexit.split-lp.loopexit.split-lp.loopexit

725:                                              ; preds = %.lr.ph451.3
  %726 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %724)
          to label %727 unwind label %.loopexit.split-lp688.loopexit.split-lp.loopexit.split-lp.loopexit

727:                                              ; preds = %725
  store i64 %726, ptr %51, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %51)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  %728 = add nuw i64 %.0318450.3, 1
  %exitcond685.3.not = icmp eq i64 %728, %.0281
  br i1 %exitcond685.3.not, label %.lr.ph451.4, label %.lr.ph451.3, !llvm.loop !34

.lr.ph451.4:                                      ; preds = %727, %734
  %.0318450.4 = phi i64 [ %735, %734 ], [ 0, %727 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #12
  %729 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0318450.4) #12
  %730 = load i64, ptr %729, align 8, !tbaa !9
  %731 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %730)
          to label %732 unwind label %.loopexit.split-lp688.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

732:                                              ; preds = %.lr.ph451.4
  %733 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %731)
          to label %734 unwind label %.loopexit.split-lp688.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

734:                                              ; preds = %732
  store i64 %733, ptr %51, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %51)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  %735 = add nuw i64 %.0318450.4, 1
  %exitcond685.4.not = icmp eq i64 %735, %.0281
  br i1 %exitcond685.4.not, label %._crit_edge452.4, label %.lr.ph451.4, !llvm.loop !34

._crit_edge452.4:                                 ; preds = %734, %._crit_edge452.3.thread
  %736 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %736, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #12
  %737 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %745 unwind label %756

.lr.ph451:                                        ; preds = %.lr.ph451.preheader, %743
  %.0318450 = phi i64 [ %744, %743 ], [ 0, %.lr.ph451.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #12
  %738 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0318450) #12
  %739 = load i64, ptr %738, align 8, !tbaa !9
  %740 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %739)
          to label %741 unwind label %.loopexit687

741:                                              ; preds = %.lr.ph451
  %742 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72) %5, i64 noundef %740)
          to label %743 unwind label %.loopexit687

743:                                              ; preds = %741
  store i64 %742, ptr %51, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %51)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  %744 = add nuw i64 %.0318450, 1
  %exitcond685.not = icmp eq i64 %744, %.0281
  br i1 %exitcond685.not, label %.lr.ph451.1, label %.lr.ph451, !llvm.loop !34

.loopexit687:                                     ; preds = %.lr.ph451, %741
  %lpad.loopexit689 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp688

.loopexit.split-lp688.loopexit:                   ; preds = %711, %.lr.ph451.1
  %lpad.loopexit691 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp688

.loopexit.split-lp688.loopexit.split-lp.loopexit: ; preds = %.lr.ph451.2, %718
  %lpad.loopexit694 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp688

.loopexit.split-lp688.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %725, %.lr.ph451.3
  %lpad.loopexit696 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp688

.loopexit.split-lp688.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %732, %.lr.ph451.4
  %lpad.loopexit.split-lp697 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp688

.loopexit.split-lp688:                            ; preds = %.loopexit.split-lp688.loopexit, %.loopexit.split-lp688.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp688.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp688.loopexit.split-lp.loopexit, %.loopexit687
  %lpad.phi690 = phi { ptr, i32 } [ %lpad.loopexit689, %.loopexit687 ], [ %lpad.loopexit691, %.loopexit.split-lp688.loopexit ], [ %lpad.loopexit694, %.loopexit.split-lp688.loopexit.split-lp.loopexit ], [ %lpad.loopexit696, %.loopexit.split-lp688.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp697, %.loopexit.split-lp688.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  br label %1183

745:                                              ; preds = %._crit_edge452.4
  store i64 %737, ptr %52, align 8
  %746 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %52)
  %747 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 2) #12
  store i64 %746, ptr %747, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #12
  %748 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #12
  %749 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %750 unwind label %758

750:                                              ; preds = %745
  store i64 %749, ptr %53, align 8
  %751 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %53)
  %752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %748, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.7, i64 noundef %751, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #12
  br i1 %.not, label %._crit_edge460.3.thread, label %.lr.ph456

._crit_edge460.3.thread:                          ; preds = %750
  %753 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %753, ptr %14, align 8, !tbaa !9
  br label %._crit_edge460.4

754:                                              ; preds = %763
  %755 = add nuw i64 %.0316454, 1
  %exitcond699.not = icmp eq i64 %755, %.0281
  br i1 %exitcond699.not, label %.lr.ph459.preheader, label %.lr.ph456, !llvm.loop !35

756:                                              ; preds = %._crit_edge452.4
  %757 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #12
  br label %1183

758:                                              ; preds = %745
  %759 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #12
  br label %1183

.lr.ph456:                                        ; preds = %750, %754
  %.0316454 = phi i64 [ %755, %754 ], [ 0, %750 ]
  %760 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0316454) #12
  %761 = load i64, ptr %760, align 8, !tbaa !9
  %762 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %761)
          to label %763 unwind label %769

763:                                              ; preds = %.lr.ph456
  %764 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %762)
  %765 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0316454) #12
  %766 = load i64, ptr %765, align 8, !tbaa !9
  %767 = icmp eq i64 %764, %766
  br i1 %767, label %754, label %768

768:                                              ; preds = %763
  call void @__assert_fail(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

769:                                              ; preds = %.lr.ph456
  %770 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph459.preheader:                              ; preds = %754
  %771 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %771, ptr %14, align 8, !tbaa !9
  br label %.lr.ph459

.lr.ph459.1:                                      ; preds = %801, %775
  %.0313458.1 = phi i64 [ %777, %775 ], [ 0, %801 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #12
  %772 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0313458.1) #12
  %773 = load i64, ptr %772, align 8, !tbaa !9
  %774 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %773)
          to label %775 unwind label %.loopexit.split-lp703.loopexit

775:                                              ; preds = %.lr.ph459.1
  %776 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %774)
  store i64 %776, ptr %54, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  %777 = add nuw i64 %.0313458.1, 1
  %exitcond700.1.not = icmp eq i64 %777, %.0281
  br i1 %exitcond700.1.not, label %.lr.ph459.2, label %.lr.ph459.1, !llvm.loop !36

.lr.ph459.2:                                      ; preds = %775, %781
  %.0313458.2 = phi i64 [ %783, %781 ], [ 0, %775 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #12
  %778 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0313458.2) #12
  %779 = load i64, ptr %778, align 8, !tbaa !9
  %780 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %779)
          to label %781 unwind label %.loopexit.split-lp703.loopexit.split-lp.loopexit

781:                                              ; preds = %.lr.ph459.2
  %782 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %780)
  store i64 %782, ptr %54, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  %783 = add nuw i64 %.0313458.2, 1
  %exitcond700.2.not = icmp eq i64 %783, %.0281
  br i1 %exitcond700.2.not, label %.lr.ph459.3, label %.lr.ph459.2, !llvm.loop !36

.lr.ph459.3:                                      ; preds = %781, %787
  %.0313458.3 = phi i64 [ %789, %787 ], [ 0, %781 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #12
  %784 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0313458.3) #12
  %785 = load i64, ptr %784, align 8, !tbaa !9
  %786 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %785)
          to label %787 unwind label %.loopexit.split-lp703.loopexit.split-lp.loopexit.split-lp.loopexit

787:                                              ; preds = %.lr.ph459.3
  %788 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %786)
  store i64 %788, ptr %54, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  %789 = add nuw i64 %.0313458.3, 1
  %exitcond700.3.not = icmp eq i64 %789, %.0281
  br i1 %exitcond700.3.not, label %.lr.ph459.4, label %.lr.ph459.3, !llvm.loop !36

.lr.ph459.4:                                      ; preds = %787, %793
  %.0313458.4 = phi i64 [ %795, %793 ], [ 0, %787 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #12
  %790 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0313458.4) #12
  %791 = load i64, ptr %790, align 8, !tbaa !9
  %792 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %791)
          to label %793 unwind label %.loopexit.split-lp703.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

793:                                              ; preds = %.lr.ph459.4
  %794 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %792)
  store i64 %794, ptr %54, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  %795 = add nuw i64 %.0313458.4, 1
  %exitcond700.4.not = icmp eq i64 %795, %.0281
  br i1 %exitcond700.4.not, label %._crit_edge460.4, label %.lr.ph459.4, !llvm.loop !36

._crit_edge460.4:                                 ; preds = %793, %._crit_edge460.3.thread
  %796 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %796, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #12
  %797 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %804 unwind label %815

.lr.ph459:                                        ; preds = %.lr.ph459.preheader, %801
  %.0313458 = phi i64 [ %803, %801 ], [ 0, %.lr.ph459.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #12
  %798 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0313458) #12
  %799 = load i64, ptr %798, align 8, !tbaa !9
  %800 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %799)
          to label %801 unwind label %.loopexit702

801:                                              ; preds = %.lr.ph459
  %802 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %6, i64 noundef %800)
  store i64 %802, ptr %54, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %54)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  %803 = add nuw i64 %.0313458, 1
  %exitcond700.not = icmp eq i64 %803, %.0281
  br i1 %exitcond700.not, label %.lr.ph459.1, label %.lr.ph459, !llvm.loop !36

.loopexit702:                                     ; preds = %.lr.ph459
  %lpad.loopexit704 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp703

.loopexit.split-lp703.loopexit:                   ; preds = %.lr.ph459.1
  %lpad.loopexit706 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp703

.loopexit.split-lp703.loopexit.split-lp.loopexit: ; preds = %.lr.ph459.2
  %lpad.loopexit709 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp703

.loopexit.split-lp703.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph459.3
  %lpad.loopexit711 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp703

.loopexit.split-lp703.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph459.4
  %lpad.loopexit.split-lp712 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp703

.loopexit.split-lp703:                            ; preds = %.loopexit.split-lp703.loopexit, %.loopexit.split-lp703.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp703.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp703.loopexit.split-lp.loopexit, %.loopexit702
  %lpad.phi705 = phi { ptr, i32 } [ %lpad.loopexit704, %.loopexit702 ], [ %lpad.loopexit706, %.loopexit.split-lp703.loopexit ], [ %lpad.loopexit709, %.loopexit.split-lp703.loopexit.split-lp.loopexit ], [ %lpad.loopexit711, %.loopexit.split-lp703.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp712, %.loopexit.split-lp703.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  br label %1183

804:                                              ; preds = %._crit_edge460.4
  store i64 %797, ptr %55, align 8
  %805 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %55)
  %806 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 3) #12
  store i64 %805, ptr %806, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #12
  %807 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #12
  %808 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %809 unwind label %817

809:                                              ; preds = %804
  store i64 %808, ptr %56, align 8
  %810 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %56)
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %807, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.9, i64 noundef %810, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #12
  br i1 %.not, label %._crit_edge468.3.thread, label %.lr.ph464

._crit_edge468.3.thread:                          ; preds = %809
  %812 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %812, ptr %14, align 8, !tbaa !9
  br label %._crit_edge468.4

813:                                              ; preds = %824
  %814 = add nuw i64 %.0311462, 1
  %exitcond714.not = icmp eq i64 %814, %.0281
  br i1 %exitcond714.not, label %.lr.ph467.preheader, label %.lr.ph464, !llvm.loop !37

815:                                              ; preds = %._crit_edge460.4
  %816 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #12
  br label %1183

817:                                              ; preds = %804
  %818 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #12
  br label %1183

.lr.ph464:                                        ; preds = %809, %813
  %.0311462 = phi i64 [ %814, %813 ], [ 0, %809 ]
  %819 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0311462) #12
  %820 = load i64, ptr %819, align 8, !tbaa !9
  %821 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %820)
          to label %822 unwind label %829

822:                                              ; preds = %.lr.ph464
  %823 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %821)
          to label %824 unwind label %829

824:                                              ; preds = %822
  %825 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0311462) #12
  %826 = load i64, ptr %825, align 8, !tbaa !9
  %827 = icmp eq i64 %823, %826
  br i1 %827, label %813, label %828

828:                                              ; preds = %824
  call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

829:                                              ; preds = %822, %.lr.ph464
  %830 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph467.preheader:                              ; preds = %813
  %831 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %831, ptr %14, align 8, !tbaa !9
  br label %.lr.ph467

.lr.ph467.1:                                      ; preds = %867, %837
  %.0308466.1 = phi i64 [ %838, %837 ], [ 0, %867 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  %832 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0308466.1) #12
  %833 = load i64, ptr %832, align 8, !tbaa !9
  %834 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %833)
          to label %835 unwind label %.loopexit.split-lp718.loopexit

835:                                              ; preds = %.lr.ph467.1
  %836 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %834)
          to label %837 unwind label %.loopexit.split-lp718.loopexit

837:                                              ; preds = %835
  store i64 %836, ptr %57, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %57)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  %838 = add nuw i64 %.0308466.1, 1
  %exitcond715.1.not = icmp eq i64 %838, %.0281
  br i1 %exitcond715.1.not, label %.lr.ph467.2, label %.lr.ph467.1, !llvm.loop !38

.lr.ph467.2:                                      ; preds = %837, %844
  %.0308466.2 = phi i64 [ %845, %844 ], [ 0, %837 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  %839 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0308466.2) #12
  %840 = load i64, ptr %839, align 8, !tbaa !9
  %841 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %840)
          to label %842 unwind label %.loopexit.split-lp718.loopexit.split-lp.loopexit

842:                                              ; preds = %.lr.ph467.2
  %843 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %841)
          to label %844 unwind label %.loopexit.split-lp718.loopexit.split-lp.loopexit

844:                                              ; preds = %842
  store i64 %843, ptr %57, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %57)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  %845 = add nuw i64 %.0308466.2, 1
  %exitcond715.2.not = icmp eq i64 %845, %.0281
  br i1 %exitcond715.2.not, label %.lr.ph467.3, label %.lr.ph467.2, !llvm.loop !38

.lr.ph467.3:                                      ; preds = %844, %851
  %.0308466.3 = phi i64 [ %852, %851 ], [ 0, %844 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  %846 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0308466.3) #12
  %847 = load i64, ptr %846, align 8, !tbaa !9
  %848 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %847)
          to label %849 unwind label %.loopexit.split-lp718.loopexit.split-lp.loopexit.split-lp.loopexit

849:                                              ; preds = %.lr.ph467.3
  %850 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %848)
          to label %851 unwind label %.loopexit.split-lp718.loopexit.split-lp.loopexit.split-lp.loopexit

851:                                              ; preds = %849
  store i64 %850, ptr %57, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %57)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  %852 = add nuw i64 %.0308466.3, 1
  %exitcond715.3.not = icmp eq i64 %852, %.0281
  br i1 %exitcond715.3.not, label %.lr.ph467.4, label %.lr.ph467.3, !llvm.loop !38

.lr.ph467.4:                                      ; preds = %851, %858
  %.0308466.4 = phi i64 [ %859, %858 ], [ 0, %851 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  %853 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0308466.4) #12
  %854 = load i64, ptr %853, align 8, !tbaa !9
  %855 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %854)
          to label %856 unwind label %.loopexit.split-lp718.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

856:                                              ; preds = %.lr.ph467.4
  %857 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %855)
          to label %858 unwind label %.loopexit.split-lp718.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

858:                                              ; preds = %856
  store i64 %857, ptr %57, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %57)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  %859 = add nuw i64 %.0308466.4, 1
  %exitcond715.4.not = icmp eq i64 %859, %.0281
  br i1 %exitcond715.4.not, label %._crit_edge468.4, label %.lr.ph467.4, !llvm.loop !38

._crit_edge468.4:                                 ; preds = %858, %._crit_edge468.3.thread
  %860 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %860, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #12
  %861 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %869 unwind label %877

.lr.ph467:                                        ; preds = %.lr.ph467.preheader, %867
  %.0308466 = phi i64 [ %868, %867 ], [ 0, %.lr.ph467.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  %862 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0308466) #12
  %863 = load i64, ptr %862, align 8, !tbaa !9
  %864 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %863)
          to label %865 unwind label %.loopexit717

865:                                              ; preds = %.lr.ph467
  %866 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104) %7, i64 noundef %864)
          to label %867 unwind label %.loopexit717

867:                                              ; preds = %865
  store i64 %866, ptr %57, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %57)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  %868 = add nuw i64 %.0308466, 1
  %exitcond715.not = icmp eq i64 %868, %.0281
  br i1 %exitcond715.not, label %.lr.ph467.1, label %.lr.ph467, !llvm.loop !38

.loopexit717:                                     ; preds = %.lr.ph467, %865
  %lpad.loopexit719 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp718

.loopexit.split-lp718.loopexit:                   ; preds = %835, %.lr.ph467.1
  %lpad.loopexit721 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp718

.loopexit.split-lp718.loopexit.split-lp.loopexit: ; preds = %.lr.ph467.2, %842
  %lpad.loopexit724 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp718

.loopexit.split-lp718.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %849, %.lr.ph467.3
  %lpad.loopexit726 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp718

.loopexit.split-lp718.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %856, %.lr.ph467.4
  %lpad.loopexit.split-lp727 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp718

.loopexit.split-lp718:                            ; preds = %.loopexit.split-lp718.loopexit, %.loopexit.split-lp718.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp718.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp718.loopexit.split-lp.loopexit, %.loopexit717
  %lpad.phi720 = phi { ptr, i32 } [ %lpad.loopexit719, %.loopexit717 ], [ %lpad.loopexit721, %.loopexit.split-lp718.loopexit ], [ %lpad.loopexit724, %.loopexit.split-lp718.loopexit.split-lp.loopexit ], [ %lpad.loopexit726, %.loopexit.split-lp718.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp727, %.loopexit.split-lp718.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  br label %1183

869:                                              ; preds = %._crit_edge468.4
  store i64 %861, ptr %58, align 8
  %870 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %58)
  %871 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 4) #12
  store i64 %870, ptr %871, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #12
  %872 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #12
  %873 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %.preheader350 unwind label %879

.preheader350:                                    ; preds = %869
  store i64 %873, ptr %59, align 8
  %874 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %59)
  %875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %872, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.11, i64 noundef %874, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #12
  %876 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %876, ptr %14, align 8, !tbaa !9
  br i1 %.not, label %._crit_edge472.4, label %.lr.ph471

877:                                              ; preds = %._crit_edge468.4
  %878 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #12
  br label %1183

879:                                              ; preds = %869
  %880 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #12
  br label %1183

.lr.ph471.1:                                      ; preds = %910, %884
  %.0303470.1 = phi i64 [ %886, %884 ], [ 0, %910 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #12
  %881 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0303470.1) #12
  %882 = load i64, ptr %881, align 8, !tbaa !9
  %883 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %882)
          to label %884 unwind label %.loopexit.split-lp732.loopexit

884:                                              ; preds = %.lr.ph471.1
  %885 = call noundef i64 @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EE7inverseEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %883)
  store i64 %885, ptr %60, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %60)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #12
  %886 = add nuw i64 %.0303470.1, 1
  %exitcond729.1.not = icmp eq i64 %886, %.0281
  br i1 %exitcond729.1.not, label %.lr.ph471.2, label %.lr.ph471.1, !llvm.loop !39

.lr.ph471.2:                                      ; preds = %884, %890
  %.0303470.2 = phi i64 [ %892, %890 ], [ 0, %884 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #12
  %887 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0303470.2) #12
  %888 = load i64, ptr %887, align 8, !tbaa !9
  %889 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %888)
          to label %890 unwind label %.loopexit.split-lp732.loopexit.split-lp.loopexit

890:                                              ; preds = %.lr.ph471.2
  %891 = call noundef i64 @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EE7inverseEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %889)
  store i64 %891, ptr %60, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %60)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #12
  %892 = add nuw i64 %.0303470.2, 1
  %exitcond729.2.not = icmp eq i64 %892, %.0281
  br i1 %exitcond729.2.not, label %.lr.ph471.3, label %.lr.ph471.2, !llvm.loop !39

.lr.ph471.3:                                      ; preds = %890, %896
  %.0303470.3 = phi i64 [ %898, %896 ], [ 0, %890 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #12
  %893 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0303470.3) #12
  %894 = load i64, ptr %893, align 8, !tbaa !9
  %895 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %894)
          to label %896 unwind label %.loopexit.split-lp732.loopexit.split-lp.loopexit.split-lp.loopexit

896:                                              ; preds = %.lr.ph471.3
  %897 = call noundef i64 @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EE7inverseEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %895)
  store i64 %897, ptr %60, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %60)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #12
  %898 = add nuw i64 %.0303470.3, 1
  %exitcond729.3.not = icmp eq i64 %898, %.0281
  br i1 %exitcond729.3.not, label %.lr.ph471.4, label %.lr.ph471.3, !llvm.loop !39

.lr.ph471.4:                                      ; preds = %896, %902
  %.0303470.4 = phi i64 [ %904, %902 ], [ 0, %896 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #12
  %899 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0303470.4) #12
  %900 = load i64, ptr %899, align 8, !tbaa !9
  %901 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %900)
          to label %902 unwind label %.loopexit.split-lp732.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

902:                                              ; preds = %.lr.ph471.4
  %903 = call noundef i64 @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EE7inverseEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %901)
  store i64 %903, ptr %60, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %60)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #12
  %904 = add nuw i64 %.0303470.4, 1
  %exitcond729.4.not = icmp eq i64 %904, %.0281
  br i1 %exitcond729.4.not, label %._crit_edge472.4, label %.lr.ph471.4, !llvm.loop !39

._crit_edge472.4:                                 ; preds = %902, %.preheader350
  %905 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %905, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #12
  %906 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %913 unwind label %924

.lr.ph471:                                        ; preds = %.preheader350, %910
  %.0303470 = phi i64 [ %912, %910 ], [ 0, %.preheader350 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #12
  %907 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0303470) #12
  %908 = load i64, ptr %907, align 8, !tbaa !9
  %909 = invoke noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %908)
          to label %910 unwind label %.loopexit731

910:                                              ; preds = %.lr.ph471
  %911 = call noundef i64 @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EE7inverseEm(ptr noundef nonnull align 4 dereferenceable(48) %9, i64 noundef %909)
  store i64 %911, ptr %60, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %60)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #12
  %912 = add nuw i64 %.0303470, 1
  %exitcond729.not = icmp eq i64 %912, %.0281
  br i1 %exitcond729.not, label %.lr.ph471.1, label %.lr.ph471, !llvm.loop !39

.loopexit731:                                     ; preds = %.lr.ph471
  %lpad.loopexit733 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp732

.loopexit.split-lp732.loopexit:                   ; preds = %.lr.ph471.1
  %lpad.loopexit735 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp732

.loopexit.split-lp732.loopexit.split-lp.loopexit: ; preds = %.lr.ph471.2
  %lpad.loopexit738 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp732

.loopexit.split-lp732.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph471.3
  %lpad.loopexit740 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp732

.loopexit.split-lp732.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph471.4
  %lpad.loopexit.split-lp741 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp732

.loopexit.split-lp732:                            ; preds = %.loopexit.split-lp732.loopexit, %.loopexit.split-lp732.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp732.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp732.loopexit.split-lp.loopexit, %.loopexit731
  %lpad.phi734 = phi { ptr, i32 } [ %lpad.loopexit733, %.loopexit731 ], [ %lpad.loopexit735, %.loopexit.split-lp732.loopexit ], [ %lpad.loopexit738, %.loopexit.split-lp732.loopexit.split-lp.loopexit ], [ %lpad.loopexit740, %.loopexit.split-lp732.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp741, %.loopexit.split-lp732.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #12
  br label %1183

913:                                              ; preds = %._crit_edge472.4
  store i64 %906, ptr %61, align 8
  %914 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %61)
  %915 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 5) #12
  store i64 %914, ptr %915, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  %916 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #12
  %917 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %918 unwind label %926

918:                                              ; preds = %913
  store i64 %917, ptr %62, align 8
  %919 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %62)
  %920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %916, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.12, i64 noundef %919, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  br i1 %.not, label %._crit_edge480.3.thread, label %.lr.ph476

._crit_edge480.3.thread:                          ; preds = %918
  %921 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %921, ptr %14, align 8, !tbaa !9
  br label %._crit_edge480.4

922:                                              ; preds = %931
  %923 = add nuw i64 %.0301474, 1
  %exitcond743.not = icmp eq i64 %923, %.0281
  br i1 %exitcond743.not, label %.lr.ph479.preheader, label %.lr.ph476, !llvm.loop !40

924:                                              ; preds = %._crit_edge472.4
  %925 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #12
  br label %1183

926:                                              ; preds = %913
  %927 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  br label %1183

.lr.ph476:                                        ; preds = %918, %922
  %.0301474 = phi i64 [ %923, %922 ], [ 0, %918 ]
  %928 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0301474) #12
  %929 = load i64, ptr %928, align 8, !tbaa !9
  %930 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %929)
          to label %931 unwind label %937

931:                                              ; preds = %.lr.ph476
  %932 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %930)
  %933 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0301474) #12
  %934 = load i64, ptr %933, align 8, !tbaa !9
  %935 = icmp eq i64 %932, %934
  br i1 %935, label %922, label %936

936:                                              ; preds = %931
  call void @__assert_fail(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

937:                                              ; preds = %.lr.ph476
  %938 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph479.preheader:                              ; preds = %922
  %939 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %939, ptr %14, align 8, !tbaa !9
  br label %.lr.ph479

.lr.ph479.1:                                      ; preds = %969, %943
  %.0298478.1 = phi i64 [ %945, %943 ], [ 0, %969 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #12
  %940 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0298478.1) #12
  %941 = load i64, ptr %940, align 8, !tbaa !9
  %942 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %941)
          to label %943 unwind label %.loopexit.split-lp747.loopexit

943:                                              ; preds = %.lr.ph479.1
  %944 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %942)
  store i64 %944, ptr %63, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %63)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  %945 = add nuw i64 %.0298478.1, 1
  %exitcond744.1.not = icmp eq i64 %945, %.0281
  br i1 %exitcond744.1.not, label %.lr.ph479.2, label %.lr.ph479.1, !llvm.loop !41

.lr.ph479.2:                                      ; preds = %943, %949
  %.0298478.2 = phi i64 [ %951, %949 ], [ 0, %943 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #12
  %946 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0298478.2) #12
  %947 = load i64, ptr %946, align 8, !tbaa !9
  %948 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %947)
          to label %949 unwind label %.loopexit.split-lp747.loopexit.split-lp.loopexit

949:                                              ; preds = %.lr.ph479.2
  %950 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %948)
  store i64 %950, ptr %63, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %63)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  %951 = add nuw i64 %.0298478.2, 1
  %exitcond744.2.not = icmp eq i64 %951, %.0281
  br i1 %exitcond744.2.not, label %.lr.ph479.3, label %.lr.ph479.2, !llvm.loop !41

.lr.ph479.3:                                      ; preds = %949, %955
  %.0298478.3 = phi i64 [ %957, %955 ], [ 0, %949 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #12
  %952 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0298478.3) #12
  %953 = load i64, ptr %952, align 8, !tbaa !9
  %954 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %953)
          to label %955 unwind label %.loopexit.split-lp747.loopexit.split-lp.loopexit.split-lp.loopexit

955:                                              ; preds = %.lr.ph479.3
  %956 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %954)
  store i64 %956, ptr %63, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %63)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  %957 = add nuw i64 %.0298478.3, 1
  %exitcond744.3.not = icmp eq i64 %957, %.0281
  br i1 %exitcond744.3.not, label %.lr.ph479.4, label %.lr.ph479.3, !llvm.loop !41

.lr.ph479.4:                                      ; preds = %955, %961
  %.0298478.4 = phi i64 [ %963, %961 ], [ 0, %955 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #12
  %958 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0298478.4) #12
  %959 = load i64, ptr %958, align 8, !tbaa !9
  %960 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %959)
          to label %961 unwind label %.loopexit.split-lp747.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

961:                                              ; preds = %.lr.ph479.4
  %962 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %960)
  store i64 %962, ptr %63, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %63)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  %963 = add nuw i64 %.0298478.4, 1
  %exitcond744.4.not = icmp eq i64 %963, %.0281
  br i1 %exitcond744.4.not, label %._crit_edge480.4, label %.lr.ph479.4, !llvm.loop !41

._crit_edge480.4:                                 ; preds = %961, %._crit_edge480.3.thread
  %964 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %964, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #12
  %965 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %972 unwind label %983

.lr.ph479:                                        ; preds = %.lr.ph479.preheader, %969
  %.0298478 = phi i64 [ %971, %969 ], [ 0, %.lr.ph479.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #12
  %966 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0298478) #12
  %967 = load i64, ptr %966, align 8, !tbaa !9
  %968 = invoke noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %967)
          to label %969 unwind label %.loopexit746

969:                                              ; preds = %.lr.ph479
  %970 = call noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48) %8, i64 noundef %968)
  store i64 %970, ptr %63, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %63)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  %971 = add nuw i64 %.0298478, 1
  %exitcond744.not = icmp eq i64 %971, %.0281
  br i1 %exitcond744.not, label %.lr.ph479.1, label %.lr.ph479, !llvm.loop !41

.loopexit746:                                     ; preds = %.lr.ph479
  %lpad.loopexit748 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp747

.loopexit.split-lp747.loopexit:                   ; preds = %.lr.ph479.1
  %lpad.loopexit750 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp747

.loopexit.split-lp747.loopexit.split-lp.loopexit: ; preds = %.lr.ph479.2
  %lpad.loopexit753 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp747

.loopexit.split-lp747.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph479.3
  %lpad.loopexit755 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp747

.loopexit.split-lp747.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph479.4
  %lpad.loopexit.split-lp756 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp747

.loopexit.split-lp747:                            ; preds = %.loopexit.split-lp747.loopexit, %.loopexit.split-lp747.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp747.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp747.loopexit.split-lp.loopexit, %.loopexit746
  %lpad.phi749 = phi { ptr, i32 } [ %lpad.loopexit748, %.loopexit746 ], [ %lpad.loopexit750, %.loopexit.split-lp747.loopexit ], [ %lpad.loopexit753, %.loopexit.split-lp747.loopexit.split-lp.loopexit ], [ %lpad.loopexit755, %.loopexit.split-lp747.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp756, %.loopexit.split-lp747.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #12
  br label %1183

972:                                              ; preds = %._crit_edge480.4
  store i64 %965, ptr %64, align 8
  %973 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %64)
  %974 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 6) #12
  store i64 %973, ptr %974, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #12
  %975 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #12
  %976 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %977 unwind label %985

977:                                              ; preds = %972
  store i64 %976, ptr %65, align 8
  %978 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %65)
  %979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %975, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.18, i64 noundef %978, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #12
  br i1 %.not, label %._crit_edge488.3.thread, label %.lr.ph484

._crit_edge488.3.thread:                          ; preds = %977
  %980 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %980, ptr %14, align 8, !tbaa !9
  br label %._crit_edge488.4

981:                                              ; preds = %991
  %982 = add nuw i64 %.0296482, 1
  %exitcond758.not = icmp eq i64 %982, %.0281
  br i1 %exitcond758.not, label %.lr.ph487.preheader, label %.lr.ph484, !llvm.loop !42

983:                                              ; preds = %._crit_edge480.4
  %984 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #12
  br label %1183

985:                                              ; preds = %972
  %986 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #12
  br label %1183

.lr.ph484:                                        ; preds = %977, %981
  %.0296482 = phi i64 [ %982, %981 ], [ 0, %977 ]
  %987 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0296482) #12
  %988 = load i64, ptr %987, align 8, !tbaa !9
  %989 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %988)
  %990 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %989)
          to label %991 unwind label %996

991:                                              ; preds = %.lr.ph484
  %992 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0296482) #12
  %993 = load i64, ptr %992, align 8, !tbaa !9
  %994 = icmp eq i64 %990, %993
  br i1 %994, label %981, label %995

995:                                              ; preds = %991
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

996:                                              ; preds = %.lr.ph484
  %997 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph487.preheader:                              ; preds = %981
  %998 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %998, ptr %14, align 8, !tbaa !9
  br label %.lr.ph487

.lr.ph487.1:                                      ; preds = %1029, %1003
  %.0294486.1 = phi i64 [ %1004, %1003 ], [ 0, %1029 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #12
  %999 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0294486.1) #12
  %1000 = load i64, ptr %999, align 8, !tbaa !9
  %1001 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %1000)
  %1002 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %1001)
          to label %1003 unwind label %.loopexit.split-lp762.loopexit

1003:                                             ; preds = %.lr.ph487.1
  store i64 %1002, ptr %66, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #12
  %1004 = add nuw i64 %.0294486.1, 1
  %exitcond759.1.not = icmp eq i64 %1004, %.0281
  br i1 %exitcond759.1.not, label %.lr.ph487.2, label %.lr.ph487.1, !llvm.loop !43

.lr.ph487.2:                                      ; preds = %1003, %1009
  %.0294486.2 = phi i64 [ %1010, %1009 ], [ 0, %1003 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #12
  %1005 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0294486.2) #12
  %1006 = load i64, ptr %1005, align 8, !tbaa !9
  %1007 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %1006)
  %1008 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %1007)
          to label %1009 unwind label %.loopexit.split-lp762.loopexit.split-lp.loopexit

1009:                                             ; preds = %.lr.ph487.2
  store i64 %1008, ptr %66, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #12
  %1010 = add nuw i64 %.0294486.2, 1
  %exitcond759.2.not = icmp eq i64 %1010, %.0281
  br i1 %exitcond759.2.not, label %.lr.ph487.3, label %.lr.ph487.2, !llvm.loop !43

.lr.ph487.3:                                      ; preds = %1009, %1015
  %.0294486.3 = phi i64 [ %1016, %1015 ], [ 0, %1009 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #12
  %1011 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0294486.3) #12
  %1012 = load i64, ptr %1011, align 8, !tbaa !9
  %1013 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %1012)
  %1014 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %1013)
          to label %1015 unwind label %.loopexit.split-lp762.loopexit.split-lp.loopexit.split-lp.loopexit

1015:                                             ; preds = %.lr.ph487.3
  store i64 %1014, ptr %66, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #12
  %1016 = add nuw i64 %.0294486.3, 1
  %exitcond759.3.not = icmp eq i64 %1016, %.0281
  br i1 %exitcond759.3.not, label %.lr.ph487.4, label %.lr.ph487.3, !llvm.loop !43

.lr.ph487.4:                                      ; preds = %1015, %1021
  %.0294486.4 = phi i64 [ %1022, %1021 ], [ 0, %1015 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #12
  %1017 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0294486.4) #12
  %1018 = load i64, ptr %1017, align 8, !tbaa !9
  %1019 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %1018)
  %1020 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %1019)
          to label %1021 unwind label %.loopexit.split-lp762.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

1021:                                             ; preds = %.lr.ph487.4
  store i64 %1020, ptr %66, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #12
  %1022 = add nuw i64 %.0294486.4, 1
  %exitcond759.4.not = icmp eq i64 %1022, %.0281
  br i1 %exitcond759.4.not, label %._crit_edge488.4, label %.lr.ph487.4, !llvm.loop !43

._crit_edge488.4:                                 ; preds = %1021, %._crit_edge488.3.thread
  %1023 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %1023, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #12
  %1024 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %1031 unwind label %1042

.lr.ph487:                                        ; preds = %.lr.ph487.preheader, %1029
  %.0294486 = phi i64 [ %1030, %1029 ], [ 0, %.lr.ph487.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #12
  %1025 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0294486) #12
  %1026 = load i64, ptr %1025, align 8, !tbaa !9
  %1027 = call noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %1026)
  %1028 = invoke noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1) %10, i64 noundef %1027)
          to label %1029 unwind label %.loopexit761

1029:                                             ; preds = %.lr.ph487
  store i64 %1028, ptr %66, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %66)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #12
  %1030 = add nuw i64 %.0294486, 1
  %exitcond759.not = icmp eq i64 %1030, %.0281
  br i1 %exitcond759.not, label %.lr.ph487.1, label %.lr.ph487, !llvm.loop !43

.loopexit761:                                     ; preds = %.lr.ph487
  %lpad.loopexit763 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp762

.loopexit.split-lp762.loopexit:                   ; preds = %.lr.ph487.1
  %lpad.loopexit765 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp762

.loopexit.split-lp762.loopexit.split-lp.loopexit: ; preds = %.lr.ph487.2
  %lpad.loopexit768 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp762

.loopexit.split-lp762.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %.lr.ph487.3
  %lpad.loopexit770 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp762

.loopexit.split-lp762.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %.lr.ph487.4
  %lpad.loopexit.split-lp771 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp762

.loopexit.split-lp762:                            ; preds = %.loopexit.split-lp762.loopexit, %.loopexit.split-lp762.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp762.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp762.loopexit.split-lp.loopexit, %.loopexit761
  %lpad.phi764 = phi { ptr, i32 } [ %lpad.loopexit763, %.loopexit761 ], [ %lpad.loopexit765, %.loopexit.split-lp762.loopexit ], [ %lpad.loopexit768, %.loopexit.split-lp762.loopexit.split-lp.loopexit ], [ %lpad.loopexit770, %.loopexit.split-lp762.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp771, %.loopexit.split-lp762.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #12
  br label %1183

1031:                                             ; preds = %._crit_edge488.4
  store i64 %1024, ptr %67, align 8
  %1032 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
  %1033 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 7) #12
  store i64 %1032, ptr %1033, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #12
  %1034 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #12
  %1035 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %1036 unwind label %1044

1036:                                             ; preds = %1031
  store i64 %1035, ptr %68, align 8
  %1037 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %68)
  %1038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1034, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.14, i64 noundef %1037, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #12
  br i1 %.not, label %._crit_edge496.3.thread, label %.lr.ph492

._crit_edge496.3.thread:                          ; preds = %1036
  %1039 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %1039, ptr %14, align 8, !tbaa !9
  br label %._crit_edge496.4

1040:                                             ; preds = %1051
  %1041 = add nuw i64 %.0292490, 1
  %exitcond773.not = icmp eq i64 %1041, %.0281
  br i1 %exitcond773.not, label %.lr.ph495.preheader, label %.lr.ph492, !llvm.loop !44

1042:                                             ; preds = %._crit_edge488.4
  %1043 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #12
  br label %1183

1044:                                             ; preds = %1031
  %1045 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #12
  br label %1183

.lr.ph492:                                        ; preds = %1036, %1040
  %.0292490 = phi i64 [ %1041, %1040 ], [ 0, %1036 ]
  %1046 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0292490) #12
  %1047 = load i64, ptr %1046, align 8, !tbaa !9
  %1048 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1047)
          to label %1049 unwind label %1056

1049:                                             ; preds = %.lr.ph492
  %1050 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1048)
          to label %1051 unwind label %1056

1051:                                             ; preds = %1049
  %1052 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0292490) #12
  %1053 = load i64, ptr %1052, align 8, !tbaa !9
  %1054 = icmp eq i64 %1050, %1053
  br i1 %1054, label %1040, label %1055

1055:                                             ; preds = %1051
  call void @__assert_fail(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

1056:                                             ; preds = %1049, %.lr.ph492
  %1057 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph495.preheader:                              ; preds = %1040
  %1058 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %1058, ptr %14, align 8, !tbaa !9
  br label %.lr.ph495

.lr.ph495.1:                                      ; preds = %1094, %1064
  %.0288494.1 = phi i64 [ %1065, %1064 ], [ 0, %1094 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #12
  %1059 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0288494.1) #12
  %1060 = load i64, ptr %1059, align 8, !tbaa !9
  %1061 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1060)
          to label %1062 unwind label %.loopexit.split-lp777.loopexit

1062:                                             ; preds = %.lr.ph495.1
  %1063 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1061)
          to label %1064 unwind label %.loopexit.split-lp777.loopexit

1064:                                             ; preds = %1062
  store i64 %1063, ptr %69, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %69)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #12
  %1065 = add nuw i64 %.0288494.1, 1
  %exitcond774.1.not = icmp eq i64 %1065, %.0281
  br i1 %exitcond774.1.not, label %.lr.ph495.2, label %.lr.ph495.1, !llvm.loop !45

.lr.ph495.2:                                      ; preds = %1064, %1071
  %.0288494.2 = phi i64 [ %1072, %1071 ], [ 0, %1064 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #12
  %1066 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0288494.2) #12
  %1067 = load i64, ptr %1066, align 8, !tbaa !9
  %1068 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1067)
          to label %1069 unwind label %.loopexit.split-lp777.loopexit.split-lp.loopexit

1069:                                             ; preds = %.lr.ph495.2
  %1070 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1068)
          to label %1071 unwind label %.loopexit.split-lp777.loopexit.split-lp.loopexit

1071:                                             ; preds = %1069
  store i64 %1070, ptr %69, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %69)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #12
  %1072 = add nuw i64 %.0288494.2, 1
  %exitcond774.2.not = icmp eq i64 %1072, %.0281
  br i1 %exitcond774.2.not, label %.lr.ph495.3, label %.lr.ph495.2, !llvm.loop !45

.lr.ph495.3:                                      ; preds = %1071, %1078
  %.0288494.3 = phi i64 [ %1079, %1078 ], [ 0, %1071 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #12
  %1073 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0288494.3) #12
  %1074 = load i64, ptr %1073, align 8, !tbaa !9
  %1075 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1074)
          to label %1076 unwind label %.loopexit.split-lp777.loopexit.split-lp.loopexit.split-lp.loopexit

1076:                                             ; preds = %.lr.ph495.3
  %1077 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1075)
          to label %1078 unwind label %.loopexit.split-lp777.loopexit.split-lp.loopexit.split-lp.loopexit

1078:                                             ; preds = %1076
  store i64 %1077, ptr %69, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %69)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #12
  %1079 = add nuw i64 %.0288494.3, 1
  %exitcond774.3.not = icmp eq i64 %1079, %.0281
  br i1 %exitcond774.3.not, label %.lr.ph495.4, label %.lr.ph495.3, !llvm.loop !45

.lr.ph495.4:                                      ; preds = %1078, %1085
  %.0288494.4 = phi i64 [ %1086, %1085 ], [ 0, %1078 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #12
  %1080 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0288494.4) #12
  %1081 = load i64, ptr %1080, align 8, !tbaa !9
  %1082 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1081)
          to label %1083 unwind label %.loopexit.split-lp777.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

1083:                                             ; preds = %.lr.ph495.4
  %1084 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1082)
          to label %1085 unwind label %.loopexit.split-lp777.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

1085:                                             ; preds = %1083
  store i64 %1084, ptr %69, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %69)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #12
  %1086 = add nuw i64 %.0288494.4, 1
  %exitcond774.4.not = icmp eq i64 %1086, %.0281
  br i1 %exitcond774.4.not, label %._crit_edge496.4, label %.lr.ph495.4, !llvm.loop !45

._crit_edge496.4:                                 ; preds = %1085, %._crit_edge496.3.thread
  %1087 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %1087, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #12
  %1088 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %1096 unwind label %1107

.lr.ph495:                                        ; preds = %.lr.ph495.preheader, %1094
  %.0288494 = phi i64 [ %1095, %1094 ], [ 0, %.lr.ph495.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #12
  %1089 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0288494) #12
  %1090 = load i64, ptr %1089, align 8, !tbaa !9
  %1091 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1090)
          to label %1092 unwind label %.loopexit776

1092:                                             ; preds = %.lr.ph495
  %1093 = invoke noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128) %11, i64 noundef %1091)
          to label %1094 unwind label %.loopexit776

1094:                                             ; preds = %1092
  store i64 %1093, ptr %69, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %69)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #12
  %1095 = add nuw i64 %.0288494, 1
  %exitcond774.not = icmp eq i64 %1095, %.0281
  br i1 %exitcond774.not, label %.lr.ph495.1, label %.lr.ph495, !llvm.loop !45

.loopexit776:                                     ; preds = %.lr.ph495, %1092
  %lpad.loopexit778 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp777

.loopexit.split-lp777.loopexit:                   ; preds = %1062, %.lr.ph495.1
  %lpad.loopexit780 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp777

.loopexit.split-lp777.loopexit.split-lp.loopexit: ; preds = %.lr.ph495.2, %1069
  %lpad.loopexit783 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp777

.loopexit.split-lp777.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %1076, %.lr.ph495.3
  %lpad.loopexit785 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp777

.loopexit.split-lp777.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %1083, %.lr.ph495.4
  %lpad.loopexit.split-lp786 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp777

.loopexit.split-lp777:                            ; preds = %.loopexit.split-lp777.loopexit, %.loopexit.split-lp777.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp777.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp777.loopexit.split-lp.loopexit, %.loopexit776
  %lpad.phi779 = phi { ptr, i32 } [ %lpad.loopexit778, %.loopexit776 ], [ %lpad.loopexit780, %.loopexit.split-lp777.loopexit ], [ %lpad.loopexit783, %.loopexit.split-lp777.loopexit.split-lp.loopexit ], [ %lpad.loopexit785, %.loopexit.split-lp777.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp786, %.loopexit.split-lp777.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #12
  br label %1183

1096:                                             ; preds = %._crit_edge496.4
  store i64 %1088, ptr %70, align 8
  %1097 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %70)
  %1098 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 8) #12
  store i64 %1097, ptr %1098, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #12
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #12
  %1100 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %1101 unwind label %1109

1101:                                             ; preds = %1096
  store i64 %1100, ptr %71, align 8
  %1102 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %71)
  %1103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1099, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.16, i64 noundef %1102, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #12
  br i1 %.not, label %._crit_edge504.3.thread, label %.lr.ph500

._crit_edge504.3.thread:                          ; preds = %1101
  %1104 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %1104, ptr %14, align 8, !tbaa !9
  br label %._crit_edge504.4

1105:                                             ; preds = %1116
  %1106 = add nuw i64 %.0285498, 1
  %exitcond788.not = icmp eq i64 %1106, %.0281
  br i1 %exitcond788.not, label %.lr.ph503.preheader, label %.lr.ph500, !llvm.loop !46

1107:                                             ; preds = %._crit_edge496.4
  %1108 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #12
  br label %1183

1109:                                             ; preds = %1096
  %1110 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #12
  br label %1183

.lr.ph500:                                        ; preds = %1101, %1105
  %.0285498 = phi i64 [ %1106, %1105 ], [ 0, %1101 ]
  %1111 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0285498) #12
  %1112 = load i64, ptr %1111, align 8, !tbaa !9
  %1113 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1112)
          to label %1114 unwind label %1121

1114:                                             ; preds = %.lr.ph500
  %1115 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1113)
          to label %1116 unwind label %1121

1116:                                             ; preds = %1114
  %1117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0285498) #12
  %1118 = load i64, ptr %1117, align 8, !tbaa !9
  %1119 = icmp eq i64 %1115, %1118
  br i1 %1119, label %1105, label %1120

1120:                                             ; preds = %1116
  call void @__assert_fail(ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef nonnull @__PRETTY_FUNCTION__.main) #13
  unreachable

1121:                                             ; preds = %1114, %.lr.ph500
  %1122 = landingpad { ptr, i32 }
          cleanup
  br label %1183

.lr.ph503.preheader:                              ; preds = %1105
  %1123 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %1123, ptr %14, align 8, !tbaa !9
  br label %.lr.ph503

.lr.ph503.1:                                      ; preds = %1159, %1129
  %.0282502.1 = phi i64 [ %1130, %1129 ], [ 0, %1159 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #12
  %1124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0282502.1) #12
  %1125 = load i64, ptr %1124, align 8, !tbaa !9
  %1126 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1125)
          to label %1127 unwind label %.loopexit.split-lp792.loopexit

1127:                                             ; preds = %.lr.ph503.1
  %1128 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1126)
          to label %1129 unwind label %.loopexit.split-lp792.loopexit

1129:                                             ; preds = %1127
  store i64 %1128, ptr %72, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %72)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #12
  %1130 = add nuw i64 %.0282502.1, 1
  %exitcond789.1.not = icmp eq i64 %1130, %.0281
  br i1 %exitcond789.1.not, label %.lr.ph503.2, label %.lr.ph503.1, !llvm.loop !47

.lr.ph503.2:                                      ; preds = %1129, %1136
  %.0282502.2 = phi i64 [ %1137, %1136 ], [ 0, %1129 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #12
  %1131 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0282502.2) #12
  %1132 = load i64, ptr %1131, align 8, !tbaa !9
  %1133 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1132)
          to label %1134 unwind label %.loopexit.split-lp792.loopexit.split-lp.loopexit

1134:                                             ; preds = %.lr.ph503.2
  %1135 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1133)
          to label %1136 unwind label %.loopexit.split-lp792.loopexit.split-lp.loopexit

1136:                                             ; preds = %1134
  store i64 %1135, ptr %72, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %72)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #12
  %1137 = add nuw i64 %.0282502.2, 1
  %exitcond789.2.not = icmp eq i64 %1137, %.0281
  br i1 %exitcond789.2.not, label %.lr.ph503.3, label %.lr.ph503.2, !llvm.loop !47

.lr.ph503.3:                                      ; preds = %1136, %1143
  %.0282502.3 = phi i64 [ %1144, %1143 ], [ 0, %1136 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #12
  %1138 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0282502.3) #12
  %1139 = load i64, ptr %1138, align 8, !tbaa !9
  %1140 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1139)
          to label %1141 unwind label %.loopexit.split-lp792.loopexit.split-lp.loopexit.split-lp.loopexit

1141:                                             ; preds = %.lr.ph503.3
  %1142 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1140)
          to label %1143 unwind label %.loopexit.split-lp792.loopexit.split-lp.loopexit.split-lp.loopexit

1143:                                             ; preds = %1141
  store i64 %1142, ptr %72, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %72)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #12
  %1144 = add nuw i64 %.0282502.3, 1
  %exitcond789.3.not = icmp eq i64 %1144, %.0281
  br i1 %exitcond789.3.not, label %.lr.ph503.4, label %.lr.ph503.3, !llvm.loop !47

.lr.ph503.4:                                      ; preds = %1143, %1150
  %.0282502.4 = phi i64 [ %1151, %1150 ], [ 0, %1143 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #12
  %1145 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0282502.4) #12
  %1146 = load i64, ptr %1145, align 8, !tbaa !9
  %1147 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1146)
          to label %1148 unwind label %.loopexit.split-lp792.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

1148:                                             ; preds = %.lr.ph503.4
  %1149 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1147)
          to label %1150 unwind label %.loopexit.split-lp792.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp

1150:                                             ; preds = %1148
  store i64 %1149, ptr %72, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %72)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #12
  %1151 = add nuw i64 %.0282502.4, 1
  %exitcond789.4.not = icmp eq i64 %1151, %.0281
  br i1 %exitcond789.4.not, label %._crit_edge504.4, label %.lr.ph503.4, !llvm.loop !47

._crit_edge504.4:                                 ; preds = %1150, %._crit_edge504.3.thread
  %1152 = call i64 @_ZNSt6chrono3_V212system_clock3nowEv() #12
  store i64 %1152, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #12
  %1153 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %1161 unwind label %1169

.lr.ph503:                                        ; preds = %.lr.ph503.preheader, %1159
  %.0282502 = phi i64 [ %1160, %1159 ], [ 0, %.lr.ph503.preheader ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #12
  %1154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %.0282502) #12
  %1155 = load i64, ptr %1154, align 8, !tbaa !9
  %1156 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1155)
          to label %1157 unwind label %.loopexit791

1157:                                             ; preds = %.lr.ph503
  %1158 = invoke noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3) %12, i64 noundef %1156)
          to label %1159 unwind label %.loopexit791

1159:                                             ; preds = %1157
  store i64 %1158, ptr %72, align 8, !tbaa !9
  call void @_Z17doNotOptimizeAwayImEvRKT_(ptr noundef nonnull align 8 dereferenceable(8) %72)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #12
  %1160 = add nuw i64 %.0282502, 1
  %exitcond789.not = icmp eq i64 %1160, %.0281
  br i1 %exitcond789.not, label %.lr.ph503.1, label %.lr.ph503, !llvm.loop !47

.loopexit791:                                     ; preds = %.lr.ph503, %1157
  %lpad.loopexit793 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp792

.loopexit.split-lp792.loopexit:                   ; preds = %1127, %.lr.ph503.1
  %lpad.loopexit795 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp792

.loopexit.split-lp792.loopexit.split-lp.loopexit: ; preds = %.lr.ph503.2, %1134
  %lpad.loopexit798 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp792

.loopexit.split-lp792.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %1141, %.lr.ph503.3
  %lpad.loopexit800 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp792

.loopexit.split-lp792.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %1148, %.lr.ph503.4
  %lpad.loopexit.split-lp801 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp792

.loopexit.split-lp792:                            ; preds = %.loopexit.split-lp792.loopexit, %.loopexit.split-lp792.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp792.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp792.loopexit.split-lp.loopexit, %.loopexit791
  %lpad.phi794 = phi { ptr, i32 } [ %lpad.loopexit793, %.loopexit791 ], [ %lpad.loopexit795, %.loopexit.split-lp792.loopexit ], [ %lpad.loopexit798, %.loopexit.split-lp792.loopexit.split-lp.loopexit ], [ %lpad.loopexit800, %.loopexit.split-lp792.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp801, %.loopexit.split-lp792.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #12
  br label %1183

1161:                                             ; preds = %._crit_edge504.4
  store i64 %1153, ptr %73, align 8
  %1162 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %73)
  %1163 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 9) #12
  store i64 %1162, ptr %1163, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #12
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #12
  %1165 = invoke i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %1166 unwind label %1171

1166:                                             ; preds = %1161
  store i64 %1165, ptr %74, align 8
  %1167 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %74)
  %1168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.20, i64 noundef %1167, i64 noundef 0) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #12
  br i1 %612, label %.lr.ph508, label %._crit_edge509

._crit_edge509:                                   ; preds = %.lr.ph508, %1166
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #12
  ret i32 0

1169:                                             ; preds = %._crit_edge504.4
  %1170 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #12
  br label %1183

1171:                                             ; preds = %1161
  %1172 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #12
  br label %1183

.lr.ph508:                                        ; preds = %1166, %.lr.ph508
  %.0506 = phi i64 [ %1182, %.lr.ph508 ], [ 1, %1166 ]
  %1173 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef 0) #12
  %1175 = load i64, ptr %1174, align 8, !tbaa !9
  %1176 = uitofp i64 %1175 to double
  %1177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80) %13, i64 noundef %.0506) #12
  %1178 = load i64, ptr %1177, align 8, !tbaa !9
  %1179 = uitofp i64 %1178 to double
  %1180 = fdiv double %1176, %1179
  %1181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1173, ptr noundef nonnull @.str.21, i64 noundef %.0506, double noundef %1180) #14
  %1182 = add nuw i64 %.0506, 1
  %exitcond803.not = icmp eq i64 %1182, %611
  br i1 %exitcond803.not, label %._crit_edge509, label %.lr.ph508, !llvm.loop !48

1183:                                             ; preds = %1171, %1169, %.loopexit.split-lp792, %1121, %1109, %1107, %.loopexit.split-lp777, %1056, %1044, %1042, %.loopexit.split-lp762, %996, %985, %983, %.loopexit.split-lp747, %937, %926, %924, %.loopexit.split-lp732, %879, %877, %.loopexit.split-lp718, %829, %817, %815, %.loopexit.split-lp703, %769, %758, %756, %.loopexit.split-lp688, %705, %693, %691, %.loopexit.split-lp673, %640, %616, %614, %.loopexit.split-lp657, %573, %561, %559, %.loopexit.split-lp642, %518, %507, %505, %.loopexit.split-lp627, %464, %452, %450, %414, %403, %401, %.loopexit.split-lp609, %361, %359, %.loopexit.split-lp595, %321, %309, %307, %.loopexit.split-lp580, %266, %255, %253, %.loopexit.split-lp565, %212, %200, %198, %.loopexit.split-lp, %157, %145, %143
  %.pn = phi { ptr, i32 } [ %158, %157 ], [ %lpad.phi, %.loopexit.split-lp ], [ %213, %212 ], [ %lpad.phi567, %.loopexit.split-lp565 ], [ %267, %266 ], [ %lpad.phi582, %.loopexit.split-lp580 ], [ %322, %321 ], [ %lpad.phi597, %.loopexit.split-lp595 ], [ %lpad.phi611, %.loopexit.split-lp609 ], [ %415, %414 ], [ %465, %464 ], [ %lpad.phi629, %.loopexit.split-lp627 ], [ %519, %518 ], [ %lpad.phi644, %.loopexit.split-lp642 ], [ %574, %573 ], [ %lpad.phi659, %.loopexit.split-lp657 ], [ %641, %640 ], [ %lpad.phi675, %.loopexit.split-lp673 ], [ %706, %705 ], [ %lpad.phi690, %.loopexit.split-lp688 ], [ %770, %769 ], [ %lpad.phi705, %.loopexit.split-lp703 ], [ %830, %829 ], [ %lpad.phi720, %.loopexit.split-lp718 ], [ %lpad.phi734, %.loopexit.split-lp732 ], [ %938, %937 ], [ %lpad.phi749, %.loopexit.split-lp747 ], [ %997, %996 ], [ %lpad.phi764, %.loopexit.split-lp762 ], [ %1057, %1056 ], [ %lpad.phi779, %.loopexit.split-lp777 ], [ %1122, %1121 ], [ %lpad.phi794, %.loopexit.split-lp792 ], [ %1172, %1171 ], [ %1170, %1169 ], [ %1110, %1109 ], [ %1108, %1107 ], [ %1045, %1044 ], [ %1043, %1042 ], [ %986, %985 ], [ %984, %983 ], [ %927, %926 ], [ %925, %924 ], [ %880, %879 ], [ %878, %877 ], [ %818, %817 ], [ %816, %815 ], [ %759, %758 ], [ %757, %756 ], [ %694, %693 ], [ %692, %691 ], [ %617, %616 ], [ %615, %614 ], [ %562, %561 ], [ %560, %559 ], [ %508, %507 ], [ %506, %505 ], [ %453, %452 ], [ %451, %450 ], [ %404, %403 ], [ %402, %401 ], [ %362, %361 ], [ %360, %359 ], [ %310, %309 ], [ %308, %307 ], [ %256, %255 ], [ %254, %253 ], [ %201, %200 ], [ %199, %198 ], [ %146, %145 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #12
  br label %1184

1184:                                             ; preds = %1183, %93
  %.pn.pn = phi { ptr, i32 } [ %.pn, %1183 ], [ %94, %93 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #12
  resume { ptr, i32 } %.pn.pn
}

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

; Function Attrs: mustprogress nofree nounwind willreturn
declare i64 @strtoull(ptr noundef readonly, ptr nocapture noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6sketch4hash8WangHashC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash8WangHashclEm(ptr noundef nonnull align 1 dereferenceable(1), i64 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash16MultiplyAddXoRotILm33EEC2Emm(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash14MultiplyAddXorC2Emm(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash11XorMultiplyC2Emm(ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEC2Emm(ptr noundef nonnull align 8 dereferenceable(104), i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EEC2Em(ptr noundef nonnull align 4 dereferenceable(48), i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6sketch4hash10MurFinHashC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEC2Emm(ptr noundef nonnull align 8 dereferenceable(128), i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6sketch4hash8CEHasherC2IJEEEDpOT_(ptr noundef nonnull align 1 dereferenceable(3)) unnamed_addr #5 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) #6

; Function Attrs: nounwind
declare i64 @_ZNSt6chrono3_V212system_clock3nowEv() local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorImSaImEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_Z15irving_inv_hashm(i64 noundef) local_unnamed_addr #4

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #8

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

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZNSt6chronomiINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000000000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt5arrayImLm10EEixEm(ptr noundef nonnull align 8 dereferenceable(80), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #9

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEE7inverseImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS2_INS3_7bit_xorImEES8_EENS2_INS0_3RotILm33ELb1EEENSA_ILm33ELb0EEEEEEclImEET_SG_(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEE7inverseImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op4plusImEES5_EENS2_INS3_10multipliesImEES8_EENS2_INS3_7bit_xorImEESB_EEEclImEET_SF_(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEE7inverseImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48), i64 noundef) local_unnamed_addr #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash15FusedReversibleINS0_4InvHINS0_2op7bit_xorImEES5_EENS2_INS3_10multipliesImEES8_EEEclImEET_SC_(ptr noundef nonnull align 8 dereferenceable(48), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEE7inverseImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_4InvHINS0_2op10multipliesImEES5_EENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm16EEEEclImEET_SD_(ptr noundef nonnull align 8 dereferenceable(104), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash30KWiseIndependentPolynomialHashILm4EEclEm(ptr noundef nonnull align 4 dereferenceable(48), i64 noundef) local_unnamed_addr #5 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash10MurFinHash7inverseEm(ptr noundef nonnull align 1 dereferenceable(1), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash10MurFinHashclEm(ptr noundef nonnull align 1 dereferenceable(1), i64 noundef) local_unnamed_addr #4 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEE7inverseImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash16FusedReversible3INS0_11XorMultiplyENS0_3RotILm33ELb1EEENS0_16MultiplyAddXoRotILm31EEEEclImEET_S9_(ptr noundef nonnull align 8 dereferenceable(128), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEE7inverseImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: alwaysinline mustprogress uwtable
declare dso_local noundef i64 @_ZNK6sketch4hash8CEIFusedINS0_6CEIXORILm5998667303413223319EEEJNS0_6CEIMulILm11139748780990796413EEENS2_ILm7573538829409257338EEEEEclImEET_S9_(ptr noundef nonnull align 1 dereferenceable(3), i64 noundef) local_unnamed_addr #10 align 2

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable
declare dso_local noundef i64 @_ZNKSt5arrayImLm10EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #11 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN6sketch4hash30KWiseIndependentPolynomialHashILm4EE7inverseEm(ptr noundef nonnull align 4 dereferenceable(48), i64 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

attributes #0 = { mustprogress norecurse 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nofree nounwind willreturn "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 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 #4 = { alwaysinline 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 #5 = { 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 #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #7 = { nounwind "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 #8 = { noreturn nounwind "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 #9 = { nofree nounwind "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 #10 = { alwaysinline 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 #11 = { mustprogress nofree nosync nounwind willreturn memory(none) 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 #12 = { nounwind }
attributes #13 = { noreturn nounwind }
attributes #14 = { cold nounwind }
attributes #15 = { nounwind willreturn memory(none) }

!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, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = distinct !{!37, !12}
!38 = distinct !{!38, !12}
!39 = distinct !{!39, !12}
!40 = distinct !{!40, !12}
!41 = distinct !{!41, !12}
!42 = distinct !{!42, !12}
!43 = distinct !{!43, !12}
!44 = distinct !{!44, !12}
!45 = distinct !{!45, !12}
!46 = distinct !{!46, !12}
!47 = distinct !{!47, !12}
!48 = distinct !{!48, !12}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass