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

; Function Attrs: mustprogress uwtable
define dso_local void @ksw_extz2_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, i32 noundef %9, i32 noundef %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 i32, align 4
  %25 = alloca i32, align 4
  %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 <2 x i64>, align 16
  %61 = alloca <2 x i64>, align 16
  %62 = alloca <2 x i64>, align 16
  %63 = alloca <2 x i64>, align 16
  %64 = alloca 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 ptr, align 8
  %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 i8, align 1
  %78 = alloca i8, align 1
  %79 = alloca ptr, align 8
  %80 = alloca ptr, align 8
  %81 = alloca ptr, align 8
  %82 = alloca <2 x i64>, align 16
  %83 = alloca <2 x i64>, align 16
  %84 = alloca <2 x i64>, align 16
  %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 ptr, align 8
  %96 = alloca <2 x i64>, align 16
  %97 = alloca <2 x i64>, align 16
  %98 = alloca <2 x i64>, align 16
  %99 = alloca <2 x i64>, align 16
  %100 = alloca <2 x i64>, align 16
  %101 = alloca <2 x i64>, align 16
  %102 = alloca <2 x i64>, align 16
  %103 = alloca <2 x i64>, align 16
  %104 = alloca ptr, align 8
  %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 i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca [4 x i32], align 16
  %116 = alloca [4 x i32], align 16
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %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 i32, align 4
  %126 = alloca i32, align 4
  %127 = 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 i32 %9, ptr %24, align 4, !tbaa !9
  store i32 %10, ptr %25, align 4, !tbaa !9
  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) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %128 = load i8, ptr %22, align 1, !tbaa !11
  %129 = sext i8 %128 to i32
  %130 = load i8, ptr %23, align 1, !tbaa !11
  %131 = sext i8 %130 to i32
  %132 = add nsw i32 %129, %131
  store i32 %132, ptr %31, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  store ptr null, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  store ptr null, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %133 = load i32, ptr %27, align 4, !tbaa !9
  %134 = and i32 %133, 1
  %135 = icmp ne i32 %134, 0
  %136 = xor i1 %135, true
  %137 = zext i1 %136 to i32
  store i32 %137, ptr %43, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %138 = load i32, ptr %27, align 4, !tbaa !9
  %139 = and i32 %138, 8
  %140 = icmp ne i32 %139, 0
  %141 = xor i1 %140, true
  %142 = xor i1 %141, true
  %143 = zext i1 %142 to i32
  store i32 %143, ptr %44, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  store ptr null, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  store i32 0, ptr %46, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  store i32 0, ptr %47, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  store ptr null, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %53) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %56) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #9
  store ptr null, ptr %69, align 8, !tbaa !5
  %144 = load ptr, ptr %28, align 8, !tbaa !5
  call void @_ZL14ksw_reset_extzP10ksw_extz_t(ptr noundef %144)
  %145 = load i8, ptr %20, align 1, !tbaa !11
  %146 = sext i8 %145 to i32
  %147 = icmp sle i32 %146, 0
  br i1 %147, label %154, label %148

148:                                              ; preds = %14
  %149 = load i32, ptr %16, align 4, !tbaa !9
  %150 = icmp sle i32 %149, 0
  br i1 %150, label %154, label %151

151:                                              ; preds = %148
  %152 = load i32, ptr %18, align 4, !tbaa !9
  %153 = icmp sle i32 %152, 0
  br i1 %153, label %154, label %155

154:                                              ; preds = %151, %148, %14
  store i32 1, ptr %70, align 4
  br label %1755

155:                                              ; preds = %151
  %156 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 0)
  store <2 x i64> %156, ptr %54, align 16, !tbaa !11
  %157 = load i8, ptr %22, align 1, !tbaa !11
  %158 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %157)
  store <2 x i64> %158, ptr %52, align 16, !tbaa !11
  %159 = load i8, ptr %22, align 1, !tbaa !11
  %160 = sext i8 %159 to i32
  %161 = load i8, ptr %23, align 1, !tbaa !11
  %162 = sext i8 %161 to i32
  %163 = add nsw i32 %160, %162
  %164 = mul nsw i32 %163, 2
  %165 = trunc i32 %164 to i8
  %166 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %165)
  store <2 x i64> %166, ptr %53, align 16, !tbaa !11
  %167 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 1)
  store <2 x i64> %167, ptr %55, align 16, !tbaa !11
  %168 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 2)
  store <2 x i64> %168, ptr %56, align 16, !tbaa !11
  %169 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 8)
  store <2 x i64> %169, ptr %57, align 16, !tbaa !11
  %170 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext 16)
  store <2 x i64> %170, ptr %58, align 16, !tbaa !11
  %171 = load ptr, ptr %21, align 8, !tbaa !5
  %172 = getelementptr inbounds i8, ptr %171, i64 0
  %173 = load i8, ptr %172, align 1, !tbaa !11
  %174 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %173)
  store <2 x i64> %174, ptr %59, align 16, !tbaa !11
  %175 = load ptr, ptr %21, align 8, !tbaa !5
  %176 = getelementptr inbounds i8, ptr %175, i64 1
  %177 = load i8, ptr %176, align 1, !tbaa !11
  %178 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %177)
  store <2 x i64> %178, ptr %60, align 16, !tbaa !11
  %179 = load ptr, ptr %21, align 8, !tbaa !5
  %180 = load i8, ptr %20, align 1, !tbaa !11
  %181 = sext i8 %180 to i32
  %182 = load i8, ptr %20, align 1, !tbaa !11
  %183 = sext i8 %182 to i32
  %184 = mul nsw i32 %181, %183
  %185 = sub nsw i32 %184, 1
  %186 = sext i32 %185 to i64
  %187 = getelementptr inbounds i8, ptr %179, i64 %186
  %188 = load i8, ptr %187, align 1, !tbaa !11
  %189 = sext i8 %188 to i32
  %190 = icmp eq i32 %189, 0
  br i1 %190, label %191, label %197

191:                                              ; preds = %155
  %192 = load i8, ptr %23, align 1, !tbaa !11
  %193 = sext i8 %192 to i32
  %194 = sub nsw i32 0, %193
  %195 = trunc i32 %194 to i8
  %196 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %195)
  br label %209

197:                                              ; preds = %155
  %198 = load ptr, ptr %21, align 8, !tbaa !5
  %199 = load i8, ptr %20, align 1, !tbaa !11
  %200 = sext i8 %199 to i32
  %201 = load i8, ptr %20, align 1, !tbaa !11
  %202 = sext i8 %201 to i32
  %203 = mul nsw i32 %200, %202
  %204 = sub nsw i32 %203, 1
  %205 = sext i32 %204 to i64
  %206 = getelementptr inbounds i8, ptr %198, i64 %205
  %207 = load i8, ptr %206, align 1, !tbaa !11
  %208 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %207)
  br label %209

209:                                              ; preds = %197, %191
  %210 = phi <2 x i64> [ %196, %191 ], [ %208, %197 ]
  store <2 x i64> %210, ptr %61, align 16, !tbaa !11
  %211 = load i8, ptr %20, align 1, !tbaa !11
  %212 = sext i8 %211 to i32
  %213 = sub nsw i32 %212, 1
  %214 = trunc i32 %213 to i8
  %215 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %214)
  store <2 x i64> %215, ptr %62, align 16, !tbaa !11
  %216 = load ptr, ptr %21, align 8, !tbaa !5
  %217 = getelementptr inbounds i8, ptr %216, i64 0
  %218 = load i8, ptr %217, align 1, !tbaa !11
  %219 = sext i8 %218 to i32
  %220 = load i8, ptr %22, align 1, !tbaa !11
  %221 = sext i8 %220 to i32
  %222 = load i8, ptr %23, align 1, !tbaa !11
  %223 = sext i8 %222 to i32
  %224 = add nsw i32 %221, %223
  %225 = mul nsw i32 %224, 2
  %226 = add nsw i32 %219, %225
  %227 = trunc i32 %226 to i8
  %228 = call noundef <2 x i64> @_ZL13_mm_set1_epi8c(i8 noundef signext %227)
  store <2 x i64> %228, ptr %63, align 16, !tbaa !11
  %229 = load i32, ptr %24, align 4, !tbaa !9
  %230 = icmp slt i32 %229, 0
  br i1 %230, label %231, label %241

231:                                              ; preds = %209
  %232 = load i32, ptr %18, align 4, !tbaa !9
  %233 = load i32, ptr %16, align 4, !tbaa !9
  %234 = icmp sgt i32 %232, %233
  br i1 %234, label %235, label %237

235:                                              ; preds = %231
  %236 = load i32, ptr %18, align 4, !tbaa !9
  br label %239

237:                                              ; preds = %231
  %238 = load i32, ptr %16, align 4, !tbaa !9
  br label %239

239:                                              ; preds = %237, %235
  %240 = phi i32 [ %236, %235 ], [ %238, %237 ]
  store i32 %240, ptr %24, align 4, !tbaa !9
  br label %241

241:                                              ; preds = %239, %209
  %242 = load i32, ptr %24, align 4, !tbaa !9
  store i32 %242, ptr %40, align 4, !tbaa !9
  store i32 %242, ptr %39, align 4, !tbaa !9
  %243 = load i32, ptr %18, align 4, !tbaa !9
  %244 = add nsw i32 %243, 15
  %245 = sdiv i32 %244, 16
  store i32 %245, ptr %35, align 4, !tbaa !9
  %246 = load i32, ptr %16, align 4, !tbaa !9
  %247 = load i32, ptr %18, align 4, !tbaa !9
  %248 = icmp slt i32 %246, %247
  br i1 %248, label %249, label %251

249:                                              ; preds = %241
  %250 = load i32, ptr %16, align 4, !tbaa !9
  br label %253

251:                                              ; preds = %241
  %252 = load i32, ptr %18, align 4, !tbaa !9
  br label %253

253:                                              ; preds = %251, %249
  %254 = phi i32 [ %250, %249 ], [ %252, %251 ]
  store i32 %254, ptr %32, align 4, !tbaa !9
  %255 = load i32, ptr %32, align 4, !tbaa !9
  %256 = load i32, ptr %24, align 4, !tbaa !9
  %257 = add nsw i32 %256, 1
  %258 = icmp slt i32 %255, %257
  br i1 %258, label %259, label %261

259:                                              ; preds = %253
  %260 = load i32, ptr %32, align 4, !tbaa !9
  br label %264

261:                                              ; preds = %253
  %262 = load i32, ptr %24, align 4, !tbaa !9
  %263 = add nsw i32 %262, 1
  br label %264

264:                                              ; preds = %261, %259
  %265 = phi i32 [ %260, %259 ], [ %263, %261 ]
  %266 = add nsw i32 %265, 15
  %267 = sdiv i32 %266, 16
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr %32, align 4, !tbaa !9
  %269 = load i32, ptr %16, align 4, !tbaa !9
  %270 = add nsw i32 %269, 15
  %271 = sdiv i32 %270, 16
  store i32 %271, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  %272 = load ptr, ptr %21, align 8, !tbaa !5
  %273 = getelementptr inbounds i8, ptr %272, i64 0
  %274 = load i8, ptr %273, align 1, !tbaa !11
  %275 = sext i8 %274 to i32
  store i32 %275, ptr %41, align 4, !tbaa !9
  %276 = load ptr, ptr %21, align 8, !tbaa !5
  %277 = getelementptr inbounds i8, ptr %276, i64 1
  %278 = load i8, ptr %277, align 1, !tbaa !11
  %279 = sext i8 %278 to i32
  store i32 %279, ptr %42, align 4, !tbaa !9
  br label %280

280:                                              ; preds = %327, %264
  %281 = load i32, ptr %30, align 4, !tbaa !9
  %282 = load i8, ptr %20, align 1, !tbaa !11
  %283 = sext i8 %282 to i32
  %284 = load i8, ptr %20, align 1, !tbaa !11
  %285 = sext i8 %284 to i32
  %286 = mul nsw i32 %283, %285
  %287 = icmp slt i32 %281, %286
  br i1 %287, label %288, label %330

288:                                              ; preds = %280
  %289 = load i32, ptr %41, align 4, !tbaa !9
  %290 = load ptr, ptr %21, align 8, !tbaa !5
  %291 = load i32, ptr %30, align 4, !tbaa !9
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds i8, ptr %290, i64 %292
  %294 = load i8, ptr %293, align 1, !tbaa !11
  %295 = sext i8 %294 to i32
  %296 = icmp sgt i32 %289, %295
  br i1 %296, label %297, label %299

297:                                              ; preds = %288
  %298 = load i32, ptr %41, align 4, !tbaa !9
  br label %306

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

306:                                              ; preds = %299, %297
  %307 = phi i32 [ %298, %297 ], [ %305, %299 ]
  store i32 %307, ptr %41, align 4, !tbaa !9
  %308 = load i32, ptr %42, align 4, !tbaa !9
  %309 = load ptr, ptr %21, align 8, !tbaa !5
  %310 = load i32, ptr %30, align 4, !tbaa !9
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds i8, ptr %309, i64 %311
  %313 = load i8, ptr %312, align 1, !tbaa !11
  %314 = sext i8 %313 to i32
  %315 = icmp slt i32 %308, %314
  br i1 %315, label %316, label %318

316:                                              ; preds = %306
  %317 = load i32, ptr %42, align 4, !tbaa !9
  br label %325

318:                                              ; preds = %306
  %319 = load ptr, ptr %21, align 8, !tbaa !5
  %320 = load i32, ptr %30, align 4, !tbaa !9
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds i8, ptr %319, i64 %321
  %323 = load i8, ptr %322, align 1, !tbaa !11
  %324 = sext i8 %323 to i32
  br label %325

325:                                              ; preds = %318, %316
  %326 = phi i32 [ %317, %316 ], [ %324, %318 ]
  store i32 %326, ptr %42, align 4, !tbaa !9
  br label %327

327:                                              ; preds = %325
  %328 = load i32, ptr %30, align 4, !tbaa !9
  %329 = add nsw i32 %328, 1
  store i32 %329, ptr %30, align 4, !tbaa !9
  br label %280, !llvm.loop !12

330:                                              ; preds = %280
  %331 = load i32, ptr %42, align 4, !tbaa !9
  %332 = sub nsw i32 0, %331
  %333 = load i8, ptr %22, align 1, !tbaa !11
  %334 = sext i8 %333 to i32
  %335 = load i8, ptr %23, align 1, !tbaa !11
  %336 = sext i8 %335 to i32
  %337 = add nsw i32 %334, %336
  %338 = mul nsw i32 2, %337
  %339 = icmp sgt i32 %332, %338
  br i1 %339, label %340, label %341

340:                                              ; preds = %330
  store i32 1, ptr %70, align 4
  br label %1755

341:                                              ; preds = %330
  %342 = load i32, ptr %35, align 4, !tbaa !9
  %343 = mul nsw i32 %342, 6
  %344 = load i32, ptr %36, align 4, !tbaa !9
  %345 = add nsw i32 %343, %344
  %346 = add nsw i32 %345, 1
  %347 = sext i32 %346 to i64
  %348 = call ptr @seq_calloc_atomic(i64 noundef %347, i64 noundef 16)
  store ptr %348, ptr %50, align 8, !tbaa !5
  %349 = load ptr, ptr %50, align 8, !tbaa !5
  %350 = ptrtoint ptr %349 to i64
  %351 = add i64 %350, 15
  %352 = lshr i64 %351, 4
  %353 = shl i64 %352, 4
  %354 = inttoptr i64 %353 to ptr
  store ptr %354, ptr %64, align 8, !tbaa !5
  %355 = load ptr, ptr %64, align 8, !tbaa !5
  %356 = load i32, ptr %35, align 4, !tbaa !9
  %357 = sext i32 %356 to i64
  %358 = getelementptr inbounds <2 x i64>, ptr %355, i64 %357
  store ptr %358, ptr %65, align 8, !tbaa !5
  %359 = load ptr, ptr %65, align 8, !tbaa !5
  %360 = load i32, ptr %35, align 4, !tbaa !9
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds <2 x i64>, ptr %359, i64 %361
  store ptr %362, ptr %66, align 8, !tbaa !5
  %363 = load ptr, ptr %66, align 8, !tbaa !5
  %364 = load i32, ptr %35, align 4, !tbaa !9
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds <2 x i64>, ptr %363, i64 %365
  store ptr %366, ptr %67, align 8, !tbaa !5
  %367 = load ptr, ptr %67, align 8, !tbaa !5
  %368 = load i32, ptr %35, align 4, !tbaa !9
  %369 = sext i32 %368 to i64
  %370 = getelementptr inbounds <2 x i64>, ptr %367, i64 %369
  store ptr %370, ptr %68, align 8, !tbaa !5
  %371 = load ptr, ptr %68, align 8, !tbaa !5
  %372 = load i32, ptr %35, align 4, !tbaa !9
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds <2 x i64>, ptr %371, i64 %373
  store ptr %374, ptr %49, align 8, !tbaa !5
  %375 = load ptr, ptr %49, align 8, !tbaa !5
  %376 = load i32, ptr %35, align 4, !tbaa !9
  %377 = mul nsw i32 %376, 16
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds i8, ptr %375, i64 %378
  store ptr %379, ptr %48, align 8, !tbaa !5
  %380 = load i32, ptr %44, align 4, !tbaa !9
  %381 = icmp ne i32 %380, 0
  br i1 %381, label %402, label %382

382:                                              ; preds = %341
  %383 = load i32, ptr %35, align 4, !tbaa !9
  %384 = mul nsw i32 %383, 16
  %385 = mul nsw i32 %384, 4
  %386 = sext i32 %385 to i64
  %387 = call ptr @seq_alloc_atomic(i64 noundef %386)
  store ptr %387, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %30, align 4, !tbaa !9
  br label %388

388:                                              ; preds = %398, %382
  %389 = load i32, ptr %30, align 4, !tbaa !9
  %390 = load i32, ptr %35, align 4, !tbaa !9
  %391 = mul nsw i32 %390, 16
  %392 = icmp slt i32 %389, %391
  br i1 %392, label %393, label %401

393:                                              ; preds = %388
  %394 = load ptr, ptr %45, align 8, !tbaa !5
  %395 = load i32, ptr %30, align 4, !tbaa !9
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds i32, ptr %394, i64 %396
  store i32 -1073741824, ptr %397, align 4, !tbaa !9
  br label %398

398:                                              ; preds = %393
  %399 = load i32, ptr %30, align 4, !tbaa !9
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr %30, align 4, !tbaa !9
  br label %388, !llvm.loop !14

401:                                              ; preds = %388
  br label %402

402:                                              ; preds = %401, %341
  %403 = load i32, ptr %43, align 4, !tbaa !9
  %404 = icmp ne i32 %403, 0
  br i1 %404, label %405, label %439

405:                                              ; preds = %402
  %406 = load i32, ptr %16, align 4, !tbaa !9
  %407 = load i32, ptr %18, align 4, !tbaa !9
  %408 = add nsw i32 %406, %407
  %409 = sub nsw i32 %408, 1
  %410 = sext i32 %409 to i64
  %411 = load i32, ptr %32, align 4, !tbaa !9
  %412 = sext i32 %411 to i64
  %413 = mul i64 %410, %412
  %414 = add i64 %413, 1
  %415 = mul i64 %414, 16
  %416 = call ptr @seq_alloc_atomic(i64 noundef %415)
  store ptr %416, ptr %51, align 8, !tbaa !5
  %417 = load ptr, ptr %51, align 8, !tbaa !5
  %418 = ptrtoint ptr %417 to i64
  %419 = add i64 %418, 15
  %420 = lshr i64 %419, 4
  %421 = shl i64 %420, 4
  %422 = inttoptr i64 %421 to ptr
  store ptr %422, ptr %69, align 8, !tbaa !5
  %423 = load i32, ptr %16, align 4, !tbaa !9
  %424 = load i32, ptr %18, align 4, !tbaa !9
  %425 = add nsw i32 %423, %424
  %426 = sub nsw i32 %425, 1
  %427 = sext i32 %426 to i64
  %428 = mul i64 %427, 4
  %429 = mul i64 %428, 2
  %430 = call ptr @seq_alloc_atomic(i64 noundef %429)
  store ptr %430, ptr %33, align 8, !tbaa !5
  %431 = load ptr, ptr %33, align 8, !tbaa !5
  %432 = load i32, ptr %16, align 4, !tbaa !9
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds i32, ptr %431, i64 %433
  %435 = load i32, ptr %18, align 4, !tbaa !9
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds i32, ptr %434, i64 %436
  %438 = getelementptr inbounds i32, ptr %437, i64 -1
  store ptr %438, ptr %34, align 8, !tbaa !5
  br label %439

439:                                              ; preds = %405, %402
  store i32 0, ptr %30, align 4, !tbaa !9
  br label %440

440:                                              ; preds = %457, %439
  %441 = load i32, ptr %30, align 4, !tbaa !9
  %442 = load i32, ptr %16, align 4, !tbaa !9
  %443 = icmp slt i32 %441, %442
  br i1 %443, label %444, label %460

444:                                              ; preds = %440
  %445 = load ptr, ptr %17, align 8, !tbaa !5
  %446 = load i32, ptr %16, align 4, !tbaa !9
  %447 = sub nsw i32 %446, 1
  %448 = load i32, ptr %30, align 4, !tbaa !9
  %449 = sub nsw i32 %447, %448
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds i8, ptr %445, i64 %450
  %452 = load i8, ptr %451, align 1, !tbaa !11
  %453 = load ptr, ptr %48, align 8, !tbaa !5
  %454 = load i32, ptr %30, align 4, !tbaa !9
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds i8, ptr %453, i64 %455
  store i8 %452, ptr %456, align 1, !tbaa !11
  br label %457

457:                                              ; preds = %444
  %458 = load i32, ptr %30, align 4, !tbaa !9
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr %30, align 4, !tbaa !9
  br label %440, !llvm.loop !15

460:                                              ; preds = %440
  %461 = load ptr, ptr %49, align 8, !tbaa !5
  %462 = load ptr, ptr %19, align 8, !tbaa !5
  %463 = load i32, ptr %18, align 4, !tbaa !9
  %464 = sext i32 %463 to i64
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %461, ptr align 1 %462, i64 %464, i1 false)
  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 %465

465:                                              ; preds = %1634, %460
  %466 = load i32, ptr %29, align 4, !tbaa !9
  %467 = load i32, ptr %16, align 4, !tbaa !9
  %468 = load i32, ptr %18, align 4, !tbaa !9
  %469 = add nsw i32 %467, %468
  %470 = sub nsw i32 %469, 1
  %471 = icmp slt i32 %466, %470
  br i1 %471, label %472, label %1637

472:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  store i32 0, ptr %71, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %473 = load i32, ptr %18, align 4, !tbaa !9
  %474 = sub nsw i32 %473, 1
  store i32 %474, ptr %72, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  %475 = load ptr, ptr %48, align 8, !tbaa !5
  %476 = load i32, ptr %16, align 4, !tbaa !9
  %477 = sub nsw i32 %476, 1
  %478 = load i32, ptr %29, align 4, !tbaa !9
  %479 = sub nsw i32 %477, %478
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds i8, ptr %475, i64 %480
  store ptr %481, ptr %79, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #9
  %482 = load ptr, ptr %64, align 8, !tbaa !5
  store ptr %482, ptr %80, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  %483 = load ptr, ptr %65, align 8, !tbaa !5
  store ptr %483, ptr %81, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %82) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %83) #9
  %484 = load i32, ptr %71, align 4, !tbaa !9
  %485 = load i32, ptr %29, align 4, !tbaa !9
  %486 = load i32, ptr %16, align 4, !tbaa !9
  %487 = sub nsw i32 %485, %486
  %488 = add nsw i32 %487, 1
  %489 = icmp slt i32 %484, %488
  br i1 %489, label %490, label %495

490:                                              ; preds = %472
  %491 = load i32, ptr %29, align 4, !tbaa !9
  %492 = load i32, ptr %16, align 4, !tbaa !9
  %493 = sub nsw i32 %491, %492
  %494 = add nsw i32 %493, 1
  store i32 %494, ptr %71, align 4, !tbaa !9
  br label %495

495:                                              ; preds = %490, %472
  %496 = load i32, ptr %72, align 4, !tbaa !9
  %497 = load i32, ptr %29, align 4, !tbaa !9
  %498 = icmp sgt i32 %496, %497
  br i1 %498, label %499, label %501

499:                                              ; preds = %495
  %500 = load i32, ptr %29, align 4, !tbaa !9
  store i32 %500, ptr %72, align 4, !tbaa !9
  br label %501

501:                                              ; preds = %499, %495
  %502 = load i32, ptr %71, align 4, !tbaa !9
  %503 = load i32, ptr %29, align 4, !tbaa !9
  %504 = load i32, ptr %40, align 4, !tbaa !9
  %505 = sub nsw i32 %503, %504
  %506 = add nsw i32 %505, 1
  %507 = ashr i32 %506, 1
  %508 = icmp slt i32 %502, %507
  br i1 %508, label %509, label %515

509:                                              ; preds = %501
  %510 = load i32, ptr %29, align 4, !tbaa !9
  %511 = load i32, ptr %40, align 4, !tbaa !9
  %512 = sub nsw i32 %510, %511
  %513 = add nsw i32 %512, 1
  %514 = ashr i32 %513, 1
  store i32 %514, ptr %71, align 4, !tbaa !9
  br label %515

515:                                              ; preds = %509, %501
  %516 = load i32, ptr %72, align 4, !tbaa !9
  %517 = load i32, ptr %29, align 4, !tbaa !9
  %518 = load i32, ptr %39, align 4, !tbaa !9
  %519 = add nsw i32 %517, %518
  %520 = ashr i32 %519, 1
  %521 = icmp sgt i32 %516, %520
  br i1 %521, label %522, label %527

522:                                              ; preds = %515
  %523 = load i32, ptr %29, align 4, !tbaa !9
  %524 = load i32, ptr %39, align 4, !tbaa !9
  %525 = add nsw i32 %523, %524
  %526 = ashr i32 %525, 1
  store i32 %526, ptr %72, align 4, !tbaa !9
  br label %527

527:                                              ; preds = %522, %515
  %528 = load i32, ptr %71, align 4, !tbaa !9
  %529 = load i32, ptr %72, align 4, !tbaa !9
  %530 = icmp sgt i32 %528, %529
  br i1 %530, label %531, label %536

531:                                              ; preds = %527
  %532 = load ptr, ptr %28, align 8, !tbaa !5
  %533 = load i32, ptr %532, align 8
  %534 = and i32 %533, 2147483647
  %535 = or i32 %534, -2147483648
  store i32 %535, ptr %532, align 8
  store i32 11, ptr %70, align 4
  br label %1631

536:                                              ; preds = %527
  %537 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %537, ptr %73, align 4, !tbaa !9
  %538 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %538, ptr %74, align 4, !tbaa !9
  %539 = load i32, ptr %71, align 4, !tbaa !9
  %540 = sdiv i32 %539, 16
  %541 = mul nsw i32 %540, 16
  store i32 %541, ptr %71, align 4, !tbaa !9
  %542 = load i32, ptr %72, align 4, !tbaa !9
  %543 = add nsw i32 %542, 16
  %544 = sdiv i32 %543, 16
  %545 = mul nsw i32 %544, 16
  %546 = sub nsw i32 %545, 1
  store i32 %546, ptr %72, align 4, !tbaa !9
  %547 = load i32, ptr %71, align 4, !tbaa !9
  %548 = icmp sgt i32 %547, 0
  br i1 %548, label %549, label %574

549:                                              ; preds = %536
  %550 = load i32, ptr %71, align 4, !tbaa !9
  %551 = sub nsw i32 %550, 1
  %552 = load i32, ptr %37, align 4, !tbaa !9
  %553 = icmp sge i32 %551, %552
  br i1 %553, label %554, label %572

554:                                              ; preds = %549
  %555 = load i32, ptr %71, align 4, !tbaa !9
  %556 = sub nsw i32 %555, 1
  %557 = load i32, ptr %38, align 4, !tbaa !9
  %558 = icmp sle i32 %556, %557
  br i1 %558, label %559, label %572

559:                                              ; preds = %554
  %560 = load ptr, ptr %66, align 8, !tbaa !5
  %561 = load i32, ptr %71, align 4, !tbaa !9
  %562 = sub nsw i32 %561, 1
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds i8, ptr %560, i64 %563
  %565 = load i8, ptr %564, align 1, !tbaa !11
  store i8 %565, ptr %77, align 1, !tbaa !11
  %566 = load ptr, ptr %81, align 8, !tbaa !5
  %567 = load i32, ptr %71, align 4, !tbaa !9
  %568 = sub nsw i32 %567, 1
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds i8, ptr %566, i64 %569
  %571 = load i8, ptr %570, align 1, !tbaa !11
  store i8 %571, ptr %78, align 1, !tbaa !11
  br label %573

572:                                              ; preds = %554, %549
  store i8 0, ptr %78, align 1, !tbaa !11
  store i8 0, ptr %77, align 1, !tbaa !11
  br label %573

573:                                              ; preds = %572, %559
  br label %584

574:                                              ; preds = %536
  store i8 0, ptr %77, align 1, !tbaa !11
  %575 = load i32, ptr %29, align 4, !tbaa !9
  %576 = icmp ne i32 %575, 0
  br i1 %576, label %577, label %580

577:                                              ; preds = %574
  %578 = load i8, ptr %22, align 1, !tbaa !11
  %579 = sext i8 %578 to i32
  br label %581

580:                                              ; preds = %574
  br label %581

581:                                              ; preds = %580, %577
  %582 = phi i32 [ %579, %577 ], [ 0, %580 ]
  %583 = trunc i32 %582 to i8
  store i8 %583, ptr %78, align 1, !tbaa !11
  br label %584

584:                                              ; preds = %581, %573
  %585 = load i32, ptr %72, align 4, !tbaa !9
  %586 = load i32, ptr %29, align 4, !tbaa !9
  %587 = icmp sge i32 %585, %586
  br i1 %587, label %588, label %606

588:                                              ; preds = %584
  %589 = load ptr, ptr %67, align 8, !tbaa !5
  %590 = load i32, ptr %29, align 4, !tbaa !9
  %591 = sext i32 %590 to i64
  %592 = getelementptr inbounds i8, ptr %589, i64 %591
  store i8 0, ptr %592, align 1, !tbaa !11
  %593 = load i32, ptr %29, align 4, !tbaa !9
  %594 = icmp ne i32 %593, 0
  br i1 %594, label %595, label %598

595:                                              ; preds = %588
  %596 = load i8, ptr %22, align 1, !tbaa !11
  %597 = sext i8 %596 to i32
  br label %599

598:                                              ; preds = %588
  br label %599

599:                                              ; preds = %598, %595
  %600 = phi i32 [ %597, %595 ], [ 0, %598 ]
  %601 = trunc i32 %600 to i8
  %602 = load ptr, ptr %80, align 8, !tbaa !5
  %603 = load i32, ptr %29, align 4, !tbaa !9
  %604 = sext i32 %603 to i64
  %605 = getelementptr inbounds i8, ptr %602, i64 %604
  store i8 %601, ptr %605, align 1, !tbaa !11
  br label %606

606:                                              ; preds = %599, %584
  %607 = load i32, ptr %27, align 4, !tbaa !9
  %608 = and i32 %607, 4
  %609 = icmp ne i32 %608, 0
  br i1 %609, label %660, label %610

610:                                              ; preds = %606
  %611 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %611, ptr %30, align 4, !tbaa !9
  br label %612

612:                                              ; preds = %656, %610
  %613 = load i32, ptr %30, align 4, !tbaa !9
  %614 = load i32, ptr %74, align 4, !tbaa !9
  %615 = icmp sle i32 %613, %614
  br i1 %615, label %616, label %659

616:                                              ; preds = %612
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %85) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %87) #9
  %617 = load ptr, ptr %49, align 8, !tbaa !5
  %618 = load i32, ptr %30, align 4, !tbaa !9
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds i8, ptr %617, i64 %619
  %621 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %620)
  store <2 x i64> %621, ptr %84, align 16, !tbaa !11
  %622 = load ptr, ptr %79, 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
  %626 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %625)
  store <2 x i64> %626, ptr %85, align 16, !tbaa !11
  %627 = load <2 x i64>, ptr %84, align 16, !tbaa !11
  %628 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %629 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %627, <2 x i64> noundef %628)
  %630 = load <2 x i64>, ptr %85, align 16, !tbaa !11
  %631 = load <2 x i64>, ptr %62, align 16, !tbaa !11
  %632 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %630, <2 x i64> noundef %631)
  %633 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %629, <2 x i64> noundef %632)
  store <2 x i64> %633, ptr %87, align 16, !tbaa !11
  %634 = load <2 x i64>, ptr %84, align 16, !tbaa !11
  %635 = load <2 x i64>, ptr %85, align 16, !tbaa !11
  %636 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %634, <2 x i64> noundef %635)
  store <2 x i64> %636, ptr %86, align 16, !tbaa !11
  %637 = load <2 x i64>, ptr %86, align 16, !tbaa !11
  %638 = load <2 x i64>, ptr %60, align 16, !tbaa !11
  %639 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %637, <2 x i64> noundef %638)
  %640 = load <2 x i64>, ptr %86, align 16, !tbaa !11
  %641 = load <2 x i64>, ptr %59, align 16, !tbaa !11
  %642 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %640, <2 x i64> noundef %641)
  %643 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %639, <2 x i64> noundef %642)
  store <2 x i64> %643, ptr %86, align 16, !tbaa !11
  %644 = load <2 x i64>, ptr %87, align 16, !tbaa !11
  %645 = load <2 x i64>, ptr %86, align 16, !tbaa !11
  %646 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %644, <2 x i64> noundef %645)
  %647 = load <2 x i64>, ptr %87, align 16, !tbaa !11
  %648 = load <2 x i64>, ptr %61, align 16, !tbaa !11
  %649 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %647, <2 x i64> noundef %648)
  %650 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %646, <2 x i64> noundef %649)
  store <2 x i64> %650, ptr %86, align 16, !tbaa !11
  %651 = load ptr, ptr %68, align 8, !tbaa !5
  %652 = load i32, ptr %30, align 4, !tbaa !9
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds i8, ptr %651, i64 %653
  %655 = load <2 x i64>, ptr %86, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %654, <2 x i64> noundef %655)
  call void @llvm.lifetime.end.p0(i64 16, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #9
  br label %656

656:                                              ; preds = %616
  %657 = load i32, ptr %30, align 4, !tbaa !9
  %658 = add nsw i32 %657, 16
  store i32 %658, ptr %30, align 4, !tbaa !9
  br label %612, !llvm.loop !16

659:                                              ; preds = %612
  br label %695

660:                                              ; preds = %606
  %661 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %661, ptr %30, align 4, !tbaa !9
  br label %662

662:                                              ; preds = %691, %660
  %663 = load i32, ptr %30, align 4, !tbaa !9
  %664 = load i32, ptr %74, align 4, !tbaa !9
  %665 = icmp sle i32 %663, %664
  br i1 %665, label %666, label %694

666:                                              ; preds = %662
  %667 = load ptr, ptr %21, align 8, !tbaa !5
  %668 = load ptr, ptr %49, align 8, !tbaa !5
  %669 = load i32, ptr %30, align 4, !tbaa !9
  %670 = sext i32 %669 to i64
  %671 = getelementptr inbounds i8, ptr %668, i64 %670
  %672 = load i8, ptr %671, align 1, !tbaa !11
  %673 = zext i8 %672 to i32
  %674 = load i8, ptr %20, align 1, !tbaa !11
  %675 = sext i8 %674 to i32
  %676 = mul nsw i32 %673, %675
  %677 = load ptr, ptr %79, align 8, !tbaa !5
  %678 = load i32, ptr %30, align 4, !tbaa !9
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds i8, ptr %677, i64 %679
  %681 = load i8, ptr %680, align 1, !tbaa !11
  %682 = zext i8 %681 to i32
  %683 = add nsw i32 %676, %682
  %684 = sext i32 %683 to i64
  %685 = getelementptr inbounds i8, ptr %667, i64 %684
  %686 = load i8, ptr %685, align 1, !tbaa !11
  %687 = load ptr, ptr %68, align 8, !tbaa !5
  %688 = load i32, ptr %30, align 4, !tbaa !9
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds i8, ptr %687, i64 %689
  store i8 %686, ptr %690, align 1, !tbaa !11
  br label %691

691:                                              ; preds = %666
  %692 = load i32, ptr %30, align 4, !tbaa !9
  %693 = add nsw i32 %692, 1
  store i32 %693, ptr %30, align 4, !tbaa !9
  br label %662, !llvm.loop !17

694:                                              ; preds = %662
  br label %695

695:                                              ; preds = %694, %659
  %696 = load i8, ptr %77, align 1, !tbaa !11
  %697 = sext i8 %696 to i32
  %698 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %697)
  store <2 x i64> %698, ptr %82, align 16, !tbaa !11
  %699 = load i8, ptr %78, align 1, !tbaa !11
  %700 = sext i8 %699 to i32
  %701 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %700)
  store <2 x i64> %701, ptr %83, align 16, !tbaa !11
  %702 = load i32, ptr %71, align 4, !tbaa !9
  %703 = sdiv i32 %702, 16
  store i32 %703, ptr %75, align 4, !tbaa !9
  %704 = load i32, ptr %72, align 4, !tbaa !9
  %705 = sdiv i32 %704, 16
  store i32 %705, ptr %76, align 4, !tbaa !9
  %706 = load i32, ptr %76, align 4, !tbaa !9
  %707 = load i32, ptr %75, align 4, !tbaa !9
  %708 = sub nsw i32 %706, %707
  %709 = add nsw i32 %708, 1
  %710 = load i32, ptr %32, align 4, !tbaa !9
  %711 = icmp sle i32 %709, %710
  br i1 %711, label %712, label %713

712:                                              ; preds = %695
  br label %715

713:                                              ; preds = %695
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 177, ptr noundef @__PRETTY_FUNCTION__.ksw_extz2_sse) #10
  unreachable

714:                                              ; No predecessors!
  br label %715

715:                                              ; preds = %714, %712
  %716 = load i32, ptr %43, align 4, !tbaa !9
  %717 = icmp ne i32 %716, 0
  br i1 %717, label %840, label %718

718:                                              ; preds = %715
  %719 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %719, ptr %30, align 4, !tbaa !9
  br label %720

720:                                              ; preds = %836, %718
  %721 = load i32, ptr %30, align 4, !tbaa !9
  %722 = load i32, ptr %76, align 4, !tbaa !9
  %723 = icmp sle i32 %721, %722
  br i1 %723, label %724, label %839

724:                                              ; preds = %720
  call void @llvm.lifetime.start.p0(i64 16, ptr %88) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %89) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %91) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %92) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %93) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %94) #9
  %725 = load ptr, ptr %68, align 8, !tbaa !5
  %726 = load i32, ptr %30, align 4, !tbaa !9
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds <2 x i64>, ptr %725, i64 %727
  %729 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %728)
  %730 = load <2 x i64>, ptr %53, align 16, !tbaa !11
  %731 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %729, <2 x i64> noundef %730)
  store <2 x i64> %731, ptr %88, align 16, !tbaa !11
  %732 = load ptr, ptr %66, align 8, !tbaa !5
  %733 = load i32, ptr %30, align 4, !tbaa !9
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds <2 x i64>, ptr %732, i64 %734
  %736 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %735)
  store <2 x i64> %736, ptr %91, align 16, !tbaa !11
  %737 = load <2 x i64>, ptr %91, align 16, !tbaa !11
  %738 = bitcast <2 x i64> %737 to <16 x i8>
  %739 = shufflevector <16 x i8> %738, <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>
  %740 = bitcast <16 x i8> %739 to <2 x i64>
  store <2 x i64> %740, ptr %94, align 16, !tbaa !11
  %741 = load <2 x i64>, ptr %91, align 16, !tbaa !11
  %742 = bitcast <2 x i64> %741 to <16 x i8>
  %743 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %742, <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>
  %744 = bitcast <16 x i8> %743 to <2 x i64>
  %745 = load <2 x i64>, ptr %82, align 16, !tbaa !11
  %746 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %744, <2 x i64> noundef %745)
  store <2 x i64> %746, ptr %91, align 16, !tbaa !11
  %747 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  store <2 x i64> %747, ptr %82, align 16, !tbaa !11
  %748 = load ptr, ptr %65, align 8, !tbaa !5
  %749 = load i32, ptr %30, align 4, !tbaa !9
  %750 = sext i32 %749 to i64
  %751 = getelementptr inbounds <2 x i64>, ptr %748, i64 %750
  %752 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %751)
  store <2 x i64> %752, ptr %92, align 16, !tbaa !11
  %753 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %754 = bitcast <2 x i64> %753 to <16 x i8>
  %755 = shufflevector <16 x i8> %754, <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>
  %756 = bitcast <16 x i8> %755 to <2 x i64>
  store <2 x i64> %756, ptr %94, align 16, !tbaa !11
  %757 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %758 = bitcast <2 x i64> %757 to <16 x i8>
  %759 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %758, <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>
  %760 = bitcast <16 x i8> %759 to <2 x i64>
  %761 = load <2 x i64>, ptr %83, align 16, !tbaa !11
  %762 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %760, <2 x i64> noundef %761)
  store <2 x i64> %762, ptr %92, align 16, !tbaa !11
  %763 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  store <2 x i64> %763, ptr %83, align 16, !tbaa !11
  %764 = load <2 x i64>, ptr %91, align 16, !tbaa !11
  %765 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %766 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %764, <2 x i64> noundef %765)
  store <2 x i64> %766, ptr %89, align 16, !tbaa !11
  %767 = load ptr, ptr %64, align 8, !tbaa !5
  %768 = load i32, ptr %30, align 4, !tbaa !9
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds <2 x i64>, ptr %767, i64 %769
  %771 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %770)
  store <2 x i64> %771, ptr %93, align 16, !tbaa !11
  %772 = load ptr, ptr %67, align 8, !tbaa !5
  %773 = load i32, ptr %30, align 4, !tbaa !9
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds <2 x i64>, ptr %772, i64 %774
  %776 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %775)
  %777 = load <2 x i64>, ptr %93, align 16, !tbaa !11
  %778 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %776, <2 x i64> noundef %777)
  store <2 x i64> %778, ptr %90, align 16, !tbaa !11
  %779 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %780 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %781 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %782 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %780, <2 x i64> noundef %781)
  %783 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %779, <2 x i64> noundef %782)
  store <2 x i64> %783, ptr %88, align 16, !tbaa !11
  %784 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %785 = load <2 x i64>, ptr %89, align 16, !tbaa !11
  %786 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %784, <2 x i64> noundef %785)
  store <2 x i64> %786, ptr %88, align 16, !tbaa !11
  %787 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %788 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  %789 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %787, <2 x i64> noundef %788)
  store <2 x i64> %789, ptr %88, align 16, !tbaa !11
  %790 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %791 = load <2 x i64>, ptr %63, align 16, !tbaa !11
  %792 = call noundef <2 x i64> @_ZL12_mm_min_epu8Dv2_xS_(<2 x i64> noundef %790, <2 x i64> noundef %791)
  store <2 x i64> %792, ptr %88, align 16, !tbaa !11
  %793 = load ptr, ptr %64, align 8, !tbaa !5
  %794 = load i32, ptr %30, align 4, !tbaa !9
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds <2 x i64>, ptr %793, i64 %795
  %797 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %798 = load <2 x i64>, ptr %92, align 16, !tbaa !11
  %799 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %797, <2 x i64> noundef %798)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %796, <2 x i64> noundef %799)
  %800 = load ptr, ptr %65, align 8, !tbaa !5
  %801 = load i32, ptr %30, align 4, !tbaa !9
  %802 = sext i32 %801 to i64
  %803 = getelementptr inbounds <2 x i64>, ptr %800, i64 %802
  %804 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %805 = load <2 x i64>, ptr %93, align 16, !tbaa !11
  %806 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %804, <2 x i64> noundef %805)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %803, <2 x i64> noundef %806)
  %807 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %808 = load <2 x i64>, ptr %52, align 16, !tbaa !11
  %809 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %807, <2 x i64> noundef %808)
  store <2 x i64> %809, ptr %88, align 16, !tbaa !11
  %810 = load <2 x i64>, ptr %89, align 16, !tbaa !11
  %811 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %812 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %810, <2 x i64> noundef %811)
  store <2 x i64> %812, ptr %89, align 16, !tbaa !11
  %813 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  %814 = load <2 x i64>, ptr %88, align 16, !tbaa !11
  %815 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %813, <2 x i64> noundef %814)
  store <2 x i64> %815, ptr %90, align 16, !tbaa !11
  %816 = load <2 x i64>, ptr %89, align 16, !tbaa !11
  %817 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %818 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %816, <2 x i64> noundef %817)
  store <2 x i64> %818, ptr %94, align 16, !tbaa !11
  %819 = load ptr, ptr %66, align 8, !tbaa !5
  %820 = load i32, ptr %30, align 4, !tbaa !9
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds <2 x i64>, ptr %819, i64 %821
  %823 = load <2 x i64>, ptr %89, align 16, !tbaa !11
  %824 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  %825 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %823, <2 x i64> noundef %824)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %822, <2 x i64> noundef %825)
  %826 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  %827 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %828 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %826, <2 x i64> noundef %827)
  store <2 x i64> %828, ptr %94, align 16, !tbaa !11
  %829 = load ptr, ptr %67, align 8, !tbaa !5
  %830 = load i32, ptr %30, align 4, !tbaa !9
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds <2 x i64>, ptr %829, i64 %831
  %833 = load <2 x i64>, ptr %90, align 16, !tbaa !11
  %834 = load <2 x i64>, ptr %94, align 16, !tbaa !11
  %835 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %833, <2 x i64> noundef %834)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %832, <2 x i64> noundef %835)
  call void @llvm.lifetime.end.p0(i64 16, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %89) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %88) #9
  br label %836

836:                                              ; preds = %724
  %837 = load i32, ptr %30, align 4, !tbaa !9
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr %30, align 4, !tbaa !9
  br label %720, !llvm.loop !18

839:                                              ; preds = %720
  br label %1191

840:                                              ; preds = %715
  %841 = load i32, ptr %27, align 4, !tbaa !9
  %842 = and i32 %841, 2
  %843 = icmp ne i32 %842, 0
  br i1 %843, label %1017, label %844

844:                                              ; preds = %840
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #9
  %845 = load ptr, ptr %69, align 8, !tbaa !5
  %846 = load i32, ptr %29, align 4, !tbaa !9
  %847 = sext i32 %846 to i64
  %848 = load i32, ptr %32, align 4, !tbaa !9
  %849 = sext i32 %848 to i64
  %850 = mul i64 %847, %849
  %851 = getelementptr inbounds <2 x i64>, ptr %845, i64 %850
  %852 = load i32, ptr %75, align 4, !tbaa !9
  %853 = sext i32 %852 to i64
  %854 = sub i64 0, %853
  %855 = getelementptr inbounds <2 x i64>, ptr %851, i64 %854
  store ptr %855, ptr %95, align 8, !tbaa !5
  %856 = load i32, ptr %71, align 4, !tbaa !9
  %857 = load ptr, ptr %33, align 8, !tbaa !5
  %858 = load i32, ptr %29, align 4, !tbaa !9
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds i32, ptr %857, i64 %859
  store i32 %856, ptr %860, align 4, !tbaa !9
  %861 = load i32, ptr %72, align 4, !tbaa !9
  %862 = load ptr, ptr %34, align 8, !tbaa !5
  %863 = load i32, ptr %29, align 4, !tbaa !9
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds i32, ptr %862, i64 %864
  store i32 %861, ptr %865, align 4, !tbaa !9
  %866 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %866, ptr %30, align 4, !tbaa !9
  br label %867

867:                                              ; preds = %1013, %844
  %868 = load i32, ptr %30, align 4, !tbaa !9
  %869 = load i32, ptr %76, align 4, !tbaa !9
  %870 = icmp sle i32 %868, %869
  br i1 %870, label %871, label %1016

871:                                              ; preds = %867
  call void @llvm.lifetime.start.p0(i64 16, ptr %96) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %97) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %99) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %100) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %101) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %102) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %103) #9
  %872 = load ptr, ptr %68, align 8, !tbaa !5
  %873 = load i32, ptr %30, align 4, !tbaa !9
  %874 = sext i32 %873 to i64
  %875 = getelementptr inbounds <2 x i64>, ptr %872, i64 %874
  %876 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %875)
  %877 = load <2 x i64>, ptr %53, align 16, !tbaa !11
  %878 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %876, <2 x i64> noundef %877)
  store <2 x i64> %878, ptr %97, align 16, !tbaa !11
  %879 = load ptr, ptr %66, align 8, !tbaa !5
  %880 = load i32, ptr %30, align 4, !tbaa !9
  %881 = sext i32 %880 to i64
  %882 = getelementptr inbounds <2 x i64>, ptr %879, i64 %881
  %883 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %882)
  store <2 x i64> %883, ptr %100, align 16, !tbaa !11
  %884 = load <2 x i64>, ptr %100, align 16, !tbaa !11
  %885 = bitcast <2 x i64> %884 to <16 x i8>
  %886 = shufflevector <16 x i8> %885, <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>
  %887 = bitcast <16 x i8> %886 to <2 x i64>
  store <2 x i64> %887, ptr %103, align 16, !tbaa !11
  %888 = load <2 x i64>, ptr %100, align 16, !tbaa !11
  %889 = bitcast <2 x i64> %888 to <16 x i8>
  %890 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %889, <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>
  %891 = bitcast <16 x i8> %890 to <2 x i64>
  %892 = load <2 x i64>, ptr %82, align 16, !tbaa !11
  %893 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %891, <2 x i64> noundef %892)
  store <2 x i64> %893, ptr %100, align 16, !tbaa !11
  %894 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  store <2 x i64> %894, ptr %82, align 16, !tbaa !11
  %895 = load ptr, ptr %65, align 8, !tbaa !5
  %896 = load i32, ptr %30, align 4, !tbaa !9
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds <2 x i64>, ptr %895, i64 %897
  %899 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %898)
  store <2 x i64> %899, ptr %101, align 16, !tbaa !11
  %900 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %901 = bitcast <2 x i64> %900 to <16 x i8>
  %902 = shufflevector <16 x i8> %901, <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>
  %903 = bitcast <16 x i8> %902 to <2 x i64>
  store <2 x i64> %903, ptr %103, align 16, !tbaa !11
  %904 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %905 = bitcast <2 x i64> %904 to <16 x i8>
  %906 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %905, <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>
  %907 = bitcast <16 x i8> %906 to <2 x i64>
  %908 = load <2 x i64>, ptr %83, align 16, !tbaa !11
  %909 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %907, <2 x i64> noundef %908)
  store <2 x i64> %909, ptr %101, align 16, !tbaa !11
  %910 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  store <2 x i64> %910, ptr %83, align 16, !tbaa !11
  %911 = load <2 x i64>, ptr %100, align 16, !tbaa !11
  %912 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %913 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %911, <2 x i64> noundef %912)
  store <2 x i64> %913, ptr %98, align 16, !tbaa !11
  %914 = load ptr, ptr %64, align 8, !tbaa !5
  %915 = load i32, ptr %30, align 4, !tbaa !9
  %916 = sext i32 %915 to i64
  %917 = getelementptr inbounds <2 x i64>, ptr %914, i64 %916
  %918 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %917)
  store <2 x i64> %918, ptr %102, align 16, !tbaa !11
  %919 = load ptr, ptr %67, align 8, !tbaa !5
  %920 = load i32, ptr %30, align 4, !tbaa !9
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds <2 x i64>, ptr %919, i64 %921
  %923 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %922)
  %924 = load <2 x i64>, ptr %102, align 16, !tbaa !11
  %925 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %923, <2 x i64> noundef %924)
  store <2 x i64> %925, ptr %99, align 16, !tbaa !11
  %926 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %927 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %928 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %926, <2 x i64> noundef %927)
  %929 = load <2 x i64>, ptr %55, align 16, !tbaa !11
  %930 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %928, <2 x i64> noundef %929)
  store <2 x i64> %930, ptr %96, align 16, !tbaa !11
  %931 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %932 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %933 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %934 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %932, <2 x i64> noundef %933)
  %935 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %931, <2 x i64> noundef %934)
  store <2 x i64> %935, ptr %97, align 16, !tbaa !11
  %936 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %937 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %938 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %936, <2 x i64> noundef %937)
  store <2 x i64> %938, ptr %97, align 16, !tbaa !11
  %939 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %940 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %941 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %939, <2 x i64> noundef %940)
  store <2 x i64> %941, ptr %103, align 16, !tbaa !11
  %942 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %943 = load <2 x i64>, ptr %96, align 16, !tbaa !11
  %944 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %942, <2 x i64> noundef %943)
  %945 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %946 = load <2 x i64>, ptr %56, align 16, !tbaa !11
  %947 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %945, <2 x i64> noundef %946)
  %948 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %944, <2 x i64> noundef %947)
  store <2 x i64> %948, ptr %96, align 16, !tbaa !11
  %949 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %950 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %951 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %949, <2 x i64> noundef %950)
  store <2 x i64> %951, ptr %97, align 16, !tbaa !11
  %952 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %953 = load <2 x i64>, ptr %63, align 16, !tbaa !11
  %954 = call noundef <2 x i64> @_ZL12_mm_min_epu8Dv2_xS_(<2 x i64> noundef %952, <2 x i64> noundef %953)
  store <2 x i64> %954, ptr %97, align 16, !tbaa !11
  %955 = load ptr, ptr %64, align 8, !tbaa !5
  %956 = load i32, ptr %30, align 4, !tbaa !9
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds <2 x i64>, ptr %955, i64 %957
  %959 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %960 = load <2 x i64>, ptr %101, align 16, !tbaa !11
  %961 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %959, <2 x i64> noundef %960)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %958, <2 x i64> noundef %961)
  %962 = load ptr, ptr %65, align 8, !tbaa !5
  %963 = load i32, ptr %30, align 4, !tbaa !9
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds <2 x i64>, ptr %962, i64 %964
  %966 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %967 = load <2 x i64>, ptr %102, align 16, !tbaa !11
  %968 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %966, <2 x i64> noundef %967)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %965, <2 x i64> noundef %968)
  %969 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %970 = load <2 x i64>, ptr %52, align 16, !tbaa !11
  %971 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %969, <2 x i64> noundef %970)
  store <2 x i64> %971, ptr %97, align 16, !tbaa !11
  %972 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %973 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %974 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %972, <2 x i64> noundef %973)
  store <2 x i64> %974, ptr %98, align 16, !tbaa !11
  %975 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %976 = load <2 x i64>, ptr %97, align 16, !tbaa !11
  %977 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %975, <2 x i64> noundef %976)
  store <2 x i64> %977, ptr %99, align 16, !tbaa !11
  %978 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %979 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %980 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %978, <2 x i64> noundef %979)
  store <2 x i64> %980, ptr %103, align 16, !tbaa !11
  %981 = load ptr, ptr %66, align 8, !tbaa !5
  %982 = load i32, ptr %30, align 4, !tbaa !9
  %983 = sext i32 %982 to i64
  %984 = getelementptr inbounds <2 x i64>, ptr %981, i64 %983
  %985 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %986 = load <2 x i64>, ptr %98, align 16, !tbaa !11
  %987 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %985, <2 x i64> noundef %986)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %984, <2 x i64> noundef %987)
  %988 = load <2 x i64>, ptr %96, align 16, !tbaa !11
  %989 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %990 = load <2 x i64>, ptr %57, align 16, !tbaa !11
  %991 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %989, <2 x i64> noundef %990)
  %992 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %988, <2 x i64> noundef %991)
  store <2 x i64> %992, ptr %96, align 16, !tbaa !11
  %993 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %994 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %995 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %993, <2 x i64> noundef %994)
  store <2 x i64> %995, ptr %103, align 16, !tbaa !11
  %996 = load ptr, ptr %67, align 8, !tbaa !5
  %997 = load i32, ptr %30, align 4, !tbaa !9
  %998 = sext i32 %997 to i64
  %999 = getelementptr inbounds <2 x i64>, ptr %996, i64 %998
  %1000 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %1001 = load <2 x i64>, ptr %99, align 16, !tbaa !11
  %1002 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1000, <2 x i64> noundef %1001)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %999, <2 x i64> noundef %1002)
  %1003 = load <2 x i64>, ptr %96, align 16, !tbaa !11
  %1004 = load <2 x i64>, ptr %103, align 16, !tbaa !11
  %1005 = load <2 x i64>, ptr %58, align 16, !tbaa !11
  %1006 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1004, <2 x i64> noundef %1005)
  %1007 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1003, <2 x i64> noundef %1006)
  store <2 x i64> %1007, ptr %96, align 16, !tbaa !11
  %1008 = load ptr, ptr %95, align 8, !tbaa !5
  %1009 = load i32, ptr %30, align 4, !tbaa !9
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds <2 x i64>, ptr %1008, i64 %1010
  %1012 = load <2 x i64>, ptr %96, align 16, !tbaa !11
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1011, <2 x i64> noundef %1012)
  call void @llvm.lifetime.end.p0(i64 16, ptr %103) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %102) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %99) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #9
  br label %1013

1013:                                             ; preds = %871
  %1014 = load i32, ptr %30, align 4, !tbaa !9
  %1015 = add nsw i32 %1014, 1
  store i32 %1015, ptr %30, align 4, !tbaa !9
  br label %867, !llvm.loop !19

1016:                                             ; preds = %867
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  br label %1190

1017:                                             ; preds = %840
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #9
  %1018 = load ptr, ptr %69, align 8, !tbaa !5
  %1019 = load i32, ptr %29, align 4, !tbaa !9
  %1020 = sext i32 %1019 to i64
  %1021 = load i32, ptr %32, align 4, !tbaa !9
  %1022 = sext i32 %1021 to i64
  %1023 = mul i64 %1020, %1022
  %1024 = getelementptr inbounds <2 x i64>, ptr %1018, i64 %1023
  %1025 = load i32, ptr %75, align 4, !tbaa !9
  %1026 = sext i32 %1025 to i64
  %1027 = sub i64 0, %1026
  %1028 = getelementptr inbounds <2 x i64>, ptr %1024, i64 %1027
  store ptr %1028, ptr %104, align 8, !tbaa !5
  %1029 = load i32, ptr %71, align 4, !tbaa !9
  %1030 = load ptr, ptr %33, align 8, !tbaa !5
  %1031 = load i32, ptr %29, align 4, !tbaa !9
  %1032 = sext i32 %1031 to i64
  %1033 = getelementptr inbounds i32, ptr %1030, i64 %1032
  store i32 %1029, ptr %1033, align 4, !tbaa !9
  %1034 = load i32, ptr %72, align 4, !tbaa !9
  %1035 = load ptr, ptr %34, align 8, !tbaa !5
  %1036 = load i32, ptr %29, align 4, !tbaa !9
  %1037 = sext i32 %1036 to i64
  %1038 = getelementptr inbounds i32, ptr %1035, i64 %1037
  store i32 %1034, ptr %1038, align 4, !tbaa !9
  %1039 = load i32, ptr %75, align 4, !tbaa !9
  store i32 %1039, ptr %30, align 4, !tbaa !9
  br label %1040

1040:                                             ; preds = %1186, %1017
  %1041 = load i32, ptr %30, align 4, !tbaa !9
  %1042 = load i32, ptr %76, align 4, !tbaa !9
  %1043 = icmp sle i32 %1041, %1042
  br i1 %1043, label %1044, label %1189

1044:                                             ; preds = %1040
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %106) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %107) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %108) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %109) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %110) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %111) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %112) #9
  %1045 = load ptr, ptr %68, 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)
  %1050 = load <2 x i64>, ptr %53, align 16, !tbaa !11
  %1051 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1049, <2 x i64> noundef %1050)
  store <2 x i64> %1051, ptr %106, align 16, !tbaa !11
  %1052 = load ptr, ptr %66, align 8, !tbaa !5
  %1053 = load i32, ptr %30, align 4, !tbaa !9
  %1054 = sext i32 %1053 to i64
  %1055 = getelementptr inbounds <2 x i64>, ptr %1052, i64 %1054
  %1056 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1055)
  store <2 x i64> %1056, ptr %109, align 16, !tbaa !11
  %1057 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1058 = bitcast <2 x i64> %1057 to <16 x i8>
  %1059 = shufflevector <16 x i8> %1058, <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>
  %1060 = bitcast <16 x i8> %1059 to <2 x i64>
  store <2 x i64> %1060, ptr %112, align 16, !tbaa !11
  %1061 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1062 = bitcast <2 x i64> %1061 to <16 x i8>
  %1063 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1062, <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>
  %1064 = bitcast <16 x i8> %1063 to <2 x i64>
  %1065 = load <2 x i64>, ptr %82, align 16, !tbaa !11
  %1066 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1064, <2 x i64> noundef %1065)
  store <2 x i64> %1066, ptr %109, align 16, !tbaa !11
  %1067 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  store <2 x i64> %1067, ptr %82, align 16, !tbaa !11
  %1068 = load ptr, ptr %65, align 8, !tbaa !5
  %1069 = load i32, ptr %30, align 4, !tbaa !9
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds <2 x i64>, ptr %1068, i64 %1070
  %1072 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1071)
  store <2 x i64> %1072, ptr %110, align 16, !tbaa !11
  %1073 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1074 = bitcast <2 x i64> %1073 to <16 x i8>
  %1075 = shufflevector <16 x i8> %1074, <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>
  %1076 = bitcast <16 x i8> %1075 to <2 x i64>
  store <2 x i64> %1076, ptr %112, align 16, !tbaa !11
  %1077 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1078 = bitcast <2 x i64> %1077 to <16 x i8>
  %1079 = shufflevector <16 x i8> zeroinitializer, <16 x i8> %1078, <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>
  %1080 = bitcast <16 x i8> %1079 to <2 x i64>
  %1081 = load <2 x i64>, ptr %83, align 16, !tbaa !11
  %1082 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1080, <2 x i64> noundef %1081)
  store <2 x i64> %1082, ptr %110, align 16, !tbaa !11
  %1083 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  store <2 x i64> %1083, ptr %83, align 16, !tbaa !11
  %1084 = load <2 x i64>, ptr %109, align 16, !tbaa !11
  %1085 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1086 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1084, <2 x i64> noundef %1085)
  store <2 x i64> %1086, ptr %107, align 16, !tbaa !11
  %1087 = load ptr, ptr %64, align 8, !tbaa !5
  %1088 = load i32, ptr %30, align 4, !tbaa !9
  %1089 = sext i32 %1088 to i64
  %1090 = getelementptr inbounds <2 x i64>, ptr %1087, i64 %1089
  %1091 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1090)
  store <2 x i64> %1091, ptr %111, align 16, !tbaa !11
  %1092 = load ptr, ptr %67, align 8, !tbaa !5
  %1093 = load i32, ptr %30, align 4, !tbaa !9
  %1094 = sext i32 %1093 to i64
  %1095 = getelementptr inbounds <2 x i64>, ptr %1092, i64 %1094
  %1096 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %1095)
  %1097 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1098 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %1096, <2 x i64> noundef %1097)
  store <2 x i64> %1098, ptr %108, align 16, !tbaa !11
  %1099 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1100 = load <2 x i64>, ptr %107, align 16, !tbaa !11
  %1101 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1099, <2 x i64> noundef %1100)
  %1102 = load <2 x i64>, ptr %55, align 16, !tbaa !11
  %1103 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1101, <2 x i64> noundef %1102)
  store <2 x i64> %1103, ptr %105, align 16, !tbaa !11
  %1104 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1105 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1106 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %1107 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1105, <2 x i64> noundef %1106)
  %1108 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1104, <2 x i64> noundef %1107)
  store <2 x i64> %1108, ptr %106, align 16, !tbaa !11
  %1109 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1110 = load <2 x i64>, ptr %107, align 16, !tbaa !11
  %1111 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %1109, <2 x i64> noundef %1110)
  store <2 x i64> %1111, ptr %106, align 16, !tbaa !11
  %1112 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1113 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1114 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1112, <2 x i64> noundef %1113)
  store <2 x i64> %1114, ptr %112, align 16, !tbaa !11
  %1115 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1116 = load <2 x i64>, ptr %56, align 16, !tbaa !11
  %1117 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1115, <2 x i64> noundef %1116)
  %1118 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1119 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1120 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1118, <2 x i64> noundef %1119)
  %1121 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1117, <2 x i64> noundef %1120)
  store <2 x i64> %1121, ptr %105, align 16, !tbaa !11
  %1122 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1123 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1124 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %1122, <2 x i64> noundef %1123)
  store <2 x i64> %1124, ptr %106, align 16, !tbaa !11
  %1125 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1126 = load <2 x i64>, ptr %63, align 16, !tbaa !11
  %1127 = call noundef <2 x i64> @_ZL12_mm_min_epu8Dv2_xS_(<2 x i64> noundef %1125, <2 x i64> noundef %1126)
  store <2 x i64> %1127, ptr %106, align 16, !tbaa !11
  %1128 = load ptr, ptr %64, align 8, !tbaa !5
  %1129 = load i32, ptr %30, align 4, !tbaa !9
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds <2 x i64>, ptr %1128, i64 %1130
  %1132 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1133 = load <2 x i64>, ptr %110, align 16, !tbaa !11
  %1134 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1132, <2 x i64> noundef %1133)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1131, <2 x i64> noundef %1134)
  %1135 = load ptr, ptr %65, align 8, !tbaa !5
  %1136 = load i32, ptr %30, align 4, !tbaa !9
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds <2 x i64>, ptr %1135, i64 %1137
  %1139 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1140 = load <2 x i64>, ptr %111, align 16, !tbaa !11
  %1141 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1139, <2 x i64> noundef %1140)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1138, <2 x i64> noundef %1141)
  %1142 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1143 = load <2 x i64>, ptr %52, align 16, !tbaa !11
  %1144 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1142, <2 x i64> noundef %1143)
  store <2 x i64> %1144, ptr %106, align 16, !tbaa !11
  %1145 = load <2 x i64>, ptr %107, align 16, !tbaa !11
  %1146 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1147 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1145, <2 x i64> noundef %1146)
  store <2 x i64> %1147, ptr %107, align 16, !tbaa !11
  %1148 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1149 = load <2 x i64>, ptr %106, align 16, !tbaa !11
  %1150 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %1148, <2 x i64> noundef %1149)
  store <2 x i64> %1150, ptr %108, align 16, !tbaa !11
  %1151 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %1152 = load <2 x i64>, ptr %107, align 16, !tbaa !11
  %1153 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1151, <2 x i64> noundef %1152)
  store <2 x i64> %1153, ptr %112, align 16, !tbaa !11
  %1154 = load ptr, ptr %66, align 8, !tbaa !5
  %1155 = load i32, ptr %30, align 4, !tbaa !9
  %1156 = sext i32 %1155 to i64
  %1157 = getelementptr inbounds <2 x i64>, ptr %1154, i64 %1156
  %1158 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1159 = load <2 x i64>, ptr %107, align 16, !tbaa !11
  %1160 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1158, <2 x i64> noundef %1159)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1157, <2 x i64> noundef %1160)
  %1161 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1162 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1163 = load <2 x i64>, ptr %57, align 16, !tbaa !11
  %1164 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1162, <2 x i64> noundef %1163)
  %1165 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1161, <2 x i64> noundef %1164)
  store <2 x i64> %1165, ptr %105, align 16, !tbaa !11
  %1166 = load <2 x i64>, ptr %54, align 16, !tbaa !11
  %1167 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1168 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %1166, <2 x i64> noundef %1167)
  store <2 x i64> %1168, ptr %112, align 16, !tbaa !11
  %1169 = load ptr, ptr %67, align 8, !tbaa !5
  %1170 = load i32, ptr %30, align 4, !tbaa !9
  %1171 = sext i32 %1170 to i64
  %1172 = getelementptr inbounds <2 x i64>, ptr %1169, i64 %1171
  %1173 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1174 = load <2 x i64>, ptr %108, align 16, !tbaa !11
  %1175 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1173, <2 x i64> noundef %1174)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1172, <2 x i64> noundef %1175)
  %1176 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  %1177 = load <2 x i64>, ptr %112, align 16, !tbaa !11
  %1178 = load <2 x i64>, ptr %58, align 16, !tbaa !11
  %1179 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1177, <2 x i64> noundef %1178)
  %1180 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1176, <2 x i64> noundef %1179)
  store <2 x i64> %1180, ptr %105, align 16, !tbaa !11
  %1181 = load ptr, ptr %104, align 8, !tbaa !5
  %1182 = load i32, ptr %30, align 4, !tbaa !9
  %1183 = sext i32 %1182 to i64
  %1184 = getelementptr inbounds <2 x i64>, ptr %1181, i64 %1183
  %1185 = load <2 x i64>, ptr %105, align 16, !tbaa !11
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %1184, <2 x i64> noundef %1185)
  call void @llvm.lifetime.end.p0(i64 16, ptr %112) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %111) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %110) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %109) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %108) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %106) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #9
  br label %1186

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

1189:                                             ; preds = %1040
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #9
  br label %1190

1190:                                             ; preds = %1189, %1016
  br label %1191

1191:                                             ; preds = %1190, %839
  %1192 = load i32, ptr %44, align 4, !tbaa !9
  %1193 = icmp ne i32 %1192, 0
  br i1 %1193, label %1501, label %1194

1194:                                             ; preds = %1191
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #9
  %1195 = load i32, ptr %29, align 4, !tbaa !9
  %1196 = icmp sgt i32 %1195, 0
  br i1 %1196, label %1197, label %1396

1197:                                             ; preds = %1194
  call void @llvm.lifetime.start.p0(i64 16, ptr %115) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %116) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #9
  %1198 = load i32, ptr %73, align 4, !tbaa !9
  %1199 = load i32, ptr %74, align 4, !tbaa !9
  %1200 = load i32, ptr %73, align 4, !tbaa !9
  %1201 = sub nsw i32 %1199, %1200
  %1202 = sdiv i32 %1201, 4
  %1203 = mul nsw i32 %1202, 4
  %1204 = add nsw i32 %1198, %1203
  store i32 %1204, ptr %117, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %119) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %121) #9
  %1205 = load i32, ptr %74, align 4, !tbaa !9
  %1206 = icmp sgt i32 %1205, 0
  br i1 %1206, label %1207, label %1223

1207:                                             ; preds = %1197
  %1208 = load ptr, ptr %45, align 8, !tbaa !5
  %1209 = load i32, ptr %74, align 4, !tbaa !9
  %1210 = sub nsw i32 %1209, 1
  %1211 = sext i32 %1210 to i64
  %1212 = getelementptr inbounds i32, ptr %1208, i64 %1211
  %1213 = load i32, ptr %1212, align 4, !tbaa !9
  %1214 = load ptr, ptr %80, align 8, !tbaa !5
  %1215 = load i32, ptr %74, align 4, !tbaa !9
  %1216 = sext i32 %1215 to i64
  %1217 = getelementptr inbounds i8, ptr %1214, i64 %1216
  %1218 = load i8, ptr %1217, align 1, !tbaa !11
  %1219 = zext i8 %1218 to i32
  %1220 = add nsw i32 %1213, %1219
  %1221 = load i32, ptr %31, align 4, !tbaa !9
  %1222 = sub nsw i32 %1220, %1221
  br label %1238

1223:                                             ; preds = %1197
  %1224 = load ptr, ptr %45, align 8, !tbaa !5
  %1225 = load i32, ptr %74, align 4, !tbaa !9
  %1226 = sext i32 %1225 to i64
  %1227 = getelementptr inbounds i32, ptr %1224, i64 %1226
  %1228 = load i32, ptr %1227, align 4, !tbaa !9
  %1229 = load ptr, ptr %81, align 8, !tbaa !5
  %1230 = load i32, ptr %74, align 4, !tbaa !9
  %1231 = sext i32 %1230 to i64
  %1232 = getelementptr inbounds i8, ptr %1229, i64 %1231
  %1233 = load i8, ptr %1232, align 1, !tbaa !11
  %1234 = zext i8 %1233 to i32
  %1235 = add nsw i32 %1228, %1234
  %1236 = load i32, ptr %31, align 4, !tbaa !9
  %1237 = sub nsw i32 %1235, %1236
  br label %1238

1238:                                             ; preds = %1223, %1207
  %1239 = phi i32 [ %1222, %1207 ], [ %1237, %1223 ]
  %1240 = load ptr, ptr %45, align 8, !tbaa !5
  %1241 = load i32, ptr %74, align 4, !tbaa !9
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr inbounds i32, ptr %1240, i64 %1242
  store i32 %1239, ptr %1243, align 4, !tbaa !9
  store i32 %1239, ptr %113, align 4, !tbaa !9
  %1244 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1244, ptr %114, align 4, !tbaa !9
  %1245 = load i32, ptr %113, align 4, !tbaa !9
  %1246 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %1245)
  store <2 x i64> %1246, ptr %119, align 16, !tbaa !11
  %1247 = load i32, ptr %114, align 4, !tbaa !9
  %1248 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %1247)
  store <2 x i64> %1248, ptr %120, align 16, !tbaa !11
  %1249 = load i8, ptr %22, align 1, !tbaa !11
  %1250 = sext i8 %1249 to i32
  %1251 = load i8, ptr %23, align 1, !tbaa !11
  %1252 = sext i8 %1251 to i32
  %1253 = add nsw i32 %1250, %1252
  %1254 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %1253)
  store <2 x i64> %1254, ptr %121, align 16, !tbaa !11
  %1255 = load i32, ptr %73, align 4, !tbaa !9
  store i32 %1255, ptr %30, align 4, !tbaa !9
  br label %1256

1256:                                             ; preds = %1324, %1238
  %1257 = load i32, ptr %30, align 4, !tbaa !9
  %1258 = load i32, ptr %117, align 4, !tbaa !9
  %1259 = icmp slt i32 %1257, %1258
  br i1 %1259, label %1260, label %1327

1260:                                             ; preds = %1256
  call void @llvm.lifetime.start.p0(i64 16, ptr %122) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %123) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %124) #9
  %1261 = load ptr, ptr %45, align 8, !tbaa !5
  %1262 = load i32, ptr %30, align 4, !tbaa !9
  %1263 = sext i32 %1262 to i64
  %1264 = getelementptr inbounds i32, ptr %1261, i64 %1263
  %1265 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %1264)
  store <2 x i64> %1265, ptr %122, align 16, !tbaa !11
  %1266 = load ptr, ptr %81, align 8, !tbaa !5
  %1267 = load i32, ptr %30, align 4, !tbaa !9
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds i8, ptr %1266, i64 %1268
  %1270 = load i8, ptr %1269, align 1, !tbaa !11
  %1271 = zext i8 %1270 to i32
  %1272 = load ptr, ptr %81, align 8, !tbaa !5
  %1273 = load i32, ptr %30, align 4, !tbaa !9
  %1274 = add nsw i32 %1273, 1
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr inbounds i8, ptr %1272, i64 %1275
  %1277 = load i8, ptr %1276, align 1, !tbaa !11
  %1278 = zext i8 %1277 to i32
  %1279 = load ptr, ptr %81, align 8, !tbaa !5
  %1280 = load i32, ptr %30, align 4, !tbaa !9
  %1281 = add nsw i32 %1280, 2
  %1282 = sext i32 %1281 to i64
  %1283 = getelementptr inbounds i8, ptr %1279, i64 %1282
  %1284 = load i8, ptr %1283, align 1, !tbaa !11
  %1285 = zext i8 %1284 to i32
  %1286 = load ptr, ptr %81, align 8, !tbaa !5
  %1287 = load i32, ptr %30, align 4, !tbaa !9
  %1288 = add nsw i32 %1287, 3
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds i8, ptr %1286, i64 %1289
  %1291 = load i8, ptr %1290, align 1, !tbaa !11
  %1292 = zext i8 %1291 to i32
  %1293 = call noundef <2 x i64> @_ZL14_mm_setr_epi32iiii(i32 noundef %1271, i32 noundef %1278, i32 noundef %1285, i32 noundef %1292)
  store <2 x i64> %1293, ptr %124, align 16, !tbaa !11
  %1294 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1295 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1296 = call noundef <2 x i64> @_ZL13_mm_add_epi32Dv2_xS_(<2 x i64> noundef %1294, <2 x i64> noundef %1295)
  store <2 x i64> %1296, ptr %122, align 16, !tbaa !11
  %1297 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1298 = load <2 x i64>, ptr %121, align 16, !tbaa !11
  %1299 = call noundef <2 x i64> @_ZL13_mm_sub_epi32Dv2_xS_(<2 x i64> noundef %1297, <2 x i64> noundef %1298)
  store <2 x i64> %1299, ptr %122, align 16, !tbaa !11
  %1300 = load ptr, ptr %45, align 8, !tbaa !5
  %1301 = load i32, ptr %30, align 4, !tbaa !9
  %1302 = sext i32 %1301 to i64
  %1303 = getelementptr inbounds i32, ptr %1300, i64 %1302
  %1304 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %1303, <2 x i64> noundef %1304)
  %1305 = load i32, ptr %30, align 4, !tbaa !9
  %1306 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %1305)
  store <2 x i64> %1306, ptr %124, align 16, !tbaa !11
  %1307 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1308 = load <2 x i64>, ptr %119, align 16, !tbaa !11
  %1309 = call noundef <2 x i64> @_ZL15_mm_cmpgt_epi32Dv2_xS_(<2 x i64> noundef %1307, <2 x i64> noundef %1308)
  store <2 x i64> %1309, ptr %123, align 16, !tbaa !11
  %1310 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1311 = load <2 x i64>, ptr %122, align 16, !tbaa !11
  %1312 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1310, <2 x i64> noundef %1311)
  %1313 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1314 = load <2 x i64>, ptr %119, align 16, !tbaa !11
  %1315 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1313, <2 x i64> noundef %1314)
  %1316 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1312, <2 x i64> noundef %1315)
  store <2 x i64> %1316, ptr %119, align 16, !tbaa !11
  %1317 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1318 = load <2 x i64>, ptr %124, align 16, !tbaa !11
  %1319 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %1317, <2 x i64> noundef %1318)
  %1320 = load <2 x i64>, ptr %123, align 16, !tbaa !11
  %1321 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  %1322 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %1320, <2 x i64> noundef %1321)
  %1323 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %1319, <2 x i64> noundef %1322)
  store <2 x i64> %1323, ptr %120, align 16, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 16, ptr %124) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %123) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %122) #9
  br label %1324

1324:                                             ; preds = %1260
  %1325 = load i32, ptr %30, align 4, !tbaa !9
  %1326 = add nsw i32 %1325, 4
  store i32 %1326, ptr %30, align 4, !tbaa !9
  br label %1256, !llvm.loop !21

1327:                                             ; preds = %1256
  %1328 = getelementptr inbounds [4 x i32], ptr %115, i64 0, i64 0
  %1329 = load <2 x i64>, ptr %119, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %1328, <2 x i64> noundef %1329)
  %1330 = getelementptr inbounds [4 x i32], ptr %116, i64 0, i64 0
  %1331 = load <2 x i64>, ptr %120, align 16, !tbaa !11
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %1330, <2 x i64> noundef %1331)
  store i32 0, ptr %118, align 4, !tbaa !9
  br label %1332

1332:                                             ; preds = %1354, %1327
  %1333 = load i32, ptr %118, align 4, !tbaa !9
  %1334 = icmp slt i32 %1333, 4
  br i1 %1334, label %1335, label %1357

1335:                                             ; preds = %1332
  %1336 = load i32, ptr %113, align 4, !tbaa !9
  %1337 = load i32, ptr %118, align 4, !tbaa !9
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds [4 x i32], ptr %115, i64 0, i64 %1338
  %1340 = load i32, ptr %1339, align 4, !tbaa !9
  %1341 = icmp slt i32 %1336, %1340
  br i1 %1341, label %1342, label %1353

1342:                                             ; preds = %1335
  %1343 = load i32, ptr %118, align 4, !tbaa !9
  %1344 = sext i32 %1343 to i64
  %1345 = getelementptr inbounds [4 x i32], ptr %115, i64 0, i64 %1344
  %1346 = load i32, ptr %1345, align 4, !tbaa !9
  store i32 %1346, ptr %113, align 4, !tbaa !9
  %1347 = load i32, ptr %118, align 4, !tbaa !9
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds [4 x i32], ptr %116, i64 0, i64 %1348
  %1350 = load i32, ptr %1349, align 4, !tbaa !9
  %1351 = load i32, ptr %118, align 4, !tbaa !9
  %1352 = add nsw i32 %1350, %1351
  store i32 %1352, ptr %114, align 4, !tbaa !9
  br label %1353

1353:                                             ; preds = %1342, %1335
  br label %1354

1354:                                             ; preds = %1353
  %1355 = load i32, ptr %118, align 4, !tbaa !9
  %1356 = add nsw i32 %1355, 1
  store i32 %1356, ptr %118, align 4, !tbaa !9
  br label %1332, !llvm.loop !22

1357:                                             ; preds = %1332
  br label %1358

1358:                                             ; preds = %1392, %1357
  %1359 = load i32, ptr %30, align 4, !tbaa !9
  %1360 = load i32, ptr %74, align 4, !tbaa !9
  %1361 = icmp slt i32 %1359, %1360
  br i1 %1361, label %1362, label %1395

1362:                                             ; preds = %1358
  %1363 = load ptr, ptr %81, align 8, !tbaa !5
  %1364 = load i32, ptr %30, align 4, !tbaa !9
  %1365 = sext i32 %1364 to i64
  %1366 = getelementptr inbounds i8, ptr %1363, i64 %1365
  %1367 = load i8, ptr %1366, align 1, !tbaa !11
  %1368 = zext i8 %1367 to i32
  %1369 = load i32, ptr %31, align 4, !tbaa !9
  %1370 = sub nsw i32 %1368, %1369
  %1371 = load ptr, ptr %45, align 8, !tbaa !5
  %1372 = load i32, ptr %30, align 4, !tbaa !9
  %1373 = sext i32 %1372 to i64
  %1374 = getelementptr inbounds i32, ptr %1371, i64 %1373
  %1375 = load i32, ptr %1374, align 4, !tbaa !9
  %1376 = add nsw i32 %1375, %1370
  store i32 %1376, ptr %1374, align 4, !tbaa !9
  %1377 = load ptr, ptr %45, align 8, !tbaa !5
  %1378 = load i32, ptr %30, align 4, !tbaa !9
  %1379 = sext i32 %1378 to i64
  %1380 = getelementptr inbounds i32, ptr %1377, i64 %1379
  %1381 = load i32, ptr %1380, align 4, !tbaa !9
  %1382 = load i32, ptr %113, align 4, !tbaa !9
  %1383 = icmp sgt i32 %1381, %1382
  br i1 %1383, label %1384, label %1391

1384:                                             ; preds = %1362
  %1385 = load ptr, ptr %45, align 8, !tbaa !5
  %1386 = load i32, ptr %30, align 4, !tbaa !9
  %1387 = sext i32 %1386 to i64
  %1388 = getelementptr inbounds i32, ptr %1385, i64 %1387
  %1389 = load i32, ptr %1388, align 4, !tbaa !9
  store i32 %1389, ptr %113, align 4, !tbaa !9
  %1390 = load i32, ptr %30, align 4, !tbaa !9
  store i32 %1390, ptr %114, align 4, !tbaa !9
  br label %1391

1391:                                             ; preds = %1384, %1362
  br label %1392

1392:                                             ; preds = %1391
  %1393 = load i32, ptr %30, align 4, !tbaa !9
  %1394 = add nsw i32 %1393, 1
  store i32 %1394, ptr %30, align 4, !tbaa !9
  br label %1358, !llvm.loop !23

1395:                                             ; preds = %1358
  call void @llvm.lifetime.end.p0(i64 16, ptr %121) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %119) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %116) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %115) #9
  br label %1410

1396:                                             ; preds = %1194
  %1397 = load ptr, ptr %81, align 8, !tbaa !5
  %1398 = getelementptr inbounds i8, ptr %1397, i64 0
  %1399 = load i8, ptr %1398, align 1, !tbaa !11
  %1400 = zext i8 %1399 to i32
  %1401 = load i32, ptr %31, align 4, !tbaa !9
  %1402 = sub nsw i32 %1400, %1401
  %1403 = load i32, ptr %31, align 4, !tbaa !9
  %1404 = sub nsw i32 %1402, %1403
  %1405 = load ptr, ptr %45, align 8, !tbaa !5
  %1406 = getelementptr inbounds i32, ptr %1405, i64 0
  store i32 %1404, ptr %1406, align 4, !tbaa !9
  %1407 = load ptr, ptr %45, align 8, !tbaa !5
  %1408 = getelementptr inbounds i32, ptr %1407, i64 0
  %1409 = load i32, ptr %1408, align 4, !tbaa !9
  store i32 %1409, ptr %113, align 4, !tbaa !9
  store i32 0, ptr %114, align 4, !tbaa !9
  br label %1410

1410:                                             ; preds = %1396, %1395
  %1411 = load i32, ptr %74, align 4, !tbaa !9
  %1412 = load i32, ptr %18, align 4, !tbaa !9
  %1413 = sub nsw i32 %1412, 1
  %1414 = icmp eq i32 %1411, %1413
  br i1 %1414, label %1415, label %1438

1415:                                             ; preds = %1410
  %1416 = load ptr, ptr %45, align 8, !tbaa !5
  %1417 = load i32, ptr %74, align 4, !tbaa !9
  %1418 = sext i32 %1417 to i64
  %1419 = getelementptr inbounds i32, ptr %1416, i64 %1418
  %1420 = load i32, ptr %1419, align 4, !tbaa !9
  %1421 = load ptr, ptr %28, align 8, !tbaa !5
  %1422 = getelementptr inbounds %struct.ksw_extz_t, ptr %1421, i32 0, i32 5
  %1423 = load i32, ptr %1422, align 4, !tbaa !24
  %1424 = icmp sgt i32 %1420, %1423
  br i1 %1424, label %1425, label %1438

1425:                                             ; preds = %1415
  %1426 = load ptr, ptr %45, align 8, !tbaa !5
  %1427 = load i32, ptr %74, align 4, !tbaa !9
  %1428 = sext i32 %1427 to i64
  %1429 = getelementptr inbounds i32, ptr %1426, i64 %1428
  %1430 = load i32, ptr %1429, align 4, !tbaa !9
  %1431 = load ptr, ptr %28, align 8, !tbaa !5
  %1432 = getelementptr inbounds %struct.ksw_extz_t, ptr %1431, i32 0, i32 5
  store i32 %1430, ptr %1432, align 4, !tbaa !24
  %1433 = load i32, ptr %29, align 4, !tbaa !9
  %1434 = load i32, ptr %72, align 4, !tbaa !9
  %1435 = sub nsw i32 %1433, %1434
  %1436 = load ptr, ptr %28, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.ksw_extz_t, ptr %1436, i32 0, i32 6
  store i32 %1435, ptr %1437, align 8, !tbaa !26
  br label %1438

1438:                                             ; preds = %1425, %1415, %1410
  %1439 = load i32, ptr %29, align 4, !tbaa !9
  %1440 = load i32, ptr %73, align 4, !tbaa !9
  %1441 = sub nsw i32 %1439, %1440
  %1442 = load i32, ptr %16, align 4, !tbaa !9
  %1443 = sub nsw i32 %1442, 1
  %1444 = icmp eq i32 %1441, %1443
  br i1 %1444, label %1445, label %1466

1445:                                             ; preds = %1438
  %1446 = load ptr, ptr %45, align 8, !tbaa !5
  %1447 = load i32, ptr %73, align 4, !tbaa !9
  %1448 = sext i32 %1447 to i64
  %1449 = getelementptr inbounds i32, ptr %1446, i64 %1448
  %1450 = load i32, ptr %1449, align 4, !tbaa !9
  %1451 = load ptr, ptr %28, align 8, !tbaa !5
  %1452 = getelementptr inbounds %struct.ksw_extz_t, ptr %1451, i32 0, i32 3
  %1453 = load i32, ptr %1452, align 4, !tbaa !27
  %1454 = icmp sgt i32 %1450, %1453
  br i1 %1454, label %1455, label %1466

1455:                                             ; preds = %1445
  %1456 = load ptr, ptr %45, align 8, !tbaa !5
  %1457 = load i32, ptr %73, align 4, !tbaa !9
  %1458 = sext i32 %1457 to i64
  %1459 = getelementptr inbounds i32, ptr %1456, i64 %1458
  %1460 = load i32, ptr %1459, align 4, !tbaa !9
  %1461 = load ptr, ptr %28, align 8, !tbaa !5
  %1462 = getelementptr inbounds %struct.ksw_extz_t, ptr %1461, i32 0, i32 3
  store i32 %1460, ptr %1462, align 4, !tbaa !27
  %1463 = load i32, ptr %73, align 4, !tbaa !9
  %1464 = load ptr, ptr %28, align 8, !tbaa !5
  %1465 = getelementptr inbounds %struct.ksw_extz_t, ptr %1464, i32 0, i32 4
  store i32 %1463, ptr %1465, align 8, !tbaa !28
  br label %1466

1466:                                             ; preds = %1455, %1445, %1438
  %1467 = load ptr, ptr %28, align 8, !tbaa !5
  %1468 = load i32, ptr %113, align 4, !tbaa !9
  %1469 = load i32, ptr %29, align 4, !tbaa !9
  %1470 = load i32, ptr %114, align 4, !tbaa !9
  %1471 = load i32, ptr %25, align 4, !tbaa !9
  %1472 = load i8, ptr %23, align 1, !tbaa !11
  %1473 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %1467, i32 noundef 1, i32 noundef %1468, i32 noundef %1469, i32 noundef %1470, i32 noundef %1471, i8 noundef signext %1472)
  %1474 = icmp ne i32 %1473, 0
  br i1 %1474, label %1475, label %1476

1475:                                             ; preds = %1466
  store i32 11, ptr %70, align 4
  br label %1498

1476:                                             ; preds = %1466
  %1477 = load i32, ptr %29, align 4, !tbaa !9
  %1478 = load i32, ptr %16, align 4, !tbaa !9
  %1479 = load i32, ptr %18, align 4, !tbaa !9
  %1480 = add nsw i32 %1478, %1479
  %1481 = sub nsw i32 %1480, 2
  %1482 = icmp eq i32 %1477, %1481
  br i1 %1482, label %1483, label %1497

1483:                                             ; preds = %1476
  %1484 = load i32, ptr %74, align 4, !tbaa !9
  %1485 = load i32, ptr %18, align 4, !tbaa !9
  %1486 = sub nsw i32 %1485, 1
  %1487 = icmp eq i32 %1484, %1486
  br i1 %1487, label %1488, label %1497

1488:                                             ; preds = %1483
  %1489 = load ptr, ptr %45, align 8, !tbaa !5
  %1490 = load i32, ptr %18, align 4, !tbaa !9
  %1491 = sub nsw i32 %1490, 1
  %1492 = sext i32 %1491 to i64
  %1493 = getelementptr inbounds i32, ptr %1489, i64 %1492
  %1494 = load i32, ptr %1493, align 4, !tbaa !9
  %1495 = load ptr, ptr %28, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.ksw_extz_t, ptr %1495, i32 0, i32 7
  store i32 %1494, ptr %1496, align 4, !tbaa !29
  br label %1497

1497:                                             ; preds = %1488, %1483, %1476
  store i32 0, ptr %70, align 4
  br label %1498

1498:                                             ; preds = %1497, %1475
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #9
  %1499 = load i32, ptr %70, align 4
  switch i32 %1499, label %1631 [
    i32 0, label %1500
  ]

1500:                                             ; preds = %1498
  br label %1628

1501:                                             ; preds = %1191
  %1502 = load i32, ptr %29, align 4, !tbaa !9
  %1503 = icmp sgt i32 %1502, 0
  br i1 %1503, label %1504, label %1602

1504:                                             ; preds = %1501
  %1505 = load i32, ptr %47, align 4, !tbaa !9
  %1506 = load i32, ptr %73, align 4, !tbaa !9
  %1507 = icmp sge i32 %1505, %1506
  br i1 %1507, label %1508, label %1554

1508:                                             ; preds = %1504
  %1509 = load i32, ptr %47, align 4, !tbaa !9
  %1510 = load i32, ptr %74, align 4, !tbaa !9
  %1511 = icmp sle i32 %1509, %1510
  br i1 %1511, label %1512, label %1554

1512:                                             ; preds = %1508
  %1513 = load i32, ptr %47, align 4, !tbaa !9
  %1514 = add nsw i32 %1513, 1
  %1515 = load i32, ptr %73, align 4, !tbaa !9
  %1516 = icmp sge i32 %1514, %1515
  br i1 %1516, label %1517, label %1554

1517:                                             ; preds = %1512
  %1518 = load i32, ptr %47, align 4, !tbaa !9
  %1519 = add nsw i32 %1518, 1
  %1520 = load i32, ptr %74, align 4, !tbaa !9
  %1521 = icmp sle i32 %1519, %1520
  br i1 %1521, label %1522, label %1554

1522:                                             ; preds = %1517
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #9
  %1523 = load ptr, ptr %81, align 8, !tbaa !5
  %1524 = load i32, ptr %47, align 4, !tbaa !9
  %1525 = sext i32 %1524 to i64
  %1526 = getelementptr inbounds i8, ptr %1523, i64 %1525
  %1527 = load i8, ptr %1526, align 1, !tbaa !11
  %1528 = zext i8 %1527 to i32
  %1529 = load i32, ptr %31, align 4, !tbaa !9
  %1530 = sub nsw i32 %1528, %1529
  store i32 %1530, ptr %125, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #9
  %1531 = load ptr, ptr %80, align 8, !tbaa !5
  %1532 = load i32, ptr %47, align 4, !tbaa !9
  %1533 = add nsw i32 %1532, 1
  %1534 = sext i32 %1533 to i64
  %1535 = getelementptr inbounds i8, ptr %1531, i64 %1534
  %1536 = load i8, ptr %1535, align 1, !tbaa !11
  %1537 = zext i8 %1536 to i32
  %1538 = load i32, ptr %31, align 4, !tbaa !9
  %1539 = sub nsw i32 %1537, %1538
  store i32 %1539, ptr %126, align 4, !tbaa !9
  %1540 = load i32, ptr %125, align 4, !tbaa !9
  %1541 = load i32, ptr %126, align 4, !tbaa !9
  %1542 = icmp sgt i32 %1540, %1541
  br i1 %1542, label %1543, label %1547

1543:                                             ; preds = %1522
  %1544 = load i32, ptr %125, align 4, !tbaa !9
  %1545 = load i32, ptr %46, align 4, !tbaa !9
  %1546 = add nsw i32 %1545, %1544
  store i32 %1546, ptr %46, align 4, !tbaa !9
  br label %1553

1547:                                             ; preds = %1522
  %1548 = load i32, ptr %126, align 4, !tbaa !9
  %1549 = load i32, ptr %46, align 4, !tbaa !9
  %1550 = add nsw i32 %1549, %1548
  store i32 %1550, ptr %46, align 4, !tbaa !9
  %1551 = load i32, ptr %47, align 4, !tbaa !9
  %1552 = add nsw i32 %1551, 1
  store i32 %1552, ptr %47, align 4, !tbaa !9
  br label %1553

1553:                                             ; preds = %1547, %1543
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #9
  br label %1587

1554:                                             ; preds = %1517, %1512, %1508, %1504
  %1555 = load i32, ptr %47, align 4, !tbaa !9
  %1556 = load i32, ptr %73, align 4, !tbaa !9
  %1557 = icmp sge i32 %1555, %1556
  br i1 %1557, label %1558, label %1573

1558:                                             ; preds = %1554
  %1559 = load i32, ptr %47, align 4, !tbaa !9
  %1560 = load i32, ptr %74, align 4, !tbaa !9
  %1561 = icmp sle i32 %1559, %1560
  br i1 %1561, label %1562, label %1573

1562:                                             ; preds = %1558
  %1563 = load ptr, ptr %81, align 8, !tbaa !5
  %1564 = load i32, ptr %47, align 4, !tbaa !9
  %1565 = sext i32 %1564 to i64
  %1566 = getelementptr inbounds i8, ptr %1563, i64 %1565
  %1567 = load i8, ptr %1566, align 1, !tbaa !11
  %1568 = zext i8 %1567 to i32
  %1569 = load i32, ptr %31, align 4, !tbaa !9
  %1570 = sub nsw i32 %1568, %1569
  %1571 = load i32, ptr %46, align 4, !tbaa !9
  %1572 = add nsw i32 %1571, %1570
  store i32 %1572, ptr %46, align 4, !tbaa !9
  br label %1586

1573:                                             ; preds = %1558, %1554
  %1574 = load i32, ptr %47, align 4, !tbaa !9
  %1575 = add nsw i32 %1574, 1
  store i32 %1575, ptr %47, align 4, !tbaa !9
  %1576 = load ptr, ptr %80, align 8, !tbaa !5
  %1577 = load i32, ptr %47, align 4, !tbaa !9
  %1578 = sext i32 %1577 to i64
  %1579 = getelementptr inbounds i8, ptr %1576, i64 %1578
  %1580 = load i8, ptr %1579, align 1, !tbaa !11
  %1581 = zext i8 %1580 to i32
  %1582 = load i32, ptr %31, align 4, !tbaa !9
  %1583 = sub nsw i32 %1581, %1582
  %1584 = load i32, ptr %46, align 4, !tbaa !9
  %1585 = add nsw i32 %1584, %1583
  store i32 %1585, ptr %46, align 4, !tbaa !9
  br label %1586

1586:                                             ; preds = %1573, %1562
  br label %1587

1587:                                             ; preds = %1586, %1553
  %1588 = load i32, ptr %27, align 4, !tbaa !9
  %1589 = and i32 %1588, 16
  %1590 = icmp ne i32 %1589, 0
  br i1 %1590, label %1591, label %1601

1591:                                             ; preds = %1587
  %1592 = load ptr, ptr %28, align 8, !tbaa !5
  %1593 = load i32, ptr %46, align 4, !tbaa !9
  %1594 = load i32, ptr %29, align 4, !tbaa !9
  %1595 = load i32, ptr %47, align 4, !tbaa !9
  %1596 = load i32, ptr %25, align 4, !tbaa !9
  %1597 = load i8, ptr %23, align 1, !tbaa !11
  %1598 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %1592, i32 noundef 1, i32 noundef %1593, i32 noundef %1594, i32 noundef %1595, i32 noundef %1596, i8 noundef signext %1597)
  %1599 = icmp ne i32 %1598, 0
  br i1 %1599, label %1600, label %1601

1600:                                             ; preds = %1591
  store i32 11, ptr %70, align 4
  br label %1631

1601:                                             ; preds = %1591, %1587
  br label %1611

1602:                                             ; preds = %1501
  %1603 = load ptr, ptr %81, align 8, !tbaa !5
  %1604 = getelementptr inbounds i8, ptr %1603, i64 0
  %1605 = load i8, ptr %1604, align 1, !tbaa !11
  %1606 = zext i8 %1605 to i32
  %1607 = load i32, ptr %31, align 4, !tbaa !9
  %1608 = sub nsw i32 %1606, %1607
  %1609 = load i32, ptr %31, align 4, !tbaa !9
  %1610 = sub nsw i32 %1608, %1609
  store i32 %1610, ptr %46, align 4, !tbaa !9
  store i32 0, ptr %47, align 4, !tbaa !9
  br label %1611

1611:                                             ; preds = %1602, %1601
  %1612 = load i32, ptr %29, align 4, !tbaa !9
  %1613 = load i32, ptr %16, align 4, !tbaa !9
  %1614 = load i32, ptr %18, align 4, !tbaa !9
  %1615 = add nsw i32 %1613, %1614
  %1616 = sub nsw i32 %1615, 2
  %1617 = icmp eq i32 %1612, %1616
  br i1 %1617, label %1618, label %1627

1618:                                             ; preds = %1611
  %1619 = load i32, ptr %74, align 4, !tbaa !9
  %1620 = load i32, ptr %18, align 4, !tbaa !9
  %1621 = sub nsw i32 %1620, 1
  %1622 = icmp eq i32 %1619, %1621
  br i1 %1622, label %1623, label %1627

1623:                                             ; preds = %1618
  %1624 = load i32, ptr %46, align 4, !tbaa !9
  %1625 = load ptr, ptr %28, align 8, !tbaa !5
  %1626 = getelementptr inbounds %struct.ksw_extz_t, ptr %1625, i32 0, i32 7
  store i32 %1624, ptr %1626, align 4, !tbaa !29
  br label %1627

1627:                                             ; preds = %1623, %1618, %1611
  br label %1628

1628:                                             ; preds = %1627, %1500
  %1629 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %1629, ptr %37, align 4, !tbaa !9
  %1630 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1630, ptr %38, align 4, !tbaa !9
  store i32 0, ptr %70, align 4
  br label %1631

1631:                                             ; preds = %1628, %1600, %1498, %531
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  %1632 = load i32, ptr %70, align 4
  switch i32 %1632, label %1758 [
    i32 0, label %1633
    i32 11, label %1637
  ]

1633:                                             ; preds = %1631
  br label %1634

1634:                                             ; preds = %1633
  %1635 = load i32, ptr %29, align 4, !tbaa !9
  %1636 = add nsw i32 %1635, 1
  store i32 %1636, ptr %29, align 4, !tbaa !9
  br label %465, !llvm.loop !30

1637:                                             ; preds = %1631, %465
  %1638 = load ptr, ptr %50, align 8, !tbaa !5
  call void @seq_free(ptr noundef %1638)
  %1639 = load i32, ptr %44, align 4, !tbaa !9
  %1640 = icmp ne i32 %1639, 0
  br i1 %1640, label %1643, label %1641

1641:                                             ; preds = %1637
  %1642 = load ptr, ptr %45, align 8, !tbaa !5
  call void @seq_free(ptr noundef %1642)
  br label %1643

1643:                                             ; preds = %1641, %1637
  %1644 = load i32, ptr %43, align 4, !tbaa !9
  %1645 = icmp ne i32 %1644, 0
  br i1 %1645, label %1646, label %1754

1646:                                             ; preds = %1643
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #9
  %1647 = load i32, ptr %27, align 4, !tbaa !9
  %1648 = and i32 %1647, 128
  %1649 = icmp ne i32 %1648, 0
  %1650 = xor i1 %1649, true
  %1651 = xor i1 %1650, true
  %1652 = zext i1 %1651 to i32
  store i32 %1652, ptr %127, align 4, !tbaa !9
  %1653 = load ptr, ptr %28, align 8, !tbaa !5
  %1654 = load i32, ptr %1653, align 8
  %1655 = lshr i32 %1654, 31
  %1656 = icmp ne i32 %1655, 0
  br i1 %1656, label %1679, label %1657

1657:                                             ; preds = %1646
  %1658 = load i32, ptr %27, align 4, !tbaa !9
  %1659 = and i32 %1658, 64
  %1660 = icmp ne i32 %1659, 0
  br i1 %1660, label %1679, label %1661

1661:                                             ; preds = %1657
  %1662 = load ptr, ptr %15, align 8, !tbaa !5
  %1663 = load i32, ptr %127, align 4, !tbaa !9
  %1664 = load ptr, ptr %69, align 8, !tbaa !5
  %1665 = load ptr, ptr %33, align 8, !tbaa !5
  %1666 = load ptr, ptr %34, align 8, !tbaa !5
  %1667 = load i32, ptr %32, align 4, !tbaa !9
  %1668 = mul nsw i32 %1667, 16
  %1669 = load i32, ptr %18, align 4, !tbaa !9
  %1670 = sub nsw i32 %1669, 1
  %1671 = load i32, ptr %16, align 4, !tbaa !9
  %1672 = sub nsw i32 %1671, 1
  %1673 = load ptr, ptr %28, align 8, !tbaa !5
  %1674 = getelementptr inbounds %struct.ksw_extz_t, ptr %1673, i32 0, i32 8
  %1675 = load ptr, ptr %28, align 8, !tbaa !5
  %1676 = getelementptr inbounds %struct.ksw_extz_t, ptr %1675, i32 0, i32 9
  %1677 = load ptr, ptr %28, align 8, !tbaa !5
  %1678 = getelementptr inbounds %struct.ksw_extz_t, ptr %1677, i32 0, i32 11
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %1662, i32 noundef 1, i32 noundef %1663, i32 noundef 0, ptr noundef %1664, ptr noundef %1665, ptr noundef %1666, i32 noundef %1668, i32 noundef %1670, i32 noundef %1672, ptr noundef %1674, ptr noundef %1676, ptr noundef %1678)
  br label %1751

1679:                                             ; preds = %1657, %1646
  %1680 = load ptr, ptr %28, align 8, !tbaa !5
  %1681 = load i32, ptr %1680, align 8
  %1682 = lshr i32 %1681, 31
  %1683 = icmp ne i32 %1682, 0
  br i1 %1683, label %1719, label %1684

1684:                                             ; preds = %1679
  %1685 = load i32, ptr %27, align 4, !tbaa !9
  %1686 = and i32 %1685, 64
  %1687 = icmp ne i32 %1686, 0
  br i1 %1687, label %1688, label %1719

1688:                                             ; preds = %1684
  %1689 = load ptr, ptr %28, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.ksw_extz_t, ptr %1689, i32 0, i32 3
  %1691 = load i32, ptr %1690, align 4, !tbaa !27
  %1692 = load i32, ptr %26, align 4, !tbaa !9
  %1693 = add nsw i32 %1691, %1692
  %1694 = load ptr, ptr %28, align 8, !tbaa !5
  %1695 = load i32, ptr %1694, align 8
  %1696 = and i32 %1695, 2147483647
  %1697 = icmp sgt i32 %1693, %1696
  br i1 %1697, label %1698, label %1719

1698:                                             ; preds = %1688
  %1699 = load ptr, ptr %28, align 8, !tbaa !5
  %1700 = getelementptr inbounds %struct.ksw_extz_t, ptr %1699, i32 0, i32 10
  store i32 1, ptr %1700, align 8, !tbaa !31
  %1701 = load ptr, ptr %15, align 8, !tbaa !5
  %1702 = load i32, ptr %127, align 4, !tbaa !9
  %1703 = load ptr, ptr %69, align 8, !tbaa !5
  %1704 = load ptr, ptr %33, align 8, !tbaa !5
  %1705 = load ptr, ptr %34, align 8, !tbaa !5
  %1706 = load i32, ptr %32, align 4, !tbaa !9
  %1707 = mul nsw i32 %1706, 16
  %1708 = load ptr, ptr %28, align 8, !tbaa !5
  %1709 = getelementptr inbounds %struct.ksw_extz_t, ptr %1708, i32 0, i32 4
  %1710 = load i32, ptr %1709, align 8, !tbaa !28
  %1711 = load i32, ptr %16, align 4, !tbaa !9
  %1712 = sub nsw i32 %1711, 1
  %1713 = load ptr, ptr %28, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.ksw_extz_t, ptr %1713, i32 0, i32 8
  %1715 = load ptr, ptr %28, align 8, !tbaa !5
  %1716 = getelementptr inbounds %struct.ksw_extz_t, ptr %1715, i32 0, i32 9
  %1717 = load ptr, ptr %28, align 8, !tbaa !5
  %1718 = getelementptr inbounds %struct.ksw_extz_t, ptr %1717, i32 0, i32 11
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %1701, i32 noundef 1, i32 noundef %1702, i32 noundef 0, ptr noundef %1703, ptr noundef %1704, ptr noundef %1705, i32 noundef %1707, i32 noundef %1710, i32 noundef %1712, ptr noundef %1714, ptr noundef %1716, ptr noundef %1718)
  br label %1750

1719:                                             ; preds = %1688, %1684, %1679
  %1720 = load ptr, ptr %28, align 8, !tbaa !5
  %1721 = getelementptr inbounds %struct.ksw_extz_t, ptr %1720, i32 0, i32 2
  %1722 = load i32, ptr %1721, align 8, !tbaa !32
  %1723 = icmp sge i32 %1722, 0
  br i1 %1723, label %1724, label %1749

1724:                                             ; preds = %1719
  %1725 = load ptr, ptr %28, align 8, !tbaa !5
  %1726 = getelementptr inbounds %struct.ksw_extz_t, ptr %1725, i32 0, i32 1
  %1727 = load i32, ptr %1726, align 4, !tbaa !33
  %1728 = icmp sge i32 %1727, 0
  br i1 %1728, label %1729, label %1749

1729:                                             ; preds = %1724
  %1730 = load ptr, ptr %15, align 8, !tbaa !5
  %1731 = load i32, ptr %127, align 4, !tbaa !9
  %1732 = load ptr, ptr %69, align 8, !tbaa !5
  %1733 = load ptr, ptr %33, align 8, !tbaa !5
  %1734 = load ptr, ptr %34, align 8, !tbaa !5
  %1735 = load i32, ptr %32, align 4, !tbaa !9
  %1736 = mul nsw i32 %1735, 16
  %1737 = load ptr, ptr %28, align 8, !tbaa !5
  %1738 = getelementptr inbounds %struct.ksw_extz_t, ptr %1737, i32 0, i32 2
  %1739 = load i32, ptr %1738, align 8, !tbaa !32
  %1740 = load ptr, ptr %28, align 8, !tbaa !5
  %1741 = getelementptr inbounds %struct.ksw_extz_t, ptr %1740, i32 0, i32 1
  %1742 = load i32, ptr %1741, align 4, !tbaa !33
  %1743 = load ptr, ptr %28, align 8, !tbaa !5
  %1744 = getelementptr inbounds %struct.ksw_extz_t, ptr %1743, i32 0, i32 8
  %1745 = load ptr, ptr %28, align 8, !tbaa !5
  %1746 = getelementptr inbounds %struct.ksw_extz_t, ptr %1745, i32 0, i32 9
  %1747 = load ptr, ptr %28, align 8, !tbaa !5
  %1748 = getelementptr inbounds %struct.ksw_extz_t, ptr %1747, i32 0, i32 11
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %1730, i32 noundef 1, i32 noundef %1731, i32 noundef 0, ptr noundef %1732, ptr noundef %1733, ptr noundef %1734, i32 noundef %1736, i32 noundef %1739, i32 noundef %1742, ptr noundef %1744, ptr noundef %1746, ptr noundef %1748)
  br label %1749

1749:                                             ; preds = %1729, %1724, %1719
  br label %1750

1750:                                             ; preds = %1749, %1698
  br label %1751

1751:                                             ; preds = %1750, %1661
  %1752 = load ptr, ptr %51, align 8, !tbaa !5
  call void @seq_free(ptr noundef %1752)
  %1753 = load ptr, ptr %33, align 8, !tbaa !5
  call void @seq_free(ptr noundef %1753)
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #9
  br label %1754

1754:                                             ; preds = %1751, %1643
  store i32 0, ptr %70, align 4
  br label %1755

1755:                                             ; preds = %1754, %340, %154
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  %1756 = load i32, ptr %70, align 4
  switch i32 %1756, label %1758 [
    i32 0, label %1757
    i32 1, label %1757
  ]

1757:                                             ; preds = %1755, %1755
  ret void

1758:                                             ; preds = %1755, %1631
  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

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) #5

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

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

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

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

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef, <2 x i64> noundef) #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> @_ZL17_mm_cvtsi32_si128i(i32 noundef) #6

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, 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) #6

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

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

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

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

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

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

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

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

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

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

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

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: readwrite) }
attributes #6 = { 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 #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 #9 = { nounwind }
attributes #10 = { noreturn nounwind }

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

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


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

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

; Function Attrs: mustprogress uwtable
define dso_local void @ksw_extz2_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, i32 noundef %9, i32 noundef %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
  %.not746 = 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, 1
  %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 %620, label %26

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

.lr.ph.preheader:                                 ; preds = %26
  %69 = add nsw i64 %42, -1
  %min.iters.check = icmp ult i32 %41, 9
  br i1 %min.iters.check, label %.lr.ph.preheader975, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %69, -8
  %ind.end = or disjoint i64 %n.vec, 1
  %minmax.ident.splatinsert = insertelement <4 x i32> poison, i32 %67, 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 ], [ %74, %vector.body ]
  %vec.phi935 = phi <4 x i32> [ %minmax.ident.splat, %vector.ph ], [ %75, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %70 = getelementptr inbounds i8, ptr %6, i64 %offset.idx
  %71 = getelementptr inbounds i8, ptr %70, i64 4
  %wide.load = load <4 x i8>, ptr %70, align 1, !tbaa !5
  %wide.load936 = load <4 x i8>, ptr %71, align 1, !tbaa !5
  %72 = sext <4 x i8> %wide.load to <4 x i32>
  %73 = sext <4 x i8> %wide.load936 to <4 x i32>
  %74 = tail call <4 x i32> @llvm.smin.v4i32(<4 x i32> %vec.phi, <4 x i32> %72)
  %75 = tail call <4 x i32> @llvm.smin.v4i32(<4 x i32> %vec.phi935, <4 x i32> %73)
  %index.next = add nuw i64 %index, 8
  %76 = icmp eq i64 %index.next, %n.vec
  br i1 %76, 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> %74, <4 x i32> %75)
  %77 = tail call i32 @llvm.vector.reduce.smin.v4i32(<4 x i32> %rdx.minmax)
  %cmp.n = icmp eq i64 %69, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %.lr.ph.preheader975

.lr.ph.preheader975:                              ; preds = %middle.block, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 1, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %.0693811.ph = phi i32 [ %67, %.lr.ph.preheader ], [ %77, %middle.block ]
  br label %.lr.ph

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

._crit_edge:                                      ; preds = %.lr.ph, %middle.block, %26
  %.0693.lcssa = phi i32 [ %67, %26 ], [ %77, %middle.block ], [ %81, %.lr.ph ]
  %82 = sub nsw i32 0, %.0693.lcssa
  %83 = icmp slt i32 %29, %82
  br i1 %83, label %620, label %84

84:                                               ; preds = %._crit_edge
  %85 = mul nuw nsw i32 %57, 6
  %86 = add nuw nsw i32 %65, 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 %57 to i64
  %95 = getelementptr <2 x i64>, ptr %93, i64 %94
  %96 = getelementptr <2 x i64>, ptr %95, i64 %94
  %97 = getelementptr <2 x i64>, ptr %96, i64 %94
  %98 = getelementptr <2 x i64>, ptr %97, i64 %94
  %99 = getelementptr <2 x i64>, ptr %98, i64 %94
  %100 = and i32 %56, 2147483632
  %101 = zext nneg i32 %100 to i64
  %102 = getelementptr i8, ptr %99, i64 %101
  br i1 %.not746, label %103, label %.loopexit810

103:                                              ; preds = %84
  %104 = shl nsw i32 %100, 2
  %105 = zext nneg i32 %104 to i64
  %106 = tail call ptr @seq_alloc_atomic(i64 noundef %105)
  %.not872 = icmp eq i32 %100, 0
  br i1 %.not872, label %.loopexit810, label %vector.body944

vector.body944:                                   ; preds = %103, %vector.body944
  %index945 = phi i64 [ %index.next946, %vector.body944 ], [ 0, %103 ]
  %107 = getelementptr inbounds i32, ptr %106, i64 %index945
  %108 = getelementptr inbounds i8, ptr %107, i64 16
  store <4 x i32> <i32 -1073741824, i32 -1073741824, i32 -1073741824, i32 -1073741824>, ptr %107, align 4, !tbaa !13
  store <4 x i32> <i32 -1073741824, i32 -1073741824, i32 -1073741824, i32 -1073741824>, ptr %108, align 4, !tbaa !13
  %index.next946 = add nuw i64 %index945, 8
  %109 = icmp eq i64 %index.next946, %101
  br i1 %109, label %.loopexit810, label %vector.body944, !llvm.loop !15

.loopexit810:                                     ; preds = %vector.body944, %103, %84
  %.0694 = phi ptr [ null, %84 ], [ %106, %103 ], [ %106, %vector.body944 ]
  br i1 %.not, label %110, label %130

110:                                              ; preds = %.loopexit810
  %111 = add nsw i32 %1, -1
  %112 = add i32 %111, %3
  %113 = zext nneg i32 %112 to i64
  %114 = zext nneg i32 %63 to i64
  %115 = shl nuw nsw i64 %113, 4
  %116 = mul nuw i64 %115, %114
  %117 = add nuw i64 %116, 16
  %118 = tail call ptr @seq_alloc_atomic(i64 noundef %117)
  %119 = ptrtoint ptr %118 to i64
  %120 = add i64 %119, 15
  %121 = and i64 %120, -16
  %122 = inttoptr i64 %121 to ptr
  %123 = shl nuw nsw i64 %113, 3
  %124 = tail call ptr @seq_alloc_atomic(i64 noundef %123)
  %125 = zext nneg i32 %1 to i64
  %126 = getelementptr inbounds i32, ptr %124, i64 %125
  %127 = zext nneg i32 %3 to i64
  %128 = getelementptr inbounds i32, ptr %126, i64 %127
  %129 = getelementptr inbounds i8, ptr %128, i64 -4
  br label %130

130:                                              ; preds = %110, %.loopexit810
  %.0708 = phi ptr [ %122, %110 ], [ null, %.loopexit810 ]
  %.0707 = phi ptr [ %118, %110 ], [ null, %.loopexit810 ]
  %.0674 = phi ptr [ %129, %110 ], [ null, %.loopexit810 ]
  %.0673 = phi ptr [ %124, %110 ], [ null, %.loopexit810 ]
  %131 = icmp sgt i32 %1, 0
  br i1 %131, label %iter.check, label %._crit_edge820

iter.check:                                       ; preds = %130
  %132 = zext nneg i32 %1 to i64
  %wide.trip.count888 = zext nneg i32 %1 to i64
  %invariant.gep = getelementptr i8, ptr %2, i64 %132
  %min.iters.check950 = icmp ult i32 %1, 8
  br i1 %min.iters.check950, label %.lr.ph819.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %iter.check
  %133 = mul nuw nsw i64 %94, 80
  %134 = getelementptr i8, ptr %93, i64 %133
  %135 = getelementptr i8, ptr %134, i64 %101
  %scevgep = getelementptr i8, ptr %135, i64 %wide.trip.count888
  %bound0 = icmp ult ptr %102, %invariant.gep
  %bound1 = icmp ugt ptr %scevgep, %2
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph819.preheader, label %vector.main.loop.iter.check

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

vector.ph953:                                     ; preds = %vector.main.loop.iter.check
  %n.vec955 = and i64 %wide.trip.count888, 2147483616
  br label %vector.body956

vector.body956:                                   ; preds = %vector.body956, %vector.ph953
  %index957 = phi i64 [ 0, %vector.ph953 ], [ %index.next961, %vector.body956 ]
  %136 = xor i64 %index957, -1
  %137 = getelementptr i8, ptr %invariant.gep, i64 %136
  %138 = getelementptr i8, ptr %137, i64 -15
  %139 = getelementptr i8, ptr %137, i64 -31
  %wide.load958 = load <16 x i8>, ptr %138, align 1, !tbaa !5, !alias.scope !16
  %reverse = shufflevector <16 x i8> %wide.load958, <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.load959 = load <16 x i8>, ptr %139, align 1, !tbaa !5, !alias.scope !16
  %reverse960 = shufflevector <16 x i8> %wide.load959, <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>
  %140 = getelementptr inbounds i8, ptr %102, i64 %index957
  %141 = getelementptr inbounds i8, ptr %140, i64 16
  store <16 x i8> %reverse, ptr %140, align 1, !tbaa !5, !alias.scope !19, !noalias !16
  store <16 x i8> %reverse960, ptr %141, align 1, !tbaa !5, !alias.scope !19, !noalias !16
  %index.next961 = add nuw i64 %index957, 32
  %142 = icmp eq i64 %index.next961, %n.vec955
  br i1 %142, label %middle.block948, label %vector.body956, !llvm.loop !21

middle.block948:                                  ; preds = %vector.body956
  %cmp.n962 = icmp eq i64 %n.vec955, %wide.trip.count888
  br i1 %cmp.n962, label %._crit_edge820, label %vec.epilog.iter.check

vec.epilog.iter.check:                            ; preds = %middle.block948
  %n.vec.remaining = and i64 %wide.trip.count888, 24
  %min.epilog.iters.check = icmp eq i64 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check, label %.lr.ph819.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.vec955, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
  %n.vec964 = and i64 %wide.trip.count888, 2147483640
  %invariant.gep987 = getelementptr i8, ptr %invariant.gep, i64 -7
  br label %vec.epilog.vector.body

vec.epilog.vector.body:                           ; preds = %vec.epilog.vector.body, %vec.epilog.ph
  %index966 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next969, %vec.epilog.vector.body ]
  %143 = xor i64 %index966, -1
  %gep988 = getelementptr i8, ptr %invariant.gep987, i64 %143
  %wide.load967 = load <8 x i8>, ptr %gep988, align 1, !tbaa !5, !alias.scope !22
  %reverse968 = shufflevector <8 x i8> %wide.load967, <8 x i8> poison, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
  %144 = getelementptr inbounds i8, ptr %102, i64 %index966
  store <8 x i8> %reverse968, ptr %144, align 1, !tbaa !5, !alias.scope !25, !noalias !22
  %index.next969 = add nuw i64 %index966, 8
  %145 = icmp eq i64 %index.next969, %n.vec964
  br i1 %145, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !27

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n970 = icmp eq i64 %n.vec964, %wide.trip.count888
  br i1 %cmp.n970, label %._crit_edge820, label %.lr.ph819.preheader

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

.lr.ph819.prol:                                   ; preds = %.lr.ph819.preheader, %.lr.ph819.prol
  %indvars.iv885.prol = phi i64 [ %indvars.iv.next886.prol, %.lr.ph819.prol ], [ %indvars.iv885.ph, %.lr.ph819.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph819.prol ], [ 0, %.lr.ph819.preheader ]
  %146 = xor i64 %indvars.iv885.prol, -1
  %gep.prol = getelementptr i8, ptr %invariant.gep, i64 %146
  %147 = load i8, ptr %gep.prol, align 1, !tbaa !5
  %148 = getelementptr inbounds i8, ptr %102, i64 %indvars.iv885.prol
  store i8 %147, ptr %148, align 1, !tbaa !5
  %indvars.iv.next886.prol = add nuw nsw i64 %indvars.iv885.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.ph819.prol.loopexit, label %.lr.ph819.prol, !llvm.loop !28

.lr.ph819.prol.loopexit:                          ; preds = %.lr.ph819.prol, %.lr.ph819.preheader
  %indvars.iv885.unr = phi i64 [ %indvars.iv885.ph, %.lr.ph819.preheader ], [ %indvars.iv.next886.prol, %.lr.ph819.prol ]
  %149 = sub nsw i64 %indvars.iv885.ph, %wide.trip.count888
  %150 = icmp ugt i64 %149, -4
  br i1 %150, label %._crit_edge820, label %.lr.ph819.preheader.new

.lr.ph819.preheader.new:                          ; preds = %.lr.ph819.prol.loopexit
  %invariant.gep989 = getelementptr i8, ptr %102, i64 1
  %invariant.gep991 = getelementptr i8, ptr %102, i64 2
  %invariant.gep993 = getelementptr i8, ptr %102, i64 3
  br label %.lr.ph819

.lr.ph819:                                        ; preds = %.lr.ph819, %.lr.ph819.preheader.new
  %indvars.iv885 = phi i64 [ %indvars.iv885.unr, %.lr.ph819.preheader.new ], [ %indvars.iv.next886.3, %.lr.ph819 ]
  %151 = xor i64 %indvars.iv885, -1
  %gep = getelementptr i8, ptr %invariant.gep, i64 %151
  %152 = load i8, ptr %gep, align 1, !tbaa !5
  %153 = getelementptr inbounds i8, ptr %102, i64 %indvars.iv885
  store i8 %152, ptr %153, align 1, !tbaa !5
  %154 = sub i64 -2, %indvars.iv885
  %gep.1 = getelementptr i8, ptr %invariant.gep, i64 %154
  %155 = load i8, ptr %gep.1, align 1, !tbaa !5
  %gep990 = getelementptr i8, ptr %invariant.gep989, i64 %indvars.iv885
  store i8 %155, ptr %gep990, align 1, !tbaa !5
  %156 = sub i64 -3, %indvars.iv885
  %gep.2 = getelementptr i8, ptr %invariant.gep, i64 %156
  %157 = load i8, ptr %gep.2, align 1, !tbaa !5
  %gep992 = getelementptr i8, ptr %invariant.gep991, i64 %indvars.iv885
  store i8 %157, ptr %gep992, align 1, !tbaa !5
  %158 = sub i64 -4, %indvars.iv885
  %gep.3 = getelementptr i8, ptr %invariant.gep, i64 %158
  %159 = load i8, ptr %gep.3, align 1, !tbaa !5
  %gep994 = getelementptr i8, ptr %invariant.gep993, i64 %indvars.iv885
  store i8 %159, ptr %gep994, align 1, !tbaa !5
  %indvars.iv.next886.3 = add nuw nsw i64 %indvars.iv885, 4
  %exitcond889.not.3 = icmp eq i64 %indvars.iv.next886.3, %wide.trip.count888
  br i1 %exitcond889.not.3, label %._crit_edge820, label %.lr.ph819, !llvm.loop !30

._crit_edge820:                                   ; preds = %.lr.ph819.prol.loopexit, %.lr.ph819, %middle.block948, %vec.epilog.middle.block, %130
  %160 = zext nneg i32 %3 to i64
  tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %99, ptr align 1 %4, i64 %160, i1 false)
  %161 = add nuw nsw i32 %3, %1
  %162 = icmp sgt i32 %161, 1
  br i1 %162, label %.lr.ph870, label %.loopexit809

.lr.ph870:                                        ; preds = %._crit_edge820
  %163 = add nsw i32 %3, -1
  %164 = add nsw i32 %1, -1
  %165 = and i32 %12, 4
  %.not752 = icmp eq i32 %165, 0
  %166 = and i32 %12, 2
  %.not757 = icmp eq i32 %166, 0
  %167 = zext nneg i32 %63 to i64
  %168 = and i32 %12, 16
  %.not770 = icmp eq i32 %168, 0
  %169 = add nsw i32 %161, -2
  %170 = getelementptr inbounds i8, ptr %13, i64 28
  %171 = getelementptr inbounds i8, ptr %13, i64 20
  %172 = getelementptr inbounds i8, ptr %13, i64 24
  %173 = getelementptr inbounds i8, ptr %13, i64 12
  %174 = getelementptr inbounds i8, ptr %13, i64 16
  %175 = zext nneg i32 %163 to i64
  %176 = getelementptr inbounds i32, ptr %.0694, i64 %175
  %177 = sext i32 %164 to i64
  %178 = zext nneg i32 %1 to i64
  %179 = zext nneg i32 %169 to i64
  %smax914 = add nsw i32 %161, -1
  %wide.trip.count915 = zext nneg i32 %smax914 to i64
  %180 = getelementptr inbounds i8, ptr %15, i64 4
  %181 = getelementptr inbounds i8, ptr %16, i64 4
  %182 = getelementptr inbounds i8, ptr %15, i64 8
  %183 = getelementptr inbounds i8, ptr %16, i64 8
  %184 = getelementptr inbounds i8, ptr %15, i64 12
  %185 = getelementptr inbounds i8, ptr %16, i64 12
  %186 = sext i32 %163 to i64
  br label %187

187:                                              ; preds = %.lr.ph870, %578
  %indvars.iv911 = phi i64 [ 0, %.lr.ph870 ], [ %indvars.iv.next912, %578 ]
  %.0675866 = phi i32 [ -1, %.lr.ph870 ], [ %209, %578 ]
  %.0680865 = phi i32 [ -1, %.lr.ph870 ], [ %210, %578 ]
  %.0695864 = phi i32 [ 0, %.lr.ph870 ], [ %.5700.ph, %578 ]
  %.0701863 = phi i32 [ 0, %.lr.ph870 ], [ %.5706.ph, %578 ]
  %188 = trunc i64 %indvars.iv911 to i32
  %189 = add i32 %.0, %188
  %190 = lshr i32 %189, 1
  %191 = zext nneg i32 %190 to i64
  %sext = shl i64 %indvars.iv911, 32
  %192 = ashr exact i64 %sext, 32
  %smin = call i64 @llvm.smin.i64(i64 %191, i64 %192)
  %smin979 = call i64 @llvm.smin.i64(i64 %smin, i64 %186)
  %indvars913 = trunc i64 %indvars.iv911 to i32
  %193 = sub nsw i64 %177, %indvars.iv911
  %194 = getelementptr inbounds i8, ptr %102, i64 %193
  %195 = sub nsw i64 %indvars.iv911, %178
  %.inv = icmp slt i64 %195, 0
  %196 = trunc i64 %195 to i32
  %197 = add i32 %196, 1
  %spec.select = select i1 %.inv, i32 0, i32 %197
  %.0713 = call i32 @llvm.smin.i32(i32 %163, i32 %indvars913)
  %reass.sub = sub i32 %indvars913, %.0
  %198 = add i32 %reass.sub, 1
  %199 = ashr i32 %198, 1
  %.1712 = call i32 @llvm.smax.i32(i32 %spec.select, i32 %199)
  %200 = trunc i64 %indvars.iv911 to i32
  %201 = add i32 %.0, %200
  %202 = lshr i32 %201, 1
  %.1714 = call i32 @llvm.smin.i32(i32 %.0713, i32 %202)
  %203 = icmp sgt i32 %.1712, %.1714
  br i1 %203, label %204, label %207

204:                                              ; preds = %187
  %205 = load i32, ptr %13, align 8
  %206 = or i32 %205, -2147483648
  store i32 %206, ptr %13, align 8
  br label %.loopexit809

207:                                              ; preds = %187
  %208 = lshr i32 %.1712, 4
  %209 = and i32 %.1712, -16
  %210 = or i32 %.1714, 15
  %211 = icmp sgt i32 %209, 0
  br i1 %211, label %212, label %220

212:                                              ; preds = %207
  %213 = add nsw i32 %209, -1
  %.not748.not = icmp sle i32 %209, %.0675866
  %.not749 = icmp sgt i32 %213, %.0680865
  %or.cond776 = select i1 %.not748.not, i1 true, i1 %.not749
  br i1 %or.cond776, label %222, label %214

214:                                              ; preds = %212
  %215 = zext nneg i32 %213 to i64
  %216 = getelementptr inbounds i8, ptr %96, i64 %215
  %217 = load i8, ptr %216, align 1, !tbaa !5
  %218 = getelementptr inbounds i8, ptr %95, i64 %215
  %219 = load i8, ptr %218, align 1, !tbaa !5
  br label %222

220:                                              ; preds = %207
  %.not747 = icmp eq i64 %indvars.iv911, 0
  %221 = select i1 %.not747, i8 0, i8 %7
  br label %222

222:                                              ; preds = %212, %214, %220
  %.0716 = phi i8 [ %219, %214 ], [ %221, %220 ], [ 0, %212 ]
  %.0715 = phi i8 [ %217, %214 ], [ 0, %220 ], [ 0, %212 ]
  %223 = sext i32 %210 to i64
  %.not750 = icmp sgt i64 %indvars.iv911, %223
  br i1 %.not750, label %228, label %224

224:                                              ; preds = %222
  %225 = getelementptr inbounds i8, ptr %97, i64 %indvars.iv911
  store i8 0, ptr %225, align 1, !tbaa !5
  %.not751 = icmp eq i64 %indvars.iv911, 0
  %226 = select i1 %.not751, i8 0, i8 %7
  %227 = getelementptr inbounds i8, ptr %93, i64 %indvars.iv911
  store i8 %226, ptr %227, align 1, !tbaa !5
  br label %228

228:                                              ; preds = %224, %222
  %229 = call i32 @llvm.smax.i32(i32 %spec.select, i32 %199)
  %smax892 = sext i32 %229 to i64
  %230 = sext i32 %.1714 to i64
  br i1 %.not752, label %.lr.ph826, label %.lr.ph823

.lr.ph826:                                        ; preds = %228, %.lr.ph826
  %indvars.iv893 = phi i64 [ %indvars.iv.next894, %.lr.ph826 ], [ %smax892, %228 ]
  %231 = getelementptr inbounds i8, ptr %99, i64 %indvars.iv893
  %232 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %231)
  %233 = getelementptr inbounds i8, ptr %194, i64 %indvars.iv893
  %234 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %233)
  %235 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %232, <2 x i64> noundef %50)
  %236 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %234, <2 x i64> noundef %50)
  %237 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %235, <2 x i64> noundef %236)
  %238 = call noundef <2 x i64> @_ZL14_mm_cmpeq_epi8Dv2_xS_(<2 x i64> noundef %232, <2 x i64> noundef %234)
  %239 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %238, <2 x i64> noundef %40)
  %240 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %238, <2 x i64> noundef %37)
  %241 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %239, <2 x i64> noundef %240)
  %242 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %237, <2 x i64> noundef %241)
  %243 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %237, <2 x i64> noundef %48)
  %244 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %242, <2 x i64> noundef %243)
  %245 = getelementptr inbounds i8, ptr %98, i64 %indvars.iv893
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %245, <2 x i64> noundef %244)
  %indvars.iv.next894 = add nsw i64 %indvars.iv893, 16
  %.not753 = icmp sgt i64 %indvars.iv.next894, %230
  br i1 %.not753, label %.loopexit806, label %.lr.ph826, !llvm.loop !31

.lr.ph823:                                        ; preds = %228, %.lr.ph823
  %indvars.iv890 = phi i64 [ %indvars.iv.next891, %.lr.ph823 ], [ %smax892, %228 ]
  %246 = getelementptr inbounds i8, ptr %99, i64 %indvars.iv890
  %247 = load i8, ptr %246, align 1, !tbaa !5
  %248 = zext i8 %247 to i32
  %249 = mul nuw nsw i32 %248, %22
  %250 = getelementptr inbounds i8, ptr %194, i64 %indvars.iv890
  %251 = load i8, ptr %250, align 1, !tbaa !5
  %252 = zext i8 %251 to i32
  %253 = add nuw nsw i32 %249, %252
  %254 = zext nneg i32 %253 to i64
  %255 = getelementptr inbounds i8, ptr %6, i64 %254
  %256 = load i8, ptr %255, align 1, !tbaa !5
  %257 = getelementptr inbounds i8, ptr %98, i64 %indvars.iv890
  store i8 %256, ptr %257, align 1, !tbaa !5
  %indvars.iv.next891 = add nsw i64 %indvars.iv890, 1
  %.not754.not = icmp slt i64 %indvars.iv890, %230
  br i1 %.not754.not, label %.lr.ph823, label %.loopexit806, !llvm.loop !32

.loopexit806:                                     ; preds = %.lr.ph823, %.lr.ph826
  %258 = sext i8 %.0715 to i32
  %259 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %258)
  %260 = sext i8 %.0716 to i32
  %261 = call noundef <2 x i64> @_ZL17_mm_cvtsi32_si128i(i32 noundef %260)
  %262 = lshr i32 %.1714, 4
  %263 = sub nsw i32 %262, %208
  %.not755 = icmp sgt i32 %263, %62
  br i1 %.not755, label %264, label %265

264:                                              ; preds = %.loopexit806
  call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef nonnull @__PRETTY_FUNCTION__.ksw_extz2_sse) #10
  unreachable

265:                                              ; preds = %.loopexit806
  br i1 %.not, label %308, label %.preheader803

.preheader803:                                    ; preds = %265
  %.not756827 = icmp ugt i32 %208, %262
  br i1 %.not756827, label %.loopexit, label %.lr.ph831.preheader

.lr.ph831.preheader:                              ; preds = %.preheader803
  %266 = lshr i32 %.1712, 4
  %267 = zext nneg i32 %266 to i64
  %268 = zext nneg i32 %262 to i64
  br label %.lr.ph831

.lr.ph831:                                        ; preds = %.lr.ph831.preheader, %.lr.ph831
  %indvars.iv895 = phi i64 [ %267, %.lr.ph831.preheader ], [ %indvars.iv.next896, %.lr.ph831 ]
  %.0717829 = phi <2 x i64> [ %259, %.lr.ph831.preheader ], [ %276, %.lr.ph831 ]
  %.0720828 = phi <2 x i64> [ %261, %.lr.ph831.preheader ], [ %284, %.lr.ph831 ]
  %269 = getelementptr inbounds <2 x i64>, ptr %98, i64 %indvars.iv895
  %270 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %269)
  %271 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %270, <2 x i64> noundef %31)
  %272 = getelementptr inbounds <2 x i64>, ptr %96, i64 %indvars.iv895
  %273 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %272)
  %274 = bitcast <2 x i64> %273 to <16 x i8>
  %275 = shufflevector <16 x i8> %274, <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>
  %276 = bitcast <16 x i8> %275 to <2 x i64>
  %277 = 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> %274, <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>
  %278 = bitcast <16 x i8> %277 to <2 x i64>
  %279 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %278, <2 x i64> noundef %.0717829)
  %280 = getelementptr inbounds <2 x i64>, ptr %95, i64 %indvars.iv895
  %281 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %280)
  %282 = bitcast <2 x i64> %281 to <16 x i8>
  %283 = shufflevector <16 x i8> %282, <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>
  %284 = bitcast <16 x i8> %283 to <2 x i64>
  %285 = 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> %282, <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>
  %286 = bitcast <16 x i8> %285 to <2 x i64>
  %287 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %286, <2 x i64> noundef %.0720828)
  %288 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %279, <2 x i64> noundef %287)
  %289 = getelementptr inbounds <2 x i64>, ptr %93, i64 %indvars.iv895
  %290 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %289)
  %291 = getelementptr inbounds <2 x i64>, ptr %97, i64 %indvars.iv895
  %292 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %291)
  %293 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %292, <2 x i64> noundef %290)
  %294 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %271, <2 x i64> noundef %27)
  %295 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %271, <2 x i64> noundef %294)
  %296 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %295, <2 x i64> noundef %288)
  %297 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %296, <2 x i64> noundef %293)
  %298 = call noundef <2 x i64> @_ZL12_mm_min_epu8Dv2_xS_(<2 x i64> noundef %297, <2 x i64> noundef %53)
  %299 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %298, <2 x i64> noundef %287)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %289, <2 x i64> noundef %299)
  %300 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %298, <2 x i64> noundef %290)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %280, <2 x i64> noundef %300)
  %301 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %298, <2 x i64> noundef %28)
  %302 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %288, <2 x i64> noundef %301)
  %303 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %293, <2 x i64> noundef %301)
  %304 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %302, <2 x i64> noundef %27)
  %305 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %302, <2 x i64> noundef %304)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %272, <2 x i64> noundef %305)
  %306 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %303, <2 x i64> noundef %27)
  %307 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %303, <2 x i64> noundef %306)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %291, <2 x i64> noundef %307)
  %indvars.iv.next896 = add nuw nsw i64 %indvars.iv895, 1
  %.not756.not = icmp ult i64 %indvars.iv895, %268
  br i1 %.not756.not, label %.lr.ph831, label %.loopexit, !llvm.loop !33

308:                                              ; preds = %265
  %309 = mul nuw nsw i64 %indvars.iv911, %167
  %310 = getelementptr inbounds <2 x i64>, ptr %.0708, i64 %309
  %311 = zext nneg i32 %208 to i64
  %312 = sub nsw i64 0, %311
  %313 = getelementptr inbounds <2 x i64>, ptr %310, i64 %312
  %314 = getelementptr inbounds i32, ptr %.0673, i64 %indvars.iv911
  store i32 %209, ptr %314, align 4, !tbaa !13
  %315 = getelementptr inbounds i32, ptr %.0674, i64 %indvars.iv911
  store i32 %210, ptr %315, align 4, !tbaa !13
  %.not758838 = icmp ugt i32 %208, %262
  br i1 %.not757, label %316, label %370

316:                                              ; preds = %308
  br i1 %.not758838, label %.loopexit, label %.lr.ph843.preheader

.lr.ph843.preheader:                              ; preds = %316
  %317 = lshr i32 %.1712, 4
  %318 = zext nneg i32 %317 to i64
  %319 = zext nneg i32 %262 to i64
  br label %.lr.ph843

.lr.ph843:                                        ; preds = %.lr.ph843.preheader, %.lr.ph843
  %indvars.iv899 = phi i64 [ %318, %.lr.ph843.preheader ], [ %indvars.iv.next900, %.lr.ph843 ]
  %.1718840 = phi <2 x i64> [ %259, %.lr.ph843.preheader ], [ %327, %.lr.ph843 ]
  %.1721839 = phi <2 x i64> [ %261, %.lr.ph843.preheader ], [ %335, %.lr.ph843 ]
  %320 = getelementptr inbounds <2 x i64>, ptr %98, i64 %indvars.iv899
  %321 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %320)
  %322 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %321, <2 x i64> noundef %31)
  %323 = getelementptr inbounds <2 x i64>, ptr %96, i64 %indvars.iv899
  %324 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %323)
  %325 = bitcast <2 x i64> %324 to <16 x i8>
  %326 = shufflevector <16 x i8> %325, <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>
  %327 = bitcast <16 x i8> %326 to <2 x i64>
  %328 = 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> %325, <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>
  %329 = bitcast <16 x i8> %328 to <2 x i64>
  %330 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %329, <2 x i64> noundef %.1718840)
  %331 = getelementptr inbounds <2 x i64>, ptr %95, i64 %indvars.iv899
  %332 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %331)
  %333 = bitcast <2 x i64> %332 to <16 x i8>
  %334 = shufflevector <16 x i8> %333, <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>
  %335 = bitcast <16 x i8> %334 to <2 x i64>
  %336 = 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> %333, <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>
  %337 = bitcast <16 x i8> %336 to <2 x i64>
  %338 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %337, <2 x i64> noundef %.1721839)
  %339 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %330, <2 x i64> noundef %338)
  %340 = getelementptr inbounds <2 x i64>, ptr %93, i64 %indvars.iv899
  %341 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %340)
  %342 = getelementptr inbounds <2 x i64>, ptr %97, i64 %indvars.iv899
  %343 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %342)
  %344 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %343, <2 x i64> noundef %341)
  %345 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %339, <2 x i64> noundef %322)
  %346 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %345, <2 x i64> noundef %32)
  %347 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %322, <2 x i64> noundef %27)
  %348 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %322, <2 x i64> noundef %347)
  %349 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %348, <2 x i64> noundef %339)
  %350 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %344, <2 x i64> noundef %349)
  %351 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %350, <2 x i64> noundef %346)
  %352 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %350, <2 x i64> noundef %33)
  %353 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %351, <2 x i64> noundef %352)
  %354 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %349, <2 x i64> noundef %344)
  %355 = call noundef <2 x i64> @_ZL12_mm_min_epu8Dv2_xS_(<2 x i64> noundef %354, <2 x i64> noundef %53)
  %356 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %355, <2 x i64> noundef %338)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %340, <2 x i64> noundef %356)
  %357 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %355, <2 x i64> noundef %341)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %331, <2 x i64> noundef %357)
  %358 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %355, <2 x i64> noundef %28)
  %359 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %339, <2 x i64> noundef %358)
  %360 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %344, <2 x i64> noundef %358)
  %361 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %359, <2 x i64> noundef %27)
  %362 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %361, <2 x i64> noundef %359)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %323, <2 x i64> noundef %362)
  %363 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %361, <2 x i64> noundef %34)
  %364 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %353, <2 x i64> noundef %363)
  %365 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %360, <2 x i64> noundef %27)
  %366 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %365, <2 x i64> noundef %360)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %342, <2 x i64> noundef %366)
  %367 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %365, <2 x i64> noundef %35)
  %368 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %364, <2 x i64> noundef %367)
  %369 = getelementptr inbounds <2 x i64>, ptr %313, i64 %indvars.iv899
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %369, <2 x i64> noundef %368)
  %indvars.iv.next900 = add nuw nsw i64 %indvars.iv899, 1
  %.not758.not = icmp ult i64 %indvars.iv899, %319
  br i1 %.not758.not, label %.lr.ph843, label %.loopexit, !llvm.loop !34

370:                                              ; preds = %308
  br i1 %.not758838, label %.loopexit, label %.lr.ph837.preheader

.lr.ph837.preheader:                              ; preds = %370
  %371 = lshr i32 %.1712, 4
  %372 = zext nneg i32 %371 to i64
  %373 = zext nneg i32 %262 to i64
  br label %.lr.ph837

.lr.ph837:                                        ; preds = %.lr.ph837.preheader, %.lr.ph837
  %indvars.iv897 = phi i64 [ %372, %.lr.ph837.preheader ], [ %indvars.iv.next898, %.lr.ph837 ]
  %.2719834 = phi <2 x i64> [ %259, %.lr.ph837.preheader ], [ %381, %.lr.ph837 ]
  %.2722833 = phi <2 x i64> [ %261, %.lr.ph837.preheader ], [ %389, %.lr.ph837 ]
  %374 = getelementptr inbounds <2 x i64>, ptr %98, i64 %indvars.iv897
  %375 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %374)
  %376 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %375, <2 x i64> noundef %31)
  %377 = getelementptr inbounds <2 x i64>, ptr %96, i64 %indvars.iv897
  %378 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %377)
  %379 = bitcast <2 x i64> %378 to <16 x i8>
  %380 = shufflevector <16 x i8> %379, <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>
  %381 = bitcast <16 x i8> %380 to <2 x i64>
  %382 = 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> %379, <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>
  %383 = bitcast <16 x i8> %382 to <2 x i64>
  %384 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %383, <2 x i64> noundef %.2719834)
  %385 = getelementptr inbounds <2 x i64>, ptr %95, i64 %indvars.iv897
  %386 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %385)
  %387 = bitcast <2 x i64> %386 to <16 x i8>
  %388 = shufflevector <16 x i8> %387, <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>
  %389 = bitcast <16 x i8> %388 to <2 x i64>
  %390 = 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> %387, <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>
  %391 = bitcast <16 x i8> %390 to <2 x i64>
  %392 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %391, <2 x i64> noundef %.2722833)
  %393 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %384, <2 x i64> noundef %392)
  %394 = getelementptr inbounds <2 x i64>, ptr %93, i64 %indvars.iv897
  %395 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %394)
  %396 = getelementptr inbounds <2 x i64>, ptr %97, i64 %indvars.iv897
  %397 = call noundef <2 x i64> @_ZL14_mm_load_si128PKDv2_x(ptr noundef %396)
  %398 = call noundef <2 x i64> @_ZL12_mm_add_epi8Dv2_xS_(<2 x i64> noundef %397, <2 x i64> noundef %395)
  %399 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %376, <2 x i64> noundef %393)
  %400 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %399, <2 x i64> noundef %32)
  %401 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %376, <2 x i64> noundef %27)
  %402 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %376, <2 x i64> noundef %401)
  %403 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %402, <2 x i64> noundef %393)
  %404 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %403, <2 x i64> noundef %398)
  %405 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %404, <2 x i64> noundef %33)
  %406 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %404, <2 x i64> noundef %400)
  %407 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %405, <2 x i64> noundef %406)
  %408 = call noundef <2 x i64> @_ZL12_mm_max_epu8Dv2_xS_(<2 x i64> noundef %403, <2 x i64> noundef %398)
  %409 = call noundef <2 x i64> @_ZL12_mm_min_epu8Dv2_xS_(<2 x i64> noundef %408, <2 x i64> noundef %53)
  %410 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %409, <2 x i64> noundef %392)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %394, <2 x i64> noundef %410)
  %411 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %409, <2 x i64> noundef %395)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %385, <2 x i64> noundef %411)
  %412 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %409, <2 x i64> noundef %28)
  %413 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %393, <2 x i64> noundef %412)
  %414 = call noundef <2 x i64> @_ZL12_mm_sub_epi8Dv2_xS_(<2 x i64> noundef %398, <2 x i64> noundef %412)
  %415 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %27, <2 x i64> noundef %413)
  %416 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %415, <2 x i64> noundef %413)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %377, <2 x i64> noundef %416)
  %417 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %415, <2 x i64> noundef %34)
  %418 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %407, <2 x i64> noundef %417)
  %419 = call noundef <2 x i64> @_ZL14_mm_cmpgt_epi8Dv2_xS_(<2 x i64> noundef %27, <2 x i64> noundef %414)
  %420 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %419, <2 x i64> noundef %414)
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %396, <2 x i64> noundef %420)
  %421 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %419, <2 x i64> noundef %35)
  %422 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %418, <2 x i64> noundef %421)
  %423 = getelementptr inbounds <2 x i64>, ptr %313, i64 %indvars.iv897
  call void @_ZL15_mm_store_si128PDv2_xS_(ptr noundef %423, <2 x i64> noundef %422)
  %indvars.iv.next898 = add nuw nsw i64 %indvars.iv897, 1
  %.not759.not = icmp ult i64 %indvars.iv897, %373
  br i1 %.not759.not, label %.lr.ph837, label %.loopexit, !llvm.loop !35

.loopexit:                                        ; preds = %.lr.ph831, %.lr.ph837, %.lr.ph843, %.preheader803, %370, %316
  %.not760 = icmp eq i64 %indvars.iv911, 0
  br i1 %.not746, label %424, label %547

424:                                              ; preds = %.loopexit
  br i1 %.not760, label %519, label %425

425:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #11
  %426 = sub nsw i32 %.1714, %.1712
  %427 = icmp sgt i32 %.1714, 0
  %428 = zext nneg i32 %.1714 to i64
  %429 = add nsw i32 %.1714, -1
  %430 = getelementptr inbounds i8, ptr %93, i64 %428
  %.sink925 = select i1 %427, ptr %430, ptr %95
  %narrow = select i1 %427, i32 %429, i32 0
  %.sink922.in.idx = zext i32 %narrow to i64
  %.sink922.in = getelementptr inbounds i32, ptr %.0694, i64 %.sink922.in.idx
  %.sink922 = load i32, ptr %.sink922.in, align 4, !tbaa !13
  %431 = load i8, ptr %.sink925, align 1, !tbaa !5
  %432 = zext i8 %431 to i32
  %433 = add nsw i32 %.sink922, %432
  %434 = sub nsw i32 %433, %19
  %435 = getelementptr inbounds i32, ptr %.0694, i64 %428
  store i32 %434, ptr %435, align 4, !tbaa !13
  %436 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %434)
  %437 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %.1714)
  %438 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %19)
  %439 = icmp sgt i32 %426, 3
  br i1 %439, label %.lr.ph848.preheader, label %._crit_edge849

.lr.ph848.preheader:                              ; preds = %425
  %440 = and i32 %426, 2147483644
  %441 = add nsw i32 %440, %.1712
  %442 = call i32 @llvm.smax.i32(i32 %spec.select, i32 %199)
  %smax901 = sext i32 %442 to i64
  %443 = sext i32 %441 to i64
  br label %.lr.ph848

.lr.ph848:                                        ; preds = %.lr.ph848.preheader, %.lr.ph848
  %indvars.iv902 = phi i64 [ %smax901, %.lr.ph848.preheader ], [ %indvars.iv.next903, %.lr.ph848 ]
  %.0677845 = phi <2 x i64> [ %437, %.lr.ph848.preheader ], [ %469, %.lr.ph848 ]
  %.0678844 = phi <2 x i64> [ %436, %.lr.ph848.preheader ], [ %466, %.lr.ph848 ]
  %444 = getelementptr inbounds i32, ptr %.0694, i64 %indvars.iv902
  %445 = call noundef <2 x i64> @_ZL15_mm_loadu_si128PKDv2_x(ptr noundef %444)
  %446 = getelementptr inbounds i8, ptr %95, i64 %indvars.iv902
  %447 = load i8, ptr %446, align 1, !tbaa !5
  %448 = zext i8 %447 to i32
  %449 = getelementptr i8, ptr %446, i64 1
  %450 = load i8, ptr %449, align 1, !tbaa !5
  %451 = zext i8 %450 to i32
  %452 = getelementptr i8, ptr %446, i64 2
  %453 = load i8, ptr %452, align 1, !tbaa !5
  %454 = zext i8 %453 to i32
  %455 = getelementptr i8, ptr %446, i64 3
  %456 = load i8, ptr %455, align 1, !tbaa !5
  %457 = zext i8 %456 to i32
  %458 = call noundef <2 x i64> @_ZL14_mm_setr_epi32iiii(i32 noundef %448, i32 noundef %451, i32 noundef %454, i32 noundef %457)
  %459 = call noundef <2 x i64> @_ZL13_mm_add_epi32Dv2_xS_(<2 x i64> noundef %445, <2 x i64> noundef %458)
  %460 = call noundef <2 x i64> @_ZL13_mm_sub_epi32Dv2_xS_(<2 x i64> noundef %459, <2 x i64> noundef %438)
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef %444, <2 x i64> noundef %460)
  %461 = trunc nsw i64 %indvars.iv902 to i32
  %462 = call noundef <2 x i64> @_ZL14_mm_set1_epi32i(i32 noundef %461)
  %463 = call noundef <2 x i64> @_ZL15_mm_cmpgt_epi32Dv2_xS_(<2 x i64> noundef %460, <2 x i64> noundef %.0678844)
  %464 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %463, <2 x i64> noundef %460)
  %465 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %463, <2 x i64> noundef %.0678844)
  %466 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %464, <2 x i64> noundef %465)
  %467 = call noundef <2 x i64> @_ZL13_mm_and_si128Dv2_xS_(<2 x i64> noundef %463, <2 x i64> noundef %462)
  %468 = call noundef <2 x i64> @_ZL16_mm_andnot_si128Dv2_xS_(<2 x i64> noundef %463, <2 x i64> noundef %.0677845)
  %469 = call noundef <2 x i64> @_ZL12_mm_or_si128Dv2_xS_(<2 x i64> noundef %467, <2 x i64> noundef %468)
  %indvars.iv.next903 = add nsw i64 %indvars.iv902, 4
  %470 = icmp slt i64 %indvars.iv.next903, %443
  br i1 %470, label %.lr.ph848, label %._crit_edge849.loopexit, !llvm.loop !36

._crit_edge849.loopexit:                          ; preds = %.lr.ph848
  %471 = trunc nsw i64 %indvars.iv.next903 to i32
  br label %._crit_edge849

._crit_edge849:                                   ; preds = %._crit_edge849.loopexit, %425
  %.0678.lcssa = phi <2 x i64> [ %436, %425 ], [ %466, %._crit_edge849.loopexit ]
  %.0677.lcssa = phi <2 x i64> [ %437, %425 ], [ %469, %._crit_edge849.loopexit ]
  %.8.lcssa = phi i32 [ %.1712, %425 ], [ %471, %._crit_edge849.loopexit ]
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef nonnull %15, <2 x i64> noundef %.0678.lcssa)
  call void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef nonnull %16, <2 x i64> noundef %.0677.lcssa)
  %472 = load i32, ptr %15, align 16, !tbaa !13
  %473 = icmp slt i32 %434, %472
  %474 = load i32, ptr %16, align 16
  %spec.select926 = call i32 @llvm.smax.i32(i32 %434, i32 %472)
  %spec.select927 = select i1 %473, i32 %474, i32 %.1714
  %475 = load i32, ptr %180, align 4, !tbaa !13
  %476 = icmp slt i32 %spec.select926, %475
  %477 = load i32, ptr %181, align 4
  %478 = add nsw i32 %477, 1
  %.1688.1 = call i32 @llvm.smax.i32(i32 %spec.select926, i32 %475)
  %.1683.1 = select i1 %476, i32 %478, i32 %spec.select927
  %479 = load i32, ptr %182, align 8, !tbaa !13
  %480 = icmp slt i32 %.1688.1, %479
  %481 = load i32, ptr %183, align 8
  %482 = add nsw i32 %481, 2
  %.1688.2 = call i32 @llvm.smax.i32(i32 %.1688.1, i32 %479)
  %.1683.2 = select i1 %480, i32 %482, i32 %.1683.1
  %483 = load i32, ptr %184, align 4, !tbaa !13
  %484 = icmp slt i32 %.1688.2, %483
  %485 = load i32, ptr %185, align 4
  %486 = add nsw i32 %485, 3
  %.1688.3 = call i32 @llvm.smax.i32(i32 %.1688.2, i32 %483)
  %.1683.3 = select i1 %484, i32 %486, i32 %.1683.2
  %487 = icmp slt i32 %.8.lcssa, %.1714
  br i1 %487, label %.lr.ph859.preheader, label %._crit_edge860

.lr.ph859.preheader:                              ; preds = %._crit_edge849
  %488 = sext i32 %.8.lcssa to i64
  %489 = sext i32 %.1714 to i64
  %490 = sub i64 %smin979, %488
  %.neg = add nsw i64 %488, 1
  %xtraiter980 = and i64 %490, 1
  %lcmp.mod981.not = icmp eq i64 %xtraiter980, 0
  br i1 %lcmp.mod981.not, label %.lr.ph859.prol.loopexit, label %.lr.ph859.prol

.lr.ph859.prol:                                   ; preds = %.lr.ph859.preheader
  %491 = getelementptr inbounds i8, ptr %95, i64 %488
  %492 = load i8, ptr %491, align 1, !tbaa !5
  %493 = zext i8 %492 to i32
  %494 = sub nsw i32 %493, %19
  %495 = getelementptr inbounds i32, ptr %.0694, i64 %488
  %496 = load i32, ptr %495, align 4, !tbaa !13
  %497 = add nsw i32 %494, %496
  store i32 %497, ptr %495, align 4, !tbaa !13
  %498 = icmp sgt i32 %497, %.1688.3
  %spec.select777.prol = call i32 @llvm.smax.i32(i32 %497, i32 %.1688.3)
  %spec.select778.prol = select i1 %498, i32 %.8.lcssa, i32 %.1683.3
  %indvars.iv.next909.prol = add nsw i64 %488, 1
  br label %.lr.ph859.prol.loopexit

.lr.ph859.prol.loopexit:                          ; preds = %.lr.ph859.prol, %.lr.ph859.preheader
  %indvars.iv908.unr = phi i64 [ %488, %.lr.ph859.preheader ], [ %indvars.iv.next909.prol, %.lr.ph859.prol ]
  %.2684857.unr = phi i32 [ %.1683.3, %.lr.ph859.preheader ], [ %spec.select778.prol, %.lr.ph859.prol ]
  %.2689856.unr = phi i32 [ %.1688.3, %.lr.ph859.preheader ], [ %spec.select777.prol, %.lr.ph859.prol ]
  %spec.select777.lcssa.unr = phi i32 [ poison, %.lr.ph859.preheader ], [ %spec.select777.prol, %.lr.ph859.prol ]
  %spec.select778.lcssa.unr = phi i32 [ poison, %.lr.ph859.preheader ], [ %spec.select778.prol, %.lr.ph859.prol ]
  %499 = icmp eq i64 %smin979, %.neg
  br i1 %499, label %._crit_edge860, label %.lr.ph859

.lr.ph859:                                        ; preds = %.lr.ph859.prol.loopexit, %.lr.ph859
  %indvars.iv908 = phi i64 [ %indvars.iv.next909.1, %.lr.ph859 ], [ %indvars.iv908.unr, %.lr.ph859.prol.loopexit ]
  %.2684857 = phi i32 [ %spec.select778.1, %.lr.ph859 ], [ %.2684857.unr, %.lr.ph859.prol.loopexit ]
  %.2689856 = phi i32 [ %spec.select777.1, %.lr.ph859 ], [ %.2689856.unr, %.lr.ph859.prol.loopexit ]
  %500 = getelementptr inbounds i8, ptr %95, i64 %indvars.iv908
  %501 = load i8, ptr %500, align 1, !tbaa !5
  %502 = zext i8 %501 to i32
  %503 = sub nsw i32 %502, %19
  %504 = getelementptr inbounds i32, ptr %.0694, i64 %indvars.iv908
  %505 = load i32, ptr %504, align 4, !tbaa !13
  %506 = add nsw i32 %503, %505
  store i32 %506, ptr %504, align 4, !tbaa !13
  %507 = icmp sgt i32 %506, %.2689856
  %spec.select777 = call i32 @llvm.smax.i32(i32 %506, i32 %.2689856)
  %508 = trunc nsw i64 %indvars.iv908 to i32
  %spec.select778 = select i1 %507, i32 %508, i32 %.2684857
  %indvars.iv.next909 = add nsw i64 %indvars.iv908, 1
  %509 = getelementptr inbounds i8, ptr %95, i64 %indvars.iv.next909
  %510 = load i8, ptr %509, align 1, !tbaa !5
  %511 = zext i8 %510 to i32
  %512 = sub nsw i32 %511, %19
  %513 = getelementptr inbounds i32, ptr %.0694, i64 %indvars.iv.next909
  %514 = load i32, ptr %513, align 4, !tbaa !13
  %515 = add nsw i32 %512, %514
  store i32 %515, ptr %513, align 4, !tbaa !13
  %516 = icmp sgt i32 %515, %spec.select777
  %spec.select777.1 = call i32 @llvm.smax.i32(i32 %515, i32 %spec.select777)
  %517 = trunc nsw i64 %indvars.iv.next909 to i32
  %spec.select778.1 = select i1 %516, i32 %517, i32 %spec.select778
  %indvars.iv.next909.1 = add nsw i64 %indvars.iv908, 2
  %518 = icmp slt i64 %indvars.iv.next909.1, %489
  br i1 %518, label %.lr.ph859, label %._crit_edge860, !llvm.loop !37

._crit_edge860:                                   ; preds = %.lr.ph859.prol.loopexit, %.lr.ph859, %._crit_edge849
  %.2689.lcssa = phi i32 [ %.1688.3, %._crit_edge849 ], [ %spec.select777.lcssa.unr, %.lr.ph859.prol.loopexit ], [ %spec.select777.1, %.lr.ph859 ]
  %.2684.lcssa = phi i32 [ %.1683.3, %._crit_edge849 ], [ %spec.select778.lcssa.unr, %.lr.ph859.prol.loopexit ], [ %spec.select778.1, %.lr.ph859 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #11
  br label %523

519:                                              ; preds = %424
  %520 = load i8, ptr %95, align 16, !tbaa !5
  %521 = zext i8 %520 to i32
  %522 = sub nsw i32 %521, %29
  store i32 %522, ptr %.0694, align 4, !tbaa !13
  br label %523

523:                                              ; preds = %519, %._crit_edge860
  %.4691 = phi i32 [ %.2689.lcssa, %._crit_edge860 ], [ %522, %519 ]
  %.4686 = phi i32 [ %.2684.lcssa, %._crit_edge860 ], [ 0, %519 ]
  %524 = icmp ne i32 %.1714, %163
  br i1 %524, label %531, label %525

525:                                              ; preds = %523
  %526 = load i32, ptr %176, align 4, !tbaa !13
  %527 = load i32, ptr %171, align 4, !tbaa !38
  %528 = icmp sgt i32 %526, %527
  br i1 %528, label %529, label %531

529:                                              ; preds = %525
  store i32 %526, ptr %171, align 4, !tbaa !38
  %530 = sub nsw i32 %indvars913, %210
  store i32 %530, ptr %172, align 8, !tbaa !41
  br label %531

531:                                              ; preds = %529, %525, %523
  %532 = sub nsw i32 %indvars913, %.1712
  %533 = icmp eq i32 %532, %164
  br i1 %533, label %534, label %541

534:                                              ; preds = %531
  %535 = zext nneg i32 %.1712 to i64
  %536 = getelementptr inbounds i32, ptr %.0694, i64 %535
  %537 = load i32, ptr %536, align 4, !tbaa !13
  %538 = load i32, ptr %173, align 4, !tbaa !42
  %539 = icmp sgt i32 %537, %538
  br i1 %539, label %540, label %541

540:                                              ; preds = %534
  store i32 %537, ptr %173, align 4, !tbaa !42
  store i32 %.1712, ptr %174, align 8, !tbaa !43
  br label %541

541:                                              ; preds = %540, %534, %531
  %542 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %13, i32 noundef 1, i32 noundef %.4691, i32 noundef %indvars913, i32 noundef %.4686, i32 noundef %10, i8 noundef signext %8)
  %.not761 = icmp eq i32 %542, 0
  br i1 %.not761, label %543, label %.loopexit809

543:                                              ; preds = %541
  %544 = icmp ne i64 %indvars.iv911, %179
  %brmerge = or i1 %544, %524
  br i1 %brmerge, label %578, label %545

545:                                              ; preds = %543
  %546 = load i32, ptr %176, align 4, !tbaa !13
  br label %.sink.split

547:                                              ; preds = %.loopexit
  br i1 %.not760, label %571, label %548

548:                                              ; preds = %547
  %.not763 = icmp slt i32 %.0701863, %.1712
  %.not764 = icmp sgt i32 %.0701863, %.1714
  %or.cond781 = or i1 %.not764, %.not763
  br i1 %or.cond781, label %563, label %549

549:                                              ; preds = %548
  %.not766.not = icmp slt i32 %.0701863, %.1714
  br i1 %.not766.not, label %550, label %559

550:                                              ; preds = %549
  %551 = add nuw nsw i32 %.0701863, 1
  %552 = zext nneg i32 %.0701863 to i64
  %553 = getelementptr inbounds i8, ptr %95, i64 %552
  %554 = load i8, ptr %553, align 1, !tbaa !5
  %555 = zext nneg i32 %551 to i64
  %556 = getelementptr inbounds i8, ptr %93, i64 %555
  %557 = load i8, ptr %556, align 1, !tbaa !5
  %558 = icmp ugt i8 %554, %557
  %.0701. = select i1 %558, i32 %.0701863, i32 %551
  %. = call i8 @llvm.umax.i8(i8 %554, i8 %557)
  br label %568

559:                                              ; preds = %549
  %560 = zext nneg i32 %.0701863 to i64
  %561 = getelementptr inbounds i8, ptr %95, i64 %560
  %562 = load i8, ptr %561, align 1, !tbaa !5
  br label %568

563:                                              ; preds = %548
  %564 = add nsw i32 %.0701863, 1
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds i8, ptr %93, i64 %565
  %567 = load i8, ptr %566, align 1, !tbaa !5
  br label %568

568:                                              ; preds = %559, %563, %550
  %.2703 = phi i32 [ %.0701., %550 ], [ %.0701863, %559 ], [ %564, %563 ]
  %.pn769.pn.in = phi i8 [ %., %550 ], [ %562, %559 ], [ %567, %563 ]
  %.pn769.pn = zext i8 %.pn769.pn.in to i32
  %.pn768.pn = sub nsw i32 %.pn769.pn, %19
  %.2697 = add nsw i32 %.pn768.pn, %.0695864
  br i1 %.not770, label %575, label %569

569:                                              ; preds = %568
  %570 = call noundef i32 @_ZL15ksw_apply_zdropP10ksw_extz_tiiiiia(ptr noundef %13, i32 noundef 1, i32 noundef %.2697, i32 noundef %indvars913, i32 noundef %.2703, i32 noundef %10, i8 noundef signext %8)
  %.not771 = icmp eq i32 %570, 0
  br i1 %.not771, label %575, label %.sink.split928

571:                                              ; preds = %547
  %572 = load i8, ptr %95, align 16, !tbaa !5
  %573 = zext i8 %572 to i32
  %574 = sub nsw i32 %573, %29
  br label %575

575:                                              ; preds = %568, %569, %571
  %.3704 = phi i32 [ %.2703, %569 ], [ %.2703, %568 ], [ 0, %571 ]
  %.3698 = phi i32 [ %.2697, %569 ], [ %.2697, %568 ], [ %574, %571 ]
  %576 = icmp eq i64 %indvars.iv911, %179
  %577 = icmp eq i32 %.1714, %163
  %or.cond784 = and i1 %576, %577
  br i1 %or.cond784, label %.sink.split, label %578

.sink.split:                                      ; preds = %575, %545
  %.3698.sink = phi i32 [ %546, %545 ], [ %.3698, %575 ]
  %.5706.ph.ph = phi i32 [ %.0701863, %545 ], [ %.3704, %575 ]
  %.5700.ph.ph = phi i32 [ %.0695864, %545 ], [ %.3698, %575 ]
  store i32 %.3698.sink, ptr %170, align 4, !tbaa !44
  br label %578

578:                                              ; preds = %.sink.split, %575, %543
  %.5706.ph = phi i32 [ %.0701863, %543 ], [ %.3704, %575 ], [ %.5706.ph.ph, %.sink.split ]
  %.5700.ph = phi i32 [ %.0695864, %543 ], [ %.3698, %575 ], [ %.5700.ph.ph, %.sink.split ]
  %indvars.iv.next912 = add nuw nsw i64 %indvars.iv911, 1
  %exitcond916.not = icmp eq i64 %indvars.iv.next912, %wide.trip.count915
  br i1 %exitcond916.not, label %.loopexit809, label %187, !llvm.loop !45

.loopexit809:                                     ; preds = %578, %541, %._crit_edge820, %204
  call void @seq_free(ptr noundef %89)
  br i1 %.not746, label %.sink.split928, label %579

.sink.split928:                                   ; preds = %569, %.loopexit809
  %.sink929 = phi ptr [ %.0694, %.loopexit809 ], [ %89, %569 ]
  call void @seq_free(ptr noundef %.sink929)
  br label %579

579:                                              ; preds = %.sink.split928, %.loopexit809
  br i1 %.not, label %580, label %620

580:                                              ; preds = %579
  %581 = lshr i32 %12, 7
  %.lobit = and i32 %581, 1
  %582 = load i32, ptr %13, align 8
  %.not772 = icmp sgt i32 %582, -1
  %583 = and i32 %12, 64
  %.not773 = icmp eq i32 %583, 0
  %or.cond785 = and i1 %.not773, %.not772
  br i1 %or.cond785, label %584, label %591

584:                                              ; preds = %580
  %585 = shl nuw nsw i32 %63, 4
  %586 = add nsw i32 %3, -1
  %587 = add nsw i32 %1, -1
  %588 = getelementptr inbounds i8, ptr %13, i64 32
  %589 = getelementptr inbounds i8, ptr %13, i64 36
  %590 = getelementptr inbounds i8, ptr %13, i64 48
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %0, i32 noundef 1, i32 noundef %.lobit, i32 noundef 0, ptr noundef %.0708, ptr noundef %.0673, ptr noundef %.0674, i32 noundef %585, i32 noundef %586, i32 noundef %587, ptr noundef nonnull %588, ptr noundef nonnull %589, ptr noundef nonnull %590)
  br label %619

591:                                              ; preds = %580
  %.not774 = icmp slt i32 %582, 0
  %or.cond786 = or i1 %.not773, %.not774
  br i1 %or.cond786, label %606, label %592

592:                                              ; preds = %591
  %593 = getelementptr inbounds i8, ptr %13, i64 12
  %594 = load i32, ptr %593, align 4, !tbaa !42
  %595 = add nsw i32 %594, %11
  %596 = icmp sgt i32 %595, %582
  br i1 %596, label %597, label %606

597:                                              ; preds = %592
  %598 = getelementptr inbounds i8, ptr %13, i64 40
  store i32 1, ptr %598, align 8, !tbaa !46
  %599 = shl nuw nsw i32 %63, 4
  %600 = getelementptr inbounds i8, ptr %13, i64 16
  %601 = load i32, ptr %600, align 8, !tbaa !43
  %602 = add nsw i32 %1, -1
  %603 = getelementptr inbounds i8, ptr %13, i64 32
  %604 = getelementptr inbounds i8, ptr %13, i64 36
  %605 = getelementptr inbounds i8, ptr %13, i64 48
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %0, i32 noundef 1, i32 noundef %.lobit, i32 noundef 0, ptr noundef %.0708, ptr noundef %.0673, ptr noundef %.0674, i32 noundef %599, i32 noundef %601, i32 noundef %602, ptr noundef nonnull %603, ptr noundef nonnull %604, ptr noundef nonnull %605)
  br label %619

606:                                              ; preds = %592, %591
  %607 = getelementptr inbounds i8, ptr %13, i64 8
  %608 = load i32, ptr %607, align 8, !tbaa !47
  %609 = icmp sgt i32 %608, -1
  br i1 %609, label %610, label %619

610:                                              ; preds = %606
  %611 = getelementptr inbounds i8, ptr %13, i64 4
  %612 = load i32, ptr %611, align 4, !tbaa !48
  %613 = icmp sgt i32 %612, -1
  br i1 %613, label %614, label %619

614:                                              ; preds = %610
  %615 = shl nuw nsw i32 %63, 4
  %616 = getelementptr inbounds i8, ptr %13, i64 32
  %617 = getelementptr inbounds i8, ptr %13, i64 36
  %618 = getelementptr inbounds i8, ptr %13, i64 48
  call void @_ZL13ksw_backtrackPviiiPKhPKiS3_iiiPiS4_PPj(ptr noundef %0, i32 noundef 1, i32 noundef %.lobit, i32 noundef 0, ptr noundef %.0708, ptr noundef %.0673, ptr noundef %.0674, i32 noundef %615, i32 noundef %608, i32 noundef %612, ptr noundef nonnull %616, ptr noundef nonnull %617, ptr noundef nonnull %618)
  br label %619

619:                                              ; preds = %597, %614, %610, %606, %584
  call void @seq_free(ptr noundef %.0707)
  call void @seq_free(ptr noundef %.0673)
  br label %620

620:                                              ; preds = %579, %619, %._crit_edge, %14
  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

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) #5

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

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

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

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

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

; Function Attrs: alwaysinline mustprogress nounwind uwtable
declare hidden void @_ZL16_mm_storeu_si128PDv2_xS_(ptr noundef, <2 x i64> noundef) local_unnamed_addr #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> @_ZL17_mm_cvtsi32_si128i(i32 noundef) local_unnamed_addr #6

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, 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 #6

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

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

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

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

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

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

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

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

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

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

; 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 #8

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smin.i64(i64, i64) #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 = { 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: readwrite) }
attributes #6 = { 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 #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #10 = { noreturn nounwind }
attributes #11 = { nounwind }

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

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


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