; LLVM IR from seq-lang/seq :: runtime/sw (ksw2_extd2_sse)

; 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.ksw_extz_t = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr }

@.str = external hidden unnamed_addr constant [24 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [76 x i8], align 1
@__PRETTY_FUNCTION__.ksw_extd2_sse = external hidden unnamed_addr constant [161 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @ksw_extd2_sse(ptr noundef %0, i32 noundef %1, ptr noundef %2, i32 noundef %3, ptr noundef %4, i8 noundef signext %5, ptr noundef %6, i8 noundef signext %7, i8 noundef signext %8, i8 noundef signext %9, i8 noundef signext %10, i32 noundef %11, i32 noundef %12, i32 noundef %13, i32 noundef %14, ptr noundef %15) #0 {
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i8, align 1
  %23 = alloca ptr, align 8
  %24 = alloca i8, align 1
  %25 = alloca i8, align 1
  %26 = alloca i8, align 1
  %27 = alloca i8, align 1
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca ptr, align 8
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca <2 x i64>, align 16
  %59 = alloca <2 x i64>, align 16
  %60 = alloca <2 x i64>, align 16
  %61 = alloca <2 x i64>, align 16
  %62 = alloca <2 x i64>, align 16
  %63 = alloca <2 x i64>, align 16
  %64 = alloca <2 x i64>, align 16
  %65 = alloca <2 x i64>, align 16
  %66 = alloca <2 x i64>, align 16
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca ptr, align 8
  %70 = alloca ptr, align 8
  %71 = alloca ptr, align 8
  %72 = alloca ptr, align 8
  %73 = alloca ptr, align 8
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i8, align 1
  %83 = alloca i8, align 1
  %84 = alloca i8, align 1
  %85 = alloca ptr, align 8
  %86 = alloca ptr, align 8
  %87 = alloca ptr, align 8
  %88 = alloca ptr, align 8
  %89 = alloca ptr, align 8
  %90 = alloca <2 x i64>, align 16
  %91 = alloca <2 x i64>, align 16
  %92 = alloca <2 x i64>, align 16
  %93 = alloca <2 x i64>, align 16
  %94 = alloca <2 x i64>, align 16
  %95 = alloca <2 x i64>, align 16
  %96 = alloca <2 x i64>, align 16
  %97 = alloca <2 x i64>, align 16
  %98 = alloca <2 x i64>, align 16
  %99 = alloca <2 x i64>, align 16
  %100 = alloca <2 x i64>, align 16
  %101 = alloca <2 x i64>, align 16
  %102 = alloca <2 x i64>, align 16
  %103 = alloca <2 x i64>, align 16
  %104 = alloca <2 x i64>, align 16
  %105 = alloca <2 x i64>, align 16
  %106 = alloca <2 x i64>, align 16
  %107 = alloca ptr, align 8
  %108 = alloca <2 x i64>, align 16
  %109 = alloca <2 x i64>, align 16
  %110 = alloca <2 x i64>, align 16
  %111 = alloca <2 x i64>, align 16
  %112 = alloca <2 x i64>, align 16
  %113 = alloca <2 x i64>, align 16
  %114 = alloca <2 x i64>, align 16
  %115 = alloca <2 x i64>, align 16
  %116 = alloca <2 x i64>, align 16
  %117 = alloca <2 x i64>, align 16
  %118 = alloca <2 x i64>, align 16
  %119 = alloca ptr, align 8
  %120 = alloca <2 x i64>, align 16
  %121 = alloca <2 x i64>, align 16
  %122 = alloca <2 x i64>, align 16
  %123 = alloca <2 x i64>, align 16
  %124 = alloca <2 x i64>, align 16
  %125 = alloca <2 x i64>, align 16
  %126 = alloca <2 x i64>, align 16
  %127 = alloca <2 x i64>, align 16
  %128 = alloca <2 x i64>, align 16
  %129 = alloca <2 x i64>, align 16
  %130 = alloca <2 x i64>, align 16
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca [4 x i32], align 16
  %134 = alloca [4 x i32], align 16
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca <2 x i64>, align 16
  %138 = alloca <2 x i64>, align 16
  %139 = alloca <2 x i64>, align 16
  %140 = alloca <2 x i64>, align 16
  %141 = alloca <2 x i64>, align 16
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  store ptr %0, ptr %17, align 8, !tbaa !5
  store i32 %1, ptr %18, align 4, !tbaa !9
  store ptr %2, ptr %19, align 8, !tbaa !5
  store i32 %3, ptr %20, align 4, !tbaa !9
  store ptr %4, ptr %21, align 8, !tbaa !5
  store i8 %5, ptr %22, align 1, !tbaa !11
  store ptr %6, ptr %23, align 8, !tbaa !5
  store i8 %7, ptr %24, align 1, !tbaa !11
  store i8 %8, ptr %25, align 1, !tbaa !11
  store i8 %9, ptr %26, align 1, !tbaa !11
  store i8 %10, ptr %27, align 1, !tbaa !11
  store i32 %11, ptr %28, align 4, !tbaa !9
  store i32 %12, ptr %29, align 4, !tbaa !9
  store i32 %13, ptr %30, align 4, !tbaa !9
  store i32 %14, ptr %31, align 4, !tbaa !9
  store ptr %15, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %145 = load i8, ptr %24, align 1, !tbaa !11
  %146 = sext i8 %145 to i32
  %147 = load i8, ptr %25, align 1, !tbaa !11
  %148 = sext i8 %147 to i32
  %149 = add nsw i32 %146, %148
  store i32 %149, ptr %35, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  store ptr null, ptr %37, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #10
  store ptr null, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %150 = load i32, ptr %31, align 4, !tbaa !9
  %151 = and i32 %150, 1
  %152 = icmp ne i32 %151, 0
  %153 = xor i1 %152, true
  %154 = zext i1 %153 to i32
  store i32 %154, ptr %49, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %155 = load i32, ptr %31, align 4, !tbaa !9
  %156 = and i32 %155, 8
  %157 = icmp ne i32 %156, 0
  %158 = xor i1 %157, true
  %159 = xor i1 %158, true
  %160 = zext i1 %159 to i32
  store i32 %160, ptr %50, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #10
  store ptr null, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  store i32 0, ptr %52, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  store i32 0, ptr %53, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  store ptr null, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %64) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  store ptr null, ptr %74, align 8, !tbaa !5
  %161 = load ptr, ptr %32, align 8, !tbaa !5
  call void @_ZL14ksw_reset_extzP10ksw_extz_t(ptr noundef %161)
  %162 = load i8, ptr %22, align 1, !tbaa !11
  %163 = sext i8 %162 to i32
  %164 = icmp sle i32 %163, 1
  br i1 %164, label %171, label %165

165:                                              ; preds = %16
  %166 = load i32, ptr %18, align 4, !tbaa !9
  %167 = icmp sle i32 %166, 0
  br i1 %167, label %171, label %168

168:                                              ; preds = %165
  %169 = load i32, ptr %20, align 4, !tbaa !9
  %170 = icmp sle i32 %169, 0
  br i1 %170, label %171, label %172

171:                                              ; preds = %168, %165, %16
  store i32 1, ptr %75, align 4
  br label %2338

172:                                              ; preds = %168
  %173 = load i8, ptr %26, align 1, !tbaa !11
  %174 = sext i8 %173 to i32
  %175 = load i8, ptr %27, align 1, !tbaa !11
  %176 = sext i8 %175 to i32
  %177 = add nsw i32 %174, %176
  %178 = load i8, ptr %24, align 1, !tbaa !11
  %179 = sext i8 %178 to i32
  %180 = load i8, ptr %25, align 1, !tbaa !11
  %181 = sext i8 %180 to i32
  %182 = add nsw i32 %179, %181
  %183 = icmp slt i32 %177, %182
  br i1 %183, label %184, label %195

184:                                              ; preds = %172
  %185 = load i8, ptr %24, align 1, !tbaa !11
  %186 = sext i8 %185 to i32
  store i32 %186, ptr %34, align 4, !tbaa !9
  %187 = load i8, ptr %26, align 1, !tbaa !11
  store i8 %187, ptr %24, align 1, !tbaa !11
  %188 = load i32, ptr %34, align 4, !tbaa !9
  %189 = trunc i32 %188 to i8
  store i8 %189, ptr %26, align 1, !tbaa !11
  %190 = load i8, ptr %25, align 1, !tbaa !11
  %191 = sext i8 %190 to i32
  store i32 %191, ptr %34, align 4, !tbaa !9
  %192 = load i8, ptr %27, align 1, !tbaa !11
  store i8 %192, ptr %25, align 1, !tbaa !11
  %193 = load i32, ptr %34, align 4, !tbaa !9
  %194 = trunc i32 %193 to i8
  store i8 %194, ptr %27, align 1, !tbaa !11
  br label %195

195:                                              ; preds = %184, %172
  %196 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 0)
  store <2 x i64> %196, ptr %62, align 16, !tbaa !11
  %197 = load i8, ptr %24, align 1, !tbaa !11
  %198 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %197)
  store <2 x i64> %198, ptr %58, align 16, !tbaa !11
  %199 = load i8, ptr %26, align 1, !tbaa !11
  %200 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %199)
  store <2 x i64> %200, ptr %59, align 16, !tbaa !11
  %201 = load i8, ptr %24, align 1, !tbaa !11
  %202 = sext i8 %201 to i32
  %203 = load i8, ptr %25, align 1, !tbaa !11
  %204 = sext i8 %203 to i32
  %205 = add nsw i32 %202, %204
  %206 = trunc i32 %205 to i8
  %207 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %206)
  store <2 x i64> %207, ptr %60, align 16, !tbaa !11
  %208 = load i8, ptr %26, align 1, !tbaa !11
  %209 = sext i8 %208 to i32
  %210 = load i8, ptr %27, align 1, !tbaa !11
  %211 = sext i8 %210 to i32
  %212 = add nsw i32 %209, %211
  %213 = trunc i32 %212 to i8
  %214 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %213)
  store <2 x i64> %214, ptr %61, align 16, !tbaa !11
  %215 = load ptr, ptr %23, align 8, !tbaa !5
  %216 = getelementptr inbounds i8, ptr %215, i64 0
  %217 = load i8, ptr %216, align 1, !tbaa !11
  %218 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %217)
  store <2 x i64> %218, ptr %63, align 16, !tbaa !11
  %219 = load ptr, ptr %23, align 8, !tbaa !5
  %220 = getelementptr inbounds i8, ptr %219, i64 1
  %221 = load i8, ptr %220, align 1, !tbaa !11
  %222 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %221)
  store <2 x i64> %222, ptr %64, align 16, !tbaa !11
  %223 = load ptr, ptr %23, align 8, !tbaa !5
  %224 = load i8, ptr %22, align 1, !tbaa !11
  %225 = sext i8 %224 to i32
  %226 = load i8, ptr %22, align 1, !tbaa !11
  %227 = sext i8 %226 to i32
  %228 = mul nsw i32 %225, %227
  %229 = sub nsw i32 %228, 1
  %230 = sext i32 %229 to i64
  %231 = getelementptr inbounds i8, ptr %223, i64 %230
  %232 = load i8, ptr %231, align 1, !tbaa !11
  %233 = sext i8 %232 to i32
  %234 = icmp eq i32 %233, 0
  br i1 %234, label %235, label %241

235:                                              ; preds = %195
  %236 = load i8, ptr %27, align 1, !tbaa !11
  %237 = sext i8 %236 to i32
  %238 = sub nsw i32 0, %237
  %239 = trunc i32 %238 to i8
  %240 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %239)
  br label %253

241:                                              ; preds = %195
  %242 = load ptr, ptr %23, align 8, !tbaa !5
  %243 = load i8, ptr %22, align 1, !tbaa !11
  %244 = sext i8 %243 to i32
  %245 = load i8, ptr %22, align 1, !tbaa !11
  %246 = sext i8 %245 to i32
  %247 = mul nsw i32 %244, %246
  %248 = sub nsw i32 %247, 1
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds i8, ptr %242, i64 %249
  %251 = load i8, ptr %250, align 1, !tbaa !11
  %252 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %251)
  br label %253

253:                                              ; preds = %241, %235
  %254 = phi <2 x i64> [ %240, %235 ], [ %252, %241 ]
  store <2 x i64> %254, ptr %66, align 16, !tbaa !11
  %255 = load i8, ptr %22, align 1, !tbaa !11
  %256 = sext i8 %255 to i32
  %257 = sub nsw i32 %256, 1
  %258 = trunc i32 %257 to i8
  %259 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %258)
  store <2 x i64> %259, ptr %65, align 16, !tbaa !11
  %260 = load i32, ptr %28, align 4, !tbaa !9
  %261 = icmp slt i32 %260, 0
  br i1 %261, label %262, label %272

262:                                              ; preds = %253
  %263 = load i32, ptr %20, align 4, !tbaa !9
  %264 = load i32, ptr %18, align 4, !tbaa !9
  %265 = icmp sgt i32 %263, %264
  br i1 %265, label %266, label %268

266:                                              ; preds = %262
  %267 = load i32, ptr %20, align 4, !tbaa !9
  br label %270

268:                                              ; preds = %262
  %269 = load i32, ptr %18, align 4, !tbaa !9
  br label %270

270:                                              ; preds = %268, %266
  %271 = phi i32 [ %267, %266 ], [ %269, %268 ]
  store i32 %271, ptr %28, align 4, !tbaa !9
  br label %272

272:                                              ; preds = %270, %253
  %273 = load i32, ptr %28, align 4, !tbaa !9
  store i32 %273, ptr %44, align 4, !tbaa !9
  store i32 %273, ptr %43, align 4, !tbaa !9
  %274 = load i32, ptr %20, align 4, !tbaa !9
  %275 = add nsw i32 %274, 15
  %276 = sdiv i32 %275, 16
  store i32 %276, ptr %39, align 4, !tbaa !9
  %277 = load i32, ptr %18, align 4, !tbaa !9
  %278 = load i32, ptr %20, align 4, !tbaa !9
  %279 = icmp slt i32 %277, %278
  br i1 %279, label %280, label %282

280:                                              ; preds = %272
  %281 = load i32, ptr %18, align 4, !tbaa !9
  br label %284

282:                                              ; preds = %272
  %283 = load i32, ptr %20, align 4, !tbaa !9
  br label %284

284:                                              ; preds = %282, %280
  %285 = phi i32 [ %281, %280 ], [ %283, %282 ]
  store i32 %285, ptr %36, align 4, !tbaa !9
  %286 = load i32, ptr %36, align 4, !tbaa !9
  %287 = load i32, ptr %28, align 4, !tbaa !9
  %288 = add nsw i32 %287, 1
  %289 = icmp slt i32 %286, %288
  br i1 %289, label %290, label %292

290:                                              ; preds = %284
  %291 = load i32, ptr %36, align 4, !tbaa !9
  br label %295

292:                                              ; preds = %284
  %293 = load i32, ptr %28, align 4, !tbaa !9
  %294 = add nsw i32 %293, 1
  br label %295

295:                                              ; preds = %292, %290
  %296 = phi i32 [ %291, %290 ], [ %294, %292 ]
  %297 = add nsw i32 %296, 15
  %298 = sdiv i32 %297, 16
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr %36, align 4, !tbaa !9
  %300 = load i32, ptr %18, align 4, !tbaa !9
  %301 = add nsw i32 %300, 15
  %302 = sdiv i32 %301, 16
  store i32 %302, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %34, align 4, !tbaa !9
  %303 = load ptr, ptr %23, align 8, !tbaa !5
  %304 = getelementptr inbounds i8, ptr %303, i64 0
  %305 = load i8, ptr %304, align 1, !tbaa !11
  %306 = sext i8 %305 to i32
  store i32 %306, ptr %45, align 4, !tbaa !9
  %307 = load ptr, ptr %23, align 8, !tbaa !5
  %308 = getelementptr inbounds i8, ptr %307, i64 1
  %309 = load i8, ptr %308, align 1, !tbaa !11
  %310 = sext i8 %309 to i32
  store i32 %310, ptr %46, align 4, !tbaa !9
  br label %311

311:                                              ; preds = %358, %295
  %312 = load i32, ptr %34, align 4, !tbaa !9
  %313 = load i8, ptr %22, align 1, !tbaa !11
  %314 = sext i8 %313 to i32
  %315 = load i8, ptr %22, align 1, !tbaa !11
  %316 = sext i8 %315 to i32
  %317 = mul nsw i32 %314, %316
  %318 = icmp slt i32 %312, %317
  br i1 %318, label %319, label %361

319:                                              ; preds = %311
  %320 = load i32, ptr %45, align 4, !tbaa !9
  %321 = load ptr, ptr %23, align 8, !tbaa !5
  %322 = load i32, ptr %34, align 4, !tbaa !9
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds i8, ptr %321, i64 %323
  %325 = load i8, ptr %324, align 1, !tbaa !11
  %326 = sext i8 %325 to i32
  %327 = icmp sgt i32 %320, %326
  br i1 %327, label %328, label %330

328:                                              ; preds = %319
  %329 = load i32, ptr %45, align 4, !tbaa !9
  br label %337

330:                                              ; preds = %319
  %331 = load ptr, ptr %23, align 8, !tbaa !5
  %332 = load i32, ptr %34, align 4, !tbaa !9
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds i8, ptr %331, i64 %333
  %335 = load i8, ptr %334, align 1, !tbaa !11
  %336 = sext i8 %335 to i32
  br label %337

337:                                              ; preds = %330, %328
  %338 = phi i32 [ %329, %328 ], [ %336, %330 ]
  store i32 %338, ptr %45, align 4, !tbaa !9
  %339 = load i32, ptr %46, align 4, !tbaa !9
  %340 = load ptr, ptr %23, align 8, !tbaa !5
  %341 = load i32, ptr %34, align 4, !tbaa !9
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds i8, ptr %340, i64 %342
  %344 = load i8, ptr %343, align 1, !tbaa !11
  %345 = sext i8 %344 to i32
  %346 = icmp slt i32 %339, %345
  br i1 %346, label %347, label %349

347:                                              ; preds = %337
  %348 = load i32, ptr %46, align 4, !tbaa !9
  br label %356

349:                                              ; preds = %337
  %350 = load ptr, ptr %23, align 8, !tbaa !5
  %351 = load i32, ptr %34, align 4, !tbaa !9
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds i8, ptr %350, i64 %352
  %354 = load i8, ptr %353, align 1, !tbaa !11
  %355 = sext i8 %354 to i32
  br label %356

356:                                              ; preds = %349, %347
  %357 = phi i32 [ %348, %347 ], [ %355, %349 ]
  store i32 %357, ptr %46, align 4, !tbaa !9
  br label %358

358:                                              ; preds = %356
  %359 = load i32, ptr %34, align 4, !tbaa !9
  %360 = add nsw i32 %359, 1
  store i32 %360, ptr %34, align 4, !tbaa !9
  br label %311, !llvm.loop !12

361:                                              ; preds = %311
  %362 = load i32, ptr %46, align 4, !tbaa !9
  %363 = sub nsw i32 0, %362
  %364 = load i8, ptr %24, align 1, !tbaa !11
  %365 = sext i8 %364 to i32
  %366 = load i8, ptr %25, align 1, !tbaa !11
  %367 = sext i8 %366 to i32
  %368 = add nsw i32 %365, %367
  %369 = mul nsw i32 2, %368
  %370 = icmp sgt i32 %363, %369
  br i1 %370, label %371, label %372

371:                                              ; preds = %361
  store i32 1, ptr %75, align 4
  br label %2338

372:                                              ; preds = %361
  %373 = load i8, ptr %25, align 1, !tbaa !11
  %374 = sext i8 %373 to i32
  %375 = load i8, ptr %27, align 1, !tbaa !11
  %376 = sext i8 %375 to i32
  %377 = icmp ne i32 %374, %376
  br i1 %377, label %378, label %391

378:                                              ; preds = %372
  %379 = load i8, ptr %26, align 1, !tbaa !11
  %380 = sext i8 %379 to i32
  %381 = load i8, ptr %24, align 1, !tbaa !11
  %382 = sext i8 %381 to i32
  %383 = sub nsw i32 %380, %382
  %384 = load i8, ptr %25, align 1, !tbaa !11
  %385 = sext i8 %384 to i32
  %386 = load i8, ptr %27, align 1, !tbaa !11
  %387 = sext i8 %386 to i32
  %388 = sub nsw i32 %385, %387
  %389 = sdiv i32 %383, %388
  %390 = sub nsw i32 %389, 1
  br label %392

391:                                              ; preds = %372
  br label %392

392:                                              ; preds = %391, %378
  %393 = phi i32 [ %390, %378 ], [ 0, %391 ]
  store i32 %393, ptr %47, align 4, !tbaa !9
  %394 = load i8, ptr %26, align 1, !tbaa !11
  %395 = sext i8 %394 to i32
  %396 = load i8, ptr %27, align 1, !tbaa !11
  %397 = sext i8 %396 to i32
  %398 = add nsw i32 %395, %397
  %399 = load i32, ptr %47, align 4, !tbaa !9
  %400 = load i8, ptr %27, align 1, !tbaa !11
  %401 = sext i8 %400 to i32
  %402 = mul nsw i32 %399, %401
  %403 = add nsw i32 %398, %402
  %404 = load i8, ptr %24, align 1, !tbaa !11
  %405 = sext i8 %404 to i32
  %406 = load i8, ptr %25, align 1, !tbaa !11
  %407 = sext i8 %406 to i32
  %408 = add nsw i32 %405, %407
  %409 = load i32, ptr %47, align 4, !tbaa !9
  %410 = load i8, ptr %25, align 1, !tbaa !11
  %411 = sext i8 %410 to i32
  %412 = mul nsw i32 %409, %411
  %413 = add nsw i32 %408, %412
  %414 = icmp sgt i32 %403, %413
  br i1 %414, label %415, label %418

415:                                              ; preds = %392
  %416 = load i32, ptr %47, align 4, !tbaa !9
  %417 = add nsw i32 %416, 1
  store i32 %417, ptr %47, align 4, !tbaa !9
  br label %418

418:                                              ; preds = %415, %392
  %419 = load i32, ptr %47, align 4, !tbaa !9
  %420 = load i8, ptr %25, align 1, !tbaa !11
  %421 = sext i8 %420 to i32
  %422 = load i8, ptr %27, align 1, !tbaa !11
  %423 = sext i8 %422 to i32
  %424 = sub nsw i32 %421, %423
  %425 = mul nsw i32 %419, %424
  %426 = load i8, ptr %26, align 1, !tbaa !11
  %427 = sext i8 %426 to i32
  %428 = load i8, ptr %24, align 1, !tbaa !11
  %429 = sext i8 %428 to i32
  %430 = sub nsw i32 %427, %429
  %431 = sub nsw i32 %425, %430
  %432 = load i8, ptr %27, align 1, !tbaa !11
  %433 = sext i8 %432 to i32
  %434 = sub nsw i32 %431, %433
  store i32 %434, ptr %48, align 4, !tbaa !9
  %435 = load i32, ptr %39, align 4, !tbaa !9
  %436 = mul nsw i32 %435, 8
  %437 = load i32, ptr %40, align 4, !tbaa !9
  %438 = add nsw i32 %436, %437
  %439 = add nsw i32 %438, 1
  %440 = sext i32 %439 to i64
  %441 = call ptr @seq_calloc_atomic(i64 noundef %440, i64 noundef 16)
  store ptr %441, ptr %56, align 8, !tbaa !5
  %442 = load ptr, ptr %56, align 8, !tbaa !5
  %443 = ptrtoint ptr %442 to i64
  %444 = add i64 %443, 15
  %445 = lshr i64 %444, 4
  %446 = shl i64 %445, 4
  %447 = inttoptr i64 %446 to ptr
  store ptr %447, ptr %67, align 8, !tbaa !5
  %448 = load ptr, ptr %67, align 8, !tbaa !5
  %449 = load i32, ptr %39, align 4, !tbaa !9
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds <2 x i64>, ptr %448, i64 %450
  store ptr %451, ptr %68, align 8, !tbaa !5
  %452 = load ptr, ptr %68, align 8, !tbaa !5
  %453 = load i32, ptr %39, align 4, !tbaa !9
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds <2 x i64>, ptr %452, i64 %454
  store ptr %455, ptr %69, align 8, !tbaa !5
  %456 = load ptr, ptr %69, align 8, !tbaa !5
  %457 = load i32, ptr %39, align 4, !tbaa !9
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds <2 x i64>, ptr %456, i64 %458
  store ptr %459, ptr %70, align 8, !tbaa !5
  %460 = load ptr, ptr %70, align 8, !tbaa !5
  %461 = load i32, ptr %39, align 4, !tbaa !9
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds <2 x i64>, ptr %460, i64 %462
  store ptr %463, ptr %71, align 8, !tbaa !5
  %464 = load ptr, ptr %71, align 8, !tbaa !5
  %465 = load i32, ptr %39, align 4, !tbaa !9
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds <2 x i64>, ptr %464, i64 %466
  store ptr %467, ptr %72, align 8, !tbaa !5
  %468 = load ptr, ptr %72, align 8, !tbaa !5
  %469 = load i32, ptr %39, align 4, !tbaa !9
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds <2 x i64>, ptr %468, i64 %470
  store ptr %471, ptr %73, align 8, !tbaa !5
  %472 = load ptr, ptr %73, align 8, !tbaa !5
  %473 = load i32, ptr %39, align 4, !tbaa !9
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds <2 x i64>, ptr %472, i64 %474
  store ptr %475, ptr %55, align 8, !tbaa !5
  %476 = load ptr, ptr %55, align 8, !tbaa !5
  %477 = load i32, ptr %39, align 4, !tbaa !9
  %478 = mul nsw i32 %477, 16
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds i8, ptr %476, i64 %479
  store ptr %480, ptr %54, align 8, !tbaa !5
  %481 = load ptr, ptr %67, align 8, !tbaa !5
  %482 = load i8, ptr %24, align 1, !tbaa !11
  %483 = sext i8 %482 to i32
  %484 = sub nsw i32 0, %483
  %485 = load i8, ptr %25, align 1, !tbaa !11
  %486 = sext i8 %485 to i32
  %487 = sub nsw i32 %484, %486
  %488 = trunc i32 %487 to i8
  %489 = load i32, ptr %39, align 4, !tbaa !9
  %490 = mul nsw i32 %489, 16
  %491 = sext i32 %490 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %481, i8 %488, i64 %491, i1 false)
  %492 = load ptr, ptr %68, align 8, !tbaa !5
  %493 = load i8, ptr %24, align 1, !tbaa !11
  %494 = sext i8 %493 to i32
  %495 = sub nsw i32 0, %494
  %496 = load i8, ptr %25, align 1, !tbaa !11
  %497 = sext i8 %496 to i32
  %498 = sub nsw i32 %495, %497
  %499 = trunc i32 %498 to i8
  %500 = load i32, ptr %39, align 4, !tbaa !9
  %501 = mul nsw i32 %500, 16
  %502 = sext i32 %501 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %492, i8 %499, i64 %502, i1 false)
  %503 = load ptr, ptr %69, align 8, !tbaa !5
  %504 = load i8, ptr %24, align 1, !tbaa !11
  %505 = sext i8 %504 to i32
  %506 = sub nsw i32 0, %505
  %507 = load i8, ptr %25, align 1, !tbaa !11
  %508 = sext i8 %507 to i32
  %509 = sub nsw i32 %506, %508
  %510 = trunc i32 %509 to i8
  %511 = load i32, ptr %39, align 4, !tbaa !9
  %512 = mul nsw i32 %511, 16
  %513 = sext i32 %512 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %503, i8 %510, i64 %513, i1 false)
  %514 = load ptr, ptr %70, align 8, !tbaa !5
  %515 = load i8, ptr %24, align 1, !tbaa !11
  %516 = sext i8 %515 to i32
  %517 = sub nsw i32 0, %516
  %518 = load i8, ptr %25, align 1, !tbaa !11
  %519 = sext i8 %518 to i32
  %520 = sub nsw i32 %517, %519
  %521 = trunc i32 %520 to i8
  %522 = load i32, ptr %39, align 4, !tbaa !9
  %523 = mul nsw i32 %522, 16
  %524 = sext i32 %523 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %514, i8 %521, i64 %524, i1 false)
  %525 = load ptr, ptr %71, align 8, !tbaa !5
  %526 = load i8, ptr %26, align 1, !tbaa !11
  %527 = sext i8 %526 to i32
  %528 = sub nsw i32 0, %527
  %529 = load i8, ptr %27, align 1, !tbaa !11
  %530 = sext i8 %529 to i32
  %531 = sub nsw i32 %528, %530
  %532 = trunc i32 %531 to i8
  %533 = load i32, ptr %39, align 4, !tbaa !9
  %534 = mul nsw i32 %533, 16
  %535 = sext i32 %534 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %525, i8 %532, i64 %535, i1 false)
  %536 = load ptr, ptr %72, align 8, !tbaa !5
  %537 = load i8, ptr %26, align 1, !tbaa !11
  %538 = sext i8 %537 to i32
  %539 = sub nsw i32 0, %538
  %540 = load i8, ptr %27, align 1, !tbaa !11
  %541 = sext i8 %540 to i32
  %542 = sub nsw i32 %539, %541
  %543 = trunc i32 %542 to i8
  %544 = load i32, ptr %39, align 4, !tbaa !9
  %545 = mul nsw i32 %544, 16
  %546 = sext i32 %545 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %536, i8 %543, i64 %546, i1 false)
  %547 = load i32, ptr %50, align 4, !tbaa !9
  %548 = icmp ne i32 %547, 0
  br i1 %548, label %569, label %549

549:                                              ; preds = %418
  %550 = load i32, ptr %39, align 4, !tbaa !9
  %551 = mul nsw i32 %550, 16
  %552 = mul nsw i32 %551, 4
  %553 = sext i32 %552 to i64
  %554 = call ptr @seq_alloc_atomic(i64 noundef %553)
  store ptr %554, ptr %51, align 8, !tbaa !5
  store i32 0, ptr %34, align 4, !tbaa !9
  br label %555

555:                                              ; preds = %565, %549
  %556 = load i32, ptr %34, align 4, !tbaa !9
  %557 = load i32, ptr %39, align 4, !tbaa !9
  %558 = mul nsw i32 %557, 16
  %559 = icmp slt i32 %556, %558
  br i1 %559, label %560, label %568

560:                                              ; preds = %555
  %561 = load ptr, ptr %51, align 8, !tbaa !5
  %562 = load i32, ptr %34, align 4, !tbaa !9
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds i32, ptr %561, i64 %563
  store i32 -1073741824, ptr %564, align 4, !tbaa !9
  br label %565

565:                                              ; preds = %560
  %566 = load i32, ptr %34, align 4, !tbaa !9
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr %34, align 4, !tbaa !9
  br label %555, !llvm.loop !14

568:                                              ; preds = %555
  br label %569

569:                                              ; preds = %568, %418
  %570 = load i32, ptr %49, align 4, !tbaa !9
  %571 = icmp ne i32 %570, 0
  br i1 %571, label %572, label %606

572:                                              ; preds = %569
  %573 = load i32, ptr %18, align 4, !tbaa !9
  %574 = load i32, ptr %20, align 4, !tbaa !9
  %575 = add nsw i32 %573, %574
  %576 = sub nsw i32 %575, 1
  %577 = sext i32 %576 to i64
  %578 = load i32, ptr %36, align 4, !tbaa !9
  %579 = sext i32 %578 to i64
  %580 = mul i64 %577, %579
  %581 = add i64 %580, 1
  %582 = mul i64 %581, 16
  %583 = call ptr @seq_alloc_atomic(i64 noundef %582)
  store ptr %583, ptr %57, align 8, !tbaa !5
  %584 = load ptr, ptr %57, align 8, !tbaa !5
  %585 = ptrtoint ptr %584 to i64
  %586 = add i64 %585, 15
  %587 = lshr i64 %586, 4
  %588 = shl i64 %587, 4
  %589 = inttoptr i64 %588 to ptr
  store ptr %589, ptr %74, align 8, !tbaa !5
  %590 = load i32, ptr %18, align 4, !tbaa !9
  %591 = load i32, ptr %20, align 4, !tbaa !9
  %592 = add nsw i32 %590, %591
  %593 = sub nsw i32 %592, 1
  %594 = sext i32 %593 to i64
  %595 = mul i64 %594, 4
  %596 = mul i64 %595, 2
  %597 = call ptr @seq_alloc_atomic(i64 noundef %596)
  store ptr %597, ptr %37, align 8, !tbaa !5
  %598 = load ptr, ptr %37, align 8, !tbaa !5
  %599 = load i32, ptr %18, align 4, !tbaa !9
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds i32, ptr %598, i64 %600
  %602 = load i32, ptr %20, align 4, !tbaa !9
  %603 = sext i32 %602 to i64
  %604 = getelementptr inbounds i32, ptr %601, i64 %603
  %605 = getelementptr inbounds i32, ptr %604, i64 -1
  store ptr %605, ptr %38, align 8, !tbaa !5
  br label %606

606:                                              ; preds = %572, %569
  store i32 0, ptr %34, align 4, !tbaa !9
  br label %607

607:                                              ; preds = %624, %606
  %608 = load i32, ptr %34, align 4, !tbaa !9
  %609 = load i32, ptr %18, align 4, !tbaa !9
  %610 = icmp slt i32 %608, %609
  br i1 %610, label %611, label %627

611:                                              ; preds = %607
  %612 = load ptr, ptr %19, align 8, !tbaa !5
  %613 = load i32, ptr %18, align 4, !tbaa !9
  %614 = sub nsw i32 %613, 1
  %615 = load i32, ptr %34, align 4, !tbaa !9
  %616 = sub nsw i32 %614, %615
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds i8, ptr %612, i64 %617
  %619 = load i8, ptr %618, align 1, !tbaa !11
  %620 = load ptr, ptr %54, align 8, !tbaa !5
  %621 = load i32, ptr %34, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds i8, ptr %620, i64 %622
  store i8 %619, ptr %623, align 1, !tbaa !11
  br label %624

624:                                              ; preds = %611
  %625 = load i32, ptr %34, align 4, !tbaa !9
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr %34, align 4, !tbaa !9
  br label %607, !llvm.loop !15

627:                                              ; preds = %607
  %628 = load ptr, ptr %55, align 8, !tbaa !5
  %629 = load ptr, ptr %21, align 8, !tbaa !5
  %630 = load i32, ptr %20, align 4, !tbaa !9
  %631 = sext i32 %630 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %628, ptr align 1 %629, i64 %631, i1 false)
  store i32 0, ptr %33, align 4, !tbaa !9
  store i32 -1, ptr %42, align 4, !tbaa !9
  store i32 -1, ptr %41, align 4, !tbaa !9
  br label %632

632:                                              ; preds = %2217, %627
  %633 = load i32, ptr %33, align 4, !tbaa !9
  %634 = load i32, ptr %18, align 4, !tbaa !9
  %635 = load i32, ptr %20, align 4, !tbaa !9
  %636 = add nsw i32 %634, %635
  %637 = sub nsw i32 %636, 1
  %638 = icmp slt i32 %633, %637
  br i1 %638, label %639, label %2220

639:                                              ; preds = %632
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  store i32 0, ptr %76, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %640 = load i32, ptr %20, align 4, !tbaa !9
  %641 = sub nsw i32 %640, 1
  store i32 %641, ptr %77, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %642 = load ptr, ptr %54, align 8, !tbaa !5
  %643 = load i32, ptr %18, align 4, !tbaa !9
  %644 = sub nsw i32 %643, 1
  %645 = load i32, ptr %33, align 4, !tbaa !9
  %646 = sub nsw i32 %644, %645
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds i8, ptr %642, i64 %647
  store ptr %648, ptr %85, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  %649 = load ptr, ptr %67, align 8, !tbaa !5
  store ptr %649, ptr %86, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %650 = load ptr, ptr %68, align 8, !tbaa !5
  store ptr %650, ptr %87, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #10
  %651 = load ptr, ptr %69, align 8, !tbaa !5
  store ptr %651, ptr %88, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #10
  %652 = load ptr, ptr %71, align 8, !tbaa !5
  store ptr %652, ptr %89, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %91) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %92) #10
  %653 = load i32, ptr %76, align 4, !tbaa !9
  %654 = load i32, ptr %33, align 4, !tbaa !9
  %655 = load i32, ptr %18, align 4, !tbaa !9
  %656 = sub nsw i32 %654, %655
  %657 = add nsw i32 %656, 1
  %658 = icmp slt i32 %653, %657
  br i1 %658, label %659, label %664

659:                                              ; preds = %639
  %660 = load i32, ptr %33, align 4, !tbaa !9
  %661 = load i32, ptr %18, align 4, !tbaa !9
  %662 = sub nsw i32 %660, %661
  %663 = add nsw i32 %662, 1
  store i32 %663, ptr %76, align 4, !tbaa !9
  br label %664

664:                                              ; preds = %659, %639
  %665 = load i32, ptr %77, align 4, !tbaa !9
  %666 = load i32, ptr %33, align 4, !tbaa !9
  %667 = icmp sgt i32 %665, %666
  br i1 %667, label %668, label %670

668:                                              ; preds = %664
  %669 = load i32, ptr %33, align 4, !tbaa !9
  store i32 %669, ptr %77, align 4, !tbaa !9
  br label %670

670:                                              ; preds = %668, %664
  %671 = load i32, ptr %76, align 4, !tbaa !9
  %672 = load i32, ptr %33, align 4, !tbaa !9
  %673 = load i32, ptr %44, align 4, !tbaa !9
  %674 = sub nsw i32 %672, %673
  %675 = add nsw i32 %674, 1
  %676 = ashr i32 %675, 1
  %677 = icmp slt i32 %671, %676
  br i1 %677, label %678, label %684

678:                                              ; preds = %670
  %679 = load i32, ptr %33, align 4, !tbaa !9
  %680 = load i32, ptr %44, align 4, !tbaa !9
  %681 = sub nsw i32 %679, %680
  %682 = add nsw i32 %681, 1
  %683 = ashr i32 %682, 1
  store i32 %683, ptr %76, align 4, !tbaa !9
  br label %684

684:                                              ; preds = %678, %670
  %685 = load i32, ptr %77, align 4, !tbaa !9
  %686 = load i32, ptr %33, align 4, !tbaa !9
  %687 = load i32, ptr %43, align 4, !tbaa !9
  %688 = add nsw i32 %686, %687
  %689 = ashr i32 %688, 1
  %690 = icmp sgt i32 %685, %689
  br i1 %690, label %691, label %696

691:                                              ; preds = %684
  %692 = load i32, ptr %33, align 4, !tbaa !9
  %693 = load i32, ptr %43, align 4, !tbaa !9
  %694 = add nsw i32 %692, %693
  %695 = ashr i32 %694, 1
  store i32 %695, ptr %77, align 4, !tbaa !9
  br label %696

696:                                              ; preds = %691, %684
  %697 = load i32, ptr %76, align 4, !tbaa !9
  %698 = load i32, ptr %77, align 4, !tbaa !9
  %699 = icmp sgt i32 %697, %698
  br i1 %699, label %700, label %705

700:                                              ; preds = %696
  %701 = load ptr, ptr %32, align 8, !tbaa !5
  %702 = load i32, ptr %701, align 8
  %703 = and i32 %702, 2147483647
  %704 = or i32 %703, -2147483648
  store i32 %704, ptr %701, align 8
  store i32 11, ptr %75, align 4
  br label %2214

705:                                              ; preds = %696
  %706 = load i32, ptr %76, align 4, !tbaa !9
  store i32 %706, ptr %78, align 4, !tbaa !9
  %707 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %707, ptr %79, align 4, !tbaa !9
  %708 = load i32, ptr %76, align 4, !tbaa !9
  %709 = sdiv i32 %708, 16
  %710 = mul nsw i32 %709, 16
  store i32 %710, ptr %76, align 4, !tbaa !9
  %711 = load i32, ptr %77, align 4, !tbaa !9
  %712 = add nsw i32 %711, 16
  %713 = sdiv i32 %712, 16
  %714 = mul nsw i32 %713, 16
  %715 = sub nsw i32 %714, 1
  store i32 %715, ptr %77, align 4, !tbaa !9
  %716 = load i32, ptr %76, align 4, !tbaa !9
  %717 = icmp sgt i32 %716, 0
  br i1 %717, label %718, label %770

718:                                              ; preds = %705
  %719 = load i32, ptr %76, align 4, !tbaa !9
  %720 = sub nsw i32 %719, 1
  %721 = load i32, ptr %41, align 4, !tbaa !9
  %722 = icmp sge i32 %720, %721
  br i1 %722, label %723, label %747

723:                                              ; preds = %718
  %724 = load i32, ptr %76, align 4, !tbaa !9
  %725 = sub nsw i32 %724, 1
  %726 = load i32, ptr %42, align 4, !tbaa !9
  %727 = icmp sle i32 %725, %726
  br i1 %727, label %728, label %747

728:                                              ; preds = %723
  %729 = load ptr, ptr %88, align 8, !tbaa !5
  %730 = load i32, ptr %76, align 4, !tbaa !9
  %731 = sub nsw i32 %730, 1
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds i8, ptr %729, i64 %732
  %734 = load i8, ptr %733, align 1, !tbaa !11
  store i8 %734, ptr %82, align 1, !tbaa !11
  %735 = load ptr, ptr %89, align 8, !tbaa !5
  %736 = load i32, ptr %76, align 4, !tbaa !9
  %737 = sub nsw i32 %736, 1
  %738 = sext i32 %737 to i64
  %739 = getelementptr inbounds i8, ptr %735, i64 %738
  %740 = load i8, ptr %739, align 1, !tbaa !11
  store i8 %740, ptr %83, align 1, !tbaa !11
  %741 = load ptr, ptr %87, align 8, !tbaa !5
  %742 = load i32, ptr %76, align 4, !tbaa !9
  %743 = sub nsw i32 %742, 1
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds i8, ptr %741, i64 %744
  %746 = load i8, ptr %745, align 1, !tbaa !11
  store i8 %746, ptr %84, align 1, !tbaa !11
  br label %769

747:                                              ; preds = %723, %718
  %748 = load i8, ptr %24, align 1, !tbaa !11
  %749 = sext i8 %748 to i32
  %750 = sub nsw i32 0, %749
  %751 = load i8, ptr %25, align 1, !tbaa !11
  %752 = sext i8 %751 to i32
  %753 = sub nsw i32 %750, %752
  %754 = trunc i32 %753 to i8
  store i8 %754, ptr %82, align 1, !tbaa !11
  %755 = load i8, ptr %26, align 1, !tbaa !11
  %756 = sext i8 %755 to i32
  %757 = sub nsw i32 0, %756
  %758 = load i8, ptr %27, align 1, !tbaa !11
  %759 = sext i8 %758 to i32
  %760 = sub nsw i32 %757, %759
  %761 = trunc i32 %760 to i8
  store i8 %761, ptr %83, align 1, !tbaa !11
  %762 = load i8, ptr %24, align 1, !tbaa !11
  %763 = sext i8 %762 to i32
  %764 = sub nsw i32 0, %763
  %765 = load i8, ptr %25, align 1, !tbaa !11
  %766 = sext i8 %765 to i32
  %767 = sub nsw i32 %764, %766
  %768 = trunc i32 %767 to i8
  store i8 %768, ptr %84, align 1, !tbaa !11
  br label %769

769:                                              ; preds = %747, %728
  br label %819

770:                                              ; preds = %705
  %771 = load i8, ptr %24, align 1, !tbaa !11
  %772 = sext i8 %771 to i32
  %773 = sub nsw i32 0, %772
  %774 = load i8, ptr %25, align 1, !tbaa !11
  %775 = sext i8 %774 to i32
  %776 = sub nsw i32 %773, %775
  %777 = trunc i32 %776 to i8
  store i8 %777, ptr %82, align 1, !tbaa !11
  %778 = load i8, ptr %26, align 1, !tbaa !11
  %779 = sext i8 %778 to i32
  %780 = sub nsw i32 0, %779
  %781 = load i8, ptr %27, align 1, !tbaa !11
  %782 = sext i8 %781 to i32
  %783 = sub nsw i32 %780, %782
  %784 = trunc i32 %783 to i8
  store i8 %784, ptr %83, align 1, !tbaa !11
  %785 = load i32, ptr %33, align 4, !tbaa !9
  %786 = icmp eq i32 %785, 0
  br i1 %786, label %787, label %794

787:                                              ; preds = %770
  %788 = load i8, ptr %24, align 1, !tbaa !11
  %789 = sext i8 %788 to i32
  %790 = sub nsw i32 0, %789
  %791 = load i8, ptr %25, align 1, !tbaa !11
  %792 = sext i8 %791 to i32
  %793 = sub nsw i32 %790, %792
  br label %816

794:                                              ; preds = %770
  %795 = load i32, ptr %33, align 4, !tbaa !9
  %796 = load i32, ptr %47, align 4, !tbaa !9
  %797 = icmp slt i32 %795, %796
  br i1 %797, label %798, label %802

798:                                              ; preds = %794
  %799 = load i8, ptr %25, align 1, !tbaa !11
  %800 = sext i8 %799 to i32
  %801 = sub nsw i32 0, %800
  br label %814

802:                                              ; preds = %794
  %803 = load i32, ptr %33, align 4, !tbaa !9
  %804 = load i32, ptr %47, align 4, !tbaa !9
  %805 = icmp eq i32 %803, %804
  br i1 %805, label %806, label %808

806:                                              ; preds = %802
  %807 = load i32, ptr %48, align 4, !tbaa !9
  br label %812

808:                                              ; preds = %802
  %809 = load i8, ptr %27, align 1, !tbaa !11
  %810 = sext i8 %809 to i32
  %811 = sub nsw i32 0, %810
  br label %812

812:                                              ; preds = %808, %806
  %813 = phi i32 [ %807, %806 ], [ %811, %808 ]
  br label %814

814:                                              ; preds = %812, %798
  %815 = phi i32 [ %801, %798 ], [ %813, %812 ]
  br label %816

816:                                              ; preds = %814, %787
  %817 = phi i32 [ %793, %787 ], [ %815, %814 ]
  %818 = trunc i32 %817 to i8
  store i8 %818, ptr %84, align 1, !tbaa !11
  br label %819

819:                                              ; preds = %816, %769
  %820 = load i32, ptr %77, align 4, !tbaa !9
  %821 = load i32, ptr %33, align 4, !tbaa !9
  %822 = icmp sge i32 %820, %821
  br i1 %822, label %823, label %884

823:                                              ; preds = %819
  %824 = load i8, ptr %24, align 1, !tbaa !11
  %825 = sext i8 %824 to i32
  %826 = sub nsw i32 0, %825
  %827 = load i8, ptr %25, align 1, !tbaa !11
  %828 = sext i8 %827 to i32
  %829 = sub nsw i32 %826, %828
  %830 = trunc i32 %829 to i8
  %831 = load ptr, ptr %70, align 8, !tbaa !5
  %832 = load i32, ptr %33, align 4, !tbaa !9
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds i8, ptr %831, i64 %833
  store i8 %830, ptr %834, align 1, !tbaa !11
  %835 = load i8, ptr %26, align 1, !tbaa !11
  %836 = sext i8 %835 to i32
  %837 = sub nsw i32 0, %836
  %838 = load i8, ptr %27, align 1, !tbaa !11
  %839 = sext i8 %838 to i32
  %840 = sub nsw i32 %837, %839
  %841 = trunc i32 %840 to i8
  %842 = load ptr, ptr %72, align 8, !tbaa !5
  %843 = load i32, ptr %33, align 4, !tbaa !9
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds i8, ptr %842, i64 %844
  store i8 %841, ptr %845, align 1, !tbaa !11
  %846 = load i32, ptr %33, align 4, !tbaa !9
  %847 = icmp eq i32 %846, 0
  br i1 %847, label %848, label %855

848:                                              ; preds = %823
  %849 = load i8, ptr %24, align 1, !tbaa !11
  %850 = sext i8 %849 to i32
  %851 = sub nsw i32 0, %850
  %852 = load i8, ptr %25, align 1, !tbaa !11
  %853 = sext i8 %852 to i32
  %854 = sub nsw i32 %851, %853
  br label %877

855:                                              ; preds = %823
  %856 = load i32, ptr %33, align 4, !tbaa !9
  %857 = load i32, ptr %47, align 4, !tbaa !9
  %858 = icmp slt i32 %856, %857
  br i1 %858, label %859, label %863

859:                                              ; preds = %855
  %860 = load i8, ptr %25, align 1, !tbaa !11
  %861 = sext i8 %860 to i32
  %862 = sub nsw i32 0, %861
  br label %875

863:                                              ; preds = %855
  %864 = load i32, ptr %33, align 4, !tbaa !9
  %865 = load i32, ptr %47, align 4, !tbaa !9
  %866 = icmp eq i32 %864, %865
  br i1 %866, label %867, label %869

867:                                              ; preds = %863
  %868 = load i32, ptr %48, align 4, !tbaa !9
  br label %873

869:                                              ; preds = %863
  %870 = load i8, ptr %27, align 1, !tbaa !11
  %871 = sext i8 %870 to i32
  %872 = sub nsw i32 0, %871
  br label %873

873:                                              ; preds = %869, %867
  %874 = phi i32 [ %868, %867 ], [ %872, %869 ]
  br label %875

875:                                              ; preds = %873, %859
  %876 = phi i32 [ %862, %859 ], [ %874, %873 ]
  br label %877

877:                                              ; preds = %875, %848
  %878 = phi i32 [ %854, %848 ], [ %876, %875 ]
  %879 = trunc i32 %878 to i8
  %880 = load ptr, ptr %86, align 8, !tbaa !5
  %881 = load i32, ptr %33, align 4, !tbaa !9
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds i8, ptr %880, i64 %882
  store i8 %879, ptr %883, align 1, !tbaa !11
  br label %884

884:                                              ; preds = %877, %819
  %885 = load i32, ptr %31, align 4, !tbaa !9
  %886 = and i32 %885, 4
  %887 = icmp ne i32 %886, 0
  br i1 %887, label %938, label %888

888:                                              ; preds = %884
  %889 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %889, ptr %34, align 4, !tbaa !9
  br label %890

890:                                              ; preds = %934, %888
  %891 = load i32, ptr %34, align 4, !tbaa !9
  %892 = load i32, ptr %79, align 4, !tbaa !9
  %893 = icmp sle i32 %891, %892
  br i1 %893, label %894, label %937

894:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 16, ptr %93) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %94) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %95) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %96) #10
  %895 = load ptr, ptr %55, align 8, !tbaa !5
  %896 = load i32, ptr %34, align 4, !tbaa !9
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds i8, ptr %895, i64 %897
  %899 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %898)
  store <2 x i64> %899, ptr %93, align 16, !tbaa !11
  %900 = load ptr, ptr %85, align 8, !tbaa !5
  %901 = load i32, ptr %34, align 4, !tbaa !9
  %902 = sext i32 %901 to i64
  %903 = getelementptr inbounds i8, ptr %900, i64 %902
  %904 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %903)
  store <2 x i64> %904, ptr %94, align 16, !tbaa !11
  %905 = load <2 x i64>, ptr %93, align 16, !tbaa !11
  %906 = load <2 x i64>, ptr %65, align 16, !tbaa !11
  %907 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %905, <2 x i64> noundef %906)
  %908 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  %909 = load <2 x i64>, ptr %65, align 16, !tbaa !11
  %910 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %908, <2 x i64> noundef %909)
  %911 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %907, <2 x i64> noundef %910)
  store <2 x i64> %911, ptr %96, align 16, !tbaa !11
  %912 = load <2 x i64>, ptr %93, align 16, !tbaa !11
  %913 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  %914 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %912, <2 x i64> noundef %913)
  store <2 x i64> %914, ptr %95, align 16, !tbaa !11
  %915 = load <2 x i64>, ptr %95, align 16, !tbaa !11
  %916 = load <2 x i64>, ptr %64, align 16, !tbaa !11
  %917 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %915, <2 x i64> noundef %916)
  %918 = load <2 x i64>, ptr %95, align 16, !tbaa !11
  %919 = load <2 x i64>, ptr %63, align 16, !tbaa !11
  %920 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %918, <2 x i64> noundef %919)
  %921 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %917, <2 x i64> noundef %920)
  store <2 x i64> %921, ptr %95, align 16, !tbaa !11
  %922 = load <2 x i64>, ptr %96, align 16, !tbaa !11
  %923 = load <2 x i64>, ptr %95, align 16, !tbaa !11
  %924 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %922, <2 x i64> noundef %923)
  %925 = load <2 x i64>, ptr %96, align 16, !tbaa !11
  %926 = load <2 x i64>, ptr %66, align 16, !tbaa !11
  %927 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %925, <2 x i64> noundef %926)
  %928 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %924, <2 x i64> noundef %927)
  store <2 x i64> %928, ptr %95, align 16, !tbaa !11
  %929 = load ptr, ptr %73, align 8, !tbaa !5
  %930 = load i32, ptr %34, align 4, !tbaa !9
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds i8, ptr %929, i64 %931
  %933 = load <2 x i64>, ptr %95, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %932, <2 x i64> noundef %933)
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %95) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %94) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %93) #10
  br label %934

934:                                              ; preds = %894
  %935 = load i32, ptr %34, align 4, !tbaa !9
  %936 = add nsw i32 %935, 16
  store i32 %936, ptr %34, align 4, !tbaa !9
  br label %890, !llvm.loop !16

937:                                              ; preds = %890
  br label %973

938:                                              ; preds = %884
  %939 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %939, ptr %34, align 4, !tbaa !9
  br label %940

940:                                              ; preds = %969, %938
  %941 = load i32, ptr %34, align 4, !tbaa !9
  %942 = load i32, ptr %79, align 4, !tbaa !9
  %943 = icmp sle i32 %941, %942
  br i1 %943, label %944, label %972

944:                                              ; preds = %940
  %945 = load ptr, ptr %23, align 8, !tbaa !5
  %946 = load ptr, ptr %55, align 8, !tbaa !5
  %947 = load i32, ptr %34, align 4, !tbaa !9
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds i8, ptr %946, i64 %948
  %950 = load i8, ptr %949, align 1, !tbaa !11
  %951 = zext i8 %950 to i32
  %952 = load i8, ptr %22, align 1, !tbaa !11
  %953 = sext i8 %952 to i32
  %954 = mul nsw i32 %951, %953
  %955 = load ptr, ptr %85, align 8, !tbaa !5
  %956 = load i32, ptr %34, align 4, !tbaa !9
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds i8, ptr %955, i64 %957
  %959 = load i8, ptr %958, align 1, !tbaa !11
  %960 = zext i8 %959 to i32
  %961 = add nsw i32 %954, %960
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds i8, ptr %945, i64 %962
  %964 = load i8, ptr %963, align 1, !tbaa !11
  %965 = load ptr, ptr %73, align 8, !tbaa !5
  %966 = load i32, ptr %34, align 4, !tbaa !9
  %967 = sext i32 %966 to i64
  %968 = getelementptr inbounds i8, ptr %965, i64 %967
  store i8 %964, ptr %968, align 1, !tbaa !11
  br label %969

969:                                              ; preds = %944
  %970 = load i32, ptr %34, align 4, !tbaa !9
  %971 = add nsw i32 %970, 1
  store i32 %971, ptr %34, align 4, !tbaa !9
  br label %940, !llvm.loop !17

972:                                              ; preds = %940
  br label %973

973:                                              ; preds = %972, %937
  %974 = load i8, ptr %82, align 1, !tbaa !11
  %975 = zext i8 %974 to i32
  %976 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %975)
  store <2 x i64> %976, ptr %90, align 16, !tbaa !11
  %977 = load i8, ptr %83, align 1, !tbaa !11
  %978 = zext i8 %977 to i32
  %979 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %978)
  store <2 x i64> %979, ptr %91, align 16, !tbaa !11
  %980 = load i8, ptr %84, align 1, !tbaa !11
  %981 = zext i8 %980 to i32
  %982 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %981)
  store <2 x i64> %982, ptr %92, align 16, !tbaa !11
  %983 = load i32, ptr %76, align 4, !tbaa !9
  %984 = sdiv i32 %983, 16
  store i32 %984, ptr %80, align 4, !tbaa !9
  %985 = load i32, ptr %77, align 4, !tbaa !9
  %986 = sdiv i32 %985, 16
  store i32 %986, ptr %81, align 4, !tbaa !9
  %987 = load i32, ptr %81, align 4, !tbaa !9
  %988 = load i32, ptr %80, align 4, !tbaa !9
  %989 = sub nsw i32 %987, %988
  %990 = add nsw i32 %989, 1
  %991 = load i32, ptr %36, align 4, !tbaa !9
  %992 = icmp sle i32 %990, %991
  br i1 %992, label %993, label %994

993:                                              ; preds = %973
  br label %996

994:                                              ; preds = %973
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 204, ptr noundef @__PRETTY_FUNCTION__.ksw_extd2_sse) #11
  unreachable

995:                                              ; No predecessors!
  br label %996

996:                                              ; preds = %995, %993
  %997 = load i32, ptr %49, align 4, !tbaa !9
  %998 = icmp ne i32 %997, 0
  br i1 %998, label %1218, label %999

999:                                              ; preds = %996
  %1000 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %1000, ptr %34, align 4, !tbaa !9
  br label %1001

1001:                                             ; preds = %1214, %999
  %1002 = load i32, ptr %34, align 4, !tbaa !9
  %1003 = load i32, ptr %81, align 4, !tbaa !9
  %1004 = icmp sle i32 %1002, %1003
  br i1 %1004, label %1005, label %1217

1005:                                             ; preds = %1001
  call void @llvm.lifetime.start.p0(i64 16, ptr %97) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %99) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %100) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %101) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %102) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %103) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %104) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #10
  %1006 = load ptr, ptr %73, align 8, !tbaa !5
  %1007 = load i32, ptr %34, align 4, !tbaa !9
  %1008 = sext i32 %1007 to i64
  %1009 = getelementptr inbounds <2 x i64>, ptr %1006, i64 %1008
  %1010 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1009)
  store <2 x i64> %1010, ptr %97, align 16, !tbaa !11
  %1011 = load ptr, ptr %69, align 8, !tbaa !5
  %1012 = load i32, ptr %34, align 4, !tbaa !9
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds <2 x i64>, ptr %1011, i64 %1013
  %1015 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1014)
  store <2 x i64> %1015, ptr %102, align 16, !tbaa !11
  %1016 = load <2 x i64>, ptr %102, align 16, !tbaa !11
  %1017 = bitcast <2 x i64> %1016 to <16 x i8>
  %1018 = shufflevector <16 x i8> %1017, <16 x i8> zeroinitializer, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1019 = bitcast <16 x i8> %1018 to <2 x i64>
  store <2 x i64> %1019, ptr %106, align 16, !tbaa !11
  %1020 = load <2 x i64>, ptr %102, align 16, !tbaa !11
  %1021 = bitcast <2 x i64> %1020 to <16 x i8>
  %1022 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1021, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1023 = bitcast <16 x i8> %1022 to <2 x i64>
  %1024 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  %1025 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1023, <2 x i64> noundef %1024)
  store <2 x i64> %1025, ptr %102, align 16, !tbaa !11
  %1026 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  store <2 x i64> %1026, ptr %90, align 16, !tbaa !11
  %1027 = load ptr, ptr %68, align 8, !tbaa !5
  %1028 = load i32, ptr %34, align 4, !tbaa !9
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds <2 x i64>, ptr %1027, i64 %1029
  %1031 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1030)
  store <2 x i64> %1031, ptr %104, align 16, !tbaa !11
  %1032 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1033 = bitcast <2 x i64> %1032 to <16 x i8>
  %1034 = shufflevector <16 x i8> %1033, <16 x i8> zeroinitializer, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1035 = bitcast <16 x i8> %1034 to <2 x i64>
  store <2 x i64> %1035, ptr %106, align 16, !tbaa !11
  %1036 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1037 = bitcast <2 x i64> %1036 to <16 x i8>
  %1038 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1037, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1039 = bitcast <16 x i8> %1038 to <2 x i64>
  %1040 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1041 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1039, <2 x i64> noundef %1040)
  store <2 x i64> %1041, ptr %104, align 16, !tbaa !11
  %1042 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  store <2 x i64> %1042, ptr %92, align 16, !tbaa !11
  %1043 = load <2 x i64>, ptr %102, align 16, !tbaa !11
  %1044 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1045 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1043, <2 x i64> noundef %1044)
  store <2 x i64> %1045, ptr %98, align 16, !tbaa !11
  %1046 = load ptr, ptr %67, align 8, !tbaa !5
  %1047 = load i32, ptr %34, align 4, !tbaa !9
  %1048 = sext i32 %1047 to i64
  %1049 = getelementptr inbounds <2 x i64>, ptr %1046, i64 %1048
  %1050 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1049)
  store <2 x i64> %1050, ptr %105, align 16, !tbaa !11
  %1051 = load ptr, ptr %70, align 8, !tbaa !5
  %1052 = load i32, ptr %34, align 4, !tbaa !9
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds <2 x i64>, ptr %1051, i64 %1053
  %1055 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1054)
  %1056 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1057 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1055, <2 x i64> noundef %1056)
  store <2 x i64> %1057, ptr %99, align 16, !tbaa !11
  %1058 = load ptr, ptr %71, align 8, !tbaa !5
  %1059 = load i32, ptr %34, align 4, !tbaa !9
  %1060 = sext i32 %1059 to i64
  %1061 = getelementptr inbounds <2 x i64>, ptr %1058, i64 %1060
  %1062 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1061)
  store <2 x i64> %1062, ptr %103, align 16, !tbaa !11
  %1063 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %1064 = bitcast <2 x i64> %1063 to <16 x i8>
  %1065 = shufflevector <16 x i8> %1064, <16 x i8> zeroinitializer, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1066 = bitcast <16 x i8> %1065 to <2 x i64>
  store <2 x i64> %1066, ptr %106, align 16, !tbaa !11
  %1067 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %1068 = bitcast <2 x i64> %1067 to <16 x i8>
  %1069 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1068, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1070 = bitcast <16 x i8> %1069 to <2 x i64>
  %1071 = load <2 x i64>, ptr %91, align 16, !tbaa !11
  %1072 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1070, <2 x i64> noundef %1071)
  store <2 x i64> %1072, ptr %103, align 16, !tbaa !11
  %1073 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  store <2 x i64> %1073, ptr %91, align 16, !tbaa !11
  %1074 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %1075 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1076 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1074, <2 x i64> noundef %1075)
  store <2 x i64> %1076, ptr %100, align 16, !tbaa !11
  %1077 = load ptr, ptr %72, align 8, !tbaa !5
  %1078 = load i32, ptr %34, align 4, !tbaa !9
  %1079 = sext i32 %1078 to i64
  %1080 = getelementptr inbounds <2 x i64>, ptr %1077, i64 %1079
  %1081 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1080)
  %1082 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1083 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1081, <2 x i64> noundef %1082)
  store <2 x i64> %1083, ptr %101, align 16, !tbaa !11
  %1084 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %1085 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1086 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1084, <2 x i64> noundef %1085)
  store <2 x i64> %1086, ptr %106, align 16, !tbaa !11
  %1087 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1088 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1089 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1087, <2 x i64> noundef %1088)
  %1090 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1091 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %1092 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1090, <2 x i64> noundef %1091)
  %1093 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1089, <2 x i64> noundef %1092)
  store <2 x i64> %1093, ptr %97, align 16, !tbaa !11
  %1094 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %1095 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1096 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1094, <2 x i64> noundef %1095)
  store <2 x i64> %1096, ptr %106, align 16, !tbaa !11
  %1097 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1098 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1099 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1097, <2 x i64> noundef %1098)
  %1100 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1101 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %1102 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1100, <2 x i64> noundef %1101)
  %1103 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1099, <2 x i64> noundef %1102)
  store <2 x i64> %1103, ptr %97, align 16, !tbaa !11
  %1104 = load <2 x i64>, ptr %100, align 16, !tbaa !11
  %1105 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1106 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1104, <2 x i64> noundef %1105)
  store <2 x i64> %1106, ptr %106, align 16, !tbaa !11
  %1107 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1108 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1109 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1107, <2 x i64> noundef %1108)
  %1110 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1111 = load <2 x i64>, ptr %100, align 16, !tbaa !11
  %1112 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1110, <2 x i64> noundef %1111)
  %1113 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1109, <2 x i64> noundef %1112)
  store <2 x i64> %1113, ptr %97, align 16, !tbaa !11
  %1114 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1115 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1116 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1114, <2 x i64> noundef %1115)
  store <2 x i64> %1116, ptr %106, align 16, !tbaa !11
  %1117 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1118 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1119 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1117, <2 x i64> noundef %1118)
  %1120 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1121 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1122 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1120, <2 x i64> noundef %1121)
  %1123 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1119, <2 x i64> noundef %1122)
  store <2 x i64> %1123, ptr %97, align 16, !tbaa !11
  %1124 = load <2 x i64>, ptr %63, align 16, !tbaa !11
  %1125 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1126 = call noundef <2 x i64> @_ZL14_mm_cmplt_epi8Dv2_xS_(<2 x i64> noundef %1124, <2 x i64> noundef %1125)
  store <2 x i64> %1126, ptr %106, align 16, !tbaa !11
  %1127 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1128 = load <2 x i64>, ptr %63, align 16, !tbaa !11
  %1129 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1127, <2 x i64> noundef %1128)
  %1130 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1131 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1132 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1130, <2 x i64> noundef %1131)
  %1133 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1129, <2 x i64> noundef %1132)
  store <2 x i64> %1133, ptr %97, align 16, !tbaa !11
  %1134 = load ptr, ptr %67, align 8, !tbaa !5
  %1135 = load i32, ptr %34, align 4, !tbaa !9
  %1136 = sext i32 %1135 to i64
  %1137 = getelementptr inbounds <2 x i64>, ptr %1134, i64 %1136
  %1138 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1139 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1140 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1138, <2 x i64> noundef %1139)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1137, <2 x i64> noundef %1140)
  %1141 = load ptr, ptr %68, align 8, !tbaa !5
  %1142 = load i32, ptr %34, align 4, !tbaa !9
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds <2 x i64>, ptr %1141, i64 %1143
  %1145 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1146 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1147 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1145, <2 x i64> noundef %1146)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1144, <2 x i64> noundef %1147)
  %1148 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1149 = load <2 x i64>, ptr %58, align 16, !tbaa !11
  %1150 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1148, <2 x i64> noundef %1149)
  store <2 x i64> %1150, ptr %106, align 16, !tbaa !11
  %1151 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %1152 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1153 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1151, <2 x i64> noundef %1152)
  store <2 x i64> %1153, ptr %98, align 16, !tbaa !11
  %1154 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %1155 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1156 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1154, <2 x i64> noundef %1155)
  store <2 x i64> %1156, ptr %99, align 16, !tbaa !11
  %1157 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1158 = load <2 x i64>, ptr %59, align 16, !tbaa !11
  %1159 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1157, <2 x i64> noundef %1158)
  store <2 x i64> %1159, ptr %106, align 16, !tbaa !11
  %1160 = load <2 x i64>, ptr %100, align 16, !tbaa !11
  %1161 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1162 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1160, <2 x i64> noundef %1161)
  store <2 x i64> %1162, ptr %100, align 16, !tbaa !11
  %1163 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1164 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1165 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1163, <2 x i64> noundef %1164)
  store <2 x i64> %1165, ptr %101, align 16, !tbaa !11
  %1166 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %1167 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1168 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1166, <2 x i64> noundef %1167)
  store <2 x i64> %1168, ptr %106, align 16, !tbaa !11
  %1169 = load ptr, ptr %69, align 8, !tbaa !5
  %1170 = load i32, ptr %34, align 4, !tbaa !9
  %1171 = sext i32 %1170 to i64
  %1172 = getelementptr inbounds <2 x i64>, ptr %1169, i64 %1171
  %1173 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1174 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %1175 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1173, <2 x i64> noundef %1174)
  %1176 = load <2 x i64>, ptr %60, align 16, !tbaa !11
  %1177 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1175, <2 x i64> noundef %1176)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1172, <2 x i64> noundef %1177)
  %1178 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %1179 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1180 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1178, <2 x i64> noundef %1179)
  store <2 x i64> %1180, ptr %106, align 16, !tbaa !11
  %1181 = load ptr, ptr %70, align 8, !tbaa !5
  %1182 = load i32, ptr %34, align 4, !tbaa !9
  %1183 = sext i32 %1182 to i64
  %1184 = getelementptr inbounds <2 x i64>, ptr %1181, i64 %1183
  %1185 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1186 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %1187 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1185, <2 x i64> noundef %1186)
  %1188 = load <2 x i64>, ptr %60, align 16, !tbaa !11
  %1189 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1187, <2 x i64> noundef %1188)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1184, <2 x i64> noundef %1189)
  %1190 = load <2 x i64>, ptr %100, align 16, !tbaa !11
  %1191 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1192 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1190, <2 x i64> noundef %1191)
  store <2 x i64> %1192, ptr %106, align 16, !tbaa !11
  %1193 = load ptr, ptr %71, align 8, !tbaa !5
  %1194 = load i32, ptr %34, align 4, !tbaa !9
  %1195 = sext i32 %1194 to i64
  %1196 = getelementptr inbounds <2 x i64>, ptr %1193, i64 %1195
  %1197 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1198 = load <2 x i64>, ptr %100, align 16, !tbaa !11
  %1199 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1197, <2 x i64> noundef %1198)
  %1200 = load <2 x i64>, ptr %61, align 16, !tbaa !11
  %1201 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1199, <2 x i64> noundef %1200)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1196, <2 x i64> noundef %1201)
  %1202 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1203 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1204 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1202, <2 x i64> noundef %1203)
  store <2 x i64> %1204, ptr %106, align 16, !tbaa !11
  %1205 = load ptr, ptr %72, align 8, !tbaa !5
  %1206 = load i32, ptr %34, align 4, !tbaa !9
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds <2 x i64>, ptr %1205, i64 %1207
  %1209 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1210 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1211 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1209, <2 x i64> noundef %1210)
  %1212 = load <2 x i64>, ptr %61, align 16, !tbaa !11
  %1213 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1211, <2 x i64> noundef %1212)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1208, <2 x i64> noundef %1213)
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %104) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %102) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %99) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #10
  br label %1214

1214:                                             ; preds = %1005
  %1215 = load i32, ptr %34, align 4, !tbaa !9
  %1216 = add nsw i32 %1215, 1
  store i32 %1216, ptr %34, align 4, !tbaa !9
  br label %1001, !llvm.loop !18

1217:                                             ; preds = %1001
  br label %1801

1218:                                             ; preds = %996
  %1219 = load i32, ptr %31, align 4, !tbaa !9
  %1220 = and i32 %1219, 2
  %1221 = icmp ne i32 %1220, 0
  br i1 %1221, label %1511, label %1222

1222:                                             ; preds = %1218
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #10
  %1223 = load ptr, ptr %74, align 8, !tbaa !5
  %1224 = load i32, ptr %33, align 4, !tbaa !9
  %1225 = sext i32 %1224 to i64
  %1226 = load i32, ptr %36, align 4, !tbaa !9
  %1227 = sext i32 %1226 to i64
  %1228 = mul i64 %1225, %1227
  %1229 = getelementptr inbounds <2 x i64>, ptr %1223, i64 %1228
  %1230 = load i32, ptr %80, align 4, !tbaa !9
  %1231 = sext i32 %1230 to i64
  %1232 = sub i64 0, %1231
  %1233 = getelementptr inbounds <2 x i64>, ptr %1229, i64 %1232
  store ptr %1233, ptr %107, align 8, !tbaa !5
  %1234 = load i32, ptr %76, align 4, !tbaa !9
  %1235 = load ptr, ptr %37, align 8, !tbaa !5
  %1236 = load i32, ptr %33, align 4, !tbaa !9
  %1237 = sext i32 %1236 to i64
  %1238 = getelementptr inbounds i32, ptr %1235, i64 %1237
  store i32 %1234, ptr %1238, align 4, !tbaa !9
  %1239 = load i32, ptr %77, align 4, !tbaa !9
  %1240 = load ptr, ptr %38, align 8, !tbaa !5
  %1241 = load i32, ptr %33, align 4, !tbaa !9
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds i32, ptr %1240, i64 %1242
  store i32 %1239, ptr %1243, align 4, !tbaa !9
  %1244 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %1244, ptr %34, align 4, !tbaa !9
  br label %1245

1245:                                             ; preds = %1507, %1222
  %1246 = load i32, ptr %34, align 4, !tbaa !9
  %1247 = load i32, ptr %81, align 4, !tbaa !9
  %1248 = icmp sle i32 %1246, %1247
  br i1 %1248, label %1249, label %1510

1249:                                             ; preds = %1245
  call void @llvm.lifetime.start.p0(i64 16, ptr %108) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %109) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %110) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %111) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %114) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %115) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %116) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %117) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %118) #10
  %1250 = load ptr, ptr %73, align 8, !tbaa !5
  %1251 = load i32, ptr %34, align 4, !tbaa !9
  %1252 = sext i32 %1251 to i64
  %1253 = getelementptr inbounds <2 x i64>, ptr %1250, i64 %1252
  %1254 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1253)
  store <2 x i64> %1254, ptr %109, align 16, !tbaa !11
  %1255 = load ptr, ptr %69, align 8, !tbaa !5
  %1256 = load i32, ptr %34, align 4, !tbaa !9
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds <2 x i64>, ptr %1255, i64 %1257
  %1259 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1258)
  store <2 x i64> %1259, ptr %114, align 16, !tbaa !11
  %1260 = load <2 x i64>, ptr %114, align 16, !tbaa !11
  %1261 = bitcast <2 x i64> %1260 to <16 x i8>
  %1262 = shufflevector <16 x i8> %1261, <16 x i8> zeroinitializer, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1263 = bitcast <16 x i8> %1262 to <2 x i64>
  store <2 x i64> %1263, ptr %118, align 16, !tbaa !11
  %1264 = load <2 x i64>, ptr %114, align 16, !tbaa !11
  %1265 = bitcast <2 x i64> %1264 to <16 x i8>
  %1266 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1265, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1267 = bitcast <16 x i8> %1266 to <2 x i64>
  %1268 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  %1269 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1267, <2 x i64> noundef %1268)
  store <2 x i64> %1269, ptr %114, align 16, !tbaa !11
  %1270 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  store <2 x i64> %1270, ptr %90, align 16, !tbaa !11
  %1271 = load ptr, ptr %68, align 8, !tbaa !5
  %1272 = load i32, ptr %34, align 4, !tbaa !9
  %1273 = sext i32 %1272 to i64
  %1274 = getelementptr inbounds <2 x i64>, ptr %1271, i64 %1273
  %1275 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1274)
  store <2 x i64> %1275, ptr %116, align 16, !tbaa !11
  %1276 = load <2 x i64>, ptr %116, align 16, !tbaa !11
  %1277 = bitcast <2 x i64> %1276 to <16 x i8>
  %1278 = shufflevector <16 x i8> %1277, <16 x i8> zeroinitializer, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1279 = bitcast <16 x i8> %1278 to <2 x i64>
  store <2 x i64> %1279, ptr %118, align 16, !tbaa !11
  %1280 = load <2 x i64>, ptr %116, align 16, !tbaa !11
  %1281 = bitcast <2 x i64> %1280 to <16 x i8>
  %1282 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1281, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1283 = bitcast <16 x i8> %1282 to <2 x i64>
  %1284 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1285 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1283, <2 x i64> noundef %1284)
  store <2 x i64> %1285, ptr %116, align 16, !tbaa !11
  %1286 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  store <2 x i64> %1286, ptr %92, align 16, !tbaa !11
  %1287 = load <2 x i64>, ptr %114, align 16, !tbaa !11
  %1288 = load <2 x i64>, ptr %116, align 16, !tbaa !11
  %1289 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1287, <2 x i64> noundef %1288)
  store <2 x i64> %1289, ptr %110, align 16, !tbaa !11
  %1290 = load ptr, ptr %67, align 8, !tbaa !5
  %1291 = load i32, ptr %34, align 4, !tbaa !9
  %1292 = sext i32 %1291 to i64
  %1293 = getelementptr inbounds <2 x i64>, ptr %1290, i64 %1292
  %1294 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1293)
  store <2 x i64> %1294, ptr %117, align 16, !tbaa !11
  %1295 = load ptr, ptr %70, align 8, !tbaa !5
  %1296 = load i32, ptr %34, align 4, !tbaa !9
  %1297 = sext i32 %1296 to i64
  %1298 = getelementptr inbounds <2 x i64>, ptr %1295, i64 %1297
  %1299 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1298)
  %1300 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1301 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1299, <2 x i64> noundef %1300)
  store <2 x i64> %1301, ptr %111, align 16, !tbaa !11
  %1302 = load ptr, ptr %71, align 8, !tbaa !5
  %1303 = load i32, ptr %34, align 4, !tbaa !9
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds <2 x i64>, ptr %1302, i64 %1304
  %1306 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1305)
  store <2 x i64> %1306, ptr %115, align 16, !tbaa !11
  %1307 = load <2 x i64>, ptr %115, align 16, !tbaa !11
  %1308 = bitcast <2 x i64> %1307 to <16 x i8>
  %1309 = shufflevector <16 x i8> %1308, <16 x i8> zeroinitializer, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1310 = bitcast <16 x i8> %1309 to <2 x i64>
  store <2 x i64> %1310, ptr %118, align 16, !tbaa !11
  %1311 = load <2 x i64>, ptr %115, align 16, !tbaa !11
  %1312 = bitcast <2 x i64> %1311 to <16 x i8>
  %1313 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1312, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1314 = bitcast <16 x i8> %1313 to <2 x i64>
  %1315 = load <2 x i64>, ptr %91, align 16, !tbaa !11
  %1316 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1314, <2 x i64> noundef %1315)
  store <2 x i64> %1316, ptr %115, align 16, !tbaa !11
  %1317 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  store <2 x i64> %1317, ptr %91, align 16, !tbaa !11
  %1318 = load <2 x i64>, ptr %115, align 16, !tbaa !11
  %1319 = load <2 x i64>, ptr %116, align 16, !tbaa !11
  %1320 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1318, <2 x i64> noundef %1319)
  store <2 x i64> %1320, ptr %112, align 16, !tbaa !11
  %1321 = load ptr, ptr %72, align 8, !tbaa !5
  %1322 = load i32, ptr %34, align 4, !tbaa !9
  %1323 = sext i32 %1322 to i64
  %1324 = getelementptr inbounds <2 x i64>, ptr %1321, i64 %1323
  %1325 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1324)
  %1326 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1327 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1325, <2 x i64> noundef %1326)
  store <2 x i64> %1327, ptr %113, align 16, !tbaa !11
  %1328 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1329 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1330 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1328, <2 x i64> noundef %1329)
  store <2 x i64> %1330, ptr %118, align 16, !tbaa !11
  %1331 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1332 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 1)
  %1333 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1331, <2 x i64> noundef %1332)
  store <2 x i64> %1333, ptr %108, align 16, !tbaa !11
  %1334 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1335 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1336 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1334, <2 x i64> noundef %1335)
  %1337 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1338 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1339 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1337, <2 x i64> noundef %1338)
  %1340 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1336, <2 x i64> noundef %1339)
  store <2 x i64> %1340, ptr %109, align 16, !tbaa !11
  %1341 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1342 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1343 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1341, <2 x i64> noundef %1342)
  store <2 x i64> %1343, ptr %118, align 16, !tbaa !11
  %1344 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1345 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1346 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1344, <2 x i64> noundef %1345)
  %1347 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1348 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 2)
  %1349 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1347, <2 x i64> noundef %1348)
  %1350 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1346, <2 x i64> noundef %1349)
  store <2 x i64> %1350, ptr %108, align 16, !tbaa !11
  %1351 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1352 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1353 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1351, <2 x i64> noundef %1352)
  %1354 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1355 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1356 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1354, <2 x i64> noundef %1355)
  %1357 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1353, <2 x i64> noundef %1356)
  store <2 x i64> %1357, ptr %109, align 16, !tbaa !11
  %1358 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1359 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1360 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1358, <2 x i64> noundef %1359)
  store <2 x i64> %1360, ptr %118, align 16, !tbaa !11
  %1361 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1362 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1363 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1361, <2 x i64> noundef %1362)
  %1364 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1365 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 3)
  %1366 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1364, <2 x i64> noundef %1365)
  %1367 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1363, <2 x i64> noundef %1366)
  store <2 x i64> %1367, ptr %108, align 16, !tbaa !11
  %1368 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1369 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1370 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1368, <2 x i64> noundef %1369)
  %1371 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1372 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1373 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1371, <2 x i64> noundef %1372)
  %1374 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1370, <2 x i64> noundef %1373)
  store <2 x i64> %1374, ptr %109, align 16, !tbaa !11
  %1375 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1376 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1377 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1375, <2 x i64> noundef %1376)
  store <2 x i64> %1377, ptr %118, align 16, !tbaa !11
  %1378 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1379 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1380 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1378, <2 x i64> noundef %1379)
  %1381 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1382 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 4)
  %1383 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1381, <2 x i64> noundef %1382)
  %1384 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1380, <2 x i64> noundef %1383)
  store <2 x i64> %1384, ptr %108, align 16, !tbaa !11
  %1385 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1386 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1387 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1385, <2 x i64> noundef %1386)
  %1388 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1389 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1390 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1388, <2 x i64> noundef %1389)
  %1391 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1387, <2 x i64> noundef %1390)
  store <2 x i64> %1391, ptr %109, align 16, !tbaa !11
  %1392 = load <2 x i64>, ptr %63, align 16, !tbaa !11
  %1393 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1394 = call noundef <2 x i64> @_ZL14_mm_cmplt_epi8Dv2_xS_(<2 x i64> noundef %1392, <2 x i64> noundef %1393)
  store <2 x i64> %1394, ptr %118, align 16, !tbaa !11
  %1395 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1396 = load <2 x i64>, ptr %63, align 16, !tbaa !11
  %1397 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1395, <2 x i64> noundef %1396)
  %1398 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1399 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1400 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1398, <2 x i64> noundef %1399)
  %1401 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1397, <2 x i64> noundef %1400)
  store <2 x i64> %1401, ptr %109, align 16, !tbaa !11
  %1402 = load ptr, ptr %67, align 8, !tbaa !5
  %1403 = load i32, ptr %34, align 4, !tbaa !9
  %1404 = sext i32 %1403 to i64
  %1405 = getelementptr inbounds <2 x i64>, ptr %1402, i64 %1404
  %1406 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1407 = load <2 x i64>, ptr %116, align 16, !tbaa !11
  %1408 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1406, <2 x i64> noundef %1407)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1405, <2 x i64> noundef %1408)
  %1409 = load ptr, ptr %68, align 8, !tbaa !5
  %1410 = load i32, ptr %34, align 4, !tbaa !9
  %1411 = sext i32 %1410 to i64
  %1412 = getelementptr inbounds <2 x i64>, ptr %1409, i64 %1411
  %1413 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1414 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1415 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1413, <2 x i64> noundef %1414)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1412, <2 x i64> noundef %1415)
  %1416 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1417 = load <2 x i64>, ptr %58, align 16, !tbaa !11
  %1418 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1416, <2 x i64> noundef %1417)
  store <2 x i64> %1418, ptr %118, align 16, !tbaa !11
  %1419 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1420 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1421 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1419, <2 x i64> noundef %1420)
  store <2 x i64> %1421, ptr %110, align 16, !tbaa !11
  %1422 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1423 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1424 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1422, <2 x i64> noundef %1423)
  store <2 x i64> %1424, ptr %111, align 16, !tbaa !11
  %1425 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1426 = load <2 x i64>, ptr %59, align 16, !tbaa !11
  %1427 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1425, <2 x i64> noundef %1426)
  store <2 x i64> %1427, ptr %118, align 16, !tbaa !11
  %1428 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1429 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1430 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1428, <2 x i64> noundef %1429)
  store <2 x i64> %1430, ptr %112, align 16, !tbaa !11
  %1431 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1432 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1433 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1431, <2 x i64> noundef %1432)
  store <2 x i64> %1433, ptr %113, align 16, !tbaa !11
  %1434 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1435 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1436 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1434, <2 x i64> noundef %1435)
  store <2 x i64> %1436, ptr %118, align 16, !tbaa !11
  %1437 = load ptr, ptr %69, align 8, !tbaa !5
  %1438 = load i32, ptr %34, align 4, !tbaa !9
  %1439 = sext i32 %1438 to i64
  %1440 = getelementptr inbounds <2 x i64>, ptr %1437, i64 %1439
  %1441 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1442 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1443 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1441, <2 x i64> noundef %1442)
  %1444 = load <2 x i64>, ptr %60, align 16, !tbaa !11
  %1445 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1443, <2 x i64> noundef %1444)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1440, <2 x i64> noundef %1445)
  %1446 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1447 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1448 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 8)
  %1449 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1447, <2 x i64> noundef %1448)
  %1450 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1446, <2 x i64> noundef %1449)
  store <2 x i64> %1450, ptr %108, align 16, !tbaa !11
  %1451 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1452 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1453 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1451, <2 x i64> noundef %1452)
  store <2 x i64> %1453, ptr %118, align 16, !tbaa !11
  %1454 = load ptr, ptr %70, align 8, !tbaa !5
  %1455 = load i32, ptr %34, align 4, !tbaa !9
  %1456 = sext i32 %1455 to i64
  %1457 = getelementptr inbounds <2 x i64>, ptr %1454, i64 %1456
  %1458 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1459 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1460 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1458, <2 x i64> noundef %1459)
  %1461 = load <2 x i64>, ptr %60, align 16, !tbaa !11
  %1462 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1460, <2 x i64> noundef %1461)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1457, <2 x i64> noundef %1462)
  %1463 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1464 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1465 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 16)
  %1466 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1464, <2 x i64> noundef %1465)
  %1467 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1463, <2 x i64> noundef %1466)
  store <2 x i64> %1467, ptr %108, align 16, !tbaa !11
  %1468 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1469 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1470 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1468, <2 x i64> noundef %1469)
  store <2 x i64> %1470, ptr %118, align 16, !tbaa !11
  %1471 = load ptr, ptr %71, align 8, !tbaa !5
  %1472 = load i32, ptr %34, align 4, !tbaa !9
  %1473 = sext i32 %1472 to i64
  %1474 = getelementptr inbounds <2 x i64>, ptr %1471, i64 %1473
  %1475 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1476 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1477 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1475, <2 x i64> noundef %1476)
  %1478 = load <2 x i64>, ptr %61, align 16, !tbaa !11
  %1479 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1477, <2 x i64> noundef %1478)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1474, <2 x i64> noundef %1479)
  %1480 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1481 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1482 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 32)
  %1483 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1481, <2 x i64> noundef %1482)
  %1484 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1480, <2 x i64> noundef %1483)
  store <2 x i64> %1484, ptr %108, align 16, !tbaa !11
  %1485 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1486 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1487 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1485, <2 x i64> noundef %1486)
  store <2 x i64> %1487, ptr %118, align 16, !tbaa !11
  %1488 = load ptr, ptr %72, align 8, !tbaa !5
  %1489 = load i32, ptr %34, align 4, !tbaa !9
  %1490 = sext i32 %1489 to i64
  %1491 = getelementptr inbounds <2 x i64>, ptr %1488, i64 %1490
  %1492 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1493 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1494 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1492, <2 x i64> noundef %1493)
  %1495 = load <2 x i64>, ptr %61, align 16, !tbaa !11
  %1496 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1494, <2 x i64> noundef %1495)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1491, <2 x i64> noundef %1496)
  %1497 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1498 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1499 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 64)
  %1500 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1498, <2 x i64> noundef %1499)
  %1501 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1497, <2 x i64> noundef %1500)
  store <2 x i64> %1501, ptr %108, align 16, !tbaa !11
  %1502 = load ptr, ptr %107, align 8, !tbaa !5
  %1503 = load i32, ptr %34, align 4, !tbaa !9
  %1504 = sext i32 %1503 to i64
  %1505 = getelementptr inbounds <2 x i64>, ptr %1502, i64 %1504
  %1506 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1505, <2 x i64> noundef %1506)
  call void @llvm.lifetime.end.p0(i64 16, ptr %118) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %117) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %114) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %111) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %108) #10
  br label %1507

1507:                                             ; preds = %1249
  %1508 = load i32, ptr %34, align 4, !tbaa !9
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr %34, align 4, !tbaa !9
  br label %1245, !llvm.loop !19

1510:                                             ; preds = %1245
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #10
  br label %1800

1511:                                             ; preds = %1218
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #10
  %1512 = load ptr, ptr %74, align 8, !tbaa !5
  %1513 = load i32, ptr %33, align 4, !tbaa !9
  %1514 = sext i32 %1513 to i64
  %1515 = load i32, ptr %36, align 4, !tbaa !9
  %1516 = sext i32 %1515 to i64
  %1517 = mul i64 %1514, %1516
  %1518 = getelementptr inbounds <2 x i64>, ptr %1512, i64 %1517
  %1519 = load i32, ptr %80, align 4, !tbaa !9
  %1520 = sext i32 %1519 to i64
  %1521 = sub i64 0, %1520
  %1522 = getelementptr inbounds <2 x i64>, ptr %1518, i64 %1521
  store ptr %1522, ptr %119, align 8, !tbaa !5
  %1523 = load i32, ptr %76, align 4, !tbaa !9
  %1524 = load ptr, ptr %37, align 8, !tbaa !5
  %1525 = load i32, ptr %33, align 4, !tbaa !9
  %1526 = sext i32 %1525 to i64
  %1527 = getelementptr inbounds i32, ptr %1524, i64 %1526
  store i32 %1523, ptr %1527, align 4, !tbaa !9
  %1528 = load i32, ptr %77, align 4, !tbaa !9
  %1529 = load ptr, ptr %38, align 8, !tbaa !5
  %1530 = load i32, ptr %33, align 4, !tbaa !9
  %1531 = sext i32 %1530 to i64
  %1532 = getelementptr inbounds i32, ptr %1529, i64 %1531
  store i32 %1528, ptr %1532, align 4, !tbaa !9
  %1533 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %1533, ptr %34, align 4, !tbaa !9
  br label %1534

1534:                                             ; preds = %1796, %1511
  %1535 = load i32, ptr %34, align 4, !tbaa !9
  %1536 = load i32, ptr %81, align 4, !tbaa !9
  %1537 = icmp sle i32 %1535, %1536
  br i1 %1537, label %1538, label %1799

1538:                                             ; preds = %1534
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %121) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %122) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %123) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %124) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %125) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %126) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %127) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %128) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %129) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #10
  %1539 = load ptr, ptr %73, align 8, !tbaa !5
  %1540 = load i32, ptr %34, align 4, !tbaa !9
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds <2 x i64>, ptr %1539, i64 %1541
  %1543 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1542)
  store <2 x i64> %1543, ptr %121, align 16, !tbaa !11
  %1544 = load ptr, ptr %69, align 8, !tbaa !5
  %1545 = load i32, ptr %34, align 4, !tbaa !9
  %1546 = sext i32 %1545 to i64
  %1547 = getelementptr inbounds <2 x i64>, ptr %1544, i64 %1546
  %1548 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1547)
  store <2 x i64> %1548, ptr %126, align 16, !tbaa !11
  %1549 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1550 = bitcast <2 x i64> %1549 to <16 x i8>
  %1551 = shufflevector <16 x i8> %1550, <16 x i8> zeroinitializer, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1552 = bitcast <16 x i8> %1551 to <2 x i64>
  store <2 x i64> %1552, ptr %130, align 16, !tbaa !11
  %1553 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1554 = bitcast <2 x i64> %1553 to <16 x i8>
  %1555 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1554, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1556 = bitcast <16 x i8> %1555 to <2 x i64>
  %1557 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  %1558 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1556, <2 x i64> noundef %1557)
  store <2 x i64> %1558, ptr %126, align 16, !tbaa !11
  %1559 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  store <2 x i64> %1559, ptr %90, align 16, !tbaa !11
  %1560 = load ptr, ptr %68, align 8, !tbaa !5
  %1561 = load i32, ptr %34, align 4, !tbaa !9
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds <2 x i64>, ptr %1560, i64 %1562
  %1564 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1563)
  store <2 x i64> %1564, ptr %128, align 16, !tbaa !11
  %1565 = load <2 x i64>, ptr %128, align 16, !tbaa !11
  %1566 = bitcast <2 x i64> %1565 to <16 x i8>
  %1567 = shufflevector <16 x i8> %1566, <16 x i8> zeroinitializer, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1568 = bitcast <16 x i8> %1567 to <2 x i64>
  store <2 x i64> %1568, ptr %130, align 16, !tbaa !11
  %1569 = load <2 x i64>, ptr %128, align 16, !tbaa !11
  %1570 = bitcast <2 x i64> %1569 to <16 x i8>
  %1571 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1570, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1572 = bitcast <16 x i8> %1571 to <2 x i64>
  %1573 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1574 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1572, <2 x i64> noundef %1573)
  store <2 x i64> %1574, ptr %128, align 16, !tbaa !11
  %1575 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  store <2 x i64> %1575, ptr %92, align 16, !tbaa !11
  %1576 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1577 = load <2 x i64>, ptr %128, align 16, !tbaa !11
  %1578 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1576, <2 x i64> noundef %1577)
  store <2 x i64> %1578, ptr %122, align 16, !tbaa !11
  %1579 = load ptr, ptr %67, align 8, !tbaa !5
  %1580 = load i32, ptr %34, align 4, !tbaa !9
  %1581 = sext i32 %1580 to i64
  %1582 = getelementptr inbounds <2 x i64>, ptr %1579, i64 %1581
  %1583 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1582)
  store <2 x i64> %1583, ptr %129, align 16, !tbaa !11
  %1584 = load ptr, ptr %70, align 8, !tbaa !5
  %1585 = load i32, ptr %34, align 4, !tbaa !9
  %1586 = sext i32 %1585 to i64
  %1587 = getelementptr inbounds <2 x i64>, ptr %1584, i64 %1586
  %1588 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1587)
  %1589 = load <2 x i64>, ptr %129, align 16, !tbaa !11
  %1590 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1588, <2 x i64> noundef %1589)
  store <2 x i64> %1590, ptr %123, align 16, !tbaa !11
  %1591 = load ptr, ptr %71, align 8, !tbaa !5
  %1592 = load i32, ptr %34, align 4, !tbaa !9
  %1593 = sext i32 %1592 to i64
  %1594 = getelementptr inbounds <2 x i64>, ptr %1591, i64 %1593
  %1595 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1594)
  store <2 x i64> %1595, ptr %127, align 16, !tbaa !11
  %1596 = load <2 x i64>, ptr %127, align 16, !tbaa !11
  %1597 = bitcast <2 x i64> %1596 to <16 x i8>
  %1598 = shufflevector <16 x i8> %1597, <16 x i8> zeroinitializer, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1599 = bitcast <16 x i8> %1598 to <2 x i64>
  store <2 x i64> %1599, ptr %130, align 16, !tbaa !11
  %1600 = load <2 x i64>, ptr %127, align 16, !tbaa !11
  %1601 = bitcast <2 x i64> %1600 to <16 x i8>
  %1602 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1601, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %1603 = bitcast <16 x i8> %1602 to <2 x i64>
  %1604 = load <2 x i64>, ptr %91, align 16, !tbaa !11
  %1605 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1603, <2 x i64> noundef %1604)
  store <2 x i64> %1605, ptr %127, align 16, !tbaa !11
  %1606 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  store <2 x i64> %1606, ptr %91, align 16, !tbaa !11
  %1607 = load <2 x i64>, ptr %127, align 16, !tbaa !11
  %1608 = load <2 x i64>, ptr %128, align 16, !tbaa !11
  %1609 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1607, <2 x i64> noundef %1608)
  store <2 x i64> %1609, ptr %124, align 16, !tbaa !11
  %1610 = load ptr, ptr %72, align 8, !tbaa !5
  %1611 = load i32, ptr %34, align 4, !tbaa !9
  %1612 = sext i32 %1611 to i64
  %1613 = getelementptr inbounds <2 x i64>, ptr %1610, i64 %1612
  %1614 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1613)
  %1615 = load <2 x i64>, ptr %129, align 16, !tbaa !11
  %1616 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1614, <2 x i64> noundef %1615)
  store <2 x i64> %1616, ptr %125, align 16, !tbaa !11
  %1617 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1618 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1619 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1617, <2 x i64> noundef %1618)
  store <2 x i64> %1619, ptr %130, align 16, !tbaa !11
  %1620 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1621 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 1)
  %1622 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1620, <2 x i64> noundef %1621)
  store <2 x i64> %1622, ptr %120, align 16, !tbaa !11
  %1623 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1624 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1625 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1623, <2 x i64> noundef %1624)
  %1626 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1627 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1628 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1626, <2 x i64> noundef %1627)
  %1629 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1625, <2 x i64> noundef %1628)
  store <2 x i64> %1629, ptr %121, align 16, !tbaa !11
  %1630 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1631 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1632 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1630, <2 x i64> noundef %1631)
  store <2 x i64> %1632, ptr %130, align 16, !tbaa !11
  %1633 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1634 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1635 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1633, <2 x i64> noundef %1634)
  %1636 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1637 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 2)
  %1638 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1636, <2 x i64> noundef %1637)
  %1639 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1635, <2 x i64> noundef %1638)
  store <2 x i64> %1639, ptr %120, align 16, !tbaa !11
  %1640 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1641 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1642 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1640, <2 x i64> noundef %1641)
  %1643 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1644 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1645 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1643, <2 x i64> noundef %1644)
  %1646 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1642, <2 x i64> noundef %1645)
  store <2 x i64> %1646, ptr %121, align 16, !tbaa !11
  %1647 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1648 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1649 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1647, <2 x i64> noundef %1648)
  store <2 x i64> %1649, ptr %130, align 16, !tbaa !11
  %1650 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1651 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1652 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1650, <2 x i64> noundef %1651)
  %1653 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1654 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 3)
  %1655 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1653, <2 x i64> noundef %1654)
  %1656 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1652, <2 x i64> noundef %1655)
  store <2 x i64> %1656, ptr %120, align 16, !tbaa !11
  %1657 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1658 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1659 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1657, <2 x i64> noundef %1658)
  %1660 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1661 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1662 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1660, <2 x i64> noundef %1661)
  %1663 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1659, <2 x i64> noundef %1662)
  store <2 x i64> %1663, ptr %121, align 16, !tbaa !11
  %1664 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1665 = load <2 x i64>, ptr %125, align 16, !tbaa !11
  %1666 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1664, <2 x i64> noundef %1665)
  store <2 x i64> %1666, ptr %130, align 16, !tbaa !11
  %1667 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1668 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1669 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1667, <2 x i64> noundef %1668)
  %1670 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1671 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 4)
  %1672 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1670, <2 x i64> noundef %1671)
  %1673 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1669, <2 x i64> noundef %1672)
  store <2 x i64> %1673, ptr %120, align 16, !tbaa !11
  %1674 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1675 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1676 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1674, <2 x i64> noundef %1675)
  %1677 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1678 = load <2 x i64>, ptr %125, align 16, !tbaa !11
  %1679 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1677, <2 x i64> noundef %1678)
  %1680 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1676, <2 x i64> noundef %1679)
  store <2 x i64> %1680, ptr %121, align 16, !tbaa !11
  %1681 = load <2 x i64>, ptr %63, align 16, !tbaa !11
  %1682 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1683 = call noundef <2 x i64> @_ZL14_mm_cmplt_epi8Dv2_xS_(<2 x i64> noundef %1681, <2 x i64> noundef %1682)
  store <2 x i64> %1683, ptr %130, align 16, !tbaa !11
  %1684 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1685 = load <2 x i64>, ptr %63, align 16, !tbaa !11
  %1686 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1684, <2 x i64> noundef %1685)
  %1687 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1688 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1689 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1687, <2 x i64> noundef %1688)
  %1690 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1686, <2 x i64> noundef %1689)
  store <2 x i64> %1690, ptr %121, align 16, !tbaa !11
  %1691 = load ptr, ptr %67, align 8, !tbaa !5
  %1692 = load i32, ptr %34, align 4, !tbaa !9
  %1693 = sext i32 %1692 to i64
  %1694 = getelementptr inbounds <2 x i64>, ptr %1691, i64 %1693
  %1695 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1696 = load <2 x i64>, ptr %128, align 16, !tbaa !11
  %1697 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1695, <2 x i64> noundef %1696)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1694, <2 x i64> noundef %1697)
  %1698 = load ptr, ptr %68, align 8, !tbaa !5
  %1699 = load i32, ptr %34, align 4, !tbaa !9
  %1700 = sext i32 %1699 to i64
  %1701 = getelementptr inbounds <2 x i64>, ptr %1698, i64 %1700
  %1702 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1703 = load <2 x i64>, ptr %129, align 16, !tbaa !11
  %1704 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1702, <2 x i64> noundef %1703)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1701, <2 x i64> noundef %1704)
  %1705 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1706 = load <2 x i64>, ptr %58, align 16, !tbaa !11
  %1707 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1705, <2 x i64> noundef %1706)
  store <2 x i64> %1707, ptr %130, align 16, !tbaa !11
  %1708 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1709 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1710 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1708, <2 x i64> noundef %1709)
  store <2 x i64> %1710, ptr %122, align 16, !tbaa !11
  %1711 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1712 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1713 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1711, <2 x i64> noundef %1712)
  store <2 x i64> %1713, ptr %123, align 16, !tbaa !11
  %1714 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1715 = load <2 x i64>, ptr %59, align 16, !tbaa !11
  %1716 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1714, <2 x i64> noundef %1715)
  store <2 x i64> %1716, ptr %130, align 16, !tbaa !11
  %1717 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1718 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1719 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1717, <2 x i64> noundef %1718)
  store <2 x i64> %1719, ptr %124, align 16, !tbaa !11
  %1720 = load <2 x i64>, ptr %125, align 16, !tbaa !11
  %1721 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1722 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1720, <2 x i64> noundef %1721)
  store <2 x i64> %1722, ptr %125, align 16, !tbaa !11
  %1723 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1724 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1725 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1723, <2 x i64> noundef %1724)
  store <2 x i64> %1725, ptr %130, align 16, !tbaa !11
  %1726 = load ptr, ptr %69, align 8, !tbaa !5
  %1727 = load i32, ptr %34, align 4, !tbaa !9
  %1728 = sext i32 %1727 to i64
  %1729 = getelementptr inbounds <2 x i64>, ptr %1726, i64 %1728
  %1730 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1731 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1732 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1730, <2 x i64> noundef %1731)
  %1733 = load <2 x i64>, ptr %60, align 16, !tbaa !11
  %1734 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1732, <2 x i64> noundef %1733)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1729, <2 x i64> noundef %1734)
  %1735 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1736 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1737 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 8)
  %1738 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1736, <2 x i64> noundef %1737)
  %1739 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1735, <2 x i64> noundef %1738)
  store <2 x i64> %1739, ptr %120, align 16, !tbaa !11
  %1740 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1741 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1742 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1740, <2 x i64> noundef %1741)
  store <2 x i64> %1742, ptr %130, align 16, !tbaa !11
  %1743 = load ptr, ptr %70, align 8, !tbaa !5
  %1744 = load i32, ptr %34, align 4, !tbaa !9
  %1745 = sext i32 %1744 to i64
  %1746 = getelementptr inbounds <2 x i64>, ptr %1743, i64 %1745
  %1747 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1748 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1749 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1747, <2 x i64> noundef %1748)
  %1750 = load <2 x i64>, ptr %60, align 16, !tbaa !11
  %1751 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1749, <2 x i64> noundef %1750)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1746, <2 x i64> noundef %1751)
  %1752 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1753 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1754 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 16)
  %1755 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1753, <2 x i64> noundef %1754)
  %1756 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1752, <2 x i64> noundef %1755)
  store <2 x i64> %1756, ptr %120, align 16, !tbaa !11
  %1757 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1758 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1759 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1757, <2 x i64> noundef %1758)
  store <2 x i64> %1759, ptr %130, align 16, !tbaa !11
  %1760 = load ptr, ptr %71, align 8, !tbaa !5
  %1761 = load i32, ptr %34, align 4, !tbaa !9
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds <2 x i64>, ptr %1760, i64 %1762
  %1764 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1765 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1766 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1764, <2 x i64> noundef %1765)
  %1767 = load <2 x i64>, ptr %61, align 16, !tbaa !11
  %1768 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1766, <2 x i64> noundef %1767)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1763, <2 x i64> noundef %1768)
  %1769 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1770 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1771 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 32)
  %1772 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1770, <2 x i64> noundef %1771)
  %1773 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1769, <2 x i64> noundef %1772)
  store <2 x i64> %1773, ptr %120, align 16, !tbaa !11
  %1774 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %1775 = load <2 x i64>, ptr %125, align 16, !tbaa !11
  %1776 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1774, <2 x i64> noundef %1775)
  store <2 x i64> %1776, ptr %130, align 16, !tbaa !11
  %1777 = load ptr, ptr %72, align 8, !tbaa !5
  %1778 = load i32, ptr %34, align 4, !tbaa !9
  %1779 = sext i32 %1778 to i64
  %1780 = getelementptr inbounds <2 x i64>, ptr %1777, i64 %1779
  %1781 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1782 = load <2 x i64>, ptr %125, align 16, !tbaa !11
  %1783 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1781, <2 x i64> noundef %1782)
  %1784 = load <2 x i64>, ptr %61, align 16, !tbaa !11
  %1785 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1783, <2 x i64> noundef %1784)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1780, <2 x i64> noundef %1785)
  %1786 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1787 = load <2 x i64>, ptr %130, align 16, !tbaa !11
  %1788 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 64)
  %1789 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1787, <2 x i64> noundef %1788)
  %1790 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1786, <2 x i64> noundef %1789)
  store <2 x i64> %1790, ptr %120, align 16, !tbaa !11
  %1791 = load ptr, ptr %119, align 8, !tbaa !5
  %1792 = load i32, ptr %34, align 4, !tbaa !9
  %1793 = sext i32 %1792 to i64
  %1794 = getelementptr inbounds <2 x i64>, ptr %1791, i64 %1793
  %1795 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1794, <2 x i64> noundef %1795)
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %127) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %126) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %124) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %123) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %122) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #10
  br label %1796

1796:                                             ; preds = %1538
  %1797 = load i32, ptr %34, align 4, !tbaa !9
  %1798 = add nsw i32 %1797, 1
  store i32 %1798, ptr %34, align 4, !tbaa !9
  br label %1534, !llvm.loop !20

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

1800:                                             ; preds = %1799, %1510
  br label %1801

1801:                                             ; preds = %1800, %1217
  %1802 = load i32, ptr %50, align 4, !tbaa !9
  %1803 = icmp ne i32 %1802, 0
  br i1 %1803, label %2094, label %1804

1804:                                             ; preds = %1801
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %1805 = load i32, ptr %33, align 4, !tbaa !9
  %1806 = icmp sgt i32 %1805, 0
  br i1 %1806, label %1807, label %1991

1807:                                             ; preds = %1804
  call void @llvm.lifetime.start.p0(i64 16, ptr %133) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %134) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  %1808 = load i32, ptr %78, align 4, !tbaa !9
  %1809 = load i32, ptr %79, align 4, !tbaa !9
  %1810 = load i32, ptr %78, align 4, !tbaa !9
  %1811 = sub nsw i32 %1809, %1810
  %1812 = sdiv i32 %1811, 4
  %1813 = mul nsw i32 %1812, 4
  %1814 = add nsw i32 %1808, %1813
  store i32 %1814, ptr %135, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %137) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %138) #10
  %1815 = load i32, ptr %79, align 4, !tbaa !9
  %1816 = icmp sgt i32 %1815, 0
  br i1 %1816, label %1817, label %1831

1817:                                             ; preds = %1807
  %1818 = load ptr, ptr %51, align 8, !tbaa !5
  %1819 = load i32, ptr %79, align 4, !tbaa !9
  %1820 = sub nsw i32 %1819, 1
  %1821 = sext i32 %1820 to i64
  %1822 = getelementptr inbounds i32, ptr %1818, i64 %1821
  %1823 = load i32, ptr %1822, align 4, !tbaa !9
  %1824 = load ptr, ptr %86, align 8, !tbaa !5
  %1825 = load i32, ptr %79, align 4, !tbaa !9
  %1826 = sext i32 %1825 to i64
  %1827 = getelementptr inbounds i8, ptr %1824, i64 %1826
  %1828 = load i8, ptr %1827, align 1, !tbaa !11
  %1829 = sext i8 %1828 to i32
  %1830 = add nsw i32 %1823, %1829
  br label %1844

1831:                                             ; preds = %1807
  %1832 = load ptr, ptr %51, align 8, !tbaa !5
  %1833 = load i32, ptr %79, align 4, !tbaa !9
  %1834 = sext i32 %1833 to i64
  %1835 = getelementptr inbounds i32, ptr %1832, i64 %1834
  %1836 = load i32, ptr %1835, align 4, !tbaa !9
  %1837 = load ptr, ptr %87, align 8, !tbaa !5
  %1838 = load i32, ptr %79, align 4, !tbaa !9
  %1839 = sext i32 %1838 to i64
  %1840 = getelementptr inbounds i8, ptr %1837, i64 %1839
  %1841 = load i8, ptr %1840, align 1, !tbaa !11
  %1842 = sext i8 %1841 to i32
  %1843 = add nsw i32 %1836, %1842
  br label %1844

1844:                                             ; preds = %1831, %1817
  %1845 = phi i32 [ %1830, %1817 ], [ %1843, %1831 ]
  %1846 = load ptr, ptr %51, align 8, !tbaa !5
  %1847 = load i32, ptr %79, align 4, !tbaa !9
  %1848 = sext i32 %1847 to i64
  %1849 = getelementptr inbounds i32, ptr %1846, i64 %1848
  store i32 %1845, ptr %1849, align 4, !tbaa !9
  store i32 %1845, ptr %131, align 4, !tbaa !9
  %1850 = load i32, ptr %79, align 4, !tbaa !9
  store i32 %1850, ptr %132, align 4, !tbaa !9
  %1851 = load i32, ptr %131, align 4, !tbaa !9
  %1852 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %1851)
  store <2 x i64> %1852, ptr %137, align 16, !tbaa !11
  %1853 = load i32, ptr %132, align 4, !tbaa !9
  %1854 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %1853)
  store <2 x i64> %1854, ptr %138, align 16, !tbaa !11
  %1855 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %1855, ptr %34, align 4, !tbaa !9
  br label %1856

1856:                                             ; preds = %1921, %1844
  %1857 = load i32, ptr %34, align 4, !tbaa !9
  %1858 = load i32, ptr %135, align 4, !tbaa !9
  %1859 = icmp slt i32 %1857, %1858
  br i1 %1859, label %1860, label %1924

1860:                                             ; preds = %1856
  call void @llvm.lifetime.start.p0(i64 16, ptr %139) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %140) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %141) #10
  %1861 = load ptr, ptr %51, align 8, !tbaa !5
  %1862 = load i32, ptr %34, align 4, !tbaa !9
  %1863 = sext i32 %1862 to i64
  %1864 = getelementptr inbounds i32, ptr %1861, i64 %1863
  %1865 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %1864)
  store <2 x i64> %1865, ptr %139, align 16, !tbaa !11
  %1866 = load ptr, ptr %87, align 8, !tbaa !5
  %1867 = load i32, ptr %34, align 4, !tbaa !9
  %1868 = sext i32 %1867 to i64
  %1869 = getelementptr inbounds i8, ptr %1866, i64 %1868
  %1870 = load i8, ptr %1869, align 1, !tbaa !11
  %1871 = sext i8 %1870 to i32
  %1872 = load ptr, ptr %87, align 8, !tbaa !5
  %1873 = load i32, ptr %34, align 4, !tbaa !9
  %1874 = add nsw i32 %1873, 1
  %1875 = sext i32 %1874 to i64
  %1876 = getelementptr inbounds i8, ptr %1872, i64 %1875
  %1877 = load i8, ptr %1876, align 1, !tbaa !11
  %1878 = sext i8 %1877 to i32
  %1879 = load ptr, ptr %87, align 8, !tbaa !5
  %1880 = load i32, ptr %34, align 4, !tbaa !9
  %1881 = add nsw i32 %1880, 2
  %1882 = sext i32 %1881 to i64
  %1883 = getelementptr inbounds i8, ptr %1879, i64 %1882
  %1884 = load i8, ptr %1883, align 1, !tbaa !11
  %1885 = sext i8 %1884 to i32
  %1886 = load ptr, ptr %87, align 8, !tbaa !5
  %1887 = load i32, ptr %34, align 4, !tbaa !9
  %1888 = add nsw i32 %1887, 3
  %1889 = sext i32 %1888 to i64
  %1890 = getelementptr inbounds i8, ptr %1886, i64 %1889
  %1891 = load i8, ptr %1890, align 1, !tbaa !11
  %1892 = sext i8 %1891 to i32
  %1893 = call noundef <2 x i64> @_ZL14_mm_setr_epi32iiii(i32 noundef %1871, i32 noundef %1878, i32 noundef %1885, i32 noundef %1892)
  store <2 x i64> %1893, ptr %141, align 16, !tbaa !11
  %1894 = load <2 x i64>, ptr %139, align 16, !tbaa !11
  %1895 = load <2 x i64>, ptr %141, align 16, !tbaa !11
  %1896 = call noundef <2 x i64> @_ZL13_mm_add_epi32Dv2_xS_(<2 x i64> noundef %1894, <2 x i64> noundef %1895)
  store <2 x i64> %1896, ptr %139, align 16, !tbaa !11
  %1897 = load ptr, ptr %51, align 8, !tbaa !5
  %1898 = load i32, ptr %34, align 4, !tbaa !9
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds i32, ptr %1897, i64 %1899
  %1901 = load <2 x i64>, ptr %139, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %1900, <2 x i64> noundef %1901)
  %1902 = load i32, ptr %34, align 4, !tbaa !9
  %1903 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %1902)
  store <2 x i64> %1903, ptr %141, align 16, !tbaa !11
  %1904 = load <2 x i64>, ptr %139, align 16, !tbaa !11
  %1905 = load <2 x i64>, ptr %137, align 16, !tbaa !11
  %1906 = call noundef <2 x i64> @_ZL15_mm_cmpgt_epi32Dv2_xS_(<2 x i64> noundef %1904, <2 x i64> noundef %1905)
  store <2 x i64> %1906, ptr %140, align 16, !tbaa !11
  %1907 = load <2 x i64>, ptr %140, align 16, !tbaa !11
  %1908 = load <2 x i64>, ptr %139, align 16, !tbaa !11
  %1909 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1907, <2 x i64> noundef %1908)
  %1910 = load <2 x i64>, ptr %140, align 16, !tbaa !11
  %1911 = load <2 x i64>, ptr %137, align 16, !tbaa !11
  %1912 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1910, <2 x i64> noundef %1911)
  %1913 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1909, <2 x i64> noundef %1912)
  store <2 x i64> %1913, ptr %137, align 16, !tbaa !11
  %1914 = load <2 x i64>, ptr %140, align 16, !tbaa !11
  %1915 = load <2 x i64>, ptr %141, align 16, !tbaa !11
  %1916 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1914, <2 x i64> noundef %1915)
  %1917 = load <2 x i64>, ptr %140, align 16, !tbaa !11
  %1918 = load <2 x i64>, ptr %138, align 16, !tbaa !11
  %1919 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1917, <2 x i64> noundef %1918)
  %1920 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1916, <2 x i64> noundef %1919)
  store <2 x i64> %1920, ptr %138, align 16, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 16, ptr %141) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %139) #10
  br label %1921

1921:                                             ; preds = %1860
  %1922 = load i32, ptr %34, align 4, !tbaa !9
  %1923 = add nsw i32 %1922, 4
  store i32 %1923, ptr %34, align 4, !tbaa !9
  br label %1856, !llvm.loop !21

1924:                                             ; preds = %1856
  %1925 = getelementptr inbounds [4 x i32], ptr %133, i64 0, i64 0
  %1926 = load <2 x i64>, ptr %137, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %1925, <2 x i64> noundef %1926)
  %1927 = getelementptr inbounds [4 x i32], ptr %134, i64 0, i64 0
  %1928 = load <2 x i64>, ptr %138, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %1927, <2 x i64> noundef %1928)
  store i32 0, ptr %136, align 4, !tbaa !9
  br label %1929

1929:                                             ; preds = %1951, %1924
  %1930 = load i32, ptr %136, align 4, !tbaa !9
  %1931 = icmp slt i32 %1930, 4
  br i1 %1931, label %1932, label %1954

1932:                                             ; preds = %1929
  %1933 = load i32, ptr %131, align 4, !tbaa !9
  %1934 = load i32, ptr %136, align 4, !tbaa !9
  %1935 = sext i32 %1934 to i64
  %1936 = getelementptr inbounds [4 x i32], ptr %133, i64 0, i64 %1935
  %1937 = load i32, ptr %1936, align 4, !tbaa !9
  %1938 = icmp slt i32 %1933, %1937
  br i1 %1938, label %1939, label %1950

1939:                                             ; preds = %1932
  %1940 = load i32, ptr %136, align 4, !tbaa !9
  %1941 = sext i32 %1940 to i64
  %1942 = getelementptr inbounds [4 x i32], ptr %133, i64 0, i64 %1941
  %1943 = load i32, ptr %1942, align 4, !tbaa !9
  store i32 %1943, ptr %131, align 4, !tbaa !9
  %1944 = load i32, ptr %136, align 4, !tbaa !9
  %1945 = sext i32 %1944 to i64
  %1946 = getelementptr inbounds [4 x i32], ptr %134, i64 0, i64 %1945
  %1947 = load i32, ptr %1946, align 4, !tbaa !9
  %1948 = load i32, ptr %136, align 4, !tbaa !9
  %1949 = add nsw i32 %1947, %1948
  store i32 %1949, ptr %132, align 4, !tbaa !9
  br label %1950

1950:                                             ; preds = %1939, %1932
  br label %1951

1951:                                             ; preds = %1950
  %1952 = load i32, ptr %136, align 4, !tbaa !9
  %1953 = add nsw i32 %1952, 1
  store i32 %1953, ptr %136, align 4, !tbaa !9
  br label %1929, !llvm.loop !22

1954:                                             ; preds = %1929
  br label %1955

1955:                                             ; preds = %1987, %1954
  %1956 = load i32, ptr %34, align 4, !tbaa !9
  %1957 = load i32, ptr %79, align 4, !tbaa !9
  %1958 = icmp slt i32 %1956, %1957
  br i1 %1958, label %1959, label %1990

1959:                                             ; preds = %1955
  %1960 = load ptr, ptr %87, align 8, !tbaa !5
  %1961 = load i32, ptr %34, align 4, !tbaa !9
  %1962 = sext i32 %1961 to i64
  %1963 = getelementptr inbounds i8, ptr %1960, i64 %1962
  %1964 = load i8, ptr %1963, align 1, !tbaa !11
  %1965 = sext i8 %1964 to i32
  %1966 = load ptr, ptr %51, align 8, !tbaa !5
  %1967 = load i32, ptr %34, align 4, !tbaa !9
  %1968 = sext i32 %1967 to i64
  %1969 = getelementptr inbounds i32, ptr %1966, i64 %1968
  %1970 = load i32, ptr %1969, align 4, !tbaa !9
  %1971 = add nsw i32 %1970, %1965
  store i32 %1971, ptr %1969, align 4, !tbaa !9
  %1972 = load ptr, ptr %51, align 8, !tbaa !5
  %1973 = load i32, ptr %34, align 4, !tbaa !9
  %1974 = sext i32 %1973 to i64
  %1975 = getelementptr inbounds i32, ptr %1972, i64 %1974
  %1976 = load i32, ptr %1975, align 4, !tbaa !9
  %1977 = load i32, ptr %131, align 4, !tbaa !9
  %1978 = icmp sgt i32 %1976, %1977
  br i1 %1978, label %1979, label %1986

1979:                                             ; preds = %1959
  %1980 = load ptr, ptr %51, align 8, !tbaa !5
  %1981 = load i32, ptr %34, align 4, !tbaa !9
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds i32, ptr %1980, i64 %1982
  %1984 = load i32, ptr %1983, align 4, !tbaa !9
  store i32 %1984, ptr %131, align 4, !tbaa !9
  %1985 = load i32, ptr %34, align 4, !tbaa !9
  store i32 %1985, ptr %132, align 4, !tbaa !9
  br label %1986

1986:                                             ; preds = %1979, %1959
  br label %1987

1987:                                             ; preds = %1986
  %1988 = load i32, ptr %34, align 4, !tbaa !9
  %1989 = add nsw i32 %1988, 1
  store i32 %1989, ptr %34, align 4, !tbaa !9
  br label %1955, !llvm.loop !23

1990:                                             ; preds = %1955
  call void @llvm.lifetime.end.p0(i64 16, ptr %138) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %137) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %134) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %133) #10
  br label %2003

1991:                                             ; preds = %1804
  %1992 = load ptr, ptr %87, align 8, !tbaa !5
  %1993 = getelementptr inbounds i8, ptr %1992, i64 0
  %1994 = load i8, ptr %1993, align 1, !tbaa !11
  %1995 = sext i8 %1994 to i32
  %1996 = load i32, ptr %35, align 4, !tbaa !9
  %1997 = sub nsw i32 %1995, %1996
  %1998 = load ptr, ptr %51, align 8, !tbaa !5
  %1999 = getelementptr inbounds i32, ptr %1998, i64 0
  store i32 %1997, ptr %1999, align 4, !tbaa !9
  %2000 = load ptr, ptr %51, align 8, !tbaa !5
  %2001 = getelementptr inbounds i32, ptr %2000, i64 0
  %2002 = load i32, ptr %2001, align 4, !tbaa !9
  store i32 %2002, ptr %131, align 4, !tbaa !9
  store i32 0, ptr %132, align 4, !tbaa !9
  br label %2003

2003:                                             ; preds = %1991, %1990
  %2004 = load i32, ptr %79, align 4, !tbaa !9
  %2005 = load i32, ptr %20, align 4, !tbaa !9
  %2006 = sub nsw i32 %2005, 1
  %2007 = icmp eq i32 %2004, %2006
  br i1 %2007, label %2008, label %2031

2008:                                             ; preds = %2003
  %2009 = load ptr, ptr %51, align 8, !tbaa !5
  %2010 = load i32, ptr %79, align 4, !tbaa !9
  %2011 = sext i32 %2010 to i64
  %2012 = getelementptr inbounds i32, ptr %2009, i64 %2011
  %2013 = load i32, ptr %2012, align 4, !tbaa !9
  %2014 = load ptr, ptr %32, align 8, !tbaa !5
  %2015 = getelementptr inbounds %struct.ksw_extz_t, ptr %2014, i32 0, i32 5
  %2016 = load i32, ptr %2015, align 4, !tbaa !24
  %2017 = icmp sgt i32 %2013, %2016
  br i1 %2017, label %2018, label %2031

2018:                                             ; preds = %2008
  %2019 = load ptr, ptr %51, align 8, !tbaa !5
  %2020 = load i32, ptr %79, align 4, !tbaa !9
  %2021 = sext i32 %2020 to i64
  %2022 = getelementptr inbounds i32, ptr %2019, i64 %2021
  %2023 = load i32, ptr %2022, align 4, !tbaa !9
  %2024 = load ptr, ptr %32, align 8, !tbaa !5
  %2025 = getelementptr inbounds %struct.ksw_extz_t, ptr %2024, i32 0, i32 5
  store i32 %2023, ptr %2025, align 4, !tbaa !24
  %2026 = load i32, ptr %33, align 4, !tbaa !9
  %2027 = load i32, ptr %77, align 4, !tbaa !9
  %2028 = sub nsw i32 %2026, %2027
  %2029 = load ptr, ptr %32, align 8, !tbaa !5
  %2030 = getelementptr inbounds %struct.ksw_extz_t, ptr %2029, i32 0, i32 6
  store i32 %2028, ptr %2030, align 8, !tbaa !26
  br label %2031

2031:                                             ; preds = %2018, %2008, %2003
  %2032 = load i32, ptr %33, align 4, !tbaa !9
  %2033 = load i32, ptr %78, align 4, !tbaa !9
  %2034 = sub nsw i32 %2032, %2033
  %2035 = load i32, ptr %18, align 4, !tbaa !9
  %2036 = sub nsw i32 %2035, 1
  %2037 = icmp eq i32 %2034, %2036
  br i1 %2037, label %2038, label %2059

2038:                                             ; preds = %2031
  %2039 = load ptr, ptr %51, align 8, !tbaa !5
  %2040 = load i32, ptr %78, align 4, !tbaa !9
  %2041 = sext i32 %2040 to i64
  %2042 = getelementptr inbounds i32, ptr %2039, i64 %2041
  %2043 = load i32, ptr %2042, align 4, !tbaa !9
  %2044 = load ptr, ptr %32, align 8, !tbaa !5
  %2045 = getelementptr inbounds %struct.ksw_extz_t, ptr %2044, i32 0, i32 3
  %2046 = load i32, ptr %2045, align 4, !tbaa !27
  %2047 = icmp sgt i32 %2043, %2046
  br i1 %2047, label %2048, label %2059

2048:                                             ; preds = %2038
  %2049 = load ptr, ptr %51, align 8, !tbaa !5
  %2050 = load i32, ptr %78, align 4, !tbaa !9
  %2051 = sext i32 %2050 to i64
  %2052 = getelementptr inbounds i32, ptr %2049, i64 %2051
  %2053 = load i32, ptr %2052, align 4, !tbaa !9
  %2054 = load ptr, ptr %32, align 8, !tbaa !5
  %2055 = getelementptr inbounds %struct.ksw_extz_t, ptr %2054, i32 0, i32 3
  store i32 %2053, ptr %2055, align 4, !tbaa !27
  %2056 = load i32, ptr %78, align 4, !tbaa !9
  %2057 = load ptr, ptr %32, align 8, !tbaa !5
  %2058 = getelementptr inbounds %struct.ksw_extz_t, ptr %2057, i32 0, i32 4
  store i32 %2056, ptr %2058, align 8, !tbaa !28
  br label %2059

2059:                                             ; preds = %2048, %2038, %2031
  %2060 = load ptr, ptr %32, align 8, !tbaa !5
  %2061 = load i32, ptr %131, align 4, !tbaa !9
  %2062 = load i32, ptr %33, align 4, !tbaa !9
  %2063 = load i32, ptr %132, align 4, !tbaa !9
  %2064 = load i32, ptr %29, align 4, !tbaa !9
  %2065 = load i8, ptr %27, align 1, !tbaa !11
  %2066 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %2060, i32 noundef 1, i32 noundef %2061, i32 noundef %2062, i32 noundef %2063, i32 noundef %2064, i8 noundef signext %2065)
  %2067 = icmp ne i32 %2066, 0
  br i1 %2067, label %2068, label %2069

2068:                                             ; preds = %2059
  store i32 11, ptr %75, align 4
  br label %2091

2069:                                             ; preds = %2059
  %2070 = load i32, ptr %33, align 4, !tbaa !9
  %2071 = load i32, ptr %18, align 4, !tbaa !9
  %2072 = load i32, ptr %20, align 4, !tbaa !9
  %2073 = add nsw i32 %2071, %2072
  %2074 = sub nsw i32 %2073, 2
  %2075 = icmp eq i32 %2070, %2074
  br i1 %2075, label %2076, label %2090

2076:                                             ; preds = %2069
  %2077 = load i32, ptr %79, align 4, !tbaa !9
  %2078 = load i32, ptr %20, align 4, !tbaa !9
  %2079 = sub nsw i32 %2078, 1
  %2080 = icmp eq i32 %2077, %2079
  br i1 %2080, label %2081, label %2090

2081:                                             ; preds = %2076
  %2082 = load ptr, ptr %51, align 8, !tbaa !5
  %2083 = load i32, ptr %20, align 4, !tbaa !9
  %2084 = sub nsw i32 %2083, 1
  %2085 = sext i32 %2084 to i64
  %2086 = getelementptr inbounds i32, ptr %2082, i64 %2085
  %2087 = load i32, ptr %2086, align 4, !tbaa !9
  %2088 = load ptr, ptr %32, align 8, !tbaa !5
  %2089 = getelementptr inbounds %struct.ksw_extz_t, ptr %2088, i32 0, i32 7
  store i32 %2087, ptr %2089, align 4, !tbaa !29
  br label %2090

2090:                                             ; preds = %2081, %2076, %2069
  store i32 0, ptr %75, align 4
  br label %2091

2091:                                             ; preds = %2090, %2068
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  %2092 = load i32, ptr %75, align 4
  switch i32 %2092, label %2214 [
    i32 0, label %2093
  ]

2093:                                             ; preds = %2091
  br label %2211

2094:                                             ; preds = %1801
  %2095 = load i32, ptr %33, align 4, !tbaa !9
  %2096 = icmp sgt i32 %2095, 0
  br i1 %2096, label %2097, label %2173

2097:                                             ; preds = %2094
  %2098 = load i32, ptr %53, align 4, !tbaa !9
  %2099 = load i32, ptr %78, align 4, !tbaa !9
  %2100 = icmp sge i32 %2098, %2099
  br i1 %2100, label %2101, label %2143

2101:                                             ; preds = %2097
  %2102 = load i32, ptr %53, align 4, !tbaa !9
  %2103 = load i32, ptr %79, align 4, !tbaa !9
  %2104 = icmp sle i32 %2102, %2103
  br i1 %2104, label %2105, label %2143

2105:                                             ; preds = %2101
  %2106 = load i32, ptr %53, align 4, !tbaa !9
  %2107 = add nsw i32 %2106, 1
  %2108 = load i32, ptr %78, align 4, !tbaa !9
  %2109 = icmp sge i32 %2107, %2108
  br i1 %2109, label %2110, label %2143

2110:                                             ; preds = %2105
  %2111 = load i32, ptr %53, align 4, !tbaa !9
  %2112 = add nsw i32 %2111, 1
  %2113 = load i32, ptr %79, align 4, !tbaa !9
  %2114 = icmp sle i32 %2112, %2113
  br i1 %2114, label %2115, label %2143

2115:                                             ; preds = %2110
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %2116 = load ptr, ptr %87, align 8, !tbaa !5
  %2117 = load i32, ptr %53, align 4, !tbaa !9
  %2118 = sext i32 %2117 to i64
  %2119 = getelementptr inbounds i8, ptr %2116, i64 %2118
  %2120 = load i8, ptr %2119, align 1, !tbaa !11
  %2121 = sext i8 %2120 to i32
  store i32 %2121, ptr %142, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #10
  %2122 = load ptr, ptr %86, align 8, !tbaa !5
  %2123 = load i32, ptr %53, align 4, !tbaa !9
  %2124 = add nsw i32 %2123, 1
  %2125 = sext i32 %2124 to i64
  %2126 = getelementptr inbounds i8, ptr %2122, i64 %2125
  %2127 = load i8, ptr %2126, align 1, !tbaa !11
  %2128 = sext i8 %2127 to i32
  store i32 %2128, ptr %143, align 4, !tbaa !9
  %2129 = load i32, ptr %142, align 4, !tbaa !9
  %2130 = load i32, ptr %143, align 4, !tbaa !9
  %2131 = icmp sgt i32 %2129, %2130
  br i1 %2131, label %2132, label %2136

2132:                                             ; preds = %2115
  %2133 = load i32, ptr %142, align 4, !tbaa !9
  %2134 = load i32, ptr %52, align 4, !tbaa !9
  %2135 = add nsw i32 %2134, %2133
  store i32 %2135, ptr %52, align 4, !tbaa !9
  br label %2142

2136:                                             ; preds = %2115
  %2137 = load i32, ptr %143, align 4, !tbaa !9
  %2138 = load i32, ptr %52, align 4, !tbaa !9
  %2139 = add nsw i32 %2138, %2137
  store i32 %2139, ptr %52, align 4, !tbaa !9
  %2140 = load i32, ptr %53, align 4, !tbaa !9
  %2141 = add nsw i32 %2140, 1
  store i32 %2141, ptr %53, align 4, !tbaa !9
  br label %2142

2142:                                             ; preds = %2136, %2132
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %2172

2143:                                             ; preds = %2110, %2105, %2101, %2097
  %2144 = load i32, ptr %53, align 4, !tbaa !9
  %2145 = load i32, ptr %78, align 4, !tbaa !9
  %2146 = icmp sge i32 %2144, %2145
  br i1 %2146, label %2147, label %2160

2147:                                             ; preds = %2143
  %2148 = load i32, ptr %53, align 4, !tbaa !9
  %2149 = load i32, ptr %79, align 4, !tbaa !9
  %2150 = icmp sle i32 %2148, %2149
  br i1 %2150, label %2151, label %2160

2151:                                             ; preds = %2147
  %2152 = load ptr, ptr %87, align 8, !tbaa !5
  %2153 = load i32, ptr %53, align 4, !tbaa !9
  %2154 = sext i32 %2153 to i64
  %2155 = getelementptr inbounds i8, ptr %2152, i64 %2154
  %2156 = load i8, ptr %2155, align 1, !tbaa !11
  %2157 = sext i8 %2156 to i32
  %2158 = load i32, ptr %52, align 4, !tbaa !9
  %2159 = add nsw i32 %2158, %2157
  store i32 %2159, ptr %52, align 4, !tbaa !9
  br label %2171

2160:                                             ; preds = %2147, %2143
  %2161 = load i32, ptr %53, align 4, !tbaa !9
  %2162 = add nsw i32 %2161, 1
  store i32 %2162, ptr %53, align 4, !tbaa !9
  %2163 = load ptr, ptr %86, align 8, !tbaa !5
  %2164 = load i32, ptr %53, align 4, !tbaa !9
  %2165 = sext i32 %2164 to i64
  %2166 = getelementptr inbounds i8, ptr %2163, i64 %2165
  %2167 = load i8, ptr %2166, align 1, !tbaa !11
  %2168 = sext i8 %2167 to i32
  %2169 = load i32, ptr %52, align 4, !tbaa !9
  %2170 = add nsw i32 %2169, %2168
  store i32 %2170, ptr %52, align 4, !tbaa !9
  br label %2171

2171:                                             ; preds = %2160, %2151
  br label %2172

2172:                                             ; preds = %2171, %2142
  br label %2180

2173:                                             ; preds = %2094
  %2174 = load ptr, ptr %87, align 8, !tbaa !5
  %2175 = getelementptr inbounds i8, ptr %2174, i64 0
  %2176 = load i8, ptr %2175, align 1, !tbaa !11
  %2177 = sext i8 %2176 to i32
  %2178 = load i32, ptr %35, align 4, !tbaa !9
  %2179 = sub nsw i32 %2177, %2178
  store i32 %2179, ptr %52, align 4, !tbaa !9
  store i32 0, ptr %53, align 4, !tbaa !9
  br label %2180

2180:                                             ; preds = %2173, %2172
  %2181 = load i32, ptr %31, align 4, !tbaa !9
  %2182 = and i32 %2181, 16
  %2183 = icmp ne i32 %2182, 0
  br i1 %2183, label %2184, label %2194

2184:                                             ; preds = %2180
  %2185 = load ptr, ptr %32, align 8, !tbaa !5
  %2186 = load i32, ptr %52, align 4, !tbaa !9
  %2187 = load i32, ptr %33, align 4, !tbaa !9
  %2188 = load i32, ptr %53, align 4, !tbaa !9
  %2189 = load i32, ptr %29, align 4, !tbaa !9
  %2190 = load i8, ptr %27, align 1, !tbaa !11
  %2191 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %2185, i32 noundef 1, i32 noundef %2186, i32 noundef %2187, i32 noundef %2188, i32 noundef %2189, i8 noundef signext %2190)
  %2192 = icmp ne i32 %2191, 0
  br i1 %2192, label %2193, label %2194

2193:                                             ; preds = %2184
  store i32 11, ptr %75, align 4
  br label %2214

2194:                                             ; preds = %2184, %2180
  %2195 = load i32, ptr %33, align 4, !tbaa !9
  %2196 = load i32, ptr %18, align 4, !tbaa !9
  %2197 = load i32, ptr %20, align 4, !tbaa !9
  %2198 = add nsw i32 %2196, %2197
  %2199 = sub nsw i32 %2198, 2
  %2200 = icmp eq i32 %2195, %2199
  br i1 %2200, label %2201, label %2210

2201:                                             ; preds = %2194
  %2202 = load i32, ptr %79, align 4, !tbaa !9
  %2203 = load i32, ptr %20, align 4, !tbaa !9
  %2204 = sub nsw i32 %2203, 1
  %2205 = icmp eq i32 %2202, %2204
  br i1 %2205, label %2206, label %2210

2206:                                             ; preds = %2201
  %2207 = load i32, ptr %52, align 4, !tbaa !9
  %2208 = load ptr, ptr %32, align 8, !tbaa !5
  %2209 = getelementptr inbounds %struct.ksw_extz_t, ptr %2208, i32 0, i32 7
  store i32 %2207, ptr %2209, align 4, !tbaa !29
  br label %2210

2210:                                             ; preds = %2206, %2201, %2194
  br label %2211

2211:                                             ; preds = %2210, %2093
  %2212 = load i32, ptr %76, align 4, !tbaa !9
  store i32 %2212, ptr %41, align 4, !tbaa !9
  %2213 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %2213, ptr %42, align 4, !tbaa !9
  store i32 0, ptr %75, align 4
  br label %2214

2214:                                             ; preds = %2211, %2193, %2091, %700
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  %2215 = load i32, ptr %75, align 4
  switch i32 %2215, label %2341 [
    i32 0, label %2216
    i32 11, label %2220
  ]

2216:                                             ; preds = %2214
  br label %2217

2217:                                             ; preds = %2216
  %2218 = load i32, ptr %33, align 4, !tbaa !9
  %2219 = add nsw i32 %2218, 1
  store i32 %2219, ptr %33, align 4, !tbaa !9
  br label %632, !llvm.loop !30

2220:                                             ; preds = %2214, %632
  %2221 = load ptr, ptr %56, align 8, !tbaa !5
  call void @seq_free(ptr noundef %2221)
  %2222 = load i32, ptr %50, align 4, !tbaa !9
  %2223 = icmp ne i32 %2222, 0
  br i1 %2223, label %2226, label %2224

2224:                                             ; preds = %2220
  %2225 = load ptr, ptr %51, align 8, !tbaa !5
  call void @seq_free(ptr noundef %2225)
  br label %2226

2226:                                             ; preds = %2224, %2220
  %2227 = load i32, ptr %49, align 4, !tbaa !9
  %2228 = icmp ne i32 %2227, 0
  br i1 %2228, label %2229, label %2337

2229:                                             ; preds = %2226
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #10
  %2230 = load i32, ptr %31, align 4, !tbaa !9
  %2231 = and i32 %2230, 128
  %2232 = icmp ne i32 %2231, 0
  %2233 = xor i1 %2232, true
  %2234 = xor i1 %2233, true
  %2235 = zext i1 %2234 to i32
  store i32 %2235, ptr %144, align 4, !tbaa !9
  %2236 = load ptr, ptr %32, align 8, !tbaa !5
  %2237 = load i32, ptr %2236, align 8
  %2238 = lshr i32 %2237, 31
  %2239 = icmp ne i32 %2238, 0
  br i1 %2239, label %2262, label %2240

2240:                                             ; preds = %2229
  %2241 = load i32, ptr %31, align 4, !tbaa !9
  %2242 = and i32 %2241, 64
  %2243 = icmp ne i32 %2242, 0
  br i1 %2243, label %2262, label %2244

2244:                                             ; preds = %2240
  %2245 = load ptr, ptr %17, align 8, !tbaa !5
  %2246 = load i32, ptr %144, align 4, !tbaa !9
  %2247 = load ptr, ptr %74, align 8, !tbaa !5
  %2248 = load ptr, ptr %37, align 8, !tbaa !5
  %2249 = load ptr, ptr %38, align 8, !tbaa !5
  %2250 = load i32, ptr %36, align 4, !tbaa !9
  %2251 = mul nsw i32 %2250, 16
  %2252 = load i32, ptr %20, align 4, !tbaa !9
  %2253 = sub nsw i32 %2252, 1
  %2254 = load i32, ptr %18, align 4, !tbaa !9
  %2255 = sub nsw i32 %2254, 1
  %2256 = load ptr, ptr %32, align 8, !tbaa !5
  %2257 = getelementptr inbounds %struct.ksw_extz_t, ptr %2256, i32 0, i32 8
  %2258 = load ptr, ptr %32, align 8, !tbaa !5
  %2259 = getelementptr inbounds %struct.ksw_extz_t, ptr %2258, i32 0, i32 9
  %2260 = load ptr, ptr %32, align 8, !tbaa !5
  %2261 = getelementptr inbounds %struct.ksw_extz_t, ptr %2260, i32 0, i32 11
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %2245, i32 noundef 1, i32 noundef %2246, i32 noundef 0, ptr noundef %2247, ptr noundef %2248, ptr noundef %2249, i32 noundef %2251, i32 noundef %2253, i32 noundef %2255, ptr noundef %2257, ptr noundef %2259, ptr noundef %2261)
  br label %2334

2262:                                             ; preds = %2240, %2229
  %2263 = load ptr, ptr %32, align 8, !tbaa !5
  %2264 = load i32, ptr %2263, align 8
  %2265 = lshr i32 %2264, 31
  %2266 = icmp ne i32 %2265, 0
  br i1 %2266, label %2302, label %2267

2267:                                             ; preds = %2262
  %2268 = load i32, ptr %31, align 4, !tbaa !9
  %2269 = and i32 %2268, 64
  %2270 = icmp ne i32 %2269, 0
  br i1 %2270, label %2271, label %2302

2271:                                             ; preds = %2267
  %2272 = load ptr, ptr %32, align 8, !tbaa !5
  %2273 = getelementptr inbounds %struct.ksw_extz_t, ptr %2272, i32 0, i32 3
  %2274 = load i32, ptr %2273, align 4, !tbaa !27
  %2275 = load i32, ptr %30, align 4, !tbaa !9
  %2276 = add nsw i32 %2274, %2275
  %2277 = load ptr, ptr %32, align 8, !tbaa !5
  %2278 = load i32, ptr %2277, align 8
  %2279 = and i32 %2278, 2147483647
  %2280 = icmp sgt i32 %2276, %2279
  br i1 %2280, label %2281, label %2302

2281:                                             ; preds = %2271
  %2282 = load ptr, ptr %32, align 8, !tbaa !5
  %2283 = getelementptr inbounds %struct.ksw_extz_t, ptr %2282, i32 0, i32 10
  store i32 1, ptr %2283, align 8, !tbaa !31
  %2284 = load ptr, ptr %17, align 8, !tbaa !5
  %2285 = load i32, ptr %144, align 4, !tbaa !9
  %2286 = load ptr, ptr %74, align 8, !tbaa !5
  %2287 = load ptr, ptr %37, align 8, !tbaa !5
  %2288 = load ptr, ptr %38, align 8, !tbaa !5
  %2289 = load i32, ptr %36, align 4, !tbaa !9
  %2290 = mul nsw i32 %2289, 16
  %2291 = load ptr, ptr %32, align 8, !tbaa !5
  %2292 = getelementptr inbounds %struct.ksw_extz_t, ptr %2291, i32 0, i32 4
  %2293 = load i32, ptr %2292, align 8, !tbaa !28
  %2294 = load i32, ptr %18, align 4, !tbaa !9
  %2295 = sub nsw i32 %2294, 1
  %2296 = load ptr, ptr %32, align 8, !tbaa !5
  %2297 = getelementptr inbounds %struct.ksw_extz_t, ptr %2296, i32 0, i32 8
  %2298 = load ptr, ptr %32, align 8, !tbaa !5
  %2299 = getelementptr inbounds %struct.ksw_extz_t, ptr %2298, i32 0, i32 9
  %2300 = load ptr, ptr %32, align 8, !tbaa !5
  %2301 = getelementptr inbounds %struct.ksw_extz_t, ptr %2300, i32 0, i32 11
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %2284, i32 noundef 1, i32 noundef %2285, i32 noundef 0, ptr noundef %2286, ptr noundef %2287, ptr noundef %2288, i32 noundef %2290, i32 noundef %2293, i32 noundef %2295, ptr noundef %2297, ptr noundef %2299, ptr noundef %2301)
  br label %2333

2302:                                             ; preds = %2271, %2267, %2262
  %2303 = load ptr, ptr %32, align 8, !tbaa !5
  %2304 = getelementptr inbounds %struct.ksw_extz_t, ptr %2303, i32 0, i32 2
  %2305 = load i32, ptr %2304, align 8, !tbaa !32
  %2306 = icmp sge i32 %2305, 0
  br i1 %2306, label %2307, label %2332

2307:                                             ; preds = %2302
  %2308 = load ptr, ptr %32, align 8, !tbaa !5
  %2309 = getelementptr inbounds %struct.ksw_extz_t, ptr %2308, i32 0, i32 1
  %2310 = load i32, ptr %2309, align 4, !tbaa !33
  %2311 = icmp sge i32 %2310, 0
  br i1 %2311, label %2312, label %2332

2312:                                             ; preds = %2307
  %2313 = load ptr, ptr %17, align 8, !tbaa !5
  %2314 = load i32, ptr %144, align 4, !tbaa !9
  %2315 = load ptr, ptr %74, align 8, !tbaa !5
  %2316 = load ptr, ptr %37, align 8, !tbaa !5
  %2317 = load ptr, ptr %38, align 8, !tbaa !5
  %2318 = load i32, ptr %36, align 4, !tbaa !9
  %2319 = mul nsw i32 %2318, 16
  %2320 = load ptr, ptr %32, align 8, !tbaa !5
  %2321 = getelementptr inbounds %struct.ksw_extz_t, ptr %2320, i32 0, i32 2
  %2322 = load i32, ptr %2321, align 8, !tbaa !32
  %2323 = load ptr, ptr %32, align 8, !tbaa !5
  %2324 = getelementptr inbounds %struct.ksw_extz_t, ptr %2323, i32 0, i32 1
  %2325 = load i32, ptr %2324, align 4, !tbaa !33
  %2326 = load ptr, ptr %32, align 8, !tbaa !5
  %2327 = getelementptr inbounds %struct.ksw_extz_t, ptr %2326, i32 0, i32 8
  %2328 = load ptr, ptr %32, align 8, !tbaa !5
  %2329 = getelementptr inbounds %struct.ksw_extz_t, ptr %2328, i32 0, i32 9
  %2330 = load ptr, ptr %32, align 8, !tbaa !5
  %2331 = getelementptr inbounds %struct.ksw_extz_t, ptr %2330, i32 0, i32 11
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %2313, i32 noundef 1, i32 noundef %2314, i32 noundef 0, ptr noundef %2315, ptr noundef %2316, ptr noundef %2317, i32 noundef %2319, i32 noundef %2322, i32 noundef %2325, ptr noundef %2327, ptr noundef %2329, ptr noundef %2331)
  br label %2332

2332:                                             ; preds = %2312, %2307, %2302
  br label %2333

2333:                                             ; preds = %2332, %2281
  br label %2334

2334:                                             ; preds = %2333, %2244
  %2335 = load ptr, ptr %57, align 8, !tbaa !5
  call void @seq_free(ptr noundef %2335)
  %2336 = load ptr, ptr %37, align 8, !tbaa !5
  call void @seq_free(ptr noundef %2336)
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #10
  br label %2337

2337:                                             ; preds = %2334, %2226
  store i32 0, ptr %75, align 4
  br label %2338

2338:                                             ; preds = %2337, %371, %171
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  %2339 = load i32, ptr %75, align 4
  switch i32 %2339, label %2341 [
    i32 0, label %2340
    i32 1, label %2340
  ]

2340:                                             ; preds = %2338, %2338
  ret void

2341:                                             ; preds = %2338, %2214
  unreachable
}

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare hidden noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext) #3

declare ptr @seq_calloc_atomic(i64 noundef, i64 noundef) #4

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

declare ptr @seq_alloc_atomic(i64 noundef) #4

; 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) #6

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef, <2 x i64> noundef) #7

; 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 hidden noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef) #7

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_cmplt_epi8Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef, <2 x i64> noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) #7

; Function Attrs: alwaysinline mustprogress uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef) #3

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_setr_epi32iiii(i32 noundef, i32 noundef, i32 noundef, i32 noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL13_mm_add_epi32Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL15_mm_cmpgt_epi32Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef signext) #2

declare void @seq_free(ptr noundef) #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) #9

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = distinct !{!16, !13}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !13}
!24 = !{!25, !10, i64 20}
!25 = !{!"_ZTS10ksw_extz_t", !10, i64 0, !10, i64 3, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !6, i64 48}
!26 = !{!25, !10, i64 24}
!27 = !{!25, !10, i64 12}
!28 = !{!25, !10, i64 16}
!29 = !{!25, !10, i64 28}
!30 = distinct !{!30, !13}
!31 = !{!25, !10, i64 40}
!32 = !{!25, !10, i64 8}
!33 = !{!25, !10, i64 4}


; 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"

@.str = external hidden unnamed_addr constant [24 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [76 x i8], align 1
@__PRETTY_FUNCTION__.ksw_extd2_sse = external hidden unnamed_addr constant [161 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @ksw_extd2_sse(ptr noundef %0, i32 noundef %1, ptr nocapture noundef readonly %2, i32 noundef %3, ptr nocapture noundef readonly %4, i8 noundef signext %5, ptr nocapture noundef readonly %6, i8 noundef signext %7, i8 noundef signext %8, i8 noundef signext %9, i8 noundef signext %10, i32 noundef %11, i32 noundef %12, i32 noundef %13, i32 noundef %14, ptr noundef %15) local_unnamed_addr #0 {
  %17 = alloca [4 x i32], align 16
  %18 = alloca [4 x i32], align 16
  %19 = sext i8 %7 to i32
  %20 = sext i8 %8 to i32
  %21 = add nsw i32 %20, %19
  %22 = and i32 %14, 1
  %.not = icmp eq i32 %22, 0
  %23 = and i32 %14, 8
  %.not1003 = icmp eq i32 %23, 0
  tail call void @_ZL14ksw_reset_extzP10ksw_extz_t(ptr noundef %15)
  %24 = sext i8 %5 to i32
  %25 = icmp slt i8 %5, 2
  %26 = icmp slt i32 %1, 1
  %or.cond = or i1 %26, %25
  %27 = icmp slt i32 %3, 1
  %or.cond3 = or i1 %27, %or.cond
  br i1 %or.cond3, label %814, label %28

28:                                               ; preds = %16
  %29 = sext i8 %9 to i32
  %30 = sext i8 %10 to i32
  %31 = add nsw i32 %30, %29
  %32 = icmp slt i32 %31, %21
  br i1 %32, label %33, label %34

33:                                               ; preds = %28
  br label %34

34:                                               ; preds = %33, %28
  %.pre-phi1179 = phi i32 [ %21, %33 ], [ %31, %28 ]
  %.pre-phi1178 = phi i32 [ %20, %33 ], [ %30, %28 ]
  %.pre-phi1177 = phi i32 [ %19, %33 ], [ %29, %28 ]
  %.pre-phi1176 = phi i32 [ %31, %33 ], [ %21, %28 ]
  %.pre-phi1175 = phi i32 [ %30, %33 ], [ %20, %28 ]
  %.pre-phi = phi i32 [ %29, %33 ], [ %19, %28 ]
  %.0921 = phi i8 [ %8, %33 ], [ %10, %28 ]
  %.0920 = phi i8 [ %7, %33 ], [ %9, %28 ]
  %.0 = phi i8 [ %9, %33 ], [ %7, %28 ]
  %35 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 0)
  %36 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %.0)
  %37 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %.0920)
  %38 = trunc i32 %.pre-phi1176 to i8
  %39 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %38)
  %40 = trunc i32 %.pre-phi1179 to i8
  %41 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %40)
  %42 = load i8, ptr %6, align 1, !tbaa !5
  %43 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %42)
  %44 = getelementptr inbounds i8, ptr %6, i64 1
  %45 = load i8, ptr %44, align 1, !tbaa !5
  %46 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %45)
  %47 = mul nuw nsw i32 %24, %24
  %48 = zext nneg i32 %47 to i64
  %49 = getelementptr i8, ptr %6, i64 %48
  %50 = getelementptr i8, ptr %49, i64 -1
  %51 = load i8, ptr %50, align 1, !tbaa !5
  %52 = icmp eq i8 %51, 0
  %53 = sub i8 0, %.0921
  %.sink = select i1 %52, i8 %53, i8 %51
  %54 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %.sink)
  %55 = add nsw i8 %5, -1
  %56 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %55)
  %57 = icmp slt i32 %11, 0
  %58 = tail call i32 @llvm.umax.i32(i32 %3, i32 %1)
  %.0922 = select i1 %57, i32 %58, i32 %11
  %59 = add nuw i32 %3, 15
  %60 = lshr i32 %59, 4
  %61 = tail call i32 @llvm.umin.i32(i32 %1, i32 %3)
  %62 = add nuw nsw i32 %.0922, 1
  %63 = tail call i32 @llvm.umin.i32(i32 %61, i32 %62)
  %64 = add nuw nsw i32 %63, 15
  %65 = lshr i32 %64, 4
  %66 = add nuw nsw i32 %65, 1
  %67 = add nuw nsw i32 %1, 15
  %68 = lshr i32 %67, 4
  %69 = load i8, ptr %44, align 1, !tbaa !5
  %70 = sext i8 %69 to i32
  %71 = icmp ugt i32 %47, 1
  br i1 %71, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %34
  %72 = add nsw i64 %48, -1
  %min.iters.check = icmp ult i32 %47, 9
  br i1 %min.iters.check, label %.lr.ph.preheader1242, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %72, -8
  %ind.end = or disjoint i64 %n.vec, 1
  %minmax.ident.splatinsert = insertelement <4 x i32> poison, i32 %70, i64 0
  %minmax.ident.splat = shufflevector <4 x i32> %minmax.ident.splatinsert, <4 x i32> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %vec.phi = phi <4 x i32> [ %minmax.ident.splat, %vector.ph ], [ %77, %vector.body ]
  %vec.phi1202 = phi <4 x i32> [ %minmax.ident.splat, %vector.ph ], [ %78, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %73 = getelementptr inbounds i8, ptr %6, i64 %offset.idx
  %74 = getelementptr inbounds i8, ptr %73, i64 4
  %wide.load = load <4 x i8>, ptr %73, align 1, !tbaa !5
  %wide.load1203 = load <4 x i8>, ptr %74, align 1, !tbaa !5
  %75 = sext <4 x i8> %wide.load to <4 x i32>
  %76 = sext <4 x i8> %wide.load1203 to <4 x i32>
  %77 = tail call <4 x i32> @llvm.smin.v4i32(<4 x i32> %vec.phi, <4 x i32> %75)
  %78 = tail call <4 x i32> @llvm.smin.v4i32(<4 x i32> %vec.phi1202, <4 x i32> %76)
  %index.next = add nuw i64 %index, 8
  %79 = icmp eq i64 %index.next, %n.vec
  br i1 %79, label %middle.block, label %vector.body, !llvm.loop !8

middle.block:                                     ; preds = %vector.body
  %rdx.minmax = tail call <4 x i32> @llvm.smin.v4i32(<4 x i32> %77, <4 x i32> %78)
  %80 = tail call i32 @llvm.vector.reduce.smin.v4i32(<4 x i32> %rdx.minmax)
  %cmp.n = icmp eq i64 %72, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.preheader1242

.lr.ph.preheader1242:                             ; preds = %middle.block, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %.09451066.ph = phi i32 [ %70, %.lr.ph.preheader ], [ %80, %middle.block ]
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader1242, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %indvars.iv.ph, %.lr.ph.preheader1242 ]
  %.09451066 = phi i32 [ %84, %.lr.ph ], [ %.09451066.ph, %.lr.ph.preheader1242 ]
  %81 = getelementptr inbounds i8, ptr %6, i64 %indvars.iv
  %82 = load i8, ptr %81, align 1, !tbaa !5
  %83 = sext i8 %82 to i32
  %84 = tail call i32 @llvm.smin.i32(i32 %.09451066, i32 %83)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %48
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !12

._crit_edge:                                      ; preds = %.lr.ph, %middle.block, %34
  %.0945.lcssa = phi i32 [ %70, %34 ], [ %80, %middle.block ], [ %84, %.lr.ph ]
  %85 = sub nsw i32 0, %.0945.lcssa
  %86 = shl nsw i32 %.pre-phi1176, 1
  %87 = icmp slt i32 %86, %85
  br i1 %87, label %814, label %88

88:                                               ; preds = %._crit_edge
  %.not1004 = icmp eq i8 %10, %8
  br i1 %.not1004, label %._crit_edge1181, label %89

._crit_edge1181:                                  ; preds = %88
  %.pre1182 = sub nsw i32 %.pre-phi1175, %.pre-phi1178
  br label %94

89:                                               ; preds = %88
  %90 = sub nsw i32 %.pre-phi1177, %.pre-phi
  %91 = sub nsw i32 %.pre-phi1175, %.pre-phi1178
  %92 = sdiv i32 %90, %91
  %93 = add nsw i32 %92, -1
  br label %94

94:                                               ; preds = %._crit_edge1181, %89
  %.pre-phi1183 = phi i32 [ %.pre1182, %._crit_edge1181 ], [ %91, %89 ]
  %95 = phi i32 [ 0, %._crit_edge1181 ], [ %93, %89 ]
  %96 = mul nsw i32 %95, %.pre-phi1178
  %97 = add nsw i32 %96, %.pre-phi1179
  %98 = mul nsw i32 %95, %.pre-phi1175
  %99 = add nsw i32 %98, %.pre-phi1176
  %100 = icmp sgt i32 %97, %99
  %101 = zext i1 %100 to i32
  %spec.select = add nsw i32 %95, %101
  %102 = mul nsw i32 %spec.select, %.pre-phi1183
  %103 = sub nsw i32 %.pre-phi, %.pre-phi1179
  %104 = add nsw i32 %103, %102
  %105 = shl nuw nsw i32 %60, 3
  %106 = add nuw nsw i32 %68, 1
  %107 = add nuw nsw i32 %106, %105
  %108 = zext nneg i32 %107 to i64
  %109 = tail call ptr @seq_calloc_atomic(i64 noundef %108, i64 noundef 16)
  %110 = ptrtoint ptr %109 to i64
  %111 = add i64 %110, 15
  %112 = and i64 %111, -16
  %113 = inttoptr i64 %112 to ptr
  %114 = zext nneg i32 %60 to i64
  %115 = getelementptr <2 x i64>, ptr %113, i64 %114
  %116 = getelementptr <2 x i64>, ptr %115, i64 %114
  %117 = getelementptr <2 x i64>, ptr %116, i64 %114
  %118 = getelementptr <2 x i64>, ptr %117, i64 %114
  %119 = getelementptr <2 x i64>, ptr %118, i64 %114
  %120 = getelementptr <2 x i64>, ptr %119, i64 %114
  %121 = getelementptr <2 x i64>, ptr %120, i64 %114
  %122 = and i32 %59, 2147483632
  %123 = zext nneg i32 %122 to i64
  %124 = getelementptr i8, ptr %121, i64 %123
  %125 = sub nsw i32 0, %.pre-phi1176
  %126 = trunc i32 %125 to i8
  tail call void @llvm.memset.p0.i64(ptr align 16 %113, i8 %126, i64 %123, i1 false)
  tail call void @llvm.memset.p0.i64(ptr align 16 %115, i8 %126, i64 %123, i1 false)
  tail call void @llvm.memset.p0.i64(ptr align 16 %116, i8 %126, i64 %123, i1 false)
  tail call void @llvm.memset.p0.i64(ptr align 16 %117, i8 %126, i64 %123, i1 false)
  %127 = add i8 %.0921, %.0920
  %128 = sub i8 0, %127
  tail call void @llvm.memset.p0.i64(ptr align 16 %118, i8 %128, i64 %123, i1 false)
  tail call void @llvm.memset.p0.i64(ptr align 16 %119, i8 %128, i64 %123, i1 false)
  br i1 %.not1003, label %129, label %.loopexit1065

129:                                              ; preds = %94
  %130 = shl nsw i32 %122, 2
  %131 = zext nneg i32 %130 to i64
  %132 = tail call ptr @seq_alloc_atomic(i64 noundef %131)
  %.not1129 = icmp eq i32 %122, 0
  br i1 %.not1129, label %.loopexit1065, label %vector.body1211

vector.body1211:                                  ; preds = %129, %vector.body1211
  %index1212 = phi i64 [ %index.next1213, %vector.body1211 ], [ 0, %129 ]
  %133 = getelementptr inbounds i32, ptr %132, i64 %index1212
  %134 = getelementptr inbounds i8, ptr %133, i64 16
  store <4 x i32> <i32 -1073741824, i32 -1073741824, i32 -1073741824, i32 -1073741824>, ptr %133, align 4, !tbaa !13
  store <4 x i32> <i32 -1073741824, i32 -1073741824, i32 -1073741824, i32 -1073741824>, ptr %134, align 4, !tbaa !13
  %index.next1213 = add nuw i64 %index1212, 8
  %135 = icmp eq i64 %index.next1213, %123
  br i1 %135, label %.loopexit1065, label %vector.body1211, !llvm.loop !15

.loopexit1065:                                    ; preds = %vector.body1211, %129, %94
  %.0947 = phi ptr [ null, %94 ], [ %132, %129 ], [ %132, %vector.body1211 ]
  br i1 %.not, label %136, label %156

136:                                              ; preds = %.loopexit1065
  %137 = add nsw i32 %1, -1
  %138 = add i32 %137, %3
  %139 = zext nneg i32 %138 to i64
  %140 = zext nneg i32 %66 to i64
  %141 = shl nuw nsw i64 %139, 4
  %142 = mul nuw i64 %141, %140
  %143 = add nuw i64 %142, 16
  %144 = tail call ptr @seq_alloc_atomic(i64 noundef %143)
  %145 = ptrtoint ptr %144 to i64
  %146 = add i64 %145, 15
  %147 = and i64 %146, -16
  %148 = inttoptr i64 %147 to ptr
  %149 = shl nuw nsw i64 %139, 3
  %150 = tail call ptr @seq_alloc_atomic(i64 noundef %149)
  %151 = zext nneg i32 %1 to i64
  %152 = getelementptr inbounds i32, ptr %150, i64 %151
  %153 = zext nneg i32 %3 to i64
  %154 = getelementptr inbounds i32, ptr %152, i64 %153
  %155 = getelementptr inbounds i8, ptr %154, i64 -4
  br label %156

156:                                              ; preds = %136, %.loopexit1065
  %.0959 = phi ptr [ %148, %136 ], [ null, %.loopexit1065 ]
  %.0958 = phi ptr [ %144, %136 ], [ null, %.loopexit1065 ]
  %.0939 = phi ptr [ %155, %136 ], [ null, %.loopexit1065 ]
  %.0938 = phi ptr [ %150, %136 ], [ null, %.loopexit1065 ]
  %157 = icmp sgt i32 %1, 0
  br i1 %157, label %iter.check, label %._crit_edge1075

iter.check:                                       ; preds = %156
  %158 = zext nneg i32 %1 to i64
  %wide.trip.count1145 = zext nneg i32 %1 to i64
  %invariant.gep = getelementptr i8, ptr %2, i64 %158
  %min.iters.check1217 = icmp ult i32 %1, 8
  br i1 %min.iters.check1217, label %.lr.ph1074.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %iter.check
  %159 = mul nuw nsw i64 %114, 112
  %160 = getelementptr i8, ptr %113, i64 %159
  %161 = getelementptr i8, ptr %160, i64 %123
  %scevgep = getelementptr i8, ptr %161, i64 %wide.trip.count1145
  %bound0 = icmp ult ptr %124, %invariant.gep
  %bound1 = icmp ugt ptr %scevgep, %2
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph1074.preheader, label %vector.main.loop.iter.check

vector.main.loop.iter.check:                      ; preds = %vector.memcheck
  %min.iters.check1219 = icmp ult i32 %1, 32
  br i1 %min.iters.check1219, label %vec.epilog.ph, label %vector.ph1220

vector.ph1220:                                    ; preds = %vector.main.loop.iter.check
  %n.vec1222 = and i64 %wide.trip.count1145, 2147483616
  br label %vector.body1223

vector.body1223:                                  ; preds = %vector.body1223, %vector.ph1220
  %index1224 = phi i64 [ 0, %vector.ph1220 ], [ %index.next1228, %vector.body1223 ]
  %162 = xor i64 %index1224, -1
  %163 = getelementptr i8, ptr %invariant.gep, i64 %162
  %164 = getelementptr i8, ptr %163, i64 -15
  %165 = getelementptr i8, ptr %163, i64 -31
  %wide.load1225 = load <16 x i8>, ptr %164, align 1, !tbaa !5, !alias.scope !16
  %reverse = shufflevector <16 x i8> %wide.load1225, <16 x i8> poison, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  %wide.load1226 = load <16 x i8>, ptr %165, align 1, !tbaa !5, !alias.scope !16
  %reverse1227 = shufflevector <16 x i8> %wide.load1226, <16 x i8> poison, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  %166 = getelementptr inbounds i8, ptr %124, i64 %index1224
  %167 = getelementptr inbounds i8, ptr %166, i64 16
  store <16 x i8> %reverse, ptr %166, align 1, !tbaa !5, !alias.scope !19, !noalias !16
  store <16 x i8> %reverse1227, ptr %167, align 1, !tbaa !5, !alias.scope !19, !noalias !16
  %index.next1228 = add nuw i64 %index1224, 32
  %168 = icmp eq i64 %index.next1228, %n.vec1222
  br i1 %168, label %middle.block1215, label %vector.body1223, !llvm.loop !21

middle.block1215:                                 ; preds = %vector.body1223
  %cmp.n1229 = icmp eq i64 %n.vec1222, %wide.trip.count1145
  br i1 %cmp.n1229, label %._crit_edge1075, label %vec.epilog.iter.check

vec.epilog.iter.check:                            ; preds = %middle.block1215
  %n.vec.remaining = and i64 %wide.trip.count1145, 24
  %min.epilog.iters.check = icmp eq i64 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check, label %.lr.ph1074.preheader, label %vec.epilog.ph

vec.epilog.ph:                                    ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check
  %vec.epilog.resume.val = phi i64 [ %n.vec1222, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
  %n.vec1231 = and i64 %wide.trip.count1145, 2147483640
  %invariant.gep1254 = getelementptr i8, ptr %invariant.gep, i64 -7
  br label %vec.epilog.vector.body

vec.epilog.vector.body:                           ; preds = %vec.epilog.vector.body, %vec.epilog.ph
  %index1233 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next1236, %vec.epilog.vector.body ]
  %169 = xor i64 %index1233, -1
  %gep1255 = getelementptr i8, ptr %invariant.gep1254, i64 %169
  %wide.load1234 = load <8 x i8>, ptr %gep1255, align 1, !tbaa !5, !alias.scope !22
  %reverse1235 = shufflevector <8 x i8> %wide.load1234, <8 x i8> poison, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  %170 = getelementptr inbounds i8, ptr %124, i64 %index1233
  store <8 x i8> %reverse1235, ptr %170, align 1, !tbaa !5, !alias.scope !25, !noalias !22
  %index.next1236 = add nuw i64 %index1233, 8
  %171 = icmp eq i64 %index.next1236, %n.vec1231
  br i1 %171, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !27

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n1237 = icmp eq i64 %n.vec1231, %wide.trip.count1145
  br i1 %cmp.n1237, label %._crit_edge1075, label %.lr.ph1074.preheader

.lr.ph1074.preheader:                             ; preds = %vec.epilog.middle.block, %vector.memcheck, %iter.check, %vec.epilog.iter.check
  %indvars.iv1142.ph = phi i64 [ 0, %iter.check ], [ 0, %vector.memcheck ], [ %n.vec1222, %vec.epilog.iter.check ], [ %n.vec1231, %vec.epilog.middle.block ]
  %xtraiter = and i64 %wide.trip.count1145, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph1074.prol.loopexit, label %.lr.ph1074.prol

.lr.ph1074.prol:                                  ; preds = %.lr.ph1074.preheader, %.lr.ph1074.prol
  %indvars.iv1142.prol = phi i64 [ %indvars.iv.next1143.prol, %.lr.ph1074.prol ], [ %indvars.iv1142.ph, %.lr.ph1074.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1074.prol ], [ 0, %.lr.ph1074.preheader ]
  %172 = xor i64 %indvars.iv1142.prol, -1
  %gep.prol = getelementptr i8, ptr %invariant.gep, i64 %172
  %173 = load i8, ptr %gep.prol, align 1, !tbaa !5
  %174 = getelementptr inbounds i8, ptr %124, i64 %indvars.iv1142.prol
  store i8 %173, ptr %174, align 1, !tbaa !5
  %indvars.iv.next1143.prol = add nuw nsw i64 %indvars.iv1142.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %.lr.ph1074.prol.loopexit, label %.lr.ph1074.prol, !llvm.loop !28

.lr.ph1074.prol.loopexit:                         ; preds = %.lr.ph1074.prol, %.lr.ph1074.preheader
  %indvars.iv1142.unr = phi i64 [ %indvars.iv1142.ph, %.lr.ph1074.preheader ], [ %indvars.iv.next1143.prol, %.lr.ph1074.prol ]
  %175 = sub nsw i64 %indvars.iv1142.ph, %wide.trip.count1145
  %176 = icmp ugt i64 %175, -4
  br i1 %176, label %._crit_edge1075, label %.lr.ph1074.preheader.new

.lr.ph1074.preheader.new:                         ; preds = %.lr.ph1074.prol.loopexit
  %invariant.gep1256 = getelementptr i8, ptr %124, i64 1
  %invariant.gep1258 = getelementptr i8, ptr %124, i64 2
  %invariant.gep1260 = getelementptr i8, ptr %124, i64 3
  br label %.lr.ph1074

.lr.ph1074:                                       ; preds = %.lr.ph1074, %.lr.ph1074.preheader.new
  %indvars.iv1142 = phi i64 [ %indvars.iv1142.unr, %.lr.ph1074.preheader.new ], [ %indvars.iv.next1143.3, %.lr.ph1074 ]
  %177 = xor i64 %indvars.iv1142, -1
  %gep = getelementptr i8, ptr %invariant.gep, i64 %177
  %178 = load i8, ptr %gep, align 1, !tbaa !5
  %179 = getelementptr inbounds i8, ptr %124, i64 %indvars.iv1142
  store i8 %178, ptr %179, align 1, !tbaa !5
  %180 = sub i64 -2, %indvars.iv1142
  %gep.1 = getelementptr i8, ptr %invariant.gep, i64 %180
  %181 = load i8, ptr %gep.1, align 1, !tbaa !5
  %gep1257 = getelementptr i8, ptr %invariant.gep1256, i64 %indvars.iv1142
  store i8 %181, ptr %gep1257, align 1, !tbaa !5
  %182 = sub i64 -3, %indvars.iv1142
  %gep.2 = getelementptr i8, ptr %invariant.gep, i64 %182
  %183 = load i8, ptr %gep.2, align 1, !tbaa !5
  %gep1259 = getelementptr i8, ptr %invariant.gep1258, i64 %indvars.iv1142
  store i8 %183, ptr %gep1259, align 1, !tbaa !5
  %184 = sub i64 -4, %indvars.iv1142
  %gep.3 = getelementptr i8, ptr %invariant.gep, i64 %184
  %185 = load i8, ptr %gep.3, align 1, !tbaa !5
  %gep1261 = getelementptr i8, ptr %invariant.gep1260, i64 %indvars.iv1142
  store i8 %185, ptr %gep1261, align 1, !tbaa !5
  %indvars.iv.next1143.3 = add nuw nsw i64 %indvars.iv1142, 4
  %exitcond1146.not.3 = icmp eq i64 %indvars.iv.next1143.3, %wide.trip.count1145
  br i1 %exitcond1146.not.3, label %._crit_edge1075, label %.lr.ph1074, !llvm.loop !30

._crit_edge1075:                                  ; preds = %.lr.ph1074.prol.loopexit, %.lr.ph1074, %middle.block1215, %vec.epilog.middle.block, %156
  %186 = zext nneg i32 %3 to i64
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %121, ptr align 1 %4, i64 %186, i1 false)
  %187 = add nuw nsw i32 %3, %1
  %188 = icmp sgt i32 %187, 1
  br i1 %188, label %.lr.ph1127, label %.loopexit1064

.lr.ph1127:                                       ; preds = %._crit_edge1075
  %189 = add nsw i32 %3, -1
  %190 = add nsw i32 %1, -1
  %191 = sub nsw i32 0, %.pre-phi1178
  %192 = sub nsw i32 0, %.pre-phi1175
  %193 = and i32 %14, 4
  %.not1008 = icmp eq i32 %193, 0
  %194 = and i32 %14, 2
  %.not1013 = icmp eq i32 %194, 0
  %195 = zext nneg i32 %66 to i64
  %196 = and i32 %14, 16
  %.not1024 = icmp eq i32 %196, 0
  %197 = add nsw i32 %187, -2
  %198 = getelementptr inbounds i8, ptr %15, i64 28
  %199 = getelementptr inbounds i8, ptr %15, i64 20
  %200 = getelementptr inbounds i8, ptr %15, i64 24
  %201 = getelementptr inbounds i8, ptr %15, i64 12
  %202 = getelementptr inbounds i8, ptr %15, i64 16
  %203 = zext nneg i32 %189 to i64
  %204 = getelementptr inbounds i32, ptr %.0947, i64 %203
  %205 = zext i32 %spec.select to i64
  %206 = sext i32 %spec.select to i64
  %207 = sext i32 %190 to i64
  %208 = zext nneg i32 %1 to i64
  %209 = zext nneg i32 %197 to i64
  %smax1172 = add nsw i32 %187, -1
  %wide.trip.count1173 = zext nneg i32 %smax1172 to i64
  %210 = getelementptr inbounds i8, ptr %17, i64 4
  %211 = getelementptr inbounds i8, ptr %18, i64 4
  %212 = getelementptr inbounds i8, ptr %17, i64 8
  %213 = getelementptr inbounds i8, ptr %18, i64 8
  %214 = getelementptr inbounds i8, ptr %17, i64 12
  %215 = getelementptr inbounds i8, ptr %18, i64 12
  %216 = sext i32 %189 to i64
  br label %217

217:                                              ; preds = %.lr.ph1127, %772
  %indvars.iv1168 = phi i64 [ 0, %.lr.ph1127 ], [ %indvars.iv.next1169, %772 ]
  %.09401124 = phi i32 [ -1, %.lr.ph1127 ], [ %241, %772 ]
  %.09421123 = phi i32 [ -1, %.lr.ph1127 ], [ %242, %772 ]
  %.09481122 = phi i32 [ 0, %.lr.ph1127 ], [ %.4952.ph, %772 ]
  %.09531121 = phi i32 [ 0, %.lr.ph1127 ], [ %.4957.ph, %772 ]
  %218 = trunc i64 %indvars.iv1168 to i32
  %219 = add i32 %.0922, %218
  %220 = lshr i32 %219, 1
  %221 = zext nneg i32 %220 to i64
  %sext = shl i64 %indvars.iv1168, 32
  %222 = ashr exact i64 %sext, 32
  %smin = call i64 @llvm.smin.i64(i64 %221, i64 %222)
  %smin1246 = call i64 @llvm.smin.i64(i64 %smin, i64 %216)
  %indvars1171 = trunc i64 %indvars.iv1168 to i32
  %223 = sub nsw i64 %207, %indvars.iv1168
  %224 = getelementptr inbounds i8, ptr %124, i64 %223
  %225 = sub nsw i64 %indvars.iv1168, %208
  %.inv = icmp slt i64 %225, 0
  %226 = trunc i64 %225 to i32
  %227 = add i32 %226, 1
  %spec.select1030 = select i1 %.inv, i32 0, i32 %227
  %.0964 = call i32 @llvm.smin.i32(i32 %189, i32 %indvars1171)
  %228 = trunc i64 %indvars.iv1168 to i32
  %229 = sub i32 %228, %.0922
  %230 = add i32 %229, 1
  %231 = ashr i32 %230, 1
  %.1963 = call i32 @llvm.smax.i32(i32 %spec.select1030, i32 %231)
  %232 = trunc i64 %indvars.iv1168 to i32
  %233 = add i32 %.0922, %232
  %234 = lshr i32 %233, 1
  %.1965 = call i32 @llvm.smin.i32(i32 %.0964, i32 %234)
  %235 = icmp sgt i32 %.1963, %.1965
  br i1 %235, label %236, label %239

236:                                              ; preds = %217
  %237 = load i32, ptr %15, align 8
  %238 = or i32 %237, -2147483648
  store i32 %238, ptr %15, align 8
  br label %.loopexit1064

239:                                              ; preds = %217
  %240 = lshr i32 %.1963, 4
  %241 = and i32 %.1963, -16
  %242 = or i32 %.1965, 15
  %243 = icmp sgt i32 %241, 0
  br i1 %243, label %244, label %254

244:                                              ; preds = %239
  %245 = add nsw i32 %241, -1
  %.not1005.not = icmp sle i32 %241, %.09401124
  %.not1006 = icmp sgt i32 %245, %.09421123
  %or.cond1031 = select i1 %.not1005.not, i1 true, i1 %.not1006
  br i1 %or.cond1031, label %264, label %246

246:                                              ; preds = %244
  %247 = zext nneg i32 %245 to i64
  %248 = getelementptr inbounds i8, ptr %116, i64 %247
  %249 = load i8, ptr %248, align 1, !tbaa !5
  %250 = getelementptr inbounds i8, ptr %118, i64 %247
  %251 = load i8, ptr %250, align 1, !tbaa !5
  %252 = getelementptr inbounds i8, ptr %115, i64 %247
  %253 = load i8, ptr %252, align 1, !tbaa !5
  br label %264

254:                                              ; preds = %239
  %255 = icmp eq i64 %indvars.iv1168, 0
  br i1 %255, label %261, label %256

256:                                              ; preds = %254
  %257 = icmp slt i64 %indvars.iv1168, %206
  br i1 %257, label %261, label %258

258:                                              ; preds = %256
  %259 = icmp eq i64 %indvars.iv1168, %205
  %260 = select i1 %259, i32 %104, i32 %191
  br label %261

261:                                              ; preds = %256, %254, %258
  %262 = phi i32 [ %260, %258 ], [ %125, %254 ], [ %192, %256 ]
  %263 = trunc i32 %262 to i8
  br label %264

264:                                              ; preds = %244, %246, %261
  %.0968 = phi i8 [ %253, %246 ], [ %263, %261 ], [ %126, %244 ]
  %.0967 = phi i8 [ %251, %246 ], [ %128, %261 ], [ %128, %244 ]
  %.0966 = phi i8 [ %249, %246 ], [ %126, %261 ], [ %126, %244 ]
  %265 = sext i32 %242 to i64
  %.not1007 = icmp sgt i64 %indvars.iv1168, %265
  br i1 %.not1007, label %279, label %266

266:                                              ; preds = %264
  %267 = getelementptr inbounds i8, ptr %117, i64 %indvars.iv1168
  store i8 %126, ptr %267, align 1, !tbaa !5
  %268 = getelementptr inbounds i8, ptr %119, i64 %indvars.iv1168
  store i8 %128, ptr %268, align 1, !tbaa !5
  %269 = icmp eq i64 %indvars.iv1168, 0
  br i1 %269, label %275, label %270

270:                                              ; preds = %266
  %271 = icmp slt i64 %indvars.iv1168, %206
  br i1 %271, label %275, label %272

272:                                              ; preds = %270
  %273 = icmp eq i64 %indvars.iv1168, %205
  %274 = select i1 %273, i32 %104, i32 %191
  br label %275

275:                                              ; preds = %270, %266, %272
  %276 = phi i32 [ %274, %272 ], [ %125, %266 ], [ %192, %270 ]
  %277 = trunc i32 %276 to i8
  %278 = getelementptr inbounds i8, ptr %113, i64 %indvars.iv1168
  store i8 %277, ptr %278, align 1, !tbaa !5
  br label %279

279:                                              ; preds = %275, %264
  %280 = call i32 @llvm.smax.i32(i32 %spec.select1030, i32 %231)
  %smax1149 = sext i32 %280 to i64
  %281 = sext i32 %.1965 to i64
  br i1 %.not1008, label %.lr.ph1081, label %.lr.ph1078

.lr.ph1081:                                       ; preds = %279, %.lr.ph1081
  %indvars.iv1150 = phi i64 [ %indvars.iv.next1151, %.lr.ph1081 ], [ %smax1149, %279 ]
  %282 = getelementptr inbounds i8, ptr %121, i64 %indvars.iv1150
  %283 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %282)
  %284 = getelementptr inbounds i8, ptr %224, i64 %indvars.iv1150
  %285 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %284)
  %286 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %283, <2 x i64> noundef %56)
  %287 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %285, <2 x i64> noundef %56)
  %288 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %286, <2 x i64> noundef %287)
  %289 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %283, <2 x i64> noundef %285)
  %290 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %289, <2 x i64> noundef %46)
  %291 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %289, <2 x i64> noundef %43)
  %292 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %290, <2 x i64> noundef %291)
  %293 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %288, <2 x i64> noundef %292)
  %294 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %288, <2 x i64> noundef %54)
  %295 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %293, <2 x i64> noundef %294)
  %296 = getelementptr inbounds i8, ptr %120, i64 %indvars.iv1150
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %296, <2 x i64> noundef %295)
  %indvars.iv.next1151 = add nsw i64 %indvars.iv1150, 16
  %.not1009 = icmp sgt i64 %indvars.iv.next1151, %281
  br i1 %.not1009, label %.loopexit1061, label %.lr.ph1081, !llvm.loop !31

.lr.ph1078:                                       ; preds = %279, %.lr.ph1078
  %indvars.iv1147 = phi i64 [ %indvars.iv.next1148, %.lr.ph1078 ], [ %smax1149, %279 ]
  %297 = getelementptr inbounds i8, ptr %121, i64 %indvars.iv1147
  %298 = load i8, ptr %297, align 1, !tbaa !5
  %299 = zext i8 %298 to i32
  %300 = mul nuw nsw i32 %299, %24
  %301 = getelementptr inbounds i8, ptr %224, i64 %indvars.iv1147
  %302 = load i8, ptr %301, align 1, !tbaa !5
  %303 = zext i8 %302 to i32
  %304 = add nuw nsw i32 %300, %303
  %305 = zext nneg i32 %304 to i64
  %306 = getelementptr inbounds i8, ptr %6, i64 %305
  %307 = load i8, ptr %306, align 1, !tbaa !5
  %308 = getelementptr inbounds i8, ptr %120, i64 %indvars.iv1147
  store i8 %307, ptr %308, align 1, !tbaa !5
  %indvars.iv.next1148 = add nsw i64 %indvars.iv1147, 1
  %.not1010.not = icmp slt i64 %indvars.iv1147, %281
  br i1 %.not1010.not, label %.lr.ph1078, label %.loopexit1061, !llvm.loop !32

.loopexit1061:                                    ; preds = %.lr.ph1078, %.lr.ph1081
  %309 = zext i8 %.0966 to i32
  %310 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %309)
  %311 = zext i8 %.0967 to i32
  %312 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %311)
  %313 = zext i8 %.0968 to i32
  %314 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %313)
  %315 = lshr i32 %.1965, 4
  %316 = sub nsw i32 %315, %240
  %.not1011 = icmp sgt i32 %316, %65
  br i1 %.not1011, label %317, label %318

317:                                              ; preds = %.loopexit1061
  call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef nonnull @__PRETTY_FUNCTION__.ksw_extd2_sse) #11
  unreachable

318:                                              ; preds = %.loopexit1061
  br i1 %.not, label %398, label %.preheader1058

.preheader1058:                                   ; preds = %318
  %.not10121082 = icmp ugt i32 %240, %315
  br i1 %.not10121082, label %.loopexit, label %.lr.ph1087.preheader

.lr.ph1087.preheader:                             ; preds = %.preheader1058
  %319 = lshr i32 %.1963, 4
  %320 = zext nneg i32 %319 to i64
  %321 = zext nneg i32 %315 to i64
  br label %.lr.ph1087

.lr.ph1087:                                       ; preds = %.lr.ph1087.preheader, %.lr.ph1087
  %indvars.iv1152 = phi i64 [ %320, %.lr.ph1087.preheader ], [ %indvars.iv.next1153, %.lr.ph1087 ]
  %.09691085 = phi <2 x i64> [ %310, %.lr.ph1087.preheader ], [ %328, %.lr.ph1087 ]
  %.09721084 = phi <2 x i64> [ %312, %.lr.ph1087.preheader ], [ %350, %.lr.ph1087 ]
  %.09751083 = phi <2 x i64> [ %314, %.lr.ph1087.preheader ], [ %336, %.lr.ph1087 ]
  %322 = getelementptr inbounds <2 x i64>, ptr %120, i64 %indvars.iv1152
  %323 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %322)
  %324 = getelementptr inbounds <2 x i64>, ptr %116, i64 %indvars.iv1152
  %325 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %324)
  %326 = bitcast <2 x i64> %325 to <16 x i8>
  %327 = shufflevector <16 x i8> %326, <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 poison>, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %328 = bitcast <16 x i8> %327 to <2 x i64>
  %329 = shufflevector <16 x i8> <i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 0>, <16 x i8> %326, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %330 = bitcast <16 x i8> %329 to <2 x i64>
  %331 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %330, <2 x i64> noundef %.09691085)
  %332 = getelementptr inbounds <2 x i64>, ptr %115, i64 %indvars.iv1152
  %333 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %332)
  %334 = bitcast <2 x i64> %333 to <16 x i8>
  %335 = shufflevector <16 x i8> %334, <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 poison>, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %336 = bitcast <16 x i8> %335 to <2 x i64>
  %337 = shufflevector <16 x i8> <i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 0>, <16 x i8> %334, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %338 = bitcast <16 x i8> %337 to <2 x i64>
  %339 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %338, <2 x i64> noundef %.09751083)
  %340 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %331, <2 x i64> noundef %339)
  %341 = getelementptr inbounds <2 x i64>, ptr %113, i64 %indvars.iv1152
  %342 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %341)
  %343 = getelementptr inbounds <2 x i64>, ptr %117, i64 %indvars.iv1152
  %344 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %343)
  %345 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %344, <2 x i64> noundef %342)
  %346 = getelementptr inbounds <2 x i64>, ptr %118, i64 %indvars.iv1152
  %347 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %346)
  %348 = bitcast <2 x i64> %347 to <16 x i8>
  %349 = shufflevector <16 x i8> %348, <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 poison>, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %350 = bitcast <16 x i8> %349 to <2 x i64>
  %351 = shufflevector <16 x i8> <i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 0>, <16 x i8> %348, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %352 = bitcast <16 x i8> %351 to <2 x i64>
  %353 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %352, <2 x i64> noundef %.09721084)
  %354 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %353, <2 x i64> noundef %339)
  %355 = getelementptr inbounds <2 x i64>, ptr %119, i64 %indvars.iv1152
  %356 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %355)
  %357 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %356, <2 x i64> noundef %342)
  %358 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %340, <2 x i64> noundef %323)
  %359 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %358, <2 x i64> noundef %323)
  %360 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %358, <2 x i64> noundef %340)
  %361 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %359, <2 x i64> noundef %360)
  %362 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %345, <2 x i64> noundef %361)
  %363 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %362, <2 x i64> noundef %361)
  %364 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %362, <2 x i64> noundef %345)
  %365 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %363, <2 x i64> noundef %364)
  %366 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %354, <2 x i64> noundef %365)
  %367 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %366, <2 x i64> noundef %365)
  %368 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %366, <2 x i64> noundef %354)
  %369 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %367, <2 x i64> noundef %368)
  %370 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %357, <2 x i64> noundef %369)
  %371 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %370, <2 x i64> noundef %369)
  %372 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %370, <2 x i64> noundef %357)
  %373 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %371, <2 x i64> noundef %372)
  %374 = call noundef <2 x i64> @_ZL14_mm_cmplt_epi8Dv2_xS_(<2 x i64> noundef %43, <2 x i64> noundef %373)
  %375 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %374, <2 x i64> noundef %43)
  %376 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %374, <2 x i64> noundef %373)
  %377 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %375, <2 x i64> noundef %376)
  %378 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %377, <2 x i64> noundef %339)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %341, <2 x i64> noundef %378)
  %379 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %377, <2 x i64> noundef %342)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %332, <2 x i64> noundef %379)
  %380 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %377, <2 x i64> noundef %36)
  %381 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %340, <2 x i64> noundef %380)
  %382 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %345, <2 x i64> noundef %380)
  %383 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %377, <2 x i64> noundef %37)
  %384 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %354, <2 x i64> noundef %383)
  %385 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %357, <2 x i64> noundef %383)
  %386 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %381, <2 x i64> noundef %35)
  %387 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %386, <2 x i64> noundef %381)
  %388 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %387, <2 x i64> noundef %39)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %324, <2 x i64> noundef %388)
  %389 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %382, <2 x i64> noundef %35)
  %390 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %389, <2 x i64> noundef %382)
  %391 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %390, <2 x i64> noundef %39)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %343, <2 x i64> noundef %391)
  %392 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %384, <2 x i64> noundef %35)
  %393 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %392, <2 x i64> noundef %384)
  %394 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %393, <2 x i64> noundef %41)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %346, <2 x i64> noundef %394)
  %395 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %385, <2 x i64> noundef %35)
  %396 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %395, <2 x i64> noundef %385)
  %397 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %396, <2 x i64> noundef %41)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %355, <2 x i64> noundef %397)
  %indvars.iv.next1153 = add nuw nsw i64 %indvars.iv1152, 1
  %.not1012.not = icmp ult i64 %indvars.iv1152, %321
  br i1 %.not1012.not, label %.lr.ph1087, label %.loopexit, !llvm.loop !33

398:                                              ; preds = %318
  %399 = mul nuw nsw i64 %indvars.iv1168, %195
  %400 = getelementptr inbounds <2 x i64>, ptr %.0959, i64 %399
  %401 = zext nneg i32 %240 to i64
  %402 = sub nsw i64 0, %401
  %403 = getelementptr inbounds <2 x i64>, ptr %400, i64 %402
  %404 = getelementptr inbounds i32, ptr %.0938, i64 %indvars.iv1168
  store i32 %241, ptr %404, align 4, !tbaa !13
  %405 = getelementptr inbounds i32, ptr %.0939, i64 %indvars.iv1168
  store i32 %242, ptr %405, align 4, !tbaa !13
  %.not10141095 = icmp ugt i32 %240, %315
  br i1 %.not1013, label %406, label %513

406:                                              ; preds = %398
  br i1 %.not10141095, label %.loopexit, label %.lr.ph1101.preheader

.lr.ph1101.preheader:                             ; preds = %406
  %407 = lshr i32 %.1963, 4
  %408 = zext nneg i32 %407 to i64
  %409 = zext nneg i32 %315 to i64
  br label %.lr.ph1101

.lr.ph1101:                                       ; preds = %.lr.ph1101.preheader, %.lr.ph1101
  %indvars.iv1156 = phi i64 [ %408, %.lr.ph1101.preheader ], [ %indvars.iv.next1157, %.lr.ph1101 ]
  %.19701098 = phi <2 x i64> [ %310, %.lr.ph1101.preheader ], [ %416, %.lr.ph1101 ]
  %.19731097 = phi <2 x i64> [ %312, %.lr.ph1101.preheader ], [ %438, %.lr.ph1101 ]
  %.19761096 = phi <2 x i64> [ %314, %.lr.ph1101.preheader ], [ %424, %.lr.ph1101 ]
  %410 = getelementptr inbounds <2 x i64>, ptr %120, i64 %indvars.iv1156
  %411 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %410)
  %412 = getelementptr inbounds <2 x i64>, ptr %116, i64 %indvars.iv1156
  %413 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %412)
  %414 = bitcast <2 x i64> %413 to <16 x i8>
  %415 = shufflevector <16 x i8> %414, <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 poison>, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %416 = bitcast <16 x i8> %415 to <2 x i64>
  %417 = shufflevector <16 x i8> <i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 0>, <16 x i8> %414, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %418 = bitcast <16 x i8> %417 to <2 x i64>
  %419 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %418, <2 x i64> noundef %.19701098)
  %420 = getelementptr inbounds <2 x i64>, ptr %115, i64 %indvars.iv1156
  %421 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %420)
  %422 = bitcast <2 x i64> %421 to <16 x i8>
  %423 = shufflevector <16 x i8> %422, <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 poison>, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %424 = bitcast <16 x i8> %423 to <2 x i64>
  %425 = shufflevector <16 x i8> <i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 0>, <16 x i8> %422, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %426 = bitcast <16 x i8> %425 to <2 x i64>
  %427 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %426, <2 x i64> noundef %.19761096)
  %428 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %419, <2 x i64> noundef %427)
  %429 = getelementptr inbounds <2 x i64>, ptr %113, i64 %indvars.iv1156
  %430 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %429)
  %431 = getelementptr inbounds <2 x i64>, ptr %117, i64 %indvars.iv1156
  %432 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %431)
  %433 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %432, <2 x i64> noundef %430)
  %434 = getelementptr inbounds <2 x i64>, ptr %118, i64 %indvars.iv1156
  %435 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %434)
  %436 = bitcast <2 x i64> %435 to <16 x i8>
  %437 = shufflevector <16 x i8> %436, <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 poison>, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %438 = bitcast <16 x i8> %437 to <2 x i64>
  %439 = shufflevector <16 x i8> <i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 0>, <16 x i8> %436, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %440 = bitcast <16 x i8> %439 to <2 x i64>
  %441 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %440, <2 x i64> noundef %.19731097)
  %442 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %441, <2 x i64> noundef %427)
  %443 = getelementptr inbounds <2 x i64>, ptr %119, i64 %indvars.iv1156
  %444 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %443)
  %445 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %444, <2 x i64> noundef %430)
  %446 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %428, <2 x i64> noundef %411)
  %447 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 1)
  %448 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %446, <2 x i64> noundef %447)
  %449 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %446, <2 x i64> noundef %411)
  %450 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %446, <2 x i64> noundef %428)
  %451 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %449, <2 x i64> noundef %450)
  %452 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %433, <2 x i64> noundef %451)
  %453 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %452, <2 x i64> noundef %448)
  %454 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 2)
  %455 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %452, <2 x i64> noundef %454)
  %456 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %453, <2 x i64> noundef %455)
  %457 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %452, <2 x i64> noundef %451)
  %458 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %452, <2 x i64> noundef %433)
  %459 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %457, <2 x i64> noundef %458)
  %460 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %442, <2 x i64> noundef %459)
  %461 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %460, <2 x i64> noundef %456)
  %462 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 3)
  %463 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %460, <2 x i64> noundef %462)
  %464 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %461, <2 x i64> noundef %463)
  %465 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %460, <2 x i64> noundef %459)
  %466 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %460, <2 x i64> noundef %442)
  %467 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %465, <2 x i64> noundef %466)
  %468 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %445, <2 x i64> noundef %467)
  %469 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %468, <2 x i64> noundef %464)
  %470 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 4)
  %471 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %468, <2 x i64> noundef %470)
  %472 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %469, <2 x i64> noundef %471)
  %473 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %468, <2 x i64> noundef %467)
  %474 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %468, <2 x i64> noundef %445)
  %475 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %473, <2 x i64> noundef %474)
  %476 = call noundef <2 x i64> @_ZL14_mm_cmplt_epi8Dv2_xS_(<2 x i64> noundef %43, <2 x i64> noundef %475)
  %477 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %476, <2 x i64> noundef %43)
  %478 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %476, <2 x i64> noundef %475)
  %479 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %477, <2 x i64> noundef %478)
  %480 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %479, <2 x i64> noundef %427)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %429, <2 x i64> noundef %480)
  %481 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %479, <2 x i64> noundef %430)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %420, <2 x i64> noundef %481)
  %482 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %479, <2 x i64> noundef %36)
  %483 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %428, <2 x i64> noundef %482)
  %484 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %433, <2 x i64> noundef %482)
  %485 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %479, <2 x i64> noundef %37)
  %486 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %442, <2 x i64> noundef %485)
  %487 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %445, <2 x i64> noundef %485)
  %488 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %483, <2 x i64> noundef %35)
  %489 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %488, <2 x i64> noundef %483)
  %490 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %489, <2 x i64> noundef %39)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %412, <2 x i64> noundef %490)
  %491 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 8)
  %492 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %488, <2 x i64> noundef %491)
  %493 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %472, <2 x i64> noundef %492)
  %494 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %484, <2 x i64> noundef %35)
  %495 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %494, <2 x i64> noundef %484)
  %496 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %495, <2 x i64> noundef %39)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %431, <2 x i64> noundef %496)
  %497 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 16)
  %498 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %494, <2 x i64> noundef %497)
  %499 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %493, <2 x i64> noundef %498)
  %500 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %486, <2 x i64> noundef %35)
  %501 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %500, <2 x i64> noundef %486)
  %502 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %501, <2 x i64> noundef %41)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %434, <2 x i64> noundef %502)
  %503 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 32)
  %504 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %500, <2 x i64> noundef %503)
  %505 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %499, <2 x i64> noundef %504)
  %506 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %487, <2 x i64> noundef %35)
  %507 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %506, <2 x i64> noundef %487)
  %508 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %507, <2 x i64> noundef %41)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %443, <2 x i64> noundef %508)
  %509 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 64)
  %510 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %506, <2 x i64> noundef %509)
  %511 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %505, <2 x i64> noundef %510)
  %512 = getelementptr inbounds <2 x i64>, ptr %403, i64 %indvars.iv1156
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %512, <2 x i64> noundef %511)
  %indvars.iv.next1157 = add nuw nsw i64 %indvars.iv1156, 1
  %.not1014.not = icmp ult i64 %indvars.iv1156, %409
  br i1 %.not1014.not, label %.lr.ph1101, label %.loopexit, !llvm.loop !34

513:                                              ; preds = %398
  br i1 %.not10141095, label %.loopexit, label %.lr.ph1094.preheader

.lr.ph1094.preheader:                             ; preds = %513
  %514 = lshr i32 %.1963, 4
  %515 = zext nneg i32 %514 to i64
  %516 = zext nneg i32 %315 to i64
  br label %.lr.ph1094

.lr.ph1094:                                       ; preds = %.lr.ph1094.preheader, %.lr.ph1094
  %indvars.iv1154 = phi i64 [ %515, %.lr.ph1094.preheader ], [ %indvars.iv.next1155, %.lr.ph1094 ]
  %.29711091 = phi <2 x i64> [ %310, %.lr.ph1094.preheader ], [ %523, %.lr.ph1094 ]
  %.29741090 = phi <2 x i64> [ %312, %.lr.ph1094.preheader ], [ %545, %.lr.ph1094 ]
  %.29771089 = phi <2 x i64> [ %314, %.lr.ph1094.preheader ], [ %531, %.lr.ph1094 ]
  %517 = getelementptr inbounds <2 x i64>, ptr %120, i64 %indvars.iv1154
  %518 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %517)
  %519 = getelementptr inbounds <2 x i64>, ptr %116, i64 %indvars.iv1154
  %520 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %519)
  %521 = bitcast <2 x i64> %520 to <16 x i8>
  %522 = shufflevector <16 x i8> %521, <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 poison>, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %523 = bitcast <16 x i8> %522 to <2 x i64>
  %524 = shufflevector <16 x i8> <i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 0>, <16 x i8> %521, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %525 = bitcast <16 x i8> %524 to <2 x i64>
  %526 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %525, <2 x i64> noundef %.29711091)
  %527 = getelementptr inbounds <2 x i64>, ptr %115, i64 %indvars.iv1154
  %528 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %527)
  %529 = bitcast <2 x i64> %528 to <16 x i8>
  %530 = shufflevector <16 x i8> %529, <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 poison>, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %531 = bitcast <16 x i8> %530 to <2 x i64>
  %532 = shufflevector <16 x i8> <i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 0>, <16 x i8> %529, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %533 = bitcast <16 x i8> %532 to <2 x i64>
  %534 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %533, <2 x i64> noundef %.29771089)
  %535 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %526, <2 x i64> noundef %534)
  %536 = getelementptr inbounds <2 x i64>, ptr %113, i64 %indvars.iv1154
  %537 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %536)
  %538 = getelementptr inbounds <2 x i64>, ptr %117, i64 %indvars.iv1154
  %539 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %538)
  %540 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %539, <2 x i64> noundef %537)
  %541 = getelementptr inbounds <2 x i64>, ptr %118, i64 %indvars.iv1154
  %542 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %541)
  %543 = bitcast <2 x i64> %542 to <16 x i8>
  %544 = shufflevector <16 x i8> %543, <16 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 poison>, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %545 = bitcast <16 x i8> %544 to <2 x i64>
  %546 = shufflevector <16 x i8> <i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 poison, i8 0>, <16 x i8> %543, <16 x i32> <i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30>
  %547 = bitcast <16 x i8> %546 to <2 x i64>
  %548 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %547, <2 x i64> noundef %.29741090)
  %549 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %548, <2 x i64> noundef %534)
  %550 = getelementptr inbounds <2 x i64>, ptr %119, i64 %indvars.iv1154
  %551 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %550)
  %552 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %551, <2 x i64> noundef %537)
  %553 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %518, <2 x i64> noundef %535)
  %554 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 1)
  %555 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %553, <2 x i64> noundef %554)
  %556 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %553, <2 x i64> noundef %518)
  %557 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %553, <2 x i64> noundef %535)
  %558 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %556, <2 x i64> noundef %557)
  %559 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %558, <2 x i64> noundef %540)
  %560 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %559, <2 x i64> noundef %555)
  %561 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 2)
  %562 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %559, <2 x i64> noundef %561)
  %563 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %560, <2 x i64> noundef %562)
  %564 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %559, <2 x i64> noundef %558)
  %565 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %559, <2 x i64> noundef %540)
  %566 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %564, <2 x i64> noundef %565)
  %567 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %566, <2 x i64> noundef %549)
  %568 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %567, <2 x i64> noundef %563)
  %569 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 3)
  %570 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %567, <2 x i64> noundef %569)
  %571 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %568, <2 x i64> noundef %570)
  %572 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %567, <2 x i64> noundef %566)
  %573 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %567, <2 x i64> noundef %549)
  %574 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %572, <2 x i64> noundef %573)
  %575 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %574, <2 x i64> noundef %552)
  %576 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %575, <2 x i64> noundef %571)
  %577 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 4)
  %578 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %575, <2 x i64> noundef %577)
  %579 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %576, <2 x i64> noundef %578)
  %580 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %575, <2 x i64> noundef %574)
  %581 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %575, <2 x i64> noundef %552)
  %582 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %580, <2 x i64> noundef %581)
  %583 = call noundef <2 x i64> @_ZL14_mm_cmplt_epi8Dv2_xS_(<2 x i64> noundef %43, <2 x i64> noundef %582)
  %584 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %583, <2 x i64> noundef %43)
  %585 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %583, <2 x i64> noundef %582)
  %586 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %584, <2 x i64> noundef %585)
  %587 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %586, <2 x i64> noundef %534)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %536, <2 x i64> noundef %587)
  %588 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %586, <2 x i64> noundef %537)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %527, <2 x i64> noundef %588)
  %589 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %586, <2 x i64> noundef %36)
  %590 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %535, <2 x i64> noundef %589)
  %591 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %540, <2 x i64> noundef %589)
  %592 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %586, <2 x i64> noundef %37)
  %593 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %549, <2 x i64> noundef %592)
  %594 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %552, <2 x i64> noundef %592)
  %595 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %35, <2 x i64> noundef %590)
  %596 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %595, <2 x i64> noundef %590)
  %597 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %596, <2 x i64> noundef %39)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %519, <2 x i64> noundef %597)
  %598 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 8)
  %599 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %595, <2 x i64> noundef %598)
  %600 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %579, <2 x i64> noundef %599)
  %601 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %35, <2 x i64> noundef %591)
  %602 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %601, <2 x i64> noundef %591)
  %603 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %602, <2 x i64> noundef %39)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %538, <2 x i64> noundef %603)
  %604 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 16)
  %605 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %601, <2 x i64> noundef %604)
  %606 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %600, <2 x i64> noundef %605)
  %607 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %35, <2 x i64> noundef %593)
  %608 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %607, <2 x i64> noundef %593)
  %609 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %608, <2 x i64> noundef %41)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %541, <2 x i64> noundef %609)
  %610 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 32)
  %611 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %607, <2 x i64> noundef %610)
  %612 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %606, <2 x i64> noundef %611)
  %613 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %35, <2 x i64> noundef %594)
  %614 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %613, <2 x i64> noundef %594)
  %615 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %614, <2 x i64> noundef %41)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %550, <2 x i64> noundef %615)
  %616 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 64)
  %617 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %613, <2 x i64> noundef %616)
  %618 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %612, <2 x i64> noundef %617)
  %619 = getelementptr inbounds <2 x i64>, ptr %403, i64 %indvars.iv1154
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %619, <2 x i64> noundef %618)
  %indvars.iv.next1155 = add nuw nsw i64 %indvars.iv1154, 1
  %.not1015.not = icmp ult i64 %indvars.iv1154, %516
  br i1 %.not1015.not, label %.lr.ph1094, label %.loopexit, !llvm.loop !35

.loopexit:                                        ; preds = %.lr.ph1087, %.lr.ph1094, %.lr.ph1101, %.preheader1058, %513, %406
  %.not1016 = icmp eq i64 %indvars.iv1168, 0
  br i1 %.not1003, label %620, label %737

620:                                              ; preds = %.loopexit
  br i1 %.not1016, label %709, label %621

621:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #12
  %622 = sub nsw i32 %.1965, %.1963
  %623 = icmp sgt i32 %.1965, 0
  %624 = zext nneg i32 %.1965 to i64
  %625 = add nsw i32 %.1965, -1
  %626 = getelementptr inbounds i8, ptr %113, i64 %624
  %.sink1192 = select i1 %623, ptr %626, ptr %115
  %narrow = select i1 %623, i32 %625, i32 0
  %.sink1189.in.idx = zext i32 %narrow to i64
  %.sink1189.in = getelementptr inbounds i32, ptr %.0947, i64 %.sink1189.in.idx
  %.sink1189 = load i32, ptr %.sink1189.in, align 4, !tbaa !13
  %627 = load i8, ptr %.sink1192, align 1, !tbaa !5
  %628 = sext i8 %627 to i32
  %629 = add nsw i32 %.sink1189, %628
  %630 = getelementptr inbounds i32, ptr %.0947, i64 %624
  store i32 %629, ptr %630, align 4, !tbaa !13
  %631 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %629)
  %632 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %.1965)
  %633 = icmp sgt i32 %622, 3
  br i1 %633, label %.lr.ph1106.preheader, label %._crit_edge1107

.lr.ph1106.preheader:                             ; preds = %621
  %634 = and i32 %622, 2147483644
  %635 = add nsw i32 %634, %.1963
  %636 = call i32 @llvm.smax.i32(i32 %spec.select1030, i32 %231)
  %smax1158 = sext i32 %636 to i64
  %637 = sext i32 %635 to i64
  br label %.lr.ph1106

.lr.ph1106:                                       ; preds = %.lr.ph1106.preheader, %.lr.ph1106
  %indvars.iv1159 = phi i64 [ %smax1158, %.lr.ph1106.preheader ], [ %indvars.iv.next1160, %.lr.ph1106 ]
  %.09241104 = phi <2 x i64> [ %632, %.lr.ph1106.preheader ], [ %662, %.lr.ph1106 ]
  %.09251103 = phi <2 x i64> [ %631, %.lr.ph1106.preheader ], [ %659, %.lr.ph1106 ]
  %638 = getelementptr inbounds i32, ptr %.0947, i64 %indvars.iv1159
  %639 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %638)
  %640 = getelementptr inbounds i8, ptr %115, i64 %indvars.iv1159
  %641 = load i8, ptr %640, align 1, !tbaa !5
  %642 = sext i8 %641 to i32
  %643 = getelementptr i8, ptr %640, i64 1
  %644 = load i8, ptr %643, align 1, !tbaa !5
  %645 = sext i8 %644 to i32
  %646 = getelementptr i8, ptr %640, i64 2
  %647 = load i8, ptr %646, align 1, !tbaa !5
  %648 = sext i8 %647 to i32
  %649 = getelementptr i8, ptr %640, i64 3
  %650 = load i8, ptr %649, align 1, !tbaa !5
  %651 = sext i8 %650 to i32
  %652 = call noundef <2 x i64> @_ZL14_mm_setr_epi32iiii(i32 noundef %642, i32 noundef %645, i32 noundef %648, i32 noundef %651)
  %653 = call noundef <2 x i64> @_ZL13_mm_add_epi32Dv2_xS_(<2 x i64> noundef %639, <2 x i64> noundef %652)
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %638, <2 x i64> noundef %653)
  %654 = trunc nsw i64 %indvars.iv1159 to i32
  %655 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %654)
  %656 = call noundef <2 x i64> @_ZL15_mm_cmpgt_epi32Dv2_xS_(<2 x i64> noundef %653, <2 x i64> noundef %.09251103)
  %657 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %656, <2 x i64> noundef %653)
  %658 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %656, <2 x i64> noundef %.09251103)
  %659 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %657, <2 x i64> noundef %658)
  %660 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %656, <2 x i64> noundef %655)
  %661 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %656, <2 x i64> noundef %.09241104)
  %662 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %660, <2 x i64> noundef %661)
  %indvars.iv.next1160 = add nsw i64 %indvars.iv1159, 4
  %663 = icmp slt i64 %indvars.iv.next1160, %637
  br i1 %663, label %.lr.ph1106, label %._crit_edge1107.loopexit, !llvm.loop !36

._crit_edge1107.loopexit:                         ; preds = %.lr.ph1106
  %664 = trunc nsw i64 %indvars.iv.next1160 to i32
  br label %._crit_edge1107

._crit_edge1107:                                  ; preds = %._crit_edge1107.loopexit, %621
  %.8.lcssa = phi i32 [ %.1963, %621 ], [ %664, %._crit_edge1107.loopexit ]
  %.0925.lcssa = phi <2 x i64> [ %631, %621 ], [ %659, %._crit_edge1107.loopexit ]
  %.0924.lcssa = phi <2 x i64> [ %632, %621 ], [ %662, %._crit_edge1107.loopexit ]
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef nonnull %17, <2 x i64> noundef %.0925.lcssa)
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef nonnull %18, <2 x i64> noundef %.0924.lcssa)
  %665 = load i32, ptr %17, align 16, !tbaa !13
  %666 = icmp slt i32 %629, %665
  %667 = load i32, ptr %18, align 16
  %spec.select1193 = call i32 @llvm.smax.i32(i32 %629, i32 %665)
  %spec.select1194 = select i1 %666, i32 %667, i32 %.1965
  %668 = load i32, ptr %210, align 4, !tbaa !13
  %669 = icmp slt i32 %spec.select1193, %668
  %670 = load i32, ptr %211, align 4
  %671 = add nsw i32 %670, 1
  %.1934.1 = call i32 @llvm.smax.i32(i32 %spec.select1193, i32 %668)
  %.1929.1 = select i1 %669, i32 %671, i32 %spec.select1194
  %672 = load i32, ptr %212, align 8, !tbaa !13
  %673 = icmp slt i32 %.1934.1, %672
  %674 = load i32, ptr %213, align 8
  %675 = add nsw i32 %674, 2
  %.1934.2 = call i32 @llvm.smax.i32(i32 %.1934.1, i32 %672)
  %.1929.2 = select i1 %673, i32 %675, i32 %.1929.1
  %676 = load i32, ptr %214, align 4, !tbaa !13
  %677 = icmp slt i32 %.1934.2, %676
  %678 = load i32, ptr %215, align 4
  %679 = add nsw i32 %678, 3
  %.1934.3 = call i32 @llvm.smax.i32(i32 %.1934.2, i32 %676)
  %.1929.3 = select i1 %677, i32 %679, i32 %.1929.2
  %680 = icmp slt i32 %.8.lcssa, %.1965
  br i1 %680, label %.lr.ph1117.preheader, label %._crit_edge1118

.lr.ph1117.preheader:                             ; preds = %._crit_edge1107
  %681 = sext i32 %.8.lcssa to i64
  %682 = sext i32 %.1965 to i64
  %683 = sub i64 %smin1246, %681
  %.neg = add nsw i64 %681, 1
  %xtraiter1247 = and i64 %683, 1
  %lcmp.mod1248.not = icmp eq i64 %xtraiter1247, 0
  br i1 %lcmp.mod1248.not, label %.lr.ph1117.prol.loopexit, label %.lr.ph1117.prol

.lr.ph1117.prol:                                  ; preds = %.lr.ph1117.preheader
  %684 = getelementptr inbounds i8, ptr %115, i64 %681
  %685 = load i8, ptr %684, align 1, !tbaa !5
  %686 = sext i8 %685 to i32
  %687 = getelementptr inbounds i32, ptr %.0947, i64 %681
  %688 = load i32, ptr %687, align 4, !tbaa !13
  %689 = add nsw i32 %688, %686
  store i32 %689, ptr %687, align 4, !tbaa !13
  %690 = icmp sgt i32 %689, %.1934.3
  %spec.select1032.prol = call i32 @llvm.smax.i32(i32 %689, i32 %.1934.3)
  %spec.select1033.prol = select i1 %690, i32 %.8.lcssa, i32 %.1929.3
  %indvars.iv.next1166.prol = add nsw i64 %681, 1
  br label %.lr.ph1117.prol.loopexit

.lr.ph1117.prol.loopexit:                         ; preds = %.lr.ph1117.prol, %.lr.ph1117.preheader
  %indvars.iv1165.unr = phi i64 [ %681, %.lr.ph1117.preheader ], [ %indvars.iv.next1166.prol, %.lr.ph1117.prol ]
  %.29301115.unr = phi i32 [ %.1929.3, %.lr.ph1117.preheader ], [ %spec.select1033.prol, %.lr.ph1117.prol ]
  %.29351114.unr = phi i32 [ %.1934.3, %.lr.ph1117.preheader ], [ %spec.select1032.prol, %.lr.ph1117.prol ]
  %spec.select1032.lcssa.unr = phi i32 [ poison, %.lr.ph1117.preheader ], [ %spec.select1032.prol, %.lr.ph1117.prol ]
  %spec.select1033.lcssa.unr = phi i32 [ poison, %.lr.ph1117.preheader ], [ %spec.select1033.prol, %.lr.ph1117.prol ]
  %691 = icmp eq i64 %smin1246, %.neg
  br i1 %691, label %._crit_edge1118, label %.lr.ph1117

.lr.ph1117:                                       ; preds = %.lr.ph1117.prol.loopexit, %.lr.ph1117
  %indvars.iv1165 = phi i64 [ %indvars.iv.next1166.1, %.lr.ph1117 ], [ %indvars.iv1165.unr, %.lr.ph1117.prol.loopexit ]
  %.29301115 = phi i32 [ %spec.select1033.1, %.lr.ph1117 ], [ %.29301115.unr, %.lr.ph1117.prol.loopexit ]
  %.29351114 = phi i32 [ %spec.select1032.1, %.lr.ph1117 ], [ %.29351114.unr, %.lr.ph1117.prol.loopexit ]
  %692 = getelementptr inbounds i8, ptr %115, i64 %indvars.iv1165
  %693 = load i8, ptr %692, align 1, !tbaa !5
  %694 = sext i8 %693 to i32
  %695 = getelementptr inbounds i32, ptr %.0947, i64 %indvars.iv1165
  %696 = load i32, ptr %695, align 4, !tbaa !13
  %697 = add nsw i32 %696, %694
  store i32 %697, ptr %695, align 4, !tbaa !13
  %698 = icmp sgt i32 %697, %.29351114
  %spec.select1032 = call i32 @llvm.smax.i32(i32 %697, i32 %.29351114)
  %699 = trunc nsw i64 %indvars.iv1165 to i32
  %spec.select1033 = select i1 %698, i32 %699, i32 %.29301115
  %indvars.iv.next1166 = add nsw i64 %indvars.iv1165, 1
  %700 = getelementptr inbounds i8, ptr %115, i64 %indvars.iv.next1166
  %701 = load i8, ptr %700, align 1, !tbaa !5
  %702 = sext i8 %701 to i32
  %703 = getelementptr inbounds i32, ptr %.0947, i64 %indvars.iv.next1166
  %704 = load i32, ptr %703, align 4, !tbaa !13
  %705 = add nsw i32 %704, %702
  store i32 %705, ptr %703, align 4, !tbaa !13
  %706 = icmp sgt i32 %705, %spec.select1032
  %spec.select1032.1 = call i32 @llvm.smax.i32(i32 %705, i32 %spec.select1032)
  %707 = trunc nsw i64 %indvars.iv.next1166 to i32
  %spec.select1033.1 = select i1 %706, i32 %707, i32 %spec.select1033
  %indvars.iv.next1166.1 = add nsw i64 %indvars.iv1165, 2
  %708 = icmp slt i64 %indvars.iv.next1166.1, %682
  br i1 %708, label %.lr.ph1117, label %._crit_edge1118, !llvm.loop !37

._crit_edge1118:                                  ; preds = %.lr.ph1117.prol.loopexit, %.lr.ph1117, %._crit_edge1107
  %.2935.lcssa = phi i32 [ %.1934.3, %._crit_edge1107 ], [ %spec.select1032.lcssa.unr, %.lr.ph1117.prol.loopexit ], [ %spec.select1032.1, %.lr.ph1117 ]
  %.2930.lcssa = phi i32 [ %.1929.3, %._crit_edge1107 ], [ %spec.select1033.lcssa.unr, %.lr.ph1117.prol.loopexit ], [ %spec.select1033.1, %.lr.ph1117 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #12
  br label %713

709:                                              ; preds = %620
  %710 = load i8, ptr %115, align 16, !tbaa !5
  %711 = sext i8 %710 to i32
  %712 = sub nsw i32 %711, %21
  store i32 %712, ptr %.0947, align 4, !tbaa !13
  br label %713

713:                                              ; preds = %709, %._crit_edge1118
  %.4937 = phi i32 [ %.2935.lcssa, %._crit_edge1118 ], [ %712, %709 ]
  %.4932 = phi i32 [ %.2930.lcssa, %._crit_edge1118 ], [ 0, %709 ]
  %714 = icmp ne i32 %.1965, %189
  br i1 %714, label %721, label %715

715:                                              ; preds = %713
  %716 = load i32, ptr %204, align 4, !tbaa !13
  %717 = load i32, ptr %199, align 4, !tbaa !38
  %718 = icmp sgt i32 %716, %717
  br i1 %718, label %719, label %721

719:                                              ; preds = %715
  store i32 %716, ptr %199, align 4, !tbaa !38
  %720 = sub nsw i32 %indvars1171, %242
  store i32 %720, ptr %200, align 8, !tbaa !41
  br label %721

721:                                              ; preds = %719, %715, %713
  %722 = sub nsw i32 %indvars1171, %.1963
  %723 = icmp eq i32 %722, %190
  br i1 %723, label %724, label %731

724:                                              ; preds = %721
  %725 = zext nneg i32 %.1963 to i64
  %726 = getelementptr inbounds i32, ptr %.0947, i64 %725
  %727 = load i32, ptr %726, align 4, !tbaa !13
  %728 = load i32, ptr %201, align 4, !tbaa !42
  %729 = icmp sgt i32 %727, %728
  br i1 %729, label %730, label %731

730:                                              ; preds = %724
  store i32 %727, ptr %201, align 4, !tbaa !42
  store i32 %.1963, ptr %202, align 8, !tbaa !43
  br label %731

731:                                              ; preds = %730, %724, %721
  %732 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %15, i32 noundef 1, i32 noundef %.4937, i32 noundef %indvars1171, i32 noundef %.4932, i32 noundef %12, i8 noundef signext %.0921)
  %.not1017 = icmp eq i32 %732, 0
  br i1 %.not1017, label %733, label %.loopexit1064

733:                                              ; preds = %731
  %734 = icmp ne i64 %indvars.iv1168, %209
  %brmerge = or i1 %734, %714
  br i1 %brmerge, label %772, label %735

735:                                              ; preds = %733
  %736 = load i32, ptr %204, align 4, !tbaa !13
  br label %.sink.split

737:                                              ; preds = %.loopexit
  br i1 %.not1016, label %762, label %738

738:                                              ; preds = %737
  %.not1019 = icmp slt i32 %.09531121, %.1963
  %.not1020 = icmp sgt i32 %.09531121, %.1965
  %or.cond1036 = or i1 %.not1020, %.not1019
  br i1 %or.cond1036, label %755, label %739

739:                                              ; preds = %738
  %.not1022.not = icmp slt i32 %.09531121, %.1965
  br i1 %.not1022.not, label %740, label %749

740:                                              ; preds = %739
  %741 = add nuw nsw i32 %.09531121, 1
  %742 = zext nneg i32 %.09531121 to i64
  %743 = getelementptr inbounds i8, ptr %115, i64 %742
  %744 = load i8, ptr %743, align 1, !tbaa !5
  %745 = zext nneg i32 %741 to i64
  %746 = getelementptr inbounds i8, ptr %113, i64 %745
  %747 = load i8, ptr %746, align 1, !tbaa !5
  %748 = icmp sgt i8 %744, %747
  %.0953. = select i1 %748, i32 %.09531121, i32 %741
  %. = call i8 @llvm.smax.i8(i8 %744, i8 %747)
  %.pn = sext i8 %. to i32
  %.1949 = add nsw i32 %.09481122, %.pn
  br label %766

749:                                              ; preds = %739
  %750 = zext nneg i32 %.09531121 to i64
  %751 = getelementptr inbounds i8, ptr %115, i64 %750
  %752 = load i8, ptr %751, align 1, !tbaa !5
  %753 = sext i8 %752 to i32
  %754 = add nsw i32 %.09481122, %753
  br label %766

755:                                              ; preds = %738
  %756 = add nsw i32 %.09531121, 1
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds i8, ptr %113, i64 %757
  %759 = load i8, ptr %758, align 1, !tbaa !5
  %760 = sext i8 %759 to i32
  %761 = add nsw i32 %.09481122, %760
  br label %766

762:                                              ; preds = %737
  %763 = load i8, ptr %115, align 16, !tbaa !5
  %764 = sext i8 %763 to i32
  %765 = sub nsw i32 %764, %21
  br label %766

766:                                              ; preds = %740, %755, %749, %762
  %.2955 = phi i32 [ %.0953., %740 ], [ %.09531121, %749 ], [ %756, %755 ], [ 0, %762 ]
  %.2950 = phi i32 [ %.1949, %740 ], [ %754, %749 ], [ %761, %755 ], [ %765, %762 ]
  br i1 %.not1024, label %769, label %767

767:                                              ; preds = %766
  %768 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %15, i32 noundef 1, i32 noundef %.2950, i32 noundef %indvars1171, i32 noundef %.2955, i32 noundef %12, i8 noundef signext %.0921)
  %.not1025 = icmp eq i32 %768, 0
  br i1 %.not1025, label %769, label %.sink.split1195

769:                                              ; preds = %767, %766
  %770 = icmp eq i64 %indvars.iv1168, %209
  %771 = icmp eq i32 %.1965, %189
  %or.cond1039 = and i1 %770, %771
  br i1 %or.cond1039, label %.sink.split, label %772

.sink.split:                                      ; preds = %769, %735
  %.2950.sink = phi i32 [ %736, %735 ], [ %.2950, %769 ]
  %.4957.ph.ph = phi i32 [ %.09531121, %735 ], [ %.2955, %769 ]
  %.4952.ph.ph = phi i32 [ %.09481122, %735 ], [ %.2950, %769 ]
  store i32 %.2950.sink, ptr %198, align 4, !tbaa !44
  br label %772

772:                                              ; preds = %.sink.split, %769, %733
  %.4957.ph = phi i32 [ %.09531121, %733 ], [ %.2955, %769 ], [ %.4957.ph.ph, %.sink.split ]
  %.4952.ph = phi i32 [ %.09481122, %733 ], [ %.2950, %769 ], [ %.4952.ph.ph, %.sink.split ]
  %indvars.iv.next1169 = add nuw nsw i64 %indvars.iv1168, 1
  %exitcond1174.not = icmp eq i64 %indvars.iv.next1169, %wide.trip.count1173
  br i1 %exitcond1174.not, label %.loopexit1064, label %217, !llvm.loop !45

.loopexit1064:                                    ; preds = %772, %731, %._crit_edge1075, %236
  call void @seq_free(ptr noundef %109)
  br i1 %.not1003, label %.sink.split1195, label %773

.sink.split1195:                                  ; preds = %767, %.loopexit1064
  %.sink1196 = phi ptr [ %.0947, %.loopexit1064 ], [ %109, %767 ]
  call void @seq_free(ptr noundef %.sink1196)
  br label %773

773:                                              ; preds = %.sink.split1195, %.loopexit1064
  br i1 %.not, label %774, label %814

774:                                              ; preds = %773
  %775 = lshr i32 %14, 7
  %.lobit = and i32 %775, 1
  %776 = load i32, ptr %15, align 8
  %.not1026 = icmp sgt i32 %776, -1
  %777 = and i32 %14, 64
  %.not1027 = icmp eq i32 %777, 0
  %or.cond1040 = and i1 %.not1027, %.not1026
  br i1 %or.cond1040, label %778, label %785

778:                                              ; preds = %774
  %779 = shl nuw nsw i32 %66, 4
  %780 = add nsw i32 %3, -1
  %781 = add nsw i32 %1, -1
  %782 = getelementptr inbounds i8, ptr %15, i64 32
  %783 = getelementptr inbounds i8, ptr %15, i64 36
  %784 = getelementptr inbounds i8, ptr %15, i64 48
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %0, i32 noundef 1, i32 noundef %.lobit, i32 noundef 0, ptr noundef %.0959, ptr noundef %.0938, ptr noundef %.0939, i32 noundef %779, i32 noundef %780, i32 noundef %781, ptr noundef nonnull %782, ptr noundef nonnull %783, ptr noundef nonnull %784)
  br label %813

785:                                              ; preds = %774
  %.not1028 = icmp slt i32 %776, 0
  %or.cond1041 = or i1 %.not1027, %.not1028
  br i1 %or.cond1041, label %800, label %786

786:                                              ; preds = %785
  %787 = getelementptr inbounds i8, ptr %15, i64 12
  %788 = load i32, ptr %787, align 4, !tbaa !42
  %789 = add nsw i32 %788, %13
  %790 = icmp sgt i32 %789, %776
  br i1 %790, label %791, label %800

791:                                              ; preds = %786
  %792 = getelementptr inbounds i8, ptr %15, i64 40
  store i32 1, ptr %792, align 8, !tbaa !46
  %793 = shl nuw nsw i32 %66, 4
  %794 = getelementptr inbounds i8, ptr %15, i64 16
  %795 = load i32, ptr %794, align 8, !tbaa !43
  %796 = add nsw i32 %1, -1
  %797 = getelementptr inbounds i8, ptr %15, i64 32
  %798 = getelementptr inbounds i8, ptr %15, i64 36
  %799 = getelementptr inbounds i8, ptr %15, i64 48
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %0, i32 noundef 1, i32 noundef %.lobit, i32 noundef 0, ptr noundef %.0959, ptr noundef %.0938, ptr noundef %.0939, i32 noundef %793, i32 noundef %795, i32 noundef %796, ptr noundef nonnull %797, ptr noundef nonnull %798, ptr noundef nonnull %799)
  br label %813

800:                                              ; preds = %786, %785
  %801 = getelementptr inbounds i8, ptr %15, i64 8
  %802 = load i32, ptr %801, align 8, !tbaa !47
  %803 = icmp sgt i32 %802, -1
  br i1 %803, label %804, label %813

804:                                              ; preds = %800
  %805 = getelementptr inbounds i8, ptr %15, i64 4
  %806 = load i32, ptr %805, align 4, !tbaa !48
  %807 = icmp sgt i32 %806, -1
  br i1 %807, label %808, label %813

808:                                              ; preds = %804
  %809 = shl nuw nsw i32 %66, 4
  %810 = getelementptr inbounds i8, ptr %15, i64 32
  %811 = getelementptr inbounds i8, ptr %15, i64 36
  %812 = getelementptr inbounds i8, ptr %15, i64 48
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %0, i32 noundef 1, i32 noundef %.lobit, i32 noundef 0, ptr noundef %.0959, ptr noundef %.0938, ptr noundef %.0939, i32 noundef %809, i32 noundef %802, i32 noundef %806, ptr noundef nonnull %810, ptr noundef nonnull %811, ptr noundef nonnull %812)
  br label %813

813:                                              ; preds = %791, %808, %804, %800, %778
  call void @seq_free(ptr noundef %.0958)
  call void @seq_free(ptr noundef %.0938)
  br label %814

814:                                              ; preds = %773, %813, %._crit_edge, %16
  ret void
}

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

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

; Function Attrs: alwaysinline mustprogress uwtable
declare hidden noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext) local_unnamed_addr #3

declare ptr @seq_calloc_atomic(i64 noundef, i64 noundef) local_unnamed_addr #4

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

declare ptr @seq_alloc_atomic(i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress 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) #6

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef, <2 x i64> noundef) local_unnamed_addr #7

; 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 hidden noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef) local_unnamed_addr #7

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_cmplt_epi8Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef) local_unnamed_addr #3

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL14_mm_setr_epi32iiii(i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL13_mm_add_epi32Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden noundef <2 x i64> @_ZL15_mm_cmpgt_epi32Dv2_xS_(<2 x i64> noundef, <2 x i64> noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i8 noundef signext) local_unnamed_addr #2

declare void @seq_free(ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #9

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i8 @llvm.smax.i8(i8, i8) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x i32> @llvm.smin.v4i32(<4 x i32>, <4 x i32>) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.smin.v4i32(<4 x i32>) #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smin.i64(i64, i64) #10

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = distinct !{!8, !9, !10, !11}
!9 = !{!"llvm.loop.mustprogress"}
!10 = !{!"llvm.loop.isvectorized", i32 1}
!11 = !{!"llvm.loop.unroll.runtime.disable"}
!12 = distinct !{!12, !9, !11, !10}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !6, i64 0}
!15 = distinct !{!15, !9, !10, !11}
!16 = !{!17}
!17 = distinct !{!17, !18}
!18 = distinct !{!18, !"LVerDomain"}
!19 = !{!20}
!20 = distinct !{!20, !18}
!21 = distinct !{!21, !9, !10, !11}
!22 = !{!23}
!23 = distinct !{!23, !24}
!24 = distinct !{!24, !"LVerDomain"}
!25 = !{!26}
!26 = distinct !{!26, !24}
!27 = distinct !{!27, !9, !10, !11}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.unroll.disable"}
!30 = distinct !{!30, !9, !10}
!31 = distinct !{!31, !9}
!32 = distinct !{!32, !9}
!33 = distinct !{!33, !9}
!34 = distinct !{!34, !9}
!35 = distinct !{!35, !9}
!36 = distinct !{!36, !9}
!37 = distinct !{!37, !9}
!38 = !{!39, !14, i64 20}
!39 = !{!"_ZTS10ksw_extz_t", !14, i64 0, !14, i64 3, !14, i64 4, !14, i64 8, !14, i64 12, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !14, i64 32, !14, i64 36, !14, i64 40, !40, i64 48}
!40 = !{!"any pointer", !6, i64 0}
!41 = !{!39, !14, i64 24}
!42 = !{!39, !14, i64 12}
!43 = !{!39, !14, i64 16}
!44 = !{!39, !14, i64 28}
!45 = distinct !{!45, !9}
!46 = !{!39, !14, i64 40}
!47 = !{!39, !14, i64 8}
!48 = !{!39, !14, i64 4}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass