; LLVM IR from seq-lang/seq :: runtime/sw (ksw2_exts2_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_exts2_sse = external hidden unnamed_addr constant [151 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @ksw_exts2_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, ptr noundef %13) #0 {
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i8, align 1
  %21 = alloca ptr, align 8
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca i8, align 1
  %25 = alloca i8, align 1
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca <2 x i64>, align 16
  %53 = alloca <2 x i64>, align 16
  %54 = alloca <2 x i64>, align 16
  %55 = alloca <2 x i64>, align 16
  %56 = alloca <2 x i64>, align 16
  %57 = alloca <2 x i64>, align 16
  %58 = alloca <2 x i64>, align 16
  %59 = alloca <2 x i64>, align 16
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca ptr, align 8
  %67 = alloca ptr, align 8
  %68 = alloca ptr, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i8, align 1
  %80 = alloca i8, align 1
  %81 = alloca i8, align 1
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca ptr, align 8
  %85 = alloca <2 x i64>, align 16
  %86 = alloca <2 x i64>, align 16
  %87 = alloca <2 x i64>, align 16
  %88 = alloca <2 x i64>, align 16
  %89 = alloca <2 x i64>, align 16
  %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 ptr, align 8
  %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 <2 x i64>, align 16
  %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 ptr, align 8
  %116 = alloca <2 x i64>, align 16
  %117 = alloca <2 x i64>, align 16
  %118 = alloca <2 x i64>, align 16
  %119 = alloca <2 x i64>, align 16
  %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 i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca [4 x i32], align 16
  %131 = alloca [4 x i32], align 16
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca <2 x i64>, align 16
  %135 = alloca <2 x i64>, align 16
  %136 = alloca <2 x i64>, align 16
  %137 = alloca <2 x i64>, align 16
  %138 = alloca <2 x i64>, align 16
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  store ptr %0, ptr %15, align 8, !tbaa !5
  store i32 %1, ptr %16, align 4, !tbaa !9
  store ptr %2, ptr %17, align 8, !tbaa !5
  store i32 %3, ptr %18, align 4, !tbaa !9
  store ptr %4, ptr %19, align 8, !tbaa !5
  store i8 %5, ptr %20, align 1, !tbaa !11
  store ptr %6, ptr %21, align 8, !tbaa !5
  store i8 %7, ptr %22, align 1, !tbaa !11
  store i8 %8, ptr %23, align 1, !tbaa !11
  store i8 %9, ptr %24, align 1, !tbaa !11
  store i8 %10, ptr %25, align 1, !tbaa !11
  store i32 %11, ptr %26, align 4, !tbaa !9
  store i32 %12, ptr %27, align 4, !tbaa !9
  store ptr %13, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %142 = load i8, ptr %22, align 1, !tbaa !11
  %143 = sext i8 %142 to i32
  %144 = load i8, ptr %23, align 1, !tbaa !11
  %145 = sext i8 %144 to i32
  %146 = add nsw i32 %143, %145
  store i32 %146, ptr %31, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  store ptr null, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  store ptr null, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  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
  %147 = load i32, ptr %27, align 4, !tbaa !9
  %148 = and i32 %147, 1
  %149 = icmp ne i32 %148, 0
  %150 = xor i1 %149, true
  %151 = zext i1 %150 to i32
  store i32 %151, ptr %43, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %152 = load i32, ptr %27, align 4, !tbaa !9
  %153 = and i32 %152, 8
  %154 = icmp ne i32 %153, 0
  %155 = xor i1 %154, true
  %156 = xor i1 %155, true
  %157 = zext i1 %156 to i32
  store i32 %157, ptr %44, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  store ptr null, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  store i32 0, ptr %46, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  store i32 0, ptr %47, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  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 16, ptr %52) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %53) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %56) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #10
  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 8, ptr %60) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  store ptr null, ptr %66, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %158 = load ptr, ptr %28, align 8, !tbaa !5
  call void @_ZL14ksw_reset_extzP10ksw_extz_t(ptr noundef %158)
  %159 = load i8, ptr %20, align 1, !tbaa !11
  %160 = sext i8 %159 to i32
  %161 = icmp sle i32 %160, 1
  br i1 %161, label %177, label %162

162:                                              ; preds = %14
  %163 = load i32, ptr %16, align 4, !tbaa !9
  %164 = icmp sle i32 %163, 0
  br i1 %164, label %177, label %165

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

168:                                              ; preds = %165
  %169 = load i8, ptr %24, align 1, !tbaa !11
  %170 = sext i8 %169 to i32
  %171 = load i8, ptr %22, align 1, !tbaa !11
  %172 = sext i8 %171 to i32
  %173 = load i8, ptr %23, align 1, !tbaa !11
  %174 = sext i8 %173 to i32
  %175 = add nsw i32 %172, %174
  %176 = icmp sle i32 %170, %175
  br i1 %176, label %177, label %178

177:                                              ; preds = %168, %165, %162, %14
  store i32 1, ptr %69, align 4
  br label %2232

178:                                              ; preds = %168
  %179 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 0)
  store <2 x i64> %179, ptr %55, align 16, !tbaa !11
  %180 = load i8, ptr %22, align 1, !tbaa !11
  %181 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %180)
  store <2 x i64> %181, ptr %52, align 16, !tbaa !11
  %182 = load i8, ptr %24, align 1, !tbaa !11
  %183 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %182)
  store <2 x i64> %183, ptr %53, align 16, !tbaa !11
  %184 = load i8, ptr %22, align 1, !tbaa !11
  %185 = sext i8 %184 to i32
  %186 = load i8, ptr %23, align 1, !tbaa !11
  %187 = sext i8 %186 to i32
  %188 = add nsw i32 %185, %187
  %189 = trunc i32 %188 to i8
  %190 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %189)
  store <2 x i64> %190, ptr %54, align 16, !tbaa !11
  %191 = load ptr, ptr %21, align 8, !tbaa !5
  %192 = getelementptr inbounds i8, ptr %191, i64 0
  %193 = load i8, ptr %192, align 1, !tbaa !11
  %194 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %193)
  store <2 x i64> %194, ptr %56, align 16, !tbaa !11
  %195 = load ptr, ptr %21, align 8, !tbaa !5
  %196 = getelementptr inbounds i8, ptr %195, i64 1
  %197 = load i8, ptr %196, align 1, !tbaa !11
  %198 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %197)
  store <2 x i64> %198, ptr %57, align 16, !tbaa !11
  %199 = load ptr, ptr %21, align 8, !tbaa !5
  %200 = load i8, ptr %20, align 1, !tbaa !11
  %201 = sext i8 %200 to i32
  %202 = load i8, ptr %20, align 1, !tbaa !11
  %203 = sext i8 %202 to i32
  %204 = mul nsw i32 %201, %203
  %205 = sub nsw i32 %204, 1
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds i8, ptr %199, i64 %206
  %208 = load i8, ptr %207, align 1, !tbaa !11
  %209 = sext i8 %208 to i32
  %210 = icmp eq i32 %209, 0
  br i1 %210, label %211, label %217

211:                                              ; preds = %178
  %212 = load i8, ptr %23, align 1, !tbaa !11
  %213 = sext i8 %212 to i32
  %214 = sub nsw i32 0, %213
  %215 = trunc i32 %214 to i8
  %216 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %215)
  br label %229

217:                                              ; preds = %178
  %218 = load ptr, ptr %21, align 8, !tbaa !5
  %219 = load i8, ptr %20, align 1, !tbaa !11
  %220 = sext i8 %219 to i32
  %221 = load i8, ptr %20, align 1, !tbaa !11
  %222 = sext i8 %221 to i32
  %223 = mul nsw i32 %220, %222
  %224 = sub nsw i32 %223, 1
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds i8, ptr %218, i64 %225
  %227 = load i8, ptr %226, align 1, !tbaa !11
  %228 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %227)
  br label %229

229:                                              ; preds = %217, %211
  %230 = phi <2 x i64> [ %216, %211 ], [ %228, %217 ]
  store <2 x i64> %230, ptr %58, align 16, !tbaa !11
  %231 = load i8, ptr %20, align 1, !tbaa !11
  %232 = sext i8 %231 to i32
  %233 = sub nsw i32 %232, 1
  %234 = trunc i32 %233 to i8
  %235 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %234)
  store <2 x i64> %235, ptr %59, align 16, !tbaa !11
  %236 = load i32, ptr %18, align 4, !tbaa !9
  %237 = add nsw i32 %236, 15
  %238 = sdiv i32 %237, 16
  store i32 %238, ptr %35, align 4, !tbaa !9
  %239 = load i32, ptr %16, align 4, !tbaa !9
  %240 = load i32, ptr %18, align 4, !tbaa !9
  %241 = icmp slt i32 %239, %240
  br i1 %241, label %242, label %244

242:                                              ; preds = %229
  %243 = load i32, ptr %16, align 4, !tbaa !9
  br label %246

244:                                              ; preds = %229
  %245 = load i32, ptr %18, align 4, !tbaa !9
  br label %246

246:                                              ; preds = %244, %242
  %247 = phi i32 [ %243, %242 ], [ %245, %244 ]
  %248 = add nsw i32 %247, 15
  %249 = sdiv i32 %248, 16
  %250 = add nsw i32 %249, 1
  store i32 %250, ptr %32, align 4, !tbaa !9
  %251 = load i32, ptr %16, align 4, !tbaa !9
  %252 = add nsw i32 %251, 15
  %253 = sdiv i32 %252, 16
  store i32 %253, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  %254 = load ptr, ptr %21, align 8, !tbaa !5
  %255 = getelementptr inbounds i8, ptr %254, i64 0
  %256 = load i8, ptr %255, align 1, !tbaa !11
  %257 = sext i8 %256 to i32
  store i32 %257, ptr %39, align 4, !tbaa !9
  %258 = load ptr, ptr %21, align 8, !tbaa !5
  %259 = getelementptr inbounds i8, ptr %258, i64 1
  %260 = load i8, ptr %259, align 1, !tbaa !11
  %261 = sext i8 %260 to i32
  store i32 %261, ptr %40, align 4, !tbaa !9
  br label %262

262:                                              ; preds = %309, %246
  %263 = load i32, ptr %30, align 4, !tbaa !9
  %264 = load i8, ptr %20, align 1, !tbaa !11
  %265 = sext i8 %264 to i32
  %266 = load i8, ptr %20, align 1, !tbaa !11
  %267 = sext i8 %266 to i32
  %268 = mul nsw i32 %265, %267
  %269 = icmp slt i32 %263, %268
  br i1 %269, label %270, label %312

270:                                              ; preds = %262
  %271 = load i32, ptr %39, align 4, !tbaa !9
  %272 = load ptr, ptr %21, align 8, !tbaa !5
  %273 = load i32, ptr %30, align 4, !tbaa !9
  %274 = sext i32 %273 to i64
  %275 = getelementptr inbounds i8, ptr %272, i64 %274
  %276 = load i8, ptr %275, align 1, !tbaa !11
  %277 = sext i8 %276 to i32
  %278 = icmp sgt i32 %271, %277
  br i1 %278, label %279, label %281

279:                                              ; preds = %270
  %280 = load i32, ptr %39, align 4, !tbaa !9
  br label %288

281:                                              ; preds = %270
  %282 = load ptr, ptr %21, align 8, !tbaa !5
  %283 = load i32, ptr %30, align 4, !tbaa !9
  %284 = sext i32 %283 to i64
  %285 = getelementptr inbounds i8, ptr %282, i64 %284
  %286 = load i8, ptr %285, align 1, !tbaa !11
  %287 = sext i8 %286 to i32
  br label %288

288:                                              ; preds = %281, %279
  %289 = phi i32 [ %280, %279 ], [ %287, %281 ]
  store i32 %289, ptr %39, align 4, !tbaa !9
  %290 = load i32, ptr %40, align 4, !tbaa !9
  %291 = load ptr, ptr %21, align 8, !tbaa !5
  %292 = load i32, ptr %30, align 4, !tbaa !9
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds i8, ptr %291, i64 %293
  %295 = load i8, ptr %294, align 1, !tbaa !11
  %296 = sext i8 %295 to i32
  %297 = icmp slt i32 %290, %296
  br i1 %297, label %298, label %300

298:                                              ; preds = %288
  %299 = load i32, ptr %40, align 4, !tbaa !9
  br label %307

300:                                              ; preds = %288
  %301 = load ptr, ptr %21, align 8, !tbaa !5
  %302 = load i32, ptr %30, align 4, !tbaa !9
  %303 = sext i32 %302 to i64
  %304 = getelementptr inbounds i8, ptr %301, i64 %303
  %305 = load i8, ptr %304, align 1, !tbaa !11
  %306 = sext i8 %305 to i32
  br label %307

307:                                              ; preds = %300, %298
  %308 = phi i32 [ %299, %298 ], [ %306, %300 ]
  store i32 %308, ptr %40, align 4, !tbaa !9
  br label %309

309:                                              ; preds = %307
  %310 = load i32, ptr %30, align 4, !tbaa !9
  %311 = add nsw i32 %310, 1
  store i32 %311, ptr %30, align 4, !tbaa !9
  br label %262, !llvm.loop !12

312:                                              ; preds = %262
  %313 = load i32, ptr %40, align 4, !tbaa !9
  %314 = sub nsw i32 0, %313
  %315 = load i8, ptr %22, align 1, !tbaa !11
  %316 = sext i8 %315 to i32
  %317 = load i8, ptr %23, align 1, !tbaa !11
  %318 = sext i8 %317 to i32
  %319 = add nsw i32 %316, %318
  %320 = mul nsw i32 2, %319
  %321 = icmp sgt i32 %314, %320
  br i1 %321, label %322, label %323

322:                                              ; preds = %312
  store i32 1, ptr %69, align 4
  br label %2232

323:                                              ; preds = %312
  %324 = load i8, ptr %24, align 1, !tbaa !11
  %325 = sext i8 %324 to i32
  %326 = load i8, ptr %22, align 1, !tbaa !11
  %327 = sext i8 %326 to i32
  %328 = sub nsw i32 %325, %327
  %329 = load i8, ptr %23, align 1, !tbaa !11
  %330 = sext i8 %329 to i32
  %331 = sdiv i32 %328, %330
  %332 = sub nsw i32 %331, 1
  store i32 %332, ptr %41, align 4, !tbaa !9
  %333 = load i8, ptr %24, align 1, !tbaa !11
  %334 = sext i8 %333 to i32
  %335 = load i8, ptr %22, align 1, !tbaa !11
  %336 = sext i8 %335 to i32
  %337 = load i8, ptr %23, align 1, !tbaa !11
  %338 = sext i8 %337 to i32
  %339 = add nsw i32 %336, %338
  %340 = load i32, ptr %41, align 4, !tbaa !9
  %341 = load i8, ptr %23, align 1, !tbaa !11
  %342 = sext i8 %341 to i32
  %343 = mul nsw i32 %340, %342
  %344 = add nsw i32 %339, %343
  %345 = icmp sgt i32 %334, %344
  br i1 %345, label %346, label %349

346:                                              ; preds = %323
  %347 = load i32, ptr %41, align 4, !tbaa !9
  %348 = add nsw i32 %347, 1
  store i32 %348, ptr %41, align 4, !tbaa !9
  br label %349

349:                                              ; preds = %346, %323
  %350 = load i32, ptr %41, align 4, !tbaa !9
  %351 = load i8, ptr %23, align 1, !tbaa !11
  %352 = sext i8 %351 to i32
  %353 = mul nsw i32 %350, %352
  %354 = load i8, ptr %24, align 1, !tbaa !11
  %355 = sext i8 %354 to i32
  %356 = load i8, ptr %22, align 1, !tbaa !11
  %357 = sext i8 %356 to i32
  %358 = sub nsw i32 %355, %357
  %359 = sub nsw i32 %353, %358
  store i32 %359, ptr %42, align 4, !tbaa !9
  %360 = load i32, ptr %35, align 4, !tbaa !9
  %361 = mul nsw i32 %360, 9
  %362 = load i32, ptr %36, align 4, !tbaa !9
  %363 = add nsw i32 %361, %362
  %364 = add nsw i32 %363, 1
  %365 = sext i32 %364 to i64
  %366 = call ptr @seq_calloc_atomic(i64 noundef %365, i64 noundef 16)
  store ptr %366, ptr %50, align 8, !tbaa !5
  %367 = load ptr, ptr %50, align 8, !tbaa !5
  %368 = ptrtoint ptr %367 to i64
  %369 = add i64 %368, 15
  %370 = lshr i64 %369, 4
  %371 = shl i64 %370, 4
  %372 = inttoptr i64 %371 to ptr
  store ptr %372, ptr %60, align 8, !tbaa !5
  %373 = load ptr, ptr %60, align 8, !tbaa !5
  %374 = load i32, ptr %35, align 4, !tbaa !9
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds <2 x i64>, ptr %373, i64 %375
  store ptr %376, ptr %61, align 8, !tbaa !5
  %377 = load ptr, ptr %61, align 8, !tbaa !5
  %378 = load i32, ptr %35, align 4, !tbaa !9
  %379 = sext i32 %378 to i64
  %380 = getelementptr inbounds <2 x i64>, ptr %377, i64 %379
  store ptr %380, ptr %62, align 8, !tbaa !5
  %381 = load ptr, ptr %62, align 8, !tbaa !5
  %382 = load i32, ptr %35, align 4, !tbaa !9
  %383 = sext i32 %382 to i64
  %384 = getelementptr inbounds <2 x i64>, ptr %381, i64 %383
  store ptr %384, ptr %63, align 8, !tbaa !5
  %385 = load ptr, ptr %63, align 8, !tbaa !5
  %386 = load i32, ptr %35, align 4, !tbaa !9
  %387 = sext i32 %386 to i64
  %388 = getelementptr inbounds <2 x i64>, ptr %385, i64 %387
  store ptr %388, ptr %64, align 8, !tbaa !5
  %389 = load ptr, ptr %64, align 8, !tbaa !5
  %390 = load i32, ptr %35, align 4, !tbaa !9
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds <2 x i64>, ptr %389, i64 %391
  store ptr %392, ptr %67, align 8, !tbaa !5
  %393 = load ptr, ptr %67, align 8, !tbaa !5
  %394 = load i32, ptr %35, align 4, !tbaa !9
  %395 = sext i32 %394 to i64
  %396 = getelementptr inbounds <2 x i64>, ptr %393, i64 %395
  store ptr %396, ptr %68, align 8, !tbaa !5
  %397 = load ptr, ptr %68, align 8, !tbaa !5
  %398 = load i32, ptr %35, align 4, !tbaa !9
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds <2 x i64>, ptr %397, i64 %399
  store ptr %400, ptr %65, align 8, !tbaa !5
  %401 = load ptr, ptr %65, align 8, !tbaa !5
  %402 = load i32, ptr %35, align 4, !tbaa !9
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds <2 x i64>, ptr %401, i64 %403
  store ptr %404, ptr %49, align 8, !tbaa !5
  %405 = load ptr, ptr %49, align 8, !tbaa !5
  %406 = load i32, ptr %35, align 4, !tbaa !9
  %407 = mul nsw i32 %406, 16
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds i8, ptr %405, i64 %408
  store ptr %409, ptr %48, align 8, !tbaa !5
  %410 = load ptr, ptr %60, align 8, !tbaa !5
  %411 = load i8, ptr %22, align 1, !tbaa !11
  %412 = sext i8 %411 to i32
  %413 = sub nsw i32 0, %412
  %414 = load i8, ptr %23, align 1, !tbaa !11
  %415 = sext i8 %414 to i32
  %416 = sub nsw i32 %413, %415
  %417 = trunc i32 %416 to i8
  %418 = load i32, ptr %35, align 4, !tbaa !9
  %419 = mul nsw i32 %418, 16
  %420 = mul nsw i32 %419, 4
  %421 = sext i32 %420 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %410, i8 %417, i64 %421, i1 false)
  %422 = load ptr, ptr %64, align 8, !tbaa !5
  %423 = load i8, ptr %24, align 1, !tbaa !11
  %424 = sext i8 %423 to i32
  %425 = sub nsw i32 0, %424
  %426 = trunc i32 %425 to i8
  %427 = load i32, ptr %35, align 4, !tbaa !9
  %428 = mul nsw i32 %427, 16
  %429 = sext i32 %428 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %422, i8 %426, i64 %429, i1 false)
  %430 = load i32, ptr %44, align 4, !tbaa !9
  %431 = icmp ne i32 %430, 0
  br i1 %431, label %452, label %432

432:                                              ; preds = %349
  %433 = load i32, ptr %35, align 4, !tbaa !9
  %434 = mul nsw i32 %433, 16
  %435 = mul nsw i32 %434, 4
  %436 = sext i32 %435 to i64
  %437 = call ptr @seq_alloc_atomic(i64 noundef %436)
  store ptr %437, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %30, align 4, !tbaa !9
  br label %438

438:                                              ; preds = %448, %432
  %439 = load i32, ptr %30, align 4, !tbaa !9
  %440 = load i32, ptr %35, align 4, !tbaa !9
  %441 = mul nsw i32 %440, 16
  %442 = icmp slt i32 %439, %441
  br i1 %442, label %443, label %451

443:                                              ; preds = %438
  %444 = load ptr, ptr %45, align 8, !tbaa !5
  %445 = load i32, ptr %30, align 4, !tbaa !9
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds i32, ptr %444, i64 %446
  store i32 -1073741824, ptr %447, align 4, !tbaa !9
  br label %448

448:                                              ; preds = %443
  %449 = load i32, ptr %30, align 4, !tbaa !9
  %450 = add nsw i32 %449, 1
  store i32 %450, ptr %30, align 4, !tbaa !9
  br label %438, !llvm.loop !14

451:                                              ; preds = %438
  br label %452

452:                                              ; preds = %451, %349
  %453 = load i32, ptr %43, align 4, !tbaa !9
  %454 = icmp ne i32 %453, 0
  br i1 %454, label %455, label %488

455:                                              ; preds = %452
  %456 = load i32, ptr %16, align 4, !tbaa !9
  %457 = load i32, ptr %18, align 4, !tbaa !9
  %458 = add nsw i32 %456, %457
  %459 = sub nsw i32 %458, 1
  %460 = load i32, ptr %32, align 4, !tbaa !9
  %461 = mul nsw i32 %459, %460
  %462 = add nsw i32 %461, 1
  %463 = mul nsw i32 %462, 16
  %464 = sext i32 %463 to i64
  %465 = call ptr @seq_alloc_atomic(i64 noundef %464)
  store ptr %465, ptr %51, align 8, !tbaa !5
  %466 = load ptr, ptr %51, align 8, !tbaa !5
  %467 = ptrtoint ptr %466 to i64
  %468 = add i64 %467, 15
  %469 = lshr i64 %468, 4
  %470 = shl i64 %469, 4
  %471 = inttoptr i64 %470 to ptr
  store ptr %471, ptr %66, align 8, !tbaa !5
  %472 = load i32, ptr %16, align 4, !tbaa !9
  %473 = load i32, ptr %18, align 4, !tbaa !9
  %474 = add nsw i32 %472, %473
  %475 = sub nsw i32 %474, 1
  %476 = sext i32 %475 to i64
  %477 = mul i64 %476, 4
  %478 = mul i64 %477, 2
  %479 = call ptr @seq_alloc_atomic(i64 noundef %478)
  store ptr %479, ptr %33, align 8, !tbaa !5
  %480 = load ptr, ptr %33, align 8, !tbaa !5
  %481 = load i32, ptr %16, align 4, !tbaa !9
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds i32, ptr %480, i64 %482
  %484 = load i32, ptr %18, align 4, !tbaa !9
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds i32, ptr %483, i64 %485
  %487 = getelementptr inbounds i32, ptr %486, i64 -1
  store ptr %487, ptr %34, align 8, !tbaa !5
  br label %488

488:                                              ; preds = %455, %452
  store i32 0, ptr %30, align 4, !tbaa !9
  br label %489

489:                                              ; preds = %506, %488
  %490 = load i32, ptr %30, align 4, !tbaa !9
  %491 = load i32, ptr %16, align 4, !tbaa !9
  %492 = icmp slt i32 %490, %491
  br i1 %492, label %493, label %509

493:                                              ; preds = %489
  %494 = load ptr, ptr %17, align 8, !tbaa !5
  %495 = load i32, ptr %16, align 4, !tbaa !9
  %496 = sub nsw i32 %495, 1
  %497 = load i32, ptr %30, align 4, !tbaa !9
  %498 = sub nsw i32 %496, %497
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds i8, ptr %494, i64 %499
  %501 = load i8, ptr %500, align 1, !tbaa !11
  %502 = load ptr, ptr %48, align 8, !tbaa !5
  %503 = load i32, ptr %30, align 4, !tbaa !9
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds i8, ptr %502, i64 %504
  store i8 %501, ptr %505, align 1, !tbaa !11
  br label %506

506:                                              ; preds = %493
  %507 = load i32, ptr %30, align 4, !tbaa !9
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr %30, align 4, !tbaa !9
  br label %489, !llvm.loop !15

509:                                              ; preds = %489
  %510 = load ptr, ptr %49, align 8, !tbaa !5
  %511 = load ptr, ptr %19, align 8, !tbaa !5
  %512 = load i32, ptr %18, align 4, !tbaa !9
  %513 = sext i32 %512 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %510, ptr align 1 %511, i64 %513, i1 false)
  %514 = load i32, ptr %27, align 4, !tbaa !9
  %515 = and i32 %514, 768
  %516 = icmp ne i32 %515, 0
  br i1 %516, label %517, label %730

517:                                              ; preds = %509
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %518 = load i32, ptr %27, align 4, !tbaa !9
  %519 = and i32 %518, 1024
  %520 = icmp ne i32 %519, 0
  br i1 %520, label %521, label %526

521:                                              ; preds = %517
  %522 = load i8, ptr %25, align 1, !tbaa !11
  %523 = sext i8 %522 to i32
  %524 = sub nsw i32 0, %523
  %525 = sdiv i32 %524, 2
  br label %527

526:                                              ; preds = %517
  br label %527

527:                                              ; preds = %526, %521
  %528 = phi i32 [ %525, %521 ], [ 0, %526 ]
  store i32 %528, ptr %70, align 4, !tbaa !9
  %529 = load ptr, ptr %67, align 8, !tbaa !5
  %530 = load i8, ptr %25, align 1, !tbaa !11
  %531 = sext i8 %530 to i32
  %532 = sub nsw i32 0, %531
  %533 = trunc i32 %532 to i8
  %534 = load i32, ptr %35, align 4, !tbaa !9
  %535 = mul nsw i32 %534, 16
  %536 = sext i32 %535 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %529, i8 %533, i64 %536, i1 false)
  store i32 0, ptr %30, align 4, !tbaa !9
  br label %537

537:                                              ; preds = %627, %527
  %538 = load i32, ptr %30, align 4, !tbaa !9
  %539 = load i32, ptr %18, align 4, !tbaa !9
  %540 = sub nsw i32 %539, 4
  %541 = icmp slt i32 %538, %540
  br i1 %541, label %542, label %630

542:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  store i32 0, ptr %71, align 4, !tbaa !9
  %543 = load i32, ptr %27, align 4, !tbaa !9
  %544 = and i32 %543, 256
  %545 = icmp ne i32 %544, 0
  br i1 %545, label %546, label %565

546:                                              ; preds = %542
  %547 = load ptr, ptr %19, align 8, !tbaa !5
  %548 = load i32, ptr %30, align 4, !tbaa !9
  %549 = add nsw i32 %548, 1
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds i8, ptr %547, i64 %550
  %552 = load i8, ptr %551, align 1, !tbaa !11
  %553 = zext i8 %552 to i32
  %554 = icmp eq i32 %553, 2
  br i1 %554, label %555, label %565

555:                                              ; preds = %546
  %556 = load ptr, ptr %19, align 8, !tbaa !5
  %557 = load i32, ptr %30, align 4, !tbaa !9
  %558 = add nsw i32 %557, 2
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds i8, ptr %556, i64 %559
  %561 = load i8, ptr %560, align 1, !tbaa !11
  %562 = zext i8 %561 to i32
  %563 = icmp eq i32 %562, 3
  br i1 %563, label %564, label %565

564:                                              ; preds = %555
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %565

565:                                              ; preds = %564, %555, %546, %542
  %566 = load i32, ptr %27, align 4, !tbaa !9
  %567 = and i32 %566, 512
  %568 = icmp ne i32 %567, 0
  br i1 %568, label %569, label %588

569:                                              ; preds = %565
  %570 = load ptr, ptr %19, align 8, !tbaa !5
  %571 = load i32, ptr %30, align 4, !tbaa !9
  %572 = add nsw i32 %571, 1
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds i8, ptr %570, i64 %573
  %575 = load i8, ptr %574, align 1, !tbaa !11
  %576 = zext i8 %575 to i32
  %577 = icmp eq i32 %576, 1
  br i1 %577, label %578, label %588

578:                                              ; preds = %569
  %579 = load ptr, ptr %19, align 8, !tbaa !5
  %580 = load i32, ptr %30, align 4, !tbaa !9
  %581 = add nsw i32 %580, 2
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds i8, ptr %579, i64 %582
  %584 = load i8, ptr %583, align 1, !tbaa !11
  %585 = zext i8 %584 to i32
  %586 = icmp eq i32 %585, 3
  br i1 %586, label %587, label %588

587:                                              ; preds = %578
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %588

588:                                              ; preds = %587, %578, %569, %565
  %589 = load i32, ptr %71, align 4, !tbaa !9
  %590 = icmp ne i32 %589, 0
  br i1 %590, label %591, label %610

591:                                              ; preds = %588
  %592 = load ptr, ptr %19, align 8, !tbaa !5
  %593 = load i32, ptr %30, align 4, !tbaa !9
  %594 = add nsw i32 %593, 3
  %595 = sext i32 %594 to i64
  %596 = getelementptr inbounds i8, ptr %592, i64 %595
  %597 = load i8, ptr %596, align 1, !tbaa !11
  %598 = zext i8 %597 to i32
  %599 = icmp eq i32 %598, 0
  br i1 %599, label %609, label %600

600:                                              ; preds = %591
  %601 = load ptr, ptr %19, align 8, !tbaa !5
  %602 = load i32, ptr %30, align 4, !tbaa !9
  %603 = add nsw i32 %602, 3
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds i8, ptr %601, i64 %604
  %606 = load i8, ptr %605, align 1, !tbaa !11
  %607 = zext i8 %606 to i32
  %608 = icmp eq i32 %607, 2
  br i1 %608, label %609, label %610

609:                                              ; preds = %600, %591
  store i32 2, ptr %71, align 4, !tbaa !9
  br label %610

610:                                              ; preds = %609, %600, %588
  %611 = load i32, ptr %71, align 4, !tbaa !9
  %612 = icmp ne i32 %611, 0
  br i1 %612, label %613, label %626

613:                                              ; preds = %610
  %614 = load i32, ptr %71, align 4, !tbaa !9
  %615 = icmp eq i32 %614, 2
  br i1 %615, label %616, label %617

616:                                              ; preds = %613
  br label %619

617:                                              ; preds = %613
  %618 = load i32, ptr %70, align 4, !tbaa !9
  br label %619

619:                                              ; preds = %617, %616
  %620 = phi i32 [ 0, %616 ], [ %618, %617 ]
  %621 = trunc i32 %620 to i8
  %622 = load ptr, ptr %67, align 8, !tbaa !5
  %623 = load i32, ptr %30, align 4, !tbaa !9
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds i8, ptr %622, i64 %624
  store i8 %621, ptr %625, align 1, !tbaa !11
  br label %626

626:                                              ; preds = %619, %610
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %627

627:                                              ; preds = %626
  %628 = load i32, ptr %30, align 4, !tbaa !9
  %629 = add nsw i32 %628, 1
  store i32 %629, ptr %30, align 4, !tbaa !9
  br label %537, !llvm.loop !16

630:                                              ; preds = %537
  %631 = load ptr, ptr %68, align 8, !tbaa !5
  %632 = load i8, ptr %25, align 1, !tbaa !11
  %633 = sext i8 %632 to i32
  %634 = sub nsw i32 0, %633
  %635 = trunc i32 %634 to i8
  %636 = load i32, ptr %35, align 4, !tbaa !9
  %637 = mul nsw i32 %636, 16
  %638 = sext i32 %637 to i64
  call void @llvm.memset.p0.i64(ptr align 16 %631, i8 %635, i64 %638, i1 false)
  store i32 2, ptr %30, align 4, !tbaa !9
  br label %639

639:                                              ; preds = %726, %630
  %640 = load i32, ptr %30, align 4, !tbaa !9
  %641 = load i32, ptr %18, align 4, !tbaa !9
  %642 = icmp slt i32 %640, %641
  br i1 %642, label %643, label %729

643:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  store i32 0, ptr %72, align 4, !tbaa !9
  %644 = load i32, ptr %27, align 4, !tbaa !9
  %645 = and i32 %644, 256
  %646 = icmp ne i32 %645, 0
  br i1 %646, label %647, label %665

647:                                              ; preds = %643
  %648 = load ptr, ptr %19, align 8, !tbaa !5
  %649 = load i32, ptr %30, align 4, !tbaa !9
  %650 = sub nsw i32 %649, 1
  %651 = sext i32 %650 to i64
  %652 = getelementptr inbounds i8, ptr %648, i64 %651
  %653 = load i8, ptr %652, align 1, !tbaa !11
  %654 = zext i8 %653 to i32
  %655 = icmp eq i32 %654, 0
  br i1 %655, label %656, label %665

656:                                              ; preds = %647
  %657 = load ptr, ptr %19, align 8, !tbaa !5
  %658 = load i32, ptr %30, align 4, !tbaa !9
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds i8, ptr %657, i64 %659
  %661 = load i8, ptr %660, align 1, !tbaa !11
  %662 = zext i8 %661 to i32
  %663 = icmp eq i32 %662, 2
  br i1 %663, label %664, label %665

664:                                              ; preds = %656
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %665

665:                                              ; preds = %664, %656, %647, %643
  %666 = load i32, ptr %27, align 4, !tbaa !9
  %667 = and i32 %666, 512
  %668 = icmp ne i32 %667, 0
  br i1 %668, label %669, label %687

669:                                              ; preds = %665
  %670 = load ptr, ptr %19, align 8, !tbaa !5
  %671 = load i32, ptr %30, align 4, !tbaa !9
  %672 = sub nsw i32 %671, 1
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds i8, ptr %670, i64 %673
  %675 = load i8, ptr %674, align 1, !tbaa !11
  %676 = zext i8 %675 to i32
  %677 = icmp eq i32 %676, 0
  br i1 %677, label %678, label %687

678:                                              ; preds = %669
  %679 = load ptr, ptr %19, align 8, !tbaa !5
  %680 = load i32, ptr %30, align 4, !tbaa !9
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds i8, ptr %679, i64 %681
  %683 = load i8, ptr %682, align 1, !tbaa !11
  %684 = zext i8 %683 to i32
  %685 = icmp eq i32 %684, 1
  br i1 %685, label %686, label %687

686:                                              ; preds = %678
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %687

687:                                              ; preds = %686, %678, %669, %665
  %688 = load i32, ptr %72, align 4, !tbaa !9
  %689 = icmp ne i32 %688, 0
  br i1 %689, label %690, label %709

690:                                              ; preds = %687
  %691 = load ptr, ptr %19, align 8, !tbaa !5
  %692 = load i32, ptr %30, align 4, !tbaa !9
  %693 = sub nsw i32 %692, 2
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds i8, ptr %691, i64 %694
  %696 = load i8, ptr %695, align 1, !tbaa !11
  %697 = zext i8 %696 to i32
  %698 = icmp eq i32 %697, 1
  br i1 %698, label %708, label %699

699:                                              ; preds = %690
  %700 = load ptr, ptr %19, align 8, !tbaa !5
  %701 = load i32, ptr %30, align 4, !tbaa !9
  %702 = sub nsw i32 %701, 2
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds i8, ptr %700, i64 %703
  %705 = load i8, ptr %704, align 1, !tbaa !11
  %706 = zext i8 %705 to i32
  %707 = icmp eq i32 %706, 3
  br i1 %707, label %708, label %709

708:                                              ; preds = %699, %690
  store i32 2, ptr %72, align 4, !tbaa !9
  br label %709

709:                                              ; preds = %708, %699, %687
  %710 = load i32, ptr %72, align 4, !tbaa !9
  %711 = icmp ne i32 %710, 0
  br i1 %711, label %712, label %725

712:                                              ; preds = %709
  %713 = load i32, ptr %72, align 4, !tbaa !9
  %714 = icmp eq i32 %713, 2
  br i1 %714, label %715, label %716

715:                                              ; preds = %712
  br label %718

716:                                              ; preds = %712
  %717 = load i32, ptr %70, align 4, !tbaa !9
  br label %718

718:                                              ; preds = %716, %715
  %719 = phi i32 [ 0, %715 ], [ %717, %716 ]
  %720 = trunc i32 %719 to i8
  %721 = load ptr, ptr %68, align 8, !tbaa !5
  %722 = load i32, ptr %30, align 4, !tbaa !9
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds i8, ptr %721, i64 %723
  store i8 %720, ptr %724, align 1, !tbaa !11
  br label %725

725:                                              ; preds = %718, %709
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %726

726:                                              ; preds = %725
  %727 = load i32, ptr %30, align 4, !tbaa !9
  %728 = add nsw i32 %727, 1
  store i32 %728, ptr %30, align 4, !tbaa !9
  br label %639, !llvm.loop !17

729:                                              ; preds = %639
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %730

730:                                              ; preds = %729, %509
  store i32 0, ptr %29, align 4, !tbaa !9
  store i32 -1, ptr %38, align 4, !tbaa !9
  store i32 -1, ptr %37, align 4, !tbaa !9
  br label %731

731:                                              ; preds = %2150, %730
  %732 = load i32, ptr %29, align 4, !tbaa !9
  %733 = load i32, ptr %16, align 4, !tbaa !9
  %734 = load i32, ptr %18, align 4, !tbaa !9
  %735 = add nsw i32 %733, %734
  %736 = sub nsw i32 %735, 1
  %737 = icmp slt i32 %732, %736
  br i1 %737, label %738, label %2153

738:                                              ; preds = %731
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  store i32 0, ptr %73, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  %739 = load i32, ptr %18, align 4, !tbaa !9
  %740 = sub nsw i32 %739, 1
  store i32 %740, ptr %74, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  %741 = load ptr, ptr %60, align 8, !tbaa !5
  store ptr %741, ptr %82, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %742 = load ptr, ptr %61, align 8, !tbaa !5
  store ptr %742, ptr %83, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #10
  %743 = load ptr, ptr %48, align 8, !tbaa !5
  %744 = load i32, ptr %16, align 4, !tbaa !9
  %745 = sub nsw i32 %744, 1
  %746 = load i32, ptr %29, align 4, !tbaa !9
  %747 = sub nsw i32 %745, %746
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds i8, ptr %743, i64 %748
  store ptr %749, ptr %84, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %85) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %87) #10
  %750 = load i32, ptr %73, align 4, !tbaa !9
  %751 = load i32, ptr %29, align 4, !tbaa !9
  %752 = load i32, ptr %16, align 4, !tbaa !9
  %753 = sub nsw i32 %751, %752
  %754 = add nsw i32 %753, 1
  %755 = icmp slt i32 %750, %754
  br i1 %755, label %756, label %761

756:                                              ; preds = %738
  %757 = load i32, ptr %29, align 4, !tbaa !9
  %758 = load i32, ptr %16, align 4, !tbaa !9
  %759 = sub nsw i32 %757, %758
  %760 = add nsw i32 %759, 1
  store i32 %760, ptr %73, align 4, !tbaa !9
  br label %761

761:                                              ; preds = %756, %738
  %762 = load i32, ptr %74, align 4, !tbaa !9
  %763 = load i32, ptr %29, align 4, !tbaa !9
  %764 = icmp sgt i32 %762, %763
  br i1 %764, label %765, label %767

765:                                              ; preds = %761
  %766 = load i32, ptr %29, align 4, !tbaa !9
  store i32 %766, ptr %74, align 4, !tbaa !9
  br label %767

767:                                              ; preds = %765, %761
  %768 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %768, ptr %75, align 4, !tbaa !9
  %769 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %769, ptr %76, align 4, !tbaa !9
  %770 = load i32, ptr %73, align 4, !tbaa !9
  %771 = sdiv i32 %770, 16
  %772 = mul nsw i32 %771, 16
  store i32 %772, ptr %73, align 4, !tbaa !9
  %773 = load i32, ptr %74, align 4, !tbaa !9
  %774 = add nsw i32 %773, 16
  %775 = sdiv i32 %774, 16
  %776 = mul nsw i32 %775, 16
  %777 = sub nsw i32 %776, 1
  store i32 %777, ptr %74, align 4, !tbaa !9
  %778 = load i32, ptr %73, align 4, !tbaa !9
  %779 = icmp sgt i32 %778, 0
  br i1 %779, label %780, label %829

780:                                              ; preds = %767
  %781 = load i32, ptr %73, align 4, !tbaa !9
  %782 = sub nsw i32 %781, 1
  %783 = load i32, ptr %37, align 4, !tbaa !9
  %784 = icmp sge i32 %782, %783
  br i1 %784, label %785, label %809

785:                                              ; preds = %780
  %786 = load i32, ptr %73, align 4, !tbaa !9
  %787 = sub nsw i32 %786, 1
  %788 = load i32, ptr %38, align 4, !tbaa !9
  %789 = icmp sle i32 %787, %788
  br i1 %789, label %790, label %809

790:                                              ; preds = %785
  %791 = load ptr, ptr %62, align 8, !tbaa !5
  %792 = load i32, ptr %73, align 4, !tbaa !9
  %793 = sub nsw i32 %792, 1
  %794 = sext i32 %793 to i64
  %795 = getelementptr inbounds i8, ptr %791, i64 %794
  %796 = load i8, ptr %795, align 1, !tbaa !11
  store i8 %796, ptr %79, align 1, !tbaa !11
  %797 = load ptr, ptr %64, align 8, !tbaa !5
  %798 = load i32, ptr %73, align 4, !tbaa !9
  %799 = sub nsw i32 %798, 1
  %800 = sext i32 %799 to i64
  %801 = getelementptr inbounds i8, ptr %797, i64 %800
  %802 = load i8, ptr %801, align 1, !tbaa !11
  store i8 %802, ptr %80, align 1, !tbaa !11
  %803 = load ptr, ptr %83, align 8, !tbaa !5
  %804 = load i32, ptr %73, align 4, !tbaa !9
  %805 = sub nsw i32 %804, 1
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds i8, ptr %803, i64 %806
  %808 = load i8, ptr %807, align 1, !tbaa !11
  store i8 %808, ptr %81, align 1, !tbaa !11
  br label %828

809:                                              ; preds = %785, %780
  %810 = load i8, ptr %22, align 1, !tbaa !11
  %811 = sext i8 %810 to i32
  %812 = sub nsw i32 0, %811
  %813 = load i8, ptr %23, align 1, !tbaa !11
  %814 = sext i8 %813 to i32
  %815 = sub nsw i32 %812, %814
  %816 = trunc i32 %815 to i8
  store i8 %816, ptr %79, align 1, !tbaa !11
  %817 = load i8, ptr %24, align 1, !tbaa !11
  %818 = sext i8 %817 to i32
  %819 = sub nsw i32 0, %818
  %820 = trunc i32 %819 to i8
  store i8 %820, ptr %80, align 1, !tbaa !11
  %821 = load i8, ptr %22, align 1, !tbaa !11
  %822 = sext i8 %821 to i32
  %823 = sub nsw i32 0, %822
  %824 = load i8, ptr %23, align 1, !tbaa !11
  %825 = sext i8 %824 to i32
  %826 = sub nsw i32 %823, %825
  %827 = trunc i32 %826 to i8
  store i8 %827, ptr %81, align 1, !tbaa !11
  br label %828

828:                                              ; preds = %809, %790
  br label %872

829:                                              ; preds = %767
  %830 = load i8, ptr %22, align 1, !tbaa !11
  %831 = sext i8 %830 to i32
  %832 = sub nsw i32 0, %831
  %833 = load i8, ptr %23, align 1, !tbaa !11
  %834 = sext i8 %833 to i32
  %835 = sub nsw i32 %832, %834
  %836 = trunc i32 %835 to i8
  store i8 %836, ptr %79, align 1, !tbaa !11
  %837 = load i8, ptr %24, align 1, !tbaa !11
  %838 = sext i8 %837 to i32
  %839 = sub nsw i32 0, %838
  %840 = trunc i32 %839 to i8
  store i8 %840, ptr %80, align 1, !tbaa !11
  %841 = load i32, ptr %29, align 4, !tbaa !9
  %842 = icmp eq i32 %841, 0
  br i1 %842, label %843, label %850

843:                                              ; preds = %829
  %844 = load i8, ptr %22, align 1, !tbaa !11
  %845 = sext i8 %844 to i32
  %846 = sub nsw i32 0, %845
  %847 = load i8, ptr %23, align 1, !tbaa !11
  %848 = sext i8 %847 to i32
  %849 = sub nsw i32 %846, %848
  br label %869

850:                                              ; preds = %829
  %851 = load i32, ptr %29, align 4, !tbaa !9
  %852 = load i32, ptr %41, align 4, !tbaa !9
  %853 = icmp slt i32 %851, %852
  br i1 %853, label %854, label %858

854:                                              ; preds = %850
  %855 = load i8, ptr %23, align 1, !tbaa !11
  %856 = sext i8 %855 to i32
  %857 = sub nsw i32 0, %856
  br label %867

858:                                              ; preds = %850
  %859 = load i32, ptr %29, align 4, !tbaa !9
  %860 = load i32, ptr %41, align 4, !tbaa !9
  %861 = icmp eq i32 %859, %860
  br i1 %861, label %862, label %864

862:                                              ; preds = %858
  %863 = load i32, ptr %42, align 4, !tbaa !9
  br label %865

864:                                              ; preds = %858
  br label %865

865:                                              ; preds = %864, %862
  %866 = phi i32 [ %863, %862 ], [ 0, %864 ]
  br label %867

867:                                              ; preds = %865, %854
  %868 = phi i32 [ %857, %854 ], [ %866, %865 ]
  br label %869

869:                                              ; preds = %867, %843
  %870 = phi i32 [ %849, %843 ], [ %868, %867 ]
  %871 = trunc i32 %870 to i8
  store i8 %871, ptr %81, align 1, !tbaa !11
  br label %872

872:                                              ; preds = %869, %828
  %873 = load i32, ptr %74, align 4, !tbaa !9
  %874 = load i32, ptr %29, align 4, !tbaa !9
  %875 = icmp sge i32 %873, %874
  br i1 %875, label %876, label %923

876:                                              ; preds = %872
  %877 = load i8, ptr %22, align 1, !tbaa !11
  %878 = sext i8 %877 to i32
  %879 = sub nsw i32 0, %878
  %880 = load i8, ptr %23, align 1, !tbaa !11
  %881 = sext i8 %880 to i32
  %882 = sub nsw i32 %879, %881
  %883 = trunc i32 %882 to i8
  %884 = load ptr, ptr %63, align 8, !tbaa !5
  %885 = load i32, ptr %29, align 4, !tbaa !9
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds i8, ptr %884, i64 %886
  store i8 %883, ptr %887, align 1, !tbaa !11
  %888 = load i32, ptr %29, align 4, !tbaa !9
  %889 = icmp eq i32 %888, 0
  br i1 %889, label %890, label %897

890:                                              ; preds = %876
  %891 = load i8, ptr %22, align 1, !tbaa !11
  %892 = sext i8 %891 to i32
  %893 = sub nsw i32 0, %892
  %894 = load i8, ptr %23, align 1, !tbaa !11
  %895 = sext i8 %894 to i32
  %896 = sub nsw i32 %893, %895
  br label %916

897:                                              ; preds = %876
  %898 = load i32, ptr %29, align 4, !tbaa !9
  %899 = load i32, ptr %41, align 4, !tbaa !9
  %900 = icmp slt i32 %898, %899
  br i1 %900, label %901, label %905

901:                                              ; preds = %897
  %902 = load i8, ptr %23, align 1, !tbaa !11
  %903 = sext i8 %902 to i32
  %904 = sub nsw i32 0, %903
  br label %914

905:                                              ; preds = %897
  %906 = load i32, ptr %29, align 4, !tbaa !9
  %907 = load i32, ptr %41, align 4, !tbaa !9
  %908 = icmp eq i32 %906, %907
  br i1 %908, label %909, label %911

909:                                              ; preds = %905
  %910 = load i32, ptr %42, align 4, !tbaa !9
  br label %912

911:                                              ; preds = %905
  br label %912

912:                                              ; preds = %911, %909
  %913 = phi i32 [ %910, %909 ], [ 0, %911 ]
  br label %914

914:                                              ; preds = %912, %901
  %915 = phi i32 [ %904, %901 ], [ %913, %912 ]
  br label %916

916:                                              ; preds = %914, %890
  %917 = phi i32 [ %896, %890 ], [ %915, %914 ]
  %918 = trunc i32 %917 to i8
  %919 = load ptr, ptr %82, align 8, !tbaa !5
  %920 = load i32, ptr %29, align 4, !tbaa !9
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds i8, ptr %919, i64 %921
  store i8 %918, ptr %922, align 1, !tbaa !11
  br label %923

923:                                              ; preds = %916, %872
  %924 = load i32, ptr %27, align 4, !tbaa !9
  %925 = and i32 %924, 4
  %926 = icmp ne i32 %925, 0
  br i1 %926, label %977, label %927

927:                                              ; preds = %923
  %928 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %928, ptr %30, align 4, !tbaa !9
  br label %929

929:                                              ; preds = %973, %927
  %930 = load i32, ptr %30, align 4, !tbaa !9
  %931 = load i32, ptr %76, align 4, !tbaa !9
  %932 = icmp sle i32 %930, %931
  br i1 %932, label %933, label %976

933:                                              ; preds = %929
  call void @llvm.lifetime.start.p0(i64 16, ptr %88) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %89) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %91) #10
  %934 = load ptr, ptr %49, align 8, !tbaa !5
  %935 = load i32, ptr %30, align 4, !tbaa !9
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds i8, ptr %934, i64 %936
  %938 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %937)
  store <2 x i64> %938, ptr %88, align 16, !tbaa !11
  %939 = load ptr, ptr %84, align 8, !tbaa !5
  %940 = load i32, ptr %30, align 4, !tbaa !9
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds i8, ptr %939, i64 %941
  %943 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %942)
  store <2 x i64> %943, ptr %89, align 16, !tbaa !11
  %944 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %945 = load <2 x i64>, ptr %59, align 16, !tbaa !11
  %946 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %944, <2 x i64> noundef %945)
  %947 = load <2 x i64>, ptr %89, align 16, !tbaa !11
  %948 = load <2 x i64>, ptr %59, align 16, !tbaa !11
  %949 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %947, <2 x i64> noundef %948)
  %950 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %946, <2 x i64> noundef %949)
  store <2 x i64> %950, ptr %91, align 16, !tbaa !11
  %951 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %952 = load <2 x i64>, ptr %89, align 16, !tbaa !11
  %953 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %951, <2 x i64> noundef %952)
  store <2 x i64> %953, ptr %90, align 16, !tbaa !11
  %954 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  %955 = load <2 x i64>, ptr %57, align 16, !tbaa !11
  %956 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %954, <2 x i64> noundef %955)
  %957 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  %958 = load <2 x i64>, ptr %56, align 16, !tbaa !11
  %959 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %957, <2 x i64> noundef %958)
  %960 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %956, <2 x i64> noundef %959)
  store <2 x i64> %960, ptr %90, align 16, !tbaa !11
  %961 = load <2 x i64>, ptr %91, align 16, !tbaa !11
  %962 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  %963 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %961, <2 x i64> noundef %962)
  %964 = load <2 x i64>, ptr %91, align 16, !tbaa !11
  %965 = load <2 x i64>, ptr %58, align 16, !tbaa !11
  %966 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %964, <2 x i64> noundef %965)
  %967 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %963, <2 x i64> noundef %966)
  store <2 x i64> %967, ptr %90, align 16, !tbaa !11
  %968 = load ptr, ptr %65, align 8, !tbaa !5
  %969 = load i32, ptr %30, align 4, !tbaa !9
  %970 = sext i32 %969 to i64
  %971 = getelementptr inbounds i8, ptr %968, i64 %970
  %972 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %971, <2 x i64> noundef %972)
  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 16, ptr %89) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %88) #10
  br label %973

973:                                              ; preds = %933
  %974 = load i32, ptr %30, align 4, !tbaa !9
  %975 = add nsw i32 %974, 16
  store i32 %975, ptr %30, align 4, !tbaa !9
  br label %929, !llvm.loop !18

976:                                              ; preds = %929
  br label %1012

977:                                              ; preds = %923
  %978 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %978, ptr %30, align 4, !tbaa !9
  br label %979

979:                                              ; preds = %1008, %977
  %980 = load i32, ptr %30, align 4, !tbaa !9
  %981 = load i32, ptr %76, align 4, !tbaa !9
  %982 = icmp sle i32 %980, %981
  br i1 %982, label %983, label %1011

983:                                              ; preds = %979
  %984 = load ptr, ptr %21, align 8, !tbaa !5
  %985 = load ptr, ptr %49, align 8, !tbaa !5
  %986 = load i32, ptr %30, align 4, !tbaa !9
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds i8, ptr %985, i64 %987
  %989 = load i8, ptr %988, align 1, !tbaa !11
  %990 = zext i8 %989 to i32
  %991 = load i8, ptr %20, align 1, !tbaa !11
  %992 = sext i8 %991 to i32
  %993 = mul nsw i32 %990, %992
  %994 = load ptr, ptr %84, align 8, !tbaa !5
  %995 = load i32, ptr %30, align 4, !tbaa !9
  %996 = sext i32 %995 to i64
  %997 = getelementptr inbounds i8, ptr %994, i64 %996
  %998 = load i8, ptr %997, align 1, !tbaa !11
  %999 = zext i8 %998 to i32
  %1000 = add nsw i32 %993, %999
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds i8, ptr %984, i64 %1001
  %1003 = load i8, ptr %1002, align 1, !tbaa !11
  %1004 = load ptr, ptr %65, align 8, !tbaa !5
  %1005 = load i32, ptr %30, align 4, !tbaa !9
  %1006 = sext i32 %1005 to i64
  %1007 = getelementptr inbounds i8, ptr %1004, i64 %1006
  store i8 %1003, ptr %1007, align 1, !tbaa !11
  br label %1008

1008:                                             ; preds = %983
  %1009 = load i32, ptr %30, align 4, !tbaa !9
  %1010 = add nsw i32 %1009, 1
  store i32 %1010, ptr %30, align 4, !tbaa !9
  br label %979, !llvm.loop !19

1011:                                             ; preds = %979
  br label %1012

1012:                                             ; preds = %1011, %976
  %1013 = load i8, ptr %79, align 1, !tbaa !11
  %1014 = zext i8 %1013 to i32
  %1015 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %1014)
  store <2 x i64> %1015, ptr %85, align 16, !tbaa !11
  %1016 = load i8, ptr %80, align 1, !tbaa !11
  %1017 = zext i8 %1016 to i32
  %1018 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %1017)
  store <2 x i64> %1018, ptr %86, align 16, !tbaa !11
  %1019 = load i8, ptr %81, align 1, !tbaa !11
  %1020 = zext i8 %1019 to i32
  %1021 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %1020)
  store <2 x i64> %1021, ptr %87, align 16, !tbaa !11
  %1022 = load i32, ptr %73, align 4, !tbaa !9
  %1023 = sdiv i32 %1022, 16
  store i32 %1023, ptr %77, align 4, !tbaa !9
  %1024 = load i32, ptr %74, align 4, !tbaa !9
  %1025 = sdiv i32 %1024, 16
  store i32 %1025, ptr %78, align 4, !tbaa !9
  %1026 = load i32, ptr %78, align 4, !tbaa !9
  %1027 = load i32, ptr %77, align 4, !tbaa !9
  %1028 = sub nsw i32 %1026, %1027
  %1029 = add nsw i32 %1028, 1
  %1030 = load i32, ptr %32, align 4, !tbaa !9
  %1031 = icmp sle i32 %1029, %1030
  br i1 %1031, label %1032, label %1033

1032:                                             ; preds = %1012
  br label %1035

1033:                                             ; preds = %1012
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 211, ptr noundef @__PRETTY_FUNCTION__.ksw_exts2_sse) #11
  unreachable

1034:                                             ; No predecessors!
  br label %1035

1035:                                             ; preds = %1034, %1032
  %1036 = load i32, ptr %43, align 4, !tbaa !9
  %1037 = icmp ne i32 %1036, 0
  br i1 %1037, label %1231, label %1038

1038:                                             ; preds = %1035
  %1039 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %1039, ptr %30, align 4, !tbaa !9
  br label %1040

1040:                                             ; preds = %1227, %1038
  %1041 = load i32, ptr %30, align 4, !tbaa !9
  %1042 = load i32, ptr %78, align 4, !tbaa !9
  %1043 = icmp sle i32 %1041, %1042
  br i1 %1043, label %1044, label %1230

1044:                                             ; preds = %1040
  call void @llvm.lifetime.start.p0(i64 16, ptr %92) #10
  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
  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
  %1045 = load ptr, ptr %65, align 8, !tbaa !5
  %1046 = load i32, ptr %30, align 4, !tbaa !9
  %1047 = sext i32 %1046 to i64
  %1048 = getelementptr inbounds <2 x i64>, ptr %1045, i64 %1047
  %1049 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1048)
  store <2 x i64> %1049, ptr %92, align 16, !tbaa !11
  %1050 = load ptr, ptr %62, align 8, !tbaa !5
  %1051 = load i32, ptr %30, align 4, !tbaa !9
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds <2 x i64>, ptr %1050, i64 %1052
  %1054 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1053)
  store <2 x i64> %1054, ptr %97, align 16, !tbaa !11
  %1055 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1056 = bitcast <2 x i64> %1055 to <16 x i8>
  %1057 = shufflevector <16 x i8> %1056, <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>
  %1058 = bitcast <16 x i8> %1057 to <2 x i64>
  store <2 x i64> %1058, ptr %101, align 16, !tbaa !11
  %1059 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1060 = bitcast <2 x i64> %1059 to <16 x i8>
  %1061 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1060, <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>
  %1062 = bitcast <16 x i8> %1061 to <2 x i64>
  %1063 = load <2 x i64>, ptr %85, align 16, !tbaa !11
  %1064 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1062, <2 x i64> noundef %1063)
  store <2 x i64> %1064, ptr %97, align 16, !tbaa !11
  %1065 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  store <2 x i64> %1065, ptr %85, align 16, !tbaa !11
  %1066 = load ptr, ptr %61, align 8, !tbaa !5
  %1067 = load i32, ptr %30, align 4, !tbaa !9
  %1068 = sext i32 %1067 to i64
  %1069 = getelementptr inbounds <2 x i64>, ptr %1066, i64 %1068
  %1070 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1069)
  store <2 x i64> %1070, ptr %99, align 16, !tbaa !11
  %1071 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %1072 = bitcast <2 x i64> %1071 to <16 x i8>
  %1073 = shufflevector <16 x i8> %1072, <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>
  %1074 = bitcast <16 x i8> %1073 to <2 x i64>
  store <2 x i64> %1074, ptr %101, align 16, !tbaa !11
  %1075 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %1076 = bitcast <2 x i64> %1075 to <16 x i8>
  %1077 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1076, <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>
  %1078 = bitcast <16 x i8> %1077 to <2 x i64>
  %1079 = load <2 x i64>, ptr %87, align 16, !tbaa !11
  %1080 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1078, <2 x i64> noundef %1079)
  store <2 x i64> %1080, ptr %99, align 16, !tbaa !11
  %1081 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  store <2 x i64> %1081, ptr %87, align 16, !tbaa !11
  %1082 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %1083 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %1084 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1082, <2 x i64> noundef %1083)
  store <2 x i64> %1084, ptr %93, align 16, !tbaa !11
  %1085 = load ptr, ptr %60, align 8, !tbaa !5
  %1086 = load i32, ptr %30, align 4, !tbaa !9
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds <2 x i64>, ptr %1085, i64 %1087
  %1089 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1088)
  store <2 x i64> %1089, ptr %100, align 16, !tbaa !11
  %1090 = load ptr, ptr %63, align 8, !tbaa !5
  %1091 = load i32, ptr %30, align 4, !tbaa !9
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds <2 x i64>, ptr %1090, i64 %1092
  %1094 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1093)
  %1095 = load <2 x i64>, ptr %100, align 16, !tbaa !11
  %1096 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1094, <2 x i64> noundef %1095)
  store <2 x i64> %1096, ptr %94, align 16, !tbaa !11
  %1097 = load ptr, ptr %64, align 8, !tbaa !5
  %1098 = load i32, ptr %30, align 4, !tbaa !9
  %1099 = sext i32 %1098 to i64
  %1100 = getelementptr inbounds <2 x i64>, ptr %1097, i64 %1099
  %1101 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1100)
  store <2 x i64> %1101, ptr %98, align 16, !tbaa !11
  %1102 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %1103 = bitcast <2 x i64> %1102 to <16 x i8>
  %1104 = shufflevector <16 x i8> %1103, <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>
  %1105 = bitcast <16 x i8> %1104 to <2 x i64>
  store <2 x i64> %1105, ptr %101, align 16, !tbaa !11
  %1106 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %1107 = bitcast <2 x i64> %1106 to <16 x i8>
  %1108 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1107, <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>
  %1109 = bitcast <16 x i8> %1108 to <2 x i64>
  %1110 = load <2 x i64>, ptr %86, align 16, !tbaa !11
  %1111 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1109, <2 x i64> noundef %1110)
  store <2 x i64> %1111, ptr %98, align 16, !tbaa !11
  %1112 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  store <2 x i64> %1112, ptr %86, align 16, !tbaa !11
  %1113 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %1114 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %1115 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1113, <2 x i64> noundef %1114)
  store <2 x i64> %1115, ptr %95, align 16, !tbaa !11
  %1116 = load <2 x i64>, ptr %95, align 16, !tbaa !11
  %1117 = load ptr, ptr %68, align 8, !tbaa !5
  %1118 = load i32, ptr %30, align 4, !tbaa !9
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds <2 x i64>, ptr %1117, i64 %1119
  %1121 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1120)
  %1122 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1116, <2 x i64> noundef %1121)
  store <2 x i64> %1122, ptr %96, align 16, !tbaa !11
  %1123 = load <2 x i64>, ptr %93, align 16, !tbaa !11
  %1124 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1125 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1123, <2 x i64> noundef %1124)
  store <2 x i64> %1125, ptr %101, align 16, !tbaa !11
  %1126 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1127 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1128 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1126, <2 x i64> noundef %1127)
  %1129 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1130 = load <2 x i64>, ptr %93, align 16, !tbaa !11
  %1131 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1129, <2 x i64> noundef %1130)
  %1132 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1128, <2 x i64> noundef %1131)
  store <2 x i64> %1132, ptr %92, align 16, !tbaa !11
  %1133 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  %1134 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1135 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1133, <2 x i64> noundef %1134)
  store <2 x i64> %1135, ptr %101, align 16, !tbaa !11
  %1136 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1137 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1138 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1136, <2 x i64> noundef %1137)
  %1139 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1140 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  %1141 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1139, <2 x i64> noundef %1140)
  %1142 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1138, <2 x i64> noundef %1141)
  store <2 x i64> %1142, ptr %92, align 16, !tbaa !11
  %1143 = load <2 x i64>, ptr %96, align 16, !tbaa !11
  %1144 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1145 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1143, <2 x i64> noundef %1144)
  store <2 x i64> %1145, ptr %101, align 16, !tbaa !11
  %1146 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1147 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1148 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1146, <2 x i64> noundef %1147)
  %1149 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1150 = load <2 x i64>, ptr %96, align 16, !tbaa !11
  %1151 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1149, <2 x i64> noundef %1150)
  %1152 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1148, <2 x i64> noundef %1151)
  store <2 x i64> %1152, ptr %92, align 16, !tbaa !11
  %1153 = load ptr, ptr %60, align 8, !tbaa !5
  %1154 = load i32, ptr %30, align 4, !tbaa !9
  %1155 = sext i32 %1154 to i64
  %1156 = getelementptr inbounds <2 x i64>, ptr %1153, i64 %1155
  %1157 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1158 = load <2 x i64>, ptr %99, 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)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1156, <2 x i64> noundef %1159)
  %1160 = load ptr, ptr %61, align 8, !tbaa !5
  %1161 = load i32, ptr %30, align 4, !tbaa !9
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds <2 x i64>, ptr %1160, i64 %1162
  %1164 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1165 = load <2 x i64>, ptr %100, align 16, !tbaa !11
  %1166 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1164, <2 x i64> noundef %1165)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1163, <2 x i64> noundef %1166)
  %1167 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1168 = load <2 x i64>, ptr %52, align 16, !tbaa !11
  %1169 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1167, <2 x i64> noundef %1168)
  store <2 x i64> %1169, ptr %101, align 16, !tbaa !11
  %1170 = load <2 x i64>, ptr %93, align 16, !tbaa !11
  %1171 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1172 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1170, <2 x i64> noundef %1171)
  store <2 x i64> %1172, ptr %93, align 16, !tbaa !11
  %1173 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  %1174 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1175 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1173, <2 x i64> noundef %1174)
  store <2 x i64> %1175, ptr %94, align 16, !tbaa !11
  %1176 = load <2 x i64>, ptr %95, align 16, !tbaa !11
  %1177 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %1178 = load <2 x i64>, ptr %53, align 16, !tbaa !11
  %1179 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1177, <2 x i64> noundef %1178)
  %1180 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1176, <2 x i64> noundef %1179)
  store <2 x i64> %1180, ptr %95, align 16, !tbaa !11
  %1181 = load <2 x i64>, ptr %93, align 16, !tbaa !11
  %1182 = load <2 x i64>, ptr %55, align 16, !tbaa !11
  %1183 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1181, <2 x i64> noundef %1182)
  store <2 x i64> %1183, ptr %101, align 16, !tbaa !11
  %1184 = load ptr, ptr %62, align 8, !tbaa !5
  %1185 = load i32, ptr %30, align 4, !tbaa !9
  %1186 = sext i32 %1185 to i64
  %1187 = getelementptr inbounds <2 x i64>, ptr %1184, i64 %1186
  %1188 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1189 = load <2 x i64>, ptr %93, align 16, !tbaa !11
  %1190 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1188, <2 x i64> noundef %1189)
  %1191 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %1192 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1190, <2 x i64> noundef %1191)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1187, <2 x i64> noundef %1192)
  %1193 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  %1194 = load <2 x i64>, ptr %55, align 16, !tbaa !11
  %1195 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1193, <2 x i64> noundef %1194)
  store <2 x i64> %1195, ptr %101, align 16, !tbaa !11
  %1196 = load ptr, ptr %63, align 8, !tbaa !5
  %1197 = load i32, ptr %30, align 4, !tbaa !9
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds <2 x i64>, ptr %1196, i64 %1198
  %1200 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1201 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  %1202 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1200, <2 x i64> noundef %1201)
  %1203 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %1204 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1202, <2 x i64> noundef %1203)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1199, <2 x i64> noundef %1204)
  %1205 = load ptr, ptr %67, align 8, !tbaa !5
  %1206 = load i32, ptr %30, align 4, !tbaa !9
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds <2 x i64>, ptr %1205, i64 %1207
  %1209 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1208)
  store <2 x i64> %1209, ptr %101, align 16, !tbaa !11
  %1210 = load <2 x i64>, ptr %95, align 16, !tbaa !11
  %1211 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1212 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1210, <2 x i64> noundef %1211)
  store <2 x i64> %1212, ptr %101, align 16, !tbaa !11
  %1213 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1214 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1215 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1213, <2 x i64> noundef %1214)
  %1216 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1217 = load <2 x i64>, ptr %95, align 16, !tbaa !11
  %1218 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1216, <2 x i64> noundef %1217)
  %1219 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1215, <2 x i64> noundef %1218)
  store <2 x i64> %1219, ptr %101, align 16, !tbaa !11
  %1220 = load ptr, ptr %64, align 8, !tbaa !5
  %1221 = load i32, ptr %30, align 4, !tbaa !9
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds <2 x i64>, ptr %1220, i64 %1222
  %1224 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %1225 = load <2 x i64>, ptr %53, align 16, !tbaa !11
  %1226 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1224, <2 x i64> noundef %1225)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1223, <2 x i64> noundef %1226)
  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
  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
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #10
  br label %1227

1227:                                             ; preds = %1044
  %1228 = load i32, ptr %30, align 4, !tbaa !9
  %1229 = add nsw i32 %1228, 1
  store i32 %1229, ptr %30, align 4, !tbaa !9
  br label %1040, !llvm.loop !20

1230:                                             ; preds = %1040
  br label %1736

1231:                                             ; preds = %1035
  %1232 = load i32, ptr %27, align 4, !tbaa !9
  %1233 = and i32 %1232, 2
  %1234 = icmp ne i32 %1233, 0
  br i1 %1234, label %1485, label %1235

1235:                                             ; preds = %1231
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #10
  %1236 = load ptr, ptr %66, align 8, !tbaa !5
  %1237 = load i32, ptr %29, align 4, !tbaa !9
  %1238 = load i32, ptr %32, align 4, !tbaa !9
  %1239 = mul nsw i32 %1237, %1238
  %1240 = sext i32 %1239 to i64
  %1241 = getelementptr inbounds <2 x i64>, ptr %1236, i64 %1240
  %1242 = load i32, ptr %77, align 4, !tbaa !9
  %1243 = sext i32 %1242 to i64
  %1244 = sub i64 0, %1243
  %1245 = getelementptr inbounds <2 x i64>, ptr %1241, i64 %1244
  store ptr %1245, ptr %102, align 8, !tbaa !5
  %1246 = load i32, ptr %73, align 4, !tbaa !9
  %1247 = load ptr, ptr %33, align 8, !tbaa !5
  %1248 = load i32, ptr %29, align 4, !tbaa !9
  %1249 = sext i32 %1248 to i64
  %1250 = getelementptr inbounds i32, ptr %1247, i64 %1249
  store i32 %1246, ptr %1250, align 4, !tbaa !9
  %1251 = load i32, ptr %74, align 4, !tbaa !9
  %1252 = load ptr, ptr %34, align 8, !tbaa !5
  %1253 = load i32, ptr %29, align 4, !tbaa !9
  %1254 = sext i32 %1253 to i64
  %1255 = getelementptr inbounds i32, ptr %1252, i64 %1254
  store i32 %1251, ptr %1255, align 4, !tbaa !9
  %1256 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %1256, ptr %30, align 4, !tbaa !9
  br label %1257

1257:                                             ; preds = %1481, %1235
  %1258 = load i32, ptr %30, align 4, !tbaa !9
  %1259 = load i32, ptr %78, align 4, !tbaa !9
  %1260 = icmp sle i32 %1258, %1259
  br i1 %1260, label %1261, label %1484

1261:                                             ; preds = %1257
  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
  call void @llvm.lifetime.start.p0(i64 16, ptr %107) #10
  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
  %1262 = load ptr, ptr %65, align 8, !tbaa !5
  %1263 = load i32, ptr %30, align 4, !tbaa !9
  %1264 = sext i32 %1263 to i64
  %1265 = getelementptr inbounds <2 x i64>, ptr %1262, i64 %1264
  %1266 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1265)
  store <2 x i64> %1266, ptr %104, align 16, !tbaa !11
  %1267 = load ptr, ptr %62, align 8, !tbaa !5
  %1268 = load i32, ptr %30, align 4, !tbaa !9
  %1269 = sext i32 %1268 to i64
  %1270 = getelementptr inbounds <2 x i64>, ptr %1267, i64 %1269
  %1271 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1270)
  store <2 x i64> %1271, ptr %109, align 16, !tbaa !11
  %1272 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1273 = bitcast <2 x i64> %1272 to <16 x i8>
  %1274 = shufflevector <16 x i8> %1273, <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>
  %1275 = bitcast <16 x i8> %1274 to <2 x i64>
  store <2 x i64> %1275, ptr %113, align 16, !tbaa !11
  %1276 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1277 = bitcast <2 x i64> %1276 to <16 x i8>
  %1278 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1277, <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>
  %1280 = load <2 x i64>, ptr %85, align 16, !tbaa !11
  %1281 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1279, <2 x i64> noundef %1280)
  store <2 x i64> %1281, ptr %109, align 16, !tbaa !11
  %1282 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  store <2 x i64> %1282, ptr %85, align 16, !tbaa !11
  %1283 = load ptr, ptr %61, align 8, !tbaa !5
  %1284 = load i32, ptr %30, align 4, !tbaa !9
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds <2 x i64>, ptr %1283, i64 %1285
  %1287 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1286)
  store <2 x i64> %1287, ptr %111, align 16, !tbaa !11
  %1288 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1289 = bitcast <2 x i64> %1288 to <16 x i8>
  %1290 = shufflevector <16 x i8> %1289, <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>
  %1291 = bitcast <16 x i8> %1290 to <2 x i64>
  store <2 x i64> %1291, ptr %113, align 16, !tbaa !11
  %1292 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1293 = bitcast <2 x i64> %1292 to <16 x i8>
  %1294 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1293, <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>
  %1295 = bitcast <16 x i8> %1294 to <2 x i64>
  %1296 = load <2 x i64>, ptr %87, align 16, !tbaa !11
  %1297 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1295, <2 x i64> noundef %1296)
  store <2 x i64> %1297, ptr %111, align 16, !tbaa !11
  %1298 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  store <2 x i64> %1298, ptr %87, align 16, !tbaa !11
  %1299 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1300 = load <2 x i64>, ptr %111, 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 %105, align 16, !tbaa !11
  %1302 = load ptr, ptr %60, align 8, !tbaa !5
  %1303 = load i32, ptr %30, 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 %112, align 16, !tbaa !11
  %1307 = load ptr, ptr %63, align 8, !tbaa !5
  %1308 = load i32, ptr %30, align 4, !tbaa !9
  %1309 = sext i32 %1308 to i64
  %1310 = getelementptr inbounds <2 x i64>, ptr %1307, i64 %1309
  %1311 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1310)
  %1312 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1313 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1311, <2 x i64> noundef %1312)
  store <2 x i64> %1313, ptr %106, align 16, !tbaa !11
  %1314 = load ptr, ptr %64, align 8, !tbaa !5
  %1315 = load i32, ptr %30, align 4, !tbaa !9
  %1316 = sext i32 %1315 to i64
  %1317 = getelementptr inbounds <2 x i64>, ptr %1314, i64 %1316
  %1318 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1317)
  store <2 x i64> %1318, ptr %110, align 16, !tbaa !11
  %1319 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1320 = bitcast <2 x i64> %1319 to <16 x i8>
  %1321 = shufflevector <16 x i8> %1320, <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>
  %1322 = bitcast <16 x i8> %1321 to <2 x i64>
  store <2 x i64> %1322, ptr %113, align 16, !tbaa !11
  %1323 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1324 = bitcast <2 x i64> %1323 to <16 x i8>
  %1325 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1324, <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>
  %1326 = bitcast <16 x i8> %1325 to <2 x i64>
  %1327 = load <2 x i64>, ptr %86, align 16, !tbaa !11
  %1328 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1326, <2 x i64> noundef %1327)
  store <2 x i64> %1328, ptr %110, align 16, !tbaa !11
  %1329 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  store <2 x i64> %1329, ptr %86, align 16, !tbaa !11
  %1330 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1331 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1332 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1330, <2 x i64> noundef %1331)
  store <2 x i64> %1332, ptr %107, align 16, !tbaa !11
  %1333 = load <2 x i64>, ptr %107, align 16, !tbaa !11
  %1334 = load ptr, ptr %68, align 8, !tbaa !5
  %1335 = load i32, ptr %30, align 4, !tbaa !9
  %1336 = sext i32 %1335 to i64
  %1337 = getelementptr inbounds <2 x i64>, ptr %1334, i64 %1336
  %1338 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1337)
  %1339 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1333, <2 x i64> noundef %1338)
  store <2 x i64> %1339, ptr %108, align 16, !tbaa !11
  %1340 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1341 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1342 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1340, <2 x i64> noundef %1341)
  store <2 x i64> %1342, ptr %113, align 16, !tbaa !11
  %1343 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1344 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 1)
  %1345 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1343, <2 x i64> noundef %1344)
  store <2 x i64> %1345, ptr %103, align 16, !tbaa !11
  %1346 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1347 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1348 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1346, <2 x i64> noundef %1347)
  %1349 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1350 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1351 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1349, <2 x i64> noundef %1350)
  %1352 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1348, <2 x i64> noundef %1351)
  store <2 x i64> %1352, ptr %104, align 16, !tbaa !11
  %1353 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1354 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1355 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1353, <2 x i64> noundef %1354)
  store <2 x i64> %1355, ptr %113, align 16, !tbaa !11
  %1356 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1357 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %1358 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1356, <2 x i64> noundef %1357)
  %1359 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1360 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 2)
  %1361 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1359, <2 x i64> noundef %1360)
  %1362 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1358, <2 x i64> noundef %1361)
  store <2 x i64> %1362, ptr %103, align 16, !tbaa !11
  %1363 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1364 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1365 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1363, <2 x i64> noundef %1364)
  %1366 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1367 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1368 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1366, <2 x i64> noundef %1367)
  %1369 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1365, <2 x i64> noundef %1368)
  store <2 x i64> %1369, ptr %104, align 16, !tbaa !11
  %1370 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1371 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1372 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1370, <2 x i64> noundef %1371)
  store <2 x i64> %1372, ptr %113, align 16, !tbaa !11
  %1373 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1374 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %1375 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1373, <2 x i64> noundef %1374)
  %1376 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1377 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 3)
  %1378 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1376, <2 x i64> noundef %1377)
  %1379 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1375, <2 x i64> noundef %1378)
  store <2 x i64> %1379, ptr %103, align 16, !tbaa !11
  %1380 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1381 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1382 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1380, <2 x i64> noundef %1381)
  %1383 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1384 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1385 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1383, <2 x i64> noundef %1384)
  %1386 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1382, <2 x i64> noundef %1385)
  store <2 x i64> %1386, ptr %104, align 16, !tbaa !11
  %1387 = load ptr, ptr %60, align 8, !tbaa !5
  %1388 = load i32, ptr %30, align 4, !tbaa !9
  %1389 = sext i32 %1388 to i64
  %1390 = getelementptr inbounds <2 x i64>, ptr %1387, i64 %1389
  %1391 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1392 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1393 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1391, <2 x i64> noundef %1392)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1390, <2 x i64> noundef %1393)
  %1394 = load ptr, ptr %61, align 8, !tbaa !5
  %1395 = load i32, ptr %30, align 4, !tbaa !9
  %1396 = sext i32 %1395 to i64
  %1397 = getelementptr inbounds <2 x i64>, ptr %1394, i64 %1396
  %1398 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1399 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1400 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1398, <2 x i64> noundef %1399)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1397, <2 x i64> noundef %1400)
  %1401 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1402 = load <2 x i64>, ptr %52, align 16, !tbaa !11
  %1403 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1401, <2 x i64> noundef %1402)
  store <2 x i64> %1403, ptr %113, align 16, !tbaa !11
  %1404 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1405 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1406 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1404, <2 x i64> noundef %1405)
  store <2 x i64> %1406, ptr %105, align 16, !tbaa !11
  %1407 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1408 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1409 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1407, <2 x i64> noundef %1408)
  store <2 x i64> %1409, ptr %106, align 16, !tbaa !11
  %1410 = load <2 x i64>, ptr %107, align 16, !tbaa !11
  %1411 = load <2 x i64>, ptr %104, align 16, !tbaa !11
  %1412 = load <2 x i64>, ptr %53, align 16, !tbaa !11
  %1413 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1411, <2 x i64> noundef %1412)
  %1414 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1410, <2 x i64> noundef %1413)
  store <2 x i64> %1414, ptr %107, align 16, !tbaa !11
  %1415 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1416 = load <2 x i64>, ptr %55, align 16, !tbaa !11
  %1417 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1415, <2 x i64> noundef %1416)
  store <2 x i64> %1417, ptr %113, align 16, !tbaa !11
  %1418 = load ptr, ptr %62, align 8, !tbaa !5
  %1419 = load i32, ptr %30, align 4, !tbaa !9
  %1420 = sext i32 %1419 to i64
  %1421 = getelementptr inbounds <2 x i64>, ptr %1418, i64 %1420
  %1422 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1423 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1424 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1422, <2 x i64> noundef %1423)
  %1425 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %1426 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1424, <2 x i64> noundef %1425)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1421, <2 x i64> noundef %1426)
  %1427 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %1428 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1429 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 8)
  %1430 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1428, <2 x i64> noundef %1429)
  %1431 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1427, <2 x i64> noundef %1430)
  store <2 x i64> %1431, ptr %103, align 16, !tbaa !11
  %1432 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1433 = load <2 x i64>, ptr %55, align 16, !tbaa !11
  %1434 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1432, <2 x i64> noundef %1433)
  store <2 x i64> %1434, ptr %113, align 16, !tbaa !11
  %1435 = load ptr, ptr %63, align 8, !tbaa !5
  %1436 = load i32, ptr %30, align 4, !tbaa !9
  %1437 = sext i32 %1436 to i64
  %1438 = getelementptr inbounds <2 x i64>, ptr %1435, i64 %1437
  %1439 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1440 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1441 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1439, <2 x i64> noundef %1440)
  %1442 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %1443 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1441, <2 x i64> noundef %1442)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1438, <2 x i64> noundef %1443)
  %1444 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %1445 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1446 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 16)
  %1447 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1445, <2 x i64> noundef %1446)
  %1448 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1444, <2 x i64> noundef %1447)
  store <2 x i64> %1448, ptr %103, align 16, !tbaa !11
  %1449 = load ptr, ptr %67, align 8, !tbaa !5
  %1450 = load i32, ptr %30, align 4, !tbaa !9
  %1451 = sext i32 %1450 to i64
  %1452 = getelementptr inbounds <2 x i64>, ptr %1449, i64 %1451
  %1453 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1452)
  store <2 x i64> %1453, ptr %114, align 16, !tbaa !11
  %1454 = load <2 x i64>, ptr %107, align 16, !tbaa !11
  %1455 = load <2 x i64>, ptr %114, align 16, !tbaa !11
  %1456 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1454, <2 x i64> noundef %1455)
  store <2 x i64> %1456, ptr %113, align 16, !tbaa !11
  %1457 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1458 = load <2 x i64>, ptr %114, align 16, !tbaa !11
  %1459 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1457, <2 x i64> noundef %1458)
  %1460 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1461 = load <2 x i64>, ptr %107, align 16, !tbaa !11
  %1462 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1460, <2 x i64> noundef %1461)
  %1463 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1459, <2 x i64> noundef %1462)
  store <2 x i64> %1463, ptr %114, align 16, !tbaa !11
  %1464 = load ptr, ptr %64, align 8, !tbaa !5
  %1465 = load i32, ptr %30, align 4, !tbaa !9
  %1466 = sext i32 %1465 to i64
  %1467 = getelementptr inbounds <2 x i64>, ptr %1464, i64 %1466
  %1468 = load <2 x i64>, ptr %114, align 16, !tbaa !11
  %1469 = load <2 x i64>, ptr %53, align 16, !tbaa !11
  %1470 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1468, <2 x i64> noundef %1469)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1467, <2 x i64> noundef %1470)
  %1471 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %1472 = load <2 x i64>, ptr %113, align 16, !tbaa !11
  %1473 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 32)
  %1474 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1472, <2 x i64> noundef %1473)
  %1475 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1471, <2 x i64> noundef %1474)
  store <2 x i64> %1475, ptr %103, align 16, !tbaa !11
  %1476 = load ptr, ptr %102, align 8, !tbaa !5
  %1477 = load i32, ptr %30, align 4, !tbaa !9
  %1478 = sext i32 %1477 to i64
  %1479 = getelementptr inbounds <2 x i64>, ptr %1476, i64 %1478
  %1480 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1479, <2 x i64> noundef %1480)
  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
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #10
  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
  br label %1481

1481:                                             ; preds = %1261
  %1482 = load i32, ptr %30, align 4, !tbaa !9
  %1483 = add nsw i32 %1482, 1
  store i32 %1483, ptr %30, align 4, !tbaa !9
  br label %1257, !llvm.loop !21

1484:                                             ; preds = %1257
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  br label %1735

1485:                                             ; preds = %1231
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  %1486 = load ptr, ptr %66, align 8, !tbaa !5
  %1487 = load i32, ptr %29, align 4, !tbaa !9
  %1488 = load i32, ptr %32, align 4, !tbaa !9
  %1489 = mul nsw i32 %1487, %1488
  %1490 = sext i32 %1489 to i64
  %1491 = getelementptr inbounds <2 x i64>, ptr %1486, i64 %1490
  %1492 = load i32, ptr %77, align 4, !tbaa !9
  %1493 = sext i32 %1492 to i64
  %1494 = sub i64 0, %1493
  %1495 = getelementptr inbounds <2 x i64>, ptr %1491, i64 %1494
  store ptr %1495, ptr %115, align 8, !tbaa !5
  %1496 = load i32, ptr %73, align 4, !tbaa !9
  %1497 = load ptr, ptr %33, align 8, !tbaa !5
  %1498 = load i32, ptr %29, align 4, !tbaa !9
  %1499 = sext i32 %1498 to i64
  %1500 = getelementptr inbounds i32, ptr %1497, i64 %1499
  store i32 %1496, ptr %1500, align 4, !tbaa !9
  %1501 = load i32, ptr %74, align 4, !tbaa !9
  %1502 = load ptr, ptr %34, align 8, !tbaa !5
  %1503 = load i32, ptr %29, align 4, !tbaa !9
  %1504 = sext i32 %1503 to i64
  %1505 = getelementptr inbounds i32, ptr %1502, i64 %1504
  store i32 %1501, ptr %1505, align 4, !tbaa !9
  %1506 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %1506, ptr %30, align 4, !tbaa !9
  br label %1507

1507:                                             ; preds = %1731, %1485
  %1508 = load i32, ptr %30, align 4, !tbaa !9
  %1509 = load i32, ptr %78, align 4, !tbaa !9
  %1510 = icmp sle i32 %1508, %1509
  br i1 %1510, label %1511, label %1734

1511:                                             ; preds = %1507
  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
  call void @llvm.lifetime.start.p0(i64 16, ptr %119) #10
  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
  %1512 = load ptr, ptr %65, align 8, !tbaa !5
  %1513 = load i32, ptr %30, align 4, !tbaa !9
  %1514 = sext i32 %1513 to i64
  %1515 = getelementptr inbounds <2 x i64>, ptr %1512, i64 %1514
  %1516 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1515)
  store <2 x i64> %1516, ptr %117, align 16, !tbaa !11
  %1517 = load ptr, ptr %62, align 8, !tbaa !5
  %1518 = load i32, ptr %30, align 4, !tbaa !9
  %1519 = sext i32 %1518 to i64
  %1520 = getelementptr inbounds <2 x i64>, ptr %1517, i64 %1519
  %1521 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1520)
  store <2 x i64> %1521, ptr %122, align 16, !tbaa !11
  %1522 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1523 = bitcast <2 x i64> %1522 to <16 x i8>
  %1524 = shufflevector <16 x i8> %1523, <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>
  %1525 = bitcast <16 x i8> %1524 to <2 x i64>
  store <2 x i64> %1525, ptr %126, align 16, !tbaa !11
  %1526 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1527 = bitcast <2 x i64> %1526 to <16 x i8>
  %1528 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1527, <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>
  %1529 = bitcast <16 x i8> %1528 to <2 x i64>
  %1530 = load <2 x i64>, ptr %85, align 16, !tbaa !11
  %1531 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1529, <2 x i64> noundef %1530)
  store <2 x i64> %1531, ptr %122, align 16, !tbaa !11
  %1532 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  store <2 x i64> %1532, ptr %85, align 16, !tbaa !11
  %1533 = load ptr, ptr %61, align 8, !tbaa !5
  %1534 = load i32, ptr %30, align 4, !tbaa !9
  %1535 = sext i32 %1534 to i64
  %1536 = getelementptr inbounds <2 x i64>, ptr %1533, i64 %1535
  %1537 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1536)
  store <2 x i64> %1537, ptr %124, align 16, !tbaa !11
  %1538 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1539 = bitcast <2 x i64> %1538 to <16 x i8>
  %1540 = shufflevector <16 x i8> %1539, <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>
  %1541 = bitcast <16 x i8> %1540 to <2 x i64>
  store <2 x i64> %1541, ptr %126, align 16, !tbaa !11
  %1542 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1543 = bitcast <2 x i64> %1542 to <16 x i8>
  %1544 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1543, <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>
  %1545 = bitcast <16 x i8> %1544 to <2 x i64>
  %1546 = load <2 x i64>, ptr %87, align 16, !tbaa !11
  %1547 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1545, <2 x i64> noundef %1546)
  store <2 x i64> %1547, ptr %124, align 16, !tbaa !11
  %1548 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  store <2 x i64> %1548, ptr %87, align 16, !tbaa !11
  %1549 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1550 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1551 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1549, <2 x i64> noundef %1550)
  store <2 x i64> %1551, ptr %118, align 16, !tbaa !11
  %1552 = load ptr, ptr %60, align 8, !tbaa !5
  %1553 = load i32, ptr %30, align 4, !tbaa !9
  %1554 = sext i32 %1553 to i64
  %1555 = getelementptr inbounds <2 x i64>, ptr %1552, i64 %1554
  %1556 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1555)
  store <2 x i64> %1556, ptr %125, align 16, !tbaa !11
  %1557 = load ptr, ptr %63, align 8, !tbaa !5
  %1558 = load i32, ptr %30, align 4, !tbaa !9
  %1559 = sext i32 %1558 to i64
  %1560 = getelementptr inbounds <2 x i64>, ptr %1557, i64 %1559
  %1561 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1560)
  %1562 = load <2 x i64>, ptr %125, align 16, !tbaa !11
  %1563 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1561, <2 x i64> noundef %1562)
  store <2 x i64> %1563, ptr %119, align 16, !tbaa !11
  %1564 = load ptr, ptr %64, align 8, !tbaa !5
  %1565 = load i32, ptr %30, align 4, !tbaa !9
  %1566 = sext i32 %1565 to i64
  %1567 = getelementptr inbounds <2 x i64>, ptr %1564, i64 %1566
  %1568 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1567)
  store <2 x i64> %1568, ptr %123, align 16, !tbaa !11
  %1569 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1570 = bitcast <2 x i64> %1569 to <16 x i8>
  %1571 = shufflevector <16 x i8> %1570, <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>
  %1572 = bitcast <16 x i8> %1571 to <2 x i64>
  store <2 x i64> %1572, ptr %126, align 16, !tbaa !11
  %1573 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1574 = bitcast <2 x i64> %1573 to <16 x i8>
  %1575 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1574, <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>
  %1576 = bitcast <16 x i8> %1575 to <2 x i64>
  %1577 = load <2 x i64>, ptr %86, align 16, !tbaa !11
  %1578 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1576, <2 x i64> noundef %1577)
  store <2 x i64> %1578, ptr %123, align 16, !tbaa !11
  %1579 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  store <2 x i64> %1579, ptr %86, align 16, !tbaa !11
  %1580 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1581 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1582 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1580, <2 x i64> noundef %1581)
  store <2 x i64> %1582, ptr %120, align 16, !tbaa !11
  %1583 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1584 = load ptr, ptr %68, align 8, !tbaa !5
  %1585 = load i32, ptr %30, 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 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1583, <2 x i64> noundef %1588)
  store <2 x i64> %1589, ptr %121, align 16, !tbaa !11
  %1590 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1591 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1592 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1590, <2 x i64> noundef %1591)
  store <2 x i64> %1592, ptr %126, align 16, !tbaa !11
  %1593 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1594 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 1)
  %1595 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1593, <2 x i64> noundef %1594)
  store <2 x i64> %1595, ptr %116, align 16, !tbaa !11
  %1596 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1597 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1598 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1596, <2 x i64> noundef %1597)
  %1599 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1600 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1601 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1599, <2 x i64> noundef %1600)
  %1602 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1598, <2 x i64> noundef %1601)
  store <2 x i64> %1602, ptr %117, align 16, !tbaa !11
  %1603 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1604 = load <2 x i64>, ptr %119, align 16, !tbaa !11
  %1605 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1603, <2 x i64> noundef %1604)
  store <2 x i64> %1605, ptr %126, align 16, !tbaa !11
  %1606 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1607 = load <2 x i64>, ptr %116, align 16, !tbaa !11
  %1608 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1606, <2 x i64> noundef %1607)
  %1609 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1610 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 2)
  %1611 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1609, <2 x i64> noundef %1610)
  %1612 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1608, <2 x i64> noundef %1611)
  store <2 x i64> %1612, ptr %116, align 16, !tbaa !11
  %1613 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1614 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1615 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1613, <2 x i64> noundef %1614)
  %1616 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1617 = load <2 x i64>, ptr %119, align 16, !tbaa !11
  %1618 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1616, <2 x i64> noundef %1617)
  %1619 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1615, <2 x i64> noundef %1618)
  store <2 x i64> %1619, ptr %117, align 16, !tbaa !11
  %1620 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1621 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1622 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1620, <2 x i64> noundef %1621)
  store <2 x i64> %1622, ptr %126, align 16, !tbaa !11
  %1623 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1624 = load <2 x i64>, ptr %116, 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 %126, align 16, !tbaa !11
  %1627 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 3)
  %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 %116, align 16, !tbaa !11
  %1630 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1631 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1632 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1630, <2 x i64> noundef %1631)
  %1633 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1634 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1635 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1633, <2 x i64> noundef %1634)
  %1636 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1632, <2 x i64> noundef %1635)
  store <2 x i64> %1636, ptr %117, align 16, !tbaa !11
  %1637 = load ptr, ptr %60, align 8, !tbaa !5
  %1638 = load i32, ptr %30, align 4, !tbaa !9
  %1639 = sext i32 %1638 to i64
  %1640 = getelementptr inbounds <2 x i64>, ptr %1637, i64 %1639
  %1641 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1642 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1643 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1641, <2 x i64> noundef %1642)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1640, <2 x i64> noundef %1643)
  %1644 = load ptr, ptr %61, align 8, !tbaa !5
  %1645 = load i32, ptr %30, align 4, !tbaa !9
  %1646 = sext i32 %1645 to i64
  %1647 = getelementptr inbounds <2 x i64>, ptr %1644, i64 %1646
  %1648 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1649 = load <2 x i64>, ptr %125, align 16, !tbaa !11
  %1650 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1648, <2 x i64> noundef %1649)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1647, <2 x i64> noundef %1650)
  %1651 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1652 = load <2 x i64>, ptr %52, align 16, !tbaa !11
  %1653 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1651, <2 x i64> noundef %1652)
  store <2 x i64> %1653, ptr %126, align 16, !tbaa !11
  %1654 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1655 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1656 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1654, <2 x i64> noundef %1655)
  store <2 x i64> %1656, ptr %118, align 16, !tbaa !11
  %1657 = load <2 x i64>, ptr %119, align 16, !tbaa !11
  %1658 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1659 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1657, <2 x i64> noundef %1658)
  store <2 x i64> %1659, ptr %119, align 16, !tbaa !11
  %1660 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1661 = load <2 x i64>, ptr %117, align 16, !tbaa !11
  %1662 = load <2 x i64>, ptr %53, align 16, !tbaa !11
  %1663 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1661, <2 x i64> noundef %1662)
  %1664 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1660, <2 x i64> noundef %1663)
  store <2 x i64> %1664, ptr %120, align 16, !tbaa !11
  %1665 = load <2 x i64>, ptr %55, align 16, !tbaa !11
  %1666 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1667 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1665, <2 x i64> noundef %1666)
  store <2 x i64> %1667, ptr %126, align 16, !tbaa !11
  %1668 = load ptr, ptr %62, align 8, !tbaa !5
  %1669 = load i32, ptr %30, align 4, !tbaa !9
  %1670 = sext i32 %1669 to i64
  %1671 = getelementptr inbounds <2 x i64>, ptr %1668, i64 %1670
  %1672 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1673 = load <2 x i64>, ptr %118, align 16, !tbaa !11
  %1674 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1672, <2 x i64> noundef %1673)
  %1675 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %1676 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1674, <2 x i64> noundef %1675)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1671, <2 x i64> noundef %1676)
  %1677 = load <2 x i64>, ptr %116, align 16, !tbaa !11
  %1678 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1679 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 8)
  %1680 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1678, <2 x i64> noundef %1679)
  %1681 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1677, <2 x i64> noundef %1680)
  store <2 x i64> %1681, ptr %116, align 16, !tbaa !11
  %1682 = load <2 x i64>, ptr %55, align 16, !tbaa !11
  %1683 = load <2 x i64>, ptr %119, align 16, !tbaa !11
  %1684 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1682, <2 x i64> noundef %1683)
  store <2 x i64> %1684, ptr %126, align 16, !tbaa !11
  %1685 = load ptr, ptr %63, align 8, !tbaa !5
  %1686 = load i32, ptr %30, align 4, !tbaa !9
  %1687 = sext i32 %1686 to i64
  %1688 = getelementptr inbounds <2 x i64>, ptr %1685, i64 %1687
  %1689 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1690 = load <2 x i64>, ptr %119, align 16, !tbaa !11
  %1691 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1689, <2 x i64> noundef %1690)
  %1692 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %1693 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1691, <2 x i64> noundef %1692)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1688, <2 x i64> noundef %1693)
  %1694 = load <2 x i64>, ptr %116, align 16, !tbaa !11
  %1695 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1696 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 16)
  %1697 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1695, <2 x i64> noundef %1696)
  %1698 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1694, <2 x i64> noundef %1697)
  store <2 x i64> %1698, ptr %116, align 16, !tbaa !11
  %1699 = load ptr, ptr %67, align 8, !tbaa !5
  %1700 = load i32, ptr %30, align 4, !tbaa !9
  %1701 = sext i32 %1700 to i64
  %1702 = getelementptr inbounds <2 x i64>, ptr %1699, i64 %1701
  %1703 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1702)
  store <2 x i64> %1703, ptr %127, align 16, !tbaa !11
  %1704 = load <2 x i64>, ptr %127, align 16, !tbaa !11
  %1705 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1706 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1704, <2 x i64> noundef %1705)
  store <2 x i64> %1706, ptr %126, align 16, !tbaa !11
  %1707 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1708 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1709 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1707, <2 x i64> noundef %1708)
  %1710 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1711 = load <2 x i64>, ptr %127, align 16, !tbaa !11
  %1712 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1710, <2 x i64> noundef %1711)
  %1713 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1709, <2 x i64> noundef %1712)
  store <2 x i64> %1713, ptr %127, align 16, !tbaa !11
  %1714 = load ptr, ptr %64, align 8, !tbaa !5
  %1715 = load i32, ptr %30, align 4, !tbaa !9
  %1716 = sext i32 %1715 to i64
  %1717 = getelementptr inbounds <2 x i64>, ptr %1714, i64 %1716
  %1718 = load <2 x i64>, ptr %127, align 16, !tbaa !11
  %1719 = load <2 x i64>, ptr %53, align 16, !tbaa !11
  %1720 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1718, <2 x i64> noundef %1719)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1717, <2 x i64> noundef %1720)
  %1721 = load <2 x i64>, ptr %116, align 16, !tbaa !11
  %1722 = load <2 x i64>, ptr %126, align 16, !tbaa !11
  %1723 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 32)
  %1724 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1722, <2 x i64> noundef %1723)
  %1725 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1721, <2 x i64> noundef %1724)
  store <2 x i64> %1725, ptr %116, align 16, !tbaa !11
  %1726 = load ptr, ptr %115, align 8, !tbaa !5
  %1727 = load i32, ptr %30, 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 %116, align 16, !tbaa !11
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1729, <2 x i64> noundef %1730)
  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
  call void @llvm.lifetime.end.p0(i64 16, ptr %119) #10
  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
  br label %1731

1731:                                             ; preds = %1511
  %1732 = load i32, ptr %30, align 4, !tbaa !9
  %1733 = add nsw i32 %1732, 1
  store i32 %1733, ptr %30, align 4, !tbaa !9
  br label %1507, !llvm.loop !22

1734:                                             ; preds = %1507
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  br label %1735

1735:                                             ; preds = %1734, %1484
  br label %1736

1736:                                             ; preds = %1735, %1230
  %1737 = load i32, ptr %44, align 4, !tbaa !9
  %1738 = icmp ne i32 %1737, 0
  br i1 %1738, label %2028, label %1739

1739:                                             ; preds = %1736
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %1740 = load i32, ptr %29, align 4, !tbaa !9
  %1741 = icmp sgt i32 %1740, 0
  br i1 %1741, label %1742, label %1926

1742:                                             ; preds = %1739
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %131) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %1743 = load i32, ptr %75, align 4, !tbaa !9
  %1744 = load i32, ptr %76, align 4, !tbaa !9
  %1745 = load i32, ptr %75, align 4, !tbaa !9
  %1746 = sub nsw i32 %1744, %1745
  %1747 = sdiv i32 %1746, 4
  %1748 = mul nsw i32 %1747, 4
  %1749 = add nsw i32 %1743, %1748
  store i32 %1749, ptr %132, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %134) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %135) #10
  %1750 = load i32, ptr %76, align 4, !tbaa !9
  %1751 = icmp sgt i32 %1750, 0
  br i1 %1751, label %1752, label %1766

1752:                                             ; preds = %1742
  %1753 = load ptr, ptr %45, align 8, !tbaa !5
  %1754 = load i32, ptr %76, align 4, !tbaa !9
  %1755 = sub nsw i32 %1754, 1
  %1756 = sext i32 %1755 to i64
  %1757 = getelementptr inbounds i32, ptr %1753, i64 %1756
  %1758 = load i32, ptr %1757, align 4, !tbaa !9
  %1759 = load ptr, ptr %82, align 8, !tbaa !5
  %1760 = load i32, ptr %76, align 4, !tbaa !9
  %1761 = sext i32 %1760 to i64
  %1762 = getelementptr inbounds i8, ptr %1759, i64 %1761
  %1763 = load i8, ptr %1762, align 1, !tbaa !11
  %1764 = sext i8 %1763 to i32
  %1765 = add nsw i32 %1758, %1764
  br label %1779

1766:                                             ; preds = %1742
  %1767 = load ptr, ptr %45, align 8, !tbaa !5
  %1768 = load i32, ptr %76, align 4, !tbaa !9
  %1769 = sext i32 %1768 to i64
  %1770 = getelementptr inbounds i32, ptr %1767, i64 %1769
  %1771 = load i32, ptr %1770, align 4, !tbaa !9
  %1772 = load ptr, ptr %83, align 8, !tbaa !5
  %1773 = load i32, ptr %76, align 4, !tbaa !9
  %1774 = sext i32 %1773 to i64
  %1775 = getelementptr inbounds i8, ptr %1772, i64 %1774
  %1776 = load i8, ptr %1775, align 1, !tbaa !11
  %1777 = sext i8 %1776 to i32
  %1778 = add nsw i32 %1771, %1777
  br label %1779

1779:                                             ; preds = %1766, %1752
  %1780 = phi i32 [ %1765, %1752 ], [ %1778, %1766 ]
  %1781 = load ptr, ptr %45, align 8, !tbaa !5
  %1782 = load i32, ptr %76, align 4, !tbaa !9
  %1783 = sext i32 %1782 to i64
  %1784 = getelementptr inbounds i32, ptr %1781, i64 %1783
  store i32 %1780, ptr %1784, align 4, !tbaa !9
  store i32 %1780, ptr %128, align 4, !tbaa !9
  %1785 = load i32, ptr %76, align 4, !tbaa !9
  store i32 %1785, ptr %129, align 4, !tbaa !9
  %1786 = load i32, ptr %128, align 4, !tbaa !9
  %1787 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %1786)
  store <2 x i64> %1787, ptr %134, align 16, !tbaa !11
  %1788 = load i32, ptr %129, align 4, !tbaa !9
  %1789 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %1788)
  store <2 x i64> %1789, ptr %135, align 16, !tbaa !11
  %1790 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %1790, ptr %30, align 4, !tbaa !9
  br label %1791

1791:                                             ; preds = %1856, %1779
  %1792 = load i32, ptr %30, align 4, !tbaa !9
  %1793 = load i32, ptr %132, align 4, !tbaa !9
  %1794 = icmp slt i32 %1792, %1793
  br i1 %1794, label %1795, label %1859

1795:                                             ; preds = %1791
  call void @llvm.lifetime.start.p0(i64 16, 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
  %1796 = load ptr, ptr %45, align 8, !tbaa !5
  %1797 = load i32, ptr %30, align 4, !tbaa !9
  %1798 = sext i32 %1797 to i64
  %1799 = getelementptr inbounds i32, ptr %1796, i64 %1798
  %1800 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %1799)
  store <2 x i64> %1800, ptr %136, align 16, !tbaa !11
  %1801 = load ptr, ptr %83, align 8, !tbaa !5
  %1802 = load i32, ptr %30, align 4, !tbaa !9
  %1803 = sext i32 %1802 to i64
  %1804 = getelementptr inbounds i8, ptr %1801, i64 %1803
  %1805 = load i8, ptr %1804, align 1, !tbaa !11
  %1806 = sext i8 %1805 to i32
  %1807 = load ptr, ptr %83, align 8, !tbaa !5
  %1808 = load i32, ptr %30, align 4, !tbaa !9
  %1809 = add nsw i32 %1808, 1
  %1810 = sext i32 %1809 to i64
  %1811 = getelementptr inbounds i8, ptr %1807, i64 %1810
  %1812 = load i8, ptr %1811, align 1, !tbaa !11
  %1813 = sext i8 %1812 to i32
  %1814 = load ptr, ptr %83, align 8, !tbaa !5
  %1815 = load i32, ptr %30, align 4, !tbaa !9
  %1816 = add nsw i32 %1815, 2
  %1817 = sext i32 %1816 to i64
  %1818 = getelementptr inbounds i8, ptr %1814, i64 %1817
  %1819 = load i8, ptr %1818, align 1, !tbaa !11
  %1820 = sext i8 %1819 to i32
  %1821 = load ptr, ptr %83, align 8, !tbaa !5
  %1822 = load i32, ptr %30, align 4, !tbaa !9
  %1823 = add nsw i32 %1822, 3
  %1824 = sext i32 %1823 to i64
  %1825 = getelementptr inbounds i8, ptr %1821, i64 %1824
  %1826 = load i8, ptr %1825, align 1, !tbaa !11
  %1827 = sext i8 %1826 to i32
  %1828 = call noundef <2 x i64> @_ZL14_mm_setr_epi32iiii(i32 noundef %1806, i32 noundef %1813, i32 noundef %1820, i32 noundef %1827)
  store <2 x i64> %1828, ptr %138, align 16, !tbaa !11
  %1829 = load <2 x i64>, ptr %136, align 16, !tbaa !11
  %1830 = load <2 x i64>, ptr %138, align 16, !tbaa !11
  %1831 = call noundef <2 x i64> @_ZL13_mm_add_epi32Dv2_xS_(<2 x i64> noundef %1829, <2 x i64> noundef %1830)
  store <2 x i64> %1831, ptr %136, align 16, !tbaa !11
  %1832 = load ptr, ptr %45, align 8, !tbaa !5
  %1833 = load i32, ptr %30, align 4, !tbaa !9
  %1834 = sext i32 %1833 to i64
  %1835 = getelementptr inbounds i32, ptr %1832, i64 %1834
  %1836 = load <2 x i64>, ptr %136, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %1835, <2 x i64> noundef %1836)
  %1837 = load i32, ptr %30, align 4, !tbaa !9
  %1838 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %1837)
  store <2 x i64> %1838, ptr %138, align 16, !tbaa !11
  %1839 = load <2 x i64>, ptr %136, align 16, !tbaa !11
  %1840 = load <2 x i64>, ptr %134, align 16, !tbaa !11
  %1841 = call noundef <2 x i64> @_ZL15_mm_cmpgt_epi32Dv2_xS_(<2 x i64> noundef %1839, <2 x i64> noundef %1840)
  store <2 x i64> %1841, ptr %137, align 16, !tbaa !11
  %1842 = load <2 x i64>, ptr %137, align 16, !tbaa !11
  %1843 = load <2 x i64>, ptr %136, align 16, !tbaa !11
  %1844 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1842, <2 x i64> noundef %1843)
  %1845 = load <2 x i64>, ptr %137, align 16, !tbaa !11
  %1846 = load <2 x i64>, ptr %134, align 16, !tbaa !11
  %1847 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1845, <2 x i64> noundef %1846)
  %1848 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1844, <2 x i64> noundef %1847)
  store <2 x i64> %1848, ptr %134, align 16, !tbaa !11
  %1849 = load <2 x i64>, ptr %137, align 16, !tbaa !11
  %1850 = load <2 x i64>, ptr %138, align 16, !tbaa !11
  %1851 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1849, <2 x i64> noundef %1850)
  %1852 = load <2 x i64>, ptr %137, align 16, !tbaa !11
  %1853 = load <2 x i64>, ptr %135, align 16, !tbaa !11
  %1854 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1852, <2 x i64> noundef %1853)
  %1855 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1851, <2 x i64> noundef %1854)
  store <2 x i64> %1855, ptr %135, align 16, !tbaa !11
  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 16, ptr %136) #10
  br label %1856

1856:                                             ; preds = %1795
  %1857 = load i32, ptr %30, align 4, !tbaa !9
  %1858 = add nsw i32 %1857, 4
  store i32 %1858, ptr %30, align 4, !tbaa !9
  br label %1791, !llvm.loop !23

1859:                                             ; preds = %1791
  %1860 = getelementptr inbounds [4 x i32], ptr %130, i64 0, i64 0
  %1861 = load <2 x i64>, ptr %134, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %1860, <2 x i64> noundef %1861)
  %1862 = getelementptr inbounds [4 x i32], ptr %131, i64 0, i64 0
  %1863 = load <2 x i64>, ptr %135, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %1862, <2 x i64> noundef %1863)
  store i32 0, ptr %133, align 4, !tbaa !9
  br label %1864

1864:                                             ; preds = %1886, %1859
  %1865 = load i32, ptr %133, align 4, !tbaa !9
  %1866 = icmp slt i32 %1865, 4
  br i1 %1866, label %1867, label %1889

1867:                                             ; preds = %1864
  %1868 = load i32, ptr %128, align 4, !tbaa !9
  %1869 = load i32, ptr %133, align 4, !tbaa !9
  %1870 = sext i32 %1869 to i64
  %1871 = getelementptr inbounds [4 x i32], ptr %130, i64 0, i64 %1870
  %1872 = load i32, ptr %1871, align 4, !tbaa !9
  %1873 = icmp slt i32 %1868, %1872
  br i1 %1873, label %1874, label %1885

1874:                                             ; preds = %1867
  %1875 = load i32, ptr %133, align 4, !tbaa !9
  %1876 = sext i32 %1875 to i64
  %1877 = getelementptr inbounds [4 x i32], ptr %130, i64 0, i64 %1876
  %1878 = load i32, ptr %1877, align 4, !tbaa !9
  store i32 %1878, ptr %128, align 4, !tbaa !9
  %1879 = load i32, ptr %133, align 4, !tbaa !9
  %1880 = sext i32 %1879 to i64
  %1881 = getelementptr inbounds [4 x i32], ptr %131, i64 0, i64 %1880
  %1882 = load i32, ptr %1881, align 4, !tbaa !9
  %1883 = load i32, ptr %133, align 4, !tbaa !9
  %1884 = add nsw i32 %1882, %1883
  store i32 %1884, ptr %129, align 4, !tbaa !9
  br label %1885

1885:                                             ; preds = %1874, %1867
  br label %1886

1886:                                             ; preds = %1885
  %1887 = load i32, ptr %133, align 4, !tbaa !9
  %1888 = add nsw i32 %1887, 1
  store i32 %1888, ptr %133, align 4, !tbaa !9
  br label %1864, !llvm.loop !24

1889:                                             ; preds = %1864
  br label %1890

1890:                                             ; preds = %1922, %1889
  %1891 = load i32, ptr %30, align 4, !tbaa !9
  %1892 = load i32, ptr %76, align 4, !tbaa !9
  %1893 = icmp slt i32 %1891, %1892
  br i1 %1893, label %1894, label %1925

1894:                                             ; preds = %1890
  %1895 = load ptr, ptr %83, align 8, !tbaa !5
  %1896 = load i32, ptr %30, align 4, !tbaa !9
  %1897 = sext i32 %1896 to i64
  %1898 = getelementptr inbounds i8, ptr %1895, i64 %1897
  %1899 = load i8, ptr %1898, align 1, !tbaa !11
  %1900 = sext i8 %1899 to i32
  %1901 = load ptr, ptr %45, align 8, !tbaa !5
  %1902 = load i32, ptr %30, align 4, !tbaa !9
  %1903 = sext i32 %1902 to i64
  %1904 = getelementptr inbounds i32, ptr %1901, i64 %1903
  %1905 = load i32, ptr %1904, align 4, !tbaa !9
  %1906 = add nsw i32 %1905, %1900
  store i32 %1906, ptr %1904, align 4, !tbaa !9
  %1907 = load ptr, ptr %45, align 8, !tbaa !5
  %1908 = load i32, ptr %30, align 4, !tbaa !9
  %1909 = sext i32 %1908 to i64
  %1910 = getelementptr inbounds i32, ptr %1907, i64 %1909
  %1911 = load i32, ptr %1910, align 4, !tbaa !9
  %1912 = load i32, ptr %128, align 4, !tbaa !9
  %1913 = icmp sgt i32 %1911, %1912
  br i1 %1913, label %1914, label %1921

1914:                                             ; preds = %1894
  %1915 = load ptr, ptr %45, align 8, !tbaa !5
  %1916 = load i32, ptr %30, align 4, !tbaa !9
  %1917 = sext i32 %1916 to i64
  %1918 = getelementptr inbounds i32, ptr %1915, i64 %1917
  %1919 = load i32, ptr %1918, align 4, !tbaa !9
  store i32 %1919, ptr %128, align 4, !tbaa !9
  %1920 = load i32, ptr %30, align 4, !tbaa !9
  store i32 %1920, ptr %129, align 4, !tbaa !9
  br label %1921

1921:                                             ; preds = %1914, %1894
  br label %1922

1922:                                             ; preds = %1921
  %1923 = load i32, ptr %30, align 4, !tbaa !9
  %1924 = add nsw i32 %1923, 1
  store i32 %1924, ptr %30, align 4, !tbaa !9
  br label %1890, !llvm.loop !25

1925:                                             ; preds = %1890
  call void @llvm.lifetime.end.p0(i64 16, ptr %135) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %134) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %131) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #10
  br label %1938

1926:                                             ; preds = %1739
  %1927 = load ptr, ptr %83, align 8, !tbaa !5
  %1928 = getelementptr inbounds i8, ptr %1927, i64 0
  %1929 = load i8, ptr %1928, align 1, !tbaa !11
  %1930 = sext i8 %1929 to i32
  %1931 = load i32, ptr %31, align 4, !tbaa !9
  %1932 = sub nsw i32 %1930, %1931
  %1933 = load ptr, ptr %45, align 8, !tbaa !5
  %1934 = getelementptr inbounds i32, ptr %1933, i64 0
  store i32 %1932, ptr %1934, align 4, !tbaa !9
  %1935 = load ptr, ptr %45, align 8, !tbaa !5
  %1936 = getelementptr inbounds i32, ptr %1935, i64 0
  %1937 = load i32, ptr %1936, align 4, !tbaa !9
  store i32 %1937, ptr %128, align 4, !tbaa !9
  store i32 0, ptr %129, align 4, !tbaa !9
  br label %1938

1938:                                             ; preds = %1926, %1925
  %1939 = load i32, ptr %76, align 4, !tbaa !9
  %1940 = load i32, ptr %18, align 4, !tbaa !9
  %1941 = sub nsw i32 %1940, 1
  %1942 = icmp eq i32 %1939, %1941
  br i1 %1942, label %1943, label %1966

1943:                                             ; preds = %1938
  %1944 = load ptr, ptr %45, align 8, !tbaa !5
  %1945 = load i32, ptr %76, align 4, !tbaa !9
  %1946 = sext i32 %1945 to i64
  %1947 = getelementptr inbounds i32, ptr %1944, i64 %1946
  %1948 = load i32, ptr %1947, align 4, !tbaa !9
  %1949 = load ptr, ptr %28, align 8, !tbaa !5
  %1950 = getelementptr inbounds %struct.ksw_extz_t, ptr %1949, i32 0, i32 5
  %1951 = load i32, ptr %1950, align 4, !tbaa !26
  %1952 = icmp sgt i32 %1948, %1951
  br i1 %1952, label %1953, label %1966

1953:                                             ; preds = %1943
  %1954 = load ptr, ptr %45, align 8, !tbaa !5
  %1955 = load i32, ptr %76, align 4, !tbaa !9
  %1956 = sext i32 %1955 to i64
  %1957 = getelementptr inbounds i32, ptr %1954, i64 %1956
  %1958 = load i32, ptr %1957, align 4, !tbaa !9
  %1959 = load ptr, ptr %28, align 8, !tbaa !5
  %1960 = getelementptr inbounds %struct.ksw_extz_t, ptr %1959, i32 0, i32 5
  store i32 %1958, ptr %1960, align 4, !tbaa !26
  %1961 = load i32, ptr %29, align 4, !tbaa !9
  %1962 = load i32, ptr %74, align 4, !tbaa !9
  %1963 = sub nsw i32 %1961, %1962
  %1964 = load ptr, ptr %28, align 8, !tbaa !5
  %1965 = getelementptr inbounds %struct.ksw_extz_t, ptr %1964, i32 0, i32 6
  store i32 %1963, ptr %1965, align 8, !tbaa !28
  br label %1966

1966:                                             ; preds = %1953, %1943, %1938
  %1967 = load i32, ptr %29, align 4, !tbaa !9
  %1968 = load i32, ptr %75, align 4, !tbaa !9
  %1969 = sub nsw i32 %1967, %1968
  %1970 = load i32, ptr %16, align 4, !tbaa !9
  %1971 = sub nsw i32 %1970, 1
  %1972 = icmp eq i32 %1969, %1971
  br i1 %1972, label %1973, label %1994

1973:                                             ; preds = %1966
  %1974 = load ptr, ptr %45, align 8, !tbaa !5
  %1975 = load i32, ptr %75, align 4, !tbaa !9
  %1976 = sext i32 %1975 to i64
  %1977 = getelementptr inbounds i32, ptr %1974, i64 %1976
  %1978 = load i32, ptr %1977, align 4, !tbaa !9
  %1979 = load ptr, ptr %28, align 8, !tbaa !5
  %1980 = getelementptr inbounds %struct.ksw_extz_t, ptr %1979, i32 0, i32 3
  %1981 = load i32, ptr %1980, align 4, !tbaa !29
  %1982 = icmp sgt i32 %1978, %1981
  br i1 %1982, label %1983, label %1994

1983:                                             ; preds = %1973
  %1984 = load ptr, ptr %45, align 8, !tbaa !5
  %1985 = load i32, ptr %75, align 4, !tbaa !9
  %1986 = sext i32 %1985 to i64
  %1987 = getelementptr inbounds i32, ptr %1984, i64 %1986
  %1988 = load i32, ptr %1987, align 4, !tbaa !9
  %1989 = load ptr, ptr %28, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.ksw_extz_t, ptr %1989, i32 0, i32 3
  store i32 %1988, ptr %1990, align 4, !tbaa !29
  %1991 = load i32, ptr %75, align 4, !tbaa !9
  %1992 = load ptr, ptr %28, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.ksw_extz_t, ptr %1992, i32 0, i32 4
  store i32 %1991, ptr %1993, align 8, !tbaa !30
  br label %1994

1994:                                             ; preds = %1983, %1973, %1966
  %1995 = load ptr, ptr %28, align 8, !tbaa !5
  %1996 = load i32, ptr %128, align 4, !tbaa !9
  %1997 = load i32, ptr %29, align 4, !tbaa !9
  %1998 = load i32, ptr %129, align 4, !tbaa !9
  %1999 = load i32, ptr %26, align 4, !tbaa !9
  %2000 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %1995, i32 noundef 1, i32 noundef %1996, i32 noundef %1997, i32 noundef %1998, i32 noundef %1999, i8 noundef signext 0)
  %2001 = icmp ne i32 %2000, 0
  br i1 %2001, label %2002, label %2003

2002:                                             ; preds = %1994
  store i32 17, ptr %69, align 4
  br label %2025

2003:                                             ; preds = %1994
  %2004 = load i32, ptr %29, align 4, !tbaa !9
  %2005 = load i32, ptr %16, align 4, !tbaa !9
  %2006 = load i32, ptr %18, align 4, !tbaa !9
  %2007 = add nsw i32 %2005, %2006
  %2008 = sub nsw i32 %2007, 2
  %2009 = icmp eq i32 %2004, %2008
  br i1 %2009, label %2010, label %2024

2010:                                             ; preds = %2003
  %2011 = load i32, ptr %76, align 4, !tbaa !9
  %2012 = load i32, ptr %18, align 4, !tbaa !9
  %2013 = sub nsw i32 %2012, 1
  %2014 = icmp eq i32 %2011, %2013
  br i1 %2014, label %2015, label %2024

2015:                                             ; preds = %2010
  %2016 = load ptr, ptr %45, align 8, !tbaa !5
  %2017 = load i32, ptr %18, align 4, !tbaa !9
  %2018 = sub nsw i32 %2017, 1
  %2019 = sext i32 %2018 to i64
  %2020 = getelementptr inbounds i32, ptr %2016, i64 %2019
  %2021 = load i32, ptr %2020, align 4, !tbaa !9
  %2022 = load ptr, ptr %28, align 8, !tbaa !5
  %2023 = getelementptr inbounds %struct.ksw_extz_t, ptr %2022, i32 0, i32 7
  store i32 %2021, ptr %2023, align 4, !tbaa !31
  br label %2024

2024:                                             ; preds = %2015, %2010, %2003
  store i32 0, ptr %69, align 4
  br label %2025

2025:                                             ; preds = %2024, %2002
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  %2026 = load i32, ptr %69, align 4
  switch i32 %2026, label %2147 [
    i32 0, label %2027
  ]

2027:                                             ; preds = %2025
  br label %2144

2028:                                             ; preds = %1736
  %2029 = load i32, ptr %29, align 4, !tbaa !9
  %2030 = icmp sgt i32 %2029, 0
  br i1 %2030, label %2031, label %2107

2031:                                             ; preds = %2028
  %2032 = load i32, ptr %47, align 4, !tbaa !9
  %2033 = load i32, ptr %75, align 4, !tbaa !9
  %2034 = icmp sge i32 %2032, %2033
  br i1 %2034, label %2035, label %2077

2035:                                             ; preds = %2031
  %2036 = load i32, ptr %47, align 4, !tbaa !9
  %2037 = load i32, ptr %76, align 4, !tbaa !9
  %2038 = icmp sle i32 %2036, %2037
  br i1 %2038, label %2039, label %2077

2039:                                             ; preds = %2035
  %2040 = load i32, ptr %47, align 4, !tbaa !9
  %2041 = add nsw i32 %2040, 1
  %2042 = load i32, ptr %75, align 4, !tbaa !9
  %2043 = icmp sge i32 %2041, %2042
  br i1 %2043, label %2044, label %2077

2044:                                             ; preds = %2039
  %2045 = load i32, ptr %47, align 4, !tbaa !9
  %2046 = add nsw i32 %2045, 1
  %2047 = load i32, ptr %76, align 4, !tbaa !9
  %2048 = icmp sle i32 %2046, %2047
  br i1 %2048, label %2049, label %2077

2049:                                             ; preds = %2044
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #10
  %2050 = load ptr, ptr %83, align 8, !tbaa !5
  %2051 = load i32, ptr %47, align 4, !tbaa !9
  %2052 = sext i32 %2051 to i64
  %2053 = getelementptr inbounds i8, ptr %2050, i64 %2052
  %2054 = load i8, ptr %2053, align 1, !tbaa !11
  %2055 = sext i8 %2054 to i32
  store i32 %2055, ptr %139, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #10
  %2056 = load ptr, ptr %82, align 8, !tbaa !5
  %2057 = load i32, ptr %47, align 4, !tbaa !9
  %2058 = add nsw i32 %2057, 1
  %2059 = sext i32 %2058 to i64
  %2060 = getelementptr inbounds i8, ptr %2056, i64 %2059
  %2061 = load i8, ptr %2060, align 1, !tbaa !11
  %2062 = sext i8 %2061 to i32
  store i32 %2062, ptr %140, align 4, !tbaa !9
  %2063 = load i32, ptr %139, align 4, !tbaa !9
  %2064 = load i32, ptr %140, align 4, !tbaa !9
  %2065 = icmp sgt i32 %2063, %2064
  br i1 %2065, label %2066, label %2070

2066:                                             ; preds = %2049
  %2067 = load i32, ptr %139, align 4, !tbaa !9
  %2068 = load i32, ptr %46, align 4, !tbaa !9
  %2069 = add nsw i32 %2068, %2067
  store i32 %2069, ptr %46, align 4, !tbaa !9
  br label %2076

2070:                                             ; preds = %2049
  %2071 = load i32, ptr %140, align 4, !tbaa !9
  %2072 = load i32, ptr %46, align 4, !tbaa !9
  %2073 = add nsw i32 %2072, %2071
  store i32 %2073, ptr %46, align 4, !tbaa !9
  %2074 = load i32, ptr %47, align 4, !tbaa !9
  %2075 = add nsw i32 %2074, 1
  store i32 %2075, ptr %47, align 4, !tbaa !9
  br label %2076

2076:                                             ; preds = %2070, %2066
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #10
  br label %2106

2077:                                             ; preds = %2044, %2039, %2035, %2031
  %2078 = load i32, ptr %47, align 4, !tbaa !9
  %2079 = load i32, ptr %75, align 4, !tbaa !9
  %2080 = icmp sge i32 %2078, %2079
  br i1 %2080, label %2081, label %2094

2081:                                             ; preds = %2077
  %2082 = load i32, ptr %47, align 4, !tbaa !9
  %2083 = load i32, ptr %76, align 4, !tbaa !9
  %2084 = icmp sle i32 %2082, %2083
  br i1 %2084, label %2085, label %2094

2085:                                             ; preds = %2081
  %2086 = load ptr, ptr %83, align 8, !tbaa !5
  %2087 = load i32, ptr %47, align 4, !tbaa !9
  %2088 = sext i32 %2087 to i64
  %2089 = getelementptr inbounds i8, ptr %2086, i64 %2088
  %2090 = load i8, ptr %2089, align 1, !tbaa !11
  %2091 = sext i8 %2090 to i32
  %2092 = load i32, ptr %46, align 4, !tbaa !9
  %2093 = add nsw i32 %2092, %2091
  store i32 %2093, ptr %46, align 4, !tbaa !9
  br label %2105

2094:                                             ; preds = %2081, %2077
  %2095 = load i32, ptr %47, align 4, !tbaa !9
  %2096 = add nsw i32 %2095, 1
  store i32 %2096, ptr %47, align 4, !tbaa !9
  %2097 = load ptr, ptr %82, align 8, !tbaa !5
  %2098 = load i32, ptr %47, align 4, !tbaa !9
  %2099 = sext i32 %2098 to i64
  %2100 = getelementptr inbounds i8, ptr %2097, i64 %2099
  %2101 = load i8, ptr %2100, align 1, !tbaa !11
  %2102 = sext i8 %2101 to i32
  %2103 = load i32, ptr %46, align 4, !tbaa !9
  %2104 = add nsw i32 %2103, %2102
  store i32 %2104, ptr %46, align 4, !tbaa !9
  br label %2105

2105:                                             ; preds = %2094, %2085
  br label %2106

2106:                                             ; preds = %2105, %2076
  br label %2114

2107:                                             ; preds = %2028
  %2108 = load ptr, ptr %83, align 8, !tbaa !5
  %2109 = getelementptr inbounds i8, ptr %2108, i64 0
  %2110 = load i8, ptr %2109, align 1, !tbaa !11
  %2111 = sext i8 %2110 to i32
  %2112 = load i32, ptr %31, align 4, !tbaa !9
  %2113 = sub nsw i32 %2111, %2112
  store i32 %2113, ptr %46, align 4, !tbaa !9
  store i32 0, ptr %47, align 4, !tbaa !9
  br label %2114

2114:                                             ; preds = %2107, %2106
  %2115 = load i32, ptr %27, align 4, !tbaa !9
  %2116 = and i32 %2115, 16
  %2117 = icmp ne i32 %2116, 0
  br i1 %2117, label %2118, label %2127

2118:                                             ; preds = %2114
  %2119 = load ptr, ptr %28, align 8, !tbaa !5
  %2120 = load i32, ptr %46, align 4, !tbaa !9
  %2121 = load i32, ptr %29, align 4, !tbaa !9
  %2122 = load i32, ptr %47, align 4, !tbaa !9
  %2123 = load i32, ptr %26, align 4, !tbaa !9
  %2124 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %2119, i32 noundef 1, i32 noundef %2120, i32 noundef %2121, i32 noundef %2122, i32 noundef %2123, i8 noundef signext 0)
  %2125 = icmp ne i32 %2124, 0
  br i1 %2125, label %2126, label %2127

2126:                                             ; preds = %2118
  store i32 17, ptr %69, align 4
  br label %2147

2127:                                             ; preds = %2118, %2114
  %2128 = load i32, ptr %29, align 4, !tbaa !9
  %2129 = load i32, ptr %16, align 4, !tbaa !9
  %2130 = load i32, ptr %18, align 4, !tbaa !9
  %2131 = add nsw i32 %2129, %2130
  %2132 = sub nsw i32 %2131, 2
  %2133 = icmp eq i32 %2128, %2132
  br i1 %2133, label %2134, label %2143

2134:                                             ; preds = %2127
  %2135 = load i32, ptr %76, align 4, !tbaa !9
  %2136 = load i32, ptr %18, align 4, !tbaa !9
  %2137 = sub nsw i32 %2136, 1
  %2138 = icmp eq i32 %2135, %2137
  br i1 %2138, label %2139, label %2143

2139:                                             ; preds = %2134
  %2140 = load i32, ptr %46, align 4, !tbaa !9
  %2141 = load ptr, ptr %28, align 8, !tbaa !5
  %2142 = getelementptr inbounds %struct.ksw_extz_t, ptr %2141, i32 0, i32 7
  store i32 %2140, ptr %2142, align 4, !tbaa !31
  br label %2143

2143:                                             ; preds = %2139, %2134, %2127
  br label %2144

2144:                                             ; preds = %2143, %2027
  %2145 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %2145, ptr %37, align 4, !tbaa !9
  %2146 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %2146, ptr %38, align 4, !tbaa !9
  store i32 0, ptr %69, align 4
  br label %2147

2147:                                             ; preds = %2144, %2126, %2025
  call void @llvm.lifetime.end.p0(i64 16, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #10
  call void @llvm.lifetime.end.p0(i64 1, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  %2148 = load i32, ptr %69, align 4
  switch i32 %2148, label %2235 [
    i32 0, label %2149
    i32 17, label %2153
  ]

2149:                                             ; preds = %2147
  br label %2150

2150:                                             ; preds = %2149
  %2151 = load i32, ptr %29, align 4, !tbaa !9
  %2152 = add nsw i32 %2151, 1
  store i32 %2152, ptr %29, align 4, !tbaa !9
  br label %731, !llvm.loop !32

2153:                                             ; preds = %2147, %731
  %2154 = load ptr, ptr %50, align 8, !tbaa !5
  call void @seq_free(ptr noundef %2154)
  %2155 = load i32, ptr %44, align 4, !tbaa !9
  %2156 = icmp ne i32 %2155, 0
  br i1 %2156, label %2159, label %2157

2157:                                             ; preds = %2153
  %2158 = load ptr, ptr %45, align 8, !tbaa !5
  call void @seq_free(ptr noundef %2158)
  br label %2159

2159:                                             ; preds = %2157, %2153
  %2160 = load i32, ptr %43, align 4, !tbaa !9
  %2161 = icmp ne i32 %2160, 0
  br i1 %2161, label %2162, label %2231

2162:                                             ; preds = %2159
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #10
  %2163 = load i32, ptr %27, align 4, !tbaa !9
  %2164 = and i32 %2163, 128
  %2165 = icmp ne i32 %2164, 0
  %2166 = xor i1 %2165, true
  %2167 = xor i1 %2166, true
  %2168 = zext i1 %2167 to i32
  store i32 %2168, ptr %141, align 4, !tbaa !9
  %2169 = load ptr, ptr %28, align 8, !tbaa !5
  %2170 = load i32, ptr %2169, align 8
  %2171 = lshr i32 %2170, 31
  %2172 = icmp ne i32 %2171, 0
  br i1 %2172, label %2196, label %2173

2173:                                             ; preds = %2162
  %2174 = load i32, ptr %27, align 4, !tbaa !9
  %2175 = and i32 %2174, 64
  %2176 = icmp ne i32 %2175, 0
  br i1 %2176, label %2196, label %2177

2177:                                             ; preds = %2173
  %2178 = load ptr, ptr %15, align 8, !tbaa !5
  %2179 = load i32, ptr %141, align 4, !tbaa !9
  %2180 = load i32, ptr %41, align 4, !tbaa !9
  %2181 = load ptr, ptr %66, align 8, !tbaa !5
  %2182 = load ptr, ptr %33, align 8, !tbaa !5
  %2183 = load ptr, ptr %34, align 8, !tbaa !5
  %2184 = load i32, ptr %32, align 4, !tbaa !9
  %2185 = mul nsw i32 %2184, 16
  %2186 = load i32, ptr %18, align 4, !tbaa !9
  %2187 = sub nsw i32 %2186, 1
  %2188 = load i32, ptr %16, align 4, !tbaa !9
  %2189 = sub nsw i32 %2188, 1
  %2190 = load ptr, ptr %28, align 8, !tbaa !5
  %2191 = getelementptr inbounds %struct.ksw_extz_t, ptr %2190, i32 0, i32 8
  %2192 = load ptr, ptr %28, align 8, !tbaa !5
  %2193 = getelementptr inbounds %struct.ksw_extz_t, ptr %2192, i32 0, i32 9
  %2194 = load ptr, ptr %28, align 8, !tbaa !5
  %2195 = getelementptr inbounds %struct.ksw_extz_t, ptr %2194, i32 0, i32 11
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %2178, i32 noundef 1, i32 noundef %2179, i32 noundef %2180, ptr noundef %2181, ptr noundef %2182, ptr noundef %2183, i32 noundef %2185, i32 noundef %2187, i32 noundef %2189, ptr noundef %2191, ptr noundef %2193, ptr noundef %2195)
  br label %2228

2196:                                             ; preds = %2173, %2162
  %2197 = load ptr, ptr %28, align 8, !tbaa !5
  %2198 = getelementptr inbounds %struct.ksw_extz_t, ptr %2197, i32 0, i32 2
  %2199 = load i32, ptr %2198, align 8, !tbaa !33
  %2200 = icmp sge i32 %2199, 0
  br i1 %2200, label %2201, label %2227

2201:                                             ; preds = %2196
  %2202 = load ptr, ptr %28, align 8, !tbaa !5
  %2203 = getelementptr inbounds %struct.ksw_extz_t, ptr %2202, i32 0, i32 1
  %2204 = load i32, ptr %2203, align 4, !tbaa !34
  %2205 = icmp sge i32 %2204, 0
  br i1 %2205, label %2206, label %2227

2206:                                             ; preds = %2201
  %2207 = load ptr, ptr %15, align 8, !tbaa !5
  %2208 = load i32, ptr %141, align 4, !tbaa !9
  %2209 = load i32, ptr %41, align 4, !tbaa !9
  %2210 = load ptr, ptr %66, align 8, !tbaa !5
  %2211 = load ptr, ptr %33, align 8, !tbaa !5
  %2212 = load ptr, ptr %34, align 8, !tbaa !5
  %2213 = load i32, ptr %32, align 4, !tbaa !9
  %2214 = mul nsw i32 %2213, 16
  %2215 = load ptr, ptr %28, align 8, !tbaa !5
  %2216 = getelementptr inbounds %struct.ksw_extz_t, ptr %2215, i32 0, i32 2
  %2217 = load i32, ptr %2216, align 8, !tbaa !33
  %2218 = load ptr, ptr %28, align 8, !tbaa !5
  %2219 = getelementptr inbounds %struct.ksw_extz_t, ptr %2218, i32 0, i32 1
  %2220 = load i32, ptr %2219, align 4, !tbaa !34
  %2221 = load ptr, ptr %28, align 8, !tbaa !5
  %2222 = getelementptr inbounds %struct.ksw_extz_t, ptr %2221, i32 0, i32 8
  %2223 = load ptr, ptr %28, align 8, !tbaa !5
  %2224 = getelementptr inbounds %struct.ksw_extz_t, ptr %2223, i32 0, i32 9
  %2225 = load ptr, ptr %28, align 8, !tbaa !5
  %2226 = getelementptr inbounds %struct.ksw_extz_t, ptr %2225, i32 0, i32 11
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %2207, i32 noundef 1, i32 noundef %2208, i32 noundef %2209, ptr noundef %2210, ptr noundef %2211, ptr noundef %2212, i32 noundef %2214, i32 noundef %2217, i32 noundef %2220, ptr noundef %2222, ptr noundef %2224, ptr noundef %2226)
  br label %2227

2227:                                             ; preds = %2206, %2201, %2196
  br label %2228

2228:                                             ; preds = %2227, %2177
  %2229 = load ptr, ptr %51, align 8, !tbaa !5
  call void @seq_free(ptr noundef %2229)
  %2230 = load ptr, ptr %33, align 8, !tbaa !5
  call void @seq_free(ptr noundef %2230)
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #10
  br label %2231

2231:                                             ; preds = %2228, %2159
  store i32 0, ptr %69, align 4
  br label %2232

2232:                                             ; preds = %2231, %322, %177
  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 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 8, 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 16, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 8, 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 8, 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 4, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  %2233 = load i32, ptr %69, align 4
  switch i32 %2233, label %2235 [
    i32 0, label %2234
    i32 1, label %2234
  ]

2234:                                             ; preds = %2232, %2232
  ret void

2235:                                             ; preds = %2232, %2147
  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: 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> @_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: 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 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 = distinct !{!24, !13}
!25 = distinct !{!25, !13}
!26 = !{!27, !10, i64 20}
!27 = !{!"_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}
!28 = !{!27, !10, i64 24}
!29 = !{!27, !10, i64 12}
!30 = !{!27, !10, i64 16}
!31 = !{!27, !10, i64 28}
!32 = distinct !{!32, !13}
!33 = !{!27, !10, i64 8}
!34 = !{!27, !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_exts2_sse = external hidden unnamed_addr constant [151 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @ksw_exts2_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, ptr noundef %13) local_unnamed_addr #0 {
  %15 = alloca [4 x i32], align 16
  %16 = alloca [4 x i32], align 16
  %17 = sext i8 %7 to i32
  %18 = sext i8 %8 to i32
  %19 = add nsw i32 %18, %17
  %20 = and i32 %12, 1
  %.not = icmp eq i32 %20, 0
  %21 = and i32 %12, 8
  %.not913 = icmp eq i32 %21, 0
  tail call void @_ZL14ksw_reset_extzP10ksw_extz_t(ptr noundef %13)
  %22 = sext i8 %5 to i32
  %23 = icmp slt i8 %5, 2
  %24 = icmp slt i32 %1, 1
  %or.cond = or i1 %24, %23
  %25 = icmp slt i32 %3, 1
  %or.cond3 = or i1 %25, %or.cond
  br i1 %or.cond3, label %819, label %26

26:                                               ; preds = %14
  %27 = sext i8 %9 to i32
  %.not914 = icmp slt i32 %19, %27
  br i1 %.not914, label %28, label %819

28:                                               ; preds = %26
  %29 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 0)
  %30 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %7)
  %31 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %9)
  %32 = trunc i32 %19 to i8
  %33 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %32)
  %34 = load i8, ptr %6, align 1, !tbaa !5
  %35 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %34)
  %36 = getelementptr inbounds i8, ptr %6, i64 1
  %37 = load i8, ptr %36, align 1, !tbaa !5
  %38 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %37)
  %39 = mul nuw nsw i32 %22, %22
  %40 = zext nneg i32 %39 to i64
  %41 = getelementptr i8, ptr %6, i64 %40
  %42 = getelementptr i8, ptr %41, i64 -1
  %43 = load i8, ptr %42, align 1, !tbaa !5
  %44 = icmp eq i8 %43, 0
  %45 = sub i8 0, %8
  %.sink = select i1 %44, i8 %45, i8 %43
  %46 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %.sink)
  %47 = add nsw i8 %5, -1
  %48 = tail call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %47)
  %49 = add nuw i32 %3, 15
  %50 = lshr i32 %49, 4
  %51 = tail call i32 @llvm.umin.i32(i32 %1, i32 %3)
  %52 = add nuw nsw i32 %51, 15
  %53 = lshr i32 %52, 4
  %54 = add nuw nsw i32 %53, 1
  %55 = add nuw nsw i32 %1, 15
  %56 = lshr i32 %55, 4
  %57 = load i8, ptr %36, align 1, !tbaa !5
  %58 = sext i8 %57 to i32
  %59 = icmp ugt i32 %39, 1
  br i1 %59, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %28
  %60 = add nsw i64 %40, -1
  %min.iters.check = icmp ult i32 %39, 9
  br i1 %min.iters.check, label %.lr.ph.preheader1202, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %60, -8
  %ind.end = or disjoint i64 %n.vec, 1
  %minmax.ident.splatinsert = insertelement <4 x i32> poison, i32 %58, 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 ], [ %65, %vector.body ]
  %vec.phi1161 = phi <4 x i32> [ %minmax.ident.splat, %vector.ph ], [ %66, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %61 = getelementptr inbounds i8, ptr %6, i64 %offset.idx
  %62 = getelementptr inbounds i8, ptr %61, i64 4
  %wide.load = load <4 x i8>, ptr %61, align 1, !tbaa !5
  %wide.load1162 = load <4 x i8>, ptr %62, align 1, !tbaa !5
  %63 = sext <4 x i8> %wide.load to <4 x i32>
  %64 = sext <4 x i8> %wide.load1162 to <4 x i32>
  %65 = tail call <4 x i32> @llvm.smin.v4i32(<4 x i32> %vec.phi, <4 x i32> %63)
  %66 = tail call <4 x i32> @llvm.smin.v4i32(<4 x i32> %vec.phi1161, <4 x i32> %64)
  %index.next = add nuw i64 %index, 8
  %67 = icmp eq i64 %index.next, %n.vec
  br i1 %67, 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> %65, <4 x i32> %66)
  %68 = tail call i32 @llvm.vector.reduce.smin.v4i32(<4 x i32> %rdx.minmax)
  %cmp.n = icmp eq i64 %60, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.preheader1202

.lr.ph.preheader1202:                             ; preds = %middle.block, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %.08521007.ph = phi i32 [ %58, %.lr.ph.preheader ], [ %68, %middle.block ]
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader1202, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %indvars.iv.ph, %.lr.ph.preheader1202 ]
  %.08521007 = phi i32 [ %72, %.lr.ph ], [ %.08521007.ph, %.lr.ph.preheader1202 ]
  %69 = getelementptr inbounds i8, ptr %6, i64 %indvars.iv
  %70 = load i8, ptr %69, align 1, !tbaa !5
  %71 = sext i8 %70 to i32
  %72 = tail call i32 @llvm.smin.i32(i32 %.08521007, i32 %71)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %40
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !12

._crit_edge:                                      ; preds = %.lr.ph, %middle.block, %28
  %.0852.lcssa = phi i32 [ %58, %28 ], [ %68, %middle.block ], [ %72, %.lr.ph ]
  %73 = sub nsw i32 0, %.0852.lcssa
  %74 = shl nsw i32 %19, 1
  %75 = icmp slt i32 %74, %73
  br i1 %75, label %819, label %76

76:                                               ; preds = %._crit_edge
  %77 = sub nsw i32 %27, %17
  %78 = sdiv i32 %77, %18
  %79 = add nsw i32 %78, -1
  %80 = mul nsw i32 %79, %18
  %81 = add nsw i32 %80, %19
  %82 = icmp slt i32 %81, %27
  %spec.select = select i1 %82, i32 %78, i32 %79
  %83 = mul nsw i32 %spec.select, %18
  %84 = sub nsw i32 %83, %77
  %85 = mul nuw nsw i32 %50, 9
  %86 = add nuw nsw i32 %56, 1
  %87 = add nuw nsw i32 %86, %85
  %88 = zext nneg i32 %87 to i64
  %89 = tail call ptr @seq_calloc_atomic(i64 noundef %88, i64 noundef 16)
  %90 = ptrtoint ptr %89 to i64
  %91 = add i64 %90, 15
  %92 = and i64 %91, -16
  %93 = inttoptr i64 %92 to ptr
  %94 = zext nneg i32 %50 to i64
  %95 = getelementptr inbounds <2 x i64>, ptr %93, i64 %94
  %96 = getelementptr inbounds <2 x i64>, ptr %95, i64 %94
  %97 = getelementptr inbounds <2 x i64>, ptr %96, i64 %94
  %98 = getelementptr inbounds <2 x i64>, ptr %97, i64 %94
  %99 = getelementptr inbounds <2 x i64>, ptr %98, i64 %94
  %100 = getelementptr inbounds <2 x i64>, ptr %99, i64 %94
  %101 = getelementptr inbounds <2 x i64>, ptr %100, i64 %94
  %102 = getelementptr inbounds <2 x i64>, ptr %101, i64 %94
  %103 = and i32 %49, 2147483632
  %104 = zext nneg i32 %103 to i64
  %105 = getelementptr inbounds i8, ptr %102, i64 %104
  %106 = sub nsw i32 0, %19
  %107 = trunc i32 %106 to i8
  %108 = shl nsw i32 %103, 2
  %109 = zext nneg i32 %108 to i64
  tail call void @llvm.memset.p0.i64(ptr align 16 %93, i8 %107, i64 %109, i1 false)
  %110 = sub i8 0, %9
  tail call void @llvm.memset.p0.i64(ptr align 16 %98, i8 %110, i64 %104, i1 false)
  br i1 %.not913, label %111, label %.loopexit1006

111:                                              ; preds = %76
  %112 = tail call ptr @seq_alloc_atomic(i64 noundef %109)
  %.not1080 = icmp eq i32 %103, 0
  br i1 %.not1080, label %.loopexit1006, label %vector.body1170

vector.body1170:                                  ; preds = %111, %vector.body1170
  %index1171 = phi i64 [ %index.next1172, %vector.body1170 ], [ 0, %111 ]
  %113 = getelementptr inbounds i32, ptr %112, i64 %index1171
  %114 = getelementptr inbounds i8, ptr %113, i64 16
  store <4 x i32> <i32 -1073741824, i32 -1073741824, i32 -1073741824, i32 -1073741824>, ptr %113, align 4, !tbaa !13
  store <4 x i32> <i32 -1073741824, i32 -1073741824, i32 -1073741824, i32 -1073741824>, ptr %114, align 4, !tbaa !13
  %index.next1172 = add nuw i64 %index1171, 8
  %115 = icmp eq i64 %index.next1172, %104
  br i1 %115, label %.loopexit1006, label %vector.body1170, !llvm.loop !15

.loopexit1006:                                    ; preds = %vector.body1170, %111, %76
  %.0854 = phi ptr [ null, %76 ], [ %112, %111 ], [ %112, %vector.body1170 ]
  br i1 %.not, label %116, label %136

116:                                              ; preds = %.loopexit1006
  %117 = add nsw i32 %1, -1
  %118 = add i32 %117, %3
  %119 = shl i32 %118, 4
  %120 = mul i32 %119, %54
  %121 = add i32 %120, 16
  %122 = zext nneg i32 %121 to i64
  %123 = tail call ptr @seq_alloc_atomic(i64 noundef %122)
  %124 = ptrtoint ptr %123 to i64
  %125 = add i64 %124, 15
  %126 = and i64 %125, -16
  %127 = inttoptr i64 %126 to ptr
  %128 = zext nneg i32 %118 to i64
  %129 = shl nuw nsw i64 %128, 3
  %130 = tail call ptr @seq_alloc_atomic(i64 noundef %129)
  %131 = zext nneg i32 %1 to i64
  %132 = getelementptr inbounds i32, ptr %130, i64 %131
  %133 = zext nneg i32 %3 to i64
  %134 = getelementptr inbounds i32, ptr %132, i64 %133
  %135 = getelementptr inbounds i8, ptr %134, i64 -4
  br label %136

136:                                              ; preds = %116, %.loopexit1006
  %.0866 = phi ptr [ %127, %116 ], [ null, %.loopexit1006 ]
  %.0865 = phi ptr [ %123, %116 ], [ null, %.loopexit1006 ]
  %.0833 = phi ptr [ %135, %116 ], [ null, %.loopexit1006 ]
  %.0832 = phi ptr [ %130, %116 ], [ null, %.loopexit1006 ]
  %137 = icmp sgt i32 %1, 0
  br i1 %137, label %iter.check, label %._crit_edge1016

iter.check:                                       ; preds = %136
  %138 = zext nneg i32 %1 to i64
  %wide.trip.count1096 = zext nneg i32 %1 to i64
  %invariant.gep1150 = getelementptr i8, ptr %2, i64 %138
  %min.iters.check1177 = icmp ult i32 %1, 8
  br i1 %min.iters.check1177, label %.lr.ph1015.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %iter.check
  %139 = shl nuw nsw i64 %94, 7
  %140 = add nuw nsw i64 %139, %104
  %scevgep = getelementptr i8, ptr %93, i64 %140
  %141 = getelementptr i8, ptr %93, i64 %140
  %scevgep1174 = getelementptr i8, ptr %141, i64 %wide.trip.count1096
  %bound0 = icmp ult ptr %scevgep, %invariant.gep1150
  %bound1 = icmp ugt ptr %scevgep1174, %2
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph1015.preheader, label %vector.main.loop.iter.check

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

vector.ph1180:                                    ; preds = %vector.main.loop.iter.check
  %n.vec1182 = and i64 %wide.trip.count1096, 2147483616
  br label %vector.body1183

vector.body1183:                                  ; preds = %vector.body1183, %vector.ph1180
  %index1184 = phi i64 [ 0, %vector.ph1180 ], [ %index.next1188, %vector.body1183 ]
  %142 = xor i64 %index1184, -1
  %143 = getelementptr i8, ptr %invariant.gep1150, i64 %142
  %144 = getelementptr i8, ptr %143, i64 -15
  %145 = getelementptr i8, ptr %143, i64 -31
  %wide.load1185 = load <16 x i8>, ptr %144, align 1, !tbaa !5, !alias.scope !16
  %reverse = shufflevector <16 x i8> %wide.load1185, <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.load1186 = load <16 x i8>, ptr %145, align 1, !tbaa !5, !alias.scope !16
  %reverse1187 = shufflevector <16 x i8> %wide.load1186, <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>
  %146 = getelementptr inbounds i8, ptr %105, i64 %index1184
  %147 = getelementptr inbounds i8, ptr %146, i64 16
  store <16 x i8> %reverse, ptr %146, align 1, !tbaa !5, !alias.scope !19, !noalias !16
  store <16 x i8> %reverse1187, ptr %147, align 1, !tbaa !5, !alias.scope !19, !noalias !16
  %index.next1188 = add nuw i64 %index1184, 32
  %148 = icmp eq i64 %index.next1188, %n.vec1182
  br i1 %148, label %middle.block1175, label %vector.body1183, !llvm.loop !21

middle.block1175:                                 ; preds = %vector.body1183
  %cmp.n1189 = icmp eq i64 %n.vec1182, %wide.trip.count1096
  br i1 %cmp.n1189, label %._crit_edge1016, label %vec.epilog.iter.check

vec.epilog.iter.check:                            ; preds = %middle.block1175
  %n.vec.remaining = and i64 %wide.trip.count1096, 24
  %min.epilog.iters.check = icmp eq i64 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check, label %.lr.ph1015.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.vec1182, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
  %n.vec1191 = and i64 %wide.trip.count1096, 2147483640
  %invariant.gep1214 = getelementptr i8, ptr %invariant.gep1150, i64 -7
  br label %vec.epilog.vector.body

vec.epilog.vector.body:                           ; preds = %vec.epilog.vector.body, %vec.epilog.ph
  %index1193 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next1196, %vec.epilog.vector.body ]
  %149 = xor i64 %index1193, -1
  %gep1215 = getelementptr i8, ptr %invariant.gep1214, i64 %149
  %wide.load1194 = load <8 x i8>, ptr %gep1215, align 1, !tbaa !5, !alias.scope !22
  %reverse1195 = shufflevector <8 x i8> %wide.load1194, <8 x i8> poison, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  %150 = getelementptr inbounds i8, ptr %105, i64 %index1193
  store <8 x i8> %reverse1195, ptr %150, align 1, !tbaa !5, !alias.scope !25, !noalias !22
  %index.next1196 = add nuw i64 %index1193, 8
  %151 = icmp eq i64 %index.next1196, %n.vec1191
  br i1 %151, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !27

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n1197 = icmp eq i64 %n.vec1191, %wide.trip.count1096
  br i1 %cmp.n1197, label %._crit_edge1016, label %.lr.ph1015.preheader

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

.lr.ph1015.prol:                                  ; preds = %.lr.ph1015.preheader, %.lr.ph1015.prol
  %indvars.iv1093.prol = phi i64 [ %indvars.iv.next1094.prol, %.lr.ph1015.prol ], [ %indvars.iv1093.ph, %.lr.ph1015.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1015.prol ], [ 0, %.lr.ph1015.preheader ]
  %152 = xor i64 %indvars.iv1093.prol, -1
  %gep1151.prol = getelementptr i8, ptr %invariant.gep1150, i64 %152
  %153 = load i8, ptr %gep1151.prol, align 1, !tbaa !5
  %154 = getelementptr inbounds i8, ptr %105, i64 %indvars.iv1093.prol
  store i8 %153, ptr %154, align 1, !tbaa !5
  %indvars.iv.next1094.prol = add nuw nsw i64 %indvars.iv1093.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.ph1015.prol.loopexit, label %.lr.ph1015.prol, !llvm.loop !28

.lr.ph1015.prol.loopexit:                         ; preds = %.lr.ph1015.prol, %.lr.ph1015.preheader
  %indvars.iv1093.unr = phi i64 [ %indvars.iv1093.ph, %.lr.ph1015.preheader ], [ %indvars.iv.next1094.prol, %.lr.ph1015.prol ]
  %155 = sub nsw i64 %indvars.iv1093.ph, %wide.trip.count1096
  %156 = icmp ugt i64 %155, -4
  br i1 %156, label %._crit_edge1016, label %.lr.ph1015.preheader.new

.lr.ph1015.preheader.new:                         ; preds = %.lr.ph1015.prol.loopexit
  %invariant.gep1216 = getelementptr i8, ptr %105, i64 1
  %invariant.gep1218 = getelementptr i8, ptr %105, i64 2
  %invariant.gep1220 = getelementptr i8, ptr %105, i64 3
  br label %.lr.ph1015

.lr.ph1015:                                       ; preds = %.lr.ph1015, %.lr.ph1015.preheader.new
  %indvars.iv1093 = phi i64 [ %indvars.iv1093.unr, %.lr.ph1015.preheader.new ], [ %indvars.iv.next1094.3, %.lr.ph1015 ]
  %157 = xor i64 %indvars.iv1093, -1
  %gep1151 = getelementptr i8, ptr %invariant.gep1150, i64 %157
  %158 = load i8, ptr %gep1151, align 1, !tbaa !5
  %159 = getelementptr inbounds i8, ptr %105, i64 %indvars.iv1093
  store i8 %158, ptr %159, align 1, !tbaa !5
  %160 = sub i64 -2, %indvars.iv1093
  %gep1151.1 = getelementptr i8, ptr %invariant.gep1150, i64 %160
  %161 = load i8, ptr %gep1151.1, align 1, !tbaa !5
  %gep1217 = getelementptr i8, ptr %invariant.gep1216, i64 %indvars.iv1093
  store i8 %161, ptr %gep1217, align 1, !tbaa !5
  %162 = sub i64 -3, %indvars.iv1093
  %gep1151.2 = getelementptr i8, ptr %invariant.gep1150, i64 %162
  %163 = load i8, ptr %gep1151.2, align 1, !tbaa !5
  %gep1219 = getelementptr i8, ptr %invariant.gep1218, i64 %indvars.iv1093
  store i8 %163, ptr %gep1219, align 1, !tbaa !5
  %164 = sub i64 -4, %indvars.iv1093
  %gep1151.3 = getelementptr i8, ptr %invariant.gep1150, i64 %164
  %165 = load i8, ptr %gep1151.3, align 1, !tbaa !5
  %gep1221 = getelementptr i8, ptr %invariant.gep1220, i64 %indvars.iv1093
  store i8 %165, ptr %gep1221, align 1, !tbaa !5
  %indvars.iv.next1094.3 = add nuw nsw i64 %indvars.iv1093, 4
  %exitcond1097.not.3 = icmp eq i64 %indvars.iv.next1094.3, %wide.trip.count1096
  br i1 %exitcond1097.not.3, label %._crit_edge1016, label %.lr.ph1015, !llvm.loop !30

._crit_edge1016:                                  ; preds = %.lr.ph1015.prol.loopexit, %.lr.ph1015, %middle.block1175, %vec.epilog.middle.block, %136
  %166 = zext nneg i32 %3 to i64
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %102, ptr align 1 %4, i64 %166, i1 false)
  %167 = and i32 %12, 768
  %.not915 = icmp eq i32 %167, 0
  br i1 %.not915, label %.loopexit1005, label %168

168:                                              ; preds = %._crit_edge1016
  %169 = and i32 %12, 1024
  %.not916 = icmp eq i32 %169, 0
  %170 = sdiv i8 %10, -2
  %171 = select i1 %.not916, i8 0, i8 %170
  %172 = sub i8 0, %10
  tail call void @llvm.memset.p0.i64(ptr align 16 %99, i8 %172, i64 %104, i1 false)
  %invariant.gep = getelementptr inbounds i8, ptr %4, i64 3
  %173 = icmp sgt i32 %3, 4
  br i1 %173, label %.lr.ph1019, label %._crit_edge1020

.lr.ph1019:                                       ; preds = %168
  %174 = add nsw i32 %3, -4
  %175 = and i32 %12, 256
  %.not944 = icmp eq i32 %175, 0
  %176 = and i32 %12, 512
  %.not945 = icmp eq i32 %176, 0
  %wide.trip.count1101 = zext nneg i32 %174 to i64
  br label %177

177:                                              ; preds = %.lr.ph1019, %.thread969
  %indvars.iv1098 = phi i64 [ 0, %.lr.ph1019 ], [ %indvars.iv.next1099, %.thread969 ]
  br i1 %.not944, label %187, label %178

178:                                              ; preds = %177
  %179 = getelementptr inbounds i8, ptr %4, i64 %indvars.iv1098
  %180 = getelementptr inbounds i8, ptr %179, i64 1
  %181 = load i8, ptr %180, align 1, !tbaa !5
  %182 = icmp eq i8 %181, 2
  br i1 %182, label %183, label %187

183:                                              ; preds = %178
  %184 = getelementptr inbounds i8, ptr %179, i64 2
  %185 = load i8, ptr %184, align 1, !tbaa !5
  %186 = icmp eq i8 %185, 3
  %spec.select948 = zext i1 %186 to i32
  br label %187

187:                                              ; preds = %183, %178, %177
  %.0869 = phi i32 [ 0, %178 ], [ 0, %177 ], [ %spec.select948, %183 ]
  br i1 %.not945, label %197, label %188

188:                                              ; preds = %187
  %189 = getelementptr inbounds i8, ptr %4, i64 %indvars.iv1098
  %190 = getelementptr inbounds i8, ptr %189, i64 1
  %191 = load i8, ptr %190, align 1, !tbaa !5
  %192 = icmp eq i8 %191, 1
  br i1 %192, label %193, label %197

193:                                              ; preds = %188
  %194 = getelementptr inbounds i8, ptr %189, i64 2
  %195 = load i8, ptr %194, align 1, !tbaa !5
  %196 = icmp ne i8 %195, 3
  %.not946 = icmp eq i32 %.0869, 0
  %or.cond995 = select i1 %196, i1 %.not946, i1 false
  br i1 %or.cond995, label %.thread969, label %.thread

197:                                              ; preds = %188, %187
  %.not946.old = icmp eq i32 %.0869, 0
  br i1 %.not946.old, label %.thread969, label %.thread

.thread:                                          ; preds = %193, %197
  %gep = getelementptr inbounds i8, ptr %invariant.gep, i64 %indvars.iv1098
  %198 = load i8, ptr %gep, align 1, !tbaa !5
  %switch.and = and i8 %198, -3
  %switch.selectcmp = icmp eq i8 %switch.and, 0
  %199 = select i1 %switch.selectcmp, i8 0, i8 %171
  %200 = getelementptr inbounds i8, ptr %99, i64 %indvars.iv1098
  store i8 %199, ptr %200, align 1, !tbaa !5
  br label %.thread969

.thread969:                                       ; preds = %193, %197, %.thread
  %indvars.iv.next1099 = add nuw nsw i64 %indvars.iv1098, 1
  %exitcond1102.not = icmp eq i64 %indvars.iv.next1099, %wide.trip.count1101
  br i1 %exitcond1102.not, label %._crit_edge1020, label %177, !llvm.loop !31

._crit_edge1020:                                  ; preds = %.thread969, %168
  tail call void @llvm.memset.p0.i64(ptr align 16 %100, i8 %172, i64 %104, i1 false)
  %invariant.gep1021 = getelementptr i8, ptr %4, i64 -2
  %201 = icmp sgt i32 %3, 2
  br i1 %201, label %.lr.ph1025, label %.loopexit1005

.lr.ph1025:                                       ; preds = %._crit_edge1020
  %202 = and i32 %12, 256
  %.not940 = icmp eq i32 %202, 0
  %203 = and i32 %12, 512
  %.not941 = icmp eq i32 %203, 0
  br label %204

204:                                              ; preds = %.lr.ph1025, %.thread977
  %indvars.iv1103 = phi i64 [ 2, %.lr.ph1025 ], [ %indvars.iv.next1104, %.thread977 ]
  br i1 %.not940, label %213, label %205

205:                                              ; preds = %204
  %206 = getelementptr i8, ptr %4, i64 %indvars.iv1103
  %207 = getelementptr i8, ptr %206, i64 -1
  %208 = load i8, ptr %207, align 1, !tbaa !5
  %209 = icmp eq i8 %208, 0
  br i1 %209, label %210, label %213

210:                                              ; preds = %205
  %211 = load i8, ptr %206, align 1, !tbaa !5
  %212 = icmp eq i8 %211, 2
  %spec.select950 = zext i1 %212 to i32
  br label %213

213:                                              ; preds = %210, %205, %204
  %.0872 = phi i32 [ 0, %205 ], [ 0, %204 ], [ %spec.select950, %210 ]
  br i1 %.not941, label %222, label %214

214:                                              ; preds = %213
  %215 = getelementptr i8, ptr %4, i64 %indvars.iv1103
  %216 = getelementptr i8, ptr %215, i64 -1
  %217 = load i8, ptr %216, align 1, !tbaa !5
  %218 = icmp eq i8 %217, 0
  br i1 %218, label %219, label %222

219:                                              ; preds = %214
  %220 = load i8, ptr %215, align 1, !tbaa !5
  %221 = icmp ne i8 %220, 1
  %.not942 = icmp eq i32 %.0872, 0
  %or.cond996 = select i1 %221, i1 %.not942, i1 false
  br i1 %or.cond996, label %.thread977, label %.thread972

222:                                              ; preds = %214, %213
  %.not942.old = icmp eq i32 %.0872, 0
  br i1 %.not942.old, label %.thread977, label %.thread972

.thread972:                                       ; preds = %219, %222
  %gep1022 = getelementptr i8, ptr %invariant.gep1021, i64 %indvars.iv1103
  %223 = load i8, ptr %gep1022, align 1, !tbaa !5
  %224 = add i8 %223, -1
  %switch.and963 = and i8 %224, -3
  %switch.selectcmp964 = icmp eq i8 %switch.and963, 0
  %225 = select i1 %switch.selectcmp964, i8 0, i8 %171
  %226 = getelementptr inbounds i8, ptr %100, i64 %indvars.iv1103
  store i8 %225, ptr %226, align 1, !tbaa !5
  br label %.thread977

.thread977:                                       ; preds = %219, %222, %.thread972
  %indvars.iv.next1104 = add nuw nsw i64 %indvars.iv1103, 1
  %exitcond1107.not = icmp eq i64 %indvars.iv.next1104, %166
  br i1 %exitcond1107.not, label %.loopexit1005, label %204, !llvm.loop !32

.loopexit1005:                                    ; preds = %.thread977, %._crit_edge1020, %._crit_edge1016
  %227 = add nuw nsw i32 %3, %1
  %228 = icmp sgt i32 %227, 1
  br i1 %228, label %.lr.ph1077, label %._crit_edge1078

.lr.ph1077:                                       ; preds = %.loopexit1005
  %229 = add nsw i32 %3, -1
  %230 = add nsw i32 %1, -1
  %231 = sub nsw i32 0, %18
  %232 = and i32 %12, 4
  %.not920 = icmp eq i32 %232, 0
  %233 = and i32 %12, 2
  %.not925 = icmp eq i32 %233, 0
  %234 = and i32 %12, 16
  %.not936 = icmp eq i32 %234, 0
  %235 = add nsw i32 %227, -2
  %236 = getelementptr inbounds i8, ptr %13, i64 28
  %237 = icmp sgt i32 %3, 1
  %238 = getelementptr inbounds i8, ptr %13, i64 20
  %239 = getelementptr inbounds i8, ptr %13, i64 24
  %240 = getelementptr inbounds i8, ptr %13, i64 12
  %241 = getelementptr inbounds i8, ptr %13, i64 16
  %242 = zext nneg i32 %229 to i64
  %243 = getelementptr inbounds i32, ptr %.0854, i64 %242
  %244 = sext i32 %229 to i64
  %245 = zext i32 %spec.select to i64
  %246 = sext i32 %spec.select to i64
  %247 = sext i32 %230 to i64
  %248 = zext nneg i32 %1 to i64
  %249 = zext nneg i32 %54 to i64
  %250 = zext nneg i32 %235 to i64
  %smax1142 = add nsw i32 %227, -1
  %wide.trip.count1143 = zext nneg i32 %smax1142 to i64
  %251 = getelementptr inbounds i8, ptr %15, i64 4
  %252 = getelementptr inbounds i8, ptr %16, i64 4
  %253 = getelementptr inbounds i8, ptr %15, i64 8
  %254 = getelementptr inbounds i8, ptr %16, i64 8
  %255 = getelementptr inbounds i8, ptr %15, i64 12
  %256 = getelementptr inbounds i8, ptr %16, i64 12
  br label %257

257:                                              ; preds = %.lr.ph1077, %792
  %indvars.iv1139 = phi i64 [ 0, %.lr.ph1077 ], [ %indvars.iv.next1140, %792 ]
  %.08341074 = phi i32 [ -1, %.lr.ph1077 ], [ %266, %792 ]
  %.08361073 = phi i32 [ -1, %.lr.ph1077 ], [ %270, %792 ]
  %.08551072 = phi i32 [ 0, %.lr.ph1077 ], [ %.4859.ph, %792 ]
  %.08601071 = phi i32 [ 0, %.lr.ph1077 ], [ %.4864.ph, %792 ]
  %258 = trunc i64 %indvars.iv1139 to i32
  %smin1206 = call i32 @llvm.smin.i32(i32 %258, i32 %229)
  %indvars1141 = trunc i64 %indvars.iv1139 to i32
  %smin = call i32 @llvm.smin.i32(i32 %indvars1141, i32 %229)
  %259 = add nsw i32 %smin, 1
  %260 = sub nsw i64 %247, %indvars.iv1139
  %261 = getelementptr inbounds i8, ptr %105, i64 %260
  %262 = sub nsw i64 %indvars.iv1139, %248
  %.inv = icmp slt i64 %262, 0
  %263 = trunc i64 %262 to i32
  %264 = add i32 %263, 1
  %spec.select952 = select i1 %.inv, i32 0, i32 %264
  %265 = lshr i32 %spec.select952, 4
  %266 = and i32 %spec.select952, -16
  %267 = add nsw i32 %smin, 16
  %268 = sdiv i32 %267, 16
  %269 = shl nsw i32 %268, 4
  %270 = add nsw i32 %269, -1
  %271 = icmp sgt i32 %266, 0
  br i1 %271, label %272, label %282

272:                                              ; preds = %257
  %273 = add nsw i32 %266, -1
  %.not917.not = icmp sle i32 %266, %.08341074
  %.not918 = icmp sgt i32 %273, %.08361073
  %or.cond953 = select i1 %.not917.not, i1 true, i1 %.not918
  br i1 %or.cond953, label %292, label %274

274:                                              ; preds = %272
  %275 = zext nneg i32 %273 to i64
  %276 = getelementptr inbounds i8, ptr %96, i64 %275
  %277 = load i8, ptr %276, align 1, !tbaa !5
  %278 = getelementptr inbounds i8, ptr %98, i64 %275
  %279 = load i8, ptr %278, align 1, !tbaa !5
  %280 = getelementptr inbounds i8, ptr %95, i64 %275
  %281 = load i8, ptr %280, align 1, !tbaa !5
  br label %292

282:                                              ; preds = %257
  %283 = icmp eq i64 %indvars.iv1139, 0
  br i1 %283, label %289, label %284

284:                                              ; preds = %282
  %285 = icmp slt i64 %indvars.iv1139, %246
  br i1 %285, label %289, label %286

286:                                              ; preds = %284
  %287 = icmp eq i64 %indvars.iv1139, %245
  %288 = select i1 %287, i32 %84, i32 0
  br label %289

289:                                              ; preds = %284, %282, %286
  %290 = phi i32 [ %288, %286 ], [ %106, %282 ], [ %231, %284 ]
  %291 = trunc i32 %290 to i8
  br label %292

292:                                              ; preds = %272, %274, %289
  %.0879 = phi i8 [ %281, %274 ], [ %291, %289 ], [ %107, %272 ]
  %.0878 = phi i8 [ %279, %274 ], [ %110, %289 ], [ %110, %272 ]
  %.0877 = phi i8 [ %277, %274 ], [ %107, %289 ], [ %107, %272 ]
  %293 = sext i32 %269 to i64
  %.not919.not = icmp slt i64 %indvars.iv1139, %293
  br i1 %.not919.not, label %294, label %306

294:                                              ; preds = %292
  %295 = getelementptr inbounds i8, ptr %97, i64 %indvars.iv1139
  store i8 %107, ptr %295, align 1, !tbaa !5
  %296 = icmp eq i64 %indvars.iv1139, 0
  br i1 %296, label %302, label %297

297:                                              ; preds = %294
  %298 = icmp slt i64 %indvars.iv1139, %246
  br i1 %298, label %302, label %299

299:                                              ; preds = %297
  %300 = icmp eq i64 %indvars.iv1139, %245
  %301 = select i1 %300, i32 %84, i32 0
  br label %302

302:                                              ; preds = %297, %294, %299
  %303 = phi i32 [ %301, %299 ], [ %106, %294 ], [ %231, %297 ]
  %304 = trunc i32 %303 to i8
  %305 = getelementptr inbounds i8, ptr %93, i64 %indvars.iv1139
  store i8 %304, ptr %305, align 1, !tbaa !5
  br label %306

306:                                              ; preds = %302, %292
  %.not9211029 = icmp sgt i32 %spec.select952, %smin
  br i1 %.not920, label %.preheader1001, label %.preheader1003

.preheader1003:                                   ; preds = %306
  br i1 %.not9211029, label %.loopexit1002, label %.lr.ph1028.preheader

.lr.ph1028.preheader:                             ; preds = %.preheader1003
  %307 = sext i32 %spec.select952 to i64
  %308 = add i32 %smin1206, %spec.select952
  %309 = and i32 %308, 1
  %lcmp.mod1208.not.not = icmp eq i32 %309, 0
  br i1 %lcmp.mod1208.not.not, label %.lr.ph1028.prol, label %.lr.ph1028.prol.loopexit

.lr.ph1028.prol:                                  ; preds = %.lr.ph1028.preheader
  %310 = getelementptr inbounds i8, ptr %102, i64 %307
  %311 = load i8, ptr %310, align 1, !tbaa !5
  %312 = zext i8 %311 to i32
  %313 = mul nuw nsw i32 %312, %22
  %314 = getelementptr inbounds i8, ptr %261, i64 %307
  %315 = load i8, ptr %314, align 1, !tbaa !5
  %316 = zext i8 %315 to i32
  %317 = add nuw nsw i32 %313, %316
  %318 = zext nneg i32 %317 to i64
  %319 = getelementptr inbounds i8, ptr %6, i64 %318
  %320 = load i8, ptr %319, align 1, !tbaa !5
  %321 = getelementptr inbounds i8, ptr %101, i64 %307
  store i8 %320, ptr %321, align 1, !tbaa !5
  %indvars.iv.next1109.prol = add nsw i64 %307, 1
  br label %.lr.ph1028.prol.loopexit

.lr.ph1028.prol.loopexit:                         ; preds = %.lr.ph1028.prol, %.lr.ph1028.preheader
  %indvars.iv1108.unr = phi i64 [ %307, %.lr.ph1028.preheader ], [ %indvars.iv.next1109.prol, %.lr.ph1028.prol ]
  %322 = icmp eq i32 %smin1206, %spec.select952
  br i1 %322, label %.loopexit1002, label %.lr.ph1028

.preheader1001:                                   ; preds = %306
  br i1 %.not9211029, label %.loopexit1002, label %.lr.ph1031.preheader

.lr.ph1031.preheader:                             ; preds = %.preheader1001
  %323 = sext i32 %spec.select952 to i64
  %324 = sext i32 %smin to i64
  br label %.lr.ph1031

.lr.ph1031:                                       ; preds = %.lr.ph1031.preheader, %.lr.ph1031
  %indvars.iv1112 = phi i64 [ %323, %.lr.ph1031.preheader ], [ %indvars.iv.next1113, %.lr.ph1031 ]
  %325 = getelementptr inbounds i8, ptr %102, i64 %indvars.iv1112
  %326 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %325)
  %327 = getelementptr inbounds i8, ptr %261, i64 %indvars.iv1112
  %328 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %327)
  %329 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %326, <2 x i64> noundef %48)
  %330 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %328, <2 x i64> noundef %48)
  %331 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %329, <2 x i64> noundef %330)
  %332 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %326, <2 x i64> noundef %328)
  %333 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %332, <2 x i64> noundef %38)
  %334 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %332, <2 x i64> noundef %35)
  %335 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %333, <2 x i64> noundef %334)
  %336 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %331, <2 x i64> noundef %335)
  %337 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %331, <2 x i64> noundef %46)
  %338 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %336, <2 x i64> noundef %337)
  %339 = getelementptr inbounds i8, ptr %101, i64 %indvars.iv1112
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %339, <2 x i64> noundef %338)
  %indvars.iv.next1113 = add nsw i64 %indvars.iv1112, 16
  %.not921 = icmp sgt i64 %indvars.iv.next1113, %324
  br i1 %.not921, label %.loopexit1002, label %.lr.ph1031, !llvm.loop !33

.lr.ph1028:                                       ; preds = %.lr.ph1028.prol.loopexit, %.lr.ph1028
  %indvars.iv1108 = phi i64 [ %indvars.iv.next1109.1, %.lr.ph1028 ], [ %indvars.iv1108.unr, %.lr.ph1028.prol.loopexit ]
  %340 = getelementptr inbounds i8, ptr %102, i64 %indvars.iv1108
  %341 = load i8, ptr %340, align 1, !tbaa !5
  %342 = zext i8 %341 to i32
  %343 = mul nuw nsw i32 %342, %22
  %344 = getelementptr inbounds i8, ptr %261, i64 %indvars.iv1108
  %345 = load i8, ptr %344, align 1, !tbaa !5
  %346 = zext i8 %345 to i32
  %347 = add nuw nsw i32 %343, %346
  %348 = zext nneg i32 %347 to i64
  %349 = getelementptr inbounds i8, ptr %6, i64 %348
  %350 = load i8, ptr %349, align 1, !tbaa !5
  %351 = getelementptr inbounds i8, ptr %101, i64 %indvars.iv1108
  store i8 %350, ptr %351, align 1, !tbaa !5
  %indvars.iv.next1109 = add nsw i64 %indvars.iv1108, 1
  %352 = getelementptr inbounds i8, ptr %102, i64 %indvars.iv.next1109
  %353 = load i8, ptr %352, align 1, !tbaa !5
  %354 = zext i8 %353 to i32
  %355 = mul nuw nsw i32 %354, %22
  %356 = getelementptr inbounds i8, ptr %261, i64 %indvars.iv.next1109
  %357 = load i8, ptr %356, align 1, !tbaa !5
  %358 = zext i8 %357 to i32
  %359 = add nuw nsw i32 %355, %358
  %360 = zext nneg i32 %359 to i64
  %361 = getelementptr inbounds i8, ptr %6, i64 %360
  %362 = load i8, ptr %361, align 1, !tbaa !5
  %363 = getelementptr inbounds i8, ptr %101, i64 %indvars.iv.next1109
  store i8 %362, ptr %363, align 1, !tbaa !5
  %indvars.iv.next1109.1 = add nsw i64 %indvars.iv1108, 2
  %lftr.wideiv.1 = trunc i64 %indvars.iv.next1109.1 to i32
  %exitcond1111.not.1 = icmp eq i32 %259, %lftr.wideiv.1
  br i1 %exitcond1111.not.1, label %.loopexit1002, label %.lr.ph1028, !llvm.loop !34

.loopexit1002:                                    ; preds = %.lr.ph1028.prol.loopexit, %.lr.ph1028, %.lr.ph1031, %.preheader1003, %.preheader1001
  %364 = zext i8 %.0877 to i32
  %365 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %364)
  %366 = zext i8 %.0878 to i32
  %367 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %366)
  %368 = zext i8 %.0879 to i32
  %369 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %368)
  %370 = sdiv i32 %270, 16
  %371 = sub nsw i32 %370, %265
  %.not923 = icmp sgt i32 %371, %53
  br i1 %.not923, label %372, label %373

372:                                              ; preds = %.loopexit1002
  call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef nonnull @__PRETTY_FUNCTION__.ksw_exts2_sse) #11
  unreachable

373:                                              ; preds = %.loopexit1002
  br i1 %.not, label %447, label %.preheader999

.preheader999:                                    ; preds = %373
  %.not9241032 = icmp sgt i32 %265, %370
  br i1 %.not9241032, label %.loopexit, label %.lr.ph1037.preheader

.lr.ph1037.preheader:                             ; preds = %.preheader999
  %374 = lshr i32 %spec.select952, 4
  %375 = zext nneg i32 %374 to i64
  %376 = add nsw i32 %370, 1
  %377 = add nsw i32 %376, %374
  %378 = sub nsw i32 %377, %265
  %wide.trip.count1117 = zext i32 %378 to i64
  br label %.lr.ph1037

.lr.ph1037:                                       ; preds = %.lr.ph1037.preheader, %.lr.ph1037
  %indvars.iv1115 = phi i64 [ %375, %.lr.ph1037.preheader ], [ %indvars.iv.next1116, %.lr.ph1037 ]
  %.08801035 = phi <2 x i64> [ %365, %.lr.ph1037.preheader ], [ %385, %.lr.ph1037 ]
  %.08831034 = phi <2 x i64> [ %367, %.lr.ph1037.preheader ], [ %407, %.lr.ph1037 ]
  %.08861033 = phi <2 x i64> [ %369, %.lr.ph1037.preheader ], [ %393, %.lr.ph1037 ]
  %379 = getelementptr inbounds <2 x i64>, ptr %101, i64 %indvars.iv1115
  %380 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %379)
  %381 = getelementptr inbounds <2 x i64>, ptr %96, i64 %indvars.iv1115
  %382 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %381)
  %383 = bitcast <2 x i64> %382 to <16 x i8>
  %384 = shufflevector <16 x i8> %383, <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>
  %385 = bitcast <16 x i8> %384 to <2 x i64>
  %386 = 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> %383, <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>
  %387 = bitcast <16 x i8> %386 to <2 x i64>
  %388 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %387, <2 x i64> noundef %.08801035)
  %389 = getelementptr inbounds <2 x i64>, ptr %95, i64 %indvars.iv1115
  %390 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %389)
  %391 = bitcast <2 x i64> %390 to <16 x i8>
  %392 = shufflevector <16 x i8> %391, <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>
  %393 = bitcast <16 x i8> %392 to <2 x i64>
  %394 = 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> %391, <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>
  %395 = bitcast <16 x i8> %394 to <2 x i64>
  %396 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %395, <2 x i64> noundef %.08861033)
  %397 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %388, <2 x i64> noundef %396)
  %398 = getelementptr inbounds <2 x i64>, ptr %93, i64 %indvars.iv1115
  %399 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %398)
  %400 = getelementptr inbounds <2 x i64>, ptr %97, i64 %indvars.iv1115
  %401 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %400)
  %402 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %401, <2 x i64> noundef %399)
  %403 = getelementptr inbounds <2 x i64>, ptr %98, i64 %indvars.iv1115
  %404 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %403)
  %405 = bitcast <2 x i64> %404 to <16 x i8>
  %406 = shufflevector <16 x i8> %405, <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>
  %407 = bitcast <16 x i8> %406 to <2 x i64>
  %408 = 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> %405, <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>
  %409 = bitcast <16 x i8> %408 to <2 x i64>
  %410 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %409, <2 x i64> noundef %.08831034)
  %411 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %410, <2 x i64> noundef %396)
  %412 = getelementptr inbounds <2 x i64>, ptr %100, i64 %indvars.iv1115
  %413 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %412)
  %414 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %411, <2 x i64> noundef %413)
  %415 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %397, <2 x i64> noundef %380)
  %416 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %415, <2 x i64> noundef %380)
  %417 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %415, <2 x i64> noundef %397)
  %418 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %416, <2 x i64> noundef %417)
  %419 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %402, <2 x i64> noundef %418)
  %420 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %419, <2 x i64> noundef %418)
  %421 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %419, <2 x i64> noundef %402)
  %422 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %420, <2 x i64> noundef %421)
  %423 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %414, <2 x i64> noundef %422)
  %424 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %423, <2 x i64> noundef %422)
  %425 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %423, <2 x i64> noundef %414)
  %426 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %424, <2 x i64> noundef %425)
  %427 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %426, <2 x i64> noundef %396)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %398, <2 x i64> noundef %427)
  %428 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %426, <2 x i64> noundef %399)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %389, <2 x i64> noundef %428)
  %429 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %426, <2 x i64> noundef %30)
  %430 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %397, <2 x i64> noundef %429)
  %431 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %402, <2 x i64> noundef %429)
  %432 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %426, <2 x i64> noundef %31)
  %433 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %411, <2 x i64> noundef %432)
  %434 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %430, <2 x i64> noundef %29)
  %435 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %434, <2 x i64> noundef %430)
  %436 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %435, <2 x i64> noundef %33)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %381, <2 x i64> noundef %436)
  %437 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %431, <2 x i64> noundef %29)
  %438 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %437, <2 x i64> noundef %431)
  %439 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %438, <2 x i64> noundef %33)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %400, <2 x i64> noundef %439)
  %440 = getelementptr inbounds <2 x i64>, ptr %99, i64 %indvars.iv1115
  %441 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %440)
  %442 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %433, <2 x i64> noundef %441)
  %443 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %442, <2 x i64> noundef %442)
  %444 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %442, <2 x i64> noundef %433)
  %445 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %443, <2 x i64> noundef %444)
  %446 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %445, <2 x i64> noundef %31)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %403, <2 x i64> noundef %446)
  %indvars.iv.next1116 = add nuw nsw i64 %indvars.iv1115, 1
  %exitcond1118.not = icmp eq i64 %indvars.iv.next1116, %wide.trip.count1117
  br i1 %exitcond1118.not, label %.loopexit, label %.lr.ph1037, !llvm.loop !35

447:                                              ; preds = %373
  %448 = mul nuw nsw i64 %indvars.iv1139, %249
  %449 = getelementptr inbounds <2 x i64>, ptr %.0866, i64 %448
  %450 = zext nneg i32 %265 to i64
  %451 = sub nsw i64 0, %450
  %452 = getelementptr inbounds <2 x i64>, ptr %449, i64 %451
  %453 = getelementptr inbounds i32, ptr %.0832, i64 %indvars.iv1139
  store i32 %266, ptr %453, align 4, !tbaa !13
  %454 = getelementptr inbounds i32, ptr %.0833, i64 %indvars.iv1139
  store i32 %270, ptr %454, align 4, !tbaa !13
  %.not9261045 = icmp sgt i32 %265, %370
  br i1 %.not925, label %455, label %549

455:                                              ; preds = %447
  br i1 %.not9261045, label %.loopexit, label %.lr.ph1051.preheader

.lr.ph1051.preheader:                             ; preds = %455
  %456 = lshr i32 %spec.select952, 4
  %457 = zext nneg i32 %456 to i64
  %458 = add nsw i32 %370, 1
  %459 = add nsw i32 %458, %456
  %460 = sub nsw i32 %459, %265
  %wide.trip.count1127 = zext i32 %460 to i64
  br label %.lr.ph1051

.lr.ph1051:                                       ; preds = %.lr.ph1051.preheader, %.lr.ph1051
  %indvars.iv1124 = phi i64 [ %457, %.lr.ph1051.preheader ], [ %indvars.iv.next1125, %.lr.ph1051 ]
  %.18811048 = phi <2 x i64> [ %365, %.lr.ph1051.preheader ], [ %467, %.lr.ph1051 ]
  %.18841047 = phi <2 x i64> [ %367, %.lr.ph1051.preheader ], [ %489, %.lr.ph1051 ]
  %.18871046 = phi <2 x i64> [ %369, %.lr.ph1051.preheader ], [ %475, %.lr.ph1051 ]
  %461 = getelementptr inbounds <2 x i64>, ptr %101, i64 %indvars.iv1124
  %462 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %461)
  %463 = getelementptr inbounds <2 x i64>, ptr %96, i64 %indvars.iv1124
  %464 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %463)
  %465 = bitcast <2 x i64> %464 to <16 x i8>
  %466 = shufflevector <16 x i8> %465, <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>
  %467 = bitcast <16 x i8> %466 to <2 x i64>
  %468 = 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> %465, <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>
  %469 = bitcast <16 x i8> %468 to <2 x i64>
  %470 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %469, <2 x i64> noundef %.18811048)
  %471 = getelementptr inbounds <2 x i64>, ptr %95, i64 %indvars.iv1124
  %472 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %471)
  %473 = bitcast <2 x i64> %472 to <16 x i8>
  %474 = shufflevector <16 x i8> %473, <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>
  %475 = bitcast <16 x i8> %474 to <2 x i64>
  %476 = 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> %473, <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>
  %477 = bitcast <16 x i8> %476 to <2 x i64>
  %478 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %477, <2 x i64> noundef %.18871046)
  %479 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %470, <2 x i64> noundef %478)
  %480 = getelementptr inbounds <2 x i64>, ptr %93, i64 %indvars.iv1124
  %481 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %480)
  %482 = getelementptr inbounds <2 x i64>, ptr %97, i64 %indvars.iv1124
  %483 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %482)
  %484 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %483, <2 x i64> noundef %481)
  %485 = getelementptr inbounds <2 x i64>, ptr %98, i64 %indvars.iv1124
  %486 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %485)
  %487 = bitcast <2 x i64> %486 to <16 x i8>
  %488 = shufflevector <16 x i8> %487, <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>
  %489 = bitcast <16 x i8> %488 to <2 x i64>
  %490 = 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> %487, <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>
  %491 = bitcast <16 x i8> %490 to <2 x i64>
  %492 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %491, <2 x i64> noundef %.18841047)
  %493 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %492, <2 x i64> noundef %478)
  %494 = getelementptr inbounds <2 x i64>, ptr %100, i64 %indvars.iv1124
  %495 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %494)
  %496 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %493, <2 x i64> noundef %495)
  %497 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %479, <2 x i64> noundef %462)
  %498 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 1)
  %499 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %497, <2 x i64> noundef %498)
  %500 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %497, <2 x i64> noundef %462)
  %501 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %497, <2 x i64> noundef %479)
  %502 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %500, <2 x i64> noundef %501)
  %503 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %484, <2 x i64> noundef %502)
  %504 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %503, <2 x i64> noundef %499)
  %505 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 2)
  %506 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %503, <2 x i64> noundef %505)
  %507 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %504, <2 x i64> noundef %506)
  %508 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %503, <2 x i64> noundef %502)
  %509 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %503, <2 x i64> noundef %484)
  %510 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %508, <2 x i64> noundef %509)
  %511 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %496, <2 x i64> noundef %510)
  %512 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %511, <2 x i64> noundef %507)
  %513 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 3)
  %514 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %511, <2 x i64> noundef %513)
  %515 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %512, <2 x i64> noundef %514)
  %516 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %511, <2 x i64> noundef %510)
  %517 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %511, <2 x i64> noundef %496)
  %518 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %516, <2 x i64> noundef %517)
  %519 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %518, <2 x i64> noundef %478)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %480, <2 x i64> noundef %519)
  %520 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %518, <2 x i64> noundef %481)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %471, <2 x i64> noundef %520)
  %521 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %518, <2 x i64> noundef %30)
  %522 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %479, <2 x i64> noundef %521)
  %523 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %484, <2 x i64> noundef %521)
  %524 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %518, <2 x i64> noundef %31)
  %525 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %493, <2 x i64> noundef %524)
  %526 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %522, <2 x i64> noundef %29)
  %527 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %526, <2 x i64> noundef %522)
  %528 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %527, <2 x i64> noundef %33)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %463, <2 x i64> noundef %528)
  %529 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 8)
  %530 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %526, <2 x i64> noundef %529)
  %531 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %515, <2 x i64> noundef %530)
  %532 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %523, <2 x i64> noundef %29)
  %533 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %532, <2 x i64> noundef %523)
  %534 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %533, <2 x i64> noundef %33)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %482, <2 x i64> noundef %534)
  %535 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 16)
  %536 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %532, <2 x i64> noundef %535)
  %537 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %531, <2 x i64> noundef %536)
  %538 = getelementptr inbounds <2 x i64>, ptr %99, i64 %indvars.iv1124
  %539 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %538)
  %540 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %525, <2 x i64> noundef %539)
  %541 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %540, <2 x i64> noundef %539)
  %542 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %540, <2 x i64> noundef %525)
  %543 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %541, <2 x i64> noundef %542)
  %544 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %543, <2 x i64> noundef %31)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %485, <2 x i64> noundef %544)
  %545 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 32)
  %546 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %540, <2 x i64> noundef %545)
  %547 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %537, <2 x i64> noundef %546)
  %548 = getelementptr inbounds <2 x i64>, ptr %452, i64 %indvars.iv1124
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %548, <2 x i64> noundef %547)
  %indvars.iv.next1125 = add nuw nsw i64 %indvars.iv1124, 1
  %exitcond1128.not = icmp eq i64 %indvars.iv.next1125, %wide.trip.count1127
  br i1 %exitcond1128.not, label %.loopexit, label %.lr.ph1051, !llvm.loop !36

549:                                              ; preds = %447
  br i1 %.not9261045, label %.loopexit, label %.lr.ph1044.preheader

.lr.ph1044.preheader:                             ; preds = %549
  %550 = lshr i32 %spec.select952, 4
  %551 = zext nneg i32 %550 to i64
  %552 = add nsw i32 %370, 1
  %553 = add nsw i32 %552, %550
  %554 = sub nsw i32 %553, %265
  %wide.trip.count1122 = zext i32 %554 to i64
  br label %.lr.ph1044

.lr.ph1044:                                       ; preds = %.lr.ph1044.preheader, %.lr.ph1044
  %indvars.iv1119 = phi i64 [ %551, %.lr.ph1044.preheader ], [ %indvars.iv.next1120, %.lr.ph1044 ]
  %.28821041 = phi <2 x i64> [ %365, %.lr.ph1044.preheader ], [ %561, %.lr.ph1044 ]
  %.28851040 = phi <2 x i64> [ %367, %.lr.ph1044.preheader ], [ %583, %.lr.ph1044 ]
  %.28881039 = phi <2 x i64> [ %369, %.lr.ph1044.preheader ], [ %569, %.lr.ph1044 ]
  %555 = getelementptr inbounds <2 x i64>, ptr %101, i64 %indvars.iv1119
  %556 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %555)
  %557 = getelementptr inbounds <2 x i64>, ptr %96, i64 %indvars.iv1119
  %558 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %557)
  %559 = bitcast <2 x i64> %558 to <16 x i8>
  %560 = shufflevector <16 x i8> %559, <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>
  %561 = bitcast <16 x i8> %560 to <2 x i64>
  %562 = 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> %559, <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>
  %563 = bitcast <16 x i8> %562 to <2 x i64>
  %564 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %563, <2 x i64> noundef %.28821041)
  %565 = getelementptr inbounds <2 x i64>, ptr %95, i64 %indvars.iv1119
  %566 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %565)
  %567 = bitcast <2 x i64> %566 to <16 x i8>
  %568 = shufflevector <16 x i8> %567, <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>
  %569 = bitcast <16 x i8> %568 to <2 x i64>
  %570 = 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> %567, <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>
  %571 = bitcast <16 x i8> %570 to <2 x i64>
  %572 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %571, <2 x i64> noundef %.28881039)
  %573 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %564, <2 x i64> noundef %572)
  %574 = getelementptr inbounds <2 x i64>, ptr %93, i64 %indvars.iv1119
  %575 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %574)
  %576 = getelementptr inbounds <2 x i64>, ptr %97, i64 %indvars.iv1119
  %577 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %576)
  %578 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %577, <2 x i64> noundef %575)
  %579 = getelementptr inbounds <2 x i64>, ptr %98, i64 %indvars.iv1119
  %580 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %579)
  %581 = bitcast <2 x i64> %580 to <16 x i8>
  %582 = shufflevector <16 x i8> %581, <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>
  %583 = bitcast <16 x i8> %582 to <2 x i64>
  %584 = 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> %581, <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>
  %585 = bitcast <16 x i8> %584 to <2 x i64>
  %586 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %585, <2 x i64> noundef %.28851040)
  %587 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %586, <2 x i64> noundef %572)
  %588 = getelementptr inbounds <2 x i64>, ptr %100, i64 %indvars.iv1119
  %589 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %588)
  %590 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %587, <2 x i64> noundef %589)
  %591 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %556, <2 x i64> noundef %573)
  %592 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 1)
  %593 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %591, <2 x i64> noundef %592)
  %594 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %591, <2 x i64> noundef %556)
  %595 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %591, <2 x i64> noundef %573)
  %596 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %594, <2 x i64> noundef %595)
  %597 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %596, <2 x i64> noundef %578)
  %598 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %597, <2 x i64> noundef %593)
  %599 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 2)
  %600 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %597, <2 x i64> noundef %599)
  %601 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %598, <2 x i64> noundef %600)
  %602 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %597, <2 x i64> noundef %596)
  %603 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %597, <2 x i64> noundef %578)
  %604 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %602, <2 x i64> noundef %603)
  %605 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %604, <2 x i64> noundef %590)
  %606 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %605, <2 x i64> noundef %601)
  %607 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 3)
  %608 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %605, <2 x i64> noundef %607)
  %609 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %606, <2 x i64> noundef %608)
  %610 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %605, <2 x i64> noundef %604)
  %611 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %605, <2 x i64> noundef %590)
  %612 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %610, <2 x i64> noundef %611)
  %613 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %612, <2 x i64> noundef %572)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %574, <2 x i64> noundef %613)
  %614 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %612, <2 x i64> noundef %575)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %565, <2 x i64> noundef %614)
  %615 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %612, <2 x i64> noundef %30)
  %616 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %573, <2 x i64> noundef %615)
  %617 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %578, <2 x i64> noundef %615)
  %618 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %612, <2 x i64> noundef %31)
  %619 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %587, <2 x i64> noundef %618)
  %620 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %29, <2 x i64> noundef %616)
  %621 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %620, <2 x i64> noundef %616)
  %622 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %621, <2 x i64> noundef %33)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %557, <2 x i64> noundef %622)
  %623 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 8)
  %624 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %620, <2 x i64> noundef %623)
  %625 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %609, <2 x i64> noundef %624)
  %626 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %29, <2 x i64> noundef %617)
  %627 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %626, <2 x i64> noundef %617)
  %628 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %627, <2 x i64> noundef %33)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %576, <2 x i64> noundef %628)
  %629 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 16)
  %630 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %626, <2 x i64> noundef %629)
  %631 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %625, <2 x i64> noundef %630)
  %632 = getelementptr inbounds <2 x i64>, ptr %99, i64 %indvars.iv1119
  %633 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %632)
  %634 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %633, <2 x i64> noundef %619)
  %635 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %634, <2 x i64> noundef %619)
  %636 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %634, <2 x i64> noundef %633)
  %637 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %635, <2 x i64> noundef %636)
  %638 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %637, <2 x i64> noundef %31)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %579, <2 x i64> noundef %638)
  %639 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 32)
  %640 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %634, <2 x i64> noundef %639)
  %641 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %631, <2 x i64> noundef %640)
  %642 = getelementptr inbounds <2 x i64>, ptr %452, i64 %indvars.iv1119
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %642, <2 x i64> noundef %641)
  %indvars.iv.next1120 = add nuw nsw i64 %indvars.iv1119, 1
  %exitcond1123.not = icmp eq i64 %indvars.iv.next1120, %wide.trip.count1122
  br i1 %exitcond1123.not, label %.loopexit, label %.lr.ph1044, !llvm.loop !37

.loopexit:                                        ; preds = %.lr.ph1037, %.lr.ph1044, %.lr.ph1051, %.preheader999, %549, %455
  %.not928 = icmp eq i64 %indvars.iv1139, 0
  br i1 %.not913, label %643, label %757

643:                                              ; preds = %.loopexit
  br i1 %.not928, label %728, label %644

644:                                              ; preds = %643
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #12
  %645 = sub nsw i32 %smin, %spec.select952
  %646 = sdiv i32 %645, 4
  %647 = shl nsw i32 %646, 2
  %648 = add nsw i32 %647, %spec.select952
  br i1 %237, label %649, label %659

649:                                              ; preds = %644
  %650 = add nsw i32 %smin, -1
  %651 = zext nneg i32 %650 to i64
  %652 = getelementptr inbounds i32, ptr %.0854, i64 %651
  %653 = load i32, ptr %652, align 4, !tbaa !13
  %654 = zext nneg i32 %smin to i64
  %655 = getelementptr inbounds i8, ptr %93, i64 %654
  %656 = load i8, ptr %655, align 1, !tbaa !5
  %657 = sext i8 %656 to i32
  %658 = add nsw i32 %653, %657
  %.pre = sext i32 %smin to i64
  br label %667

659:                                              ; preds = %644
  %660 = sext i32 %smin to i64
  %661 = getelementptr inbounds i32, ptr %.0854, i64 %660
  %662 = load i32, ptr %661, align 4, !tbaa !13
  %663 = getelementptr inbounds i8, ptr %95, i64 %660
  %664 = load i8, ptr %663, align 1, !tbaa !5
  %665 = sext i8 %664 to i32
  %666 = add nsw i32 %662, %665
  br label %667

667:                                              ; preds = %659, %649
  %.pre-phi = phi i64 [ %660, %659 ], [ %.pre, %649 ]
  %668 = phi i32 [ %666, %659 ], [ %658, %649 ]
  %669 = getelementptr inbounds i32, ptr %.0854, i64 %.pre-phi
  store i32 %668, ptr %669, align 4, !tbaa !13
  %670 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %668)
  %671 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %smin)
  %672 = icmp sgt i32 %645, 3
  br i1 %672, label %.lr.ph1056.preheader, label %._crit_edge1057

.lr.ph1056.preheader:                             ; preds = %667
  %673 = sext i32 %spec.select952 to i64
  %674 = sext i32 %648 to i64
  br label %.lr.ph1056

.lr.ph1056:                                       ; preds = %.lr.ph1056.preheader, %.lr.ph1056
  %indvars.iv1129 = phi i64 [ %673, %.lr.ph1056.preheader ], [ %indvars.iv.next1130, %.lr.ph1056 ]
  %.08381053 = phi <2 x i64> [ %671, %.lr.ph1056.preheader ], [ %699, %.lr.ph1056 ]
  %.08391052 = phi <2 x i64> [ %670, %.lr.ph1056.preheader ], [ %696, %.lr.ph1056 ]
  %675 = getelementptr inbounds i32, ptr %.0854, i64 %indvars.iv1129
  %676 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %675)
  %677 = getelementptr inbounds i8, ptr %95, i64 %indvars.iv1129
  %678 = load i8, ptr %677, align 1, !tbaa !5
  %679 = sext i8 %678 to i32
  %680 = getelementptr i8, ptr %677, i64 1
  %681 = load i8, ptr %680, align 1, !tbaa !5
  %682 = sext i8 %681 to i32
  %683 = getelementptr i8, ptr %677, i64 2
  %684 = load i8, ptr %683, align 1, !tbaa !5
  %685 = sext i8 %684 to i32
  %686 = getelementptr i8, ptr %677, i64 3
  %687 = load i8, ptr %686, align 1, !tbaa !5
  %688 = sext i8 %687 to i32
  %689 = call noundef <2 x i64> @_ZL14_mm_setr_epi32iiii(i32 noundef %679, i32 noundef %682, i32 noundef %685, i32 noundef %688)
  %690 = call noundef <2 x i64> @_ZL13_mm_add_epi32Dv2_xS_(<2 x i64> noundef %676, <2 x i64> noundef %689)
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %675, <2 x i64> noundef %690)
  %691 = trunc nsw i64 %indvars.iv1129 to i32
  %692 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %691)
  %693 = call noundef <2 x i64> @_ZL15_mm_cmpgt_epi32Dv2_xS_(<2 x i64> noundef %690, <2 x i64> noundef %.08391052)
  %694 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %693, <2 x i64> noundef %690)
  %695 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %693, <2 x i64> noundef %.08391052)
  %696 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %694, <2 x i64> noundef %695)
  %697 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %693, <2 x i64> noundef %692)
  %698 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %693, <2 x i64> noundef %.08381053)
  %699 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %697, <2 x i64> noundef %698)
  %indvars.iv.next1130 = add nsw i64 %indvars.iv1129, 4
  %700 = icmp slt i64 %indvars.iv.next1130, %674
  br i1 %700, label %.lr.ph1056, label %._crit_edge1057.loopexit, !llvm.loop !38

._crit_edge1057.loopexit:                         ; preds = %.lr.ph1056
  %701 = trunc nsw i64 %indvars.iv.next1130 to i32
  br label %._crit_edge1057

._crit_edge1057:                                  ; preds = %._crit_edge1057.loopexit, %667
  %.0839.lcssa = phi <2 x i64> [ %670, %667 ], [ %696, %._crit_edge1057.loopexit ]
  %.0838.lcssa = phi <2 x i64> [ %671, %667 ], [ %699, %._crit_edge1057.loopexit ]
  %.10.lcssa = phi i32 [ %spec.select952, %667 ], [ %701, %._crit_edge1057.loopexit ]
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef nonnull %15, <2 x i64> noundef %.0839.lcssa)
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef nonnull %16, <2 x i64> noundef %.0838.lcssa)
  %702 = load i32, ptr %15, align 16, !tbaa !13
  %703 = icmp slt i32 %668, %702
  %704 = load i32, ptr %16, align 16
  %spec.select1152 = call i32 @llvm.smax.i32(i32 %668, i32 %702)
  %spec.select1153 = select i1 %703, i32 %704, i32 %smin
  %705 = load i32, ptr %251, align 4, !tbaa !13
  %706 = icmp slt i32 %spec.select1152, %705
  %707 = load i32, ptr %252, align 4
  %708 = add nsw i32 %707, 1
  %.1848.1 = call i32 @llvm.smax.i32(i32 %spec.select1152, i32 %705)
  %.1843.1 = select i1 %706, i32 %708, i32 %spec.select1153
  %709 = load i32, ptr %253, align 8, !tbaa !13
  %710 = icmp slt i32 %.1848.1, %709
  %711 = load i32, ptr %254, align 8
  %712 = add nsw i32 %711, 2
  %.1848.2 = call i32 @llvm.smax.i32(i32 %.1848.1, i32 %709)
  %.1843.2 = select i1 %710, i32 %712, i32 %.1843.1
  %713 = load i32, ptr %255, align 4, !tbaa !13
  %714 = icmp slt i32 %.1848.2, %713
  %715 = load i32, ptr %256, align 4
  %716 = add nsw i32 %715, 3
  %.1848.3 = call i32 @llvm.smax.i32(i32 %.1848.2, i32 %713)
  %.1843.3 = select i1 %714, i32 %716, i32 %.1843.2
  %717 = icmp slt i32 %.10.lcssa, %smin
  br i1 %717, label %.lr.ph1067.preheader, label %._crit_edge1068

.lr.ph1067.preheader:                             ; preds = %._crit_edge1057
  %718 = sext i32 %.10.lcssa to i64
  br label %.lr.ph1067

.lr.ph1067:                                       ; preds = %.lr.ph1067.preheader, %.lr.ph1067
  %indvars.iv1136 = phi i64 [ %718, %.lr.ph1067.preheader ], [ %indvars.iv.next1137, %.lr.ph1067 ]
  %.28441065 = phi i32 [ %.1843.3, %.lr.ph1067.preheader ], [ %spec.select955, %.lr.ph1067 ]
  %.28491064 = phi i32 [ %.1848.3, %.lr.ph1067.preheader ], [ %spec.select954, %.lr.ph1067 ]
  %719 = getelementptr inbounds i8, ptr %95, i64 %indvars.iv1136
  %720 = load i8, ptr %719, align 1, !tbaa !5
  %721 = sext i8 %720 to i32
  %722 = getelementptr inbounds i32, ptr %.0854, i64 %indvars.iv1136
  %723 = load i32, ptr %722, align 4, !tbaa !13
  %724 = add nsw i32 %723, %721
  store i32 %724, ptr %722, align 4, !tbaa !13
  %725 = icmp sgt i32 %724, %.28491064
  %spec.select954 = call i32 @llvm.smax.i32(i32 %724, i32 %.28491064)
  %726 = trunc nsw i64 %indvars.iv1136 to i32
  %spec.select955 = select i1 %725, i32 %726, i32 %.28441065
  %indvars.iv.next1137 = add nsw i64 %indvars.iv1136, 1
  %727 = icmp slt i64 %indvars.iv.next1137, %.pre-phi
  br i1 %727, label %.lr.ph1067, label %._crit_edge1068, !llvm.loop !39

._crit_edge1068:                                  ; preds = %.lr.ph1067, %._crit_edge1057
  %.2849.lcssa = phi i32 [ %.1848.3, %._crit_edge1057 ], [ %spec.select954, %.lr.ph1067 ]
  %.2844.lcssa = phi i32 [ %.1843.3, %._crit_edge1057 ], [ %spec.select955, %.lr.ph1067 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #12
  br label %732

728:                                              ; preds = %643
  %729 = load i8, ptr %95, align 16, !tbaa !5
  %730 = sext i8 %729 to i32
  %731 = sub nsw i32 %730, %19
  store i32 %731, ptr %.0854, align 4, !tbaa !13
  br label %732

732:                                              ; preds = %728, %._crit_edge1068
  %.4851 = phi i32 [ %.2849.lcssa, %._crit_edge1068 ], [ %731, %728 ]
  %.4846 = phi i32 [ %.2844.lcssa, %._crit_edge1068 ], [ 0, %728 ]
  %.not997 = icmp slt i64 %indvars.iv1139, %244
  br i1 %.not997, label %741, label %733

733:                                              ; preds = %732
  %734 = zext nneg i32 %smin to i64
  %735 = getelementptr inbounds i32, ptr %.0854, i64 %734
  %736 = load i32, ptr %735, align 4, !tbaa !13
  %737 = load i32, ptr %238, align 4, !tbaa !40
  %738 = icmp sgt i32 %736, %737
  br i1 %738, label %739, label %741

739:                                              ; preds = %733
  store i32 %736, ptr %238, align 4, !tbaa !40
  %740 = sub nsw i32 %indvars1141, %270
  store i32 %740, ptr %239, align 8, !tbaa !43
  br label %741

741:                                              ; preds = %739, %733, %732
  %742 = sub nsw i32 %indvars1141, %spec.select952
  %743 = icmp eq i32 %742, %230
  br i1 %743, label %744, label %751

744:                                              ; preds = %741
  %745 = zext nneg i32 %spec.select952 to i64
  %746 = getelementptr inbounds i32, ptr %.0854, i64 %745
  %747 = load i32, ptr %746, align 4, !tbaa !13
  %748 = load i32, ptr %240, align 4, !tbaa !44
  %749 = icmp sgt i32 %747, %748
  br i1 %749, label %750, label %751

750:                                              ; preds = %744
  store i32 %747, ptr %240, align 4, !tbaa !44
  store i32 %spec.select952, ptr %241, align 8, !tbaa !45
  br label %751

751:                                              ; preds = %750, %744, %741
  %752 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %13, i32 noundef 1, i32 noundef %.4851, i32 noundef %indvars1141, i32 noundef %.4846, i32 noundef %11, i8 noundef signext 0)
  %.not929 = icmp eq i32 %752, 0
  br i1 %.not929, label %753, label %._crit_edge1078

753:                                              ; preds = %751
  %754 = icmp ne i64 %indvars.iv1139, %250
  %brmerge = or i1 %754, %.not997
  br i1 %brmerge, label %792, label %755

755:                                              ; preds = %753
  %756 = load i32, ptr %243, align 4, !tbaa !13
  br label %.sink.split

757:                                              ; preds = %.loopexit
  br i1 %.not928, label %782, label %758

758:                                              ; preds = %757
  %.not931 = icmp slt i32 %.08601071, %spec.select952
  %.not932 = icmp sgt i32 %.08601071, %smin
  %or.cond958 = select i1 %.not931, i1 true, i1 %.not932
  br i1 %or.cond958, label %775, label %759

759:                                              ; preds = %758
  %.not934.not = icmp slt i32 %.08601071, %smin
  br i1 %.not934.not, label %760, label %769

760:                                              ; preds = %759
  %761 = add nuw nsw i32 %.08601071, 1
  %762 = zext nneg i32 %.08601071 to i64
  %763 = getelementptr inbounds i8, ptr %95, i64 %762
  %764 = load i8, ptr %763, align 1, !tbaa !5
  %765 = zext nneg i32 %761 to i64
  %766 = getelementptr inbounds i8, ptr %93, i64 %765
  %767 = load i8, ptr %766, align 1, !tbaa !5
  %768 = icmp sgt i8 %764, %767
  %.0860. = select i1 %768, i32 %.08601071, i32 %761
  %. = call i8 @llvm.smax.i8(i8 %764, i8 %767)
  %.pn = sext i8 %. to i32
  %.1856 = add nsw i32 %.08551072, %.pn
  br label %786

769:                                              ; preds = %759
  %770 = zext nneg i32 %.08601071 to i64
  %771 = getelementptr inbounds i8, ptr %95, i64 %770
  %772 = load i8, ptr %771, align 1, !tbaa !5
  %773 = sext i8 %772 to i32
  %774 = add nsw i32 %.08551072, %773
  br label %786

775:                                              ; preds = %758
  %776 = add nsw i32 %.08601071, 1
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds i8, ptr %93, i64 %777
  %779 = load i8, ptr %778, align 1, !tbaa !5
  %780 = sext i8 %779 to i32
  %781 = add nsw i32 %.08551072, %780
  br label %786

782:                                              ; preds = %757
  %783 = load i8, ptr %95, align 16, !tbaa !5
  %784 = sext i8 %783 to i32
  %785 = sub nsw i32 %784, %19
  br label %786

786:                                              ; preds = %760, %775, %769, %782
  %.2862 = phi i32 [ %.0860., %760 ], [ %.08601071, %769 ], [ %776, %775 ], [ 0, %782 ]
  %.2857 = phi i32 [ %.1856, %760 ], [ %774, %769 ], [ %781, %775 ], [ %785, %782 ]
  br i1 %.not936, label %789, label %787

787:                                              ; preds = %786
  %788 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %13, i32 noundef 1, i32 noundef %.2857, i32 noundef %indvars1141, i32 noundef %.2862, i32 noundef %11, i8 noundef signext 0)
  %.not937 = icmp eq i32 %788, 0
  br i1 %.not937, label %789, label %.sink.split1154

789:                                              ; preds = %787, %786
  %790 = icmp eq i64 %indvars.iv1139, %250
  %791 = icmp sge i64 %indvars.iv1139, %244
  %or.cond961 = select i1 %790, i1 %791, i1 false
  br i1 %or.cond961, label %.sink.split, label %792

.sink.split:                                      ; preds = %789, %755
  %.2857.sink = phi i32 [ %756, %755 ], [ %.2857, %789 ]
  %.4864.ph.ph = phi i32 [ %.08601071, %755 ], [ %.2862, %789 ]
  %.4859.ph.ph = phi i32 [ %.08551072, %755 ], [ %.2857, %789 ]
  store i32 %.2857.sink, ptr %236, align 4, !tbaa !46
  br label %792

792:                                              ; preds = %.sink.split, %789, %753
  %.4864.ph = phi i32 [ %.08601071, %753 ], [ %.2862, %789 ], [ %.4864.ph.ph, %.sink.split ]
  %.4859.ph = phi i32 [ %.08551072, %753 ], [ %.2857, %789 ], [ %.4859.ph.ph, %.sink.split ]
  %indvars.iv.next1140 = add nuw nsw i64 %indvars.iv1139, 1
  %exitcond1144.not = icmp eq i64 %indvars.iv.next1140, %wide.trip.count1143
  br i1 %exitcond1144.not, label %._crit_edge1078, label %257, !llvm.loop !47

._crit_edge1078:                                  ; preds = %792, %751, %.loopexit1005
  call void @seq_free(ptr noundef %89)
  br i1 %.not913, label %.sink.split1154, label %793

.sink.split1154:                                  ; preds = %787, %._crit_edge1078
  %.sink1155 = phi ptr [ %.0854, %._crit_edge1078 ], [ %89, %787 ]
  call void @seq_free(ptr noundef %.sink1155)
  br label %793

793:                                              ; preds = %.sink.split1154, %._crit_edge1078
  br i1 %.not, label %794, label %819

794:                                              ; preds = %793
  %795 = lshr i32 %12, 7
  %.lobit = and i32 %795, 1
  %796 = load i32, ptr %13, align 8
  %.not938 = icmp sgt i32 %796, -1
  %797 = and i32 %12, 64
  %.not939 = icmp eq i32 %797, 0
  %or.cond962 = and i1 %.not939, %.not938
  br i1 %or.cond962, label %798, label %805

798:                                              ; preds = %794
  %799 = shl nuw nsw i32 %54, 4
  %800 = add nsw i32 %3, -1
  %801 = add nsw i32 %1, -1
  %802 = getelementptr inbounds i8, ptr %13, i64 32
  %803 = getelementptr inbounds i8, ptr %13, i64 36
  %804 = getelementptr inbounds i8, ptr %13, i64 48
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %0, i32 noundef 1, i32 noundef %.lobit, i32 noundef %spec.select, ptr noundef %.0866, ptr noundef %.0832, ptr noundef %.0833, i32 noundef %799, i32 noundef %800, i32 noundef %801, ptr noundef nonnull %802, ptr noundef nonnull %803, ptr noundef nonnull %804)
  br label %818

805:                                              ; preds = %794
  %806 = getelementptr inbounds i8, ptr %13, i64 8
  %807 = load i32, ptr %806, align 8, !tbaa !48
  %808 = icmp sgt i32 %807, -1
  br i1 %808, label %809, label %818

809:                                              ; preds = %805
  %810 = getelementptr inbounds i8, ptr %13, i64 4
  %811 = load i32, ptr %810, align 4, !tbaa !49
  %812 = icmp sgt i32 %811, -1
  br i1 %812, label %813, label %818

813:                                              ; preds = %809
  %814 = shl nuw nsw i32 %54, 4
  %815 = getelementptr inbounds i8, ptr %13, i64 32
  %816 = getelementptr inbounds i8, ptr %13, i64 36
  %817 = getelementptr inbounds i8, ptr %13, i64 48
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %0, i32 noundef 1, i32 noundef %.lobit, i32 noundef %spec.select, ptr noundef %.0866, ptr noundef %.0832, ptr noundef %.0833, i32 noundef %814, i32 noundef %807, i32 noundef %811, ptr noundef nonnull %815, ptr noundef nonnull %816, ptr noundef nonnull %817)
  br label %818

818:                                              ; preds = %805, %809, %813, %798
  call void @seq_free(ptr noundef %.0865)
  call void @seq_free(ptr noundef %.0832)
  br label %819

819:                                              ; preds = %793, %818, %._crit_edge, %14, %26
  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: 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> @_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: 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 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.smin.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 i32 @llvm.smax.i32(i32, i32) #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

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 = distinct !{!38, !9}
!39 = distinct !{!39, !9}
!40 = !{!41, !14, i64 20}
!41 = !{!"_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, !42, i64 48}
!42 = !{!"any pointer", !6, i64 0}
!43 = !{!41, !14, i64 24}
!44 = !{!41, !14, i64 12}
!45 = !{!41, !14, i64 16}
!46 = !{!41, !14, i64 28}
!47 = distinct !{!47, !9}
!48 = !{!41, !14, i64 8}
!49 = !{!41, !14, i64 4}


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