; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (clalsa)

; 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.complex = type { float, float }

@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b9 = external hidden global float, align 4
@c_b10 = external hidden global float, align 4
@c__2 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @clalsa_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25) #0 {
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.complex, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca { float, float }, align 4
  %110 = alloca { float, float }, align 4
  %111 = alloca { float, float }, align 4
  %112 = alloca { float, float }, align 4
  store ptr %0, ptr %27, align 8, !tbaa !5
  store ptr %1, ptr %28, align 8, !tbaa !5
  store ptr %2, ptr %29, align 8, !tbaa !5
  store ptr %3, ptr %30, align 8, !tbaa !5
  store ptr %4, ptr %31, align 8, !tbaa !5
  store ptr %5, ptr %32, align 8, !tbaa !5
  store ptr %6, ptr %33, align 8, !tbaa !5
  store ptr %7, ptr %34, align 8, !tbaa !5
  store ptr %8, ptr %35, align 8, !tbaa !5
  store ptr %9, ptr %36, align 8, !tbaa !5
  store ptr %10, ptr %37, align 8, !tbaa !5
  store ptr %11, ptr %38, align 8, !tbaa !5
  store ptr %12, ptr %39, align 8, !tbaa !5
  store ptr %13, ptr %40, align 8, !tbaa !5
  store ptr %14, ptr %41, align 8, !tbaa !5
  store ptr %15, ptr %42, align 8, !tbaa !5
  store ptr %16, ptr %43, align 8, !tbaa !5
  store ptr %17, ptr %44, align 8, !tbaa !5
  store ptr %18, ptr %45, align 8, !tbaa !5
  store ptr %19, ptr %46, align 8, !tbaa !5
  store ptr %20, ptr %47, align 8, !tbaa !5
  store ptr %21, ptr %48, align 8, !tbaa !5
  store ptr %22, ptr %49, align 8, !tbaa !5
  store ptr %23, ptr %50, align 8, !tbaa !5
  store ptr %24, ptr %51, align 8, !tbaa !5
  store ptr %25, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #5
  %113 = load ptr, ptr %32, align 8, !tbaa !5
  %114 = load i32, ptr %113, align 4, !tbaa !9
  store i32 %114, ptr %71, align 4, !tbaa !9
  %115 = load i32, ptr %71, align 4, !tbaa !9
  %116 = mul nsw i32 %115, 1
  %117 = add nsw i32 1, %116
  store i32 %117, ptr %72, align 4, !tbaa !9
  %118 = load i32, ptr %72, align 4, !tbaa !9
  %119 = load ptr, ptr %31, align 8, !tbaa !5
  %120 = sext i32 %118 to i64
  %121 = sub i64 0, %120
  %122 = getelementptr inbounds %struct.complex, ptr %119, i64 %121
  store ptr %122, ptr %31, align 8, !tbaa !5
  %123 = load ptr, ptr %34, align 8, !tbaa !5
  %124 = load i32, ptr %123, align 4, !tbaa !9
  store i32 %124, ptr %73, align 4, !tbaa !9
  %125 = load i32, ptr %73, align 4, !tbaa !9
  %126 = mul nsw i32 %125, 1
  %127 = add nsw i32 1, %126
  store i32 %127, ptr %74, align 4, !tbaa !9
  %128 = load i32, ptr %74, align 4, !tbaa !9
  %129 = load ptr, ptr %33, align 8, !tbaa !5
  %130 = sext i32 %128 to i64
  %131 = sub i64 0, %130
  %132 = getelementptr inbounds %struct.complex, ptr %129, i64 %131
  store ptr %132, ptr %33, align 8, !tbaa !5
  %133 = load ptr, ptr %36, align 8, !tbaa !5
  %134 = load i32, ptr %133, align 4, !tbaa !9
  store i32 %134, ptr %61, align 4, !tbaa !9
  %135 = load i32, ptr %61, align 4, !tbaa !9
  %136 = mul nsw i32 %135, 1
  %137 = add nsw i32 1, %136
  store i32 %137, ptr %62, align 4, !tbaa !9
  %138 = load i32, ptr %62, align 4, !tbaa !9
  %139 = load ptr, ptr %47, align 8, !tbaa !5
  %140 = sext i32 %138 to i64
  %141 = sub i64 0, %140
  %142 = getelementptr inbounds float, ptr %139, i64 %141
  store ptr %142, ptr %47, align 8, !tbaa !5
  %143 = load ptr, ptr %36, align 8, !tbaa !5
  %144 = load i32, ptr %143, align 4, !tbaa !9
  store i32 %144, ptr %63, align 4, !tbaa !9
  %145 = load i32, ptr %63, align 4, !tbaa !9
  %146 = mul nsw i32 %145, 1
  %147 = add nsw i32 1, %146
  store i32 %147, ptr %64, align 4, !tbaa !9
  %148 = load i32, ptr %64, align 4, !tbaa !9
  %149 = load ptr, ptr %42, align 8, !tbaa !5
  %150 = sext i32 %148 to i64
  %151 = sub i64 0, %150
  %152 = getelementptr inbounds float, ptr %149, i64 %151
  store ptr %152, ptr %42, align 8, !tbaa !5
  %153 = load ptr, ptr %36, align 8, !tbaa !5
  %154 = load i32, ptr %153, align 4, !tbaa !9
  store i32 %154, ptr %69, align 4, !tbaa !9
  %155 = load i32, ptr %69, align 4, !tbaa !9
  %156 = mul nsw i32 %155, 1
  %157 = add nsw i32 1, %156
  store i32 %157, ptr %70, align 4, !tbaa !9
  %158 = load i32, ptr %70, align 4, !tbaa !9
  %159 = load ptr, ptr %41, align 8, !tbaa !5
  %160 = sext i32 %158 to i64
  %161 = sub i64 0, %160
  %162 = getelementptr inbounds float, ptr %159, i64 %161
  store ptr %162, ptr %41, align 8, !tbaa !5
  %163 = load ptr, ptr %36, align 8, !tbaa !5
  %164 = load i32, ptr %163, align 4, !tbaa !9
  store i32 %164, ptr %59, align 4, !tbaa !9
  %165 = load i32, ptr %59, align 4, !tbaa !9
  %166 = mul nsw i32 %165, 1
  %167 = add nsw i32 1, %166
  store i32 %167, ptr %60, align 4, !tbaa !9
  %168 = load i32, ptr %60, align 4, !tbaa !9
  %169 = load ptr, ptr %40, align 8, !tbaa !5
  %170 = sext i32 %168 to i64
  %171 = sub i64 0, %170
  %172 = getelementptr inbounds float, ptr %169, i64 %171
  store ptr %172, ptr %40, align 8, !tbaa !5
  %173 = load ptr, ptr %36, align 8, !tbaa !5
  %174 = load i32, ptr %173, align 4, !tbaa !9
  store i32 %174, ptr %57, align 4, !tbaa !9
  %175 = load i32, ptr %57, align 4, !tbaa !9
  %176 = mul nsw i32 %175, 1
  %177 = add nsw i32 1, %176
  store i32 %177, ptr %58, align 4, !tbaa !9
  %178 = load i32, ptr %58, align 4, !tbaa !9
  %179 = load ptr, ptr %39, align 8, !tbaa !5
  %180 = sext i32 %178 to i64
  %181 = sub i64 0, %180
  %182 = getelementptr inbounds float, ptr %179, i64 %181
  store ptr %182, ptr %39, align 8, !tbaa !5
  %183 = load ptr, ptr %36, align 8, !tbaa !5
  %184 = load i32, ptr %183, align 4, !tbaa !9
  store i32 %184, ptr %67, align 4, !tbaa !9
  %185 = load i32, ptr %67, align 4, !tbaa !9
  %186 = mul nsw i32 %185, 1
  %187 = add nsw i32 1, %186
  store i32 %187, ptr %68, align 4, !tbaa !9
  %188 = load i32, ptr %68, align 4, !tbaa !9
  %189 = load ptr, ptr %37, align 8, !tbaa !5
  %190 = sext i32 %188 to i64
  %191 = sub i64 0, %190
  %192 = getelementptr inbounds float, ptr %189, i64 %191
  store ptr %192, ptr %37, align 8, !tbaa !5
  %193 = load ptr, ptr %36, align 8, !tbaa !5
  %194 = load i32, ptr %193, align 4, !tbaa !9
  store i32 %194, ptr %65, align 4, !tbaa !9
  %195 = load i32, ptr %65, align 4, !tbaa !9
  %196 = mul nsw i32 %195, 1
  %197 = add nsw i32 1, %196
  store i32 %197, ptr %66, align 4, !tbaa !9
  %198 = load i32, ptr %66, align 4, !tbaa !9
  %199 = load ptr, ptr %35, align 8, !tbaa !5
  %200 = sext i32 %198 to i64
  %201 = sub i64 0, %200
  %202 = getelementptr inbounds float, ptr %199, i64 %201
  store ptr %202, ptr %35, align 8, !tbaa !5
  %203 = load ptr, ptr %38, align 8, !tbaa !5
  %204 = getelementptr inbounds i32, ptr %203, i32 -1
  store ptr %204, ptr %38, align 8, !tbaa !5
  %205 = load ptr, ptr %43, align 8, !tbaa !5
  %206 = getelementptr inbounds i32, ptr %205, i32 -1
  store ptr %206, ptr %43, align 8, !tbaa !5
  %207 = load ptr, ptr %45, align 8, !tbaa !5
  %208 = load i32, ptr %207, align 4, !tbaa !9
  store i32 %208, ptr %55, align 4, !tbaa !9
  %209 = load i32, ptr %55, align 4, !tbaa !9
  %210 = mul nsw i32 %209, 1
  %211 = add nsw i32 1, %210
  store i32 %211, ptr %56, align 4, !tbaa !9
  %212 = load i32, ptr %56, align 4, !tbaa !9
  %213 = load ptr, ptr %46, align 8, !tbaa !5
  %214 = sext i32 %212 to i64
  %215 = sub i64 0, %214
  %216 = getelementptr inbounds i32, ptr %213, i64 %215
  store ptr %216, ptr %46, align 8, !tbaa !5
  %217 = load ptr, ptr %45, align 8, !tbaa !5
  %218 = load i32, ptr %217, align 4, !tbaa !9
  store i32 %218, ptr %53, align 4, !tbaa !9
  %219 = load i32, ptr %53, align 4, !tbaa !9
  %220 = mul nsw i32 %219, 1
  %221 = add nsw i32 1, %220
  store i32 %221, ptr %54, align 4, !tbaa !9
  %222 = load i32, ptr %54, align 4, !tbaa !9
  %223 = load ptr, ptr %44, align 8, !tbaa !5
  %224 = sext i32 %222 to i64
  %225 = sub i64 0, %224
  %226 = getelementptr inbounds i32, ptr %223, i64 %225
  store ptr %226, ptr %44, align 8, !tbaa !5
  %227 = load ptr, ptr %48, align 8, !tbaa !5
  %228 = getelementptr inbounds float, ptr %227, i32 -1
  store ptr %228, ptr %48, align 8, !tbaa !5
  %229 = load ptr, ptr %49, align 8, !tbaa !5
  %230 = getelementptr inbounds float, ptr %229, i32 -1
  store ptr %230, ptr %49, align 8, !tbaa !5
  %231 = load ptr, ptr %50, align 8, !tbaa !5
  %232 = getelementptr inbounds float, ptr %231, i32 -1
  store ptr %232, ptr %50, align 8, !tbaa !5
  %233 = load ptr, ptr %51, align 8, !tbaa !5
  %234 = getelementptr inbounds i32, ptr %233, i32 -1
  store ptr %234, ptr %51, align 8, !tbaa !5
  %235 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 0, ptr %235, align 4, !tbaa !9
  %236 = load ptr, ptr %27, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = icmp slt i32 %237, 0
  br i1 %238, label %243, label %239

239:                                              ; preds = %26
  %240 = load ptr, ptr %27, align 8, !tbaa !5
  %241 = load i32, ptr %240, align 4, !tbaa !9
  %242 = icmp sgt i32 %241, 1
  br i1 %242, label %243, label %245

243:                                              ; preds = %239, %26
  %244 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -1, ptr %244, align 4, !tbaa !9
  br label %304

245:                                              ; preds = %239
  %246 = load ptr, ptr %28, align 8, !tbaa !5
  %247 = load i32, ptr %246, align 4, !tbaa !9
  %248 = icmp slt i32 %247, 3
  br i1 %248, label %249, label %251

249:                                              ; preds = %245
  %250 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -2, ptr %250, align 4, !tbaa !9
  br label %303

251:                                              ; preds = %245
  %252 = load ptr, ptr %29, align 8, !tbaa !5
  %253 = load i32, ptr %252, align 4, !tbaa !9
  %254 = load ptr, ptr %28, align 8, !tbaa !5
  %255 = load i32, ptr %254, align 4, !tbaa !9
  %256 = icmp slt i32 %253, %255
  br i1 %256, label %257, label %259

257:                                              ; preds = %251
  %258 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -3, ptr %258, align 4, !tbaa !9
  br label %302

259:                                              ; preds = %251
  %260 = load ptr, ptr %30, align 8, !tbaa !5
  %261 = load i32, ptr %260, align 4, !tbaa !9
  %262 = icmp slt i32 %261, 1
  br i1 %262, label %263, label %265

263:                                              ; preds = %259
  %264 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -4, ptr %264, align 4, !tbaa !9
  br label %301

265:                                              ; preds = %259
  %266 = load ptr, ptr %32, align 8, !tbaa !5
  %267 = load i32, ptr %266, align 4, !tbaa !9
  %268 = load ptr, ptr %29, align 8, !tbaa !5
  %269 = load i32, ptr %268, align 4, !tbaa !9
  %270 = icmp slt i32 %267, %269
  br i1 %270, label %271, label %273

271:                                              ; preds = %265
  %272 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -6, ptr %272, align 4, !tbaa !9
  br label %300

273:                                              ; preds = %265
  %274 = load ptr, ptr %34, align 8, !tbaa !5
  %275 = load i32, ptr %274, align 4, !tbaa !9
  %276 = load ptr, ptr %29, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  %278 = icmp slt i32 %275, %277
  br i1 %278, label %279, label %281

279:                                              ; preds = %273
  %280 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -8, ptr %280, align 4, !tbaa !9
  br label %299

281:                                              ; preds = %273
  %282 = load ptr, ptr %36, align 8, !tbaa !5
  %283 = load i32, ptr %282, align 4, !tbaa !9
  %284 = load ptr, ptr %29, align 8, !tbaa !5
  %285 = load i32, ptr %284, align 4, !tbaa !9
  %286 = icmp slt i32 %283, %285
  br i1 %286, label %287, label %289

287:                                              ; preds = %281
  %288 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -10, ptr %288, align 4, !tbaa !9
  br label %298

289:                                              ; preds = %281
  %290 = load ptr, ptr %45, align 8, !tbaa !5
  %291 = load i32, ptr %290, align 4, !tbaa !9
  %292 = load ptr, ptr %29, align 8, !tbaa !5
  %293 = load i32, ptr %292, align 4, !tbaa !9
  %294 = icmp slt i32 %291, %293
  br i1 %294, label %295, label %297

295:                                              ; preds = %289
  %296 = load ptr, ptr %52, align 8, !tbaa !5
  store i32 -19, ptr %296, align 4, !tbaa !9
  br label %297

297:                                              ; preds = %295, %289
  br label %298

298:                                              ; preds = %297, %287
  br label %299

299:                                              ; preds = %298, %279
  br label %300

300:                                              ; preds = %299, %271
  br label %301

301:                                              ; preds = %300, %263
  br label %302

302:                                              ; preds = %301, %257
  br label %303

303:                                              ; preds = %302, %249
  br label %304

304:                                              ; preds = %303, %243
  %305 = load ptr, ptr %52, align 8, !tbaa !5
  %306 = load i32, ptr %305, align 4, !tbaa !9
  %307 = icmp ne i32 %306, 0
  br i1 %307, label %308, label %313

308:                                              ; preds = %304
  %309 = load ptr, ptr %52, align 8, !tbaa !5
  %310 = load i32, ptr %309, align 4, !tbaa !9
  %311 = sub nsw i32 0, %310
  store i32 %311, ptr %75, align 4, !tbaa !9
  %312 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %75, i32 noundef 6)
  store i32 1, ptr %108, align 4
  br label %1623

313:                                              ; preds = %304
  store i32 1, ptr %90, align 4, !tbaa !9
  %314 = load i32, ptr %90, align 4, !tbaa !9
  %315 = load ptr, ptr %29, align 8, !tbaa !5
  %316 = load i32, ptr %315, align 4, !tbaa !9
  %317 = add nsw i32 %314, %316
  store i32 %317, ptr %91, align 4, !tbaa !9
  %318 = load i32, ptr %91, align 4, !tbaa !9
  %319 = load ptr, ptr %29, align 8, !tbaa !5
  %320 = load i32, ptr %319, align 4, !tbaa !9
  %321 = add nsw i32 %318, %320
  store i32 %321, ptr %92, align 4, !tbaa !9
  %322 = load ptr, ptr %29, align 8, !tbaa !5
  %323 = load ptr, ptr %51, align 8, !tbaa !5
  %324 = load i32, ptr %90, align 4, !tbaa !9
  %325 = sext i32 %324 to i64
  %326 = getelementptr inbounds i32, ptr %323, i64 %325
  %327 = load ptr, ptr %51, align 8, !tbaa !5
  %328 = load i32, ptr %91, align 4, !tbaa !9
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds i32, ptr %327, i64 %329
  %331 = load ptr, ptr %51, align 8, !tbaa !5
  %332 = load i32, ptr %92, align 4, !tbaa !9
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds i32, ptr %331, i64 %333
  %335 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasdt_(ptr noundef %322, ptr noundef %83, ptr noundef %96, ptr noundef %326, ptr noundef %330, ptr noundef %334, ptr noundef %335)
  %336 = load ptr, ptr %27, align 8, !tbaa !5
  %337 = load i32, ptr %336, align 4, !tbaa !9
  %338 = icmp eq i32 %337, 1
  br i1 %338, label %339, label %340

339:                                              ; preds = %313
  br label %990

340:                                              ; preds = %313
  %341 = load i32, ptr %96, align 4, !tbaa !9
  %342 = add nsw i32 %341, 1
  %343 = sdiv i32 %342, 2
  store i32 %343, ptr %104, align 4, !tbaa !9
  %344 = load i32, ptr %96, align 4, !tbaa !9
  store i32 %344, ptr %75, align 4, !tbaa !9
  %345 = load i32, ptr %104, align 4, !tbaa !9
  store i32 %345, ptr %86, align 4, !tbaa !9
  br label %346

346:                                              ; preds = %791, %340
  %347 = load i32, ptr %86, align 4, !tbaa !9
  %348 = load i32, ptr %75, align 4, !tbaa !9
  %349 = icmp sle i32 %347, %348
  br i1 %349, label %350, label %794

350:                                              ; preds = %346
  %351 = load i32, ptr %86, align 4, !tbaa !9
  %352 = sub nsw i32 %351, 1
  store i32 %352, ptr %93, align 4, !tbaa !9
  %353 = load ptr, ptr %51, align 8, !tbaa !5
  %354 = load i32, ptr %90, align 4, !tbaa !9
  %355 = load i32, ptr %93, align 4, !tbaa !9
  %356 = add nsw i32 %354, %355
  %357 = sext i32 %356 to i64
  %358 = getelementptr inbounds i32, ptr %353, i64 %357
  %359 = load i32, ptr %358, align 4, !tbaa !9
  store i32 %359, ptr %94, align 4, !tbaa !9
  %360 = load ptr, ptr %51, align 8, !tbaa !5
  %361 = load i32, ptr %91, align 4, !tbaa !9
  %362 = load i32, ptr %93, align 4, !tbaa !9
  %363 = add nsw i32 %361, %362
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds i32, ptr %360, i64 %364
  %366 = load i32, ptr %365, align 4, !tbaa !9
  store i32 %366, ptr %98, align 4, !tbaa !9
  %367 = load ptr, ptr %51, align 8, !tbaa !5
  %368 = load i32, ptr %92, align 4, !tbaa !9
  %369 = load i32, ptr %93, align 4, !tbaa !9
  %370 = add nsw i32 %368, %369
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds i32, ptr %367, i64 %371
  %373 = load i32, ptr %372, align 4, !tbaa !9
  store i32 %373, ptr %99, align 4, !tbaa !9
  %374 = load i32, ptr %94, align 4, !tbaa !9
  %375 = load i32, ptr %98, align 4, !tbaa !9
  %376 = sub nsw i32 %374, %375
  store i32 %376, ptr %101, align 4, !tbaa !9
  %377 = load i32, ptr %94, align 4, !tbaa !9
  %378 = add nsw i32 %377, 1
  store i32 %378, ptr %102, align 4, !tbaa !9
  %379 = load i32, ptr %98, align 4, !tbaa !9
  %380 = load ptr, ptr %30, align 8, !tbaa !5
  %381 = load i32, ptr %380, align 4, !tbaa !9
  %382 = mul nsw i32 %379, %381
  %383 = shl i32 %382, 1
  store i32 %383, ptr %87, align 4, !tbaa !9
  %384 = load ptr, ptr %30, align 8, !tbaa !5
  %385 = load i32, ptr %384, align 4, !tbaa !9
  store i32 %385, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %386

386:                                              ; preds = %422, %350
  %387 = load i32, ptr %82, align 4, !tbaa !9
  %388 = load i32, ptr %76, align 4, !tbaa !9
  %389 = icmp sle i32 %387, %388
  br i1 %389, label %390, label %425

390:                                              ; preds = %386
  %391 = load i32, ptr %101, align 4, !tbaa !9
  %392 = load i32, ptr %98, align 4, !tbaa !9
  %393 = add nsw i32 %391, %392
  %394 = sub nsw i32 %393, 1
  store i32 %394, ptr %77, align 4, !tbaa !9
  %395 = load i32, ptr %101, align 4, !tbaa !9
  store i32 %395, ptr %85, align 4, !tbaa !9
  br label %396

396:                                              ; preds = %418, %390
  %397 = load i32, ptr %85, align 4, !tbaa !9
  %398 = load i32, ptr %77, align 4, !tbaa !9
  %399 = icmp sle i32 %397, %398
  br i1 %399, label %400, label %421

400:                                              ; preds = %396
  %401 = load i32, ptr %87, align 4, !tbaa !9
  %402 = add nsw i32 %401, 1
  store i32 %402, ptr %87, align 4, !tbaa !9
  %403 = load i32, ptr %85, align 4, !tbaa !9
  %404 = load i32, ptr %82, align 4, !tbaa !9
  %405 = load i32, ptr %71, align 4, !tbaa !9
  %406 = mul nsw i32 %404, %405
  %407 = add nsw i32 %403, %406
  store i32 %407, ptr %78, align 4, !tbaa !9
  %408 = load ptr, ptr %31, align 8, !tbaa !5
  %409 = load i32, ptr %78, align 4, !tbaa !9
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds %struct.complex, ptr %408, i64 %410
  %412 = getelementptr inbounds %struct.complex, ptr %411, i32 0, i32 0
  %413 = load float, ptr %412, align 4, !tbaa !11
  %414 = load ptr, ptr %50, align 8, !tbaa !5
  %415 = load i32, ptr %87, align 4, !tbaa !9
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds float, ptr %414, i64 %416
  store float %413, ptr %417, align 4, !tbaa !14
  br label %418

418:                                              ; preds = %400
  %419 = load i32, ptr %85, align 4, !tbaa !9
  %420 = add nsw i32 %419, 1
  store i32 %420, ptr %85, align 4, !tbaa !9
  br label %396, !llvm.loop !15

421:                                              ; preds = %396
  br label %422

422:                                              ; preds = %421
  %423 = load i32, ptr %82, align 4, !tbaa !9
  %424 = add nsw i32 %423, 1
  store i32 %424, ptr %82, align 4, !tbaa !9
  br label %386, !llvm.loop !17

425:                                              ; preds = %386
  %426 = load ptr, ptr %30, align 8, !tbaa !5
  %427 = load ptr, ptr %35, align 8, !tbaa !5
  %428 = load i32, ptr %101, align 4, !tbaa !9
  %429 = load i32, ptr %65, align 4, !tbaa !9
  %430 = add nsw i32 %428, %429
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds float, ptr %427, i64 %431
  %433 = load ptr, ptr %36, align 8, !tbaa !5
  %434 = load ptr, ptr %50, align 8, !tbaa !5
  %435 = load i32, ptr %98, align 4, !tbaa !9
  %436 = load ptr, ptr %30, align 8, !tbaa !5
  %437 = load i32, ptr %436, align 4, !tbaa !9
  %438 = mul nsw i32 %435, %437
  %439 = shl i32 %438, 1
  %440 = add nsw i32 %439, 1
  %441 = sext i32 %440 to i64
  %442 = getelementptr inbounds float, ptr %434, i64 %441
  %443 = load ptr, ptr %50, align 8, !tbaa !5
  %444 = getelementptr inbounds float, ptr %443, i64 1
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %98, ptr noundef %426, ptr noundef %98, ptr noundef @c_b9, ptr noundef %432, ptr noundef %433, ptr noundef %442, ptr noundef %98, ptr noundef @c_b10, ptr noundef %444, ptr noundef %98)
  %445 = load i32, ptr %98, align 4, !tbaa !9
  %446 = load ptr, ptr %30, align 8, !tbaa !5
  %447 = load i32, ptr %446, align 4, !tbaa !9
  %448 = mul nsw i32 %445, %447
  %449 = shl i32 %448, 1
  store i32 %449, ptr %87, align 4, !tbaa !9
  %450 = load ptr, ptr %30, align 8, !tbaa !5
  %451 = load i32, ptr %450, align 4, !tbaa !9
  store i32 %451, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %452

452:                                              ; preds = %490, %425
  %453 = load i32, ptr %82, align 4, !tbaa !9
  %454 = load i32, ptr %76, align 4, !tbaa !9
  %455 = icmp sle i32 %453, %454
  br i1 %455, label %456, label %493

456:                                              ; preds = %452
  %457 = load i32, ptr %101, align 4, !tbaa !9
  %458 = load i32, ptr %98, align 4, !tbaa !9
  %459 = add nsw i32 %457, %458
  %460 = sub nsw i32 %459, 1
  store i32 %460, ptr %77, align 4, !tbaa !9
  %461 = load i32, ptr %101, align 4, !tbaa !9
  store i32 %461, ptr %85, align 4, !tbaa !9
  br label %462

462:                                              ; preds = %486, %456
  %463 = load i32, ptr %85, align 4, !tbaa !9
  %464 = load i32, ptr %77, align 4, !tbaa !9
  %465 = icmp sle i32 %463, %464
  br i1 %465, label %466, label %489

466:                                              ; preds = %462
  %467 = load i32, ptr %87, align 4, !tbaa !9
  %468 = add nsw i32 %467, 1
  store i32 %468, ptr %87, align 4, !tbaa !9
  %469 = load ptr, ptr %31, align 8, !tbaa !5
  %470 = load i32, ptr %85, align 4, !tbaa !9
  %471 = load i32, ptr %82, align 4, !tbaa !9
  %472 = load i32, ptr %71, align 4, !tbaa !9
  %473 = mul nsw i32 %471, %472
  %474 = add nsw i32 %470, %473
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds %struct.complex, ptr %469, i64 %475
  %477 = call <2 x float> @Cf(ptr noundef %476)
  store <2 x float> %477, ptr %109, align 4
  %478 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 0
  %479 = load float, ptr %478, align 4
  %480 = getelementptr inbounds { float, float }, ptr %109, i32 0, i32 1
  %481 = load float, ptr %480, align 4
  %482 = load ptr, ptr %50, align 8, !tbaa !5
  %483 = load i32, ptr %87, align 4, !tbaa !9
  %484 = sext i32 %483 to i64
  %485 = getelementptr inbounds float, ptr %482, i64 %484
  store float %481, ptr %485, align 4, !tbaa !14
  br label %486

486:                                              ; preds = %466
  %487 = load i32, ptr %85, align 4, !tbaa !9
  %488 = add nsw i32 %487, 1
  store i32 %488, ptr %85, align 4, !tbaa !9
  br label %462, !llvm.loop !18

489:                                              ; preds = %462
  br label %490

490:                                              ; preds = %489
  %491 = load i32, ptr %82, align 4, !tbaa !9
  %492 = add nsw i32 %491, 1
  store i32 %492, ptr %82, align 4, !tbaa !9
  br label %452, !llvm.loop !19

493:                                              ; preds = %452
  %494 = load ptr, ptr %30, align 8, !tbaa !5
  %495 = load ptr, ptr %35, align 8, !tbaa !5
  %496 = load i32, ptr %101, align 4, !tbaa !9
  %497 = load i32, ptr %65, align 4, !tbaa !9
  %498 = add nsw i32 %496, %497
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds float, ptr %495, i64 %499
  %501 = load ptr, ptr %36, align 8, !tbaa !5
  %502 = load ptr, ptr %50, align 8, !tbaa !5
  %503 = load i32, ptr %98, align 4, !tbaa !9
  %504 = load ptr, ptr %30, align 8, !tbaa !5
  %505 = load i32, ptr %504, align 4, !tbaa !9
  %506 = mul nsw i32 %503, %505
  %507 = shl i32 %506, 1
  %508 = add nsw i32 %507, 1
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds float, ptr %502, i64 %509
  %511 = load ptr, ptr %50, align 8, !tbaa !5
  %512 = load i32, ptr %98, align 4, !tbaa !9
  %513 = load ptr, ptr %30, align 8, !tbaa !5
  %514 = load i32, ptr %513, align 4, !tbaa !9
  %515 = mul nsw i32 %512, %514
  %516 = add nsw i32 %515, 1
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds float, ptr %511, i64 %517
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %98, ptr noundef %494, ptr noundef %98, ptr noundef @c_b9, ptr noundef %500, ptr noundef %501, ptr noundef %510, ptr noundef %98, ptr noundef @c_b10, ptr noundef %518, ptr noundef %98)
  store i32 0, ptr %89, align 4, !tbaa !9
  %519 = load i32, ptr %98, align 4, !tbaa !9
  %520 = load ptr, ptr %30, align 8, !tbaa !5
  %521 = load i32, ptr %520, align 4, !tbaa !9
  %522 = mul nsw i32 %519, %521
  store i32 %522, ptr %88, align 4, !tbaa !9
  %523 = load ptr, ptr %30, align 8, !tbaa !5
  %524 = load i32, ptr %523, align 4, !tbaa !9
  store i32 %524, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %525

525:                                              ; preds = %581, %493
  %526 = load i32, ptr %82, align 4, !tbaa !9
  %527 = load i32, ptr %76, align 4, !tbaa !9
  %528 = icmp sle i32 %526, %527
  br i1 %528, label %529, label %584

529:                                              ; preds = %525
  %530 = load i32, ptr %101, align 4, !tbaa !9
  %531 = load i32, ptr %98, align 4, !tbaa !9
  %532 = add nsw i32 %530, %531
  %533 = sub nsw i32 %532, 1
  store i32 %533, ptr %77, align 4, !tbaa !9
  %534 = load i32, ptr %101, align 4, !tbaa !9
  store i32 %534, ptr %85, align 4, !tbaa !9
  br label %535

535:                                              ; preds = %577, %529
  %536 = load i32, ptr %85, align 4, !tbaa !9
  %537 = load i32, ptr %77, align 4, !tbaa !9
  %538 = icmp sle i32 %536, %537
  br i1 %538, label %539, label %580

539:                                              ; preds = %535
  %540 = load i32, ptr %89, align 4, !tbaa !9
  %541 = add nsw i32 %540, 1
  store i32 %541, ptr %89, align 4, !tbaa !9
  %542 = load i32, ptr %88, align 4, !tbaa !9
  %543 = add nsw i32 %542, 1
  store i32 %543, ptr %88, align 4, !tbaa !9
  %544 = load i32, ptr %85, align 4, !tbaa !9
  %545 = load i32, ptr %82, align 4, !tbaa !9
  %546 = load i32, ptr %73, align 4, !tbaa !9
  %547 = mul nsw i32 %545, %546
  %548 = add nsw i32 %544, %547
  store i32 %548, ptr %78, align 4, !tbaa !9
  %549 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %549, ptr %79, align 4, !tbaa !9
  %550 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %550, ptr %80, align 4, !tbaa !9
  %551 = load ptr, ptr %50, align 8, !tbaa !5
  %552 = load i32, ptr %79, align 4, !tbaa !9
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds float, ptr %551, i64 %553
  %555 = load float, ptr %554, align 4, !tbaa !14
  %556 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 0
  store float %555, ptr %556, align 4, !tbaa !11
  %557 = load ptr, ptr %50, align 8, !tbaa !5
  %558 = load i32, ptr %80, align 4, !tbaa !9
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds float, ptr %557, i64 %559
  %561 = load float, ptr %560, align 4, !tbaa !14
  %562 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 1
  store float %561, ptr %562, align 4, !tbaa !20
  %563 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 0
  %564 = load float, ptr %563, align 4, !tbaa !11
  %565 = load ptr, ptr %33, align 8, !tbaa !5
  %566 = load i32, ptr %78, align 4, !tbaa !9
  %567 = sext i32 %566 to i64
  %568 = getelementptr inbounds %struct.complex, ptr %565, i64 %567
  %569 = getelementptr inbounds %struct.complex, ptr %568, i32 0, i32 0
  store float %564, ptr %569, align 4, !tbaa !11
  %570 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 1
  %571 = load float, ptr %570, align 4, !tbaa !20
  %572 = load ptr, ptr %33, align 8, !tbaa !5
  %573 = load i32, ptr %78, align 4, !tbaa !9
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds %struct.complex, ptr %572, i64 %574
  %576 = getelementptr inbounds %struct.complex, ptr %575, i32 0, i32 1
  store float %571, ptr %576, align 4, !tbaa !20
  br label %577

577:                                              ; preds = %539
  %578 = load i32, ptr %85, align 4, !tbaa !9
  %579 = add nsw i32 %578, 1
  store i32 %579, ptr %85, align 4, !tbaa !9
  br label %535, !llvm.loop !21

580:                                              ; preds = %535
  br label %581

581:                                              ; preds = %580
  %582 = load i32, ptr %82, align 4, !tbaa !9
  %583 = add nsw i32 %582, 1
  store i32 %583, ptr %82, align 4, !tbaa !9
  br label %525, !llvm.loop !22

584:                                              ; preds = %525
  %585 = load i32, ptr %99, align 4, !tbaa !9
  %586 = load ptr, ptr %30, align 8, !tbaa !5
  %587 = load i32, ptr %586, align 4, !tbaa !9
  %588 = mul nsw i32 %585, %587
  %589 = shl i32 %588, 1
  store i32 %589, ptr %87, align 4, !tbaa !9
  %590 = load ptr, ptr %30, align 8, !tbaa !5
  %591 = load i32, ptr %590, align 4, !tbaa !9
  store i32 %591, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %592

592:                                              ; preds = %628, %584
  %593 = load i32, ptr %82, align 4, !tbaa !9
  %594 = load i32, ptr %76, align 4, !tbaa !9
  %595 = icmp sle i32 %593, %594
  br i1 %595, label %596, label %631

596:                                              ; preds = %592
  %597 = load i32, ptr %102, align 4, !tbaa !9
  %598 = load i32, ptr %99, align 4, !tbaa !9
  %599 = add nsw i32 %597, %598
  %600 = sub nsw i32 %599, 1
  store i32 %600, ptr %77, align 4, !tbaa !9
  %601 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %601, ptr %85, align 4, !tbaa !9
  br label %602

602:                                              ; preds = %624, %596
  %603 = load i32, ptr %85, align 4, !tbaa !9
  %604 = load i32, ptr %77, align 4, !tbaa !9
  %605 = icmp sle i32 %603, %604
  br i1 %605, label %606, label %627

606:                                              ; preds = %602
  %607 = load i32, ptr %87, align 4, !tbaa !9
  %608 = add nsw i32 %607, 1
  store i32 %608, ptr %87, align 4, !tbaa !9
  %609 = load i32, ptr %85, align 4, !tbaa !9
  %610 = load i32, ptr %82, align 4, !tbaa !9
  %611 = load i32, ptr %71, align 4, !tbaa !9
  %612 = mul nsw i32 %610, %611
  %613 = add nsw i32 %609, %612
  store i32 %613, ptr %78, align 4, !tbaa !9
  %614 = load ptr, ptr %31, align 8, !tbaa !5
  %615 = load i32, ptr %78, align 4, !tbaa !9
  %616 = sext i32 %615 to i64
  %617 = getelementptr inbounds %struct.complex, ptr %614, i64 %616
  %618 = getelementptr inbounds %struct.complex, ptr %617, i32 0, i32 0
  %619 = load float, ptr %618, align 4, !tbaa !11
  %620 = load ptr, ptr %50, align 8, !tbaa !5
  %621 = load i32, ptr %87, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds float, ptr %620, i64 %622
  store float %619, ptr %623, align 4, !tbaa !14
  br label %624

624:                                              ; preds = %606
  %625 = load i32, ptr %85, align 4, !tbaa !9
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr %85, align 4, !tbaa !9
  br label %602, !llvm.loop !23

627:                                              ; preds = %602
  br label %628

628:                                              ; preds = %627
  %629 = load i32, ptr %82, align 4, !tbaa !9
  %630 = add nsw i32 %629, 1
  store i32 %630, ptr %82, align 4, !tbaa !9
  br label %592, !llvm.loop !24

631:                                              ; preds = %592
  %632 = load ptr, ptr %30, align 8, !tbaa !5
  %633 = load ptr, ptr %35, align 8, !tbaa !5
  %634 = load i32, ptr %102, align 4, !tbaa !9
  %635 = load i32, ptr %65, align 4, !tbaa !9
  %636 = add nsw i32 %634, %635
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds float, ptr %633, i64 %637
  %639 = load ptr, ptr %36, align 8, !tbaa !5
  %640 = load ptr, ptr %50, align 8, !tbaa !5
  %641 = load i32, ptr %99, align 4, !tbaa !9
  %642 = load ptr, ptr %30, align 8, !tbaa !5
  %643 = load i32, ptr %642, align 4, !tbaa !9
  %644 = mul nsw i32 %641, %643
  %645 = shl i32 %644, 1
  %646 = add nsw i32 %645, 1
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds float, ptr %640, i64 %647
  %649 = load ptr, ptr %50, align 8, !tbaa !5
  %650 = getelementptr inbounds float, ptr %649, i64 1
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %99, ptr noundef %632, ptr noundef %99, ptr noundef @c_b9, ptr noundef %638, ptr noundef %639, ptr noundef %648, ptr noundef %99, ptr noundef @c_b10, ptr noundef %650, ptr noundef %99)
  %651 = load i32, ptr %99, align 4, !tbaa !9
  %652 = load ptr, ptr %30, align 8, !tbaa !5
  %653 = load i32, ptr %652, align 4, !tbaa !9
  %654 = mul nsw i32 %651, %653
  %655 = shl i32 %654, 1
  store i32 %655, ptr %87, align 4, !tbaa !9
  %656 = load ptr, ptr %30, align 8, !tbaa !5
  %657 = load i32, ptr %656, align 4, !tbaa !9
  store i32 %657, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %658

658:                                              ; preds = %696, %631
  %659 = load i32, ptr %82, align 4, !tbaa !9
  %660 = load i32, ptr %76, align 4, !tbaa !9
  %661 = icmp sle i32 %659, %660
  br i1 %661, label %662, label %699

662:                                              ; preds = %658
  %663 = load i32, ptr %102, align 4, !tbaa !9
  %664 = load i32, ptr %99, align 4, !tbaa !9
  %665 = add nsw i32 %663, %664
  %666 = sub nsw i32 %665, 1
  store i32 %666, ptr %77, align 4, !tbaa !9
  %667 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %667, ptr %85, align 4, !tbaa !9
  br label %668

668:                                              ; preds = %692, %662
  %669 = load i32, ptr %85, align 4, !tbaa !9
  %670 = load i32, ptr %77, align 4, !tbaa !9
  %671 = icmp sle i32 %669, %670
  br i1 %671, label %672, label %695

672:                                              ; preds = %668
  %673 = load i32, ptr %87, align 4, !tbaa !9
  %674 = add nsw i32 %673, 1
  store i32 %674, ptr %87, align 4, !tbaa !9
  %675 = load ptr, ptr %31, align 8, !tbaa !5
  %676 = load i32, ptr %85, align 4, !tbaa !9
  %677 = load i32, ptr %82, align 4, !tbaa !9
  %678 = load i32, ptr %71, align 4, !tbaa !9
  %679 = mul nsw i32 %677, %678
  %680 = add nsw i32 %676, %679
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds %struct.complex, ptr %675, i64 %681
  %683 = call <2 x float> @Cf(ptr noundef %682)
  store <2 x float> %683, ptr %110, align 4
  %684 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 0
  %685 = load float, ptr %684, align 4
  %686 = getelementptr inbounds { float, float }, ptr %110, i32 0, i32 1
  %687 = load float, ptr %686, align 4
  %688 = load ptr, ptr %50, align 8, !tbaa !5
  %689 = load i32, ptr %87, align 4, !tbaa !9
  %690 = sext i32 %689 to i64
  %691 = getelementptr inbounds float, ptr %688, i64 %690
  store float %687, ptr %691, align 4, !tbaa !14
  br label %692

692:                                              ; preds = %672
  %693 = load i32, ptr %85, align 4, !tbaa !9
  %694 = add nsw i32 %693, 1
  store i32 %694, ptr %85, align 4, !tbaa !9
  br label %668, !llvm.loop !25

695:                                              ; preds = %668
  br label %696

696:                                              ; preds = %695
  %697 = load i32, ptr %82, align 4, !tbaa !9
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr %82, align 4, !tbaa !9
  br label %658, !llvm.loop !26

699:                                              ; preds = %658
  %700 = load ptr, ptr %30, align 8, !tbaa !5
  %701 = load ptr, ptr %35, align 8, !tbaa !5
  %702 = load i32, ptr %102, align 4, !tbaa !9
  %703 = load i32, ptr %65, align 4, !tbaa !9
  %704 = add nsw i32 %702, %703
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds float, ptr %701, i64 %705
  %707 = load ptr, ptr %36, align 8, !tbaa !5
  %708 = load ptr, ptr %50, align 8, !tbaa !5
  %709 = load i32, ptr %99, align 4, !tbaa !9
  %710 = load ptr, ptr %30, align 8, !tbaa !5
  %711 = load i32, ptr %710, align 4, !tbaa !9
  %712 = mul nsw i32 %709, %711
  %713 = shl i32 %712, 1
  %714 = add nsw i32 %713, 1
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds float, ptr %708, i64 %715
  %717 = load ptr, ptr %50, align 8, !tbaa !5
  %718 = load i32, ptr %99, align 4, !tbaa !9
  %719 = load ptr, ptr %30, align 8, !tbaa !5
  %720 = load i32, ptr %719, align 4, !tbaa !9
  %721 = mul nsw i32 %718, %720
  %722 = add nsw i32 %721, 1
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds float, ptr %717, i64 %723
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %99, ptr noundef %700, ptr noundef %99, ptr noundef @c_b9, ptr noundef %706, ptr noundef %707, ptr noundef %716, ptr noundef %99, ptr noundef @c_b10, ptr noundef %724, ptr noundef %99)
  store i32 0, ptr %89, align 4, !tbaa !9
  %725 = load i32, ptr %99, align 4, !tbaa !9
  %726 = load ptr, ptr %30, align 8, !tbaa !5
  %727 = load i32, ptr %726, align 4, !tbaa !9
  %728 = mul nsw i32 %725, %727
  store i32 %728, ptr %88, align 4, !tbaa !9
  %729 = load ptr, ptr %30, align 8, !tbaa !5
  %730 = load i32, ptr %729, align 4, !tbaa !9
  store i32 %730, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %731

731:                                              ; preds = %787, %699
  %732 = load i32, ptr %82, align 4, !tbaa !9
  %733 = load i32, ptr %76, align 4, !tbaa !9
  %734 = icmp sle i32 %732, %733
  br i1 %734, label %735, label %790

735:                                              ; preds = %731
  %736 = load i32, ptr %102, align 4, !tbaa !9
  %737 = load i32, ptr %99, align 4, !tbaa !9
  %738 = add nsw i32 %736, %737
  %739 = sub nsw i32 %738, 1
  store i32 %739, ptr %77, align 4, !tbaa !9
  %740 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %740, ptr %85, align 4, !tbaa !9
  br label %741

741:                                              ; preds = %783, %735
  %742 = load i32, ptr %85, align 4, !tbaa !9
  %743 = load i32, ptr %77, align 4, !tbaa !9
  %744 = icmp sle i32 %742, %743
  br i1 %744, label %745, label %786

745:                                              ; preds = %741
  %746 = load i32, ptr %89, align 4, !tbaa !9
  %747 = add nsw i32 %746, 1
  store i32 %747, ptr %89, align 4, !tbaa !9
  %748 = load i32, ptr %88, align 4, !tbaa !9
  %749 = add nsw i32 %748, 1
  store i32 %749, ptr %88, align 4, !tbaa !9
  %750 = load i32, ptr %85, align 4, !tbaa !9
  %751 = load i32, ptr %82, align 4, !tbaa !9
  %752 = load i32, ptr %73, align 4, !tbaa !9
  %753 = mul nsw i32 %751, %752
  %754 = add nsw i32 %750, %753
  store i32 %754, ptr %78, align 4, !tbaa !9
  %755 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %755, ptr %79, align 4, !tbaa !9
  %756 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %756, ptr %80, align 4, !tbaa !9
  %757 = load ptr, ptr %50, align 8, !tbaa !5
  %758 = load i32, ptr %79, align 4, !tbaa !9
  %759 = sext i32 %758 to i64
  %760 = getelementptr inbounds float, ptr %757, i64 %759
  %761 = load float, ptr %760, align 4, !tbaa !14
  %762 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 0
  store float %761, ptr %762, align 4, !tbaa !11
  %763 = load ptr, ptr %50, align 8, !tbaa !5
  %764 = load i32, ptr %80, align 4, !tbaa !9
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds float, ptr %763, i64 %765
  %767 = load float, ptr %766, align 4, !tbaa !14
  %768 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 1
  store float %767, ptr %768, align 4, !tbaa !20
  %769 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 0
  %770 = load float, ptr %769, align 4, !tbaa !11
  %771 = load ptr, ptr %33, align 8, !tbaa !5
  %772 = load i32, ptr %78, align 4, !tbaa !9
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds %struct.complex, ptr %771, i64 %773
  %775 = getelementptr inbounds %struct.complex, ptr %774, i32 0, i32 0
  store float %770, ptr %775, align 4, !tbaa !11
  %776 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 1
  %777 = load float, ptr %776, align 4, !tbaa !20
  %778 = load ptr, ptr %33, align 8, !tbaa !5
  %779 = load i32, ptr %78, align 4, !tbaa !9
  %780 = sext i32 %779 to i64
  %781 = getelementptr inbounds %struct.complex, ptr %778, i64 %780
  %782 = getelementptr inbounds %struct.complex, ptr %781, i32 0, i32 1
  store float %777, ptr %782, align 4, !tbaa !20
  br label %783

783:                                              ; preds = %745
  %784 = load i32, ptr %85, align 4, !tbaa !9
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr %85, align 4, !tbaa !9
  br label %741, !llvm.loop !27

786:                                              ; preds = %741
  br label %787

787:                                              ; preds = %786
  %788 = load i32, ptr %82, align 4, !tbaa !9
  %789 = add nsw i32 %788, 1
  store i32 %789, ptr %82, align 4, !tbaa !9
  br label %731, !llvm.loop !28

790:                                              ; preds = %731
  br label %791

791:                                              ; preds = %790
  %792 = load i32, ptr %86, align 4, !tbaa !9
  %793 = add nsw i32 %792, 1
  store i32 %793, ptr %86, align 4, !tbaa !9
  br label %346, !llvm.loop !29

794:                                              ; preds = %346
  %795 = load i32, ptr %96, align 4, !tbaa !9
  store i32 %795, ptr %75, align 4, !tbaa !9
  store i32 1, ptr %86, align 4, !tbaa !9
  br label %796

796:                                              ; preds = %824, %794
  %797 = load i32, ptr %86, align 4, !tbaa !9
  %798 = load i32, ptr %75, align 4, !tbaa !9
  %799 = icmp sle i32 %797, %798
  br i1 %799, label %800, label %827

800:                                              ; preds = %796
  %801 = load ptr, ptr %51, align 8, !tbaa !5
  %802 = load i32, ptr %90, align 4, !tbaa !9
  %803 = load i32, ptr %86, align 4, !tbaa !9
  %804 = add nsw i32 %802, %803
  %805 = sub nsw i32 %804, 1
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds i32, ptr %801, i64 %806
  %808 = load i32, ptr %807, align 4, !tbaa !9
  store i32 %808, ptr %94, align 4, !tbaa !9
  %809 = load ptr, ptr %30, align 8, !tbaa !5
  %810 = load ptr, ptr %31, align 8, !tbaa !5
  %811 = load i32, ptr %94, align 4, !tbaa !9
  %812 = load i32, ptr %71, align 4, !tbaa !9
  %813 = add nsw i32 %811, %812
  %814 = sext i32 %813 to i64
  %815 = getelementptr inbounds %struct.complex, ptr %810, i64 %814
  %816 = load ptr, ptr %32, align 8, !tbaa !5
  %817 = load ptr, ptr %33, align 8, !tbaa !5
  %818 = load i32, ptr %94, align 4, !tbaa !9
  %819 = load i32, ptr %73, align 4, !tbaa !9
  %820 = add nsw i32 %818, %819
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds %struct.complex, ptr %817, i64 %821
  %823 = load ptr, ptr %34, align 8, !tbaa !5
  call void @ccopy_(ptr noundef %809, ptr noundef %815, ptr noundef %816, ptr noundef %822, ptr noundef %823)
  br label %824

824:                                              ; preds = %800
  %825 = load i32, ptr %86, align 4, !tbaa !9
  %826 = add nsw i32 %825, 1
  store i32 %826, ptr %86, align 4, !tbaa !9
  br label %796, !llvm.loop !30

827:                                              ; preds = %796
  %828 = load i32, ptr @c__2, align 4, !tbaa !9
  %829 = load i32, ptr %83, align 4, !tbaa !9
  %830 = call i32 @pow_ii(i32 noundef %828, i32 noundef %829)
  store i32 %830, ptr %87, align 4, !tbaa !9
  store i32 0, ptr %84, align 4, !tbaa !9
  %831 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %831, ptr %103, align 4, !tbaa !9
  br label %832

832:                                              ; preds = %986, %827
  %833 = load i32, ptr %103, align 4, !tbaa !9
  %834 = icmp sge i32 %833, 1
  br i1 %834, label %835, label %989

835:                                              ; preds = %832
  %836 = load i32, ptr %103, align 4, !tbaa !9
  %837 = shl i32 %836, 1
  %838 = sub nsw i32 %837, 1
  store i32 %838, ptr %106, align 4, !tbaa !9
  %839 = load i32, ptr %103, align 4, !tbaa !9
  %840 = icmp eq i32 %839, 1
  br i1 %840, label %841, label %842

841:                                              ; preds = %835
  store i32 1, ptr %95, align 4, !tbaa !9
  store i32 1, ptr %97, align 4, !tbaa !9
  br label %851

842:                                              ; preds = %835
  %843 = load i32, ptr %103, align 4, !tbaa !9
  %844 = sub nsw i32 %843, 1
  store i32 %844, ptr %75, align 4, !tbaa !9
  %845 = load i32, ptr @c__2, align 4, !tbaa !9
  %846 = load i32, ptr %75, align 4, !tbaa !9
  %847 = call i32 @pow_ii(i32 noundef %845, i32 noundef %846)
  store i32 %847, ptr %95, align 4, !tbaa !9
  %848 = load i32, ptr %95, align 4, !tbaa !9
  %849 = shl i32 %848, 1
  %850 = sub nsw i32 %849, 1
  store i32 %850, ptr %97, align 4, !tbaa !9
  br label %851

851:                                              ; preds = %842, %841
  %852 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %852, ptr %75, align 4, !tbaa !9
  %853 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %853, ptr %86, align 4, !tbaa !9
  br label %854

854:                                              ; preds = %982, %851
  %855 = load i32, ptr %86, align 4, !tbaa !9
  %856 = load i32, ptr %75, align 4, !tbaa !9
  %857 = icmp sle i32 %855, %856
  br i1 %857, label %858, label %985

858:                                              ; preds = %854
  %859 = load i32, ptr %86, align 4, !tbaa !9
  %860 = sub nsw i32 %859, 1
  store i32 %860, ptr %100, align 4, !tbaa !9
  %861 = load ptr, ptr %51, align 8, !tbaa !5
  %862 = load i32, ptr %90, align 4, !tbaa !9
  %863 = load i32, ptr %100, align 4, !tbaa !9
  %864 = add nsw i32 %862, %863
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds i32, ptr %861, i64 %865
  %867 = load i32, ptr %866, align 4, !tbaa !9
  store i32 %867, ptr %94, align 4, !tbaa !9
  %868 = load ptr, ptr %51, align 8, !tbaa !5
  %869 = load i32, ptr %91, align 4, !tbaa !9
  %870 = load i32, ptr %100, align 4, !tbaa !9
  %871 = add nsw i32 %869, %870
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds i32, ptr %868, i64 %872
  %874 = load i32, ptr %873, align 4, !tbaa !9
  store i32 %874, ptr %98, align 4, !tbaa !9
  %875 = load ptr, ptr %51, align 8, !tbaa !5
  %876 = load i32, ptr %92, align 4, !tbaa !9
  %877 = load i32, ptr %100, align 4, !tbaa !9
  %878 = add nsw i32 %876, %877
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds i32, ptr %875, i64 %879
  %881 = load i32, ptr %880, align 4, !tbaa !9
  store i32 %881, ptr %99, align 4, !tbaa !9
  %882 = load i32, ptr %94, align 4, !tbaa !9
  %883 = load i32, ptr %98, align 4, !tbaa !9
  %884 = sub nsw i32 %882, %883
  store i32 %884, ptr %101, align 4, !tbaa !9
  %885 = load i32, ptr %94, align 4, !tbaa !9
  %886 = add nsw i32 %885, 1
  store i32 %886, ptr %102, align 4, !tbaa !9
  %887 = load i32, ptr %87, align 4, !tbaa !9
  %888 = add nsw i32 %887, -1
  store i32 %888, ptr %87, align 4, !tbaa !9
  %889 = load ptr, ptr %27, align 8, !tbaa !5
  %890 = load ptr, ptr %30, align 8, !tbaa !5
  %891 = load ptr, ptr %33, align 8, !tbaa !5
  %892 = load i32, ptr %101, align 4, !tbaa !9
  %893 = load i32, ptr %73, align 4, !tbaa !9
  %894 = add nsw i32 %892, %893
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds %struct.complex, ptr %891, i64 %895
  %897 = load ptr, ptr %34, align 8, !tbaa !5
  %898 = load ptr, ptr %31, align 8, !tbaa !5
  %899 = load i32, ptr %101, align 4, !tbaa !9
  %900 = load i32, ptr %71, align 4, !tbaa !9
  %901 = add nsw i32 %899, %900
  %902 = sext i32 %901 to i64
  %903 = getelementptr inbounds %struct.complex, ptr %898, i64 %902
  %904 = load ptr, ptr %32, align 8, !tbaa !5
  %905 = load ptr, ptr %46, align 8, !tbaa !5
  %906 = load i32, ptr %101, align 4, !tbaa !9
  %907 = load i32, ptr %103, align 4, !tbaa !9
  %908 = load i32, ptr %55, align 4, !tbaa !9
  %909 = mul nsw i32 %907, %908
  %910 = add nsw i32 %906, %909
  %911 = sext i32 %910 to i64
  %912 = getelementptr inbounds i32, ptr %905, i64 %911
  %913 = load ptr, ptr %43, align 8, !tbaa !5
  %914 = load i32, ptr %87, align 4, !tbaa !9
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds i32, ptr %913, i64 %915
  %917 = load ptr, ptr %44, align 8, !tbaa !5
  %918 = load i32, ptr %101, align 4, !tbaa !9
  %919 = load i32, ptr %106, align 4, !tbaa !9
  %920 = load i32, ptr %53, align 4, !tbaa !9
  %921 = mul nsw i32 %919, %920
  %922 = add nsw i32 %918, %921
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds i32, ptr %917, i64 %923
  %925 = load ptr, ptr %45, align 8, !tbaa !5
  %926 = load ptr, ptr %47, align 8, !tbaa !5
  %927 = load i32, ptr %101, align 4, !tbaa !9
  %928 = load i32, ptr %106, align 4, !tbaa !9
  %929 = load i32, ptr %61, align 4, !tbaa !9
  %930 = mul nsw i32 %928, %929
  %931 = add nsw i32 %927, %930
  %932 = sext i32 %931 to i64
  %933 = getelementptr inbounds float, ptr %926, i64 %932
  %934 = load ptr, ptr %36, align 8, !tbaa !5
  %935 = load ptr, ptr %42, align 8, !tbaa !5
  %936 = load i32, ptr %101, align 4, !tbaa !9
  %937 = load i32, ptr %106, align 4, !tbaa !9
  %938 = load i32, ptr %63, align 4, !tbaa !9
  %939 = mul nsw i32 %937, %938
  %940 = add nsw i32 %936, %939
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds float, ptr %935, i64 %941
  %943 = load ptr, ptr %39, align 8, !tbaa !5
  %944 = load i32, ptr %101, align 4, !tbaa !9
  %945 = load i32, ptr %103, align 4, !tbaa !9
  %946 = load i32, ptr %57, align 4, !tbaa !9
  %947 = mul nsw i32 %945, %946
  %948 = add nsw i32 %944, %947
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds float, ptr %943, i64 %949
  %951 = load ptr, ptr %40, align 8, !tbaa !5
  %952 = load i32, ptr %101, align 4, !tbaa !9
  %953 = load i32, ptr %106, align 4, !tbaa !9
  %954 = load i32, ptr %59, align 4, !tbaa !9
  %955 = mul nsw i32 %953, %954
  %956 = add nsw i32 %952, %955
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds float, ptr %951, i64 %957
  %959 = load ptr, ptr %41, align 8, !tbaa !5
  %960 = load i32, ptr %101, align 4, !tbaa !9
  %961 = load i32, ptr %103, align 4, !tbaa !9
  %962 = load i32, ptr %69, align 4, !tbaa !9
  %963 = mul nsw i32 %961, %962
  %964 = add nsw i32 %960, %963
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds float, ptr %959, i64 %965
  %967 = load ptr, ptr %38, align 8, !tbaa !5
  %968 = load i32, ptr %87, align 4, !tbaa !9
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds i32, ptr %967, i64 %969
  %971 = load ptr, ptr %48, align 8, !tbaa !5
  %972 = load i32, ptr %87, align 4, !tbaa !9
  %973 = sext i32 %972 to i64
  %974 = getelementptr inbounds float, ptr %971, i64 %973
  %975 = load ptr, ptr %49, align 8, !tbaa !5
  %976 = load i32, ptr %87, align 4, !tbaa !9
  %977 = sext i32 %976 to i64
  %978 = getelementptr inbounds float, ptr %975, i64 %977
  %979 = load ptr, ptr %50, align 8, !tbaa !5
  %980 = getelementptr inbounds float, ptr %979, i64 1
  %981 = load ptr, ptr %52, align 8, !tbaa !5
  call void @clals0_(ptr noundef %889, ptr noundef %98, ptr noundef %99, ptr noundef %84, ptr noundef %890, ptr noundef %896, ptr noundef %897, ptr noundef %903, ptr noundef %904, ptr noundef %912, ptr noundef %916, ptr noundef %924, ptr noundef %925, ptr noundef %933, ptr noundef %934, ptr noundef %942, ptr noundef %950, ptr noundef %958, ptr noundef %966, ptr noundef %970, ptr noundef %974, ptr noundef %978, ptr noundef %980, ptr noundef %981)
  br label %982

982:                                              ; preds = %858
  %983 = load i32, ptr %86, align 4, !tbaa !9
  %984 = add nsw i32 %983, 1
  store i32 %984, ptr %86, align 4, !tbaa !9
  br label %854, !llvm.loop !31

985:                                              ; preds = %854
  br label %986

986:                                              ; preds = %985
  %987 = load i32, ptr %103, align 4, !tbaa !9
  %988 = add nsw i32 %987, -1
  store i32 %988, ptr %103, align 4, !tbaa !9
  br label %832, !llvm.loop !32

989:                                              ; preds = %832
  br label %1622

990:                                              ; preds = %339
  store i32 0, ptr %87, align 4, !tbaa !9
  %991 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %991, ptr %75, align 4, !tbaa !9
  store i32 1, ptr %103, align 4, !tbaa !9
  br label %992

992:                                              ; preds = %1153, %990
  %993 = load i32, ptr %103, align 4, !tbaa !9
  %994 = load i32, ptr %75, align 4, !tbaa !9
  %995 = icmp sle i32 %993, %994
  br i1 %995, label %996, label %1156

996:                                              ; preds = %992
  %997 = load i32, ptr %103, align 4, !tbaa !9
  %998 = shl i32 %997, 1
  %999 = sub nsw i32 %998, 1
  store i32 %999, ptr %106, align 4, !tbaa !9
  %1000 = load i32, ptr %103, align 4, !tbaa !9
  %1001 = icmp eq i32 %1000, 1
  br i1 %1001, label %1002, label %1003

1002:                                             ; preds = %996
  store i32 1, ptr %95, align 4, !tbaa !9
  store i32 1, ptr %97, align 4, !tbaa !9
  br label %1012

1003:                                             ; preds = %996
  %1004 = load i32, ptr %103, align 4, !tbaa !9
  %1005 = sub nsw i32 %1004, 1
  store i32 %1005, ptr %76, align 4, !tbaa !9
  %1006 = load i32, ptr @c__2, align 4, !tbaa !9
  %1007 = load i32, ptr %76, align 4, !tbaa !9
  %1008 = call i32 @pow_ii(i32 noundef %1006, i32 noundef %1007)
  store i32 %1008, ptr %95, align 4, !tbaa !9
  %1009 = load i32, ptr %95, align 4, !tbaa !9
  %1010 = shl i32 %1009, 1
  %1011 = sub nsw i32 %1010, 1
  store i32 %1011, ptr %97, align 4, !tbaa !9
  br label %1012

1012:                                             ; preds = %1003, %1002
  %1013 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %1013, ptr %76, align 4, !tbaa !9
  %1014 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %1014, ptr %86, align 4, !tbaa !9
  br label %1015

1015:                                             ; preds = %1149, %1012
  %1016 = load i32, ptr %86, align 4, !tbaa !9
  %1017 = load i32, ptr %76, align 4, !tbaa !9
  %1018 = icmp sge i32 %1016, %1017
  br i1 %1018, label %1019, label %1152

1019:                                             ; preds = %1015
  %1020 = load i32, ptr %86, align 4, !tbaa !9
  %1021 = sub nsw i32 %1020, 1
  store i32 %1021, ptr %100, align 4, !tbaa !9
  %1022 = load ptr, ptr %51, align 8, !tbaa !5
  %1023 = load i32, ptr %90, align 4, !tbaa !9
  %1024 = load i32, ptr %100, align 4, !tbaa !9
  %1025 = add nsw i32 %1023, %1024
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds i32, ptr %1022, i64 %1026
  %1028 = load i32, ptr %1027, align 4, !tbaa !9
  store i32 %1028, ptr %94, align 4, !tbaa !9
  %1029 = load ptr, ptr %51, align 8, !tbaa !5
  %1030 = load i32, ptr %91, align 4, !tbaa !9
  %1031 = load i32, ptr %100, align 4, !tbaa !9
  %1032 = add nsw i32 %1030, %1031
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds i32, ptr %1029, i64 %1033
  %1035 = load i32, ptr %1034, align 4, !tbaa !9
  store i32 %1035, ptr %98, align 4, !tbaa !9
  %1036 = load ptr, ptr %51, align 8, !tbaa !5
  %1037 = load i32, ptr %92, align 4, !tbaa !9
  %1038 = load i32, ptr %100, align 4, !tbaa !9
  %1039 = add nsw i32 %1037, %1038
  %1040 = sext i32 %1039 to i64
  %1041 = getelementptr inbounds i32, ptr %1036, i64 %1040
  %1042 = load i32, ptr %1041, align 4, !tbaa !9
  store i32 %1042, ptr %99, align 4, !tbaa !9
  %1043 = load i32, ptr %94, align 4, !tbaa !9
  %1044 = load i32, ptr %98, align 4, !tbaa !9
  %1045 = sub nsw i32 %1043, %1044
  store i32 %1045, ptr %101, align 4, !tbaa !9
  %1046 = load i32, ptr %94, align 4, !tbaa !9
  %1047 = add nsw i32 %1046, 1
  store i32 %1047, ptr %102, align 4, !tbaa !9
  %1048 = load i32, ptr %86, align 4, !tbaa !9
  %1049 = load i32, ptr %97, align 4, !tbaa !9
  %1050 = icmp eq i32 %1048, %1049
  br i1 %1050, label %1051, label %1052

1051:                                             ; preds = %1019
  store i32 0, ptr %84, align 4, !tbaa !9
  br label %1053

1052:                                             ; preds = %1019
  store i32 1, ptr %84, align 4, !tbaa !9
  br label %1053

1053:                                             ; preds = %1052, %1051
  %1054 = load i32, ptr %87, align 4, !tbaa !9
  %1055 = add nsw i32 %1054, 1
  store i32 %1055, ptr %87, align 4, !tbaa !9
  %1056 = load ptr, ptr %27, align 8, !tbaa !5
  %1057 = load ptr, ptr %30, align 8, !tbaa !5
  %1058 = load ptr, ptr %31, align 8, !tbaa !5
  %1059 = load i32, ptr %101, align 4, !tbaa !9
  %1060 = load i32, ptr %71, align 4, !tbaa !9
  %1061 = add nsw i32 %1059, %1060
  %1062 = sext i32 %1061 to i64
  %1063 = getelementptr inbounds %struct.complex, ptr %1058, i64 %1062
  %1064 = load ptr, ptr %32, align 8, !tbaa !5
  %1065 = load ptr, ptr %33, align 8, !tbaa !5
  %1066 = load i32, ptr %101, align 4, !tbaa !9
  %1067 = load i32, ptr %73, align 4, !tbaa !9
  %1068 = add nsw i32 %1066, %1067
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds %struct.complex, ptr %1065, i64 %1069
  %1071 = load ptr, ptr %34, align 8, !tbaa !5
  %1072 = load ptr, ptr %46, align 8, !tbaa !5
  %1073 = load i32, ptr %101, align 4, !tbaa !9
  %1074 = load i32, ptr %103, align 4, !tbaa !9
  %1075 = load i32, ptr %55, align 4, !tbaa !9
  %1076 = mul nsw i32 %1074, %1075
  %1077 = add nsw i32 %1073, %1076
  %1078 = sext i32 %1077 to i64
  %1079 = getelementptr inbounds i32, ptr %1072, i64 %1078
  %1080 = load ptr, ptr %43, align 8, !tbaa !5
  %1081 = load i32, ptr %87, align 4, !tbaa !9
  %1082 = sext i32 %1081 to i64
  %1083 = getelementptr inbounds i32, ptr %1080, i64 %1082
  %1084 = load ptr, ptr %44, align 8, !tbaa !5
  %1085 = load i32, ptr %101, align 4, !tbaa !9
  %1086 = load i32, ptr %106, align 4, !tbaa !9
  %1087 = load i32, ptr %53, align 4, !tbaa !9
  %1088 = mul nsw i32 %1086, %1087
  %1089 = add nsw i32 %1085, %1088
  %1090 = sext i32 %1089 to i64
  %1091 = getelementptr inbounds i32, ptr %1084, i64 %1090
  %1092 = load ptr, ptr %45, align 8, !tbaa !5
  %1093 = load ptr, ptr %47, align 8, !tbaa !5
  %1094 = load i32, ptr %101, align 4, !tbaa !9
  %1095 = load i32, ptr %106, align 4, !tbaa !9
  %1096 = load i32, ptr %61, align 4, !tbaa !9
  %1097 = mul nsw i32 %1095, %1096
  %1098 = add nsw i32 %1094, %1097
  %1099 = sext i32 %1098 to i64
  %1100 = getelementptr inbounds float, ptr %1093, i64 %1099
  %1101 = load ptr, ptr %36, align 8, !tbaa !5
  %1102 = load ptr, ptr %42, align 8, !tbaa !5
  %1103 = load i32, ptr %101, align 4, !tbaa !9
  %1104 = load i32, ptr %106, align 4, !tbaa !9
  %1105 = load i32, ptr %63, align 4, !tbaa !9
  %1106 = mul nsw i32 %1104, %1105
  %1107 = add nsw i32 %1103, %1106
  %1108 = sext i32 %1107 to i64
  %1109 = getelementptr inbounds float, ptr %1102, i64 %1108
  %1110 = load ptr, ptr %39, align 8, !tbaa !5
  %1111 = load i32, ptr %101, align 4, !tbaa !9
  %1112 = load i32, ptr %103, align 4, !tbaa !9
  %1113 = load i32, ptr %57, align 4, !tbaa !9
  %1114 = mul nsw i32 %1112, %1113
  %1115 = add nsw i32 %1111, %1114
  %1116 = sext i32 %1115 to i64
  %1117 = getelementptr inbounds float, ptr %1110, i64 %1116
  %1118 = load ptr, ptr %40, align 8, !tbaa !5
  %1119 = load i32, ptr %101, align 4, !tbaa !9
  %1120 = load i32, ptr %106, align 4, !tbaa !9
  %1121 = load i32, ptr %59, align 4, !tbaa !9
  %1122 = mul nsw i32 %1120, %1121
  %1123 = add nsw i32 %1119, %1122
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds float, ptr %1118, i64 %1124
  %1126 = load ptr, ptr %41, align 8, !tbaa !5
  %1127 = load i32, ptr %101, align 4, !tbaa !9
  %1128 = load i32, ptr %103, align 4, !tbaa !9
  %1129 = load i32, ptr %69, align 4, !tbaa !9
  %1130 = mul nsw i32 %1128, %1129
  %1131 = add nsw i32 %1127, %1130
  %1132 = sext i32 %1131 to i64
  %1133 = getelementptr inbounds float, ptr %1126, i64 %1132
  %1134 = load ptr, ptr %38, align 8, !tbaa !5
  %1135 = load i32, ptr %87, align 4, !tbaa !9
  %1136 = sext i32 %1135 to i64
  %1137 = getelementptr inbounds i32, ptr %1134, i64 %1136
  %1138 = load ptr, ptr %48, align 8, !tbaa !5
  %1139 = load i32, ptr %87, align 4, !tbaa !9
  %1140 = sext i32 %1139 to i64
  %1141 = getelementptr inbounds float, ptr %1138, i64 %1140
  %1142 = load ptr, ptr %49, align 8, !tbaa !5
  %1143 = load i32, ptr %87, align 4, !tbaa !9
  %1144 = sext i32 %1143 to i64
  %1145 = getelementptr inbounds float, ptr %1142, i64 %1144
  %1146 = load ptr, ptr %50, align 8, !tbaa !5
  %1147 = getelementptr inbounds float, ptr %1146, i64 1
  %1148 = load ptr, ptr %52, align 8, !tbaa !5
  call void @clals0_(ptr noundef %1056, ptr noundef %98, ptr noundef %99, ptr noundef %84, ptr noundef %1057, ptr noundef %1063, ptr noundef %1064, ptr noundef %1070, ptr noundef %1071, ptr noundef %1079, ptr noundef %1083, ptr noundef %1091, ptr noundef %1092, ptr noundef %1100, ptr noundef %1101, ptr noundef %1109, ptr noundef %1117, ptr noundef %1125, ptr noundef %1133, ptr noundef %1137, ptr noundef %1141, ptr noundef %1145, ptr noundef %1147, ptr noundef %1148)
  br label %1149

1149:                                             ; preds = %1053
  %1150 = load i32, ptr %86, align 4, !tbaa !9
  %1151 = add nsw i32 %1150, -1
  store i32 %1151, ptr %86, align 4, !tbaa !9
  br label %1015, !llvm.loop !33

1152:                                             ; preds = %1015
  br label %1153

1153:                                             ; preds = %1152
  %1154 = load i32, ptr %103, align 4, !tbaa !9
  %1155 = add nsw i32 %1154, 1
  store i32 %1155, ptr %103, align 4, !tbaa !9
  br label %992, !llvm.loop !34

1156:                                             ; preds = %992
  %1157 = load i32, ptr %96, align 4, !tbaa !9
  %1158 = add nsw i32 %1157, 1
  %1159 = sdiv i32 %1158, 2
  store i32 %1159, ptr %104, align 4, !tbaa !9
  %1160 = load i32, ptr %96, align 4, !tbaa !9
  store i32 %1160, ptr %75, align 4, !tbaa !9
  %1161 = load i32, ptr %104, align 4, !tbaa !9
  store i32 %1161, ptr %86, align 4, !tbaa !9
  br label %1162

1162:                                             ; preds = %1618, %1156
  %1163 = load i32, ptr %86, align 4, !tbaa !9
  %1164 = load i32, ptr %75, align 4, !tbaa !9
  %1165 = icmp sle i32 %1163, %1164
  br i1 %1165, label %1166, label %1621

1166:                                             ; preds = %1162
  %1167 = load i32, ptr %86, align 4, !tbaa !9
  %1168 = sub nsw i32 %1167, 1
  store i32 %1168, ptr %93, align 4, !tbaa !9
  %1169 = load ptr, ptr %51, align 8, !tbaa !5
  %1170 = load i32, ptr %90, align 4, !tbaa !9
  %1171 = load i32, ptr %93, align 4, !tbaa !9
  %1172 = add nsw i32 %1170, %1171
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds i32, ptr %1169, i64 %1173
  %1175 = load i32, ptr %1174, align 4, !tbaa !9
  store i32 %1175, ptr %94, align 4, !tbaa !9
  %1176 = load ptr, ptr %51, align 8, !tbaa !5
  %1177 = load i32, ptr %91, align 4, !tbaa !9
  %1178 = load i32, ptr %93, align 4, !tbaa !9
  %1179 = add nsw i32 %1177, %1178
  %1180 = sext i32 %1179 to i64
  %1181 = getelementptr inbounds i32, ptr %1176, i64 %1180
  %1182 = load i32, ptr %1181, align 4, !tbaa !9
  store i32 %1182, ptr %98, align 4, !tbaa !9
  %1183 = load ptr, ptr %51, align 8, !tbaa !5
  %1184 = load i32, ptr %92, align 4, !tbaa !9
  %1185 = load i32, ptr %93, align 4, !tbaa !9
  %1186 = add nsw i32 %1184, %1185
  %1187 = sext i32 %1186 to i64
  %1188 = getelementptr inbounds i32, ptr %1183, i64 %1187
  %1189 = load i32, ptr %1188, align 4, !tbaa !9
  store i32 %1189, ptr %99, align 4, !tbaa !9
  %1190 = load i32, ptr %98, align 4, !tbaa !9
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr %105, align 4, !tbaa !9
  %1192 = load i32, ptr %86, align 4, !tbaa !9
  %1193 = load i32, ptr %96, align 4, !tbaa !9
  %1194 = icmp eq i32 %1192, %1193
  br i1 %1194, label %1195, label %1197

1195:                                             ; preds = %1166
  %1196 = load i32, ptr %99, align 4, !tbaa !9
  store i32 %1196, ptr %107, align 4, !tbaa !9
  br label %1200

1197:                                             ; preds = %1166
  %1198 = load i32, ptr %99, align 4, !tbaa !9
  %1199 = add nsw i32 %1198, 1
  store i32 %1199, ptr %107, align 4, !tbaa !9
  br label %1200

1200:                                             ; preds = %1197, %1195
  %1201 = load i32, ptr %94, align 4, !tbaa !9
  %1202 = load i32, ptr %98, align 4, !tbaa !9
  %1203 = sub nsw i32 %1201, %1202
  store i32 %1203, ptr %101, align 4, !tbaa !9
  %1204 = load i32, ptr %94, align 4, !tbaa !9
  %1205 = add nsw i32 %1204, 1
  store i32 %1205, ptr %102, align 4, !tbaa !9
  %1206 = load i32, ptr %105, align 4, !tbaa !9
  %1207 = load ptr, ptr %30, align 8, !tbaa !5
  %1208 = load i32, ptr %1207, align 4, !tbaa !9
  %1209 = mul nsw i32 %1206, %1208
  %1210 = shl i32 %1209, 1
  store i32 %1210, ptr %87, align 4, !tbaa !9
  %1211 = load ptr, ptr %30, align 8, !tbaa !5
  %1212 = load i32, ptr %1211, align 4, !tbaa !9
  store i32 %1212, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %1213

1213:                                             ; preds = %1249, %1200
  %1214 = load i32, ptr %82, align 4, !tbaa !9
  %1215 = load i32, ptr %76, align 4, !tbaa !9
  %1216 = icmp sle i32 %1214, %1215
  br i1 %1216, label %1217, label %1252

1217:                                             ; preds = %1213
  %1218 = load i32, ptr %101, align 4, !tbaa !9
  %1219 = load i32, ptr %105, align 4, !tbaa !9
  %1220 = add nsw i32 %1218, %1219
  %1221 = sub nsw i32 %1220, 1
  store i32 %1221, ptr %77, align 4, !tbaa !9
  %1222 = load i32, ptr %101, align 4, !tbaa !9
  store i32 %1222, ptr %85, align 4, !tbaa !9
  br label %1223

1223:                                             ; preds = %1245, %1217
  %1224 = load i32, ptr %85, align 4, !tbaa !9
  %1225 = load i32, ptr %77, align 4, !tbaa !9
  %1226 = icmp sle i32 %1224, %1225
  br i1 %1226, label %1227, label %1248

1227:                                             ; preds = %1223
  %1228 = load i32, ptr %87, align 4, !tbaa !9
  %1229 = add nsw i32 %1228, 1
  store i32 %1229, ptr %87, align 4, !tbaa !9
  %1230 = load i32, ptr %85, align 4, !tbaa !9
  %1231 = load i32, ptr %82, align 4, !tbaa !9
  %1232 = load i32, ptr %71, align 4, !tbaa !9
  %1233 = mul nsw i32 %1231, %1232
  %1234 = add nsw i32 %1230, %1233
  store i32 %1234, ptr %78, align 4, !tbaa !9
  %1235 = load ptr, ptr %31, align 8, !tbaa !5
  %1236 = load i32, ptr %78, align 4, !tbaa !9
  %1237 = sext i32 %1236 to i64
  %1238 = getelementptr inbounds %struct.complex, ptr %1235, i64 %1237
  %1239 = getelementptr inbounds %struct.complex, ptr %1238, i32 0, i32 0
  %1240 = load float, ptr %1239, align 4, !tbaa !11
  %1241 = load ptr, ptr %50, align 8, !tbaa !5
  %1242 = load i32, ptr %87, align 4, !tbaa !9
  %1243 = sext i32 %1242 to i64
  %1244 = getelementptr inbounds float, ptr %1241, i64 %1243
  store float %1240, ptr %1244, align 4, !tbaa !14
  br label %1245

1245:                                             ; preds = %1227
  %1246 = load i32, ptr %85, align 4, !tbaa !9
  %1247 = add nsw i32 %1246, 1
  store i32 %1247, ptr %85, align 4, !tbaa !9
  br label %1223, !llvm.loop !35

1248:                                             ; preds = %1223
  br label %1249

1249:                                             ; preds = %1248
  %1250 = load i32, ptr %82, align 4, !tbaa !9
  %1251 = add nsw i32 %1250, 1
  store i32 %1251, ptr %82, align 4, !tbaa !9
  br label %1213, !llvm.loop !36

1252:                                             ; preds = %1213
  %1253 = load ptr, ptr %30, align 8, !tbaa !5
  %1254 = load ptr, ptr %37, align 8, !tbaa !5
  %1255 = load i32, ptr %101, align 4, !tbaa !9
  %1256 = load i32, ptr %67, align 4, !tbaa !9
  %1257 = add nsw i32 %1255, %1256
  %1258 = sext i32 %1257 to i64
  %1259 = getelementptr inbounds float, ptr %1254, i64 %1258
  %1260 = load ptr, ptr %36, align 8, !tbaa !5
  %1261 = load ptr, ptr %50, align 8, !tbaa !5
  %1262 = load i32, ptr %105, align 4, !tbaa !9
  %1263 = load ptr, ptr %30, align 8, !tbaa !5
  %1264 = load i32, ptr %1263, align 4, !tbaa !9
  %1265 = mul nsw i32 %1262, %1264
  %1266 = shl i32 %1265, 1
  %1267 = add nsw i32 %1266, 1
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds float, ptr %1261, i64 %1268
  %1270 = load ptr, ptr %50, align 8, !tbaa !5
  %1271 = getelementptr inbounds float, ptr %1270, i64 1
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %105, ptr noundef %1253, ptr noundef %105, ptr noundef @c_b9, ptr noundef %1259, ptr noundef %1260, ptr noundef %1269, ptr noundef %105, ptr noundef @c_b10, ptr noundef %1271, ptr noundef %105)
  %1272 = load i32, ptr %105, align 4, !tbaa !9
  %1273 = load ptr, ptr %30, align 8, !tbaa !5
  %1274 = load i32, ptr %1273, align 4, !tbaa !9
  %1275 = mul nsw i32 %1272, %1274
  %1276 = shl i32 %1275, 1
  store i32 %1276, ptr %87, align 4, !tbaa !9
  %1277 = load ptr, ptr %30, align 8, !tbaa !5
  %1278 = load i32, ptr %1277, align 4, !tbaa !9
  store i32 %1278, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %1279

1279:                                             ; preds = %1317, %1252
  %1280 = load i32, ptr %82, align 4, !tbaa !9
  %1281 = load i32, ptr %76, align 4, !tbaa !9
  %1282 = icmp sle i32 %1280, %1281
  br i1 %1282, label %1283, label %1320

1283:                                             ; preds = %1279
  %1284 = load i32, ptr %101, align 4, !tbaa !9
  %1285 = load i32, ptr %105, align 4, !tbaa !9
  %1286 = add nsw i32 %1284, %1285
  %1287 = sub nsw i32 %1286, 1
  store i32 %1287, ptr %77, align 4, !tbaa !9
  %1288 = load i32, ptr %101, align 4, !tbaa !9
  store i32 %1288, ptr %85, align 4, !tbaa !9
  br label %1289

1289:                                             ; preds = %1313, %1283
  %1290 = load i32, ptr %85, align 4, !tbaa !9
  %1291 = load i32, ptr %77, align 4, !tbaa !9
  %1292 = icmp sle i32 %1290, %1291
  br i1 %1292, label %1293, label %1316

1293:                                             ; preds = %1289
  %1294 = load i32, ptr %87, align 4, !tbaa !9
  %1295 = add nsw i32 %1294, 1
  store i32 %1295, ptr %87, align 4, !tbaa !9
  %1296 = load ptr, ptr %31, align 8, !tbaa !5
  %1297 = load i32, ptr %85, align 4, !tbaa !9
  %1298 = load i32, ptr %82, align 4, !tbaa !9
  %1299 = load i32, ptr %71, align 4, !tbaa !9
  %1300 = mul nsw i32 %1298, %1299
  %1301 = add nsw i32 %1297, %1300
  %1302 = sext i32 %1301 to i64
  %1303 = getelementptr inbounds %struct.complex, ptr %1296, i64 %1302
  %1304 = call <2 x float> @Cf(ptr noundef %1303)
  store <2 x float> %1304, ptr %111, align 4
  %1305 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 0
  %1306 = load float, ptr %1305, align 4
  %1307 = getelementptr inbounds { float, float }, ptr %111, i32 0, i32 1
  %1308 = load float, ptr %1307, align 4
  %1309 = load ptr, ptr %50, align 8, !tbaa !5
  %1310 = load i32, ptr %87, align 4, !tbaa !9
  %1311 = sext i32 %1310 to i64
  %1312 = getelementptr inbounds float, ptr %1309, i64 %1311
  store float %1308, ptr %1312, align 4, !tbaa !14
  br label %1313

1313:                                             ; preds = %1293
  %1314 = load i32, ptr %85, align 4, !tbaa !9
  %1315 = add nsw i32 %1314, 1
  store i32 %1315, ptr %85, align 4, !tbaa !9
  br label %1289, !llvm.loop !37

1316:                                             ; preds = %1289
  br label %1317

1317:                                             ; preds = %1316
  %1318 = load i32, ptr %82, align 4, !tbaa !9
  %1319 = add nsw i32 %1318, 1
  store i32 %1319, ptr %82, align 4, !tbaa !9
  br label %1279, !llvm.loop !38

1320:                                             ; preds = %1279
  %1321 = load ptr, ptr %30, align 8, !tbaa !5
  %1322 = load ptr, ptr %37, align 8, !tbaa !5
  %1323 = load i32, ptr %101, align 4, !tbaa !9
  %1324 = load i32, ptr %67, align 4, !tbaa !9
  %1325 = add nsw i32 %1323, %1324
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds float, ptr %1322, i64 %1326
  %1328 = load ptr, ptr %36, align 8, !tbaa !5
  %1329 = load ptr, ptr %50, align 8, !tbaa !5
  %1330 = load i32, ptr %105, align 4, !tbaa !9
  %1331 = load ptr, ptr %30, align 8, !tbaa !5
  %1332 = load i32, ptr %1331, align 4, !tbaa !9
  %1333 = mul nsw i32 %1330, %1332
  %1334 = shl i32 %1333, 1
  %1335 = add nsw i32 %1334, 1
  %1336 = sext i32 %1335 to i64
  %1337 = getelementptr inbounds float, ptr %1329, i64 %1336
  %1338 = load ptr, ptr %50, align 8, !tbaa !5
  %1339 = load i32, ptr %105, align 4, !tbaa !9
  %1340 = load ptr, ptr %30, align 8, !tbaa !5
  %1341 = load i32, ptr %1340, align 4, !tbaa !9
  %1342 = mul nsw i32 %1339, %1341
  %1343 = add nsw i32 %1342, 1
  %1344 = sext i32 %1343 to i64
  %1345 = getelementptr inbounds float, ptr %1338, i64 %1344
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %105, ptr noundef %1321, ptr noundef %105, ptr noundef @c_b9, ptr noundef %1327, ptr noundef %1328, ptr noundef %1337, ptr noundef %105, ptr noundef @c_b10, ptr noundef %1345, ptr noundef %105)
  store i32 0, ptr %89, align 4, !tbaa !9
  %1346 = load i32, ptr %105, align 4, !tbaa !9
  %1347 = load ptr, ptr %30, align 8, !tbaa !5
  %1348 = load i32, ptr %1347, align 4, !tbaa !9
  %1349 = mul nsw i32 %1346, %1348
  store i32 %1349, ptr %88, align 4, !tbaa !9
  %1350 = load ptr, ptr %30, align 8, !tbaa !5
  %1351 = load i32, ptr %1350, align 4, !tbaa !9
  store i32 %1351, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %1352

1352:                                             ; preds = %1408, %1320
  %1353 = load i32, ptr %82, align 4, !tbaa !9
  %1354 = load i32, ptr %76, align 4, !tbaa !9
  %1355 = icmp sle i32 %1353, %1354
  br i1 %1355, label %1356, label %1411

1356:                                             ; preds = %1352
  %1357 = load i32, ptr %101, align 4, !tbaa !9
  %1358 = load i32, ptr %105, align 4, !tbaa !9
  %1359 = add nsw i32 %1357, %1358
  %1360 = sub nsw i32 %1359, 1
  store i32 %1360, ptr %77, align 4, !tbaa !9
  %1361 = load i32, ptr %101, align 4, !tbaa !9
  store i32 %1361, ptr %85, align 4, !tbaa !9
  br label %1362

1362:                                             ; preds = %1404, %1356
  %1363 = load i32, ptr %85, align 4, !tbaa !9
  %1364 = load i32, ptr %77, align 4, !tbaa !9
  %1365 = icmp sle i32 %1363, %1364
  br i1 %1365, label %1366, label %1407

1366:                                             ; preds = %1362
  %1367 = load i32, ptr %89, align 4, !tbaa !9
  %1368 = add nsw i32 %1367, 1
  store i32 %1368, ptr %89, align 4, !tbaa !9
  %1369 = load i32, ptr %88, align 4, !tbaa !9
  %1370 = add nsw i32 %1369, 1
  store i32 %1370, ptr %88, align 4, !tbaa !9
  %1371 = load i32, ptr %85, align 4, !tbaa !9
  %1372 = load i32, ptr %82, align 4, !tbaa !9
  %1373 = load i32, ptr %73, align 4, !tbaa !9
  %1374 = mul nsw i32 %1372, %1373
  %1375 = add nsw i32 %1371, %1374
  store i32 %1375, ptr %78, align 4, !tbaa !9
  %1376 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %1376, ptr %79, align 4, !tbaa !9
  %1377 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %1377, ptr %80, align 4, !tbaa !9
  %1378 = load ptr, ptr %50, align 8, !tbaa !5
  %1379 = load i32, ptr %79, align 4, !tbaa !9
  %1380 = sext i32 %1379 to i64
  %1381 = getelementptr inbounds float, ptr %1378, i64 %1380
  %1382 = load float, ptr %1381, align 4, !tbaa !14
  %1383 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 0
  store float %1382, ptr %1383, align 4, !tbaa !11
  %1384 = load ptr, ptr %50, align 8, !tbaa !5
  %1385 = load i32, ptr %80, align 4, !tbaa !9
  %1386 = sext i32 %1385 to i64
  %1387 = getelementptr inbounds float, ptr %1384, i64 %1386
  %1388 = load float, ptr %1387, align 4, !tbaa !14
  %1389 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 1
  store float %1388, ptr %1389, align 4, !tbaa !20
  %1390 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 0
  %1391 = load float, ptr %1390, align 4, !tbaa !11
  %1392 = load ptr, ptr %33, align 8, !tbaa !5
  %1393 = load i32, ptr %78, align 4, !tbaa !9
  %1394 = sext i32 %1393 to i64
  %1395 = getelementptr inbounds %struct.complex, ptr %1392, i64 %1394
  %1396 = getelementptr inbounds %struct.complex, ptr %1395, i32 0, i32 0
  store float %1391, ptr %1396, align 4, !tbaa !11
  %1397 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 1
  %1398 = load float, ptr %1397, align 4, !tbaa !20
  %1399 = load ptr, ptr %33, align 8, !tbaa !5
  %1400 = load i32, ptr %78, align 4, !tbaa !9
  %1401 = sext i32 %1400 to i64
  %1402 = getelementptr inbounds %struct.complex, ptr %1399, i64 %1401
  %1403 = getelementptr inbounds %struct.complex, ptr %1402, i32 0, i32 1
  store float %1398, ptr %1403, align 4, !tbaa !20
  br label %1404

1404:                                             ; preds = %1366
  %1405 = load i32, ptr %85, align 4, !tbaa !9
  %1406 = add nsw i32 %1405, 1
  store i32 %1406, ptr %85, align 4, !tbaa !9
  br label %1362, !llvm.loop !39

1407:                                             ; preds = %1362
  br label %1408

1408:                                             ; preds = %1407
  %1409 = load i32, ptr %82, align 4, !tbaa !9
  %1410 = add nsw i32 %1409, 1
  store i32 %1410, ptr %82, align 4, !tbaa !9
  br label %1352, !llvm.loop !40

1411:                                             ; preds = %1352
  %1412 = load i32, ptr %107, align 4, !tbaa !9
  %1413 = load ptr, ptr %30, align 8, !tbaa !5
  %1414 = load i32, ptr %1413, align 4, !tbaa !9
  %1415 = mul nsw i32 %1412, %1414
  %1416 = shl i32 %1415, 1
  store i32 %1416, ptr %87, align 4, !tbaa !9
  %1417 = load ptr, ptr %30, align 8, !tbaa !5
  %1418 = load i32, ptr %1417, align 4, !tbaa !9
  store i32 %1418, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %1419

1419:                                             ; preds = %1455, %1411
  %1420 = load i32, ptr %82, align 4, !tbaa !9
  %1421 = load i32, ptr %76, align 4, !tbaa !9
  %1422 = icmp sle i32 %1420, %1421
  br i1 %1422, label %1423, label %1458

1423:                                             ; preds = %1419
  %1424 = load i32, ptr %102, align 4, !tbaa !9
  %1425 = load i32, ptr %107, align 4, !tbaa !9
  %1426 = add nsw i32 %1424, %1425
  %1427 = sub nsw i32 %1426, 1
  store i32 %1427, ptr %77, align 4, !tbaa !9
  %1428 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %1428, ptr %85, align 4, !tbaa !9
  br label %1429

1429:                                             ; preds = %1451, %1423
  %1430 = load i32, ptr %85, align 4, !tbaa !9
  %1431 = load i32, ptr %77, align 4, !tbaa !9
  %1432 = icmp sle i32 %1430, %1431
  br i1 %1432, label %1433, label %1454

1433:                                             ; preds = %1429
  %1434 = load i32, ptr %87, align 4, !tbaa !9
  %1435 = add nsw i32 %1434, 1
  store i32 %1435, ptr %87, align 4, !tbaa !9
  %1436 = load i32, ptr %85, align 4, !tbaa !9
  %1437 = load i32, ptr %82, align 4, !tbaa !9
  %1438 = load i32, ptr %71, align 4, !tbaa !9
  %1439 = mul nsw i32 %1437, %1438
  %1440 = add nsw i32 %1436, %1439
  store i32 %1440, ptr %78, align 4, !tbaa !9
  %1441 = load ptr, ptr %31, align 8, !tbaa !5
  %1442 = load i32, ptr %78, align 4, !tbaa !9
  %1443 = sext i32 %1442 to i64
  %1444 = getelementptr inbounds %struct.complex, ptr %1441, i64 %1443
  %1445 = getelementptr inbounds %struct.complex, ptr %1444, i32 0, i32 0
  %1446 = load float, ptr %1445, align 4, !tbaa !11
  %1447 = load ptr, ptr %50, align 8, !tbaa !5
  %1448 = load i32, ptr %87, align 4, !tbaa !9
  %1449 = sext i32 %1448 to i64
  %1450 = getelementptr inbounds float, ptr %1447, i64 %1449
  store float %1446, ptr %1450, align 4, !tbaa !14
  br label %1451

1451:                                             ; preds = %1433
  %1452 = load i32, ptr %85, align 4, !tbaa !9
  %1453 = add nsw i32 %1452, 1
  store i32 %1453, ptr %85, align 4, !tbaa !9
  br label %1429, !llvm.loop !41

1454:                                             ; preds = %1429
  br label %1455

1455:                                             ; preds = %1454
  %1456 = load i32, ptr %82, align 4, !tbaa !9
  %1457 = add nsw i32 %1456, 1
  store i32 %1457, ptr %82, align 4, !tbaa !9
  br label %1419, !llvm.loop !42

1458:                                             ; preds = %1419
  %1459 = load ptr, ptr %30, align 8, !tbaa !5
  %1460 = load ptr, ptr %37, align 8, !tbaa !5
  %1461 = load i32, ptr %102, align 4, !tbaa !9
  %1462 = load i32, ptr %67, align 4, !tbaa !9
  %1463 = add nsw i32 %1461, %1462
  %1464 = sext i32 %1463 to i64
  %1465 = getelementptr inbounds float, ptr %1460, i64 %1464
  %1466 = load ptr, ptr %36, align 8, !tbaa !5
  %1467 = load ptr, ptr %50, align 8, !tbaa !5
  %1468 = load i32, ptr %107, align 4, !tbaa !9
  %1469 = load ptr, ptr %30, align 8, !tbaa !5
  %1470 = load i32, ptr %1469, align 4, !tbaa !9
  %1471 = mul nsw i32 %1468, %1470
  %1472 = shl i32 %1471, 1
  %1473 = add nsw i32 %1472, 1
  %1474 = sext i32 %1473 to i64
  %1475 = getelementptr inbounds float, ptr %1467, i64 %1474
  %1476 = load ptr, ptr %50, align 8, !tbaa !5
  %1477 = getelementptr inbounds float, ptr %1476, i64 1
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %107, ptr noundef %1459, ptr noundef %107, ptr noundef @c_b9, ptr noundef %1465, ptr noundef %1466, ptr noundef %1475, ptr noundef %107, ptr noundef @c_b10, ptr noundef %1477, ptr noundef %107)
  %1478 = load i32, ptr %107, align 4, !tbaa !9
  %1479 = load ptr, ptr %30, align 8, !tbaa !5
  %1480 = load i32, ptr %1479, align 4, !tbaa !9
  %1481 = mul nsw i32 %1478, %1480
  %1482 = shl i32 %1481, 1
  store i32 %1482, ptr %87, align 4, !tbaa !9
  %1483 = load ptr, ptr %30, align 8, !tbaa !5
  %1484 = load i32, ptr %1483, align 4, !tbaa !9
  store i32 %1484, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %1485

1485:                                             ; preds = %1523, %1458
  %1486 = load i32, ptr %82, align 4, !tbaa !9
  %1487 = load i32, ptr %76, align 4, !tbaa !9
  %1488 = icmp sle i32 %1486, %1487
  br i1 %1488, label %1489, label %1526

1489:                                             ; preds = %1485
  %1490 = load i32, ptr %102, align 4, !tbaa !9
  %1491 = load i32, ptr %107, align 4, !tbaa !9
  %1492 = add nsw i32 %1490, %1491
  %1493 = sub nsw i32 %1492, 1
  store i32 %1493, ptr %77, align 4, !tbaa !9
  %1494 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %1494, ptr %85, align 4, !tbaa !9
  br label %1495

1495:                                             ; preds = %1519, %1489
  %1496 = load i32, ptr %85, align 4, !tbaa !9
  %1497 = load i32, ptr %77, align 4, !tbaa !9
  %1498 = icmp sle i32 %1496, %1497
  br i1 %1498, label %1499, label %1522

1499:                                             ; preds = %1495
  %1500 = load i32, ptr %87, align 4, !tbaa !9
  %1501 = add nsw i32 %1500, 1
  store i32 %1501, ptr %87, align 4, !tbaa !9
  %1502 = load ptr, ptr %31, align 8, !tbaa !5
  %1503 = load i32, ptr %85, align 4, !tbaa !9
  %1504 = load i32, ptr %82, align 4, !tbaa !9
  %1505 = load i32, ptr %71, align 4, !tbaa !9
  %1506 = mul nsw i32 %1504, %1505
  %1507 = add nsw i32 %1503, %1506
  %1508 = sext i32 %1507 to i64
  %1509 = getelementptr inbounds %struct.complex, ptr %1502, i64 %1508
  %1510 = call <2 x float> @Cf(ptr noundef %1509)
  store <2 x float> %1510, ptr %112, align 4
  %1511 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 0
  %1512 = load float, ptr %1511, align 4
  %1513 = getelementptr inbounds { float, float }, ptr %112, i32 0, i32 1
  %1514 = load float, ptr %1513, align 4
  %1515 = load ptr, ptr %50, align 8, !tbaa !5
  %1516 = load i32, ptr %87, align 4, !tbaa !9
  %1517 = sext i32 %1516 to i64
  %1518 = getelementptr inbounds float, ptr %1515, i64 %1517
  store float %1514, ptr %1518, align 4, !tbaa !14
  br label %1519

1519:                                             ; preds = %1499
  %1520 = load i32, ptr %85, align 4, !tbaa !9
  %1521 = add nsw i32 %1520, 1
  store i32 %1521, ptr %85, align 4, !tbaa !9
  br label %1495, !llvm.loop !43

1522:                                             ; preds = %1495
  br label %1523

1523:                                             ; preds = %1522
  %1524 = load i32, ptr %82, align 4, !tbaa !9
  %1525 = add nsw i32 %1524, 1
  store i32 %1525, ptr %82, align 4, !tbaa !9
  br label %1485, !llvm.loop !44

1526:                                             ; preds = %1485
  %1527 = load ptr, ptr %30, align 8, !tbaa !5
  %1528 = load ptr, ptr %37, align 8, !tbaa !5
  %1529 = load i32, ptr %102, align 4, !tbaa !9
  %1530 = load i32, ptr %67, align 4, !tbaa !9
  %1531 = add nsw i32 %1529, %1530
  %1532 = sext i32 %1531 to i64
  %1533 = getelementptr inbounds float, ptr %1528, i64 %1532
  %1534 = load ptr, ptr %36, align 8, !tbaa !5
  %1535 = load ptr, ptr %50, align 8, !tbaa !5
  %1536 = load i32, ptr %107, align 4, !tbaa !9
  %1537 = load ptr, ptr %30, align 8, !tbaa !5
  %1538 = load i32, ptr %1537, align 4, !tbaa !9
  %1539 = mul nsw i32 %1536, %1538
  %1540 = shl i32 %1539, 1
  %1541 = add nsw i32 %1540, 1
  %1542 = sext i32 %1541 to i64
  %1543 = getelementptr inbounds float, ptr %1535, i64 %1542
  %1544 = load ptr, ptr %50, align 8, !tbaa !5
  %1545 = load i32, ptr %107, align 4, !tbaa !9
  %1546 = load ptr, ptr %30, align 8, !tbaa !5
  %1547 = load i32, ptr %1546, align 4, !tbaa !9
  %1548 = mul nsw i32 %1545, %1547
  %1549 = add nsw i32 %1548, 1
  %1550 = sext i32 %1549 to i64
  %1551 = getelementptr inbounds float, ptr %1544, i64 %1550
  call void @sgemm_(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %107, ptr noundef %1527, ptr noundef %107, ptr noundef @c_b9, ptr noundef %1533, ptr noundef %1534, ptr noundef %1543, ptr noundef %107, ptr noundef @c_b10, ptr noundef %1551, ptr noundef %107)
  store i32 0, ptr %89, align 4, !tbaa !9
  %1552 = load i32, ptr %107, align 4, !tbaa !9
  %1553 = load ptr, ptr %30, align 8, !tbaa !5
  %1554 = load i32, ptr %1553, align 4, !tbaa !9
  %1555 = mul nsw i32 %1552, %1554
  store i32 %1555, ptr %88, align 4, !tbaa !9
  %1556 = load ptr, ptr %30, align 8, !tbaa !5
  %1557 = load i32, ptr %1556, align 4, !tbaa !9
  store i32 %1557, ptr %76, align 4, !tbaa !9
  store i32 1, ptr %82, align 4, !tbaa !9
  br label %1558

1558:                                             ; preds = %1614, %1526
  %1559 = load i32, ptr %82, align 4, !tbaa !9
  %1560 = load i32, ptr %76, align 4, !tbaa !9
  %1561 = icmp sle i32 %1559, %1560
  br i1 %1561, label %1562, label %1617

1562:                                             ; preds = %1558
  %1563 = load i32, ptr %102, align 4, !tbaa !9
  %1564 = load i32, ptr %107, align 4, !tbaa !9
  %1565 = add nsw i32 %1563, %1564
  %1566 = sub nsw i32 %1565, 1
  store i32 %1566, ptr %77, align 4, !tbaa !9
  %1567 = load i32, ptr %102, align 4, !tbaa !9
  store i32 %1567, ptr %85, align 4, !tbaa !9
  br label %1568

1568:                                             ; preds = %1610, %1562
  %1569 = load i32, ptr %85, align 4, !tbaa !9
  %1570 = load i32, ptr %77, align 4, !tbaa !9
  %1571 = icmp sle i32 %1569, %1570
  br i1 %1571, label %1572, label %1613

1572:                                             ; preds = %1568
  %1573 = load i32, ptr %89, align 4, !tbaa !9
  %1574 = add nsw i32 %1573, 1
  store i32 %1574, ptr %89, align 4, !tbaa !9
  %1575 = load i32, ptr %88, align 4, !tbaa !9
  %1576 = add nsw i32 %1575, 1
  store i32 %1576, ptr %88, align 4, !tbaa !9
  %1577 = load i32, ptr %85, align 4, !tbaa !9
  %1578 = load i32, ptr %82, align 4, !tbaa !9
  %1579 = load i32, ptr %73, align 4, !tbaa !9
  %1580 = mul nsw i32 %1578, %1579
  %1581 = add nsw i32 %1577, %1580
  store i32 %1581, ptr %78, align 4, !tbaa !9
  %1582 = load i32, ptr %89, align 4, !tbaa !9
  store i32 %1582, ptr %79, align 4, !tbaa !9
  %1583 = load i32, ptr %88, align 4, !tbaa !9
  store i32 %1583, ptr %80, align 4, !tbaa !9
  %1584 = load ptr, ptr %50, align 8, !tbaa !5
  %1585 = load i32, ptr %79, align 4, !tbaa !9
  %1586 = sext i32 %1585 to i64
  %1587 = getelementptr inbounds float, ptr %1584, i64 %1586
  %1588 = load float, ptr %1587, align 4, !tbaa !14
  %1589 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 0
  store float %1588, ptr %1589, align 4, !tbaa !11
  %1590 = load ptr, ptr %50, align 8, !tbaa !5
  %1591 = load i32, ptr %80, align 4, !tbaa !9
  %1592 = sext i32 %1591 to i64
  %1593 = getelementptr inbounds float, ptr %1590, i64 %1592
  %1594 = load float, ptr %1593, align 4, !tbaa !14
  %1595 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 1
  store float %1594, ptr %1595, align 4, !tbaa !20
  %1596 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 0
  %1597 = load float, ptr %1596, align 4, !tbaa !11
  %1598 = load ptr, ptr %33, align 8, !tbaa !5
  %1599 = load i32, ptr %78, align 4, !tbaa !9
  %1600 = sext i32 %1599 to i64
  %1601 = getelementptr inbounds %struct.complex, ptr %1598, i64 %1600
  %1602 = getelementptr inbounds %struct.complex, ptr %1601, i32 0, i32 0
  store float %1597, ptr %1602, align 4, !tbaa !11
  %1603 = getelementptr inbounds %struct.complex, ptr %81, i32 0, i32 1
  %1604 = load float, ptr %1603, align 4, !tbaa !20
  %1605 = load ptr, ptr %33, align 8, !tbaa !5
  %1606 = load i32, ptr %78, align 4, !tbaa !9
  %1607 = sext i32 %1606 to i64
  %1608 = getelementptr inbounds %struct.complex, ptr %1605, i64 %1607
  %1609 = getelementptr inbounds %struct.complex, ptr %1608, i32 0, i32 1
  store float %1604, ptr %1609, align 4, !tbaa !20
  br label %1610

1610:                                             ; preds = %1572
  %1611 = load i32, ptr %85, align 4, !tbaa !9
  %1612 = add nsw i32 %1611, 1
  store i32 %1612, ptr %85, align 4, !tbaa !9
  br label %1568, !llvm.loop !45

1613:                                             ; preds = %1568
  br label %1614

1614:                                             ; preds = %1613
  %1615 = load i32, ptr %82, align 4, !tbaa !9
  %1616 = add nsw i32 %1615, 1
  store i32 %1616, ptr %82, align 4, !tbaa !9
  br label %1558, !llvm.loop !46

1617:                                             ; preds = %1558
  br label %1618

1618:                                             ; preds = %1617
  %1619 = load i32, ptr %86, align 4, !tbaa !9
  %1620 = add nsw i32 %1619, 1
  store i32 %1620, ptr %86, align 4, !tbaa !9
  br label %1162, !llvm.loop !47

1621:                                             ; preds = %1162
  br label %1622

1622:                                             ; preds = %1621, %989
  store i32 1, ptr %108, align 4
  br label %1623

1623:                                             ; preds = %1622, %308
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  ret void
}

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

declare i32 @xerbla_(ptr noundef, ptr noundef, i32 noundef) #2

declare void @slasdt_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @sgemm_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) #3

declare void @ccopy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @pow_ii(i32 noundef, i32 noundef) #4

declare void @clals0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="64" "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 = { "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 = { inlinehint nounwind uwtable "min-legal-vector-width"="64" "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 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !13, i64 0}
!12 = !{!"", !13, i64 0, !13, i64 4}
!13 = !{!"float", !7, i64 0}
!14 = !{!13, !13, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !16}
!20 = !{!12, !13, i64 4}
!21 = distinct !{!21, !16}
!22 = distinct !{!22, !16}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}
!26 = distinct !{!26, !16}
!27 = distinct !{!27, !16}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}
!30 = distinct !{!30, !16}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}
!33 = distinct !{!33, !16}
!34 = distinct !{!34, !16}
!35 = distinct !{!35, !16}
!36 = distinct !{!36, !16}
!37 = distinct !{!37, !16}
!38 = distinct !{!38, !16}
!39 = distinct !{!39, !16}
!40 = distinct !{!40, !16}
!41 = distinct !{!41, !16}
!42 = distinct !{!42, !16}
!43 = distinct !{!43, !16}
!44 = distinct !{!44, !16}
!45 = distinct !{!45, !16}
!46 = distinct !{!46, !16}
!47 = distinct !{!47, !16}


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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b9 = external hidden global float, align 4
@c_b10 = external hidden global float, align 4
@c__2 = external hidden local_unnamed_addr global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @clalsa_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25) local_unnamed_addr #0 {
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  %35 = load i32, ptr %5, align 4, !tbaa !5
  %narrow = xor i32 %35, -1
  %36 = sext i32 %narrow to i64
  %37 = getelementptr inbounds %struct.complex, ptr %4, i64 %36
  %38 = load i32, ptr %7, align 4, !tbaa !5
  %narrow655 = xor i32 %38, -1
  %39 = sext i32 %narrow655 to i64
  %40 = getelementptr inbounds %struct.complex, ptr %6, i64 %39
  %41 = load i32, ptr %9, align 4, !tbaa !5
  %narrow656 = xor i32 %41, -1
  %42 = sext i32 %narrow656 to i64
  %43 = getelementptr inbounds float, ptr %20, i64 %42
  %44 = getelementptr inbounds float, ptr %15, i64 %42
  %45 = getelementptr inbounds float, ptr %14, i64 %42
  %46 = getelementptr inbounds float, ptr %13, i64 %42
  %47 = getelementptr inbounds float, ptr %12, i64 %42
  %48 = getelementptr inbounds float, ptr %10, i64 %42
  %49 = getelementptr inbounds float, ptr %8, i64 %42
  %50 = getelementptr inbounds i8, ptr %11, i64 -4
  %51 = getelementptr inbounds i8, ptr %16, i64 -4
  %52 = load i32, ptr %18, align 4, !tbaa !5
  %narrow657 = xor i32 %52, -1
  %53 = sext i32 %narrow657 to i64
  %54 = getelementptr inbounds i32, ptr %19, i64 %53
  %55 = getelementptr inbounds i32, ptr %17, i64 %53
  %56 = getelementptr inbounds i8, ptr %21, i64 -4
  %57 = getelementptr inbounds i8, ptr %22, i64 -4
  %58 = getelementptr inbounds i8, ptr %23, i64 -4
  %59 = getelementptr inbounds i8, ptr %24, i64 -4
  store i32 0, ptr %25, align 4, !tbaa !5
  %60 = load i32, ptr %0, align 4, !tbaa !5
  %or.cond = icmp ugt i32 %60, 1
  br i1 %or.cond, label %.thread, label %61

61:                                               ; preds = %26
  %62 = load i32, ptr %1, align 4, !tbaa !5
  %63 = icmp slt i32 %62, 3
  br i1 %63, label %.thread, label %64

64:                                               ; preds = %61
  %65 = load i32, ptr %2, align 4, !tbaa !5
  %66 = icmp slt i32 %65, %62
  br i1 %66, label %.thread, label %67

67:                                               ; preds = %64
  %68 = load i32, ptr %3, align 4, !tbaa !5
  %69 = icmp slt i32 %68, 1
  br i1 %69, label %.thread, label %70

70:                                               ; preds = %67
  %71 = load i32, ptr %5, align 4, !tbaa !5
  %72 = icmp slt i32 %71, %65
  br i1 %72, label %.thread, label %73

73:                                               ; preds = %70
  %74 = load i32, ptr %7, align 4, !tbaa !5
  %75 = icmp slt i32 %74, %65
  br i1 %75, label %.thread, label %76

76:                                               ; preds = %73
  %77 = load i32, ptr %9, align 4, !tbaa !5
  %78 = icmp slt i32 %77, %65
  br i1 %78, label %.thread, label %79

79:                                               ; preds = %76
  %80 = load i32, ptr %18, align 4, !tbaa !5
  %81 = icmp slt i32 %80, %65
  br i1 %81, label %.thread, label %83

.thread:                                          ; preds = %79, %76, %73, %70, %67, %64, %61, %26
  %.sink = phi i32 [ -1, %26 ], [ -2, %61 ], [ -3, %64 ], [ -4, %67 ], [ -6, %70 ], [ -8, %73 ], [ -10, %76 ], [ -19, %79 ]
  %.neg = phi i32 [ 1, %26 ], [ 2, %61 ], [ 3, %64 ], [ 4, %67 ], [ 6, %70 ], [ 8, %73 ], [ 10, %76 ], [ 19, %79 ]
  store i32 %.sink, ptr %25, align 4, !tbaa !5
  store i32 %.neg, ptr %27, align 4, !tbaa !5
  %82 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %27, i32 noundef 6) #6
  br label %.loopexit

83:                                               ; preds = %79
  %84 = add nuw nsw i32 %65, 1
  %85 = add nuw nsw i32 %84, %65
  %86 = zext nneg i32 %84 to i64
  %87 = getelementptr inbounds i32, ptr %59, i64 %86
  %88 = zext nneg i32 %85 to i64
  %89 = getelementptr inbounds i32, ptr %59, i64 %88
  call void @slasdt_(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %30, ptr noundef %24, ptr noundef nonnull %87, ptr noundef nonnull %89, ptr noundef nonnull %1) #6
  %90 = load i32, ptr %0, align 4, !tbaa !5
  %91 = icmp eq i32 %90, 1
  br i1 %91, label %444, label %92

92:                                               ; preds = %83
  %93 = load i32, ptr %30, align 4, !tbaa !5
  %94 = add nsw i32 %93, 1
  %95 = sdiv i32 %94, 2
  %.not658767 = icmp sgt i32 %95, %93
  br i1 %.not658767, label %._crit_edge771, label %.lr.ph770

.lr.ph770:                                        ; preds = %92
  %96 = shl nuw i32 %65, 1
  %97 = sext i32 %35 to i64
  %98 = sext i32 %38 to i64
  %99 = sext i32 %95 to i64
  %.pre = load i32, ptr %3, align 4, !tbaa !5
  %100 = sext i32 %93 to i64
  %101 = shl nsw i64 %98, 3
  %102 = shl nsw i64 %39, 3
  %103 = getelementptr i8, ptr %6, i64 %101
  %104 = getelementptr i8, ptr %103, i64 %102
  %scevgep = getelementptr i8, ptr %104, i64 8
  %105 = getelementptr i8, ptr %6, i64 %102
  %scevgep1166 = getelementptr i8, ptr %105, i64 16
  %scevgep1169 = getelementptr i8, ptr %23, i64 4
  %scevgep1173 = getelementptr i8, ptr %23, i64 4
  %scevgep1192 = getelementptr i8, ptr %23, i64 4
  %106 = shl nsw i64 %97, 3
  %107 = shl nsw i64 %36, 3
  %108 = getelementptr i8, ptr %4, i64 %106
  %109 = getelementptr i8, ptr %108, i64 %107
  %scevgep1195 = getelementptr i8, ptr %109, i64 8
  %110 = getelementptr i8, ptr %4, i64 %107
  %scevgep1197 = getelementptr i8, ptr %110, i64 12
  %111 = add nsw i64 %98, %39
  %112 = shl nsw i64 %111, 3
  %scevgep1221 = getelementptr i8, ptr %6, i64 %112
  %113 = shl nsw i64 %98, 3
  %114 = add nsw i64 %98, %39
  %115 = add nsw i64 %97, %36
  %116 = shl nsw i64 %115, 3
  %scevgep1270 = getelementptr i8, ptr %4, i64 %116
  %scevgep1272 = getelementptr i8, ptr %4, i64 -4
  %117 = shl nsw i64 %97, 3
  %118 = add nsw i64 %97, %36
  %stride.check1277 = icmp slt i32 %35, 0
  %stride.check1237 = icmp slt i32 %38, 0
  %stride.check1202 = icmp slt i32 %35, 0
  %invariant.gep1491 = getelementptr i8, ptr %23, i64 4
  %invariant.gep1495 = getelementptr i8, ptr %23, i64 8
  %invariant.gep1499 = getelementptr i8, ptr %23, i64 12
  %stride.check1179 = icmp slt i32 %38, 0
  %invariant.gep1505 = getelementptr i8, ptr %23, i64 4
  %invariant.gep1507 = getelementptr i8, ptr %23, i64 4
  br label %119

119:                                              ; preds = %.lr.ph770, %._crit_edge764
  %120 = phi i32 [ %.pre, %.lr.ph770 ], [ %315, %._crit_edge764 ]
  %indvars.iv1000 = phi i64 [ %99, %.lr.ph770 ], [ %indvars.iv.next1001, %._crit_edge764 ]
  %121 = getelementptr inbounds i32, ptr %59, i64 %indvars.iv1000
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = trunc nsw i64 %indvars.iv1000 to i32
  %124 = add i32 %65, %123
  %125 = sext i32 %124 to i64
  %126 = getelementptr inbounds i32, ptr %59, i64 %125
  %127 = load i32, ptr %126, align 4, !tbaa !5
  store i32 %127, ptr %31, align 4, !tbaa !5
  %128 = add i32 %96, %123
  %129 = sext i32 %128 to i64
  %130 = getelementptr inbounds i32, ptr %59, i64 %129
  %131 = load i32, ptr %130, align 4, !tbaa !5
  store i32 %131, ptr %32, align 4, !tbaa !5
  %132 = sub i32 %122, %127
  %133 = add i32 %122, 1
  %134 = shl i32 %127, 1
  %135 = mul i32 %134, %120
  %.not661694 = icmp sgt i32 %120, 0
  %.not672.not691 = icmp sgt i32 %127, 0
  %or.cond1162 = select i1 %.not661694, i1 %.not672.not691, i1 false
  br i1 %or.cond1162, label %.preheader.us.preheader, label %._crit_edge697

.preheader.us.preheader:                          ; preds = %119
  %136 = sext i32 %132 to i64
  %137 = sext i32 %122 to i64
  %138 = add nuw i32 %120, 1
  %wide.trip.count = zext i32 %138 to i64
  %139 = mul nsw i64 %136, -4
  %scevgep1267 = getelementptr i8, ptr %23, i64 %139
  %140 = add nsw i64 %136, 1
  %smax1268 = call i64 @llvm.smax.i64(i64 %140, i64 %137)
  %141 = shl nsw i64 %136, 3
  %scevgep1271 = getelementptr i8, ptr %scevgep1270, i64 %141
  %142 = add nsw i64 %wide.trip.count, -2
  %143 = mul i64 %117, %142
  %144 = add i64 %118, %smax1268
  %145 = shl nsw i64 %144, 3
  %146 = getelementptr i8, ptr %scevgep1272, i64 %143
  %scevgep1273 = getelementptr i8, ptr %146, i64 %145
  %147 = add nsw i64 %136, 1
  %smax1278 = call i64 @llvm.smax.i64(i64 %147, i64 %137)
  %148 = sub i64 %smax1278, %136
  %min.iters.check1281 = icmp ult i64 %148, 9
  %n.mod.vf1283 = and i64 %148, 7
  %149 = icmp eq i64 %n.mod.vf1283, 0
  %150 = select i1 %149, i64 8, i64 %n.mod.vf1283
  %n.vec1284 = sub i64 %148, %150
  %ind.end1285 = add i64 %n.vec1284, %136
  br label %.preheader.us

.preheader.us:                                    ; preds = %.preheader.us.preheader, %._crit_edge.us
  %indvars.iv924 = phi i64 [ 1, %.preheader.us.preheader ], [ %indvars.iv.next925, %._crit_edge.us ]
  %.0614696.us = phi i32 [ %135, %.preheader.us.preheader ], [ %162, %._crit_edge.us ]
  %151 = mul nsw i64 %indvars.iv924, %97
  %152 = sext i32 %.0614696.us to i64
  %invariant.gep = getelementptr %struct.complex, ptr %37, i64 %151
  br i1 %min.iters.check1281, label %scalar.ph1280.preheader, label %vector.memcheck1265

vector.memcheck1265:                              ; preds = %.preheader.us
  %153 = shl nsw i64 %152, 2
  %scevgep1266 = getelementptr i8, ptr %23, i64 %153
  %154 = add i64 %smax1268, %152
  %155 = shl nsw i64 %154, 2
  %scevgep1269 = getelementptr i8, ptr %scevgep1267, i64 %155
  %bound01274 = icmp ult ptr %scevgep1266, %scevgep1273
  %bound11275 = icmp ult ptr %scevgep1271, %scevgep1269
  %found.conflict1276 = and i1 %bound01274, %bound11275
  %156 = or i1 %found.conflict1276, %stride.check1277
  br i1 %156, label %scalar.ph1280.preheader, label %vector.ph1282

vector.ph1282:                                    ; preds = %vector.memcheck1265
  %ind.end1287 = add i64 %n.vec1284, %152
  %invariant.gep1477 = getelementptr i8, ptr %invariant.gep, i64 32
  %invariant.gep1479 = getelementptr float, ptr %23, i64 %152
  br label %vector.body1289

vector.body1289:                                  ; preds = %vector.body1289, %vector.ph1282
  %index1290 = phi i64 [ 0, %vector.ph1282 ], [ %index.next1297, %vector.body1289 ]
  %offset.idx1291 = add i64 %index1290, %136
  %157 = getelementptr %struct.complex, ptr %invariant.gep, i64 %offset.idx1291
  %gep1478 = getelementptr %struct.complex, ptr %invariant.gep1477, i64 %offset.idx1291
  %wide.vec1293 = load <8 x float>, ptr %157, align 4, !tbaa !9
  %wide.vec1294 = load <8 x float>, ptr %gep1478, align 4, !tbaa !9
  %strided.vec1295 = shufflevector <8 x float> %wide.vec1293, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1296 = shufflevector <8 x float> %wide.vec1294, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %gep1480 = getelementptr float, ptr %invariant.gep1479, i64 %index1290
  %158 = getelementptr i8, ptr %gep1480, i64 16
  store <4 x float> %strided.vec1295, ptr %gep1480, align 4, !tbaa !12, !alias.scope !13, !noalias !16
  store <4 x float> %strided.vec1296, ptr %158, align 4, !tbaa !12, !alias.scope !13, !noalias !16
  %index.next1297 = add nuw i64 %index1290, 8
  %159 = icmp eq i64 %index.next1297, %n.vec1284
  br i1 %159, label %scalar.ph1280.preheader, label %vector.body1289, !llvm.loop !18

scalar.ph1280.preheader:                          ; preds = %vector.body1289, %vector.memcheck1265, %.preheader.us
  %indvars.iv919.ph = phi i64 [ %136, %vector.memcheck1265 ], [ %136, %.preheader.us ], [ %ind.end1285, %vector.body1289 ]
  %indvars.iv.ph = phi i64 [ %152, %vector.memcheck1265 ], [ %152, %.preheader.us ], [ %ind.end1287, %vector.body1289 ]
  br label %scalar.ph1280

scalar.ph1280:                                    ; preds = %scalar.ph1280.preheader, %scalar.ph1280
  %indvars.iv919 = phi i64 [ %indvars.iv.next920, %scalar.ph1280 ], [ %indvars.iv919.ph, %scalar.ph1280.preheader ]
  %indvars.iv = phi i64 [ %indvars.iv.next, %scalar.ph1280 ], [ %indvars.iv.ph, %scalar.ph1280.preheader ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %gep1137 = getelementptr %struct.complex, ptr %invariant.gep, i64 %indvars.iv919
  %160 = load float, ptr %gep1137, align 4, !tbaa !9
  %161 = getelementptr float, ptr %23, i64 %indvars.iv
  store float %160, ptr %161, align 4, !tbaa !12
  %indvars.iv.next920 = add nsw i64 %indvars.iv919, 1
  %.not672.not.us = icmp slt i64 %indvars.iv.next920, %137
  br i1 %.not672.not.us, label %scalar.ph1280, label %._crit_edge.us, !llvm.loop !22

._crit_edge.us:                                   ; preds = %scalar.ph1280
  %162 = trunc nsw i64 %indvars.iv.next to i32
  %indvars.iv.next925 = add nuw nsw i64 %indvars.iv924, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next925, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge697, label %.preheader.us, !llvm.loop !23

._crit_edge697:                                   ; preds = %._crit_edge.us, %119
  %163 = add nsw i32 %132, %41
  %164 = sext i32 %163 to i64
  %165 = getelementptr inbounds float, ptr %49, i64 %164
  %166 = or disjoint i32 %135, 1
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds float, ptr %58, i64 %167
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %31, ptr noundef nonnull %3, ptr noundef nonnull %31, ptr noundef nonnull @c_b9, ptr noundef %165, ptr noundef nonnull %9, ptr noundef nonnull %168, ptr noundef nonnull %31, ptr noundef nonnull @c_b10, ptr noundef %23, ptr noundef nonnull %31) #6
  %169 = load i32, ptr %31, align 4, !tbaa !5
  %170 = load i32, ptr %3, align 4, !tbaa !5
  %.not662701 = icmp slt i32 %170, 1
  br i1 %.not662701, label %._crit_edge706, label %.lr.ph705.preheader

.lr.ph705.preheader:                              ; preds = %._crit_edge697
  %171 = shl i32 %169, 1
  %172 = mul i32 %171, %170
  %173 = sext i32 %132 to i64
  %174 = add nuw i32 %170, 1
  %wide.trip.count937 = zext i32 %174 to i64
  br label %.lr.ph705

.lr.ph705:                                        ; preds = %.lr.ph705.preheader, %._crit_edge
  %indvars.iv934 = phi i64 [ 1, %.lr.ph705.preheader ], [ %indvars.iv.next935, %._crit_edge ]
  %.2616703 = phi i32 [ %172, %.lr.ph705.preheader ], [ %.3617.lcssa, %._crit_edge ]
  %175 = load i32, ptr %31, align 4, !tbaa !5
  %.not671.not698 = icmp sgt i32 %175, 0
  br i1 %.not671.not698, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.lr.ph705
  %176 = add nsw i32 %175, %132
  %177 = mul nsw i64 %indvars.iv934, %97
  %178 = sext i32 %.2616703 to i64
  %179 = sext i32 %176 to i64
  %invariant.gep1138 = getelementptr %struct.complex, ptr %37, i64 %177
  br label %180

180:                                              ; preds = %.lr.ph, %180
  %indvars.iv929 = phi i64 [ %173, %.lr.ph ], [ %indvars.iv.next930, %180 ]
  %indvars.iv927 = phi i64 [ %178, %.lr.ph ], [ %indvars.iv.next928, %180 ]
  %indvars.iv.next928 = add nsw i64 %indvars.iv927, 1
  %gep1139 = getelementptr %struct.complex, ptr %invariant.gep1138, i64 %indvars.iv929
  %181 = call <2 x float> @Cf(ptr noundef %gep1139)
  %.sroa.03.4.vec.extract = extractelement <2 x float> %181, i64 1
  %182 = getelementptr float, ptr %23, i64 %indvars.iv927
  store float %.sroa.03.4.vec.extract, ptr %182, align 4, !tbaa !12
  %indvars.iv.next930 = add nsw i64 %indvars.iv929, 1
  %.not671.not = icmp slt i64 %indvars.iv.next930, %179
  br i1 %.not671.not, label %180, label %._crit_edge.loopexit, !llvm.loop !24

._crit_edge.loopexit:                             ; preds = %180
  %183 = trunc nsw i64 %indvars.iv.next928 to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.lr.ph705
  %.3617.lcssa = phi i32 [ %.2616703, %.lr.ph705 ], [ %183, %._crit_edge.loopexit ]
  %indvars.iv.next935 = add nuw nsw i64 %indvars.iv934, 1
  %exitcond938.not = icmp eq i64 %indvars.iv.next935, %wide.trip.count937
  br i1 %exitcond938.not, label %._crit_edge706.loopexit, label %.lr.ph705, !llvm.loop !25

._crit_edge706.loopexit:                          ; preds = %._crit_edge
  %.pre1111 = load i32, ptr %31, align 4, !tbaa !5
  %.pre1112 = load i32, ptr %3, align 4, !tbaa !5
  br label %._crit_edge706

._crit_edge706:                                   ; preds = %._crit_edge706.loopexit, %._crit_edge697
  %184 = phi i32 [ %.pre1112, %._crit_edge706.loopexit ], [ %170, %._crit_edge697 ]
  %185 = phi i32 [ %.pre1111, %._crit_edge706.loopexit ], [ %169, %._crit_edge697 ]
  %186 = mul nsw i32 %184, %185
  %187 = shl i32 %186, 1
  %188 = or disjoint i32 %187, 1
  %189 = sext i32 %188 to i64
  %190 = getelementptr inbounds float, ptr %58, i64 %189
  %191 = sext i32 %186 to i64
  %gep = getelementptr float, ptr %23, i64 %191
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %31, ptr noundef nonnull %3, ptr noundef nonnull %31, ptr noundef nonnull @c_b9, ptr noundef %165, ptr noundef nonnull %9, ptr noundef nonnull %190, ptr noundef nonnull %31, ptr noundef nonnull @c_b10, ptr noundef %gep, ptr noundef nonnull %31) #6
  %192 = load i32, ptr %3, align 4, !tbaa !5
  %.not663716 = icmp slt i32 %192, 1
  br i1 %.not663716, label %._crit_edge722.thread, label %.lr.ph721

._crit_edge722.thread:                            ; preds = %._crit_edge706
  %193 = load i32, ptr %32, align 4, !tbaa !5
  %194 = shl i32 %192, 1
  %195 = mul i32 %194, %193
  br label %._crit_edge735

.lr.ph721:                                        ; preds = %._crit_edge706
  %196 = load i32, ptr %31, align 4, !tbaa !5
  %.not670.not707 = icmp sgt i32 %196, 0
  br i1 %.not670.not707, label %.lr.ph712.us.preheader, label %._crit_edge722.thread1124

._crit_edge722.thread1124:                        ; preds = %.lr.ph721
  %197 = load i32, ptr %32, align 4, !tbaa !5
  %198 = shl nuw i32 %192, 1
  %199 = mul i32 %198, %197
  br label %.lr.ph734

.lr.ph712.us.preheader:                           ; preds = %.lr.ph721
  %200 = add i32 %196, %132
  %201 = mul nuw nsw i32 %192, %196
  %202 = sext i32 %132 to i64
  %203 = sext i32 %200 to i64
  %204 = add nuw i32 %192, 1
  %wide.trip.count953 = zext i32 %204 to i64
  %205 = shl nsw i64 %202, 3
  %scevgep1222 = getelementptr i8, ptr %scevgep1221, i64 %205
  %206 = add nsw i64 %wide.trip.count953, -2
  %207 = mul i64 %113, %206
  %208 = add nsw i64 %202, 1
  %smax = call i64 @llvm.smax.i64(i64 %208, i64 %203)
  %209 = add i64 %114, %smax
  %210 = shl nsw i64 %209, 3
  %211 = getelementptr i8, ptr %6, i64 %207
  %scevgep1223 = getelementptr i8, ptr %211, i64 %210
  %212 = mul nsw i64 %202, -4
  %scevgep1225 = getelementptr i8, ptr %23, i64 %212
  %scevgep1228 = getelementptr i8, ptr %23, i64 %212
  %213 = add nsw i64 %202, 1
  %smax1239 = call i64 @llvm.smax.i64(i64 %213, i64 %203)
  %214 = sub i64 %smax1239, %202
  %min.iters.check1242 = icmp ult i64 %214, 10
  %n.vec1245 = and i64 %214, -4
  %ind.end1246 = add i64 %n.vec1245, %202
  %cmp.n1264 = icmp eq i64 %214, %n.vec1245
  br label %.lr.ph712.us

.lr.ph712.us:                                     ; preds = %.lr.ph712.us.preheader, %._crit_edge713.us
  %indvars.iv950 = phi i64 [ 1, %.lr.ph712.us.preheader ], [ %indvars.iv.next951, %._crit_edge713.us ]
  %.0604719.us = phi i64 [ 0, %.lr.ph712.us.preheader ], [ %indvars.iv.next940.lcssa, %._crit_edge713.us ]
  %.0606718.us = phi i32 [ %201, %.lr.ph712.us.preheader ], [ %236, %._crit_edge713.us ]
  %215 = mul nsw i64 %indvars.iv950, %98
  %sext = shl i64 %.0604719.us, 32
  %216 = ashr exact i64 %sext, 32
  %217 = sext i32 %.0606718.us to i64
  %invariant.gep1140 = getelementptr %struct.complex, ptr %40, i64 %215
  br i1 %min.iters.check1242, label %scalar.ph1241.preheader, label %vector.memcheck1220

vector.memcheck1220:                              ; preds = %.lr.ph712.us
  %218 = shl nsw i64 %217, 2
  %scevgep1224 = getelementptr i8, ptr %23, i64 %218
  %219 = add i64 %smax, %217
  %220 = shl nsw i64 %219, 2
  %scevgep1226 = getelementptr i8, ptr %scevgep1225, i64 %220
  %221 = ashr exact i64 %sext, 30
  %scevgep1227 = getelementptr i8, ptr %23, i64 %221
  %222 = add i64 %smax, %216
  %223 = shl nsw i64 %222, 2
  %scevgep1229 = getelementptr i8, ptr %scevgep1228, i64 %223
  %bound01230 = icmp ult ptr %scevgep1222, %scevgep1226
  %bound11231 = icmp ult ptr %scevgep1224, %scevgep1223
  %found.conflict1232 = and i1 %bound01230, %bound11231
  %bound01234 = icmp ult ptr %scevgep1222, %scevgep1229
  %bound11235 = icmp ult ptr %scevgep1227, %scevgep1223
  %found.conflict1236 = and i1 %bound01234, %bound11235
  %224 = or i1 %found.conflict1236, %stride.check1237
  %conflict.rdx1238 = or i1 %found.conflict1232, %224
  br i1 %conflict.rdx1238, label %scalar.ph1241.preheader, label %vector.ph1243

vector.ph1243:                                    ; preds = %vector.memcheck1220
  %ind.end1248 = add i64 %n.vec1245, %217
  %ind.end1250 = add i64 %216, %n.vec1245
  %225 = getelementptr float, ptr %23, i64 %216
  %invariant.gep1481 = getelementptr float, ptr %23, i64 %217
  %invariant.gep1483 = getelementptr i8, ptr %invariant.gep1140, i64 16
  br label %vector.body1252

vector.body1252:                                  ; preds = %vector.body1252, %vector.ph1243
  %index1253 = phi i64 [ 0, %vector.ph1243 ], [ %index.next1263, %vector.body1252 ]
  %offset.idx1254 = add i64 %index1253, %202
  %226 = getelementptr float, ptr %225, i64 %index1253
  %227 = getelementptr i8, ptr %226, i64 8
  %wide.load1257 = load <2 x float>, ptr %226, align 4, !tbaa !12, !alias.scope !26
  %wide.load1258 = load <2 x float>, ptr %227, align 4, !tbaa !12, !alias.scope !26
  %gep1482 = getelementptr float, ptr %invariant.gep1481, i64 %index1253
  %228 = getelementptr i8, ptr %gep1482, i64 8
  %wide.load1259 = load <2 x float>, ptr %gep1482, align 4, !tbaa !12, !alias.scope !29
  %wide.load1260 = load <2 x float>, ptr %228, align 4, !tbaa !12, !alias.scope !29
  %229 = getelementptr %struct.complex, ptr %invariant.gep1140, i64 %offset.idx1254
  %gep1484 = getelementptr %struct.complex, ptr %invariant.gep1483, i64 %offset.idx1254
  %interleaved.vec1261 = shufflevector <2 x float> %wide.load1257, <2 x float> %wide.load1259, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1261, ptr %229, align 4, !tbaa !12
  %interleaved.vec1262 = shufflevector <2 x float> %wide.load1258, <2 x float> %wide.load1260, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1262, ptr %gep1484, align 4, !tbaa !12
  %index.next1263 = add nuw i64 %index1253, 4
  %230 = icmp eq i64 %index.next1263, %n.vec1245
  br i1 %230, label %middle.block1240, label %vector.body1252, !llvm.loop !31

middle.block1240:                                 ; preds = %vector.body1252
  br i1 %cmp.n1264, label %._crit_edge713.us, label %scalar.ph1241.preheader

scalar.ph1241.preheader:                          ; preds = %middle.block1240, %vector.memcheck1220, %.lr.ph712.us
  %indvars.iv943.ph = phi i64 [ %202, %vector.memcheck1220 ], [ %202, %.lr.ph712.us ], [ %ind.end1246, %middle.block1240 ]
  %indvars.iv941.ph = phi i64 [ %217, %vector.memcheck1220 ], [ %217, %.lr.ph712.us ], [ %ind.end1248, %middle.block1240 ]
  %indvars.iv939.ph = phi i64 [ %216, %vector.memcheck1220 ], [ %216, %.lr.ph712.us ], [ %ind.end1250, %middle.block1240 ]
  br label %scalar.ph1241

scalar.ph1241:                                    ; preds = %scalar.ph1241.preheader, %scalar.ph1241
  %indvars.iv943 = phi i64 [ %indvars.iv.next944, %scalar.ph1241 ], [ %indvars.iv943.ph, %scalar.ph1241.preheader ]
  %indvars.iv941 = phi i64 [ %indvars.iv.next942, %scalar.ph1241 ], [ %indvars.iv941.ph, %scalar.ph1241.preheader ]
  %indvars.iv939 = phi i64 [ %indvars.iv.next940, %scalar.ph1241 ], [ %indvars.iv939.ph, %scalar.ph1241.preheader ]
  %indvars.iv.next940 = add nsw i64 %indvars.iv939, 1
  %indvars.iv.next942 = add nsw i64 %indvars.iv941, 1
  %231 = getelementptr float, ptr %23, i64 %indvars.iv939
  %232 = load float, ptr %231, align 4, !tbaa !12
  %233 = getelementptr float, ptr %23, i64 %indvars.iv941
  %234 = load float, ptr %233, align 4, !tbaa !12
  %gep1141 = getelementptr %struct.complex, ptr %invariant.gep1140, i64 %indvars.iv943
  store float %232, ptr %gep1141, align 4, !tbaa !9
  %235 = getelementptr inbounds i8, ptr %gep1141, i64 4
  store float %234, ptr %235, align 4, !tbaa !32
  %indvars.iv.next944 = add nsw i64 %indvars.iv943, 1
  %.not670.not.us = icmp slt i64 %indvars.iv.next944, %203
  br i1 %.not670.not.us, label %scalar.ph1241, label %._crit_edge713.us, !llvm.loop !33

._crit_edge713.us:                                ; preds = %scalar.ph1241, %middle.block1240
  %indvars.iv.next940.lcssa = phi i64 [ %ind.end1250, %middle.block1240 ], [ %indvars.iv.next940, %scalar.ph1241 ]
  %indvars.iv.next942.lcssa = phi i64 [ %ind.end1248, %middle.block1240 ], [ %indvars.iv.next942, %scalar.ph1241 ]
  %236 = trunc nsw i64 %indvars.iv.next942.lcssa to i32
  %indvars.iv.next951 = add nuw nsw i64 %indvars.iv950, 1
  %exitcond954.not = icmp eq i64 %indvars.iv.next951, %wide.trip.count953
  br i1 %exitcond954.not, label %._crit_edge722, label %.lr.ph712.us, !llvm.loop !34

._crit_edge722:                                   ; preds = %._crit_edge713.us
  %237 = load i32, ptr %32, align 4, !tbaa !5
  %238 = shl nuw i32 %192, 1
  %239 = mul i32 %238, %237
  br i1 %.not663716, label %._crit_edge735, label %.lr.ph734

.lr.ph734:                                        ; preds = %._crit_edge722.thread1124, %._crit_edge722
  %240 = phi i32 [ %199, %._crit_edge722.thread1124 ], [ %239, %._crit_edge722 ]
  %241 = phi i32 [ %197, %._crit_edge722.thread1124 ], [ %237, %._crit_edge722 ]
  %242 = add i32 %241, %122
  %.not669723.not = icmp slt i32 %122, %242
  br i1 %.not669723.not, label %.lr.ph727.preheader, label %._crit_edge735

.lr.ph727.preheader:                              ; preds = %.lr.ph734
  %243 = sext i32 %122 to i64
  %244 = add nsw i64 %243, 1
  %245 = add i32 %133, %241
  %246 = add nuw i32 %192, 1
  %wide.trip.count966 = zext i32 %246 to i64
  %247 = add i32 %241, -1
  %248 = zext i32 %247 to i64
  %249 = shl nuw nsw i64 %248, 2
  %scevgep1193 = getelementptr i8, ptr %scevgep1192, i64 %249
  %250 = shl nsw i64 %243, 3
  %scevgep1196 = getelementptr i8, ptr %scevgep1195, i64 %250
  %251 = shl nuw nsw i64 %wide.trip.count966, 3
  %252 = add nsw i64 %251, -8
  %253 = mul i64 %252, %97
  %254 = shl nuw nsw i64 %248, 3
  %255 = getelementptr i8, ptr %scevgep1197, i64 %253
  %256 = getelementptr i8, ptr %255, i64 %250
  %scevgep1198 = getelementptr i8, ptr %256, i64 %254
  %257 = add i32 %241, -1
  %258 = zext i32 %257 to i64
  %259 = add nuw nsw i64 %258, 1
  %260 = add i32 %241, 1
  %261 = add i32 %260, %122
  %262 = add i32 %241, %122
  %min.iters.check1205 = icmp ult i32 %257, 8
  %n.mod.vf1207 = and i64 %259, 7
  %263 = icmp eq i64 %n.mod.vf1207, 0
  %264 = select i1 %263, i64 8, i64 %n.mod.vf1207
  %n.vec1208 = sub nsw i64 %259, %264
  %ind.end1209 = add nsw i64 %244, %n.vec1208
  br label %.lr.ph727

.lr.ph727:                                        ; preds = %.lr.ph727.preheader, %._crit_edge728
  %indvars.iv963 = phi i64 [ 1, %.lr.ph727.preheader ], [ %indvars.iv.next964, %._crit_edge728 ]
  %.4618732 = phi i32 [ %240, %.lr.ph727.preheader ], [ %283, %._crit_edge728 ]
  %265 = mul nsw i64 %indvars.iv963, %97
  %266 = sext i32 %.4618732 to i64
  %invariant.gep1142 = getelementptr %struct.complex, ptr %37, i64 %265
  br i1 %min.iters.check1205, label %scalar.ph1204.preheader, label %vector.memcheck1190

vector.memcheck1190:                              ; preds = %.lr.ph727
  %267 = shl nsw i64 %266, 2
  %scevgep1191 = getelementptr i8, ptr %23, i64 %267
  %scevgep1194 = getelementptr i8, ptr %scevgep1193, i64 %267
  %bound01199 = icmp ult ptr %scevgep1191, %scevgep1198
  %bound11200 = icmp ult ptr %scevgep1196, %scevgep1194
  %found.conflict1201 = and i1 %bound01199, %bound11200
  %268 = or i1 %found.conflict1201, %stride.check1202
  br i1 %268, label %scalar.ph1204.preheader, label %vector.ph1206

vector.ph1206:                                    ; preds = %vector.memcheck1190
  %ind.end1211 = add nsw i64 %n.vec1208, %266
  %invariant.gep1485 = getelementptr i8, ptr %invariant.gep1142, i64 32
  %invariant.gep1487 = getelementptr float, ptr %23, i64 %266
  br label %vector.body1213

vector.body1213:                                  ; preds = %vector.body1213, %vector.ph1206
  %index1214 = phi i64 [ 0, %vector.ph1206 ], [ %index.next1219, %vector.body1213 ]
  %offset.idx1215 = add i64 %244, %index1214
  %269 = getelementptr %struct.complex, ptr %invariant.gep1142, i64 %offset.idx1215
  %gep1486 = getelementptr %struct.complex, ptr %invariant.gep1485, i64 %offset.idx1215
  %wide.vec = load <8 x float>, ptr %269, align 4, !tbaa !9
  %wide.vec1217 = load <8 x float>, ptr %gep1486, align 4, !tbaa !9
  %strided.vec = shufflevector <8 x float> %wide.vec, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1218 = shufflevector <8 x float> %wide.vec1217, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %gep1488 = getelementptr float, ptr %invariant.gep1487, i64 %index1214
  %270 = getelementptr i8, ptr %gep1488, i64 16
  store <4 x float> %strided.vec, ptr %gep1488, align 4, !tbaa !12, !alias.scope !35, !noalias !38
  store <4 x float> %strided.vec1218, ptr %270, align 4, !tbaa !12, !alias.scope !35, !noalias !38
  %index.next1219 = add nuw i64 %index1214, 8
  %271 = icmp eq i64 %index.next1219, %n.vec1208
  br i1 %271, label %scalar.ph1204.preheader, label %vector.body1213, !llvm.loop !40

scalar.ph1204.preheader:                          ; preds = %vector.body1213, %vector.memcheck1190, %.lr.ph727
  %indvars.iv957.ph = phi i64 [ %244, %vector.memcheck1190 ], [ %244, %.lr.ph727 ], [ %ind.end1209, %vector.body1213 ]
  %indvars.iv955.ph = phi i64 [ %266, %vector.memcheck1190 ], [ %266, %.lr.ph727 ], [ %ind.end1211, %vector.body1213 ]
  %272 = trunc i64 %indvars.iv957.ph to i32
  %273 = sub i32 %261, %272
  %274 = sub i32 %262, %272
  %xtraiter = and i32 %273, 3
  %lcmp.mod.not = icmp eq i32 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph1204.prol.loopexit, label %scalar.ph1204.prol

scalar.ph1204.prol:                               ; preds = %scalar.ph1204.preheader, %scalar.ph1204.prol
  %indvars.iv957.prol = phi i64 [ %indvars.iv.next958.prol, %scalar.ph1204.prol ], [ %indvars.iv957.ph, %scalar.ph1204.preheader ]
  %indvars.iv955.prol = phi i64 [ %indvars.iv.next956.prol, %scalar.ph1204.prol ], [ %indvars.iv955.ph, %scalar.ph1204.preheader ]
  %prol.iter = phi i32 [ %prol.iter.next, %scalar.ph1204.prol ], [ 0, %scalar.ph1204.preheader ]
  %indvars.iv.next956.prol = add nsw i64 %indvars.iv955.prol, 1
  %gep1143.prol = getelementptr %struct.complex, ptr %invariant.gep1142, i64 %indvars.iv957.prol
  %275 = load float, ptr %gep1143.prol, align 4, !tbaa !9
  %276 = getelementptr float, ptr %23, i64 %indvars.iv955.prol
  store float %275, ptr %276, align 4, !tbaa !12
  %indvars.iv.next958.prol = add nsw i64 %indvars.iv957.prol, 1
  %prol.iter.next = add i32 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i32 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %scalar.ph1204.prol.loopexit, label %scalar.ph1204.prol, !llvm.loop !41

scalar.ph1204.prol.loopexit:                      ; preds = %scalar.ph1204.prol, %scalar.ph1204.preheader
  %indvars.iv.next956.lcssa.unr = phi i64 [ poison, %scalar.ph1204.preheader ], [ %indvars.iv.next956.prol, %scalar.ph1204.prol ]
  %indvars.iv957.unr = phi i64 [ %indvars.iv957.ph, %scalar.ph1204.preheader ], [ %indvars.iv.next958.prol, %scalar.ph1204.prol ]
  %indvars.iv955.unr = phi i64 [ %indvars.iv955.ph, %scalar.ph1204.preheader ], [ %indvars.iv.next956.prol, %scalar.ph1204.prol ]
  %277 = icmp ult i32 %274, 3
  br i1 %277, label %._crit_edge728, label %scalar.ph1204.preheader.new

scalar.ph1204.preheader.new:                      ; preds = %scalar.ph1204.prol.loopexit
  %invariant.gep1489 = getelementptr i8, ptr %invariant.gep1142, i64 8
  %invariant.gep1493 = getelementptr i8, ptr %invariant.gep1142, i64 16
  %invariant.gep1497 = getelementptr i8, ptr %invariant.gep1142, i64 24
  br label %scalar.ph1204

scalar.ph1204:                                    ; preds = %scalar.ph1204, %scalar.ph1204.preheader.new
  %indvars.iv957 = phi i64 [ %indvars.iv957.unr, %scalar.ph1204.preheader.new ], [ %indvars.iv.next958.3, %scalar.ph1204 ]
  %indvars.iv955 = phi i64 [ %indvars.iv955.unr, %scalar.ph1204.preheader.new ], [ %indvars.iv.next956.3, %scalar.ph1204 ]
  %gep1143 = getelementptr %struct.complex, ptr %invariant.gep1142, i64 %indvars.iv957
  %278 = load float, ptr %gep1143, align 4, !tbaa !9
  %279 = getelementptr float, ptr %23, i64 %indvars.iv955
  store float %278, ptr %279, align 4, !tbaa !12
  %gep1490 = getelementptr %struct.complex, ptr %invariant.gep1489, i64 %indvars.iv957
  %280 = load float, ptr %gep1490, align 4, !tbaa !9
  %gep1492 = getelementptr float, ptr %invariant.gep1491, i64 %indvars.iv955
  store float %280, ptr %gep1492, align 4, !tbaa !12
  %gep1494 = getelementptr %struct.complex, ptr %invariant.gep1493, i64 %indvars.iv957
  %281 = load float, ptr %gep1494, align 4, !tbaa !9
  %gep1496 = getelementptr float, ptr %invariant.gep1495, i64 %indvars.iv955
  store float %281, ptr %gep1496, align 4, !tbaa !12
  %indvars.iv.next956.3 = add nsw i64 %indvars.iv955, 4
  %gep1498 = getelementptr %struct.complex, ptr %invariant.gep1497, i64 %indvars.iv957
  %282 = load float, ptr %gep1498, align 4, !tbaa !9
  %gep1500 = getelementptr float, ptr %invariant.gep1499, i64 %indvars.iv955
  store float %282, ptr %gep1500, align 4, !tbaa !12
  %indvars.iv.next958.3 = add nsw i64 %indvars.iv957, 4
  %lftr.wideiv.3 = trunc i64 %indvars.iv.next958.3 to i32
  %exitcond962.not.3 = icmp eq i32 %245, %lftr.wideiv.3
  br i1 %exitcond962.not.3, label %._crit_edge728, label %scalar.ph1204, !llvm.loop !43

._crit_edge728:                                   ; preds = %scalar.ph1204, %scalar.ph1204.prol.loopexit
  %indvars.iv.next956.lcssa = phi i64 [ %indvars.iv.next956.lcssa.unr, %scalar.ph1204.prol.loopexit ], [ %indvars.iv.next956.3, %scalar.ph1204 ]
  %283 = trunc nsw i64 %indvars.iv.next956.lcssa to i32
  %indvars.iv.next964 = add nuw nsw i64 %indvars.iv963, 1
  %exitcond967.not = icmp eq i64 %indvars.iv.next964, %wide.trip.count966
  br i1 %exitcond967.not, label %._crit_edge735, label %.lr.ph727, !llvm.loop !44

._crit_edge735:                                   ; preds = %._crit_edge728, %.lr.ph734, %._crit_edge722.thread, %._crit_edge722
  %284 = phi i32 [ %195, %._crit_edge722.thread ], [ %239, %._crit_edge722 ], [ %240, %.lr.ph734 ], [ %240, %._crit_edge728 ]
  %285 = add nsw i32 %133, %41
  %286 = sext i32 %285 to i64
  %287 = getelementptr inbounds float, ptr %49, i64 %286
  %288 = or disjoint i32 %284, 1
  %289 = sext i32 %288 to i64
  %290 = getelementptr inbounds float, ptr %58, i64 %289
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %32, ptr noundef nonnull %3, ptr noundef nonnull %32, ptr noundef nonnull @c_b9, ptr noundef %287, ptr noundef nonnull %9, ptr noundef nonnull %290, ptr noundef nonnull %32, ptr noundef nonnull @c_b10, ptr noundef %23, ptr noundef nonnull %32) #6
  %291 = load i32, ptr %32, align 4, !tbaa !5
  %292 = load i32, ptr %3, align 4, !tbaa !5
  %.not665743 = icmp slt i32 %292, 1
  br i1 %.not665743, label %._crit_edge748, label %.lr.ph747.preheader

.lr.ph747.preheader:                              ; preds = %._crit_edge735
  %293 = shl i32 %291, 1
  %294 = mul i32 %293, %292
  %295 = sext i32 %122 to i64
  %296 = add nsw i64 %295, 1
  %297 = add nuw i32 %292, 1
  %wide.trip.count980 = zext i32 %297 to i64
  br label %.lr.ph747

.lr.ph747:                                        ; preds = %.lr.ph747.preheader, %._crit_edge741
  %indvars.iv977 = phi i64 [ 1, %.lr.ph747.preheader ], [ %indvars.iv.next978, %._crit_edge741 ]
  %.6620745 = phi i32 [ %294, %.lr.ph747.preheader ], [ %.7621.lcssa, %._crit_edge741 ]
  %298 = load i32, ptr %32, align 4, !tbaa !5
  %299 = add i32 %298, %122
  %.not668736.not = icmp slt i32 %122, %299
  br i1 %.not668736.not, label %.lr.ph740, label %._crit_edge741

.lr.ph740:                                        ; preds = %.lr.ph747
  %300 = mul nsw i64 %indvars.iv977, %97
  %301 = sext i32 %.6620745 to i64
  %302 = add i32 %133, %298
  %invariant.gep1144 = getelementptr %struct.complex, ptr %37, i64 %300
  br label %303

303:                                              ; preds = %.lr.ph740, %303
  %indvars.iv970 = phi i64 [ %296, %.lr.ph740 ], [ %indvars.iv.next971, %303 ]
  %indvars.iv968 = phi i64 [ %301, %.lr.ph740 ], [ %indvars.iv.next969, %303 ]
  %indvars.iv.next969 = add nsw i64 %indvars.iv968, 1
  %gep1145 = getelementptr %struct.complex, ptr %invariant.gep1144, i64 %indvars.iv970
  %304 = call <2 x float> @Cf(ptr noundef %gep1145)
  %.sroa.02.4.vec.extract = extractelement <2 x float> %304, i64 1
  %305 = getelementptr float, ptr %23, i64 %indvars.iv968
  store float %.sroa.02.4.vec.extract, ptr %305, align 4, !tbaa !12
  %indvars.iv.next971 = add nsw i64 %indvars.iv970, 1
  %lftr.wideiv975 = trunc i64 %indvars.iv.next971 to i32
  %exitcond976.not = icmp eq i32 %302, %lftr.wideiv975
  br i1 %exitcond976.not, label %._crit_edge741.loopexit, label %303, !llvm.loop !45

._crit_edge741.loopexit:                          ; preds = %303
  %306 = trunc nsw i64 %indvars.iv.next969 to i32
  br label %._crit_edge741

._crit_edge741:                                   ; preds = %._crit_edge741.loopexit, %.lr.ph747
  %.7621.lcssa = phi i32 [ %.6620745, %.lr.ph747 ], [ %306, %._crit_edge741.loopexit ]
  %indvars.iv.next978 = add nuw nsw i64 %indvars.iv977, 1
  %exitcond981.not = icmp eq i64 %indvars.iv.next978, %wide.trip.count980
  br i1 %exitcond981.not, label %._crit_edge748.loopexit, label %.lr.ph747, !llvm.loop !46

._crit_edge748.loopexit:                          ; preds = %._crit_edge741
  %.pre1113 = load i32, ptr %32, align 4, !tbaa !5
  %.pre1114 = load i32, ptr %3, align 4, !tbaa !5
  br label %._crit_edge748

._crit_edge748:                                   ; preds = %._crit_edge748.loopexit, %._crit_edge735
  %307 = phi i32 [ %.pre1114, %._crit_edge748.loopexit ], [ %292, %._crit_edge735 ]
  %308 = phi i32 [ %.pre1113, %._crit_edge748.loopexit ], [ %291, %._crit_edge735 ]
  %309 = mul nsw i32 %307, %308
  %310 = shl i32 %309, 1
  %311 = or disjoint i32 %310, 1
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds float, ptr %58, i64 %312
  %314 = sext i32 %309 to i64
  %gep766 = getelementptr float, ptr %23, i64 %314
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %32, ptr noundef nonnull %3, ptr noundef nonnull %32, ptr noundef nonnull @c_b9, ptr noundef %287, ptr noundef nonnull %9, ptr noundef nonnull %313, ptr noundef nonnull %32, ptr noundef nonnull @c_b10, ptr noundef %gep766, ptr noundef nonnull %32) #6
  %315 = load i32, ptr %3, align 4, !tbaa !5
  %.not666758 = icmp slt i32 %315, 1
  br i1 %.not666758, label %._crit_edge764, label %.lr.ph763

.lr.ph763:                                        ; preds = %._crit_edge748
  %316 = load i32, ptr %32, align 4, !tbaa !5
  %317 = add i32 %316, %122
  %.not667749.not = icmp slt i32 %122, %317
  br i1 %.not667749.not, label %.lr.ph754.preheader, label %._crit_edge764

.lr.ph754.preheader:                              ; preds = %.lr.ph763
  %318 = mul nsw i32 %315, %316
  %319 = sext i32 %122 to i64
  %320 = add nsw i64 %319, 1
  %321 = add i32 %133, %316
  %322 = add nuw i32 %315, 1
  %wide.trip.count998 = zext i32 %322 to i64
  %323 = shl nsw i64 %319, 3
  %scevgep1165 = getelementptr i8, ptr %scevgep, i64 %323
  %324 = shl nuw nsw i64 %wide.trip.count998, 3
  %325 = add nsw i64 %324, -8
  %326 = mul i64 %325, %98
  %327 = add i32 %316, -1
  %328 = zext i32 %327 to i64
  %329 = shl nuw nsw i64 %328, 3
  %330 = getelementptr i8, ptr %scevgep1166, i64 %326
  %331 = getelementptr i8, ptr %330, i64 %323
  %scevgep1167 = getelementptr i8, ptr %331, i64 %329
  %332 = shl nuw nsw i64 %328, 2
  %scevgep1170 = getelementptr i8, ptr %scevgep1169, i64 %332
  %scevgep1174 = getelementptr i8, ptr %scevgep1173, i64 %332
  %333 = add i32 %316, -1
  %334 = zext i32 %333 to i64
  %335 = add nuw nsw i64 %334, 1
  %336 = add i32 %122, %316
  %min.iters.check = icmp ult i32 %333, 7
  %n.vec = and i64 %335, 8589934588
  %ind.end = add nsw i64 %320, %n.vec
  %cmp.n = icmp eq i64 %335, %n.vec
  %337 = sub i32 %122, %316
  br label %.lr.ph754

.lr.ph754:                                        ; preds = %.lr.ph754.preheader, %._crit_edge755
  %indvars.iv995 = phi i64 [ 1, %.lr.ph754.preheader ], [ %indvars.iv.next996, %._crit_edge755 ]
  %.2761 = phi i64 [ 0, %.lr.ph754.preheader ], [ %indvars.iv.next983.lcssa, %._crit_edge755 ]
  %.2608760 = phi i32 [ %318, %.lr.ph754.preheader ], [ %368, %._crit_edge755 ]
  %338 = mul nsw i64 %indvars.iv995, %98
  %sext1121 = shl i64 %.2761, 32
  %339 = ashr exact i64 %sext1121, 32
  %340 = sext i32 %.2608760 to i64
  %invariant.gep1146 = getelementptr %struct.complex, ptr %40, i64 %338
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph754
  %341 = shl nsw i64 %340, 2
  %scevgep1168 = getelementptr i8, ptr %23, i64 %341
  %scevgep1171 = getelementptr i8, ptr %scevgep1170, i64 %341
  %342 = ashr exact i64 %sext1121, 30
  %scevgep1172 = getelementptr i8, ptr %23, i64 %342
  %scevgep1175 = getelementptr i8, ptr %scevgep1174, i64 %342
  %bound0 = icmp ult ptr %scevgep1165, %scevgep1171
  %bound1 = icmp ult ptr %scevgep1168, %scevgep1167
  %found.conflict = and i1 %bound0, %bound1
  %bound01176 = icmp ult ptr %scevgep1165, %scevgep1175
  %bound11177 = icmp ult ptr %scevgep1172, %scevgep1167
  %found.conflict1178 = and i1 %bound01176, %bound11177
  %343 = or i1 %found.conflict1178, %stride.check1179
  %conflict.rdx = or i1 %found.conflict, %343
  br i1 %conflict.rdx, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %ind.end1180 = add nsw i64 %n.vec, %340
  %ind.end1182 = add nsw i64 %339, %n.vec
  %344 = getelementptr float, ptr %23, i64 %339
  %invariant.gep1501 = getelementptr float, ptr %23, i64 %340
  %invariant.gep1503 = getelementptr i8, ptr %invariant.gep1146, i64 16
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = add i64 %320, %index
  %345 = getelementptr float, ptr %344, i64 %index
  %346 = getelementptr i8, ptr %345, i64 8
  %wide.load = load <2 x float>, ptr %345, align 4, !tbaa !12, !alias.scope !47
  %wide.load1186 = load <2 x float>, ptr %346, align 4, !tbaa !12, !alias.scope !47
  %gep1502 = getelementptr float, ptr %invariant.gep1501, i64 %index
  %347 = getelementptr i8, ptr %gep1502, i64 8
  %wide.load1187 = load <2 x float>, ptr %gep1502, align 4, !tbaa !12, !alias.scope !50
  %wide.load1188 = load <2 x float>, ptr %347, align 4, !tbaa !12, !alias.scope !50
  %348 = getelementptr %struct.complex, ptr %invariant.gep1146, i64 %offset.idx
  %gep1504 = getelementptr %struct.complex, ptr %invariant.gep1503, i64 %offset.idx
  %interleaved.vec = shufflevector <2 x float> %wide.load, <2 x float> %wide.load1187, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec, ptr %348, align 4, !tbaa !12
  %interleaved.vec1189 = shufflevector <2 x float> %wide.load1186, <2 x float> %wide.load1188, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1189, ptr %gep1504, align 4, !tbaa !12
  %index.next = add nuw i64 %index, 4
  %349 = icmp eq i64 %index.next, %n.vec
  br i1 %349, label %middle.block, label %vector.body, !llvm.loop !52

middle.block:                                     ; preds = %vector.body
  br i1 %cmp.n, label %._crit_edge755, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph754
  %indvars.iv986.ph = phi i64 [ %320, %vector.memcheck ], [ %320, %.lr.ph754 ], [ %ind.end, %middle.block ]
  %indvars.iv984.ph = phi i64 [ %340, %vector.memcheck ], [ %340, %.lr.ph754 ], [ %ind.end1180, %middle.block ]
  %indvars.iv982.ph = phi i64 [ %339, %vector.memcheck ], [ %339, %.lr.ph754 ], [ %ind.end1182, %middle.block ]
  %350 = trunc i64 %indvars.iv986.ph to i32
  %351 = add i32 %337, %350
  %352 = and i32 %351, 1
  %lcmp.mod1462.not.not = icmp eq i32 %352, 0
  br i1 %lcmp.mod1462.not.not, label %scalar.ph.prol, label %scalar.ph.prol.loopexit

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader
  %indvars.iv.next983.prol = add nsw i64 %indvars.iv982.ph, 1
  %indvars.iv.next985.prol = add nsw i64 %indvars.iv984.ph, 1
  %353 = getelementptr float, ptr %23, i64 %indvars.iv982.ph
  %354 = load float, ptr %353, align 4, !tbaa !12
  %355 = getelementptr float, ptr %23, i64 %indvars.iv984.ph
  %356 = load float, ptr %355, align 4, !tbaa !12
  %gep1147.prol = getelementptr %struct.complex, ptr %invariant.gep1146, i64 %indvars.iv986.ph
  store float %354, ptr %gep1147.prol, align 4, !tbaa !9
  %357 = getelementptr inbounds i8, ptr %gep1147.prol, i64 4
  store float %356, ptr %357, align 4, !tbaa !32
  %indvars.iv.next987.prol = add nsw i64 %indvars.iv986.ph, 1
  br label %scalar.ph.prol.loopexit

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %indvars.iv.next983.lcssa1460.unr = phi i64 [ poison, %scalar.ph.preheader ], [ %indvars.iv.next983.prol, %scalar.ph.prol ]
  %indvars.iv.next985.lcssa1459.unr = phi i64 [ poison, %scalar.ph.preheader ], [ %indvars.iv.next985.prol, %scalar.ph.prol ]
  %indvars.iv986.unr = phi i64 [ %indvars.iv986.ph, %scalar.ph.preheader ], [ %indvars.iv.next987.prol, %scalar.ph.prol ]
  %indvars.iv984.unr = phi i64 [ %indvars.iv984.ph, %scalar.ph.preheader ], [ %indvars.iv.next985.prol, %scalar.ph.prol ]
  %indvars.iv982.unr = phi i64 [ %indvars.iv982.ph, %scalar.ph.preheader ], [ %indvars.iv.next983.prol, %scalar.ph.prol ]
  %358 = icmp eq i32 %336, %350
  br i1 %358, label %._crit_edge755, label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.prol.loopexit, %scalar.ph
  %indvars.iv986 = phi i64 [ %indvars.iv.next987.1, %scalar.ph ], [ %indvars.iv986.unr, %scalar.ph.prol.loopexit ]
  %indvars.iv984 = phi i64 [ %indvars.iv.next985.1, %scalar.ph ], [ %indvars.iv984.unr, %scalar.ph.prol.loopexit ]
  %indvars.iv982 = phi i64 [ %indvars.iv.next983.1, %scalar.ph ], [ %indvars.iv982.unr, %scalar.ph.prol.loopexit ]
  %359 = getelementptr float, ptr %23, i64 %indvars.iv982
  %360 = load float, ptr %359, align 4, !tbaa !12
  %361 = getelementptr float, ptr %23, i64 %indvars.iv984
  %362 = load float, ptr %361, align 4, !tbaa !12
  %gep1147 = getelementptr %struct.complex, ptr %invariant.gep1146, i64 %indvars.iv986
  store float %360, ptr %gep1147, align 4, !tbaa !9
  %363 = getelementptr inbounds i8, ptr %gep1147, i64 4
  store float %362, ptr %363, align 4, !tbaa !32
  %indvars.iv.next983.1 = add nsw i64 %indvars.iv982, 2
  %indvars.iv.next985.1 = add nsw i64 %indvars.iv984, 2
  %gep1506 = getelementptr float, ptr %invariant.gep1505, i64 %indvars.iv982
  %364 = load float, ptr %gep1506, align 4, !tbaa !12
  %gep1508 = getelementptr float, ptr %invariant.gep1507, i64 %indvars.iv984
  %365 = load float, ptr %gep1508, align 4, !tbaa !12
  %366 = getelementptr %struct.complex, ptr %invariant.gep1146, i64 %indvars.iv986
  %gep1147.1 = getelementptr i8, ptr %366, i64 8
  store float %364, ptr %gep1147.1, align 4, !tbaa !9
  %367 = getelementptr i8, ptr %366, i64 12
  store float %365, ptr %367, align 4, !tbaa !32
  %indvars.iv.next987.1 = add nsw i64 %indvars.iv986, 2
  %lftr.wideiv993.1 = trunc i64 %indvars.iv.next987.1 to i32
  %exitcond994.not.1 = icmp eq i32 %321, %lftr.wideiv993.1
  br i1 %exitcond994.not.1, label %._crit_edge755, label %scalar.ph, !llvm.loop !53

._crit_edge755:                                   ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block
  %indvars.iv.next983.lcssa = phi i64 [ %ind.end1182, %middle.block ], [ %indvars.iv.next983.lcssa1460.unr, %scalar.ph.prol.loopexit ], [ %indvars.iv.next983.1, %scalar.ph ]
  %indvars.iv.next985.lcssa = phi i64 [ %ind.end1180, %middle.block ], [ %indvars.iv.next985.lcssa1459.unr, %scalar.ph.prol.loopexit ], [ %indvars.iv.next985.1, %scalar.ph ]
  %368 = trunc nsw i64 %indvars.iv.next985.lcssa to i32
  %indvars.iv.next996 = add nuw nsw i64 %indvars.iv995, 1
  %exitcond999.not = icmp eq i64 %indvars.iv.next996, %wide.trip.count998
  br i1 %exitcond999.not, label %._crit_edge764, label %.lr.ph754, !llvm.loop !54

._crit_edge764:                                   ; preds = %._crit_edge755, %.lr.ph763, %._crit_edge748
  %indvars.iv.next1001 = add nsw i64 %indvars.iv1000, 1
  %.not658.not = icmp slt i64 %indvars.iv1000, %100
  br i1 %.not658.not, label %119, label %._crit_edge771.loopexit, !llvm.loop !55

._crit_edge771.loopexit:                          ; preds = %._crit_edge764
  %.pre1115 = load i32, ptr %30, align 4, !tbaa !5
  br label %._crit_edge771

._crit_edge771:                                   ; preds = %._crit_edge771.loopexit, %92
  %369 = phi i32 [ %.pre1115, %._crit_edge771.loopexit ], [ %93, %92 ]
  %.not659772 = icmp slt i32 %369, 1
  br i1 %.not659772, label %._crit_edge776, label %.lr.ph775.preheader

.lr.ph775.preheader:                              ; preds = %._crit_edge771
  %370 = zext nneg i32 %369 to i64
  br label %.lr.ph775

.lr.ph775:                                        ; preds = %.lr.ph775.preheader, %.lr.ph775
  %indvars.iv1003 = phi i64 [ 1, %.lr.ph775.preheader ], [ %indvars.iv.next1004, %.lr.ph775 ]
  %indvars.iv.next1004 = add nuw nsw i64 %indvars.iv1003, 1
  %371 = getelementptr inbounds i32, ptr %59, i64 %indvars.iv1003
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = add nsw i32 %372, %35
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds %struct.complex, ptr %37, i64 %374
  %376 = add nsw i32 %372, %38
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds %struct.complex, ptr %40, i64 %377
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %375, ptr noundef nonnull %5, ptr noundef %378, ptr noundef nonnull %7) #6
  %.not659.not = icmp ult i64 %indvars.iv1003, %370
  br i1 %.not659.not, label %.lr.ph775, label %._crit_edge776, !llvm.loop !56

._crit_edge776:                                   ; preds = %.lr.ph775, %._crit_edge771
  %379 = load i32, ptr @c__2, align 4, !tbaa !5
  %380 = load i32, ptr %28, align 4, !tbaa !5
  %381 = call i32 @pow_ii(i32 noundef %379, i32 noundef %380)
  store i32 0, ptr %29, align 4, !tbaa !5
  %382 = load i32, ptr %28, align 4, !tbaa !5
  %383 = icmp sgt i32 %382, 0
  br i1 %383, label %.lr.ph787, label %.loopexit

.lr.ph787:                                        ; preds = %._crit_edge776
  %384 = shl i32 %65, 1
  br label %385

385:                                              ; preds = %.lr.ph787, %._crit_edge782
  %.0785 = phi i32 [ %382, %.lr.ph787 ], [ %442, %._crit_edge782 ]
  %.8784 = phi i32 [ %381, %.lr.ph787 ], [ %.9.lcssa, %._crit_edge782 ]
  %386 = shl nuw i32 %.0785, 1
  %387 = add nsw i32 %386, -1
  %388 = icmp eq i32 %.0785, 1
  br i1 %388, label %.lr.ph781, label %389

389:                                              ; preds = %385
  %390 = add nsw i32 %.0785, -1
  %391 = load i32, ptr @c__2, align 4, !tbaa !5
  %392 = call i32 @pow_ii(i32 noundef %391, i32 noundef %390)
  %393 = shl i32 %392, 1
  %394 = add nsw i32 %393, -1
  %.not660777.not = icmp slt i32 %392, %393
  br i1 %.not660777.not, label %.lr.ph781, label %._crit_edge782

.lr.ph781:                                        ; preds = %385, %389
  %395 = phi i32 [ %394, %389 ], [ 1, %385 ]
  %.06021128 = phi i32 [ %392, %389 ], [ 1, %385 ]
  %396 = mul nsw i32 %.0785, %52
  %397 = mul nsw i32 %387, %52
  %398 = mul nsw i32 %387, %41
  %399 = mul nsw i32 %.0785, %41
  %400 = sext i32 %.8784 to i64
  %401 = sext i32 %.06021128 to i64
  %402 = sext i32 %395 to i64
  br label %403

403:                                              ; preds = %.lr.ph781, %403
  %indvars.iv1008 = phi i64 [ %401, %.lr.ph781 ], [ %indvars.iv.next1009, %403 ]
  %indvars.iv1006 = phi i64 [ %400, %.lr.ph781 ], [ %indvars.iv.next1007, %403 ]
  %404 = getelementptr inbounds i32, ptr %59, i64 %indvars.iv1008
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = trunc nsw i64 %indvars.iv1008 to i32
  %407 = add i32 %65, %406
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds i32, ptr %59, i64 %408
  %410 = load i32, ptr %409, align 4, !tbaa !5
  store i32 %410, ptr %31, align 4, !tbaa !5
  %411 = add i32 %384, %406
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds i32, ptr %59, i64 %412
  %414 = load i32, ptr %413, align 4, !tbaa !5
  store i32 %414, ptr %32, align 4, !tbaa !5
  %415 = sub nsw i32 %405, %410
  %indvars.iv.next1007 = add nsw i64 %indvars.iv1006, -1
  %416 = add nsw i32 %415, %38
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds %struct.complex, ptr %40, i64 %417
  %419 = add nsw i32 %415, %35
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds %struct.complex, ptr %37, i64 %420
  %422 = add nsw i32 %415, %396
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds i32, ptr %54, i64 %423
  %425 = getelementptr inbounds i32, ptr %51, i64 %indvars.iv.next1007
  %426 = add nsw i32 %415, %397
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds i32, ptr %55, i64 %427
  %429 = add nsw i32 %415, %398
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds float, ptr %43, i64 %430
  %432 = getelementptr inbounds float, ptr %44, i64 %430
  %433 = add nsw i32 %415, %399
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds float, ptr %47, i64 %434
  %436 = getelementptr inbounds float, ptr %46, i64 %430
  %437 = getelementptr inbounds float, ptr %45, i64 %434
  %438 = getelementptr inbounds i32, ptr %50, i64 %indvars.iv.next1007
  %439 = getelementptr inbounds float, ptr %56, i64 %indvars.iv.next1007
  %440 = getelementptr inbounds float, ptr %57, i64 %indvars.iv.next1007
  call void @clals0_(ptr noundef nonnull %0, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %29, ptr noundef nonnull %3, ptr noundef %418, ptr noundef nonnull %7, ptr noundef %421, ptr noundef nonnull %5, ptr noundef %424, ptr noundef nonnull %425, ptr noundef %428, ptr noundef nonnull %18, ptr noundef %431, ptr noundef nonnull %9, ptr noundef %432, ptr noundef %435, ptr noundef %436, ptr noundef %437, ptr noundef nonnull %438, ptr noundef nonnull %439, ptr noundef nonnull %440, ptr noundef %23, ptr noundef nonnull %25) #6
  %indvars.iv.next1009 = add nsw i64 %indvars.iv1008, 1
  %.not660.not = icmp slt i64 %indvars.iv1008, %402
  br i1 %.not660.not, label %403, label %._crit_edge782.loopexit, !llvm.loop !57

._crit_edge782.loopexit:                          ; preds = %403
  %441 = trunc nsw i64 %indvars.iv.next1007 to i32
  br label %._crit_edge782

._crit_edge782:                                   ; preds = %._crit_edge782.loopexit, %389
  %.9.lcssa = phi i32 [ %.8784, %389 ], [ %441, %._crit_edge782.loopexit ]
  %442 = add nsw i32 %.0785, -1
  %443 = icmp sgt i32 %.0785, 1
  br i1 %443, label %385, label %.loopexit, !llvm.loop !58

444:                                              ; preds = %83
  %445 = load i32, ptr %28, align 4, !tbaa !5
  %.not673795 = icmp slt i32 %445, 1
  br i1 %.not673795, label %._crit_edge800, label %.lr.ph799.preheader

.lr.ph799.preheader:                              ; preds = %444
  %invariant.gep1148 = getelementptr i32, ptr %59, i64 %88
  br label %.lr.ph799

.lr.ph799:                                        ; preds = %.lr.ph799.preheader, %._crit_edge793
  %.1797 = phi i32 [ %499, %._crit_edge793 ], [ 1, %.lr.ph799.preheader ]
  %.10796 = phi i32 [ %.11.lcssa, %._crit_edge793 ], [ 0, %.lr.ph799.preheader ]
  %446 = shl nuw i32 %.1797, 1
  %447 = add nsw i32 %446, -1
  %448 = icmp eq i32 %.1797, 1
  br i1 %448, label %.lr.ph792, label %449

449:                                              ; preds = %.lr.ph799
  %450 = add nsw i32 %.1797, -1
  %451 = load i32, ptr @c__2, align 4, !tbaa !5
  %452 = call i32 @pow_ii(i32 noundef %451, i32 noundef %450)
  %453 = shl i32 %452, 1
  %454 = add nsw i32 %453, -1
  %.not687788.not = icmp sgt i32 %453, %452
  br i1 %.not687788.not, label %.lr.ph792, label %._crit_edge793

.lr.ph792:                                        ; preds = %.lr.ph799, %449
  %.16011134 = phi i32 [ %454, %449 ], [ 1, %.lr.ph799 ]
  %.16031133 = phi i32 [ %452, %449 ], [ 1, %.lr.ph799 ]
  %455 = mul nsw i32 %.1797, %52
  %456 = mul nsw i32 %447, %52
  %457 = mul nsw i32 %447, %41
  %458 = mul nsw i32 %.1797, %41
  %459 = sext i32 %.10796 to i64
  %460 = sext i32 %.16011134 to i64
  %461 = sext i32 %.16031133 to i64
  br label %462

462:                                              ; preds = %.lr.ph792, %462
  %indvars.iv1015 = phi i64 [ %460, %.lr.ph792 ], [ %indvars.iv.next1016, %462 ]
  %indvars.iv1013 = phi i64 [ %459, %.lr.ph792 ], [ %indvars.iv.next1014, %462 ]
  %indvars.iv.next1016 = add nsw i64 %indvars.iv1015, -1
  %463 = getelementptr inbounds i32, ptr %59, i64 %indvars.iv1015
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = trunc nsw i64 %indvars.iv1015 to i32
  %466 = add i32 %65, %465
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds i32, ptr %59, i64 %467
  %469 = load i32, ptr %468, align 4, !tbaa !5
  store i32 %469, ptr %31, align 4, !tbaa !5
  %gep1149 = getelementptr i32, ptr %invariant.gep1148, i64 %indvars.iv.next1016
  %470 = load i32, ptr %gep1149, align 4, !tbaa !5
  store i32 %470, ptr %32, align 4, !tbaa !5
  %471 = sub nsw i32 %464, %469
  %472 = icmp ne i64 %indvars.iv1015, %460
  %. = zext i1 %472 to i32
  store i32 %., ptr %29, align 4, !tbaa !5
  %indvars.iv.next1014 = add nsw i64 %indvars.iv1013, 1
  %473 = add nsw i32 %471, %35
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds %struct.complex, ptr %37, i64 %474
  %476 = add nsw i32 %471, %38
  %477 = sext i32 %476 to i64
  %478 = getelementptr inbounds %struct.complex, ptr %40, i64 %477
  %479 = add nsw i32 %471, %455
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds i32, ptr %54, i64 %480
  %482 = getelementptr i32, ptr %16, i64 %indvars.iv1013
  %483 = add nsw i32 %471, %456
  %484 = sext i32 %483 to i64
  %485 = getelementptr inbounds i32, ptr %55, i64 %484
  %486 = add nsw i32 %471, %457
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds float, ptr %43, i64 %487
  %489 = getelementptr inbounds float, ptr %44, i64 %487
  %490 = add nsw i32 %471, %458
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds float, ptr %47, i64 %491
  %493 = getelementptr inbounds float, ptr %46, i64 %487
  %494 = getelementptr inbounds float, ptr %45, i64 %491
  %495 = getelementptr i32, ptr %11, i64 %indvars.iv1013
  %496 = getelementptr float, ptr %21, i64 %indvars.iv1013
  %497 = getelementptr float, ptr %22, i64 %indvars.iv1013
  call void @clals0_(ptr noundef nonnull %0, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %29, ptr noundef nonnull %3, ptr noundef %475, ptr noundef nonnull %5, ptr noundef %478, ptr noundef nonnull %7, ptr noundef %481, ptr noundef nonnull %482, ptr noundef %485, ptr noundef nonnull %18, ptr noundef %488, ptr noundef nonnull %9, ptr noundef %489, ptr noundef %492, ptr noundef %493, ptr noundef %494, ptr noundef nonnull %495, ptr noundef nonnull %496, ptr noundef nonnull %497, ptr noundef %23, ptr noundef nonnull %25) #6
  %.not687.not = icmp sgt i64 %indvars.iv1015, %461
  br i1 %.not687.not, label %462, label %._crit_edge793.loopexit, !llvm.loop !59

._crit_edge793.loopexit:                          ; preds = %462
  %498 = trunc nsw i64 %indvars.iv.next1014 to i32
  br label %._crit_edge793

._crit_edge793:                                   ; preds = %._crit_edge793.loopexit, %449
  %.11.lcssa = phi i32 [ %.10796, %449 ], [ %498, %._crit_edge793.loopexit ]
  %499 = add nuw nsw i32 %.1797, 1
  %.not673.not = icmp slt i32 %.1797, %445
  br i1 %.not673.not, label %.lr.ph799, label %._crit_edge800, !llvm.loop !60

._crit_edge800:                                   ; preds = %._crit_edge793, %444
  %500 = load i32, ptr %30, align 4, !tbaa !5
  %501 = add nsw i32 %500, 1
  %502 = sdiv i32 %501, 2
  %.not674889 = icmp sgt i32 %502, %500
  br i1 %.not674889, label %.loopexit, label %.lr.ph892

.lr.ph892:                                        ; preds = %._crit_edge800
  %503 = shl i32 %65, 1
  %504 = sext i32 %35 to i64
  %505 = sext i32 %38 to i64
  %506 = sext i32 %502 to i64
  %.pre1116 = load i32, ptr %3, align 4, !tbaa !5
  %507 = sext i32 %500 to i64
  %508 = shl nsw i64 %505, 3
  %509 = shl nsw i64 %39, 3
  %510 = getelementptr i8, ptr %6, i64 %508
  %511 = getelementptr i8, ptr %510, i64 %509
  %scevgep1299 = getelementptr i8, ptr %511, i64 8
  %512 = getelementptr i8, ptr %6, i64 %509
  %scevgep1301 = getelementptr i8, ptr %512, i64 16
  %scevgep1304 = getelementptr i8, ptr %23, i64 4
  %scevgep1308 = getelementptr i8, ptr %23, i64 4
  %scevgep1347 = getelementptr i8, ptr %23, i64 4
  %513 = shl nsw i64 %504, 3
  %514 = shl nsw i64 %36, 3
  %515 = getelementptr i8, ptr %4, i64 %513
  %516 = getelementptr i8, ptr %515, i64 %514
  %scevgep1350 = getelementptr i8, ptr %516, i64 8
  %517 = getelementptr i8, ptr %4, i64 %514
  %scevgep1352 = getelementptr i8, ptr %517, i64 12
  %518 = add nsw i64 %505, %39
  %519 = shl nsw i64 %518, 3
  %scevgep1378 = getelementptr i8, ptr %6, i64 %519
  %520 = shl nsw i64 %505, 3
  %521 = add nsw i64 %505, %39
  %522 = add nsw i64 %504, %36
  %523 = shl nsw i64 %522, 3
  %scevgep1427 = getelementptr i8, ptr %4, i64 %523
  %scevgep1429 = getelementptr i8, ptr %4, i64 -4
  %524 = shl nsw i64 %504, 3
  %525 = add nsw i64 %504, %36
  %stride.check1434 = icmp slt i32 %35, 0
  %invariant.gep1527 = getelementptr i8, ptr %23, i64 4
  %invariant.gep1531 = getelementptr i8, ptr %23, i64 8
  %invariant.gep1535 = getelementptr i8, ptr %23, i64 12
  %stride.check1395 = icmp slt i32 %38, 0
  %stride.check1357 = icmp slt i32 %35, 0
  %invariant.gep1547 = getelementptr i8, ptr %23, i64 4
  %invariant.gep1551 = getelementptr i8, ptr %23, i64 8
  %invariant.gep1555 = getelementptr i8, ptr %23, i64 12
  %stride.check1318 = icmp slt i32 %38, 0
  %invariant.gep1561 = getelementptr i8, ptr %23, i64 4
  %invariant.gep1563 = getelementptr i8, ptr %23, i64 4
  br label %526

526:                                              ; preds = %.lr.ph892, %._crit_edge884
  %527 = phi i32 [ %.pre1116, %.lr.ph892 ], [ %745, %._crit_edge884 ]
  %indvars.iv1108 = phi i64 [ %506, %.lr.ph892 ], [ %indvars.iv.next1109, %._crit_edge884 ]
  %528 = getelementptr inbounds i32, ptr %59, i64 %indvars.iv1108
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = trunc nsw i64 %indvars.iv1108 to i32
  %531 = add i32 %65, %530
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds i32, ptr %59, i64 %532
  %534 = load i32, ptr %533, align 4, !tbaa !5
  store i32 %534, ptr %31, align 4, !tbaa !5
  %535 = add i32 %503, %530
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds i32, ptr %59, i64 %536
  %538 = load i32, ptr %537, align 4, !tbaa !5
  store i32 %538, ptr %32, align 4, !tbaa !5
  %539 = add nsw i32 %534, 1
  store i32 %539, ptr %33, align 4, !tbaa !5
  %540 = load i32, ptr %30, align 4, !tbaa !5
  %541 = icmp ne i32 %540, %530
  %542 = zext i1 %541 to i32
  %storemerge = add nsw i32 %538, %542
  store i32 %storemerge, ptr %34, align 4, !tbaa !5
  %543 = sub i32 %529, %534
  %544 = add i32 %529, 1
  %545 = shl i32 %539, 1
  %546 = mul i32 %545, %527
  %.not675808 = icmp sgt i32 %527, 0
  %.not686.not801 = icmp slt i32 %543, %544
  %or.cond1163 = select i1 %.not675808, i1 %.not686.not801, i1 false
  br i1 %or.cond1163, label %.lr.ph805.us.preheader, label %._crit_edge813

.lr.ph805.us.preheader:                           ; preds = %526
  %547 = sext i32 %543 to i64
  %548 = add nuw i32 %527, 1
  %wide.trip.count1032 = zext i32 %548 to i64
  %wide.trip.count1027 = sext i32 %544 to i64
  %549 = mul nsw i64 %547, -4
  %scevgep1425 = getelementptr i8, ptr %23, i64 %549
  %550 = shl nsw i64 %547, 3
  %scevgep1428 = getelementptr i8, ptr %scevgep1427, i64 %550
  %551 = add nsw i64 %wide.trip.count1032, -2
  %552 = mul i64 %524, %551
  %553 = add nsw i64 %525, %wide.trip.count1027
  %554 = shl nsw i64 %553, 3
  %555 = getelementptr i8, ptr %scevgep1429, i64 %552
  %scevgep1430 = getelementptr i8, ptr %555, i64 %554
  %556 = sub nsw i64 %wide.trip.count1027, %547
  %min.iters.check1437 = icmp ult i64 %556, 8
  %n.vec1440 = and i64 %556, -8
  %ind.end1441 = add nsw i64 %n.vec1440, %547
  %cmp.n1450 = icmp eq i64 %556, %n.vec1440
  br label %.lr.ph805.us

.lr.ph805.us:                                     ; preds = %.lr.ph805.us.preheader, %._crit_edge806.us
  %indvars.iv1029 = phi i64 [ 1, %.lr.ph805.us.preheader ], [ %indvars.iv.next1030, %._crit_edge806.us ]
  %.12810.us = phi i32 [ %546, %.lr.ph805.us.preheader ], [ %592, %._crit_edge806.us ]
  %557 = mul nsw i64 %indvars.iv1029, %504
  %558 = sext i32 %.12810.us to i64
  %invariant.gep1150 = getelementptr %struct.complex, ptr %37, i64 %557
  br i1 %min.iters.check1437, label %scalar.ph1436.preheader, label %vector.memcheck1423

vector.memcheck1423:                              ; preds = %.lr.ph805.us
  %559 = shl nsw i64 %558, 2
  %scevgep1424 = getelementptr i8, ptr %23, i64 %559
  %560 = add nsw i64 %wide.trip.count1027, %558
  %561 = shl nsw i64 %560, 2
  %scevgep1426 = getelementptr i8, ptr %scevgep1425, i64 %561
  %bound01431 = icmp ult ptr %scevgep1424, %scevgep1430
  %bound11432 = icmp ult ptr %scevgep1428, %scevgep1426
  %found.conflict1433 = and i1 %bound01431, %bound11432
  %562 = or i1 %found.conflict1433, %stride.check1434
  br i1 %562, label %scalar.ph1436.preheader, label %vector.ph1438

vector.ph1438:                                    ; preds = %vector.memcheck1423
  %ind.end1443 = add nsw i64 %n.vec1440, %558
  %invariant.gep1509 = getelementptr i8, ptr %invariant.gep1150, i64 8
  %invariant.gep1511 = getelementptr i8, ptr %invariant.gep1150, i64 16
  %invariant.gep1513 = getelementptr i8, ptr %invariant.gep1150, i64 24
  %invariant.gep1515 = getelementptr i8, ptr %invariant.gep1150, i64 32
  %invariant.gep1517 = getelementptr i8, ptr %invariant.gep1150, i64 40
  %invariant.gep1519 = getelementptr i8, ptr %invariant.gep1150, i64 48
  %invariant.gep1521 = getelementptr i8, ptr %invariant.gep1150, i64 56
  %invariant.gep1523 = getelementptr float, ptr %23, i64 %558
  br label %vector.body1445

vector.body1445:                                  ; preds = %vector.body1445, %vector.ph1438
  %index1446 = phi i64 [ 0, %vector.ph1438 ], [ %index.next1449, %vector.body1445 ]
  %offset.idx1447 = add i64 %index1446, %547
  %563 = getelementptr %struct.complex, ptr %invariant.gep1150, i64 %offset.idx1447
  %gep1510 = getelementptr %struct.complex, ptr %invariant.gep1509, i64 %offset.idx1447
  %gep1512 = getelementptr %struct.complex, ptr %invariant.gep1511, i64 %offset.idx1447
  %gep1514 = getelementptr %struct.complex, ptr %invariant.gep1513, i64 %offset.idx1447
  %gep1516 = getelementptr %struct.complex, ptr %invariant.gep1515, i64 %offset.idx1447
  %gep1518 = getelementptr %struct.complex, ptr %invariant.gep1517, i64 %offset.idx1447
  %gep1520 = getelementptr %struct.complex, ptr %invariant.gep1519, i64 %offset.idx1447
  %gep1522 = getelementptr %struct.complex, ptr %invariant.gep1521, i64 %offset.idx1447
  %564 = load float, ptr %563, align 4, !tbaa !9, !alias.scope !61
  %565 = load float, ptr %gep1510, align 4, !tbaa !9, !alias.scope !61
  %566 = load float, ptr %gep1512, align 4, !tbaa !9, !alias.scope !61
  %567 = load float, ptr %gep1514, align 4, !tbaa !9, !alias.scope !61
  %568 = insertelement <4 x float> poison, float %564, i64 0
  %569 = insertelement <4 x float> %568, float %565, i64 1
  %570 = insertelement <4 x float> %569, float %566, i64 2
  %571 = insertelement <4 x float> %570, float %567, i64 3
  %572 = load float, ptr %gep1516, align 4, !tbaa !9, !alias.scope !61
  %573 = load float, ptr %gep1518, align 4, !tbaa !9, !alias.scope !61
  %574 = load float, ptr %gep1520, align 4, !tbaa !9, !alias.scope !61
  %575 = load float, ptr %gep1522, align 4, !tbaa !9, !alias.scope !61
  %576 = insertelement <4 x float> poison, float %572, i64 0
  %577 = insertelement <4 x float> %576, float %573, i64 1
  %578 = insertelement <4 x float> %577, float %574, i64 2
  %579 = insertelement <4 x float> %578, float %575, i64 3
  %gep1524 = getelementptr float, ptr %invariant.gep1523, i64 %index1446
  %580 = getelementptr i8, ptr %gep1524, i64 16
  store <4 x float> %571, ptr %gep1524, align 4, !tbaa !12, !alias.scope !64, !noalias !61
  store <4 x float> %579, ptr %580, align 4, !tbaa !12, !alias.scope !64, !noalias !61
  %index.next1449 = add nuw i64 %index1446, 8
  %581 = icmp eq i64 %index.next1449, %n.vec1440
  br i1 %581, label %middle.block1435, label %vector.body1445, !llvm.loop !66

middle.block1435:                                 ; preds = %vector.body1445
  br i1 %cmp.n1450, label %._crit_edge806.us, label %scalar.ph1436.preheader

scalar.ph1436.preheader:                          ; preds = %middle.block1435, %vector.memcheck1423, %.lr.ph805.us
  %indvars.iv1022.ph = phi i64 [ %547, %vector.memcheck1423 ], [ %547, %.lr.ph805.us ], [ %ind.end1441, %middle.block1435 ]
  %indvars.iv1020.ph = phi i64 [ %558, %vector.memcheck1423 ], [ %558, %.lr.ph805.us ], [ %ind.end1443, %middle.block1435 ]
  %582 = sub nsw i64 %wide.trip.count1027, %indvars.iv1022.ph
  %xtraiter1464 = and i64 %582, 3
  %lcmp.mod1465.not = icmp eq i64 %xtraiter1464, 0
  br i1 %lcmp.mod1465.not, label %scalar.ph1436.prol.loopexit, label %scalar.ph1436.prol

scalar.ph1436.prol:                               ; preds = %scalar.ph1436.preheader, %scalar.ph1436.prol
  %indvars.iv1022.prol = phi i64 [ %indvars.iv.next1023.prol, %scalar.ph1436.prol ], [ %indvars.iv1022.ph, %scalar.ph1436.preheader ]
  %indvars.iv1020.prol = phi i64 [ %indvars.iv.next1021.prol, %scalar.ph1436.prol ], [ %indvars.iv1020.ph, %scalar.ph1436.preheader ]
  %prol.iter1466 = phi i64 [ %prol.iter1466.next, %scalar.ph1436.prol ], [ 0, %scalar.ph1436.preheader ]
  %indvars.iv.next1021.prol = add nsw i64 %indvars.iv1020.prol, 1
  %gep1151.prol = getelementptr %struct.complex, ptr %invariant.gep1150, i64 %indvars.iv1022.prol
  %583 = load float, ptr %gep1151.prol, align 4, !tbaa !9
  %584 = getelementptr float, ptr %23, i64 %indvars.iv1020.prol
  store float %583, ptr %584, align 4, !tbaa !12
  %indvars.iv.next1023.prol = add nsw i64 %indvars.iv1022.prol, 1
  %prol.iter1466.next = add i64 %prol.iter1466, 1
  %prol.iter1466.cmp.not = icmp eq i64 %prol.iter1466.next, %xtraiter1464
  br i1 %prol.iter1466.cmp.not, label %scalar.ph1436.prol.loopexit, label %scalar.ph1436.prol, !llvm.loop !67

scalar.ph1436.prol.loopexit:                      ; preds = %scalar.ph1436.prol, %scalar.ph1436.preheader
  %indvars.iv.next1021.lcssa1451.unr = phi i64 [ poison, %scalar.ph1436.preheader ], [ %indvars.iv.next1021.prol, %scalar.ph1436.prol ]
  %indvars.iv1022.unr = phi i64 [ %indvars.iv1022.ph, %scalar.ph1436.preheader ], [ %indvars.iv.next1023.prol, %scalar.ph1436.prol ]
  %indvars.iv1020.unr = phi i64 [ %indvars.iv1020.ph, %scalar.ph1436.preheader ], [ %indvars.iv.next1021.prol, %scalar.ph1436.prol ]
  %585 = sub nsw i64 %indvars.iv1022.ph, %wide.trip.count1027
  %586 = icmp ugt i64 %585, -4
  br i1 %586, label %._crit_edge806.us, label %scalar.ph1436.preheader.new

scalar.ph1436.preheader.new:                      ; preds = %scalar.ph1436.prol.loopexit
  %invariant.gep1525 = getelementptr i8, ptr %invariant.gep1150, i64 8
  %invariant.gep1529 = getelementptr i8, ptr %invariant.gep1150, i64 16
  %invariant.gep1533 = getelementptr i8, ptr %invariant.gep1150, i64 24
  br label %scalar.ph1436

scalar.ph1436:                                    ; preds = %scalar.ph1436, %scalar.ph1436.preheader.new
  %indvars.iv1022 = phi i64 [ %indvars.iv1022.unr, %scalar.ph1436.preheader.new ], [ %indvars.iv.next1023.3, %scalar.ph1436 ]
  %indvars.iv1020 = phi i64 [ %indvars.iv1020.unr, %scalar.ph1436.preheader.new ], [ %indvars.iv.next1021.3, %scalar.ph1436 ]
  %gep1151 = getelementptr %struct.complex, ptr %invariant.gep1150, i64 %indvars.iv1022
  %587 = load float, ptr %gep1151, align 4, !tbaa !9
  %588 = getelementptr float, ptr %23, i64 %indvars.iv1020
  store float %587, ptr %588, align 4, !tbaa !12
  %gep1526 = getelementptr %struct.complex, ptr %invariant.gep1525, i64 %indvars.iv1022
  %589 = load float, ptr %gep1526, align 4, !tbaa !9
  %gep1528 = getelementptr float, ptr %invariant.gep1527, i64 %indvars.iv1020
  store float %589, ptr %gep1528, align 4, !tbaa !12
  %gep1530 = getelementptr %struct.complex, ptr %invariant.gep1529, i64 %indvars.iv1022
  %590 = load float, ptr %gep1530, align 4, !tbaa !9
  %gep1532 = getelementptr float, ptr %invariant.gep1531, i64 %indvars.iv1020
  store float %590, ptr %gep1532, align 4, !tbaa !12
  %indvars.iv.next1021.3 = add nsw i64 %indvars.iv1020, 4
  %gep1534 = getelementptr %struct.complex, ptr %invariant.gep1533, i64 %indvars.iv1022
  %591 = load float, ptr %gep1534, align 4, !tbaa !9
  %gep1536 = getelementptr float, ptr %invariant.gep1535, i64 %indvars.iv1020
  store float %591, ptr %gep1536, align 4, !tbaa !12
  %indvars.iv.next1023.3 = add nsw i64 %indvars.iv1022, 4
  %exitcond1028.not.3 = icmp eq i64 %indvars.iv.next1023.3, %wide.trip.count1027
  br i1 %exitcond1028.not.3, label %._crit_edge806.us, label %scalar.ph1436, !llvm.loop !68

._crit_edge806.us:                                ; preds = %scalar.ph1436.prol.loopexit, %scalar.ph1436, %middle.block1435
  %indvars.iv.next1021.lcssa = phi i64 [ %ind.end1443, %middle.block1435 ], [ %indvars.iv.next1021.lcssa1451.unr, %scalar.ph1436.prol.loopexit ], [ %indvars.iv.next1021.3, %scalar.ph1436 ]
  %592 = trunc nsw i64 %indvars.iv.next1021.lcssa to i32
  %indvars.iv.next1030 = add nuw nsw i64 %indvars.iv1029, 1
  %exitcond1033.not = icmp eq i64 %indvars.iv.next1030, %wide.trip.count1032
  br i1 %exitcond1033.not, label %._crit_edge813, label %.lr.ph805.us, !llvm.loop !69

._crit_edge813:                                   ; preds = %._crit_edge806.us, %526
  %593 = add nsw i32 %543, %41
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %48, i64 %594
  %596 = or disjoint i32 %546, 1
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds float, ptr %58, i64 %597
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %33, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull @c_b9, ptr noundef %595, ptr noundef nonnull %9, ptr noundef nonnull %598, ptr noundef nonnull %33, ptr noundef nonnull @c_b10, ptr noundef %23, ptr noundef nonnull %33) #6
  %599 = load i32, ptr %33, align 4, !tbaa !5
  %600 = load i32, ptr %3, align 4, !tbaa !5
  %.not676821 = icmp slt i32 %600, 1
  br i1 %.not676821, label %._crit_edge826, label %.lr.ph825.preheader

.lr.ph825.preheader:                              ; preds = %._crit_edge813
  %601 = shl i32 %599, 1
  %602 = mul i32 %601, %600
  %603 = sext i32 %543 to i64
  %604 = add nuw i32 %600, 1
  %wide.trip.count1044 = zext i32 %604 to i64
  br label %.lr.ph825

.lr.ph825:                                        ; preds = %.lr.ph825.preheader, %._crit_edge819
  %indvars.iv1041 = phi i64 [ 1, %.lr.ph825.preheader ], [ %indvars.iv.next1042, %._crit_edge819 ]
  %.14823 = phi i32 [ %602, %.lr.ph825.preheader ], [ %.15.lcssa, %._crit_edge819 ]
  %605 = load i32, ptr %33, align 4, !tbaa !5
  %.not685.not814 = icmp sgt i32 %605, 0
  br i1 %.not685.not814, label %.lr.ph818, label %._crit_edge819

.lr.ph818:                                        ; preds = %.lr.ph825
  %606 = add nsw i32 %605, %543
  %607 = mul nsw i64 %indvars.iv1041, %504
  %608 = sext i32 %.14823 to i64
  %609 = sext i32 %606 to i64
  %invariant.gep1152 = getelementptr %struct.complex, ptr %37, i64 %607
  br label %610

610:                                              ; preds = %.lr.ph818, %610
  %indvars.iv1036 = phi i64 [ %603, %.lr.ph818 ], [ %indvars.iv.next1037, %610 ]
  %indvars.iv1034 = phi i64 [ %608, %.lr.ph818 ], [ %indvars.iv.next1035, %610 ]
  %indvars.iv.next1035 = add nsw i64 %indvars.iv1034, 1
  %gep1153 = getelementptr %struct.complex, ptr %invariant.gep1152, i64 %indvars.iv1036
  %611 = call <2 x float> @Cf(ptr noundef %gep1153)
  %.sroa.01.4.vec.extract = extractelement <2 x float> %611, i64 1
  %612 = getelementptr float, ptr %23, i64 %indvars.iv1034
  store float %.sroa.01.4.vec.extract, ptr %612, align 4, !tbaa !12
  %indvars.iv.next1037 = add nsw i64 %indvars.iv1036, 1
  %.not685.not = icmp slt i64 %indvars.iv.next1037, %609
  br i1 %.not685.not, label %610, label %._crit_edge819.loopexit, !llvm.loop !70

._crit_edge819.loopexit:                          ; preds = %610
  %613 = trunc nsw i64 %indvars.iv.next1035 to i32
  br label %._crit_edge819

._crit_edge819:                                   ; preds = %._crit_edge819.loopexit, %.lr.ph825
  %.15.lcssa = phi i32 [ %.14823, %.lr.ph825 ], [ %613, %._crit_edge819.loopexit ]
  %indvars.iv.next1042 = add nuw nsw i64 %indvars.iv1041, 1
  %exitcond1045.not = icmp eq i64 %indvars.iv.next1042, %wide.trip.count1044
  br i1 %exitcond1045.not, label %._crit_edge826.loopexit, label %.lr.ph825, !llvm.loop !71

._crit_edge826.loopexit:                          ; preds = %._crit_edge819
  %.pre1117 = load i32, ptr %33, align 4, !tbaa !5
  %.pre1118 = load i32, ptr %3, align 4, !tbaa !5
  br label %._crit_edge826

._crit_edge826:                                   ; preds = %._crit_edge826.loopexit, %._crit_edge813
  %614 = phi i32 [ %.pre1118, %._crit_edge826.loopexit ], [ %600, %._crit_edge813 ]
  %615 = phi i32 [ %.pre1117, %._crit_edge826.loopexit ], [ %599, %._crit_edge813 ]
  %616 = mul nsw i32 %614, %615
  %617 = shl i32 %616, 1
  %618 = or disjoint i32 %617, 1
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds float, ptr %58, i64 %619
  %621 = sext i32 %616 to i64
  %gep886 = getelementptr float, ptr %23, i64 %621
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %33, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull @c_b9, ptr noundef %595, ptr noundef nonnull %9, ptr noundef nonnull %620, ptr noundef nonnull %33, ptr noundef nonnull @c_b10, ptr noundef %gep886, ptr noundef nonnull %33) #6
  %622 = load i32, ptr %3, align 4, !tbaa !5
  %.not677836 = icmp slt i32 %622, 1
  br i1 %.not677836, label %._crit_edge842.thread, label %.lr.ph841

._crit_edge842.thread:                            ; preds = %._crit_edge826
  %623 = load i32, ptr %34, align 4, !tbaa !5
  %624 = shl i32 %622, 1
  %625 = mul i32 %624, %623
  br label %._crit_edge855

.lr.ph841:                                        ; preds = %._crit_edge826
  %626 = load i32, ptr %33, align 4, !tbaa !5
  %.not684.not827 = icmp sgt i32 %626, 0
  br i1 %.not684.not827, label %.lr.ph832.us.preheader, label %._crit_edge842.thread1135

._crit_edge842.thread1135:                        ; preds = %.lr.ph841
  %627 = load i32, ptr %34, align 4, !tbaa !5
  %628 = shl nuw i32 %622, 1
  %629 = mul i32 %628, %627
  br label %.lr.ph854

.lr.ph832.us.preheader:                           ; preds = %.lr.ph841
  %630 = add i32 %626, %543
  %631 = mul nuw nsw i32 %622, %626
  %632 = sext i32 %543 to i64
  %633 = sext i32 %630 to i64
  %634 = add nuw i32 %622, 1
  %wide.trip.count1060 = zext i32 %634 to i64
  %635 = shl nsw i64 %632, 3
  %scevgep1379 = getelementptr i8, ptr %scevgep1378, i64 %635
  %636 = add nsw i64 %wide.trip.count1060, -2
  %637 = mul i64 %520, %636
  %638 = add nsw i64 %632, 1
  %smax1380 = call i64 @llvm.smax.i64(i64 %638, i64 %633)
  %639 = add i64 %521, %smax1380
  %640 = shl nsw i64 %639, 3
  %641 = getelementptr i8, ptr %6, i64 %637
  %scevgep1381 = getelementptr i8, ptr %641, i64 %640
  %642 = mul nsw i64 %632, -4
  %scevgep1383 = getelementptr i8, ptr %23, i64 %642
  %scevgep1386 = getelementptr i8, ptr %23, i64 %642
  %643 = add nsw i64 %632, 1
  %smax1397 = call i64 @llvm.smax.i64(i64 %643, i64 %633)
  %644 = sub i64 %smax1397, %632
  %min.iters.check1400 = icmp ult i64 %644, 10
  %n.vec1403 = and i64 %644, -4
  %ind.end1404 = add i64 %n.vec1403, %632
  %cmp.n1422 = icmp eq i64 %644, %n.vec1403
  br label %.lr.ph832.us

.lr.ph832.us:                                     ; preds = %.lr.ph832.us.preheader, %._crit_edge833.us
  %indvars.iv1057 = phi i64 [ 1, %.lr.ph832.us.preheader ], [ %indvars.iv.next1058, %._crit_edge833.us ]
  %.4839.us = phi i64 [ 0, %.lr.ph832.us.preheader ], [ %indvars.iv.next1047.lcssa, %._crit_edge833.us ]
  %.4610838.us = phi i32 [ %631, %.lr.ph832.us.preheader ], [ %666, %._crit_edge833.us ]
  %645 = mul nsw i64 %indvars.iv1057, %505
  %sext1122 = shl i64 %.4839.us, 32
  %646 = ashr exact i64 %sext1122, 32
  %647 = sext i32 %.4610838.us to i64
  %invariant.gep1154 = getelementptr %struct.complex, ptr %40, i64 %645
  br i1 %min.iters.check1400, label %scalar.ph1399.preheader, label %vector.memcheck1377

vector.memcheck1377:                              ; preds = %.lr.ph832.us
  %648 = shl nsw i64 %647, 2
  %scevgep1382 = getelementptr i8, ptr %23, i64 %648
  %649 = add i64 %smax1380, %647
  %650 = shl nsw i64 %649, 2
  %scevgep1384 = getelementptr i8, ptr %scevgep1383, i64 %650
  %651 = ashr exact i64 %sext1122, 30
  %scevgep1385 = getelementptr i8, ptr %23, i64 %651
  %652 = add i64 %smax1380, %646
  %653 = shl nsw i64 %652, 2
  %scevgep1387 = getelementptr i8, ptr %scevgep1386, i64 %653
  %bound01388 = icmp ult ptr %scevgep1379, %scevgep1384
  %bound11389 = icmp ult ptr %scevgep1382, %scevgep1381
  %found.conflict1390 = and i1 %bound01388, %bound11389
  %bound01392 = icmp ult ptr %scevgep1379, %scevgep1387
  %bound11393 = icmp ult ptr %scevgep1385, %scevgep1381
  %found.conflict1394 = and i1 %bound01392, %bound11393
  %654 = or i1 %found.conflict1394, %stride.check1395
  %conflict.rdx1396 = or i1 %found.conflict1390, %654
  br i1 %conflict.rdx1396, label %scalar.ph1399.preheader, label %vector.ph1401

vector.ph1401:                                    ; preds = %vector.memcheck1377
  %ind.end1406 = add i64 %n.vec1403, %647
  %ind.end1408 = add i64 %646, %n.vec1403
  %655 = getelementptr float, ptr %23, i64 %646
  %invariant.gep1537 = getelementptr float, ptr %23, i64 %647
  %invariant.gep1539 = getelementptr i8, ptr %invariant.gep1154, i64 16
  br label %vector.body1410

vector.body1410:                                  ; preds = %vector.body1410, %vector.ph1401
  %index1411 = phi i64 [ 0, %vector.ph1401 ], [ %index.next1421, %vector.body1410 ]
  %offset.idx1412 = add i64 %index1411, %632
  %656 = getelementptr float, ptr %655, i64 %index1411
  %657 = getelementptr i8, ptr %656, i64 8
  %wide.load1415 = load <2 x float>, ptr %656, align 4, !tbaa !12, !alias.scope !72
  %wide.load1416 = load <2 x float>, ptr %657, align 4, !tbaa !12, !alias.scope !72
  %gep1538 = getelementptr float, ptr %invariant.gep1537, i64 %index1411
  %658 = getelementptr i8, ptr %gep1538, i64 8
  %wide.load1417 = load <2 x float>, ptr %gep1538, align 4, !tbaa !12, !alias.scope !75
  %wide.load1418 = load <2 x float>, ptr %658, align 4, !tbaa !12, !alias.scope !75
  %659 = getelementptr %struct.complex, ptr %invariant.gep1154, i64 %offset.idx1412
  %gep1540 = getelementptr %struct.complex, ptr %invariant.gep1539, i64 %offset.idx1412
  %interleaved.vec1419 = shufflevector <2 x float> %wide.load1415, <2 x float> %wide.load1417, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1419, ptr %659, align 4, !tbaa !12
  %interleaved.vec1420 = shufflevector <2 x float> %wide.load1416, <2 x float> %wide.load1418, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1420, ptr %gep1540, align 4, !tbaa !12
  %index.next1421 = add nuw i64 %index1411, 4
  %660 = icmp eq i64 %index.next1421, %n.vec1403
  br i1 %660, label %middle.block1398, label %vector.body1410, !llvm.loop !77

middle.block1398:                                 ; preds = %vector.body1410
  br i1 %cmp.n1422, label %._crit_edge833.us, label %scalar.ph1399.preheader

scalar.ph1399.preheader:                          ; preds = %middle.block1398, %vector.memcheck1377, %.lr.ph832.us
  %indvars.iv1050.ph = phi i64 [ %632, %vector.memcheck1377 ], [ %632, %.lr.ph832.us ], [ %ind.end1404, %middle.block1398 ]
  %indvars.iv1048.ph = phi i64 [ %647, %vector.memcheck1377 ], [ %647, %.lr.ph832.us ], [ %ind.end1406, %middle.block1398 ]
  %indvars.iv1046.ph = phi i64 [ %646, %vector.memcheck1377 ], [ %646, %.lr.ph832.us ], [ %ind.end1408, %middle.block1398 ]
  br label %scalar.ph1399

scalar.ph1399:                                    ; preds = %scalar.ph1399.preheader, %scalar.ph1399
  %indvars.iv1050 = phi i64 [ %indvars.iv.next1051, %scalar.ph1399 ], [ %indvars.iv1050.ph, %scalar.ph1399.preheader ]
  %indvars.iv1048 = phi i64 [ %indvars.iv.next1049, %scalar.ph1399 ], [ %indvars.iv1048.ph, %scalar.ph1399.preheader ]
  %indvars.iv1046 = phi i64 [ %indvars.iv.next1047, %scalar.ph1399 ], [ %indvars.iv1046.ph, %scalar.ph1399.preheader ]
  %indvars.iv.next1047 = add nsw i64 %indvars.iv1046, 1
  %indvars.iv.next1049 = add nsw i64 %indvars.iv1048, 1
  %661 = getelementptr float, ptr %23, i64 %indvars.iv1046
  %662 = load float, ptr %661, align 4, !tbaa !12
  %663 = getelementptr float, ptr %23, i64 %indvars.iv1048
  %664 = load float, ptr %663, align 4, !tbaa !12
  %gep1155 = getelementptr %struct.complex, ptr %invariant.gep1154, i64 %indvars.iv1050
  store float %662, ptr %gep1155, align 4, !tbaa !9
  %665 = getelementptr inbounds i8, ptr %gep1155, i64 4
  store float %664, ptr %665, align 4, !tbaa !32
  %indvars.iv.next1051 = add nsw i64 %indvars.iv1050, 1
  %.not684.not.us = icmp slt i64 %indvars.iv.next1051, %633
  br i1 %.not684.not.us, label %scalar.ph1399, label %._crit_edge833.us, !llvm.loop !78

._crit_edge833.us:                                ; preds = %scalar.ph1399, %middle.block1398
  %indvars.iv.next1047.lcssa = phi i64 [ %ind.end1408, %middle.block1398 ], [ %indvars.iv.next1047, %scalar.ph1399 ]
  %indvars.iv.next1049.lcssa = phi i64 [ %ind.end1406, %middle.block1398 ], [ %indvars.iv.next1049, %scalar.ph1399 ]
  %666 = trunc nsw i64 %indvars.iv.next1049.lcssa to i32
  %indvars.iv.next1058 = add nuw nsw i64 %indvars.iv1057, 1
  %exitcond1061.not = icmp eq i64 %indvars.iv.next1058, %wide.trip.count1060
  br i1 %exitcond1061.not, label %._crit_edge842, label %.lr.ph832.us, !llvm.loop !79

._crit_edge842:                                   ; preds = %._crit_edge833.us
  %667 = load i32, ptr %34, align 4, !tbaa !5
  %668 = shl nuw i32 %622, 1
  %669 = mul i32 %668, %667
  br i1 %.not677836, label %._crit_edge855, label %.lr.ph854

.lr.ph854:                                        ; preds = %._crit_edge842.thread1135, %._crit_edge842
  %670 = phi i32 [ %629, %._crit_edge842.thread1135 ], [ %669, %._crit_edge842 ]
  %671 = phi i32 [ %627, %._crit_edge842.thread1135 ], [ %667, %._crit_edge842 ]
  %672 = add i32 %671, %529
  %.not683843.not = icmp slt i32 %529, %672
  br i1 %.not683843.not, label %.lr.ph847.preheader, label %._crit_edge855

.lr.ph847.preheader:                              ; preds = %.lr.ph854
  %673 = sext i32 %529 to i64
  %674 = add nsw i64 %673, 1
  %675 = add i32 %544, %671
  %676 = add nuw i32 %622, 1
  %wide.trip.count1074 = zext i32 %676 to i64
  %677 = add i32 %671, -1
  %678 = zext i32 %677 to i64
  %679 = shl nuw nsw i64 %678, 2
  %scevgep1348 = getelementptr i8, ptr %scevgep1347, i64 %679
  %680 = shl nsw i64 %673, 3
  %scevgep1351 = getelementptr i8, ptr %scevgep1350, i64 %680
  %681 = shl nuw nsw i64 %wide.trip.count1074, 3
  %682 = add nsw i64 %681, -8
  %683 = mul i64 %682, %504
  %684 = shl nuw nsw i64 %678, 3
  %685 = getelementptr i8, ptr %scevgep1352, i64 %683
  %686 = getelementptr i8, ptr %685, i64 %680
  %scevgep1353 = getelementptr i8, ptr %686, i64 %684
  %687 = add i32 %671, -1
  %688 = zext i32 %687 to i64
  %689 = add nuw nsw i64 %688, 1
  %690 = add i32 %671, 1
  %691 = add i32 %690, %529
  %692 = add i32 %671, %529
  %min.iters.check1360 = icmp ult i32 %687, 8
  %n.mod.vf1362 = and i64 %689, 7
  %693 = icmp eq i64 %n.mod.vf1362, 0
  %694 = select i1 %693, i64 8, i64 %n.mod.vf1362
  %n.vec1363 = sub nsw i64 %689, %694
  %ind.end1364 = add nsw i64 %674, %n.vec1363
  br label %.lr.ph847

.lr.ph847:                                        ; preds = %.lr.ph847.preheader, %._crit_edge848
  %indvars.iv1071 = phi i64 [ 1, %.lr.ph847.preheader ], [ %indvars.iv.next1072, %._crit_edge848 ]
  %.16852 = phi i32 [ %670, %.lr.ph847.preheader ], [ %713, %._crit_edge848 ]
  %695 = mul nsw i64 %indvars.iv1071, %504
  %696 = sext i32 %.16852 to i64
  %invariant.gep1156 = getelementptr %struct.complex, ptr %37, i64 %695
  br i1 %min.iters.check1360, label %scalar.ph1359.preheader, label %vector.memcheck1345

vector.memcheck1345:                              ; preds = %.lr.ph847
  %697 = shl nsw i64 %696, 2
  %scevgep1346 = getelementptr i8, ptr %23, i64 %697
  %scevgep1349 = getelementptr i8, ptr %scevgep1348, i64 %697
  %bound01354 = icmp ult ptr %scevgep1346, %scevgep1353
  %bound11355 = icmp ult ptr %scevgep1351, %scevgep1349
  %found.conflict1356 = and i1 %bound01354, %bound11355
  %698 = or i1 %found.conflict1356, %stride.check1357
  br i1 %698, label %scalar.ph1359.preheader, label %vector.ph1361

vector.ph1361:                                    ; preds = %vector.memcheck1345
  %ind.end1366 = add nsw i64 %n.vec1363, %696
  %invariant.gep1541 = getelementptr i8, ptr %invariant.gep1156, i64 32
  %invariant.gep1543 = getelementptr float, ptr %23, i64 %696
  br label %vector.body1368

vector.body1368:                                  ; preds = %vector.body1368, %vector.ph1361
  %index1369 = phi i64 [ 0, %vector.ph1361 ], [ %index.next1376, %vector.body1368 ]
  %offset.idx1370 = add i64 %674, %index1369
  %699 = getelementptr %struct.complex, ptr %invariant.gep1156, i64 %offset.idx1370
  %gep1542 = getelementptr %struct.complex, ptr %invariant.gep1541, i64 %offset.idx1370
  %wide.vec1372 = load <8 x float>, ptr %699, align 4, !tbaa !9
  %wide.vec1373 = load <8 x float>, ptr %gep1542, align 4, !tbaa !9
  %strided.vec1374 = shufflevector <8 x float> %wide.vec1372, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1375 = shufflevector <8 x float> %wide.vec1373, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %gep1544 = getelementptr float, ptr %invariant.gep1543, i64 %index1369
  %700 = getelementptr i8, ptr %gep1544, i64 16
  store <4 x float> %strided.vec1374, ptr %gep1544, align 4, !tbaa !12, !alias.scope !80, !noalias !83
  store <4 x float> %strided.vec1375, ptr %700, align 4, !tbaa !12, !alias.scope !80, !noalias !83
  %index.next1376 = add nuw i64 %index1369, 8
  %701 = icmp eq i64 %index.next1376, %n.vec1363
  br i1 %701, label %scalar.ph1359.preheader, label %vector.body1368, !llvm.loop !85

scalar.ph1359.preheader:                          ; preds = %vector.body1368, %vector.memcheck1345, %.lr.ph847
  %indvars.iv1064.ph = phi i64 [ %674, %vector.memcheck1345 ], [ %674, %.lr.ph847 ], [ %ind.end1364, %vector.body1368 ]
  %indvars.iv1062.ph = phi i64 [ %696, %vector.memcheck1345 ], [ %696, %.lr.ph847 ], [ %ind.end1366, %vector.body1368 ]
  %702 = trunc i64 %indvars.iv1064.ph to i32
  %703 = sub i32 %691, %702
  %704 = sub i32 %692, %702
  %xtraiter1467 = and i32 %703, 3
  %lcmp.mod1468.not = icmp eq i32 %xtraiter1467, 0
  br i1 %lcmp.mod1468.not, label %scalar.ph1359.prol.loopexit, label %scalar.ph1359.prol

scalar.ph1359.prol:                               ; preds = %scalar.ph1359.preheader, %scalar.ph1359.prol
  %indvars.iv1064.prol = phi i64 [ %indvars.iv.next1065.prol, %scalar.ph1359.prol ], [ %indvars.iv1064.ph, %scalar.ph1359.preheader ]
  %indvars.iv1062.prol = phi i64 [ %indvars.iv.next1063.prol, %scalar.ph1359.prol ], [ %indvars.iv1062.ph, %scalar.ph1359.preheader ]
  %prol.iter1469 = phi i32 [ %prol.iter1469.next, %scalar.ph1359.prol ], [ 0, %scalar.ph1359.preheader ]
  %indvars.iv.next1063.prol = add nsw i64 %indvars.iv1062.prol, 1
  %gep1157.prol = getelementptr %struct.complex, ptr %invariant.gep1156, i64 %indvars.iv1064.prol
  %705 = load float, ptr %gep1157.prol, align 4, !tbaa !9
  %706 = getelementptr float, ptr %23, i64 %indvars.iv1062.prol
  store float %705, ptr %706, align 4, !tbaa !12
  %indvars.iv.next1065.prol = add nsw i64 %indvars.iv1064.prol, 1
  %prol.iter1469.next = add i32 %prol.iter1469, 1
  %prol.iter1469.cmp.not = icmp eq i32 %prol.iter1469.next, %xtraiter1467
  br i1 %prol.iter1469.cmp.not, label %scalar.ph1359.prol.loopexit, label %scalar.ph1359.prol, !llvm.loop !86

scalar.ph1359.prol.loopexit:                      ; preds = %scalar.ph1359.prol, %scalar.ph1359.preheader
  %indvars.iv.next1063.lcssa.unr = phi i64 [ poison, %scalar.ph1359.preheader ], [ %indvars.iv.next1063.prol, %scalar.ph1359.prol ]
  %indvars.iv1064.unr = phi i64 [ %indvars.iv1064.ph, %scalar.ph1359.preheader ], [ %indvars.iv.next1065.prol, %scalar.ph1359.prol ]
  %indvars.iv1062.unr = phi i64 [ %indvars.iv1062.ph, %scalar.ph1359.preheader ], [ %indvars.iv.next1063.prol, %scalar.ph1359.prol ]
  %707 = icmp ult i32 %704, 3
  br i1 %707, label %._crit_edge848, label %scalar.ph1359.preheader.new

scalar.ph1359.preheader.new:                      ; preds = %scalar.ph1359.prol.loopexit
  %invariant.gep1545 = getelementptr i8, ptr %invariant.gep1156, i64 8
  %invariant.gep1549 = getelementptr i8, ptr %invariant.gep1156, i64 16
  %invariant.gep1553 = getelementptr i8, ptr %invariant.gep1156, i64 24
  br label %scalar.ph1359

scalar.ph1359:                                    ; preds = %scalar.ph1359, %scalar.ph1359.preheader.new
  %indvars.iv1064 = phi i64 [ %indvars.iv1064.unr, %scalar.ph1359.preheader.new ], [ %indvars.iv.next1065.3, %scalar.ph1359 ]
  %indvars.iv1062 = phi i64 [ %indvars.iv1062.unr, %scalar.ph1359.preheader.new ], [ %indvars.iv.next1063.3, %scalar.ph1359 ]
  %gep1157 = getelementptr %struct.complex, ptr %invariant.gep1156, i64 %indvars.iv1064
  %708 = load float, ptr %gep1157, align 4, !tbaa !9
  %709 = getelementptr float, ptr %23, i64 %indvars.iv1062
  store float %708, ptr %709, align 4, !tbaa !12
  %gep1546 = getelementptr %struct.complex, ptr %invariant.gep1545, i64 %indvars.iv1064
  %710 = load float, ptr %gep1546, align 4, !tbaa !9
  %gep1548 = getelementptr float, ptr %invariant.gep1547, i64 %indvars.iv1062
  store float %710, ptr %gep1548, align 4, !tbaa !12
  %gep1550 = getelementptr %struct.complex, ptr %invariant.gep1549, i64 %indvars.iv1064
  %711 = load float, ptr %gep1550, align 4, !tbaa !9
  %gep1552 = getelementptr float, ptr %invariant.gep1551, i64 %indvars.iv1062
  store float %711, ptr %gep1552, align 4, !tbaa !12
  %indvars.iv.next1063.3 = add nsw i64 %indvars.iv1062, 4
  %gep1554 = getelementptr %struct.complex, ptr %invariant.gep1553, i64 %indvars.iv1064
  %712 = load float, ptr %gep1554, align 4, !tbaa !9
  %gep1556 = getelementptr float, ptr %invariant.gep1555, i64 %indvars.iv1062
  store float %712, ptr %gep1556, align 4, !tbaa !12
  %indvars.iv.next1065.3 = add nsw i64 %indvars.iv1064, 4
  %lftr.wideiv1069.3 = trunc i64 %indvars.iv.next1065.3 to i32
  %exitcond1070.not.3 = icmp eq i32 %675, %lftr.wideiv1069.3
  br i1 %exitcond1070.not.3, label %._crit_edge848, label %scalar.ph1359, !llvm.loop !87

._crit_edge848:                                   ; preds = %scalar.ph1359, %scalar.ph1359.prol.loopexit
  %indvars.iv.next1063.lcssa = phi i64 [ %indvars.iv.next1063.lcssa.unr, %scalar.ph1359.prol.loopexit ], [ %indvars.iv.next1063.3, %scalar.ph1359 ]
  %713 = trunc nsw i64 %indvars.iv.next1063.lcssa to i32
  %indvars.iv.next1072 = add nuw nsw i64 %indvars.iv1071, 1
  %exitcond1075.not = icmp eq i64 %indvars.iv.next1072, %wide.trip.count1074
  br i1 %exitcond1075.not, label %._crit_edge855, label %.lr.ph847, !llvm.loop !88

._crit_edge855:                                   ; preds = %._crit_edge848, %.lr.ph854, %._crit_edge842.thread, %._crit_edge842
  %714 = phi i32 [ %625, %._crit_edge842.thread ], [ %669, %._crit_edge842 ], [ %670, %.lr.ph854 ], [ %670, %._crit_edge848 ]
  %715 = add nsw i32 %544, %41
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds float, ptr %48, i64 %716
  %718 = or disjoint i32 %714, 1
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds float, ptr %58, i64 %719
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %34, ptr noundef nonnull %3, ptr noundef nonnull %34, ptr noundef nonnull @c_b9, ptr noundef %717, ptr noundef nonnull %9, ptr noundef nonnull %720, ptr noundef nonnull %34, ptr noundef nonnull @c_b10, ptr noundef %23, ptr noundef nonnull %34) #6
  %721 = load i32, ptr %34, align 4, !tbaa !5
  %722 = load i32, ptr %3, align 4, !tbaa !5
  %.not679863 = icmp slt i32 %722, 1
  br i1 %.not679863, label %._crit_edge868, label %.lr.ph867.preheader

.lr.ph867.preheader:                              ; preds = %._crit_edge855
  %723 = shl i32 %721, 1
  %724 = mul i32 %723, %722
  %725 = sext i32 %529 to i64
  %726 = add nsw i64 %725, 1
  %727 = add nuw i32 %722, 1
  %wide.trip.count1088 = zext i32 %727 to i64
  br label %.lr.ph867

.lr.ph867:                                        ; preds = %.lr.ph867.preheader, %._crit_edge861
  %indvars.iv1085 = phi i64 [ 1, %.lr.ph867.preheader ], [ %indvars.iv.next1086, %._crit_edge861 ]
  %.18865 = phi i32 [ %724, %.lr.ph867.preheader ], [ %.19.lcssa, %._crit_edge861 ]
  %728 = load i32, ptr %34, align 4, !tbaa !5
  %729 = add i32 %728, %529
  %.not682856.not = icmp slt i32 %529, %729
  br i1 %.not682856.not, label %.lr.ph860, label %._crit_edge861

.lr.ph860:                                        ; preds = %.lr.ph867
  %730 = mul nsw i64 %indvars.iv1085, %504
  %731 = sext i32 %.18865 to i64
  %732 = add i32 %544, %728
  %invariant.gep1158 = getelementptr %struct.complex, ptr %37, i64 %730
  br label %733

733:                                              ; preds = %.lr.ph860, %733
  %indvars.iv1078 = phi i64 [ %726, %.lr.ph860 ], [ %indvars.iv.next1079, %733 ]
  %indvars.iv1076 = phi i64 [ %731, %.lr.ph860 ], [ %indvars.iv.next1077, %733 ]
  %indvars.iv.next1077 = add nsw i64 %indvars.iv1076, 1
  %gep1159 = getelementptr %struct.complex, ptr %invariant.gep1158, i64 %indvars.iv1078
  %734 = call <2 x float> @Cf(ptr noundef %gep1159)
  %.sroa.0.4.vec.extract = extractelement <2 x float> %734, i64 1
  %735 = getelementptr float, ptr %23, i64 %indvars.iv1076
  store float %.sroa.0.4.vec.extract, ptr %735, align 4, !tbaa !12
  %indvars.iv.next1079 = add nsw i64 %indvars.iv1078, 1
  %lftr.wideiv1083 = trunc i64 %indvars.iv.next1079 to i32
  %exitcond1084.not = icmp eq i32 %732, %lftr.wideiv1083
  br i1 %exitcond1084.not, label %._crit_edge861.loopexit, label %733, !llvm.loop !89

._crit_edge861.loopexit:                          ; preds = %733
  %736 = trunc nsw i64 %indvars.iv.next1077 to i32
  br label %._crit_edge861

._crit_edge861:                                   ; preds = %._crit_edge861.loopexit, %.lr.ph867
  %.19.lcssa = phi i32 [ %.18865, %.lr.ph867 ], [ %736, %._crit_edge861.loopexit ]
  %indvars.iv.next1086 = add nuw nsw i64 %indvars.iv1085, 1
  %exitcond1089.not = icmp eq i64 %indvars.iv.next1086, %wide.trip.count1088
  br i1 %exitcond1089.not, label %._crit_edge868.loopexit, label %.lr.ph867, !llvm.loop !90

._crit_edge868.loopexit:                          ; preds = %._crit_edge861
  %.pre1119 = load i32, ptr %34, align 4, !tbaa !5
  %.pre1120 = load i32, ptr %3, align 4, !tbaa !5
  br label %._crit_edge868

._crit_edge868:                                   ; preds = %._crit_edge868.loopexit, %._crit_edge855
  %737 = phi i32 [ %.pre1120, %._crit_edge868.loopexit ], [ %722, %._crit_edge855 ]
  %738 = phi i32 [ %.pre1119, %._crit_edge868.loopexit ], [ %721, %._crit_edge855 ]
  %739 = mul nsw i32 %737, %738
  %740 = shl i32 %739, 1
  %741 = or disjoint i32 %740, 1
  %742 = sext i32 %741 to i64
  %743 = getelementptr inbounds float, ptr %58, i64 %742
  %744 = sext i32 %739 to i64
  %gep888 = getelementptr float, ptr %23, i64 %744
  call void @sgemm_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %34, ptr noundef nonnull %3, ptr noundef nonnull %34, ptr noundef nonnull @c_b9, ptr noundef %717, ptr noundef nonnull %9, ptr noundef nonnull %743, ptr noundef nonnull %34, ptr noundef nonnull @c_b10, ptr noundef %gep888, ptr noundef nonnull %34) #6
  %745 = load i32, ptr %3, align 4, !tbaa !5
  %.not680878 = icmp slt i32 %745, 1
  br i1 %.not680878, label %._crit_edge884, label %.lr.ph883

.lr.ph883:                                        ; preds = %._crit_edge868
  %746 = load i32, ptr %34, align 4, !tbaa !5
  %747 = add i32 %746, %529
  %.not681869.not = icmp slt i32 %529, %747
  br i1 %.not681869.not, label %.lr.ph874.preheader, label %._crit_edge884

.lr.ph874.preheader:                              ; preds = %.lr.ph883
  %748 = mul nsw i32 %745, %746
  %749 = sext i32 %529 to i64
  %750 = add nsw i64 %749, 1
  %751 = add i32 %544, %746
  %752 = add nuw i32 %745, 1
  %wide.trip.count1106 = zext i32 %752 to i64
  %753 = shl nsw i64 %749, 3
  %scevgep1300 = getelementptr i8, ptr %scevgep1299, i64 %753
  %754 = shl nuw nsw i64 %wide.trip.count1106, 3
  %755 = add nsw i64 %754, -8
  %756 = mul i64 %755, %505
  %757 = add i32 %746, -1
  %758 = zext i32 %757 to i64
  %759 = shl nuw nsw i64 %758, 3
  %760 = getelementptr i8, ptr %scevgep1301, i64 %756
  %761 = getelementptr i8, ptr %760, i64 %753
  %scevgep1302 = getelementptr i8, ptr %761, i64 %759
  %762 = shl nuw nsw i64 %758, 2
  %scevgep1305 = getelementptr i8, ptr %scevgep1304, i64 %762
  %scevgep1309 = getelementptr i8, ptr %scevgep1308, i64 %762
  %763 = add i32 %746, -1
  %764 = zext i32 %763 to i64
  %765 = add nuw nsw i64 %764, 1
  %766 = add i32 %529, %746
  %min.iters.check1322 = icmp ult i32 %763, 7
  %n.vec1325 = and i64 %765, 8589934588
  %ind.end1326 = add nsw i64 %750, %n.vec1325
  %cmp.n1344 = icmp eq i64 %765, %n.vec1325
  %767 = sub i32 %529, %746
  br label %.lr.ph874

.lr.ph874:                                        ; preds = %.lr.ph874.preheader, %._crit_edge875
  %indvars.iv1103 = phi i64 [ 1, %.lr.ph874.preheader ], [ %indvars.iv.next1104, %._crit_edge875 ]
  %.6881 = phi i64 [ 0, %.lr.ph874.preheader ], [ %indvars.iv.next1091.lcssa, %._crit_edge875 ]
  %.6612880 = phi i32 [ %748, %.lr.ph874.preheader ], [ %798, %._crit_edge875 ]
  %768 = mul nsw i64 %indvars.iv1103, %505
  %sext1123 = shl i64 %.6881, 32
  %769 = ashr exact i64 %sext1123, 32
  %770 = sext i32 %.6612880 to i64
  %invariant.gep1160 = getelementptr %struct.complex, ptr %40, i64 %768
  br i1 %min.iters.check1322, label %scalar.ph1321.preheader, label %vector.memcheck1298

vector.memcheck1298:                              ; preds = %.lr.ph874
  %771 = shl nsw i64 %770, 2
  %scevgep1303 = getelementptr i8, ptr %23, i64 %771
  %scevgep1306 = getelementptr i8, ptr %scevgep1305, i64 %771
  %772 = ashr exact i64 %sext1123, 30
  %scevgep1307 = getelementptr i8, ptr %23, i64 %772
  %scevgep1310 = getelementptr i8, ptr %scevgep1309, i64 %772
  %bound01311 = icmp ult ptr %scevgep1300, %scevgep1306
  %bound11312 = icmp ult ptr %scevgep1303, %scevgep1302
  %found.conflict1313 = and i1 %bound01311, %bound11312
  %bound01315 = icmp ult ptr %scevgep1300, %scevgep1310
  %bound11316 = icmp ult ptr %scevgep1307, %scevgep1302
  %found.conflict1317 = and i1 %bound01315, %bound11316
  %773 = or i1 %found.conflict1317, %stride.check1318
  %conflict.rdx1319 = or i1 %found.conflict1313, %773
  br i1 %conflict.rdx1319, label %scalar.ph1321.preheader, label %vector.ph1323

vector.ph1323:                                    ; preds = %vector.memcheck1298
  %ind.end1328 = add nsw i64 %n.vec1325, %770
  %ind.end1330 = add nsw i64 %769, %n.vec1325
  %774 = getelementptr float, ptr %23, i64 %769
  %invariant.gep1557 = getelementptr float, ptr %23, i64 %770
  %invariant.gep1559 = getelementptr i8, ptr %invariant.gep1160, i64 16
  br label %vector.body1332

vector.body1332:                                  ; preds = %vector.body1332, %vector.ph1323
  %index1333 = phi i64 [ 0, %vector.ph1323 ], [ %index.next1343, %vector.body1332 ]
  %offset.idx1334 = add i64 %750, %index1333
  %775 = getelementptr float, ptr %774, i64 %index1333
  %776 = getelementptr i8, ptr %775, i64 8
  %wide.load1337 = load <2 x float>, ptr %775, align 4, !tbaa !12, !alias.scope !91
  %wide.load1338 = load <2 x float>, ptr %776, align 4, !tbaa !12, !alias.scope !91
  %gep1558 = getelementptr float, ptr %invariant.gep1557, i64 %index1333
  %777 = getelementptr i8, ptr %gep1558, i64 8
  %wide.load1339 = load <2 x float>, ptr %gep1558, align 4, !tbaa !12, !alias.scope !94
  %wide.load1340 = load <2 x float>, ptr %777, align 4, !tbaa !12, !alias.scope !94
  %778 = getelementptr %struct.complex, ptr %invariant.gep1160, i64 %offset.idx1334
  %gep1560 = getelementptr %struct.complex, ptr %invariant.gep1559, i64 %offset.idx1334
  %interleaved.vec1341 = shufflevector <2 x float> %wide.load1337, <2 x float> %wide.load1339, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1341, ptr %778, align 4, !tbaa !12
  %interleaved.vec1342 = shufflevector <2 x float> %wide.load1338, <2 x float> %wide.load1340, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1342, ptr %gep1560, align 4, !tbaa !12
  %index.next1343 = add nuw i64 %index1333, 4
  %779 = icmp eq i64 %index.next1343, %n.vec1325
  br i1 %779, label %middle.block1320, label %vector.body1332, !llvm.loop !96

middle.block1320:                                 ; preds = %vector.body1332
  br i1 %cmp.n1344, label %._crit_edge875, label %scalar.ph1321.preheader

scalar.ph1321.preheader:                          ; preds = %middle.block1320, %vector.memcheck1298, %.lr.ph874
  %indvars.iv1094.ph = phi i64 [ %750, %vector.memcheck1298 ], [ %750, %.lr.ph874 ], [ %ind.end1326, %middle.block1320 ]
  %indvars.iv1092.ph = phi i64 [ %770, %vector.memcheck1298 ], [ %770, %.lr.ph874 ], [ %ind.end1328, %middle.block1320 ]
  %indvars.iv1090.ph = phi i64 [ %769, %vector.memcheck1298 ], [ %769, %.lr.ph874 ], [ %ind.end1330, %middle.block1320 ]
  %780 = trunc i64 %indvars.iv1094.ph to i32
  %781 = add i32 %767, %780
  %782 = and i32 %781, 1
  %lcmp.mod1471.not.not = icmp eq i32 %782, 0
  br i1 %lcmp.mod1471.not.not, label %scalar.ph1321.prol, label %scalar.ph1321.prol.loopexit

scalar.ph1321.prol:                               ; preds = %scalar.ph1321.preheader
  %indvars.iv.next1091.prol = add nsw i64 %indvars.iv1090.ph, 1
  %indvars.iv.next1093.prol = add nsw i64 %indvars.iv1092.ph, 1
  %783 = getelementptr float, ptr %23, i64 %indvars.iv1090.ph
  %784 = load float, ptr %783, align 4, !tbaa !12
  %785 = getelementptr float, ptr %23, i64 %indvars.iv1092.ph
  %786 = load float, ptr %785, align 4, !tbaa !12
  %gep1161.prol = getelementptr %struct.complex, ptr %invariant.gep1160, i64 %indvars.iv1094.ph
  store float %784, ptr %gep1161.prol, align 4, !tbaa !9
  %787 = getelementptr inbounds i8, ptr %gep1161.prol, i64 4
  store float %786, ptr %787, align 4, !tbaa !32
  %indvars.iv.next1095.prol = add nsw i64 %indvars.iv1094.ph, 1
  br label %scalar.ph1321.prol.loopexit

scalar.ph1321.prol.loopexit:                      ; preds = %scalar.ph1321.prol, %scalar.ph1321.preheader
  %indvars.iv.next1091.lcssa1455.unr = phi i64 [ poison, %scalar.ph1321.preheader ], [ %indvars.iv.next1091.prol, %scalar.ph1321.prol ]
  %indvars.iv.next1093.lcssa1454.unr = phi i64 [ poison, %scalar.ph1321.preheader ], [ %indvars.iv.next1093.prol, %scalar.ph1321.prol ]
  %indvars.iv1094.unr = phi i64 [ %indvars.iv1094.ph, %scalar.ph1321.preheader ], [ %indvars.iv.next1095.prol, %scalar.ph1321.prol ]
  %indvars.iv1092.unr = phi i64 [ %indvars.iv1092.ph, %scalar.ph1321.preheader ], [ %indvars.iv.next1093.prol, %scalar.ph1321.prol ]
  %indvars.iv1090.unr = phi i64 [ %indvars.iv1090.ph, %scalar.ph1321.preheader ], [ %indvars.iv.next1091.prol, %scalar.ph1321.prol ]
  %788 = icmp eq i32 %766, %780
  br i1 %788, label %._crit_edge875, label %scalar.ph1321

scalar.ph1321:                                    ; preds = %scalar.ph1321.prol.loopexit, %scalar.ph1321
  %indvars.iv1094 = phi i64 [ %indvars.iv.next1095.1, %scalar.ph1321 ], [ %indvars.iv1094.unr, %scalar.ph1321.prol.loopexit ]
  %indvars.iv1092 = phi i64 [ %indvars.iv.next1093.1, %scalar.ph1321 ], [ %indvars.iv1092.unr, %scalar.ph1321.prol.loopexit ]
  %indvars.iv1090 = phi i64 [ %indvars.iv.next1091.1, %scalar.ph1321 ], [ %indvars.iv1090.unr, %scalar.ph1321.prol.loopexit ]
  %789 = getelementptr float, ptr %23, i64 %indvars.iv1090
  %790 = load float, ptr %789, align 4, !tbaa !12
  %791 = getelementptr float, ptr %23, i64 %indvars.iv1092
  %792 = load float, ptr %791, align 4, !tbaa !12
  %gep1161 = getelementptr %struct.complex, ptr %invariant.gep1160, i64 %indvars.iv1094
  store float %790, ptr %gep1161, align 4, !tbaa !9
  %793 = getelementptr inbounds i8, ptr %gep1161, i64 4
  store float %792, ptr %793, align 4, !tbaa !32
  %indvars.iv.next1091.1 = add nsw i64 %indvars.iv1090, 2
  %indvars.iv.next1093.1 = add nsw i64 %indvars.iv1092, 2
  %gep1562 = getelementptr float, ptr %invariant.gep1561, i64 %indvars.iv1090
  %794 = load float, ptr %gep1562, align 4, !tbaa !12
  %gep1564 = getelementptr float, ptr %invariant.gep1563, i64 %indvars.iv1092
  %795 = load float, ptr %gep1564, align 4, !tbaa !12
  %796 = getelementptr %struct.complex, ptr %invariant.gep1160, i64 %indvars.iv1094
  %gep1161.1 = getelementptr i8, ptr %796, i64 8
  store float %794, ptr %gep1161.1, align 4, !tbaa !9
  %797 = getelementptr i8, ptr %796, i64 12
  store float %795, ptr %797, align 4, !tbaa !32
  %indvars.iv.next1095.1 = add nsw i64 %indvars.iv1094, 2
  %lftr.wideiv1101.1 = trunc i64 %indvars.iv.next1095.1 to i32
  %exitcond1102.not.1 = icmp eq i32 %751, %lftr.wideiv1101.1
  br i1 %exitcond1102.not.1, label %._crit_edge875, label %scalar.ph1321, !llvm.loop !97

._crit_edge875:                                   ; preds = %scalar.ph1321.prol.loopexit, %scalar.ph1321, %middle.block1320
  %indvars.iv.next1091.lcssa = phi i64 [ %ind.end1330, %middle.block1320 ], [ %indvars.iv.next1091.lcssa1455.unr, %scalar.ph1321.prol.loopexit ], [ %indvars.iv.next1091.1, %scalar.ph1321 ]
  %indvars.iv.next1093.lcssa = phi i64 [ %ind.end1328, %middle.block1320 ], [ %indvars.iv.next1093.lcssa1454.unr, %scalar.ph1321.prol.loopexit ], [ %indvars.iv.next1093.1, %scalar.ph1321 ]
  %798 = trunc nsw i64 %indvars.iv.next1093.lcssa to i32
  %indvars.iv.next1104 = add nuw nsw i64 %indvars.iv1103, 1
  %exitcond1107.not = icmp eq i64 %indvars.iv.next1104, %wide.trip.count1106
  br i1 %exitcond1107.not, label %._crit_edge884, label %.lr.ph874, !llvm.loop !98

._crit_edge884:                                   ; preds = %._crit_edge875, %.lr.ph883, %._crit_edge868
  %indvars.iv.next1109 = add nsw i64 %indvars.iv1108, 1
  %.not674.not = icmp slt i64 %indvars.iv1108, %507
  br i1 %.not674.not, label %526, label %.loopexit, !llvm.loop !99

.loopexit:                                        ; preds = %._crit_edge782, %._crit_edge884, %._crit_edge776, %._crit_edge800, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  ret void
}

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

declare i32 @xerbla_(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @slasdt_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sgemm_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden <2 x float> @Cf(ptr noundef) local_unnamed_addr #3

declare void @ccopy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @pow_ii(i32 noundef, i32 noundef) local_unnamed_addr #4

declare void @clals0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"", !11, i64 0, !11, i64 4}
!11 = !{!"float", !7, i64 0}
!12 = !{!11, !11, i64 0}
!13 = !{!14}
!14 = distinct !{!14, !15}
!15 = distinct !{!15, !"LVerDomain"}
!16 = !{!17}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !19, !20, !21}
!19 = !{!"llvm.loop.mustprogress"}
!20 = !{!"llvm.loop.isvectorized", i32 1}
!21 = !{!"llvm.loop.unroll.runtime.disable"}
!22 = distinct !{!22, !19, !20}
!23 = distinct !{!23, !19}
!24 = distinct !{!24, !19}
!25 = distinct !{!25, !19}
!26 = !{!27}
!27 = distinct !{!27, !28}
!28 = distinct !{!28, !"LVerDomain"}
!29 = !{!30}
!30 = distinct !{!30, !28}
!31 = distinct !{!31, !19, !20, !21}
!32 = !{!10, !11, i64 4}
!33 = distinct !{!33, !19, !20}
!34 = distinct !{!34, !19}
!35 = !{!36}
!36 = distinct !{!36, !37}
!37 = distinct !{!37, !"LVerDomain"}
!38 = !{!39}
!39 = distinct !{!39, !37}
!40 = distinct !{!40, !19, !20, !21}
!41 = distinct !{!41, !42}
!42 = !{!"llvm.loop.unroll.disable"}
!43 = distinct !{!43, !19, !20}
!44 = distinct !{!44, !19}
!45 = distinct !{!45, !19}
!46 = distinct !{!46, !19}
!47 = !{!48}
!48 = distinct !{!48, !49}
!49 = distinct !{!49, !"LVerDomain"}
!50 = !{!51}
!51 = distinct !{!51, !49}
!52 = distinct !{!52, !19, !20, !21}
!53 = distinct !{!53, !19, !20}
!54 = distinct !{!54, !19}
!55 = distinct !{!55, !19}
!56 = distinct !{!56, !19}
!57 = distinct !{!57, !19}
!58 = distinct !{!58, !19}
!59 = distinct !{!59, !19}
!60 = distinct !{!60, !19}
!61 = !{!62}
!62 = distinct !{!62, !63}
!63 = distinct !{!63, !"LVerDomain"}
!64 = !{!65}
!65 = distinct !{!65, !63}
!66 = distinct !{!66, !19, !20, !21}
!67 = distinct !{!67, !42}
!68 = distinct !{!68, !19, !20}
!69 = distinct !{!69, !19}
!70 = distinct !{!70, !19}
!71 = distinct !{!71, !19}
!72 = !{!73}
!73 = distinct !{!73, !74}
!74 = distinct !{!74, !"LVerDomain"}
!75 = !{!76}
!76 = distinct !{!76, !74}
!77 = distinct !{!77, !19, !20, !21}
!78 = distinct !{!78, !19, !20}
!79 = distinct !{!79, !19}
!80 = !{!81}
!81 = distinct !{!81, !82}
!82 = distinct !{!82, !"LVerDomain"}
!83 = !{!84}
!84 = distinct !{!84, !82}
!85 = distinct !{!85, !19, !20, !21}
!86 = distinct !{!86, !42}
!87 = distinct !{!87, !19, !20}
!88 = distinct !{!88, !19}
!89 = distinct !{!89, !19}
!90 = distinct !{!90, !19}
!91 = !{!92}
!92 = distinct !{!92, !93}
!93 = distinct !{!93, !"LVerDomain"}
!94 = !{!95}
!95 = distinct !{!95, !93}
!96 = distinct !{!96, !19, !20, !21}
!97 = distinct !{!97, !19, !20}
!98 = distinct !{!98, !19}
!99 = distinct !{!99, !19}


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