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

; 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 [8 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b1 = external hidden global %struct.complex, align 4
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c_b10 = external hidden global float, align 4
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b35 = external hidden global float, align 4
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @clalsd_(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) #0 {
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca float, align 4
  %38 = alloca %struct.complex, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca float, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca float, 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 float, align 4
  %70 = alloca i32, align 4
  %71 = alloca float, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca float, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca float, align 4
  %84 = alloca i32, align 4
  %85 = alloca float, align 4
  %86 = alloca i32, align 4
  %87 = alloca { float, float }, align 4
  %88 = alloca { float, float }, align 4
  %89 = alloca { float, float }, align 4
  %90 = alloca { float, float }, align 4
  store ptr %0, ptr %15, align 8, !tbaa !5
  store ptr %1, ptr %16, align 8, !tbaa !5
  store ptr %2, ptr %17, align 8, !tbaa !5
  store ptr %3, ptr %18, align 8, !tbaa !5
  store ptr %4, ptr %19, align 8, !tbaa !5
  store ptr %5, ptr %20, align 8, !tbaa !5
  store ptr %6, ptr %21, align 8, !tbaa !5
  store ptr %7, ptr %22, align 8, !tbaa !5
  store ptr %8, ptr %23, align 8, !tbaa !5
  store ptr %9, ptr %24, align 8, !tbaa !5
  store ptr %10, ptr %25, align 8, !tbaa !5
  store ptr %11, ptr %26, align 8, !tbaa !5
  store ptr %12, ptr %27, align 8, !tbaa !5
  store ptr %13, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #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 4, 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
  %91 = load ptr, ptr %19, align 8, !tbaa !5
  %92 = getelementptr inbounds float, ptr %91, i32 -1
  store ptr %92, ptr %19, align 8, !tbaa !5
  %93 = load ptr, ptr %20, align 8, !tbaa !5
  %94 = getelementptr inbounds float, ptr %93, i32 -1
  store ptr %94, ptr %20, align 8, !tbaa !5
  %95 = load ptr, ptr %22, align 8, !tbaa !5
  %96 = load i32, ptr %95, align 4, !tbaa !9
  store i32 %96, ptr %29, align 4, !tbaa !9
  %97 = load i32, ptr %29, align 4, !tbaa !9
  %98 = mul nsw i32 %97, 1
  %99 = add nsw i32 1, %98
  store i32 %99, ptr %30, align 4, !tbaa !9
  %100 = load i32, ptr %30, align 4, !tbaa !9
  %101 = load ptr, ptr %21, align 8, !tbaa !5
  %102 = sext i32 %100 to i64
  %103 = sub i64 0, %102
  %104 = getelementptr inbounds %struct.complex, ptr %101, i64 %103
  store ptr %104, ptr %21, align 8, !tbaa !5
  %105 = load ptr, ptr %25, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.complex, ptr %105, i32 -1
  store ptr %106, ptr %25, align 8, !tbaa !5
  %107 = load ptr, ptr %26, align 8, !tbaa !5
  %108 = getelementptr inbounds float, ptr %107, i32 -1
  store ptr %108, ptr %26, align 8, !tbaa !5
  %109 = load ptr, ptr %27, align 8, !tbaa !5
  %110 = getelementptr inbounds i32, ptr %109, i32 -1
  store ptr %110, ptr %27, align 8, !tbaa !5
  %111 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 0, ptr %111, align 4, !tbaa !9
  %112 = load ptr, ptr %17, align 8, !tbaa !5
  %113 = load i32, ptr %112, align 4, !tbaa !9
  %114 = icmp slt i32 %113, 0
  br i1 %114, label %115, label %117

115:                                              ; preds = %14
  %116 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -3, ptr %116, align 4, !tbaa !9
  br label %137

117:                                              ; preds = %14
  %118 = load ptr, ptr %18, align 8, !tbaa !5
  %119 = load i32, ptr %118, align 4, !tbaa !9
  %120 = icmp slt i32 %119, 1
  br i1 %120, label %121, label %123

121:                                              ; preds = %117
  %122 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -4, ptr %122, align 4, !tbaa !9
  br label %136

123:                                              ; preds = %117
  %124 = load ptr, ptr %22, align 8, !tbaa !5
  %125 = load i32, ptr %124, align 4, !tbaa !9
  %126 = icmp slt i32 %125, 1
  br i1 %126, label %133, label %127

127:                                              ; preds = %123
  %128 = load ptr, ptr %22, align 8, !tbaa !5
  %129 = load i32, ptr %128, align 4, !tbaa !9
  %130 = load ptr, ptr %17, align 8, !tbaa !5
  %131 = load i32, ptr %130, align 4, !tbaa !9
  %132 = icmp slt i32 %129, %131
  br i1 %132, label %133, label %135

133:                                              ; preds = %127, %123
  %134 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -8, ptr %134, align 4, !tbaa !9
  br label %135

135:                                              ; preds = %133, %127
  br label %136

136:                                              ; preds = %135, %121
  br label %137

137:                                              ; preds = %136, %115
  %138 = load ptr, ptr %28, align 8, !tbaa !5
  %139 = load i32, ptr %138, align 4, !tbaa !9
  %140 = icmp ne i32 %139, 0
  br i1 %140, label %141, label %146

141:                                              ; preds = %137
  %142 = load ptr, ptr %28, align 8, !tbaa !5
  %143 = load i32, ptr %142, align 4, !tbaa !9
  %144 = sub nsw i32 0, %143
  store i32 %144, ptr %31, align 4, !tbaa !9
  %145 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %31, i32 noundef 6)
  store i32 1, ptr %86, align 4
  br label %2185

146:                                              ; preds = %137
  %147 = call float @slamch_(ptr noundef @.str.1)
  store float %147, ptr %83, align 4, !tbaa !11
  %148 = load ptr, ptr %23, align 8, !tbaa !5
  %149 = load float, ptr %148, align 4, !tbaa !11
  %150 = fcmp ole float %149, 0.000000e+00
  br i1 %150, label %155, label %151

151:                                              ; preds = %146
  %152 = load ptr, ptr %23, align 8, !tbaa !5
  %153 = load float, ptr %152, align 4, !tbaa !11
  %154 = fcmp oge float %153, 1.000000e+00
  br i1 %154, label %155, label %157

155:                                              ; preds = %151, %146
  %156 = load float, ptr %83, align 4, !tbaa !11
  store float %156, ptr %41, align 4, !tbaa !11
  br label %160

157:                                              ; preds = %151
  %158 = load ptr, ptr %23, align 8, !tbaa !5
  %159 = load float, ptr %158, align 4, !tbaa !11
  store float %159, ptr %41, align 4, !tbaa !11
  br label %160

160:                                              ; preds = %157, %155
  %161 = load ptr, ptr %24, align 8, !tbaa !5
  store i32 0, ptr %161, align 4, !tbaa !9
  %162 = load ptr, ptr %17, align 8, !tbaa !5
  %163 = load i32, ptr %162, align 4, !tbaa !9
  %164 = icmp eq i32 %163, 0
  br i1 %164, label %165, label %166

165:                                              ; preds = %160
  store i32 1, ptr %86, align 4
  br label %2185

166:                                              ; preds = %160
  %167 = load ptr, ptr %17, align 8, !tbaa !5
  %168 = load i32, ptr %167, align 4, !tbaa !9
  %169 = icmp eq i32 %168, 1
  br i1 %169, label %170, label %211

170:                                              ; preds = %166
  %171 = load ptr, ptr %19, align 8, !tbaa !5
  %172 = getelementptr inbounds float, ptr %171, i64 1
  %173 = load float, ptr %172, align 4, !tbaa !11
  %174 = fcmp oeq float %173, 0.000000e+00
  br i1 %174, label %175, label %182

175:                                              ; preds = %170
  %176 = load ptr, ptr %18, align 8, !tbaa !5
  %177 = load ptr, ptr %21, align 8, !tbaa !5
  %178 = load i32, ptr %30, align 4, !tbaa !9
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds %struct.complex, ptr %177, i64 %179
  %181 = load ptr, ptr %22, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.2, ptr noundef @c__1, ptr noundef %176, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %180, ptr noundef %181)
  br label %210

182:                                              ; preds = %170
  %183 = load ptr, ptr %24, align 8, !tbaa !5
  store i32 1, ptr %183, align 4, !tbaa !9
  %184 = load ptr, ptr %19, align 8, !tbaa !5
  %185 = getelementptr inbounds float, ptr %184, i64 1
  %186 = load ptr, ptr %18, align 8, !tbaa !5
  %187 = load ptr, ptr %21, align 8, !tbaa !5
  %188 = load i32, ptr %30, align 4, !tbaa !9
  %189 = sext i32 %188 to i64
  %190 = getelementptr inbounds %struct.complex, ptr %187, i64 %189
  %191 = load ptr, ptr %22, align 8, !tbaa !5
  %192 = load ptr, ptr %28, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %185, ptr noundef @c_b10, ptr noundef @c__1, ptr noundef %186, ptr noundef %190, ptr noundef %191, ptr noundef %192)
  %193 = load ptr, ptr %19, align 8, !tbaa !5
  %194 = getelementptr inbounds float, ptr %193, i64 1
  %195 = load float, ptr %194, align 4, !tbaa !11
  %196 = fcmp oge float %195, 0.000000e+00
  br i1 %196, label %197, label %201

197:                                              ; preds = %182
  %198 = load ptr, ptr %19, align 8, !tbaa !5
  %199 = getelementptr inbounds float, ptr %198, i64 1
  %200 = load float, ptr %199, align 4, !tbaa !11
  br label %206

201:                                              ; preds = %182
  %202 = load ptr, ptr %19, align 8, !tbaa !5
  %203 = getelementptr inbounds float, ptr %202, i64 1
  %204 = load float, ptr %203, align 4, !tbaa !11
  %205 = fneg float %204
  br label %206

206:                                              ; preds = %201, %197
  %207 = phi float [ %200, %197 ], [ %205, %201 ]
  %208 = load ptr, ptr %19, align 8, !tbaa !5
  %209 = getelementptr inbounds float, ptr %208, i64 1
  store float %207, ptr %209, align 4, !tbaa !11
  br label %210

210:                                              ; preds = %206, %175
  store i32 1, ptr %86, align 4
  br label %2185

211:                                              ; preds = %166
  br label %212

212:                                              ; preds = %211
  %213 = load ptr, ptr %15, align 8, !tbaa !5
  %214 = load i8, ptr %213, align 1, !tbaa !13
  %215 = zext i8 %214 to i32
  %216 = icmp eq i32 %215, 76
  br i1 %216, label %217, label %358

217:                                              ; preds = %212
  %218 = load ptr, ptr %17, align 8, !tbaa !5
  %219 = load i32, ptr %218, align 4, !tbaa !9
  %220 = sub nsw i32 %219, 1
  store i32 %220, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !9
  br label %221

221:                                              ; preds = %296, %217
  %222 = load i32, ptr %52, align 4, !tbaa !9
  %223 = load i32, ptr %31, align 4, !tbaa !9
  %224 = icmp sle i32 %222, %223
  br i1 %224, label %225, label %299

225:                                              ; preds = %221
  %226 = load ptr, ptr %19, align 8, !tbaa !5
  %227 = load i32, ptr %52, align 4, !tbaa !9
  %228 = sext i32 %227 to i64
  %229 = getelementptr inbounds float, ptr %226, i64 %228
  %230 = load ptr, ptr %20, align 8, !tbaa !5
  %231 = load i32, ptr %52, align 4, !tbaa !9
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds float, ptr %230, i64 %232
  call void @slartg_(ptr noundef %229, ptr noundef %233, ptr noundef %69, ptr noundef %71, ptr noundef %55)
  %234 = load float, ptr %55, align 4, !tbaa !11
  %235 = load ptr, ptr %19, align 8, !tbaa !5
  %236 = load i32, ptr %52, align 4, !tbaa !9
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds float, ptr %235, i64 %237
  store float %234, ptr %238, align 4, !tbaa !11
  %239 = load float, ptr %71, align 4, !tbaa !11
  %240 = load ptr, ptr %19, align 8, !tbaa !5
  %241 = load i32, ptr %52, align 4, !tbaa !9
  %242 = add nsw i32 %241, 1
  %243 = sext i32 %242 to i64
  %244 = getelementptr inbounds float, ptr %240, i64 %243
  %245 = load float, ptr %244, align 4, !tbaa !11
  %246 = fmul float %239, %245
  %247 = load ptr, ptr %20, align 8, !tbaa !5
  %248 = load i32, ptr %52, align 4, !tbaa !9
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds float, ptr %247, i64 %249
  store float %246, ptr %250, align 4, !tbaa !11
  %251 = load float, ptr %69, align 4, !tbaa !11
  %252 = load ptr, ptr %19, align 8, !tbaa !5
  %253 = load i32, ptr %52, align 4, !tbaa !9
  %254 = add nsw i32 %253, 1
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds float, ptr %252, i64 %255
  %257 = load float, ptr %256, align 4, !tbaa !11
  %258 = fmul float %251, %257
  %259 = load ptr, ptr %19, align 8, !tbaa !5
  %260 = load i32, ptr %52, align 4, !tbaa !9
  %261 = add nsw i32 %260, 1
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds float, ptr %259, i64 %262
  store float %258, ptr %263, align 4, !tbaa !11
  %264 = load ptr, ptr %18, align 8, !tbaa !5
  %265 = load i32, ptr %264, align 4, !tbaa !9
  %266 = icmp eq i32 %265, 1
  br i1 %266, label %267, label %281

267:                                              ; preds = %225
  %268 = load ptr, ptr %21, align 8, !tbaa !5
  %269 = load i32, ptr %52, align 4, !tbaa !9
  %270 = load i32, ptr %29, align 4, !tbaa !9
  %271 = add nsw i32 %269, %270
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds %struct.complex, ptr %268, i64 %272
  %274 = load ptr, ptr %21, align 8, !tbaa !5
  %275 = load i32, ptr %52, align 4, !tbaa !9
  %276 = add nsw i32 %275, 1
  %277 = load i32, ptr %29, align 4, !tbaa !9
  %278 = add nsw i32 %276, %277
  %279 = sext i32 %278 to i64
  %280 = getelementptr inbounds %struct.complex, ptr %274, i64 %279
  call void @csrot_(ptr noundef @c__1, ptr noundef %273, ptr noundef @c__1, ptr noundef %280, ptr noundef @c__1, ptr noundef %69, ptr noundef %71)
  br label %295

281:                                              ; preds = %225
  %282 = load float, ptr %69, align 4, !tbaa !11
  %283 = load ptr, ptr %26, align 8, !tbaa !5
  %284 = load i32, ptr %52, align 4, !tbaa !9
  %285 = shl i32 %284, 1
  %286 = sub nsw i32 %285, 1
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds float, ptr %283, i64 %287
  store float %282, ptr %288, align 4, !tbaa !11
  %289 = load float, ptr %71, align 4, !tbaa !11
  %290 = load ptr, ptr %26, align 8, !tbaa !5
  %291 = load i32, ptr %52, align 4, !tbaa !9
  %292 = mul nsw i32 %291, 2
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds float, ptr %290, i64 %293
  store float %289, ptr %294, align 4, !tbaa !11
  br label %295

295:                                              ; preds = %281, %267
  br label %296

296:                                              ; preds = %295
  %297 = load i32, ptr %52, align 4, !tbaa !9
  %298 = add nsw i32 %297, 1
  store i32 %298, ptr %52, align 4, !tbaa !9
  br label %221, !llvm.loop !14

299:                                              ; preds = %221
  %300 = load ptr, ptr %18, align 8, !tbaa !5
  %301 = load i32, ptr %300, align 4, !tbaa !9
  %302 = icmp sgt i32 %301, 1
  br i1 %302, label %303, label %357

303:                                              ; preds = %299
  %304 = load ptr, ptr %18, align 8, !tbaa !5
  %305 = load i32, ptr %304, align 4, !tbaa !9
  store i32 %305, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !9
  br label %306

306:                                              ; preds = %353, %303
  %307 = load i32, ptr %52, align 4, !tbaa !9
  %308 = load i32, ptr %31, align 4, !tbaa !9
  %309 = icmp sle i32 %307, %308
  br i1 %309, label %310, label %356

310:                                              ; preds = %306
  %311 = load ptr, ptr %17, align 8, !tbaa !5
  %312 = load i32, ptr %311, align 4, !tbaa !9
  %313 = sub nsw i32 %312, 1
  store i32 %313, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %53, align 4, !tbaa !9
  br label %314

314:                                              ; preds = %349, %310
  %315 = load i32, ptr %53, align 4, !tbaa !9
  %316 = load i32, ptr %32, align 4, !tbaa !9
  %317 = icmp sle i32 %315, %316
  br i1 %317, label %318, label %352

318:                                              ; preds = %314
  %319 = load ptr, ptr %26, align 8, !tbaa !5
  %320 = load i32, ptr %53, align 4, !tbaa !9
  %321 = shl i32 %320, 1
  %322 = sub nsw i32 %321, 1
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds float, ptr %319, i64 %323
  %325 = load float, ptr %324, align 4, !tbaa !11
  store float %325, ptr %69, align 4, !tbaa !11
  %326 = load ptr, ptr %26, align 8, !tbaa !5
  %327 = load i32, ptr %53, align 4, !tbaa !9
  %328 = mul nsw i32 %327, 2
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds float, ptr %326, i64 %329
  %331 = load float, ptr %330, align 4, !tbaa !11
  store float %331, ptr %71, align 4, !tbaa !11
  %332 = load ptr, ptr %21, align 8, !tbaa !5
  %333 = load i32, ptr %53, align 4, !tbaa !9
  %334 = load i32, ptr %52, align 4, !tbaa !9
  %335 = load i32, ptr %29, align 4, !tbaa !9
  %336 = mul nsw i32 %334, %335
  %337 = add nsw i32 %333, %336
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds %struct.complex, ptr %332, i64 %338
  %340 = load ptr, ptr %21, align 8, !tbaa !5
  %341 = load i32, ptr %53, align 4, !tbaa !9
  %342 = add nsw i32 %341, 1
  %343 = load i32, ptr %52, align 4, !tbaa !9
  %344 = load i32, ptr %29, align 4, !tbaa !9
  %345 = mul nsw i32 %343, %344
  %346 = add nsw i32 %342, %345
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds %struct.complex, ptr %340, i64 %347
  call void @csrot_(ptr noundef @c__1, ptr noundef %339, ptr noundef @c__1, ptr noundef %348, ptr noundef @c__1, ptr noundef %69, ptr noundef %71)
  br label %349

349:                                              ; preds = %318
  %350 = load i32, ptr %53, align 4, !tbaa !9
  %351 = add nsw i32 %350, 1
  store i32 %351, ptr %53, align 4, !tbaa !9
  br label %314, !llvm.loop !16

352:                                              ; preds = %314
  br label %353

353:                                              ; preds = %352
  %354 = load i32, ptr %52, align 4, !tbaa !9
  %355 = add nsw i32 %354, 1
  store i32 %355, ptr %52, align 4, !tbaa !9
  br label %306, !llvm.loop !17

356:                                              ; preds = %306
  br label %357

357:                                              ; preds = %356, %299
  br label %358

358:                                              ; preds = %357, %212
  %359 = load ptr, ptr %17, align 8, !tbaa !5
  %360 = load i32, ptr %359, align 4, !tbaa !9
  %361 = sub nsw i32 %360, 1
  store i32 %361, ptr %78, align 4, !tbaa !9
  %362 = load ptr, ptr %17, align 8, !tbaa !5
  %363 = load ptr, ptr %19, align 8, !tbaa !5
  %364 = getelementptr inbounds float, ptr %363, i64 1
  %365 = load ptr, ptr %20, align 8, !tbaa !5
  %366 = getelementptr inbounds float, ptr %365, i64 1
  %367 = call float @slanst_(ptr noundef @.str.4, ptr noundef %362, ptr noundef %364, ptr noundef %366)
  store float %367, ptr %75, align 4, !tbaa !11
  %368 = load float, ptr %75, align 4, !tbaa !11
  %369 = fcmp oeq float %368, 0.000000e+00
  br i1 %369, label %370, label %378

370:                                              ; preds = %358
  %371 = load ptr, ptr %17, align 8, !tbaa !5
  %372 = load ptr, ptr %18, align 8, !tbaa !5
  %373 = load ptr, ptr %21, align 8, !tbaa !5
  %374 = load i32, ptr %30, align 4, !tbaa !9
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds %struct.complex, ptr %373, i64 %375
  %377 = load ptr, ptr %22, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.2, ptr noundef %371, ptr noundef %372, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %376, ptr noundef %377)
  store i32 1, ptr %86, align 4
  br label %2185

378:                                              ; preds = %358
  %379 = load ptr, ptr %17, align 8, !tbaa !5
  %380 = load ptr, ptr %19, align 8, !tbaa !5
  %381 = getelementptr inbounds float, ptr %380, i64 1
  %382 = load ptr, ptr %17, align 8, !tbaa !5
  %383 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %75, ptr noundef @c_b10, ptr noundef %379, ptr noundef @c__1, ptr noundef %381, ptr noundef %382, ptr noundef %383)
  %384 = load ptr, ptr %20, align 8, !tbaa !5
  %385 = getelementptr inbounds float, ptr %384, i64 1
  %386 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %75, ptr noundef @c_b10, ptr noundef %78, ptr noundef @c__1, ptr noundef %385, ptr noundef %78, ptr noundef %386)
  %387 = load ptr, ptr %17, align 8, !tbaa !5
  %388 = load i32, ptr %387, align 4, !tbaa !9
  %389 = load ptr, ptr %16, align 8, !tbaa !5
  %390 = load i32, ptr %389, align 4, !tbaa !9
  %391 = icmp sle i32 %388, %390
  br i1 %391, label %392, label %914

392:                                              ; preds = %378
  store i32 1, ptr %50, align 4, !tbaa !9
  %393 = load i32, ptr %50, align 4, !tbaa !9
  %394 = load ptr, ptr %17, align 8, !tbaa !5
  %395 = load i32, ptr %394, align 4, !tbaa !9
  %396 = load ptr, ptr %17, align 8, !tbaa !5
  %397 = load i32, ptr %396, align 4, !tbaa !9
  %398 = mul nsw i32 %395, %397
  %399 = add nsw i32 %393, %398
  store i32 %399, ptr %66, align 4, !tbaa !9
  %400 = load i32, ptr %66, align 4, !tbaa !9
  %401 = load ptr, ptr %17, align 8, !tbaa !5
  %402 = load i32, ptr %401, align 4, !tbaa !9
  %403 = load ptr, ptr %17, align 8, !tbaa !5
  %404 = load i32, ptr %403, align 4, !tbaa !9
  %405 = mul nsw i32 %402, %404
  %406 = add nsw i32 %400, %405
  store i32 %406, ptr %80, align 4, !tbaa !9
  %407 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %407, ptr %64, align 4, !tbaa !9
  %408 = load i32, ptr %64, align 4, !tbaa !9
  %409 = load ptr, ptr %17, align 8, !tbaa !5
  %410 = load i32, ptr %409, align 4, !tbaa !9
  %411 = load ptr, ptr %18, align 8, !tbaa !5
  %412 = load i32, ptr %411, align 4, !tbaa !9
  %413 = mul nsw i32 %410, %412
  %414 = add nsw i32 %408, %413
  store i32 %414, ptr %61, align 4, !tbaa !9
  %415 = load i32, ptr %61, align 4, !tbaa !9
  %416 = load ptr, ptr %17, align 8, !tbaa !5
  %417 = load i32, ptr %416, align 4, !tbaa !9
  %418 = load ptr, ptr %18, align 8, !tbaa !5
  %419 = load i32, ptr %418, align 4, !tbaa !9
  %420 = mul nsw i32 %417, %419
  %421 = add nsw i32 %415, %420
  store i32 %421, ptr %43, align 4, !tbaa !9
  %422 = load ptr, ptr %17, align 8, !tbaa !5
  %423 = load ptr, ptr %17, align 8, !tbaa !5
  %424 = load ptr, ptr %26, align 8, !tbaa !5
  %425 = load i32, ptr %50, align 4, !tbaa !9
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds float, ptr %424, i64 %426
  %428 = load ptr, ptr %17, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.2, ptr noundef %422, ptr noundef %423, ptr noundef @c_b35, ptr noundef @c_b10, ptr noundef %427, ptr noundef %428)
  %429 = load ptr, ptr %17, align 8, !tbaa !5
  %430 = load ptr, ptr %17, align 8, !tbaa !5
  %431 = load ptr, ptr %26, align 8, !tbaa !5
  %432 = load i32, ptr %66, align 4, !tbaa !9
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds float, ptr %431, i64 %433
  %435 = load ptr, ptr %17, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.2, ptr noundef %429, ptr noundef %430, ptr noundef @c_b35, ptr noundef @c_b10, ptr noundef %434, ptr noundef %435)
  %436 = load ptr, ptr %17, align 8, !tbaa !5
  %437 = load ptr, ptr %17, align 8, !tbaa !5
  %438 = load ptr, ptr %17, align 8, !tbaa !5
  %439 = load ptr, ptr %19, align 8, !tbaa !5
  %440 = getelementptr inbounds float, ptr %439, i64 1
  %441 = load ptr, ptr %20, align 8, !tbaa !5
  %442 = getelementptr inbounds float, ptr %441, i64 1
  %443 = load ptr, ptr %26, align 8, !tbaa !5
  %444 = load i32, ptr %66, align 4, !tbaa !9
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds float, ptr %443, i64 %445
  %447 = load ptr, ptr %17, align 8, !tbaa !5
  %448 = load ptr, ptr %26, align 8, !tbaa !5
  %449 = load i32, ptr %50, align 4, !tbaa !9
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds float, ptr %448, i64 %450
  %452 = load ptr, ptr %17, align 8, !tbaa !5
  %453 = load ptr, ptr %26, align 8, !tbaa !5
  %454 = load i32, ptr %80, align 4, !tbaa !9
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds float, ptr %453, i64 %455
  %457 = load ptr, ptr %26, align 8, !tbaa !5
  %458 = load i32, ptr %80, align 4, !tbaa !9
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds float, ptr %457, i64 %459
  %461 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasdq_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef %436, ptr noundef %437, ptr noundef %438, ptr noundef @c__0, ptr noundef %440, ptr noundef %442, ptr noundef %446, ptr noundef %447, ptr noundef %451, ptr noundef %452, ptr noundef %456, ptr noundef @c__1, ptr noundef %460, ptr noundef %461)
  %462 = load ptr, ptr %28, align 8, !tbaa !5
  %463 = load i32, ptr %462, align 4, !tbaa !9
  %464 = icmp ne i32 %463, 0
  br i1 %464, label %465, label %466

465:                                              ; preds = %392
  store i32 1, ptr %86, align 4
  br label %2185

466:                                              ; preds = %392
  %467 = load i32, ptr %43, align 4, !tbaa !9
  %468 = sub nsw i32 %467, 1
  store i32 %468, ptr %53, align 4, !tbaa !9
  %469 = load ptr, ptr %18, align 8, !tbaa !5
  %470 = load i32, ptr %469, align 4, !tbaa !9
  store i32 %470, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %471

471:                                              ; preds = %504, %466
  %472 = load i32, ptr %42, align 4, !tbaa !9
  %473 = load i32, ptr %31, align 4, !tbaa !9
  %474 = icmp sle i32 %472, %473
  br i1 %474, label %475, label %507

475:                                              ; preds = %471
  %476 = load ptr, ptr %17, align 8, !tbaa !5
  %477 = load i32, ptr %476, align 4, !tbaa !9
  store i32 %477, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %478

478:                                              ; preds = %500, %475
  %479 = load i32, ptr %49, align 4, !tbaa !9
  %480 = load i32, ptr %32, align 4, !tbaa !9
  %481 = icmp sle i32 %479, %480
  br i1 %481, label %482, label %503

482:                                              ; preds = %478
  %483 = load i32, ptr %53, align 4, !tbaa !9
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr %53, align 4, !tbaa !9
  %485 = load i32, ptr %49, align 4, !tbaa !9
  %486 = load i32, ptr %42, align 4, !tbaa !9
  %487 = load i32, ptr %29, align 4, !tbaa !9
  %488 = mul nsw i32 %486, %487
  %489 = add nsw i32 %485, %488
  store i32 %489, ptr %33, align 4, !tbaa !9
  %490 = load ptr, ptr %21, align 8, !tbaa !5
  %491 = load i32, ptr %33, align 4, !tbaa !9
  %492 = sext i32 %491 to i64
  %493 = getelementptr inbounds %struct.complex, ptr %490, i64 %492
  %494 = getelementptr inbounds %struct.complex, ptr %493, i32 0, i32 0
  %495 = load float, ptr %494, align 4, !tbaa !18
  %496 = load ptr, ptr %26, align 8, !tbaa !5
  %497 = load i32, ptr %53, align 4, !tbaa !9
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds float, ptr %496, i64 %498
  store float %495, ptr %499, align 4, !tbaa !11
  br label %500

500:                                              ; preds = %482
  %501 = load i32, ptr %49, align 4, !tbaa !9
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr %49, align 4, !tbaa !9
  br label %478, !llvm.loop !20

503:                                              ; preds = %478
  br label %504

504:                                              ; preds = %503
  %505 = load i32, ptr %42, align 4, !tbaa !9
  %506 = add nsw i32 %505, 1
  store i32 %506, ptr %42, align 4, !tbaa !9
  br label %471, !llvm.loop !21

507:                                              ; preds = %471
  %508 = load ptr, ptr %17, align 8, !tbaa !5
  %509 = load ptr, ptr %18, align 8, !tbaa !5
  %510 = load ptr, ptr %17, align 8, !tbaa !5
  %511 = load ptr, ptr %26, align 8, !tbaa !5
  %512 = load i32, ptr %50, align 4, !tbaa !9
  %513 = sext i32 %512 to i64
  %514 = getelementptr inbounds float, ptr %511, i64 %513
  %515 = load ptr, ptr %17, align 8, !tbaa !5
  %516 = load ptr, ptr %26, align 8, !tbaa !5
  %517 = load i32, ptr %43, align 4, !tbaa !9
  %518 = sext i32 %517 to i64
  %519 = getelementptr inbounds float, ptr %516, i64 %518
  %520 = load ptr, ptr %17, align 8, !tbaa !5
  %521 = load ptr, ptr %26, align 8, !tbaa !5
  %522 = load i32, ptr %64, align 4, !tbaa !9
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds float, ptr %521, i64 %523
  %525 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %508, ptr noundef %509, ptr noundef %510, ptr noundef @c_b10, ptr noundef %514, ptr noundef %515, ptr noundef %519, ptr noundef %520, ptr noundef @c_b35, ptr noundef %524, ptr noundef %525)
  %526 = load i32, ptr %43, align 4, !tbaa !9
  %527 = sub nsw i32 %526, 1
  store i32 %527, ptr %53, align 4, !tbaa !9
  %528 = load ptr, ptr %18, align 8, !tbaa !5
  %529 = load i32, ptr %528, align 4, !tbaa !9
  store i32 %529, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %530

530:                                              ; preds = %565, %507
  %531 = load i32, ptr %42, align 4, !tbaa !9
  %532 = load i32, ptr %31, align 4, !tbaa !9
  %533 = icmp sle i32 %531, %532
  br i1 %533, label %534, label %568

534:                                              ; preds = %530
  %535 = load ptr, ptr %17, align 8, !tbaa !5
  %536 = load i32, ptr %535, align 4, !tbaa !9
  store i32 %536, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %537

537:                                              ; preds = %561, %534
  %538 = load i32, ptr %49, align 4, !tbaa !9
  %539 = load i32, ptr %32, align 4, !tbaa !9
  %540 = icmp sle i32 %538, %539
  br i1 %540, label %541, label %564

541:                                              ; preds = %537
  %542 = load i32, ptr %53, align 4, !tbaa !9
  %543 = add nsw i32 %542, 1
  store i32 %543, ptr %53, align 4, !tbaa !9
  %544 = load ptr, ptr %21, align 8, !tbaa !5
  %545 = load i32, ptr %49, align 4, !tbaa !9
  %546 = load i32, ptr %42, align 4, !tbaa !9
  %547 = load i32, ptr %29, align 4, !tbaa !9
  %548 = mul nsw i32 %546, %547
  %549 = add nsw i32 %545, %548
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds %struct.complex, ptr %544, i64 %550
  %552 = call <2 x float> @Cf(ptr noundef %551)
  store <2 x float> %552, ptr %87, align 4
  %553 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 0
  %554 = load float, ptr %553, align 4
  %555 = getelementptr inbounds { float, float }, ptr %87, i32 0, i32 1
  %556 = load float, ptr %555, align 4
  %557 = load ptr, ptr %26, align 8, !tbaa !5
  %558 = load i32, ptr %53, align 4, !tbaa !9
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds float, ptr %557, i64 %559
  store float %556, ptr %560, align 4, !tbaa !11
  br label %561

561:                                              ; preds = %541
  %562 = load i32, ptr %49, align 4, !tbaa !9
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr %49, align 4, !tbaa !9
  br label %537, !llvm.loop !22

564:                                              ; preds = %537
  br label %565

565:                                              ; preds = %564
  %566 = load i32, ptr %42, align 4, !tbaa !9
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr %42, align 4, !tbaa !9
  br label %530, !llvm.loop !23

568:                                              ; preds = %530
  %569 = load ptr, ptr %17, align 8, !tbaa !5
  %570 = load ptr, ptr %18, align 8, !tbaa !5
  %571 = load ptr, ptr %17, align 8, !tbaa !5
  %572 = load ptr, ptr %26, align 8, !tbaa !5
  %573 = load i32, ptr %50, align 4, !tbaa !9
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds float, ptr %572, i64 %574
  %576 = load ptr, ptr %17, align 8, !tbaa !5
  %577 = load ptr, ptr %26, align 8, !tbaa !5
  %578 = load i32, ptr %43, align 4, !tbaa !9
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds float, ptr %577, i64 %579
  %581 = load ptr, ptr %17, align 8, !tbaa !5
  %582 = load ptr, ptr %26, align 8, !tbaa !5
  %583 = load i32, ptr %61, align 4, !tbaa !9
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds float, ptr %582, i64 %584
  %586 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %569, ptr noundef %570, ptr noundef %571, ptr noundef @c_b10, ptr noundef %575, ptr noundef %576, ptr noundef %580, ptr noundef %581, ptr noundef @c_b35, ptr noundef %585, ptr noundef %586)
  %587 = load i32, ptr %64, align 4, !tbaa !9
  %588 = sub nsw i32 %587, 1
  store i32 %588, ptr %60, align 4, !tbaa !9
  %589 = load i32, ptr %61, align 4, !tbaa !9
  %590 = sub nsw i32 %589, 1
  store i32 %590, ptr %58, align 4, !tbaa !9
  %591 = load ptr, ptr %18, align 8, !tbaa !5
  %592 = load i32, ptr %591, align 4, !tbaa !9
  store i32 %592, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %593

593:                                              ; preds = %646, %568
  %594 = load i32, ptr %42, align 4, !tbaa !9
  %595 = load i32, ptr %31, align 4, !tbaa !9
  %596 = icmp sle i32 %594, %595
  br i1 %596, label %597, label %649

597:                                              ; preds = %593
  %598 = load ptr, ptr %17, align 8, !tbaa !5
  %599 = load i32, ptr %598, align 4, !tbaa !9
  store i32 %599, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %600

600:                                              ; preds = %642, %597
  %601 = load i32, ptr %49, align 4, !tbaa !9
  %602 = load i32, ptr %32, align 4, !tbaa !9
  %603 = icmp sle i32 %601, %602
  br i1 %603, label %604, label %645

604:                                              ; preds = %600
  %605 = load i32, ptr %60, align 4, !tbaa !9
  %606 = add nsw i32 %605, 1
  store i32 %606, ptr %60, align 4, !tbaa !9
  %607 = load i32, ptr %58, align 4, !tbaa !9
  %608 = add nsw i32 %607, 1
  store i32 %608, ptr %58, align 4, !tbaa !9
  %609 = load i32, ptr %49, align 4, !tbaa !9
  %610 = load i32, ptr %42, align 4, !tbaa !9
  %611 = load i32, ptr %29, align 4, !tbaa !9
  %612 = mul nsw i32 %610, %611
  %613 = add nsw i32 %609, %612
  store i32 %613, ptr %33, align 4, !tbaa !9
  %614 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %614, ptr %34, align 4, !tbaa !9
  %615 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %615, ptr %35, align 4, !tbaa !9
  %616 = load ptr, ptr %26, align 8, !tbaa !5
  %617 = load i32, ptr %34, align 4, !tbaa !9
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds float, ptr %616, i64 %618
  %620 = load float, ptr %619, align 4, !tbaa !11
  %621 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 0
  store float %620, ptr %621, align 4, !tbaa !18
  %622 = load ptr, ptr %26, align 8, !tbaa !5
  %623 = load i32, ptr %35, align 4, !tbaa !9
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds float, ptr %622, i64 %624
  %626 = load float, ptr %625, align 4, !tbaa !11
  %627 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 1
  store float %626, ptr %627, align 4, !tbaa !24
  %628 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 0
  %629 = load float, ptr %628, align 4, !tbaa !18
  %630 = load ptr, ptr %21, align 8, !tbaa !5
  %631 = load i32, ptr %33, align 4, !tbaa !9
  %632 = sext i32 %631 to i64
  %633 = getelementptr inbounds %struct.complex, ptr %630, i64 %632
  %634 = getelementptr inbounds %struct.complex, ptr %633, i32 0, i32 0
  store float %629, ptr %634, align 4, !tbaa !18
  %635 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 1
  %636 = load float, ptr %635, align 4, !tbaa !24
  %637 = load ptr, ptr %21, align 8, !tbaa !5
  %638 = load i32, ptr %33, align 4, !tbaa !9
  %639 = sext i32 %638 to i64
  %640 = getelementptr inbounds %struct.complex, ptr %637, i64 %639
  %641 = getelementptr inbounds %struct.complex, ptr %640, i32 0, i32 1
  store float %636, ptr %641, align 4, !tbaa !24
  br label %642

642:                                              ; preds = %604
  %643 = load i32, ptr %49, align 4, !tbaa !9
  %644 = add nsw i32 %643, 1
  store i32 %644, ptr %49, align 4, !tbaa !9
  br label %600, !llvm.loop !25

645:                                              ; preds = %600
  br label %646

646:                                              ; preds = %645
  %647 = load i32, ptr %42, align 4, !tbaa !9
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr %42, align 4, !tbaa !9
  br label %593, !llvm.loop !26

649:                                              ; preds = %593
  %650 = load float, ptr %41, align 4, !tbaa !11
  %651 = load ptr, ptr %19, align 8, !tbaa !5
  %652 = load ptr, ptr %17, align 8, !tbaa !5
  %653 = load ptr, ptr %19, align 8, !tbaa !5
  %654 = getelementptr inbounds float, ptr %653, i64 1
  %655 = call i32 @isamax_(ptr noundef %652, ptr noundef %654, ptr noundef @c__1)
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds float, ptr %651, i64 %656
  %658 = load float, ptr %657, align 4, !tbaa !11
  store float %658, ptr %37, align 4, !tbaa !11
  %659 = load float, ptr %37, align 4, !tbaa !11
  %660 = fcmp oge float %659, 0.000000e+00
  br i1 %660, label %661, label %663

661:                                              ; preds = %649
  %662 = load float, ptr %37, align 4, !tbaa !11
  br label %666

663:                                              ; preds = %649
  %664 = load float, ptr %37, align 4, !tbaa !11
  %665 = fneg float %664
  br label %666

666:                                              ; preds = %663, %661
  %667 = phi float [ %662, %661 ], [ %665, %663 ]
  %668 = fmul float %650, %667
  store float %668, ptr %85, align 4, !tbaa !11
  %669 = load ptr, ptr %17, align 8, !tbaa !5
  %670 = load i32, ptr %669, align 4, !tbaa !9
  store i32 %670, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !9
  br label %671

671:                                              ; preds = %710, %666
  %672 = load i32, ptr %52, align 4, !tbaa !9
  %673 = load i32, ptr %31, align 4, !tbaa !9
  %674 = icmp sle i32 %672, %673
  br i1 %674, label %675, label %713

675:                                              ; preds = %671
  %676 = load ptr, ptr %19, align 8, !tbaa !5
  %677 = load i32, ptr %52, align 4, !tbaa !9
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds float, ptr %676, i64 %678
  %680 = load float, ptr %679, align 4, !tbaa !11
  %681 = load float, ptr %85, align 4, !tbaa !11
  %682 = fcmp ole float %680, %681
  br i1 %682, label %683, label %692

683:                                              ; preds = %675
  %684 = load ptr, ptr %18, align 8, !tbaa !5
  %685 = load ptr, ptr %21, align 8, !tbaa !5
  %686 = load i32, ptr %52, align 4, !tbaa !9
  %687 = load i32, ptr %29, align 4, !tbaa !9
  %688 = add nsw i32 %686, %687
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds %struct.complex, ptr %685, i64 %689
  %691 = load ptr, ptr %22, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.2, ptr noundef @c__1, ptr noundef %684, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %690, ptr noundef %691)
  br label %709

692:                                              ; preds = %675
  %693 = load ptr, ptr %19, align 8, !tbaa !5
  %694 = load i32, ptr %52, align 4, !tbaa !9
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds float, ptr %693, i64 %695
  %697 = load ptr, ptr %18, align 8, !tbaa !5
  %698 = load ptr, ptr %21, align 8, !tbaa !5
  %699 = load i32, ptr %52, align 4, !tbaa !9
  %700 = load i32, ptr %29, align 4, !tbaa !9
  %701 = add nsw i32 %699, %700
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds %struct.complex, ptr %698, i64 %702
  %704 = load ptr, ptr %22, align 8, !tbaa !5
  %705 = load ptr, ptr %28, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %696, ptr noundef @c_b10, ptr noundef @c__1, ptr noundef %697, ptr noundef %703, ptr noundef %704, ptr noundef %705)
  %706 = load ptr, ptr %24, align 8, !tbaa !5
  %707 = load i32, ptr %706, align 4, !tbaa !9
  %708 = add nsw i32 %707, 1
  store i32 %708, ptr %706, align 4, !tbaa !9
  br label %709

709:                                              ; preds = %692, %683
  br label %710

710:                                              ; preds = %709
  %711 = load i32, ptr %52, align 4, !tbaa !9
  %712 = add nsw i32 %711, 1
  store i32 %712, ptr %52, align 4, !tbaa !9
  br label %671, !llvm.loop !27

713:                                              ; preds = %671
  %714 = load i32, ptr %43, align 4, !tbaa !9
  %715 = sub nsw i32 %714, 1
  store i32 %715, ptr %53, align 4, !tbaa !9
  %716 = load ptr, ptr %18, align 8, !tbaa !5
  %717 = load i32, ptr %716, align 4, !tbaa !9
  store i32 %717, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %718

718:                                              ; preds = %751, %713
  %719 = load i32, ptr %42, align 4, !tbaa !9
  %720 = load i32, ptr %31, align 4, !tbaa !9
  %721 = icmp sle i32 %719, %720
  br i1 %721, label %722, label %754

722:                                              ; preds = %718
  %723 = load ptr, ptr %17, align 8, !tbaa !5
  %724 = load i32, ptr %723, align 4, !tbaa !9
  store i32 %724, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %725

725:                                              ; preds = %747, %722
  %726 = load i32, ptr %49, align 4, !tbaa !9
  %727 = load i32, ptr %32, align 4, !tbaa !9
  %728 = icmp sle i32 %726, %727
  br i1 %728, label %729, label %750

729:                                              ; preds = %725
  %730 = load i32, ptr %53, align 4, !tbaa !9
  %731 = add nsw i32 %730, 1
  store i32 %731, ptr %53, align 4, !tbaa !9
  %732 = load i32, ptr %49, align 4, !tbaa !9
  %733 = load i32, ptr %42, align 4, !tbaa !9
  %734 = load i32, ptr %29, align 4, !tbaa !9
  %735 = mul nsw i32 %733, %734
  %736 = add nsw i32 %732, %735
  store i32 %736, ptr %33, align 4, !tbaa !9
  %737 = load ptr, ptr %21, align 8, !tbaa !5
  %738 = load i32, ptr %33, align 4, !tbaa !9
  %739 = sext i32 %738 to i64
  %740 = getelementptr inbounds %struct.complex, ptr %737, i64 %739
  %741 = getelementptr inbounds %struct.complex, ptr %740, i32 0, i32 0
  %742 = load float, ptr %741, align 4, !tbaa !18
  %743 = load ptr, ptr %26, align 8, !tbaa !5
  %744 = load i32, ptr %53, align 4, !tbaa !9
  %745 = sext i32 %744 to i64
  %746 = getelementptr inbounds float, ptr %743, i64 %745
  store float %742, ptr %746, align 4, !tbaa !11
  br label %747

747:                                              ; preds = %729
  %748 = load i32, ptr %49, align 4, !tbaa !9
  %749 = add nsw i32 %748, 1
  store i32 %749, ptr %49, align 4, !tbaa !9
  br label %725, !llvm.loop !28

750:                                              ; preds = %725
  br label %751

751:                                              ; preds = %750
  %752 = load i32, ptr %42, align 4, !tbaa !9
  %753 = add nsw i32 %752, 1
  store i32 %753, ptr %42, align 4, !tbaa !9
  br label %718, !llvm.loop !29

754:                                              ; preds = %718
  %755 = load ptr, ptr %17, align 8, !tbaa !5
  %756 = load ptr, ptr %18, align 8, !tbaa !5
  %757 = load ptr, ptr %17, align 8, !tbaa !5
  %758 = load ptr, ptr %26, align 8, !tbaa !5
  %759 = load i32, ptr %66, align 4, !tbaa !9
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds float, ptr %758, i64 %760
  %762 = load ptr, ptr %17, align 8, !tbaa !5
  %763 = load ptr, ptr %26, align 8, !tbaa !5
  %764 = load i32, ptr %43, align 4, !tbaa !9
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds float, ptr %763, i64 %765
  %767 = load ptr, ptr %17, align 8, !tbaa !5
  %768 = load ptr, ptr %26, align 8, !tbaa !5
  %769 = load i32, ptr %64, align 4, !tbaa !9
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds float, ptr %768, i64 %770
  %772 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %755, ptr noundef %756, ptr noundef %757, ptr noundef @c_b10, ptr noundef %761, ptr noundef %762, ptr noundef %766, ptr noundef %767, ptr noundef @c_b35, ptr noundef %771, ptr noundef %772)
  %773 = load i32, ptr %43, align 4, !tbaa !9
  %774 = sub nsw i32 %773, 1
  store i32 %774, ptr %53, align 4, !tbaa !9
  %775 = load ptr, ptr %18, align 8, !tbaa !5
  %776 = load i32, ptr %775, align 4, !tbaa !9
  store i32 %776, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %777

777:                                              ; preds = %812, %754
  %778 = load i32, ptr %42, align 4, !tbaa !9
  %779 = load i32, ptr %31, align 4, !tbaa !9
  %780 = icmp sle i32 %778, %779
  br i1 %780, label %781, label %815

781:                                              ; preds = %777
  %782 = load ptr, ptr %17, align 8, !tbaa !5
  %783 = load i32, ptr %782, align 4, !tbaa !9
  store i32 %783, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %784

784:                                              ; preds = %808, %781
  %785 = load i32, ptr %49, align 4, !tbaa !9
  %786 = load i32, ptr %32, align 4, !tbaa !9
  %787 = icmp sle i32 %785, %786
  br i1 %787, label %788, label %811

788:                                              ; preds = %784
  %789 = load i32, ptr %53, align 4, !tbaa !9
  %790 = add nsw i32 %789, 1
  store i32 %790, ptr %53, align 4, !tbaa !9
  %791 = load ptr, ptr %21, align 8, !tbaa !5
  %792 = load i32, ptr %49, align 4, !tbaa !9
  %793 = load i32, ptr %42, align 4, !tbaa !9
  %794 = load i32, ptr %29, align 4, !tbaa !9
  %795 = mul nsw i32 %793, %794
  %796 = add nsw i32 %792, %795
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds %struct.complex, ptr %791, i64 %797
  %799 = call <2 x float> @Cf(ptr noundef %798)
  store <2 x float> %799, ptr %88, align 4
  %800 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 0
  %801 = load float, ptr %800, align 4
  %802 = getelementptr inbounds { float, float }, ptr %88, i32 0, i32 1
  %803 = load float, ptr %802, align 4
  %804 = load ptr, ptr %26, align 8, !tbaa !5
  %805 = load i32, ptr %53, align 4, !tbaa !9
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds float, ptr %804, i64 %806
  store float %803, ptr %807, align 4, !tbaa !11
  br label %808

808:                                              ; preds = %788
  %809 = load i32, ptr %49, align 4, !tbaa !9
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr %49, align 4, !tbaa !9
  br label %784, !llvm.loop !30

811:                                              ; preds = %784
  br label %812

812:                                              ; preds = %811
  %813 = load i32, ptr %42, align 4, !tbaa !9
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr %42, align 4, !tbaa !9
  br label %777, !llvm.loop !31

815:                                              ; preds = %777
  %816 = load ptr, ptr %17, align 8, !tbaa !5
  %817 = load ptr, ptr %18, align 8, !tbaa !5
  %818 = load ptr, ptr %17, align 8, !tbaa !5
  %819 = load ptr, ptr %26, align 8, !tbaa !5
  %820 = load i32, ptr %66, align 4, !tbaa !9
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds float, ptr %819, i64 %821
  %823 = load ptr, ptr %17, align 8, !tbaa !5
  %824 = load ptr, ptr %26, align 8, !tbaa !5
  %825 = load i32, ptr %43, align 4, !tbaa !9
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds float, ptr %824, i64 %826
  %828 = load ptr, ptr %17, align 8, !tbaa !5
  %829 = load ptr, ptr %26, align 8, !tbaa !5
  %830 = load i32, ptr %61, align 4, !tbaa !9
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds float, ptr %829, i64 %831
  %833 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %816, ptr noundef %817, ptr noundef %818, ptr noundef @c_b10, ptr noundef %822, ptr noundef %823, ptr noundef %827, ptr noundef %828, ptr noundef @c_b35, ptr noundef %832, ptr noundef %833)
  %834 = load i32, ptr %64, align 4, !tbaa !9
  %835 = sub nsw i32 %834, 1
  store i32 %835, ptr %60, align 4, !tbaa !9
  %836 = load i32, ptr %61, align 4, !tbaa !9
  %837 = sub nsw i32 %836, 1
  store i32 %837, ptr %58, align 4, !tbaa !9
  %838 = load ptr, ptr %18, align 8, !tbaa !5
  %839 = load i32, ptr %838, align 4, !tbaa !9
  store i32 %839, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %840

840:                                              ; preds = %893, %815
  %841 = load i32, ptr %42, align 4, !tbaa !9
  %842 = load i32, ptr %31, align 4, !tbaa !9
  %843 = icmp sle i32 %841, %842
  br i1 %843, label %844, label %896

844:                                              ; preds = %840
  %845 = load ptr, ptr %17, align 8, !tbaa !5
  %846 = load i32, ptr %845, align 4, !tbaa !9
  store i32 %846, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %847

847:                                              ; preds = %889, %844
  %848 = load i32, ptr %49, align 4, !tbaa !9
  %849 = load i32, ptr %32, align 4, !tbaa !9
  %850 = icmp sle i32 %848, %849
  br i1 %850, label %851, label %892

851:                                              ; preds = %847
  %852 = load i32, ptr %60, align 4, !tbaa !9
  %853 = add nsw i32 %852, 1
  store i32 %853, ptr %60, align 4, !tbaa !9
  %854 = load i32, ptr %58, align 4, !tbaa !9
  %855 = add nsw i32 %854, 1
  store i32 %855, ptr %58, align 4, !tbaa !9
  %856 = load i32, ptr %49, align 4, !tbaa !9
  %857 = load i32, ptr %42, align 4, !tbaa !9
  %858 = load i32, ptr %29, align 4, !tbaa !9
  %859 = mul nsw i32 %857, %858
  %860 = add nsw i32 %856, %859
  store i32 %860, ptr %33, align 4, !tbaa !9
  %861 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %861, ptr %34, align 4, !tbaa !9
  %862 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %862, ptr %35, align 4, !tbaa !9
  %863 = load ptr, ptr %26, align 8, !tbaa !5
  %864 = load i32, ptr %34, align 4, !tbaa !9
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds float, ptr %863, i64 %865
  %867 = load float, ptr %866, align 4, !tbaa !11
  %868 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 0
  store float %867, ptr %868, align 4, !tbaa !18
  %869 = load ptr, ptr %26, align 8, !tbaa !5
  %870 = load i32, ptr %35, align 4, !tbaa !9
  %871 = sext i32 %870 to i64
  %872 = getelementptr inbounds float, ptr %869, i64 %871
  %873 = load float, ptr %872, align 4, !tbaa !11
  %874 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 1
  store float %873, ptr %874, align 4, !tbaa !24
  %875 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 0
  %876 = load float, ptr %875, align 4, !tbaa !18
  %877 = load ptr, ptr %21, align 8, !tbaa !5
  %878 = load i32, ptr %33, align 4, !tbaa !9
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds %struct.complex, ptr %877, i64 %879
  %881 = getelementptr inbounds %struct.complex, ptr %880, i32 0, i32 0
  store float %876, ptr %881, align 4, !tbaa !18
  %882 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 1
  %883 = load float, ptr %882, align 4, !tbaa !24
  %884 = load ptr, ptr %21, align 8, !tbaa !5
  %885 = load i32, ptr %33, align 4, !tbaa !9
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds %struct.complex, ptr %884, i64 %886
  %888 = getelementptr inbounds %struct.complex, ptr %887, i32 0, i32 1
  store float %883, ptr %888, align 4, !tbaa !24
  br label %889

889:                                              ; preds = %851
  %890 = load i32, ptr %49, align 4, !tbaa !9
  %891 = add nsw i32 %890, 1
  store i32 %891, ptr %49, align 4, !tbaa !9
  br label %847, !llvm.loop !32

892:                                              ; preds = %847
  br label %893

893:                                              ; preds = %892
  %894 = load i32, ptr %42, align 4, !tbaa !9
  %895 = add nsw i32 %894, 1
  store i32 %895, ptr %42, align 4, !tbaa !9
  br label %840, !llvm.loop !33

896:                                              ; preds = %840
  %897 = load ptr, ptr %17, align 8, !tbaa !5
  %898 = load ptr, ptr %19, align 8, !tbaa !5
  %899 = getelementptr inbounds float, ptr %898, i64 1
  %900 = load ptr, ptr %17, align 8, !tbaa !5
  %901 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b10, ptr noundef %75, ptr noundef %897, ptr noundef @c__1, ptr noundef %899, ptr noundef %900, ptr noundef %901)
  %902 = load ptr, ptr %17, align 8, !tbaa !5
  %903 = load ptr, ptr %19, align 8, !tbaa !5
  %904 = getelementptr inbounds float, ptr %903, i64 1
  %905 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasrt_(ptr noundef @.str.8, ptr noundef %902, ptr noundef %904, ptr noundef %905)
  %906 = load ptr, ptr %17, align 8, !tbaa !5
  %907 = load ptr, ptr %18, align 8, !tbaa !5
  %908 = load ptr, ptr %21, align 8, !tbaa !5
  %909 = load i32, ptr %30, align 4, !tbaa !9
  %910 = sext i32 %909 to i64
  %911 = getelementptr inbounds %struct.complex, ptr %908, i64 %910
  %912 = load ptr, ptr %22, align 8, !tbaa !5
  %913 = load ptr, ptr %28, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %75, ptr noundef @c_b10, ptr noundef %906, ptr noundef %907, ptr noundef %911, ptr noundef %912, ptr noundef %913)
  store i32 1, ptr %86, align 4
  br label %2185

914:                                              ; preds = %378
  %915 = load ptr, ptr %17, align 8, !tbaa !5
  %916 = load i32, ptr %915, align 4, !tbaa !9
  %917 = sitofp i32 %916 to float
  %918 = load ptr, ptr %16, align 8, !tbaa !5
  %919 = load i32, ptr %918, align 4, !tbaa !9
  %920 = add nsw i32 %919, 1
  %921 = sitofp i32 %920 to float
  %922 = fdiv float %917, %921
  %923 = fpext float %922 to double
  %924 = call double @log(double noundef %923) #5
  %925 = call double @log(double noundef 2.000000e+00) #5
  %926 = fdiv double %924, %925
  %927 = fptosi double %926 to i32
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr %46, align 4, !tbaa !9
  %929 = load ptr, ptr %16, align 8, !tbaa !5
  %930 = load i32, ptr %929, align 4, !tbaa !9
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr %81, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  %932 = load ptr, ptr %16, align 8, !tbaa !5
  %933 = load i32, ptr %932, align 4, !tbaa !9
  %934 = load ptr, ptr %17, align 8, !tbaa !5
  %935 = load i32, ptr %934, align 4, !tbaa !9
  %936 = mul nsw i32 %933, %935
  %937 = add nsw i32 %936, 1
  store i32 %937, ptr %73, align 4, !tbaa !9
  %938 = load i32, ptr %73, align 4, !tbaa !9
  %939 = load i32, ptr %81, align 4, !tbaa !9
  %940 = load ptr, ptr %17, align 8, !tbaa !5
  %941 = load i32, ptr %940, align 4, !tbaa !9
  %942 = mul nsw i32 %939, %941
  %943 = add nsw i32 %938, %942
  store i32 %943, ptr %39, align 4, !tbaa !9
  %944 = load i32, ptr %39, align 4, !tbaa !9
  %945 = load i32, ptr %46, align 4, !tbaa !9
  %946 = load ptr, ptr %17, align 8, !tbaa !5
  %947 = load i32, ptr %946, align 4, !tbaa !9
  %948 = mul nsw i32 %945, %947
  %949 = add nsw i32 %944, %948
  store i32 %949, ptr %40, align 4, !tbaa !9
  %950 = load i32, ptr %40, align 4, !tbaa !9
  %951 = load i32, ptr %46, align 4, !tbaa !9
  %952 = load ptr, ptr %17, align 8, !tbaa !5
  %953 = load i32, ptr %952, align 4, !tbaa !9
  %954 = mul nsw i32 %951, %953
  %955 = shl i32 %954, 1
  %956 = add nsw i32 %950, %955
  store i32 %956, ptr %59, align 4, !tbaa !9
  %957 = load i32, ptr %59, align 4, !tbaa !9
  %958 = load i32, ptr %46, align 4, !tbaa !9
  %959 = load ptr, ptr %17, align 8, !tbaa !5
  %960 = load i32, ptr %959, align 4, !tbaa !9
  %961 = mul nsw i32 %958, %960
  %962 = add nsw i32 %957, %961
  store i32 %962, ptr %51, align 4, !tbaa !9
  %963 = load i32, ptr %51, align 4, !tbaa !9
  %964 = load ptr, ptr %17, align 8, !tbaa !5
  %965 = load i32, ptr %964, align 4, !tbaa !9
  %966 = add nsw i32 %963, %965
  store i32 %966, ptr %56, align 4, !tbaa !9
  %967 = load i32, ptr %56, align 4, !tbaa !9
  %968 = load ptr, ptr %17, align 8, !tbaa !5
  %969 = load i32, ptr %968, align 4, !tbaa !9
  %970 = add nsw i32 %967, %969
  store i32 %970, ptr %62, align 4, !tbaa !9
  %971 = load i32, ptr %62, align 4, !tbaa !9
  %972 = load i32, ptr %46, align 4, !tbaa !9
  %973 = shl i32 %972, 1
  %974 = load ptr, ptr %17, align 8, !tbaa !5
  %975 = load i32, ptr %974, align 4, !tbaa !9
  %976 = mul nsw i32 %973, %975
  %977 = add nsw i32 %971, %976
  store i32 %977, ptr %76, align 4, !tbaa !9
  %978 = load i32, ptr %76, align 4, !tbaa !9
  %979 = load i32, ptr %46, align 4, !tbaa !9
  %980 = shl i32 %979, 1
  %981 = load ptr, ptr %17, align 8, !tbaa !5
  %982 = load i32, ptr %981, align 4, !tbaa !9
  %983 = mul nsw i32 %980, %982
  %984 = add nsw i32 %978, %983
  store i32 %984, ptr %79, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  %985 = load i32, ptr %79, align 4, !tbaa !9
  store i32 %985, ptr %64, align 4, !tbaa !9
  %986 = load i32, ptr %64, align 4, !tbaa !9
  %987 = load ptr, ptr %16, align 8, !tbaa !5
  %988 = load i32, ptr %987, align 4, !tbaa !9
  %989 = load ptr, ptr %18, align 8, !tbaa !5
  %990 = load i32, ptr %989, align 4, !tbaa !9
  %991 = mul nsw i32 %988, %990
  %992 = add nsw i32 %986, %991
  store i32 %992, ptr %61, align 4, !tbaa !9
  %993 = load i32, ptr %61, align 4, !tbaa !9
  %994 = load ptr, ptr %16, align 8, !tbaa !5
  %995 = load i32, ptr %994, align 4, !tbaa !9
  %996 = load ptr, ptr %18, align 8, !tbaa !5
  %997 = load i32, ptr %996, align 4, !tbaa !9
  %998 = mul nsw i32 %995, %997
  %999 = add nsw i32 %993, %998
  store i32 %999, ptr %43, align 4, !tbaa !9
  %1000 = load ptr, ptr %17, align 8, !tbaa !5
  %1001 = load i32, ptr %1000, align 4, !tbaa !9
  %1002 = add nsw i32 %1001, 1
  store i32 %1002, ptr %63, align 4, !tbaa !9
  %1003 = load i32, ptr %63, align 4, !tbaa !9
  %1004 = load ptr, ptr %17, align 8, !tbaa !5
  %1005 = load i32, ptr %1004, align 4, !tbaa !9
  %1006 = add nsw i32 %1003, %1005
  store i32 %1006, ptr %54, align 4, !tbaa !9
  %1007 = load i32, ptr %54, align 4, !tbaa !9
  %1008 = load ptr, ptr %17, align 8, !tbaa !5
  %1009 = load i32, ptr %1008, align 4, !tbaa !9
  %1010 = add nsw i32 %1007, %1009
  store i32 %1010, ptr %77, align 4, !tbaa !9
  %1011 = load i32, ptr %77, align 4, !tbaa !9
  %1012 = load ptr, ptr %17, align 8, !tbaa !5
  %1013 = load i32, ptr %1012, align 4, !tbaa !9
  %1014 = add nsw i32 %1011, %1013
  store i32 %1014, ptr %44, align 4, !tbaa !9
  %1015 = load i32, ptr %44, align 4, !tbaa !9
  %1016 = load i32, ptr %46, align 4, !tbaa !9
  %1017 = load ptr, ptr %17, align 8, !tbaa !5
  %1018 = load i32, ptr %1017, align 4, !tbaa !9
  %1019 = mul nsw i32 %1016, %1018
  %1020 = add nsw i32 %1015, %1019
  store i32 %1020, ptr %74, align 4, !tbaa !9
  %1021 = load i32, ptr %74, align 4, !tbaa !9
  %1022 = load i32, ptr %46, align 4, !tbaa !9
  %1023 = load ptr, ptr %17, align 8, !tbaa !5
  %1024 = load i32, ptr %1023, align 4, !tbaa !9
  %1025 = mul nsw i32 %1022, %1024
  %1026 = shl i32 %1025, 1
  %1027 = add nsw i32 %1021, %1026
  store i32 %1027, ptr %84, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  store i32 0, ptr %47, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  store i32 0, ptr %68, align 4, !tbaa !9
  store i32 0, ptr %45, align 4, !tbaa !9
  %1028 = load ptr, ptr %17, align 8, !tbaa !5
  %1029 = load i32, ptr %1028, align 4, !tbaa !9
  store i32 %1029, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !9
  br label %1030

1030:                                             ; preds = %1086, %914
  %1031 = load i32, ptr %52, align 4, !tbaa !9
  %1032 = load i32, ptr %31, align 4, !tbaa !9
  %1033 = icmp sle i32 %1031, %1032
  br i1 %1033, label %1034, label %1089

1034:                                             ; preds = %1030
  %1035 = load ptr, ptr %19, align 8, !tbaa !5
  %1036 = load i32, ptr %52, align 4, !tbaa !9
  %1037 = sext i32 %1036 to i64
  %1038 = getelementptr inbounds float, ptr %1035, i64 %1037
  %1039 = load float, ptr %1038, align 4, !tbaa !11
  store float %1039, ptr %37, align 4, !tbaa !11
  %1040 = load float, ptr %37, align 4, !tbaa !11
  %1041 = fcmp oge float %1040, 0.000000e+00
  br i1 %1041, label %1042, label %1044

1042:                                             ; preds = %1034
  %1043 = load float, ptr %37, align 4, !tbaa !11
  br label %1047

1044:                                             ; preds = %1034
  %1045 = load float, ptr %37, align 4, !tbaa !11
  %1046 = fneg float %1045
  br label %1047

1047:                                             ; preds = %1044, %1042
  %1048 = phi float [ %1043, %1042 ], [ %1046, %1044 ]
  %1049 = load float, ptr %83, align 4, !tbaa !11
  %1050 = fcmp olt float %1048, %1049
  br i1 %1050, label %1051, label %1085

1051:                                             ; preds = %1047
  %1052 = load ptr, ptr %19, align 8, !tbaa !5
  %1053 = load i32, ptr %52, align 4, !tbaa !9
  %1054 = sext i32 %1053 to i64
  %1055 = getelementptr inbounds float, ptr %1052, i64 %1054
  %1056 = load float, ptr %1055, align 4, !tbaa !11
  %1057 = fcmp oge float %1056, 0.000000e+00
  br i1 %1057, label %1058, label %1068

1058:                                             ; preds = %1051
  %1059 = load float, ptr %83, align 4, !tbaa !11
  %1060 = fcmp oge float %1059, 0.000000e+00
  br i1 %1060, label %1061, label %1063

1061:                                             ; preds = %1058
  %1062 = load float, ptr %83, align 4, !tbaa !11
  br label %1066

1063:                                             ; preds = %1058
  %1064 = load float, ptr %83, align 4, !tbaa !11
  %1065 = fneg float %1064
  br label %1066

1066:                                             ; preds = %1063, %1061
  %1067 = phi float [ %1062, %1061 ], [ %1065, %1063 ]
  br label %1079

1068:                                             ; preds = %1051
  %1069 = load float, ptr %83, align 4, !tbaa !11
  %1070 = fcmp oge float %1069, 0.000000e+00
  br i1 %1070, label %1071, label %1073

1071:                                             ; preds = %1068
  %1072 = load float, ptr %83, align 4, !tbaa !11
  br label %1076

1073:                                             ; preds = %1068
  %1074 = load float, ptr %83, align 4, !tbaa !11
  %1075 = fneg float %1074
  br label %1076

1076:                                             ; preds = %1073, %1071
  %1077 = phi float [ %1072, %1071 ], [ %1075, %1073 ]
  %1078 = fneg float %1077
  br label %1079

1079:                                             ; preds = %1076, %1066
  %1080 = phi float [ %1067, %1066 ], [ %1078, %1076 ]
  %1081 = load ptr, ptr %19, align 8, !tbaa !5
  %1082 = load i32, ptr %52, align 4, !tbaa !9
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds float, ptr %1081, i64 %1083
  store float %1080, ptr %1084, align 4, !tbaa !11
  br label %1085

1085:                                             ; preds = %1079, %1047
  br label %1086

1086:                                             ; preds = %1085
  %1087 = load i32, ptr %52, align 4, !tbaa !9
  %1088 = add nsw i32 %1087, 1
  store i32 %1088, ptr %52, align 4, !tbaa !9
  br label %1030, !llvm.loop !34

1089:                                             ; preds = %1030
  %1090 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %1090, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !9
  br label %1091

1091:                                             ; preds = %1716, %1089
  %1092 = load i32, ptr %52, align 4, !tbaa !9
  %1093 = load i32, ptr %31, align 4, !tbaa !9
  %1094 = icmp sle i32 %1092, %1093
  br i1 %1094, label %1095, label %1719

1095:                                             ; preds = %1091
  %1096 = load ptr, ptr %20, align 8, !tbaa !5
  %1097 = load i32, ptr %52, align 4, !tbaa !9
  %1098 = sext i32 %1097 to i64
  %1099 = getelementptr inbounds float, ptr %1096, i64 %1098
  %1100 = load float, ptr %1099, align 4, !tbaa !11
  store float %1100, ptr %37, align 4, !tbaa !11
  %1101 = load float, ptr %37, align 4, !tbaa !11
  %1102 = fcmp oge float %1101, 0.000000e+00
  br i1 %1102, label %1103, label %1105

1103:                                             ; preds = %1095
  %1104 = load float, ptr %37, align 4, !tbaa !11
  br label %1108

1105:                                             ; preds = %1095
  %1106 = load float, ptr %37, align 4, !tbaa !11
  %1107 = fneg float %1106
  br label %1108

1108:                                             ; preds = %1105, %1103
  %1109 = phi float [ %1104, %1103 ], [ %1107, %1105 ]
  %1110 = load float, ptr %83, align 4, !tbaa !11
  %1111 = fcmp olt float %1109, %1110
  br i1 %1111, label %1116, label %1112

1112:                                             ; preds = %1108
  %1113 = load i32, ptr %52, align 4, !tbaa !9
  %1114 = load i32, ptr %78, align 4, !tbaa !9
  %1115 = icmp eq i32 %1113, %1114
  br i1 %1115, label %1116, label %1715

1116:                                             ; preds = %1112, %1108
  %1117 = load i32, ptr %45, align 4, !tbaa !9
  %1118 = add nsw i32 %1117, 1
  store i32 %1118, ptr %45, align 4, !tbaa !9
  %1119 = load i32, ptr %72, align 4, !tbaa !9
  %1120 = load ptr, ptr %27, align 8, !tbaa !5
  %1121 = load i32, ptr %45, align 4, !tbaa !9
  %1122 = sext i32 %1121 to i64
  %1123 = getelementptr inbounds i32, ptr %1120, i64 %1122
  store i32 %1119, ptr %1123, align 4, !tbaa !9
  %1124 = load i32, ptr %52, align 4, !tbaa !9
  %1125 = load i32, ptr %78, align 4, !tbaa !9
  %1126 = icmp slt i32 %1124, %1125
  br i1 %1126, label %1127, label %1140

1127:                                             ; preds = %1116
  %1128 = load i32, ptr %52, align 4, !tbaa !9
  %1129 = load i32, ptr %72, align 4, !tbaa !9
  %1130 = sub nsw i32 %1128, %1129
  %1131 = add nsw i32 %1130, 1
  store i32 %1131, ptr %65, align 4, !tbaa !9
  %1132 = load i32, ptr %65, align 4, !tbaa !9
  %1133 = load ptr, ptr %27, align 8, !tbaa !5
  %1134 = load i32, ptr %63, align 4, !tbaa !9
  %1135 = load i32, ptr %45, align 4, !tbaa !9
  %1136 = add nsw i32 %1134, %1135
  %1137 = sub nsw i32 %1136, 1
  %1138 = sext i32 %1137 to i64
  %1139 = getelementptr inbounds i32, ptr %1133, i64 %1138
  store i32 %1132, ptr %1139, align 4, !tbaa !9
  br label %1216

1140:                                             ; preds = %1116
  %1141 = load ptr, ptr %20, align 8, !tbaa !5
  %1142 = load i32, ptr %52, align 4, !tbaa !9
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds float, ptr %1141, i64 %1143
  %1145 = load float, ptr %1144, align 4, !tbaa !11
  store float %1145, ptr %37, align 4, !tbaa !11
  %1146 = load float, ptr %37, align 4, !tbaa !11
  %1147 = fcmp oge float %1146, 0.000000e+00
  br i1 %1147, label %1148, label %1150

1148:                                             ; preds = %1140
  %1149 = load float, ptr %37, align 4, !tbaa !11
  br label %1153

1150:                                             ; preds = %1140
  %1151 = load float, ptr %37, align 4, !tbaa !11
  %1152 = fneg float %1151
  br label %1153

1153:                                             ; preds = %1150, %1148
  %1154 = phi float [ %1149, %1148 ], [ %1152, %1150 ]
  %1155 = load float, ptr %83, align 4, !tbaa !11
  %1156 = fcmp oge float %1154, %1155
  br i1 %1156, label %1157, label %1171

1157:                                             ; preds = %1153
  %1158 = load ptr, ptr %17, align 8, !tbaa !5
  %1159 = load i32, ptr %1158, align 4, !tbaa !9
  %1160 = load i32, ptr %72, align 4, !tbaa !9
  %1161 = sub nsw i32 %1159, %1160
  %1162 = add nsw i32 %1161, 1
  store i32 %1162, ptr %65, align 4, !tbaa !9
  %1163 = load i32, ptr %65, align 4, !tbaa !9
  %1164 = load ptr, ptr %27, align 8, !tbaa !5
  %1165 = load i32, ptr %63, align 4, !tbaa !9
  %1166 = load i32, ptr %45, align 4, !tbaa !9
  %1167 = add nsw i32 %1165, %1166
  %1168 = sub nsw i32 %1167, 1
  %1169 = sext i32 %1168 to i64
  %1170 = getelementptr inbounds i32, ptr %1164, i64 %1169
  store i32 %1163, ptr %1170, align 4, !tbaa !9
  br label %1215

1171:                                             ; preds = %1153
  %1172 = load i32, ptr %52, align 4, !tbaa !9
  %1173 = load i32, ptr %72, align 4, !tbaa !9
  %1174 = sub nsw i32 %1172, %1173
  %1175 = add nsw i32 %1174, 1
  store i32 %1175, ptr %65, align 4, !tbaa !9
  %1176 = load i32, ptr %65, align 4, !tbaa !9
  %1177 = load ptr, ptr %27, align 8, !tbaa !5
  %1178 = load i32, ptr %63, align 4, !tbaa !9
  %1179 = load i32, ptr %45, align 4, !tbaa !9
  %1180 = add nsw i32 %1178, %1179
  %1181 = sub nsw i32 %1180, 1
  %1182 = sext i32 %1181 to i64
  %1183 = getelementptr inbounds i32, ptr %1177, i64 %1182
  store i32 %1176, ptr %1183, align 4, !tbaa !9
  %1184 = load i32, ptr %45, align 4, !tbaa !9
  %1185 = add nsw i32 %1184, 1
  store i32 %1185, ptr %45, align 4, !tbaa !9
  %1186 = load ptr, ptr %17, align 8, !tbaa !5
  %1187 = load i32, ptr %1186, align 4, !tbaa !9
  %1188 = load ptr, ptr %27, align 8, !tbaa !5
  %1189 = load i32, ptr %45, align 4, !tbaa !9
  %1190 = sext i32 %1189 to i64
  %1191 = getelementptr inbounds i32, ptr %1188, i64 %1190
  store i32 %1187, ptr %1191, align 4, !tbaa !9
  %1192 = load ptr, ptr %27, align 8, !tbaa !5
  %1193 = load i32, ptr %63, align 4, !tbaa !9
  %1194 = load i32, ptr %45, align 4, !tbaa !9
  %1195 = add nsw i32 %1193, %1194
  %1196 = sub nsw i32 %1195, 1
  %1197 = sext i32 %1196 to i64
  %1198 = getelementptr inbounds i32, ptr %1192, i64 %1197
  store i32 1, ptr %1198, align 4, !tbaa !9
  %1199 = load ptr, ptr %18, align 8, !tbaa !5
  %1200 = load ptr, ptr %21, align 8, !tbaa !5
  %1201 = load ptr, ptr %17, align 8, !tbaa !5
  %1202 = load i32, ptr %1201, align 4, !tbaa !9
  %1203 = load i32, ptr %29, align 4, !tbaa !9
  %1204 = add nsw i32 %1202, %1203
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds %struct.complex, ptr %1200, i64 %1205
  %1207 = load ptr, ptr %22, align 8, !tbaa !5
  %1208 = load ptr, ptr %25, align 8, !tbaa !5
  %1209 = load i32, ptr %70, align 4, !tbaa !9
  %1210 = load i32, ptr %78, align 4, !tbaa !9
  %1211 = add nsw i32 %1209, %1210
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds %struct.complex, ptr %1208, i64 %1212
  %1214 = load ptr, ptr %17, align 8, !tbaa !5
  call void @ccopy_(ptr noundef %1199, ptr noundef %1206, ptr noundef %1207, ptr noundef %1213, ptr noundef %1214)
  br label %1215

1215:                                             ; preds = %1171, %1157
  br label %1216

1216:                                             ; preds = %1215, %1127
  %1217 = load i32, ptr %72, align 4, !tbaa !9
  %1218 = sub nsw i32 %1217, 1
  store i32 %1218, ptr %82, align 4, !tbaa !9
  %1219 = load i32, ptr %65, align 4, !tbaa !9
  %1220 = icmp eq i32 %1219, 1
  br i1 %1220, label %1221, label %1237

1221:                                             ; preds = %1216
  %1222 = load ptr, ptr %18, align 8, !tbaa !5
  %1223 = load ptr, ptr %21, align 8, !tbaa !5
  %1224 = load i32, ptr %72, align 4, !tbaa !9
  %1225 = load i32, ptr %29, align 4, !tbaa !9
  %1226 = add nsw i32 %1224, %1225
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds %struct.complex, ptr %1223, i64 %1227
  %1229 = load ptr, ptr %22, align 8, !tbaa !5
  %1230 = load ptr, ptr %25, align 8, !tbaa !5
  %1231 = load i32, ptr %70, align 4, !tbaa !9
  %1232 = load i32, ptr %82, align 4, !tbaa !9
  %1233 = add nsw i32 %1231, %1232
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds %struct.complex, ptr %1230, i64 %1234
  %1236 = load ptr, ptr %17, align 8, !tbaa !5
  call void @ccopy_(ptr noundef %1222, ptr noundef %1228, ptr noundef %1229, ptr noundef %1235, ptr noundef %1236)
  br label %1712

1237:                                             ; preds = %1216
  %1238 = load i32, ptr %65, align 4, !tbaa !9
  %1239 = load ptr, ptr %16, align 8, !tbaa !5
  %1240 = load i32, ptr %1239, align 4, !tbaa !9
  %1241 = icmp sle i32 %1238, %1240
  br i1 %1241, label %1242, label %1496

1242:                                             ; preds = %1237
  %1243 = load ptr, ptr %26, align 8, !tbaa !5
  %1244 = load i32, ptr %73, align 4, !tbaa !9
  %1245 = load i32, ptr %82, align 4, !tbaa !9
  %1246 = add nsw i32 %1244, %1245
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds float, ptr %1243, i64 %1247
  %1249 = load ptr, ptr %17, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.2, ptr noundef %65, ptr noundef %65, ptr noundef @c_b35, ptr noundef @c_b10, ptr noundef %1248, ptr noundef %1249)
  %1250 = load ptr, ptr %26, align 8, !tbaa !5
  %1251 = load i32, ptr %57, align 4, !tbaa !9
  %1252 = load i32, ptr %82, align 4, !tbaa !9
  %1253 = add nsw i32 %1251, %1252
  %1254 = sext i32 %1253 to i64
  %1255 = getelementptr inbounds float, ptr %1250, i64 %1254
  %1256 = load ptr, ptr %17, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.2, ptr noundef %65, ptr noundef %65, ptr noundef @c_b35, ptr noundef @c_b10, ptr noundef %1255, ptr noundef %1256)
  %1257 = load ptr, ptr %19, align 8, !tbaa !5
  %1258 = load i32, ptr %72, align 4, !tbaa !9
  %1259 = sext i32 %1258 to i64
  %1260 = getelementptr inbounds float, ptr %1257, i64 %1259
  %1261 = load ptr, ptr %20, align 8, !tbaa !5
  %1262 = load i32, ptr %72, align 4, !tbaa !9
  %1263 = sext i32 %1262 to i64
  %1264 = getelementptr inbounds float, ptr %1261, i64 %1263
  %1265 = load ptr, ptr %26, align 8, !tbaa !5
  %1266 = load i32, ptr %73, align 4, !tbaa !9
  %1267 = load i32, ptr %82, align 4, !tbaa !9
  %1268 = add nsw i32 %1266, %1267
  %1269 = sext i32 %1268 to i64
  %1270 = getelementptr inbounds float, ptr %1265, i64 %1269
  %1271 = load ptr, ptr %17, align 8, !tbaa !5
  %1272 = load ptr, ptr %26, align 8, !tbaa !5
  %1273 = load i32, ptr %57, align 4, !tbaa !9
  %1274 = load i32, ptr %82, align 4, !tbaa !9
  %1275 = add nsw i32 %1273, %1274
  %1276 = sext i32 %1275 to i64
  %1277 = getelementptr inbounds float, ptr %1272, i64 %1276
  %1278 = load ptr, ptr %17, align 8, !tbaa !5
  %1279 = load ptr, ptr %26, align 8, !tbaa !5
  %1280 = load i32, ptr %79, align 4, !tbaa !9
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds float, ptr %1279, i64 %1281
  %1283 = load ptr, ptr %26, align 8, !tbaa !5
  %1284 = load i32, ptr %79, align 4, !tbaa !9
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds float, ptr %1283, i64 %1285
  %1287 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasdq_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef %65, ptr noundef %65, ptr noundef %65, ptr noundef @c__0, ptr noundef %1260, ptr noundef %1264, ptr noundef %1270, ptr noundef %1271, ptr noundef %1277, ptr noundef %1278, ptr noundef %1282, ptr noundef @c__1, ptr noundef %1286, ptr noundef %1287)
  %1288 = load ptr, ptr %28, align 8, !tbaa !5
  %1289 = load i32, ptr %1288, align 4, !tbaa !9
  %1290 = icmp ne i32 %1289, 0
  br i1 %1290, label %1291, label %1292

1291:                                             ; preds = %1242
  store i32 1, ptr %86, align 4
  br label %2185

1292:                                             ; preds = %1242
  %1293 = load i32, ptr %43, align 4, !tbaa !9
  %1294 = sub nsw i32 %1293, 1
  store i32 %1294, ptr %53, align 4, !tbaa !9
  %1295 = load ptr, ptr %18, align 8, !tbaa !5
  %1296 = load i32, ptr %1295, align 4, !tbaa !9
  store i32 %1296, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1297

1297:                                             ; preds = %1333, %1292
  %1298 = load i32, ptr %42, align 4, !tbaa !9
  %1299 = load i32, ptr %32, align 4, !tbaa !9
  %1300 = icmp sle i32 %1298, %1299
  br i1 %1300, label %1301, label %1336

1301:                                             ; preds = %1297
  %1302 = load i32, ptr %72, align 4, !tbaa !9
  %1303 = load i32, ptr %65, align 4, !tbaa !9
  %1304 = add nsw i32 %1302, %1303
  %1305 = sub nsw i32 %1304, 1
  store i32 %1305, ptr %33, align 4, !tbaa !9
  %1306 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1306, ptr %49, align 4, !tbaa !9
  br label %1307

1307:                                             ; preds = %1329, %1301
  %1308 = load i32, ptr %49, align 4, !tbaa !9
  %1309 = load i32, ptr %33, align 4, !tbaa !9
  %1310 = icmp sle i32 %1308, %1309
  br i1 %1310, label %1311, label %1332

1311:                                             ; preds = %1307
  %1312 = load i32, ptr %53, align 4, !tbaa !9
  %1313 = add nsw i32 %1312, 1
  store i32 %1313, ptr %53, align 4, !tbaa !9
  %1314 = load i32, ptr %49, align 4, !tbaa !9
  %1315 = load i32, ptr %42, align 4, !tbaa !9
  %1316 = load i32, ptr %29, align 4, !tbaa !9
  %1317 = mul nsw i32 %1315, %1316
  %1318 = add nsw i32 %1314, %1317
  store i32 %1318, ptr %34, align 4, !tbaa !9
  %1319 = load ptr, ptr %21, align 8, !tbaa !5
  %1320 = load i32, ptr %34, align 4, !tbaa !9
  %1321 = sext i32 %1320 to i64
  %1322 = getelementptr inbounds %struct.complex, ptr %1319, i64 %1321
  %1323 = getelementptr inbounds %struct.complex, ptr %1322, i32 0, i32 0
  %1324 = load float, ptr %1323, align 4, !tbaa !18
  %1325 = load ptr, ptr %26, align 8, !tbaa !5
  %1326 = load i32, ptr %53, align 4, !tbaa !9
  %1327 = sext i32 %1326 to i64
  %1328 = getelementptr inbounds float, ptr %1325, i64 %1327
  store float %1324, ptr %1328, align 4, !tbaa !11
  br label %1329

1329:                                             ; preds = %1311
  %1330 = load i32, ptr %49, align 4, !tbaa !9
  %1331 = add nsw i32 %1330, 1
  store i32 %1331, ptr %49, align 4, !tbaa !9
  br label %1307, !llvm.loop !35

1332:                                             ; preds = %1307
  br label %1333

1333:                                             ; preds = %1332
  %1334 = load i32, ptr %42, align 4, !tbaa !9
  %1335 = add nsw i32 %1334, 1
  store i32 %1335, ptr %42, align 4, !tbaa !9
  br label %1297, !llvm.loop !36

1336:                                             ; preds = %1297
  %1337 = load ptr, ptr %18, align 8, !tbaa !5
  %1338 = load ptr, ptr %26, align 8, !tbaa !5
  %1339 = load i32, ptr %57, align 4, !tbaa !9
  %1340 = load i32, ptr %82, align 4, !tbaa !9
  %1341 = add nsw i32 %1339, %1340
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr inbounds float, ptr %1338, i64 %1342
  %1344 = load ptr, ptr %17, align 8, !tbaa !5
  %1345 = load ptr, ptr %26, align 8, !tbaa !5
  %1346 = load i32, ptr %43, align 4, !tbaa !9
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds float, ptr %1345, i64 %1347
  %1349 = load ptr, ptr %26, align 8, !tbaa !5
  %1350 = load i32, ptr %64, align 4, !tbaa !9
  %1351 = sext i32 %1350 to i64
  %1352 = getelementptr inbounds float, ptr %1349, i64 %1351
  call void @sgemm_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %65, ptr noundef %1337, ptr noundef %65, ptr noundef @c_b10, ptr noundef %1343, ptr noundef %1344, ptr noundef %1348, ptr noundef %65, ptr noundef @c_b35, ptr noundef %1352, ptr noundef %65)
  %1353 = load i32, ptr %43, align 4, !tbaa !9
  %1354 = sub nsw i32 %1353, 1
  store i32 %1354, ptr %53, align 4, !tbaa !9
  %1355 = load ptr, ptr %18, align 8, !tbaa !5
  %1356 = load i32, ptr %1355, align 4, !tbaa !9
  store i32 %1356, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1357

1357:                                             ; preds = %1395, %1336
  %1358 = load i32, ptr %42, align 4, !tbaa !9
  %1359 = load i32, ptr %32, align 4, !tbaa !9
  %1360 = icmp sle i32 %1358, %1359
  br i1 %1360, label %1361, label %1398

1361:                                             ; preds = %1357
  %1362 = load i32, ptr %72, align 4, !tbaa !9
  %1363 = load i32, ptr %65, align 4, !tbaa !9
  %1364 = add nsw i32 %1362, %1363
  %1365 = sub nsw i32 %1364, 1
  store i32 %1365, ptr %33, align 4, !tbaa !9
  %1366 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1366, ptr %49, align 4, !tbaa !9
  br label %1367

1367:                                             ; preds = %1391, %1361
  %1368 = load i32, ptr %49, align 4, !tbaa !9
  %1369 = load i32, ptr %33, align 4, !tbaa !9
  %1370 = icmp sle i32 %1368, %1369
  br i1 %1370, label %1371, label %1394

1371:                                             ; preds = %1367
  %1372 = load i32, ptr %53, align 4, !tbaa !9
  %1373 = add nsw i32 %1372, 1
  store i32 %1373, ptr %53, align 4, !tbaa !9
  %1374 = load ptr, ptr %21, align 8, !tbaa !5
  %1375 = load i32, ptr %49, align 4, !tbaa !9
  %1376 = load i32, ptr %42, align 4, !tbaa !9
  %1377 = load i32, ptr %29, align 4, !tbaa !9
  %1378 = mul nsw i32 %1376, %1377
  %1379 = add nsw i32 %1375, %1378
  %1380 = sext i32 %1379 to i64
  %1381 = getelementptr inbounds %struct.complex, ptr %1374, i64 %1380
  %1382 = call <2 x float> @Cf(ptr noundef %1381)
  store <2 x float> %1382, ptr %89, align 4
  %1383 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 0
  %1384 = load float, ptr %1383, align 4
  %1385 = getelementptr inbounds { float, float }, ptr %89, i32 0, i32 1
  %1386 = load float, ptr %1385, align 4
  %1387 = load ptr, ptr %26, align 8, !tbaa !5
  %1388 = load i32, ptr %53, align 4, !tbaa !9
  %1389 = sext i32 %1388 to i64
  %1390 = getelementptr inbounds float, ptr %1387, i64 %1389
  store float %1386, ptr %1390, align 4, !tbaa !11
  br label %1391

1391:                                             ; preds = %1371
  %1392 = load i32, ptr %49, align 4, !tbaa !9
  %1393 = add nsw i32 %1392, 1
  store i32 %1393, ptr %49, align 4, !tbaa !9
  br label %1367, !llvm.loop !37

1394:                                             ; preds = %1367
  br label %1395

1395:                                             ; preds = %1394
  %1396 = load i32, ptr %42, align 4, !tbaa !9
  %1397 = add nsw i32 %1396, 1
  store i32 %1397, ptr %42, align 4, !tbaa !9
  br label %1357, !llvm.loop !38

1398:                                             ; preds = %1357
  %1399 = load ptr, ptr %18, align 8, !tbaa !5
  %1400 = load ptr, ptr %26, align 8, !tbaa !5
  %1401 = load i32, ptr %57, align 4, !tbaa !9
  %1402 = load i32, ptr %82, align 4, !tbaa !9
  %1403 = add nsw i32 %1401, %1402
  %1404 = sext i32 %1403 to i64
  %1405 = getelementptr inbounds float, ptr %1400, i64 %1404
  %1406 = load ptr, ptr %17, align 8, !tbaa !5
  %1407 = load ptr, ptr %26, align 8, !tbaa !5
  %1408 = load i32, ptr %43, align 4, !tbaa !9
  %1409 = sext i32 %1408 to i64
  %1410 = getelementptr inbounds float, ptr %1407, i64 %1409
  %1411 = load ptr, ptr %26, align 8, !tbaa !5
  %1412 = load i32, ptr %61, align 4, !tbaa !9
  %1413 = sext i32 %1412 to i64
  %1414 = getelementptr inbounds float, ptr %1411, i64 %1413
  call void @sgemm_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %65, ptr noundef %1399, ptr noundef %65, ptr noundef @c_b10, ptr noundef %1405, ptr noundef %1406, ptr noundef %1410, ptr noundef %65, ptr noundef @c_b35, ptr noundef %1414, ptr noundef %65)
  %1415 = load i32, ptr %64, align 4, !tbaa !9
  %1416 = sub nsw i32 %1415, 1
  store i32 %1416, ptr %60, align 4, !tbaa !9
  %1417 = load i32, ptr %61, align 4, !tbaa !9
  %1418 = sub nsw i32 %1417, 1
  store i32 %1418, ptr %58, align 4, !tbaa !9
  %1419 = load ptr, ptr %18, align 8, !tbaa !5
  %1420 = load i32, ptr %1419, align 4, !tbaa !9
  store i32 %1420, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1421

1421:                                             ; preds = %1477, %1398
  %1422 = load i32, ptr %42, align 4, !tbaa !9
  %1423 = load i32, ptr %32, align 4, !tbaa !9
  %1424 = icmp sle i32 %1422, %1423
  br i1 %1424, label %1425, label %1480

1425:                                             ; preds = %1421
  %1426 = load i32, ptr %72, align 4, !tbaa !9
  %1427 = load i32, ptr %65, align 4, !tbaa !9
  %1428 = add nsw i32 %1426, %1427
  %1429 = sub nsw i32 %1428, 1
  store i32 %1429, ptr %33, align 4, !tbaa !9
  %1430 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1430, ptr %49, align 4, !tbaa !9
  br label %1431

1431:                                             ; preds = %1473, %1425
  %1432 = load i32, ptr %49, align 4, !tbaa !9
  %1433 = load i32, ptr %33, align 4, !tbaa !9
  %1434 = icmp sle i32 %1432, %1433
  br i1 %1434, label %1435, label %1476

1435:                                             ; preds = %1431
  %1436 = load i32, ptr %60, align 4, !tbaa !9
  %1437 = add nsw i32 %1436, 1
  store i32 %1437, ptr %60, align 4, !tbaa !9
  %1438 = load i32, ptr %58, align 4, !tbaa !9
  %1439 = add nsw i32 %1438, 1
  store i32 %1439, ptr %58, align 4, !tbaa !9
  %1440 = load i32, ptr %49, align 4, !tbaa !9
  %1441 = load i32, ptr %42, align 4, !tbaa !9
  %1442 = load i32, ptr %29, align 4, !tbaa !9
  %1443 = mul nsw i32 %1441, %1442
  %1444 = add nsw i32 %1440, %1443
  store i32 %1444, ptr %34, align 4, !tbaa !9
  %1445 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %1445, ptr %35, align 4, !tbaa !9
  %1446 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %1446, ptr %36, align 4, !tbaa !9
  %1447 = load ptr, ptr %26, align 8, !tbaa !5
  %1448 = load i32, ptr %35, align 4, !tbaa !9
  %1449 = sext i32 %1448 to i64
  %1450 = getelementptr inbounds float, ptr %1447, i64 %1449
  %1451 = load float, ptr %1450, align 4, !tbaa !11
  %1452 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 0
  store float %1451, ptr %1452, align 4, !tbaa !18
  %1453 = load ptr, ptr %26, align 8, !tbaa !5
  %1454 = load i32, ptr %36, align 4, !tbaa !9
  %1455 = sext i32 %1454 to i64
  %1456 = getelementptr inbounds float, ptr %1453, i64 %1455
  %1457 = load float, ptr %1456, align 4, !tbaa !11
  %1458 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 1
  store float %1457, ptr %1458, align 4, !tbaa !24
  %1459 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 0
  %1460 = load float, ptr %1459, align 4, !tbaa !18
  %1461 = load ptr, ptr %21, align 8, !tbaa !5
  %1462 = load i32, ptr %34, align 4, !tbaa !9
  %1463 = sext i32 %1462 to i64
  %1464 = getelementptr inbounds %struct.complex, ptr %1461, i64 %1463
  %1465 = getelementptr inbounds %struct.complex, ptr %1464, i32 0, i32 0
  store float %1460, ptr %1465, align 4, !tbaa !18
  %1466 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 1
  %1467 = load float, ptr %1466, align 4, !tbaa !24
  %1468 = load ptr, ptr %21, align 8, !tbaa !5
  %1469 = load i32, ptr %34, align 4, !tbaa !9
  %1470 = sext i32 %1469 to i64
  %1471 = getelementptr inbounds %struct.complex, ptr %1468, i64 %1470
  %1472 = getelementptr inbounds %struct.complex, ptr %1471, i32 0, i32 1
  store float %1467, ptr %1472, align 4, !tbaa !24
  br label %1473

1473:                                             ; preds = %1435
  %1474 = load i32, ptr %49, align 4, !tbaa !9
  %1475 = add nsw i32 %1474, 1
  store i32 %1475, ptr %49, align 4, !tbaa !9
  br label %1431, !llvm.loop !39

1476:                                             ; preds = %1431
  br label %1477

1477:                                             ; preds = %1476
  %1478 = load i32, ptr %42, align 4, !tbaa !9
  %1479 = add nsw i32 %1478, 1
  store i32 %1479, ptr %42, align 4, !tbaa !9
  br label %1421, !llvm.loop !40

1480:                                             ; preds = %1421
  %1481 = load ptr, ptr %18, align 8, !tbaa !5
  %1482 = load ptr, ptr %21, align 8, !tbaa !5
  %1483 = load i32, ptr %72, align 4, !tbaa !9
  %1484 = load i32, ptr %29, align 4, !tbaa !9
  %1485 = add nsw i32 %1483, %1484
  %1486 = sext i32 %1485 to i64
  %1487 = getelementptr inbounds %struct.complex, ptr %1482, i64 %1486
  %1488 = load ptr, ptr %22, align 8, !tbaa !5
  %1489 = load ptr, ptr %25, align 8, !tbaa !5
  %1490 = load i32, ptr %70, align 4, !tbaa !9
  %1491 = load i32, ptr %82, align 4, !tbaa !9
  %1492 = add nsw i32 %1490, %1491
  %1493 = sext i32 %1492 to i64
  %1494 = getelementptr inbounds %struct.complex, ptr %1489, i64 %1493
  %1495 = load ptr, ptr %17, align 8, !tbaa !5
  call void @clacpy_(ptr noundef @.str.2, ptr noundef %65, ptr noundef %1481, ptr noundef %1487, ptr noundef %1488, ptr noundef %1494, ptr noundef %1495)
  br label %1711

1496:                                             ; preds = %1237
  %1497 = load ptr, ptr %16, align 8, !tbaa !5
  %1498 = load ptr, ptr %19, align 8, !tbaa !5
  %1499 = load i32, ptr %72, align 4, !tbaa !9
  %1500 = sext i32 %1499 to i64
  %1501 = getelementptr inbounds float, ptr %1498, i64 %1500
  %1502 = load ptr, ptr %20, align 8, !tbaa !5
  %1503 = load i32, ptr %72, align 4, !tbaa !9
  %1504 = sext i32 %1503 to i64
  %1505 = getelementptr inbounds float, ptr %1502, i64 %1504
  %1506 = load ptr, ptr %26, align 8, !tbaa !5
  %1507 = load i32, ptr %57, align 4, !tbaa !9
  %1508 = load i32, ptr %82, align 4, !tbaa !9
  %1509 = add nsw i32 %1507, %1508
  %1510 = sext i32 %1509 to i64
  %1511 = getelementptr inbounds float, ptr %1506, i64 %1510
  %1512 = load ptr, ptr %17, align 8, !tbaa !5
  %1513 = load ptr, ptr %26, align 8, !tbaa !5
  %1514 = load i32, ptr %73, align 4, !tbaa !9
  %1515 = load i32, ptr %82, align 4, !tbaa !9
  %1516 = add nsw i32 %1514, %1515
  %1517 = sext i32 %1516 to i64
  %1518 = getelementptr inbounds float, ptr %1513, i64 %1517
  %1519 = load ptr, ptr %27, align 8, !tbaa !5
  %1520 = load i32, ptr %54, align 4, !tbaa !9
  %1521 = load i32, ptr %82, align 4, !tbaa !9
  %1522 = add nsw i32 %1520, %1521
  %1523 = sext i32 %1522 to i64
  %1524 = getelementptr inbounds i32, ptr %1519, i64 %1523
  %1525 = load ptr, ptr %26, align 8, !tbaa !5
  %1526 = load i32, ptr %39, align 4, !tbaa !9
  %1527 = load i32, ptr %82, align 4, !tbaa !9
  %1528 = add nsw i32 %1526, %1527
  %1529 = sext i32 %1528 to i64
  %1530 = getelementptr inbounds float, ptr %1525, i64 %1529
  %1531 = load ptr, ptr %26, align 8, !tbaa !5
  %1532 = load i32, ptr %40, align 4, !tbaa !9
  %1533 = load i32, ptr %82, align 4, !tbaa !9
  %1534 = add nsw i32 %1532, %1533
  %1535 = sext i32 %1534 to i64
  %1536 = getelementptr inbounds float, ptr %1531, i64 %1535
  %1537 = load ptr, ptr %26, align 8, !tbaa !5
  %1538 = load i32, ptr %59, align 4, !tbaa !9
  %1539 = load i32, ptr %82, align 4, !tbaa !9
  %1540 = add nsw i32 %1538, %1539
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds float, ptr %1537, i64 %1541
  %1543 = load ptr, ptr %26, align 8, !tbaa !5
  %1544 = load i32, ptr %62, align 4, !tbaa !9
  %1545 = load i32, ptr %82, align 4, !tbaa !9
  %1546 = add nsw i32 %1544, %1545
  %1547 = sext i32 %1546 to i64
  %1548 = getelementptr inbounds float, ptr %1543, i64 %1547
  %1549 = load ptr, ptr %27, align 8, !tbaa !5
  %1550 = load i32, ptr %77, align 4, !tbaa !9
  %1551 = load i32, ptr %82, align 4, !tbaa !9
  %1552 = add nsw i32 %1550, %1551
  %1553 = sext i32 %1552 to i64
  %1554 = getelementptr inbounds i32, ptr %1549, i64 %1553
  %1555 = load ptr, ptr %27, align 8, !tbaa !5
  %1556 = load i32, ptr %74, align 4, !tbaa !9
  %1557 = load i32, ptr %82, align 4, !tbaa !9
  %1558 = add nsw i32 %1556, %1557
  %1559 = sext i32 %1558 to i64
  %1560 = getelementptr inbounds i32, ptr %1555, i64 %1559
  %1561 = load ptr, ptr %17, align 8, !tbaa !5
  %1562 = load ptr, ptr %27, align 8, !tbaa !5
  %1563 = load i32, ptr %44, align 4, !tbaa !9
  %1564 = load i32, ptr %82, align 4, !tbaa !9
  %1565 = add nsw i32 %1563, %1564
  %1566 = sext i32 %1565 to i64
  %1567 = getelementptr inbounds i32, ptr %1562, i64 %1566
  %1568 = load ptr, ptr %26, align 8, !tbaa !5
  %1569 = load i32, ptr %76, align 4, !tbaa !9
  %1570 = load i32, ptr %82, align 4, !tbaa !9
  %1571 = add nsw i32 %1569, %1570
  %1572 = sext i32 %1571 to i64
  %1573 = getelementptr inbounds float, ptr %1568, i64 %1572
  %1574 = load ptr, ptr %26, align 8, !tbaa !5
  %1575 = load i32, ptr %51, align 4, !tbaa !9
  %1576 = load i32, ptr %82, align 4, !tbaa !9
  %1577 = add nsw i32 %1575, %1576
  %1578 = sext i32 %1577 to i64
  %1579 = getelementptr inbounds float, ptr %1574, i64 %1578
  %1580 = load ptr, ptr %26, align 8, !tbaa !5
  %1581 = load i32, ptr %56, align 4, !tbaa !9
  %1582 = load i32, ptr %82, align 4, !tbaa !9
  %1583 = add nsw i32 %1581, %1582
  %1584 = sext i32 %1583 to i64
  %1585 = getelementptr inbounds float, ptr %1580, i64 %1584
  %1586 = load ptr, ptr %26, align 8, !tbaa !5
  %1587 = load i32, ptr %79, align 4, !tbaa !9
  %1588 = sext i32 %1587 to i64
  %1589 = getelementptr inbounds float, ptr %1586, i64 %1588
  %1590 = load ptr, ptr %27, align 8, !tbaa !5
  %1591 = load i32, ptr %84, align 4, !tbaa !9
  %1592 = sext i32 %1591 to i64
  %1593 = getelementptr inbounds i32, ptr %1590, i64 %1592
  %1594 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasda_(ptr noundef %67, ptr noundef %1497, ptr noundef %65, ptr noundef %47, ptr noundef %1501, ptr noundef %1505, ptr noundef %1511, ptr noundef %1512, ptr noundef %1518, ptr noundef %1524, ptr noundef %1530, ptr noundef %1536, ptr noundef %1542, ptr noundef %1548, ptr noundef %1554, ptr noundef %1560, ptr noundef %1561, ptr noundef %1567, ptr noundef %1573, ptr noundef %1579, ptr noundef %1585, ptr noundef %1589, ptr noundef %1593, ptr noundef %1594)
  %1595 = load ptr, ptr %28, align 8, !tbaa !5
  %1596 = load i32, ptr %1595, align 4, !tbaa !9
  %1597 = icmp ne i32 %1596, 0
  br i1 %1597, label %1598, label %1599

1598:                                             ; preds = %1496
  store i32 1, ptr %86, align 4
  br label %2185

1599:                                             ; preds = %1496
  %1600 = load i32, ptr %70, align 4, !tbaa !9
  %1601 = load i32, ptr %82, align 4, !tbaa !9
  %1602 = add nsw i32 %1600, %1601
  store i32 %1602, ptr %48, align 4, !tbaa !9
  %1603 = load ptr, ptr %16, align 8, !tbaa !5
  %1604 = load ptr, ptr %18, align 8, !tbaa !5
  %1605 = load ptr, ptr %21, align 8, !tbaa !5
  %1606 = load i32, ptr %72, align 4, !tbaa !9
  %1607 = load i32, ptr %29, align 4, !tbaa !9
  %1608 = add nsw i32 %1606, %1607
  %1609 = sext i32 %1608 to i64
  %1610 = getelementptr inbounds %struct.complex, ptr %1605, i64 %1609
  %1611 = load ptr, ptr %22, align 8, !tbaa !5
  %1612 = load ptr, ptr %25, align 8, !tbaa !5
  %1613 = load i32, ptr %48, align 4, !tbaa !9
  %1614 = sext i32 %1613 to i64
  %1615 = getelementptr inbounds %struct.complex, ptr %1612, i64 %1614
  %1616 = load ptr, ptr %17, align 8, !tbaa !5
  %1617 = load ptr, ptr %26, align 8, !tbaa !5
  %1618 = load i32, ptr %57, align 4, !tbaa !9
  %1619 = load i32, ptr %82, align 4, !tbaa !9
  %1620 = add nsw i32 %1618, %1619
  %1621 = sext i32 %1620 to i64
  %1622 = getelementptr inbounds float, ptr %1617, i64 %1621
  %1623 = load ptr, ptr %17, align 8, !tbaa !5
  %1624 = load ptr, ptr %26, align 8, !tbaa !5
  %1625 = load i32, ptr %73, align 4, !tbaa !9
  %1626 = load i32, ptr %82, align 4, !tbaa !9
  %1627 = add nsw i32 %1625, %1626
  %1628 = sext i32 %1627 to i64
  %1629 = getelementptr inbounds float, ptr %1624, i64 %1628
  %1630 = load ptr, ptr %27, align 8, !tbaa !5
  %1631 = load i32, ptr %54, align 4, !tbaa !9
  %1632 = load i32, ptr %82, align 4, !tbaa !9
  %1633 = add nsw i32 %1631, %1632
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds i32, ptr %1630, i64 %1634
  %1636 = load ptr, ptr %26, align 8, !tbaa !5
  %1637 = load i32, ptr %39, align 4, !tbaa !9
  %1638 = load i32, ptr %82, align 4, !tbaa !9
  %1639 = add nsw i32 %1637, %1638
  %1640 = sext i32 %1639 to i64
  %1641 = getelementptr inbounds float, ptr %1636, i64 %1640
  %1642 = load ptr, ptr %26, align 8, !tbaa !5
  %1643 = load i32, ptr %40, align 4, !tbaa !9
  %1644 = load i32, ptr %82, align 4, !tbaa !9
  %1645 = add nsw i32 %1643, %1644
  %1646 = sext i32 %1645 to i64
  %1647 = getelementptr inbounds float, ptr %1642, i64 %1646
  %1648 = load ptr, ptr %26, align 8, !tbaa !5
  %1649 = load i32, ptr %59, align 4, !tbaa !9
  %1650 = load i32, ptr %82, align 4, !tbaa !9
  %1651 = add nsw i32 %1649, %1650
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds float, ptr %1648, i64 %1652
  %1654 = load ptr, ptr %26, align 8, !tbaa !5
  %1655 = load i32, ptr %62, align 4, !tbaa !9
  %1656 = load i32, ptr %82, align 4, !tbaa !9
  %1657 = add nsw i32 %1655, %1656
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds float, ptr %1654, i64 %1658
  %1660 = load ptr, ptr %27, align 8, !tbaa !5
  %1661 = load i32, ptr %77, align 4, !tbaa !9
  %1662 = load i32, ptr %82, align 4, !tbaa !9
  %1663 = add nsw i32 %1661, %1662
  %1664 = sext i32 %1663 to i64
  %1665 = getelementptr inbounds i32, ptr %1660, i64 %1664
  %1666 = load ptr, ptr %27, align 8, !tbaa !5
  %1667 = load i32, ptr %74, align 4, !tbaa !9
  %1668 = load i32, ptr %82, align 4, !tbaa !9
  %1669 = add nsw i32 %1667, %1668
  %1670 = sext i32 %1669 to i64
  %1671 = getelementptr inbounds i32, ptr %1666, i64 %1670
  %1672 = load ptr, ptr %17, align 8, !tbaa !5
  %1673 = load ptr, ptr %27, align 8, !tbaa !5
  %1674 = load i32, ptr %44, align 4, !tbaa !9
  %1675 = load i32, ptr %82, align 4, !tbaa !9
  %1676 = add nsw i32 %1674, %1675
  %1677 = sext i32 %1676 to i64
  %1678 = getelementptr inbounds i32, ptr %1673, i64 %1677
  %1679 = load ptr, ptr %26, align 8, !tbaa !5
  %1680 = load i32, ptr %76, align 4, !tbaa !9
  %1681 = load i32, ptr %82, align 4, !tbaa !9
  %1682 = add nsw i32 %1680, %1681
  %1683 = sext i32 %1682 to i64
  %1684 = getelementptr inbounds float, ptr %1679, i64 %1683
  %1685 = load ptr, ptr %26, align 8, !tbaa !5
  %1686 = load i32, ptr %51, align 4, !tbaa !9
  %1687 = load i32, ptr %82, align 4, !tbaa !9
  %1688 = add nsw i32 %1686, %1687
  %1689 = sext i32 %1688 to i64
  %1690 = getelementptr inbounds float, ptr %1685, i64 %1689
  %1691 = load ptr, ptr %26, align 8, !tbaa !5
  %1692 = load i32, ptr %56, align 4, !tbaa !9
  %1693 = load i32, ptr %82, align 4, !tbaa !9
  %1694 = add nsw i32 %1692, %1693
  %1695 = sext i32 %1694 to i64
  %1696 = getelementptr inbounds float, ptr %1691, i64 %1695
  %1697 = load ptr, ptr %26, align 8, !tbaa !5
  %1698 = load i32, ptr %79, align 4, !tbaa !9
  %1699 = sext i32 %1698 to i64
  %1700 = getelementptr inbounds float, ptr %1697, i64 %1699
  %1701 = load ptr, ptr %27, align 8, !tbaa !5
  %1702 = load i32, ptr %84, align 4, !tbaa !9
  %1703 = sext i32 %1702 to i64
  %1704 = getelementptr inbounds i32, ptr %1701, i64 %1703
  %1705 = load ptr, ptr %28, align 8, !tbaa !5
  call void @clalsa_(ptr noundef %68, ptr noundef %1603, ptr noundef %65, ptr noundef %1604, ptr noundef %1610, ptr noundef %1611, ptr noundef %1615, ptr noundef %1616, ptr noundef %1622, ptr noundef %1623, ptr noundef %1629, ptr noundef %1635, ptr noundef %1641, ptr noundef %1647, ptr noundef %1653, ptr noundef %1659, ptr noundef %1665, ptr noundef %1671, ptr noundef %1672, ptr noundef %1678, ptr noundef %1684, ptr noundef %1690, ptr noundef %1696, ptr noundef %1700, ptr noundef %1704, ptr noundef %1705)
  %1706 = load ptr, ptr %28, align 8, !tbaa !5
  %1707 = load i32, ptr %1706, align 4, !tbaa !9
  %1708 = icmp ne i32 %1707, 0
  br i1 %1708, label %1709, label %1710

1709:                                             ; preds = %1599
  store i32 1, ptr %86, align 4
  br label %2185

1710:                                             ; preds = %1599
  br label %1711

1711:                                             ; preds = %1710, %1480
  br label %1712

1712:                                             ; preds = %1711, %1221
  %1713 = load i32, ptr %52, align 4, !tbaa !9
  %1714 = add nsw i32 %1713, 1
  store i32 %1714, ptr %72, align 4, !tbaa !9
  br label %1715

1715:                                             ; preds = %1712, %1112
  br label %1716

1716:                                             ; preds = %1715
  %1717 = load i32, ptr %52, align 4, !tbaa !9
  %1718 = add nsw i32 %1717, 1
  store i32 %1718, ptr %52, align 4, !tbaa !9
  br label %1091, !llvm.loop !41

1719:                                             ; preds = %1091
  %1720 = load float, ptr %41, align 4, !tbaa !11
  %1721 = load ptr, ptr %19, align 8, !tbaa !5
  %1722 = load ptr, ptr %17, align 8, !tbaa !5
  %1723 = load ptr, ptr %19, align 8, !tbaa !5
  %1724 = getelementptr inbounds float, ptr %1723, i64 1
  %1725 = call i32 @isamax_(ptr noundef %1722, ptr noundef %1724, ptr noundef @c__1)
  %1726 = sext i32 %1725 to i64
  %1727 = getelementptr inbounds float, ptr %1721, i64 %1726
  %1728 = load float, ptr %1727, align 4, !tbaa !11
  store float %1728, ptr %37, align 4, !tbaa !11
  %1729 = load float, ptr %37, align 4, !tbaa !11
  %1730 = fcmp oge float %1729, 0.000000e+00
  br i1 %1730, label %1731, label %1733

1731:                                             ; preds = %1719
  %1732 = load float, ptr %37, align 4, !tbaa !11
  br label %1736

1733:                                             ; preds = %1719
  %1734 = load float, ptr %37, align 4, !tbaa !11
  %1735 = fneg float %1734
  br label %1736

1736:                                             ; preds = %1733, %1731
  %1737 = phi float [ %1732, %1731 ], [ %1735, %1733 ]
  %1738 = fmul float %1720, %1737
  store float %1738, ptr %85, align 4, !tbaa !11
  %1739 = load ptr, ptr %17, align 8, !tbaa !5
  %1740 = load i32, ptr %1739, align 4, !tbaa !9
  store i32 %1740, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !9
  br label %1741

1741:                                             ; preds = %1809, %1736
  %1742 = load i32, ptr %52, align 4, !tbaa !9
  %1743 = load i32, ptr %31, align 4, !tbaa !9
  %1744 = icmp sle i32 %1742, %1743
  br i1 %1744, label %1745, label %1812

1745:                                             ; preds = %1741
  %1746 = load ptr, ptr %19, align 8, !tbaa !5
  %1747 = load i32, ptr %52, align 4, !tbaa !9
  %1748 = sext i32 %1747 to i64
  %1749 = getelementptr inbounds float, ptr %1746, i64 %1748
  %1750 = load float, ptr %1749, align 4, !tbaa !11
  store float %1750, ptr %37, align 4, !tbaa !11
  %1751 = load float, ptr %37, align 4, !tbaa !11
  %1752 = fcmp oge float %1751, 0.000000e+00
  br i1 %1752, label %1753, label %1755

1753:                                             ; preds = %1745
  %1754 = load float, ptr %37, align 4, !tbaa !11
  br label %1758

1755:                                             ; preds = %1745
  %1756 = load float, ptr %37, align 4, !tbaa !11
  %1757 = fneg float %1756
  br label %1758

1758:                                             ; preds = %1755, %1753
  %1759 = phi float [ %1754, %1753 ], [ %1757, %1755 ]
  %1760 = load float, ptr %85, align 4, !tbaa !11
  %1761 = fcmp ole float %1759, %1760
  br i1 %1761, label %1762, label %1772

1762:                                             ; preds = %1758
  %1763 = load ptr, ptr %18, align 8, !tbaa !5
  %1764 = load ptr, ptr %25, align 8, !tbaa !5
  %1765 = load i32, ptr %70, align 4, !tbaa !9
  %1766 = load i32, ptr %52, align 4, !tbaa !9
  %1767 = add nsw i32 %1765, %1766
  %1768 = sub nsw i32 %1767, 1
  %1769 = sext i32 %1768 to i64
  %1770 = getelementptr inbounds %struct.complex, ptr %1764, i64 %1769
  %1771 = load ptr, ptr %17, align 8, !tbaa !5
  call void @claset_(ptr noundef @.str.2, ptr noundef @c__1, ptr noundef %1763, ptr noundef @c_b1, ptr noundef @c_b1, ptr noundef %1770, ptr noundef %1771)
  br label %1790

1772:                                             ; preds = %1758
  %1773 = load ptr, ptr %24, align 8, !tbaa !5
  %1774 = load i32, ptr %1773, align 4, !tbaa !9
  %1775 = add nsw i32 %1774, 1
  store i32 %1775, ptr %1773, align 4, !tbaa !9
  %1776 = load ptr, ptr %19, align 8, !tbaa !5
  %1777 = load i32, ptr %52, align 4, !tbaa !9
  %1778 = sext i32 %1777 to i64
  %1779 = getelementptr inbounds float, ptr %1776, i64 %1778
  %1780 = load ptr, ptr %18, align 8, !tbaa !5
  %1781 = load ptr, ptr %25, align 8, !tbaa !5
  %1782 = load i32, ptr %70, align 4, !tbaa !9
  %1783 = load i32, ptr %52, align 4, !tbaa !9
  %1784 = add nsw i32 %1782, %1783
  %1785 = sub nsw i32 %1784, 1
  %1786 = sext i32 %1785 to i64
  %1787 = getelementptr inbounds %struct.complex, ptr %1781, i64 %1786
  %1788 = load ptr, ptr %17, align 8, !tbaa !5
  %1789 = load ptr, ptr %28, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %1779, ptr noundef @c_b10, ptr noundef @c__1, ptr noundef %1780, ptr noundef %1787, ptr noundef %1788, ptr noundef %1789)
  br label %1790

1790:                                             ; preds = %1772, %1762
  %1791 = load ptr, ptr %19, align 8, !tbaa !5
  %1792 = load i32, ptr %52, align 4, !tbaa !9
  %1793 = sext i32 %1792 to i64
  %1794 = getelementptr inbounds float, ptr %1791, i64 %1793
  %1795 = load float, ptr %1794, align 4, !tbaa !11
  store float %1795, ptr %37, align 4, !tbaa !11
  %1796 = load float, ptr %37, align 4, !tbaa !11
  %1797 = fcmp oge float %1796, 0.000000e+00
  br i1 %1797, label %1798, label %1800

1798:                                             ; preds = %1790
  %1799 = load float, ptr %37, align 4, !tbaa !11
  br label %1803

1800:                                             ; preds = %1790
  %1801 = load float, ptr %37, align 4, !tbaa !11
  %1802 = fneg float %1801
  br label %1803

1803:                                             ; preds = %1800, %1798
  %1804 = phi float [ %1799, %1798 ], [ %1802, %1800 ]
  %1805 = load ptr, ptr %19, align 8, !tbaa !5
  %1806 = load i32, ptr %52, align 4, !tbaa !9
  %1807 = sext i32 %1806 to i64
  %1808 = getelementptr inbounds float, ptr %1805, i64 %1807
  store float %1804, ptr %1808, align 4, !tbaa !11
  br label %1809

1809:                                             ; preds = %1803
  %1810 = load i32, ptr %52, align 4, !tbaa !9
  %1811 = add nsw i32 %1810, 1
  store i32 %1811, ptr %52, align 4, !tbaa !9
  br label %1741, !llvm.loop !42

1812:                                             ; preds = %1741
  store i32 1, ptr %68, align 4, !tbaa !9
  %1813 = load i32, ptr %45, align 4, !tbaa !9
  store i32 %1813, ptr %31, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !9
  br label %1814

1814:                                             ; preds = %2164, %1812
  %1815 = load i32, ptr %52, align 4, !tbaa !9
  %1816 = load i32, ptr %31, align 4, !tbaa !9
  %1817 = icmp sle i32 %1815, %1816
  br i1 %1817, label %1818, label %2167

1818:                                             ; preds = %1814
  %1819 = load ptr, ptr %27, align 8, !tbaa !5
  %1820 = load i32, ptr %52, align 4, !tbaa !9
  %1821 = sext i32 %1820 to i64
  %1822 = getelementptr inbounds i32, ptr %1819, i64 %1821
  %1823 = load i32, ptr %1822, align 4, !tbaa !9
  store i32 %1823, ptr %72, align 4, !tbaa !9
  %1824 = load i32, ptr %72, align 4, !tbaa !9
  %1825 = sub nsw i32 %1824, 1
  store i32 %1825, ptr %82, align 4, !tbaa !9
  %1826 = load ptr, ptr %27, align 8, !tbaa !5
  %1827 = load i32, ptr %63, align 4, !tbaa !9
  %1828 = load i32, ptr %52, align 4, !tbaa !9
  %1829 = add nsw i32 %1827, %1828
  %1830 = sub nsw i32 %1829, 1
  %1831 = sext i32 %1830 to i64
  %1832 = getelementptr inbounds i32, ptr %1826, i64 %1831
  %1833 = load i32, ptr %1832, align 4, !tbaa !9
  store i32 %1833, ptr %65, align 4, !tbaa !9
  %1834 = load i32, ptr %70, align 4, !tbaa !9
  %1835 = load i32, ptr %82, align 4, !tbaa !9
  %1836 = add nsw i32 %1834, %1835
  store i32 %1836, ptr %48, align 4, !tbaa !9
  %1837 = load i32, ptr %65, align 4, !tbaa !9
  %1838 = icmp eq i32 %1837, 1
  br i1 %1838, label %1839, label %1853

1839:                                             ; preds = %1818
  %1840 = load ptr, ptr %18, align 8, !tbaa !5
  %1841 = load ptr, ptr %25, align 8, !tbaa !5
  %1842 = load i32, ptr %48, align 4, !tbaa !9
  %1843 = sext i32 %1842 to i64
  %1844 = getelementptr inbounds %struct.complex, ptr %1841, i64 %1843
  %1845 = load ptr, ptr %17, align 8, !tbaa !5
  %1846 = load ptr, ptr %21, align 8, !tbaa !5
  %1847 = load i32, ptr %72, align 4, !tbaa !9
  %1848 = load i32, ptr %29, align 4, !tbaa !9
  %1849 = add nsw i32 %1847, %1848
  %1850 = sext i32 %1849 to i64
  %1851 = getelementptr inbounds %struct.complex, ptr %1846, i64 %1850
  %1852 = load ptr, ptr %22, align 8, !tbaa !5
  call void @ccopy_(ptr noundef %1840, ptr noundef %1844, ptr noundef %1845, ptr noundef %1851, ptr noundef %1852)
  br label %2163

1853:                                             ; preds = %1818
  %1854 = load i32, ptr %65, align 4, !tbaa !9
  %1855 = load ptr, ptr %16, align 8, !tbaa !5
  %1856 = load i32, ptr %1855, align 4, !tbaa !9
  %1857 = icmp sle i32 %1854, %1856
  br i1 %1857, label %1858, label %2053

1858:                                             ; preds = %1853
  %1859 = load i32, ptr %48, align 4, !tbaa !9
  %1860 = load ptr, ptr %17, align 8, !tbaa !5
  %1861 = load i32, ptr %1860, align 4, !tbaa !9
  %1862 = sub nsw i32 %1859, %1861
  %1863 = sub nsw i32 %1862, 1
  store i32 %1863, ptr %53, align 4, !tbaa !9
  %1864 = load i32, ptr %43, align 4, !tbaa !9
  %1865 = sub nsw i32 %1864, 1
  store i32 %1865, ptr %60, align 4, !tbaa !9
  %1866 = load ptr, ptr %18, align 8, !tbaa !5
  %1867 = load i32, ptr %1866, align 4, !tbaa !9
  store i32 %1867, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1868

1868:                                             ; preds = %1902, %1858
  %1869 = load i32, ptr %42, align 4, !tbaa !9
  %1870 = load i32, ptr %32, align 4, !tbaa !9
  %1871 = icmp sle i32 %1869, %1870
  br i1 %1871, label %1872, label %1905

1872:                                             ; preds = %1868
  %1873 = load ptr, ptr %17, align 8, !tbaa !5
  %1874 = load i32, ptr %1873, align 4, !tbaa !9
  %1875 = load i32, ptr %53, align 4, !tbaa !9
  %1876 = add nsw i32 %1875, %1874
  store i32 %1876, ptr %53, align 4, !tbaa !9
  %1877 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %1877, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %1878

1878:                                             ; preds = %1898, %1872
  %1879 = load i32, ptr %49, align 4, !tbaa !9
  %1880 = load i32, ptr %33, align 4, !tbaa !9
  %1881 = icmp sle i32 %1879, %1880
  br i1 %1881, label %1882, label %1901

1882:                                             ; preds = %1878
  %1883 = load i32, ptr %60, align 4, !tbaa !9
  %1884 = add nsw i32 %1883, 1
  store i32 %1884, ptr %60, align 4, !tbaa !9
  %1885 = load i32, ptr %53, align 4, !tbaa !9
  %1886 = load i32, ptr %49, align 4, !tbaa !9
  %1887 = add nsw i32 %1885, %1886
  store i32 %1887, ptr %34, align 4, !tbaa !9
  %1888 = load ptr, ptr %25, align 8, !tbaa !5
  %1889 = load i32, ptr %34, align 4, !tbaa !9
  %1890 = sext i32 %1889 to i64
  %1891 = getelementptr inbounds %struct.complex, ptr %1888, i64 %1890
  %1892 = getelementptr inbounds %struct.complex, ptr %1891, i32 0, i32 0
  %1893 = load float, ptr %1892, align 4, !tbaa !18
  %1894 = load ptr, ptr %26, align 8, !tbaa !5
  %1895 = load i32, ptr %60, align 4, !tbaa !9
  %1896 = sext i32 %1895 to i64
  %1897 = getelementptr inbounds float, ptr %1894, i64 %1896
  store float %1893, ptr %1897, align 4, !tbaa !11
  br label %1898

1898:                                             ; preds = %1882
  %1899 = load i32, ptr %49, align 4, !tbaa !9
  %1900 = add nsw i32 %1899, 1
  store i32 %1900, ptr %49, align 4, !tbaa !9
  br label %1878, !llvm.loop !43

1901:                                             ; preds = %1878
  br label %1902

1902:                                             ; preds = %1901
  %1903 = load i32, ptr %42, align 4, !tbaa !9
  %1904 = add nsw i32 %1903, 1
  store i32 %1904, ptr %42, align 4, !tbaa !9
  br label %1868, !llvm.loop !44

1905:                                             ; preds = %1868
  %1906 = load ptr, ptr %18, align 8, !tbaa !5
  %1907 = load ptr, ptr %26, align 8, !tbaa !5
  %1908 = load i32, ptr %73, align 4, !tbaa !9
  %1909 = load i32, ptr %82, align 4, !tbaa !9
  %1910 = add nsw i32 %1908, %1909
  %1911 = sext i32 %1910 to i64
  %1912 = getelementptr inbounds float, ptr %1907, i64 %1911
  %1913 = load ptr, ptr %17, align 8, !tbaa !5
  %1914 = load ptr, ptr %26, align 8, !tbaa !5
  %1915 = load i32, ptr %43, align 4, !tbaa !9
  %1916 = sext i32 %1915 to i64
  %1917 = getelementptr inbounds float, ptr %1914, i64 %1916
  %1918 = load ptr, ptr %26, align 8, !tbaa !5
  %1919 = load i32, ptr %64, align 4, !tbaa !9
  %1920 = sext i32 %1919 to i64
  %1921 = getelementptr inbounds float, ptr %1918, i64 %1920
  call void @sgemm_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %65, ptr noundef %1906, ptr noundef %65, ptr noundef @c_b10, ptr noundef %1912, ptr noundef %1913, ptr noundef %1917, ptr noundef %65, ptr noundef @c_b35, ptr noundef %1921, ptr noundef %65)
  %1922 = load i32, ptr %48, align 4, !tbaa !9
  %1923 = load ptr, ptr %17, align 8, !tbaa !5
  %1924 = load i32, ptr %1923, align 4, !tbaa !9
  %1925 = sub nsw i32 %1922, %1924
  %1926 = sub nsw i32 %1925, 1
  store i32 %1926, ptr %53, align 4, !tbaa !9
  %1927 = load i32, ptr %43, align 4, !tbaa !9
  %1928 = sub nsw i32 %1927, 1
  store i32 %1928, ptr %58, align 4, !tbaa !9
  %1929 = load ptr, ptr %18, align 8, !tbaa !5
  %1930 = load i32, ptr %1929, align 4, !tbaa !9
  store i32 %1930, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1931

1931:                                             ; preds = %1967, %1905
  %1932 = load i32, ptr %42, align 4, !tbaa !9
  %1933 = load i32, ptr %32, align 4, !tbaa !9
  %1934 = icmp sle i32 %1932, %1933
  br i1 %1934, label %1935, label %1970

1935:                                             ; preds = %1931
  %1936 = load ptr, ptr %17, align 8, !tbaa !5
  %1937 = load i32, ptr %1936, align 4, !tbaa !9
  %1938 = load i32, ptr %53, align 4, !tbaa !9
  %1939 = add nsw i32 %1938, %1937
  store i32 %1939, ptr %53, align 4, !tbaa !9
  %1940 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %1940, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %1941

1941:                                             ; preds = %1963, %1935
  %1942 = load i32, ptr %49, align 4, !tbaa !9
  %1943 = load i32, ptr %33, align 4, !tbaa !9
  %1944 = icmp sle i32 %1942, %1943
  br i1 %1944, label %1945, label %1966

1945:                                             ; preds = %1941
  %1946 = load i32, ptr %58, align 4, !tbaa !9
  %1947 = add nsw i32 %1946, 1
  store i32 %1947, ptr %58, align 4, !tbaa !9
  %1948 = load ptr, ptr %25, align 8, !tbaa !5
  %1949 = load i32, ptr %53, align 4, !tbaa !9
  %1950 = load i32, ptr %49, align 4, !tbaa !9
  %1951 = add nsw i32 %1949, %1950
  %1952 = sext i32 %1951 to i64
  %1953 = getelementptr inbounds %struct.complex, ptr %1948, i64 %1952
  %1954 = call <2 x float> @Cf(ptr noundef %1953)
  store <2 x float> %1954, ptr %90, align 4
  %1955 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 0
  %1956 = load float, ptr %1955, align 4
  %1957 = getelementptr inbounds { float, float }, ptr %90, i32 0, i32 1
  %1958 = load float, ptr %1957, align 4
  %1959 = load ptr, ptr %26, align 8, !tbaa !5
  %1960 = load i32, ptr %58, align 4, !tbaa !9
  %1961 = sext i32 %1960 to i64
  %1962 = getelementptr inbounds float, ptr %1959, i64 %1961
  store float %1958, ptr %1962, align 4, !tbaa !11
  br label %1963

1963:                                             ; preds = %1945
  %1964 = load i32, ptr %49, align 4, !tbaa !9
  %1965 = add nsw i32 %1964, 1
  store i32 %1965, ptr %49, align 4, !tbaa !9
  br label %1941, !llvm.loop !45

1966:                                             ; preds = %1941
  br label %1967

1967:                                             ; preds = %1966
  %1968 = load i32, ptr %42, align 4, !tbaa !9
  %1969 = add nsw i32 %1968, 1
  store i32 %1969, ptr %42, align 4, !tbaa !9
  br label %1931, !llvm.loop !46

1970:                                             ; preds = %1931
  %1971 = load ptr, ptr %18, align 8, !tbaa !5
  %1972 = load ptr, ptr %26, align 8, !tbaa !5
  %1973 = load i32, ptr %73, align 4, !tbaa !9
  %1974 = load i32, ptr %82, align 4, !tbaa !9
  %1975 = add nsw i32 %1973, %1974
  %1976 = sext i32 %1975 to i64
  %1977 = getelementptr inbounds float, ptr %1972, i64 %1976
  %1978 = load ptr, ptr %17, align 8, !tbaa !5
  %1979 = load ptr, ptr %26, align 8, !tbaa !5
  %1980 = load i32, ptr %43, align 4, !tbaa !9
  %1981 = sext i32 %1980 to i64
  %1982 = getelementptr inbounds float, ptr %1979, i64 %1981
  %1983 = load ptr, ptr %26, align 8, !tbaa !5
  %1984 = load i32, ptr %61, align 4, !tbaa !9
  %1985 = sext i32 %1984 to i64
  %1986 = getelementptr inbounds float, ptr %1983, i64 %1985
  call void @sgemm_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %65, ptr noundef %1971, ptr noundef %65, ptr noundef @c_b10, ptr noundef %1977, ptr noundef %1978, ptr noundef %1982, ptr noundef %65, ptr noundef @c_b35, ptr noundef %1986, ptr noundef %65)
  %1987 = load i32, ptr %64, align 4, !tbaa !9
  %1988 = sub nsw i32 %1987, 1
  store i32 %1988, ptr %60, align 4, !tbaa !9
  %1989 = load i32, ptr %61, align 4, !tbaa !9
  %1990 = sub nsw i32 %1989, 1
  store i32 %1990, ptr %58, align 4, !tbaa !9
  %1991 = load ptr, ptr %18, align 8, !tbaa !5
  %1992 = load i32, ptr %1991, align 4, !tbaa !9
  store i32 %1992, ptr %32, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %1993

1993:                                             ; preds = %2049, %1970
  %1994 = load i32, ptr %42, align 4, !tbaa !9
  %1995 = load i32, ptr %32, align 4, !tbaa !9
  %1996 = icmp sle i32 %1994, %1995
  br i1 %1996, label %1997, label %2052

1997:                                             ; preds = %1993
  %1998 = load i32, ptr %72, align 4, !tbaa !9
  %1999 = load i32, ptr %65, align 4, !tbaa !9
  %2000 = add nsw i32 %1998, %1999
  %2001 = sub nsw i32 %2000, 1
  store i32 %2001, ptr %33, align 4, !tbaa !9
  %2002 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2002, ptr %49, align 4, !tbaa !9
  br label %2003

2003:                                             ; preds = %2045, %1997
  %2004 = load i32, ptr %49, align 4, !tbaa !9
  %2005 = load i32, ptr %33, align 4, !tbaa !9
  %2006 = icmp sle i32 %2004, %2005
  br i1 %2006, label %2007, label %2048

2007:                                             ; preds = %2003
  %2008 = load i32, ptr %60, align 4, !tbaa !9
  %2009 = add nsw i32 %2008, 1
  store i32 %2009, ptr %60, align 4, !tbaa !9
  %2010 = load i32, ptr %58, align 4, !tbaa !9
  %2011 = add nsw i32 %2010, 1
  store i32 %2011, ptr %58, align 4, !tbaa !9
  %2012 = load i32, ptr %49, align 4, !tbaa !9
  %2013 = load i32, ptr %42, align 4, !tbaa !9
  %2014 = load i32, ptr %29, align 4, !tbaa !9
  %2015 = mul nsw i32 %2013, %2014
  %2016 = add nsw i32 %2012, %2015
  store i32 %2016, ptr %34, align 4, !tbaa !9
  %2017 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %2017, ptr %35, align 4, !tbaa !9
  %2018 = load i32, ptr %58, align 4, !tbaa !9
  store i32 %2018, ptr %36, align 4, !tbaa !9
  %2019 = load ptr, ptr %26, align 8, !tbaa !5
  %2020 = load i32, ptr %35, align 4, !tbaa !9
  %2021 = sext i32 %2020 to i64
  %2022 = getelementptr inbounds float, ptr %2019, i64 %2021
  %2023 = load float, ptr %2022, align 4, !tbaa !11
  %2024 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 0
  store float %2023, ptr %2024, align 4, !tbaa !18
  %2025 = load ptr, ptr %26, align 8, !tbaa !5
  %2026 = load i32, ptr %36, align 4, !tbaa !9
  %2027 = sext i32 %2026 to i64
  %2028 = getelementptr inbounds float, ptr %2025, i64 %2027
  %2029 = load float, ptr %2028, align 4, !tbaa !11
  %2030 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 1
  store float %2029, ptr %2030, align 4, !tbaa !24
  %2031 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 0
  %2032 = load float, ptr %2031, align 4, !tbaa !18
  %2033 = load ptr, ptr %21, align 8, !tbaa !5
  %2034 = load i32, ptr %34, align 4, !tbaa !9
  %2035 = sext i32 %2034 to i64
  %2036 = getelementptr inbounds %struct.complex, ptr %2033, i64 %2035
  %2037 = getelementptr inbounds %struct.complex, ptr %2036, i32 0, i32 0
  store float %2032, ptr %2037, align 4, !tbaa !18
  %2038 = getelementptr inbounds %struct.complex, ptr %38, i32 0, i32 1
  %2039 = load float, ptr %2038, align 4, !tbaa !24
  %2040 = load ptr, ptr %21, align 8, !tbaa !5
  %2041 = load i32, ptr %34, align 4, !tbaa !9
  %2042 = sext i32 %2041 to i64
  %2043 = getelementptr inbounds %struct.complex, ptr %2040, i64 %2042
  %2044 = getelementptr inbounds %struct.complex, ptr %2043, i32 0, i32 1
  store float %2039, ptr %2044, align 4, !tbaa !24
  br label %2045

2045:                                             ; preds = %2007
  %2046 = load i32, ptr %49, align 4, !tbaa !9
  %2047 = add nsw i32 %2046, 1
  store i32 %2047, ptr %49, align 4, !tbaa !9
  br label %2003, !llvm.loop !47

2048:                                             ; preds = %2003
  br label %2049

2049:                                             ; preds = %2048
  %2050 = load i32, ptr %42, align 4, !tbaa !9
  %2051 = add nsw i32 %2050, 1
  store i32 %2051, ptr %42, align 4, !tbaa !9
  br label %1993, !llvm.loop !48

2052:                                             ; preds = %1993
  br label %2162

2053:                                             ; preds = %1853
  %2054 = load ptr, ptr %16, align 8, !tbaa !5
  %2055 = load ptr, ptr %18, align 8, !tbaa !5
  %2056 = load ptr, ptr %25, align 8, !tbaa !5
  %2057 = load i32, ptr %48, align 4, !tbaa !9
  %2058 = sext i32 %2057 to i64
  %2059 = getelementptr inbounds %struct.complex, ptr %2056, i64 %2058
  %2060 = load ptr, ptr %17, align 8, !tbaa !5
  %2061 = load ptr, ptr %21, align 8, !tbaa !5
  %2062 = load i32, ptr %72, align 4, !tbaa !9
  %2063 = load i32, ptr %29, align 4, !tbaa !9
  %2064 = add nsw i32 %2062, %2063
  %2065 = sext i32 %2064 to i64
  %2066 = getelementptr inbounds %struct.complex, ptr %2061, i64 %2065
  %2067 = load ptr, ptr %22, align 8, !tbaa !5
  %2068 = load ptr, ptr %26, align 8, !tbaa !5
  %2069 = load i32, ptr %57, align 4, !tbaa !9
  %2070 = load i32, ptr %82, align 4, !tbaa !9
  %2071 = add nsw i32 %2069, %2070
  %2072 = sext i32 %2071 to i64
  %2073 = getelementptr inbounds float, ptr %2068, i64 %2072
  %2074 = load ptr, ptr %17, align 8, !tbaa !5
  %2075 = load ptr, ptr %26, align 8, !tbaa !5
  %2076 = load i32, ptr %73, align 4, !tbaa !9
  %2077 = load i32, ptr %82, align 4, !tbaa !9
  %2078 = add nsw i32 %2076, %2077
  %2079 = sext i32 %2078 to i64
  %2080 = getelementptr inbounds float, ptr %2075, i64 %2079
  %2081 = load ptr, ptr %27, align 8, !tbaa !5
  %2082 = load i32, ptr %54, align 4, !tbaa !9
  %2083 = load i32, ptr %82, align 4, !tbaa !9
  %2084 = add nsw i32 %2082, %2083
  %2085 = sext i32 %2084 to i64
  %2086 = getelementptr inbounds i32, ptr %2081, i64 %2085
  %2087 = load ptr, ptr %26, align 8, !tbaa !5
  %2088 = load i32, ptr %39, align 4, !tbaa !9
  %2089 = load i32, ptr %82, align 4, !tbaa !9
  %2090 = add nsw i32 %2088, %2089
  %2091 = sext i32 %2090 to i64
  %2092 = getelementptr inbounds float, ptr %2087, i64 %2091
  %2093 = load ptr, ptr %26, align 8, !tbaa !5
  %2094 = load i32, ptr %40, align 4, !tbaa !9
  %2095 = load i32, ptr %82, align 4, !tbaa !9
  %2096 = add nsw i32 %2094, %2095
  %2097 = sext i32 %2096 to i64
  %2098 = getelementptr inbounds float, ptr %2093, i64 %2097
  %2099 = load ptr, ptr %26, align 8, !tbaa !5
  %2100 = load i32, ptr %59, align 4, !tbaa !9
  %2101 = load i32, ptr %82, align 4, !tbaa !9
  %2102 = add nsw i32 %2100, %2101
  %2103 = sext i32 %2102 to i64
  %2104 = getelementptr inbounds float, ptr %2099, i64 %2103
  %2105 = load ptr, ptr %26, align 8, !tbaa !5
  %2106 = load i32, ptr %62, align 4, !tbaa !9
  %2107 = load i32, ptr %82, align 4, !tbaa !9
  %2108 = add nsw i32 %2106, %2107
  %2109 = sext i32 %2108 to i64
  %2110 = getelementptr inbounds float, ptr %2105, i64 %2109
  %2111 = load ptr, ptr %27, align 8, !tbaa !5
  %2112 = load i32, ptr %77, align 4, !tbaa !9
  %2113 = load i32, ptr %82, align 4, !tbaa !9
  %2114 = add nsw i32 %2112, %2113
  %2115 = sext i32 %2114 to i64
  %2116 = getelementptr inbounds i32, ptr %2111, i64 %2115
  %2117 = load ptr, ptr %27, align 8, !tbaa !5
  %2118 = load i32, ptr %74, align 4, !tbaa !9
  %2119 = load i32, ptr %82, align 4, !tbaa !9
  %2120 = add nsw i32 %2118, %2119
  %2121 = sext i32 %2120 to i64
  %2122 = getelementptr inbounds i32, ptr %2117, i64 %2121
  %2123 = load ptr, ptr %17, align 8, !tbaa !5
  %2124 = load ptr, ptr %27, align 8, !tbaa !5
  %2125 = load i32, ptr %44, align 4, !tbaa !9
  %2126 = load i32, ptr %82, align 4, !tbaa !9
  %2127 = add nsw i32 %2125, %2126
  %2128 = sext i32 %2127 to i64
  %2129 = getelementptr inbounds i32, ptr %2124, i64 %2128
  %2130 = load ptr, ptr %26, align 8, !tbaa !5
  %2131 = load i32, ptr %76, align 4, !tbaa !9
  %2132 = load i32, ptr %82, align 4, !tbaa !9
  %2133 = add nsw i32 %2131, %2132
  %2134 = sext i32 %2133 to i64
  %2135 = getelementptr inbounds float, ptr %2130, i64 %2134
  %2136 = load ptr, ptr %26, align 8, !tbaa !5
  %2137 = load i32, ptr %51, align 4, !tbaa !9
  %2138 = load i32, ptr %82, align 4, !tbaa !9
  %2139 = add nsw i32 %2137, %2138
  %2140 = sext i32 %2139 to i64
  %2141 = getelementptr inbounds float, ptr %2136, i64 %2140
  %2142 = load ptr, ptr %26, align 8, !tbaa !5
  %2143 = load i32, ptr %56, align 4, !tbaa !9
  %2144 = load i32, ptr %82, align 4, !tbaa !9
  %2145 = add nsw i32 %2143, %2144
  %2146 = sext i32 %2145 to i64
  %2147 = getelementptr inbounds float, ptr %2142, i64 %2146
  %2148 = load ptr, ptr %26, align 8, !tbaa !5
  %2149 = load i32, ptr %79, align 4, !tbaa !9
  %2150 = sext i32 %2149 to i64
  %2151 = getelementptr inbounds float, ptr %2148, i64 %2150
  %2152 = load ptr, ptr %27, align 8, !tbaa !5
  %2153 = load i32, ptr %84, align 4, !tbaa !9
  %2154 = sext i32 %2153 to i64
  %2155 = getelementptr inbounds i32, ptr %2152, i64 %2154
  %2156 = load ptr, ptr %28, align 8, !tbaa !5
  call void @clalsa_(ptr noundef %68, ptr noundef %2054, ptr noundef %65, ptr noundef %2055, ptr noundef %2059, ptr noundef %2060, ptr noundef %2066, ptr noundef %2067, ptr noundef %2073, ptr noundef %2074, ptr noundef %2080, ptr noundef %2086, ptr noundef %2092, ptr noundef %2098, ptr noundef %2104, ptr noundef %2110, ptr noundef %2116, ptr noundef %2122, ptr noundef %2123, ptr noundef %2129, ptr noundef %2135, ptr noundef %2141, ptr noundef %2147, ptr noundef %2151, ptr noundef %2155, ptr noundef %2156)
  %2157 = load ptr, ptr %28, align 8, !tbaa !5
  %2158 = load i32, ptr %2157, align 4, !tbaa !9
  %2159 = icmp ne i32 %2158, 0
  br i1 %2159, label %2160, label %2161

2160:                                             ; preds = %2053
  store i32 1, ptr %86, align 4
  br label %2185

2161:                                             ; preds = %2053
  br label %2162

2162:                                             ; preds = %2161, %2052
  br label %2163

2163:                                             ; preds = %2162, %1839
  br label %2164

2164:                                             ; preds = %2163
  %2165 = load i32, ptr %52, align 4, !tbaa !9
  %2166 = add nsw i32 %2165, 1
  store i32 %2166, ptr %52, align 4, !tbaa !9
  br label %1814, !llvm.loop !49

2167:                                             ; preds = %1814
  %2168 = load ptr, ptr %17, align 8, !tbaa !5
  %2169 = load ptr, ptr %19, align 8, !tbaa !5
  %2170 = getelementptr inbounds float, ptr %2169, i64 1
  %2171 = load ptr, ptr %17, align 8, !tbaa !5
  %2172 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b10, ptr noundef %75, ptr noundef %2168, ptr noundef @c__1, ptr noundef %2170, ptr noundef %2171, ptr noundef %2172)
  %2173 = load ptr, ptr %17, align 8, !tbaa !5
  %2174 = load ptr, ptr %19, align 8, !tbaa !5
  %2175 = getelementptr inbounds float, ptr %2174, i64 1
  %2176 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasrt_(ptr noundef @.str.8, ptr noundef %2173, ptr noundef %2175, ptr noundef %2176)
  %2177 = load ptr, ptr %17, align 8, !tbaa !5
  %2178 = load ptr, ptr %18, align 8, !tbaa !5
  %2179 = load ptr, ptr %21, align 8, !tbaa !5
  %2180 = load i32, ptr %30, align 4, !tbaa !9
  %2181 = sext i32 %2180 to i64
  %2182 = getelementptr inbounds %struct.complex, ptr %2179, i64 %2181
  %2183 = load ptr, ptr %22, align 8, !tbaa !5
  %2184 = load ptr, ptr %28, align 8, !tbaa !5
  call void @clascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %75, ptr noundef @c_b10, ptr noundef %2177, ptr noundef %2178, ptr noundef %2182, ptr noundef %2183, ptr noundef %2184)
  store i32 1, ptr %86, align 4
  br label %2185

2185:                                             ; preds = %2167, %2160, %1709, %1598, %1291, %896, %465, %370, %210, %165, %141
  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 4, 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
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #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 float @slamch_(ptr noundef) #2

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

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

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

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

declare float @slanst_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

declare void @slasdq_(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

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 i32 @isamax_(ptr noundef, ptr noundef, ptr noundef) #2

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

; Function Attrs: nounwind
declare double @log(double noundef) #4

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

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

declare void @slasda_(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

declare void @clalsa_(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, 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 "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, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = !{!19, !12, i64 0}
!19 = !{!"", !12, i64 0, !12, i64 4}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}
!23 = distinct !{!23, !15}
!24 = !{!19, !12, i64 4}
!25 = distinct !{!25, !15}
!26 = distinct !{!26, !15}
!27 = distinct !{!27, !15}
!28 = distinct !{!28, !15}
!29 = distinct !{!29, !15}
!30 = distinct !{!30, !15}
!31 = distinct !{!31, !15}
!32 = distinct !{!32, !15}
!33 = distinct !{!33, !15}
!34 = distinct !{!34, !15}
!35 = distinct !{!35, !15}
!36 = distinct !{!36, !15}
!37 = distinct !{!37, !15}
!38 = distinct !{!38, !15}
!39 = distinct !{!39, !15}
!40 = distinct !{!40, !15}
!41 = distinct !{!41, !15}
!42 = distinct !{!42, !15}
!43 = distinct !{!43, !15}
!44 = distinct !{!44, !15}
!45 = distinct !{!45, !15}
!46 = distinct !{!46, !15}
!47 = distinct !{!47, !15}
!48 = distinct !{!48, !15}
!49 = distinct !{!49, !15}


; 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 [8 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b1 = external hidden global %struct.complex, align 4
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c_b10 = external hidden global float, align 4
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b35 = external hidden global float, align 4
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @clalsd_(ptr nocapture noundef readonly %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr nocapture noundef readonly %8, ptr nocapture noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13) local_unnamed_addr #0 {
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca float, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  %25 = getelementptr inbounds i8, ptr %4, i64 -4
  %26 = getelementptr inbounds i8, ptr %5, i64 -4
  %27 = load i32, ptr %7, align 4, !tbaa !5
  %narrow = xor i32 %27, -1
  %28 = sext i32 %narrow to i64
  %29 = getelementptr inbounds %struct.complex, ptr %6, i64 %28
  %30 = getelementptr inbounds i8, ptr %10, i64 -8
  %31 = getelementptr inbounds i8, ptr %11, i64 -4
  %32 = getelementptr inbounds i8, ptr %12, i64 -4
  store i32 0, ptr %13, align 4, !tbaa !5
  %33 = load i32, ptr %2, align 4, !tbaa !5
  %34 = icmp slt i32 %33, 0
  br i1 %34, label %.thread, label %35

35:                                               ; preds = %14
  %36 = load i32, ptr %3, align 4, !tbaa !5
  %37 = icmp slt i32 %36, 1
  br i1 %37, label %.thread, label %38

38:                                               ; preds = %35
  %39 = load i32, ptr %7, align 4, !tbaa !5
  %40 = icmp slt i32 %39, 1
  %41 = icmp slt i32 %39, %33
  %or.cond = or i1 %40, %41
  br i1 %or.cond, label %.thread, label %43

.thread:                                          ; preds = %38, %35, %14
  %.sink = phi i32 [ -3, %14 ], [ -4, %35 ], [ -8, %38 ]
  %.neg1468 = phi i32 [ 3, %14 ], [ 4, %35 ], [ 8, %38 ]
  store i32 %.sink, ptr %13, align 4, !tbaa !5
  store i32 %.neg1468, ptr %15, align 4, !tbaa !5
  %42 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %15, i32 noundef 6) #6
  br label %.loopexit1031

43:                                               ; preds = %38
  %44 = tail call float @slamch_(ptr noundef nonnull @.str.1) #6
  %45 = load float, ptr %8, align 4, !tbaa !9
  %46 = fcmp ugt float %45, 0.000000e+00
  %47 = fcmp ult float %45, 1.000000e+00
  %or.cond1026 = and i1 %46, %47
  %.0915 = select i1 %or.cond1026, float %45, float %44
  store i32 0, ptr %9, align 4, !tbaa !5
  %48 = load i32, ptr %2, align 4, !tbaa !5
  switch i32 %48, label %58 [
    i32 0, label %.loopexit1031
    i32 1, label %49
  ]

49:                                               ; preds = %43
  %50 = load float, ptr %4, align 4, !tbaa !9
  %51 = fcmp oeq float %50, 0.000000e+00
  br i1 %51, label %52, label %53

52:                                               ; preds = %49
  tail call void @claset_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %6, ptr noundef nonnull %7) #6
  br label %.loopexit1031

53:                                               ; preds = %49
  store i32 1, ptr %9, align 4, !tbaa !5
  tail call void @clascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %4, ptr noundef nonnull @c_b10, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %13) #6
  %54 = load float, ptr %4, align 4, !tbaa !9
  %55 = fcmp ult float %54, 0.000000e+00
  %56 = fneg float %54
  %57 = select i1 %55, float %56, float %54
  store float %57, ptr %4, align 4, !tbaa !9
  br label %.loopexit1031

58:                                               ; preds = %43
  %59 = load i8, ptr %0, align 1, !tbaa !11
  %60 = icmp eq i8 %59, 76
  br i1 %60, label %61, label %.loopexit1033

61:                                               ; preds = %58
  %invariant.gep = getelementptr i8, ptr %11, i64 -8
  %.not9861035 = icmp slt i32 %48, 2
  br i1 %.not9861035, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %61
  %62 = add nsw i32 %48, -1
  %63 = sext i32 %27 to i64
  %invariant.gep1471 = getelementptr %struct.complex, ptr %29, i64 %63
  %invariant.gep1473 = getelementptr %struct.complex, ptr %29, i64 %63
  %64 = sext i32 %62 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %81
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %81 ]
  %65 = getelementptr inbounds float, ptr %25, i64 %indvars.iv
  %66 = getelementptr inbounds float, ptr %26, i64 %indvars.iv
  call void @slartg_(ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %17) #6
  %67 = load float, ptr %17, align 4, !tbaa !9
  store float %67, ptr %65, align 4, !tbaa !9
  %68 = load float, ptr %22, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %69 = getelementptr float, ptr %4, i64 %indvars.iv
  %70 = load float, ptr %69, align 4, !tbaa !9
  %71 = fmul float %68, %70
  store float %71, ptr %66, align 4, !tbaa !9
  %72 = load float, ptr %21, align 4, !tbaa !9
  %73 = load float, ptr %69, align 4, !tbaa !9
  %74 = fmul float %72, %73
  store float %74, ptr %69, align 4, !tbaa !9
  %75 = load i32, ptr %3, align 4, !tbaa !5
  %76 = icmp eq i32 %75, 1
  br i1 %76, label %77, label %78

77:                                               ; preds = %.lr.ph
  %gep1472 = getelementptr %struct.complex, ptr %invariant.gep1471, i64 %indvars.iv
  %gep1474 = getelementptr %struct.complex, ptr %invariant.gep1473, i64 %indvars.iv.next
  call void @csrot_(ptr noundef nonnull @c__1, ptr noundef %gep1472, ptr noundef nonnull @c__1, ptr noundef %gep1474, ptr noundef nonnull @c__1, ptr noundef nonnull %21, ptr noundef nonnull %22) #6
  br label %81

78:                                               ; preds = %.lr.ph
  %sext = shl i64 %indvars.iv, 33
  %79 = ashr exact i64 %sext, 30
  %gep = getelementptr i8, ptr %invariant.gep, i64 %79
  store float %72, ptr %gep, align 4, !tbaa !9
  %.idx = shl i64 %indvars.iv, 3
  %80 = getelementptr inbounds i8, ptr %31, i64 %.idx
  store float %68, ptr %80, align 4, !tbaa !9
  br label %81

81:                                               ; preds = %77, %78
  %.not986.not = icmp slt i64 %indvars.iv, %64
  br i1 %.not986.not, label %.lr.ph, label %._crit_edge, !llvm.loop !12

._crit_edge:                                      ; preds = %81, %61
  %82 = load i32, ptr %3, align 4, !tbaa !5
  %83 = icmp sgt i32 %82, 1
  br i1 %83, label %.lr.ph1047, label %.loopexit1033

.lr.ph1047:                                       ; preds = %._crit_edge
  store i32 %82, ptr %15, align 4, !tbaa !5
  %84 = load i32, ptr %2, align 4, !tbaa !5
  %85 = icmp sgt i32 %84, 1
  br i1 %85, label %.lr.ph1047.split.preheader, label %.loopexit1033

.lr.ph1047.split.preheader:                       ; preds = %.lr.ph1047
  %86 = sext i32 %27 to i64
  %87 = zext nneg i32 %82 to i64
  br label %.lr.ph1047.split

.lr.ph1047.splitthread-pre-split:                 ; preds = %._crit_edge1043
  %indvars.iv.next1279 = add nuw nsw i64 %indvars.iv1278, 1
  %.pr = load i32, ptr %2, align 4, !tbaa !5
  br label %.lr.ph1047.split

.lr.ph1047.split:                                 ; preds = %.lr.ph1047.splitthread-pre-split, %.lr.ph1047.split.preheader
  %88 = phi i32 [ %.pr, %.lr.ph1047.splitthread-pre-split ], [ %84, %.lr.ph1047.split.preheader ]
  %indvars.iv1278 = phi i64 [ %indvars.iv.next1279, %.lr.ph1047.splitthread-pre-split ], [ 1, %.lr.ph1047.split.preheader ]
  %.not1025.not1039 = icmp sgt i32 %88, 1
  br i1 %.not1025.not1039, label %.lr.ph1042, label %._crit_edge1043

.lr.ph1042:                                       ; preds = %.lr.ph1047.split
  %89 = mul nsw i64 %indvars.iv1278, %86
  %wide.trip.count = zext nneg i32 %88 to i64
  %invariant.gep1475 = getelementptr %struct.complex, ptr %29, i64 %89
  %invariant.gep1477 = getelementptr %struct.complex, ptr %29, i64 %89
  br label %90

90:                                               ; preds = %.lr.ph1042, %90
  %indvars.iv1275 = phi i64 [ 1, %.lr.ph1042 ], [ %indvars.iv.next1276, %90 ]
  %sext1466 = shl i64 %indvars.iv1275, 33
  %91 = ashr exact i64 %sext1466, 30
  %gep1038 = getelementptr i8, ptr %invariant.gep, i64 %91
  %92 = load float, ptr %gep1038, align 4, !tbaa !9
  store float %92, ptr %21, align 4, !tbaa !9
  %.idx1467 = shl i64 %indvars.iv1275, 3
  %93 = getelementptr inbounds i8, ptr %31, i64 %.idx1467
  %94 = load float, ptr %93, align 4, !tbaa !9
  store float %94, ptr %22, align 4, !tbaa !9
  %gep1476 = getelementptr %struct.complex, ptr %invariant.gep1475, i64 %indvars.iv1275
  %indvars.iv.next1276 = add nuw nsw i64 %indvars.iv1275, 1
  %gep1478 = getelementptr %struct.complex, ptr %invariant.gep1477, i64 %indvars.iv.next1276
  call void @csrot_(ptr noundef nonnull @c__1, ptr noundef %gep1476, ptr noundef nonnull @c__1, ptr noundef %gep1478, ptr noundef nonnull @c__1, ptr noundef nonnull %21, ptr noundef nonnull %22) #6
  %exitcond.not = icmp eq i64 %indvars.iv.next1276, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge1043, label %90, !llvm.loop !14

._crit_edge1043:                                  ; preds = %90, %.lr.ph1047.split
  %.not987.not = icmp ult i64 %indvars.iv1278, %87
  br i1 %.not987.not, label %.lr.ph1047.splitthread-pre-split, label %.loopexit1033, !llvm.loop !15

.loopexit1033:                                    ; preds = %._crit_edge1043, %.lr.ph1047, %._crit_edge, %58
  %95 = load i32, ptr %2, align 4, !tbaa !5
  %96 = add nsw i32 %95, -1
  store i32 %96, ptr %24, align 4, !tbaa !5
  %97 = call float @slanst_(ptr noundef nonnull @.str.4, ptr noundef nonnull %2, ptr noundef %4, ptr noundef %5) #6
  store float %97, ptr %23, align 4, !tbaa !9
  %98 = fcmp oeq float %97, 0.000000e+00
  br i1 %98, label %99, label %100

99:                                               ; preds = %.loopexit1033
  call void @claset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %6, ptr noundef nonnull %7) #6
  br label %.loopexit1031

100:                                              ; preds = %.loopexit1033
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull @c_b10, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %4, ptr noundef nonnull %2, ptr noundef nonnull %13) #6
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull @c_b10, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %24, ptr noundef nonnull %13) #6
  %101 = load i32, ptr %2, align 4, !tbaa !5
  %102 = load i32, ptr %1, align 4, !tbaa !5
  %.not988 = icmp sgt i32 %101, %102
  br i1 %.not988, label %349, label %103

103:                                              ; preds = %100
  %104 = mul nsw i32 %101, %101
  %105 = add nuw nsw i32 %104, 1
  %106 = add nuw nsw i32 %105, %104
  %107 = load i32, ptr %3, align 4, !tbaa !5
  %108 = mul nsw i32 %107, %101
  %109 = add nsw i32 %108, %106
  %110 = add nsw i32 %109, %108
  call void @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b35, ptr noundef nonnull @c_b10, ptr noundef %11, ptr noundef nonnull %2) #6
  %111 = zext nneg i32 %105 to i64
  %112 = getelementptr inbounds float, ptr %31, i64 %111
  call void @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b35, ptr noundef nonnull @c_b10, ptr noundef nonnull %112, ptr noundef nonnull %2) #6
  %113 = zext nneg i32 %106 to i64
  %114 = getelementptr inbounds float, ptr %31, i64 %113
  call void @slasdq_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c__0, ptr noundef %4, ptr noundef %5, ptr noundef nonnull %112, ptr noundef nonnull %2, ptr noundef %11, ptr noundef nonnull %2, ptr noundef nonnull %114, ptr noundef nonnull @c__1, ptr noundef nonnull %114, ptr noundef nonnull %13) #6
  %115 = load i32, ptr %13, align 4, !tbaa !5
  %.not1011 = icmp eq i32 %115, 0
  br i1 %.not1011, label %116, label %.loopexit1031

116:                                              ; preds = %103
  %117 = add nsw i32 %110, -1
  %118 = load i32, ptr %3, align 4, !tbaa !5
  %.not10121054 = icmp slt i32 %118, 1
  br i1 %.not10121054, label %._crit_edge1059, label %.lr.ph1058

.lr.ph1058:                                       ; preds = %116
  %119 = load i32, ptr %2, align 4, !tbaa !5
  %.not10241048 = icmp slt i32 %119, 1
  br i1 %.not10241048, label %._crit_edge1059, label %.lr.ph1052.preheader

.lr.ph1052.preheader:                             ; preds = %.lr.ph1058
  %120 = add nuw i32 %119, 1
  %121 = sext i32 %27 to i64
  %122 = add nuw i32 %118, 1
  %wide.trip.count1293 = zext i32 %122 to i64
  %wide.trip.count1288 = zext i32 %120 to i64
  %123 = shl nuw nsw i64 %wide.trip.count1288, 2
  %124 = getelementptr i8, ptr %11, i64 %123
  %scevgep1511 = getelementptr i8, ptr %124, i64 -4
  %125 = shl nsw i64 %121, 3
  %126 = shl nsw i64 %28, 3
  %127 = getelementptr i8, ptr %6, i64 %125
  %128 = getelementptr i8, ptr %127, i64 %126
  %scevgep1513 = getelementptr i8, ptr %128, i64 8
  %129 = shl nuw nsw i64 %wide.trip.count1293, 3
  %130 = add nsw i64 %129, -8
  %131 = mul i64 %130, %121
  %132 = shl nuw nsw i64 %wide.trip.count1288, 3
  %133 = getelementptr i8, ptr %6, i64 %131
  %134 = getelementptr i8, ptr %133, i64 %126
  %135 = getelementptr i8, ptr %134, i64 %132
  %scevgep1514 = getelementptr i8, ptr %135, i64 -4
  %136 = zext nneg i32 %119 to i64
  %137 = zext nneg i32 %119 to i64
  %min.iters.check = icmp ult i32 %119, 9
  %stride.check = icmp slt i32 %27, 0
  %n.mod.vf = and i64 %136, 7
  %138 = icmp eq i64 %n.mod.vf, 0
  %139 = select i1 %138, i64 8, i64 %n.mod.vf
  %n.vec = sub nsw i64 %136, %139
  %ind.end1515 = add nsw i64 %n.vec, 1
  %invariant.gep1844 = getelementptr i8, ptr %11, i64 4
  %invariant.gep1848 = getelementptr i8, ptr %11, i64 8
  %invariant.gep1852 = getelementptr i8, ptr %11, i64 12
  br label %.lr.ph1052

.lr.ph1052:                                       ; preds = %.lr.ph1052.preheader, %._crit_edge1053
  %indvars.iv1290 = phi i64 [ 1, %.lr.ph1052.preheader ], [ %indvars.iv.next1291, %._crit_edge1053 ]
  %.19611055 = phi i32 [ %117, %.lr.ph1052.preheader ], [ %159, %._crit_edge1053 ]
  %140 = mul nsw i64 %indvars.iv1290, %121
  %141 = sext i32 %.19611055 to i64
  %invariant.gep1479 = getelementptr %struct.complex, ptr %29, i64 %140
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph1052
  %142 = shl nsw i64 %141, 2
  %scevgep = getelementptr i8, ptr %11, i64 %142
  %scevgep1512 = getelementptr i8, ptr %scevgep1511, i64 %142
  %bound0 = icmp ult ptr %scevgep, %scevgep1514
  %bound1 = icmp ult ptr %scevgep1513, %scevgep1512
  %found.conflict = and i1 %bound0, %bound1
  %143 = or i1 %found.conflict, %stride.check
  br i1 %143, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %ind.end = add nsw i64 %n.vec, %141
  %invariant.gep1840 = getelementptr float, ptr %11, i64 %141
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx1517 = or disjoint i64 %index, 1
  %144 = or disjoint i64 %index, 5
  %145 = getelementptr %struct.complex, ptr %invariant.gep1479, i64 %offset.idx1517
  %146 = getelementptr %struct.complex, ptr %invariant.gep1479, i64 %144
  %wide.vec = load <8 x float>, ptr %145, align 4, !tbaa !17
  %wide.vec1518 = load <8 x float>, ptr %146, align 4, !tbaa !17
  %strided.vec = shufflevector <8 x float> %wide.vec, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1519 = shufflevector <8 x float> %wide.vec1518, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %gep1841 = getelementptr float, ptr %invariant.gep1840, i64 %index
  %147 = getelementptr i8, ptr %gep1841, i64 16
  store <4 x float> %strided.vec, ptr %gep1841, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  store <4 x float> %strided.vec1519, ptr %147, align 4, !tbaa !9, !alias.scope !19, !noalias !22
  %index.next = add nuw i64 %index, 8
  %148 = icmp eq i64 %index.next, %n.vec
  br i1 %148, label %scalar.ph.preheader, label %vector.body, !llvm.loop !24

scalar.ph.preheader:                              ; preds = %vector.body, %vector.memcheck, %.lr.ph1052
  %indvars.iv1283.ph = phi i64 [ %141, %vector.memcheck ], [ %141, %.lr.ph1052 ], [ %ind.end, %vector.body ]
  %indvars.iv1281.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph1052 ], [ %ind.end1515, %vector.body ]
  %149 = sub nsw i64 %wide.trip.count1288, %indvars.iv1281.ph
  %150 = sub nsw i64 %137, %indvars.iv1281.ph
  %xtraiter = and i64 %149, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader, %scalar.ph.prol
  %indvars.iv1283.prol = phi i64 [ %indvars.iv.next1284.prol, %scalar.ph.prol ], [ %indvars.iv1283.ph, %scalar.ph.preheader ]
  %indvars.iv1281.prol = phi i64 [ %indvars.iv.next1282.prol, %scalar.ph.prol ], [ %indvars.iv1281.ph, %scalar.ph.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph.prol ], [ 0, %scalar.ph.preheader ]
  %indvars.iv.next1284.prol = add nsw i64 %indvars.iv1283.prol, 1
  %gep1480.prol = getelementptr %struct.complex, ptr %invariant.gep1479, i64 %indvars.iv1281.prol
  %151 = load float, ptr %gep1480.prol, align 4, !tbaa !17
  %152 = getelementptr float, ptr %11, i64 %indvars.iv1283.prol
  store float %151, ptr %152, align 4, !tbaa !9
  %indvars.iv.next1282.prol = add nuw nsw i64 %indvars.iv1281.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol, !llvm.loop !27

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %indvars.iv.next1284.lcssa.unr = phi i64 [ poison, %scalar.ph.preheader ], [ %indvars.iv.next1284.prol, %scalar.ph.prol ]
  %indvars.iv1283.unr = phi i64 [ %indvars.iv1283.ph, %scalar.ph.preheader ], [ %indvars.iv.next1284.prol, %scalar.ph.prol ]
  %indvars.iv1281.unr = phi i64 [ %indvars.iv1281.ph, %scalar.ph.preheader ], [ %indvars.iv.next1282.prol, %scalar.ph.prol ]
  %153 = icmp ult i64 %150, 3
  br i1 %153, label %._crit_edge1053, label %scalar.ph.preheader.new

scalar.ph.preheader.new:                          ; preds = %scalar.ph.prol.loopexit
  %invariant.gep1842 = getelementptr i8, ptr %invariant.gep1479, i64 8
  %invariant.gep1846 = getelementptr i8, ptr %invariant.gep1479, i64 16
  %invariant.gep1850 = getelementptr i8, ptr %invariant.gep1479, i64 24
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph, %scalar.ph.preheader.new
  %indvars.iv1283 = phi i64 [ %indvars.iv1283.unr, %scalar.ph.preheader.new ], [ %indvars.iv.next1284.3, %scalar.ph ]
  %indvars.iv1281 = phi i64 [ %indvars.iv1281.unr, %scalar.ph.preheader.new ], [ %indvars.iv.next1282.3, %scalar.ph ]
  %gep1480 = getelementptr %struct.complex, ptr %invariant.gep1479, i64 %indvars.iv1281
  %154 = load float, ptr %gep1480, align 4, !tbaa !17
  %155 = getelementptr float, ptr %11, i64 %indvars.iv1283
  store float %154, ptr %155, align 4, !tbaa !9
  %gep1843 = getelementptr %struct.complex, ptr %invariant.gep1842, i64 %indvars.iv1281
  %156 = load float, ptr %gep1843, align 4, !tbaa !17
  %gep1845 = getelementptr float, ptr %invariant.gep1844, i64 %indvars.iv1283
  store float %156, ptr %gep1845, align 4, !tbaa !9
  %gep1847 = getelementptr %struct.complex, ptr %invariant.gep1846, i64 %indvars.iv1281
  %157 = load float, ptr %gep1847, align 4, !tbaa !17
  %gep1849 = getelementptr float, ptr %invariant.gep1848, i64 %indvars.iv1283
  store float %157, ptr %gep1849, align 4, !tbaa !9
  %indvars.iv.next1284.3 = add nsw i64 %indvars.iv1283, 4
  %gep1851 = getelementptr %struct.complex, ptr %invariant.gep1850, i64 %indvars.iv1281
  %158 = load float, ptr %gep1851, align 4, !tbaa !17
  %gep1853 = getelementptr float, ptr %invariant.gep1852, i64 %indvars.iv1283
  store float %158, ptr %gep1853, align 4, !tbaa !9
  %indvars.iv.next1282.3 = add nuw nsw i64 %indvars.iv1281, 4
  %exitcond1289.not.3 = icmp eq i64 %indvars.iv.next1282.3, %wide.trip.count1288
  br i1 %exitcond1289.not.3, label %._crit_edge1053, label %scalar.ph, !llvm.loop !29

._crit_edge1053:                                  ; preds = %scalar.ph, %scalar.ph.prol.loopexit
  %indvars.iv.next1284.lcssa = phi i64 [ %indvars.iv.next1284.lcssa.unr, %scalar.ph.prol.loopexit ], [ %indvars.iv.next1284.3, %scalar.ph ]
  %159 = trunc nsw i64 %indvars.iv.next1284.lcssa to i32
  %indvars.iv.next1291 = add nuw nsw i64 %indvars.iv1290, 1
  %exitcond1294.not = icmp eq i64 %indvars.iv.next1291, %wide.trip.count1293
  br i1 %exitcond1294.not, label %._crit_edge1059, label %.lr.ph1052, !llvm.loop !30

._crit_edge1059:                                  ; preds = %._crit_edge1053, %.lr.ph1058, %116
  %160 = sext i32 %110 to i64
  %161 = getelementptr inbounds float, ptr %31, i64 %160
  call void @sgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %2, ptr noundef nonnull @c_b10, ptr noundef %11, ptr noundef nonnull %2, ptr noundef nonnull %161, ptr noundef nonnull %2, ptr noundef nonnull @c_b35, ptr noundef nonnull %114, ptr noundef nonnull %2) #6
  %162 = load i32, ptr %3, align 4, !tbaa !5
  %.not10131067 = icmp slt i32 %162, 1
  br i1 %.not10131067, label %._crit_edge1072, label %.lr.ph1071

.lr.ph1071:                                       ; preds = %._crit_edge1059
  %163 = load i32, ptr %2, align 4, !tbaa !5
  %164 = icmp slt i32 %163, 1
  br i1 %164, label %._crit_edge1072, label %.lr.ph1071.split.preheader

.lr.ph1071.split.preheader:                       ; preds = %.lr.ph1071
  %165 = sext i32 %27 to i64
  %166 = zext nneg i32 %162 to i64
  br label %.lr.ph1071.split

.lr.ph1071.splitthread-pre-split:                 ; preds = %._crit_edge1065
  %indvars.iv.next1305 = add nuw nsw i64 %indvars.iv1304, 1
  %.pr1469 = load i32, ptr %2, align 4, !tbaa !5
  br label %.lr.ph1071.split

.lr.ph1071.split:                                 ; preds = %.lr.ph1071.splitthread-pre-split, %.lr.ph1071.split.preheader
  %167 = phi i32 [ %.pr1469, %.lr.ph1071.splitthread-pre-split ], [ %163, %.lr.ph1071.split.preheader ]
  %indvars.iv1304 = phi i64 [ %indvars.iv.next1305, %.lr.ph1071.splitthread-pre-split ], [ 1, %.lr.ph1071.split.preheader ]
  %.39631068 = phi i32 [ %.4964.lcssa, %.lr.ph1071.splitthread-pre-split ], [ %117, %.lr.ph1071.split.preheader ]
  %.not10231060 = icmp slt i32 %167, 1
  br i1 %.not10231060, label %._crit_edge1065, label %.lr.ph1064

.lr.ph1064:                                       ; preds = %.lr.ph1071.split
  %168 = mul nsw i64 %indvars.iv1304, %165
  %169 = sext i32 %.39631068 to i64
  %170 = add nuw i32 %167, 1
  %wide.trip.count1302 = zext i32 %170 to i64
  %invariant.gep1481 = getelementptr %struct.complex, ptr %29, i64 %168
  br label %171

171:                                              ; preds = %.lr.ph1064, %171
  %indvars.iv1297 = phi i64 [ %169, %.lr.ph1064 ], [ %indvars.iv.next1298, %171 ]
  %indvars.iv1295 = phi i64 [ 1, %.lr.ph1064 ], [ %indvars.iv.next1296, %171 ]
  %indvars.iv.next1298 = add nsw i64 %indvars.iv1297, 1
  %gep1482 = getelementptr %struct.complex, ptr %invariant.gep1481, i64 %indvars.iv1295
  %172 = call <2 x float> @Cf(ptr noundef %gep1482)
  %.sroa.03.4.vec.extract = extractelement <2 x float> %172, i64 1
  %173 = getelementptr float, ptr %11, i64 %indvars.iv1297
  store float %.sroa.03.4.vec.extract, ptr %173, align 4, !tbaa !9
  %indvars.iv.next1296 = add nuw nsw i64 %indvars.iv1295, 1
  %exitcond1303.not = icmp eq i64 %indvars.iv.next1296, %wide.trip.count1302
  br i1 %exitcond1303.not, label %._crit_edge1065.loopexit, label %171, !llvm.loop !31

._crit_edge1065.loopexit:                         ; preds = %171
  %174 = trunc nsw i64 %indvars.iv.next1298 to i32
  br label %._crit_edge1065

._crit_edge1065:                                  ; preds = %._crit_edge1065.loopexit, %.lr.ph1071.split
  %.4964.lcssa = phi i32 [ %.39631068, %.lr.ph1071.split ], [ %174, %._crit_edge1065.loopexit ]
  %.not1013.not = icmp ult i64 %indvars.iv1304, %166
  br i1 %.not1013.not, label %.lr.ph1071.splitthread-pre-split, label %._crit_edge1072, !llvm.loop !32

._crit_edge1072:                                  ; preds = %._crit_edge1065, %.lr.ph1071, %._crit_edge1059
  %175 = sext i32 %109 to i64
  %176 = getelementptr inbounds float, ptr %31, i64 %175
  call void @sgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %2, ptr noundef nonnull @c_b10, ptr noundef %11, ptr noundef nonnull %2, ptr noundef nonnull %161, ptr noundef nonnull %2, ptr noundef nonnull @c_b35, ptr noundef nonnull %176, ptr noundef nonnull %2) #6
  %177 = shl nuw i32 %104, 1
  %178 = add nsw i32 %109, -1
  %179 = load i32, ptr %3, align 4, !tbaa !5
  %.not10141082 = icmp slt i32 %179, 1
  br i1 %.not10141082, label %._crit_edge1088, label %.lr.ph1087

.lr.ph1087:                                       ; preds = %._crit_edge1072
  %180 = load i32, ptr %2, align 4, !tbaa !5
  %.not10221073 = icmp slt i32 %180, 1
  br i1 %.not10221073, label %._crit_edge1088, label %.lr.ph1078.preheader

.lr.ph1078.preheader:                             ; preds = %.lr.ph1087
  %181 = add nuw i32 %180, 1
  %182 = sext i32 %27 to i64
  %183 = add nuw i32 %179, 1
  %wide.trip.count1323 = zext i32 %183 to i64
  %wide.trip.count1318 = zext i32 %181 to i64
  %184 = shl nsw i64 %182, 3
  %185 = shl nsw i64 %28, 3
  %186 = getelementptr i8, ptr %6, i64 %184
  %187 = getelementptr i8, ptr %186, i64 %185
  %scevgep1521 = getelementptr i8, ptr %187, i64 8
  %188 = shl nuw nsw i64 %wide.trip.count1323, 3
  %189 = add nsw i64 %188, -8
  %190 = mul i64 %189, %182
  %191 = shl nuw nsw i64 %wide.trip.count1318, 3
  %192 = getelementptr i8, ptr %6, i64 %190
  %193 = getelementptr i8, ptr %192, i64 %185
  %scevgep1522 = getelementptr i8, ptr %193, i64 %191
  %194 = shl nuw nsw i64 %wide.trip.count1318, 2
  %195 = add nsw i64 %194, -4
  %scevgep1524 = getelementptr i8, ptr %11, i64 %195
  %scevgep1527 = getelementptr i8, ptr %11, i64 %195
  %196 = zext nneg i32 %180 to i64
  %197 = zext nneg i32 %180 to i64
  %min.iters.check1539 = icmp ult i32 %180, 8
  %stride.check1536 = icmp slt i32 %27, 0
  %n.vec1542 = and i64 %196, 2147483644
  %ind.end1543 = or disjoint i64 %n.vec1542, 1
  %cmp.n = icmp eq i64 %n.vec1542, %196
  %198 = and i32 %180, 1
  %lcmp.mod1825.not = icmp eq i32 %198, 0
  %invariant.gep1858 = getelementptr i8, ptr %11, i64 4
  %invariant.gep1860 = getelementptr i8, ptr %11, i64 4
  br label %.lr.ph1078

.lr.ph1078:                                       ; preds = %.lr.ph1078.preheader, %._crit_edge1079
  %indvars.iv1320 = phi i64 [ 1, %.lr.ph1078.preheader ], [ %indvars.iv.next1321, %._crit_edge1079 ]
  %.09181084 = phi i32 [ %177, %.lr.ph1078.preheader ], [ %227, %._crit_edge1079 ]
  %.09311083 = phi i32 [ %178, %.lr.ph1078.preheader ], [ %226, %._crit_edge1079 ]
  %199 = mul nsw i64 %indvars.iv1320, %182
  %200 = sext i32 %.09181084 to i64
  %201 = sext i32 %.09311083 to i64
  %invariant.gep1483 = getelementptr %struct.complex, ptr %29, i64 %199
  br i1 %min.iters.check1539, label %scalar.ph1538.preheader, label %vector.memcheck1520

vector.memcheck1520:                              ; preds = %.lr.ph1078
  %202 = shl nsw i64 %201, 2
  %scevgep1523 = getelementptr i8, ptr %11, i64 %202
  %scevgep1525 = getelementptr i8, ptr %scevgep1524, i64 %202
  %203 = shl nsw i64 %200, 2
  %scevgep1526 = getelementptr i8, ptr %11, i64 %203
  %scevgep1528 = getelementptr i8, ptr %scevgep1527, i64 %203
  %bound01529 = icmp ult ptr %scevgep1521, %scevgep1525
  %bound11530 = icmp ult ptr %scevgep1523, %scevgep1522
  %found.conflict1531 = and i1 %bound01529, %bound11530
  %bound01533 = icmp ult ptr %scevgep1521, %scevgep1528
  %bound11534 = icmp ult ptr %scevgep1526, %scevgep1522
  %found.conflict1535 = and i1 %bound01533, %bound11534
  %204 = or i1 %found.conflict1535, %stride.check1536
  %conflict.rdx = or i1 %found.conflict1531, %204
  br i1 %conflict.rdx, label %scalar.ph1538.preheader, label %vector.ph1540

vector.ph1540:                                    ; preds = %vector.memcheck1520
  %ind.end1545 = add nsw i64 %n.vec1542, %201
  %ind.end1547 = add nsw i64 %n.vec1542, %200
  %invariant.gep1854 = getelementptr float, ptr %11, i64 %200
  %invariant.gep1856 = getelementptr float, ptr %11, i64 %201
  br label %vector.body1549

vector.body1549:                                  ; preds = %vector.body1549, %vector.ph1540
  %index1550 = phi i64 [ 0, %vector.ph1540 ], [ %index.next1558, %vector.body1549 ]
  %offset.idx1551 = or disjoint i64 %index1550, 1
  %205 = or disjoint i64 %index1550, 3
  %gep1855 = getelementptr float, ptr %invariant.gep1854, i64 %index1550
  %206 = getelementptr i8, ptr %gep1855, i64 8
  %wide.load = load <2 x float>, ptr %gep1855, align 4, !tbaa !9, !alias.scope !33
  %wide.load1554 = load <2 x float>, ptr %206, align 4, !tbaa !9, !alias.scope !33
  %gep1857 = getelementptr float, ptr %invariant.gep1856, i64 %index1550
  %207 = getelementptr i8, ptr %gep1857, i64 8
  %wide.load1555 = load <2 x float>, ptr %gep1857, align 4, !tbaa !9, !alias.scope !36
  %wide.load1556 = load <2 x float>, ptr %207, align 4, !tbaa !9, !alias.scope !36
  %208 = getelementptr %struct.complex, ptr %invariant.gep1483, i64 %offset.idx1551
  %209 = getelementptr %struct.complex, ptr %invariant.gep1483, i64 %205
  %interleaved.vec = shufflevector <2 x float> %wide.load, <2 x float> %wide.load1555, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec, ptr %208, align 4, !tbaa !9
  %interleaved.vec1557 = shufflevector <2 x float> %wide.load1554, <2 x float> %wide.load1556, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1557, ptr %209, align 4, !tbaa !9
  %index.next1558 = add nuw i64 %index1550, 4
  %210 = icmp eq i64 %index.next1558, %n.vec1542
  br i1 %210, label %middle.block1537, label %vector.body1549, !llvm.loop !38

middle.block1537:                                 ; preds = %vector.body1549
  br i1 %cmp.n, label %._crit_edge1079, label %scalar.ph1538.preheader

scalar.ph1538.preheader:                          ; preds = %middle.block1537, %vector.memcheck1520, %.lr.ph1078
  %indvars.iv1311.ph = phi i64 [ 1, %vector.memcheck1520 ], [ 1, %.lr.ph1078 ], [ %ind.end1543, %middle.block1537 ]
  %indvars.iv1309.ph = phi i64 [ %201, %vector.memcheck1520 ], [ %201, %.lr.ph1078 ], [ %ind.end1545, %middle.block1537 ]
  %indvars.iv1307.ph = phi i64 [ %200, %vector.memcheck1520 ], [ %200, %.lr.ph1078 ], [ %ind.end1547, %middle.block1537 ]
  br i1 %lcmp.mod1825.not, label %scalar.ph1538.prol.loopexit, label %scalar.ph1538.prol

scalar.ph1538.prol:                               ; preds = %scalar.ph1538.preheader
  %indvars.iv.next1308.prol = add nsw i64 %indvars.iv1307.ph, 1
  %indvars.iv.next1310.prol = add nsw i64 %indvars.iv1309.ph, 1
  %211 = getelementptr float, ptr %11, i64 %indvars.iv1307.ph
  %212 = load float, ptr %211, align 4, !tbaa !9
  %213 = getelementptr float, ptr %11, i64 %indvars.iv1309.ph
  %214 = load float, ptr %213, align 4, !tbaa !9
  %gep1484.prol = getelementptr %struct.complex, ptr %invariant.gep1483, i64 %indvars.iv1311.ph
  store float %212, ptr %gep1484.prol, align 4, !tbaa !17
  %215 = getelementptr inbounds i8, ptr %gep1484.prol, i64 4
  store float %214, ptr %215, align 4, !tbaa !39
  %indvars.iv.next1312.prol = add nuw nsw i64 %indvars.iv1311.ph, 1
  br label %scalar.ph1538.prol.loopexit

scalar.ph1538.prol.loopexit:                      ; preds = %scalar.ph1538.prol, %scalar.ph1538.preheader
  %indvars.iv.next1308.lcssa1823.unr = phi i64 [ poison, %scalar.ph1538.preheader ], [ %indvars.iv.next1308.prol, %scalar.ph1538.prol ]
  %indvars.iv.next1310.lcssa1822.unr = phi i64 [ poison, %scalar.ph1538.preheader ], [ %indvars.iv.next1310.prol, %scalar.ph1538.prol ]
  %indvars.iv1311.unr = phi i64 [ %indvars.iv1311.ph, %scalar.ph1538.preheader ], [ %indvars.iv.next1312.prol, %scalar.ph1538.prol ]
  %indvars.iv1309.unr = phi i64 [ %indvars.iv1309.ph, %scalar.ph1538.preheader ], [ %indvars.iv.next1310.prol, %scalar.ph1538.prol ]
  %indvars.iv1307.unr = phi i64 [ %indvars.iv1307.ph, %scalar.ph1538.preheader ], [ %indvars.iv.next1308.prol, %scalar.ph1538.prol ]
  %216 = icmp eq i64 %indvars.iv1311.ph, %197
  br i1 %216, label %._crit_edge1079, label %scalar.ph1538

scalar.ph1538:                                    ; preds = %scalar.ph1538.prol.loopexit, %scalar.ph1538
  %indvars.iv1311 = phi i64 [ %indvars.iv.next1312.1, %scalar.ph1538 ], [ %indvars.iv1311.unr, %scalar.ph1538.prol.loopexit ]
  %indvars.iv1309 = phi i64 [ %indvars.iv.next1310.1, %scalar.ph1538 ], [ %indvars.iv1309.unr, %scalar.ph1538.prol.loopexit ]
  %indvars.iv1307 = phi i64 [ %indvars.iv.next1308.1, %scalar.ph1538 ], [ %indvars.iv1307.unr, %scalar.ph1538.prol.loopexit ]
  %217 = getelementptr float, ptr %11, i64 %indvars.iv1307
  %218 = load float, ptr %217, align 4, !tbaa !9
  %219 = getelementptr float, ptr %11, i64 %indvars.iv1309
  %220 = load float, ptr %219, align 4, !tbaa !9
  %gep1484 = getelementptr %struct.complex, ptr %invariant.gep1483, i64 %indvars.iv1311
  store float %218, ptr %gep1484, align 4, !tbaa !17
  %221 = getelementptr inbounds i8, ptr %gep1484, i64 4
  store float %220, ptr %221, align 4, !tbaa !39
  %indvars.iv.next1308.1 = add nsw i64 %indvars.iv1307, 2
  %indvars.iv.next1310.1 = add nsw i64 %indvars.iv1309, 2
  %gep1859 = getelementptr float, ptr %invariant.gep1858, i64 %indvars.iv1307
  %222 = load float, ptr %gep1859, align 4, !tbaa !9
  %gep1861 = getelementptr float, ptr %invariant.gep1860, i64 %indvars.iv1309
  %223 = load float, ptr %gep1861, align 4, !tbaa !9
  %224 = getelementptr %struct.complex, ptr %invariant.gep1483, i64 %indvars.iv1311
  %gep1484.1 = getelementptr i8, ptr %224, i64 8
  store float %222, ptr %gep1484.1, align 4, !tbaa !17
  %225 = getelementptr i8, ptr %224, i64 12
  store float %223, ptr %225, align 4, !tbaa !39
  %indvars.iv.next1312.1 = add nuw nsw i64 %indvars.iv1311, 2
  %exitcond1319.not.1 = icmp eq i64 %indvars.iv.next1312.1, %wide.trip.count1318
  br i1 %exitcond1319.not.1, label %._crit_edge1079, label %scalar.ph1538, !llvm.loop !40

._crit_edge1079:                                  ; preds = %scalar.ph1538.prol.loopexit, %scalar.ph1538, %middle.block1537
  %indvars.iv.next1308.lcssa = phi i64 [ %ind.end1547, %middle.block1537 ], [ %indvars.iv.next1308.lcssa1823.unr, %scalar.ph1538.prol.loopexit ], [ %indvars.iv.next1308.1, %scalar.ph1538 ]
  %indvars.iv.next1310.lcssa = phi i64 [ %ind.end1545, %middle.block1537 ], [ %indvars.iv.next1310.lcssa1822.unr, %scalar.ph1538.prol.loopexit ], [ %indvars.iv.next1310.1, %scalar.ph1538 ]
  %226 = trunc nsw i64 %indvars.iv.next1310.lcssa to i32
  %227 = trunc nsw i64 %indvars.iv.next1308.lcssa to i32
  %indvars.iv.next1321 = add nuw nsw i64 %indvars.iv1320, 1
  %exitcond1324.not = icmp eq i64 %indvars.iv.next1321, %wide.trip.count1323
  br i1 %exitcond1324.not, label %._crit_edge1088, label %.lr.ph1078, !llvm.loop !41

._crit_edge1088:                                  ; preds = %._crit_edge1079, %.lr.ph1087, %._crit_edge1072
  %228 = call i32 @isamax_(ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull @c__1) #6
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds float, ptr %25, i64 %229
  %231 = load float, ptr %230, align 4, !tbaa !9
  %232 = fcmp oge float %231, 0.000000e+00
  %233 = fneg float %231
  %234 = select i1 %232, float %231, float %233
  %235 = fmul float %.0915, %234
  %236 = load i32, ptr %2, align 4, !tbaa !5
  %.not10151089 = icmp slt i32 %236, 1
  br i1 %.not10151089, label %._crit_edge1093, label %.lr.ph1092.preheader

.lr.ph1092.preheader:                             ; preds = %._crit_edge1088
  %237 = sext i32 %27 to i64
  %invariant.gep1485 = getelementptr %struct.complex, ptr %29, i64 %237
  %invariant.gep1487 = getelementptr %struct.complex, ptr %29, i64 %237
  %238 = zext nneg i32 %236 to i64
  br label %.lr.ph1092

.lr.ph1092:                                       ; preds = %.lr.ph1092.preheader, %246
  %indvars.iv1325 = phi i64 [ 1, %.lr.ph1092.preheader ], [ %indvars.iv.next1326, %246 ]
  %239 = getelementptr inbounds float, ptr %25, i64 %indvars.iv1325
  %240 = load float, ptr %239, align 4, !tbaa !9
  %241 = fcmp ugt float %240, %235
  br i1 %241, label %243, label %242

242:                                              ; preds = %.lr.ph1092
  %gep1486 = getelementptr %struct.complex, ptr %invariant.gep1485, i64 %indvars.iv1325
  call void @claset_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef %gep1486, ptr noundef nonnull %7) #6
  br label %246

243:                                              ; preds = %.lr.ph1092
  %gep1488 = getelementptr %struct.complex, ptr %invariant.gep1487, i64 %indvars.iv1325
  call void @clascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %239, ptr noundef nonnull @c_b10, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef %gep1488, ptr noundef nonnull %7, ptr noundef nonnull %13) #6
  %244 = load i32, ptr %9, align 4, !tbaa !5
  %245 = add nsw i32 %244, 1
  store i32 %245, ptr %9, align 4, !tbaa !5
  br label %246

246:                                              ; preds = %242, %243
  %indvars.iv.next1326 = add nuw nsw i64 %indvars.iv1325, 1
  %.not1015.not = icmp ult i64 %indvars.iv1325, %238
  br i1 %.not1015.not, label %.lr.ph1092, label %._crit_edge1093, !llvm.loop !42

._crit_edge1093:                                  ; preds = %246, %._crit_edge1088
  %247 = load i32, ptr %3, align 4, !tbaa !5
  %.not10161101 = icmp slt i32 %247, 1
  br i1 %.not10161101, label %._crit_edge1106, label %.lr.ph1105

.lr.ph1105:                                       ; preds = %._crit_edge1093
  %248 = load i32, ptr %2, align 4, !tbaa !5
  %.not10211094 = icmp slt i32 %248, 1
  br i1 %.not10211094, label %._crit_edge1106, label %.lr.ph1098.preheader

.lr.ph1098.preheader:                             ; preds = %.lr.ph1105
  %249 = add nuw i32 %248, 1
  %250 = sext i32 %27 to i64
  %251 = add nuw i32 %247, 1
  %wide.trip.count1340 = zext i32 %251 to i64
  %wide.trip.count1335 = zext i32 %249 to i64
  %252 = shl nuw nsw i64 %wide.trip.count1335, 2
  %253 = getelementptr i8, ptr %11, i64 %252
  %scevgep1561 = getelementptr i8, ptr %253, i64 -4
  %254 = shl nsw i64 %250, 3
  %255 = shl nsw i64 %28, 3
  %256 = getelementptr i8, ptr %6, i64 %254
  %257 = getelementptr i8, ptr %256, i64 %255
  %scevgep1563 = getelementptr i8, ptr %257, i64 8
  %258 = shl nuw nsw i64 %wide.trip.count1340, 3
  %259 = add nsw i64 %258, -8
  %260 = mul i64 %259, %250
  %261 = shl nuw nsw i64 %wide.trip.count1335, 3
  %262 = getelementptr i8, ptr %6, i64 %260
  %263 = getelementptr i8, ptr %262, i64 %255
  %264 = getelementptr i8, ptr %263, i64 %261
  %scevgep1564 = getelementptr i8, ptr %264, i64 -4
  %265 = zext nneg i32 %248 to i64
  %266 = zext nneg i32 %248 to i64
  %min.iters.check1571 = icmp ult i32 %248, 9
  %stride.check1568 = icmp slt i32 %27, 0
  %n.mod.vf1573 = and i64 %265, 7
  %267 = icmp eq i64 %n.mod.vf1573, 0
  %268 = select i1 %267, i64 8, i64 %n.mod.vf1573
  %n.vec1574 = sub nsw i64 %265, %268
  %ind.end1577 = add nsw i64 %n.vec1574, 1
  %invariant.gep1866 = getelementptr i8, ptr %11, i64 4
  %invariant.gep1870 = getelementptr i8, ptr %11, i64 8
  %invariant.gep1874 = getelementptr i8, ptr %11, i64 12
  br label %.lr.ph1098

.lr.ph1098:                                       ; preds = %.lr.ph1098.preheader, %._crit_edge1099
  %indvars.iv1337 = phi i64 [ 1, %.lr.ph1098.preheader ], [ %indvars.iv.next1338, %._crit_edge1099 ]
  %.59651102 = phi i32 [ %117, %.lr.ph1098.preheader ], [ %288, %._crit_edge1099 ]
  %269 = mul nsw i64 %indvars.iv1337, %250
  %270 = sext i32 %.59651102 to i64
  %invariant.gep1489 = getelementptr %struct.complex, ptr %29, i64 %269
  br i1 %min.iters.check1571, label %scalar.ph1570.preheader, label %vector.memcheck1559

vector.memcheck1559:                              ; preds = %.lr.ph1098
  %271 = shl nsw i64 %270, 2
  %scevgep1560 = getelementptr i8, ptr %11, i64 %271
  %scevgep1562 = getelementptr i8, ptr %scevgep1561, i64 %271
  %bound01565 = icmp ult ptr %scevgep1560, %scevgep1564
  %bound11566 = icmp ult ptr %scevgep1563, %scevgep1562
  %found.conflict1567 = and i1 %bound01565, %bound11566
  %272 = or i1 %found.conflict1567, %stride.check1568
  br i1 %272, label %scalar.ph1570.preheader, label %vector.ph1572

vector.ph1572:                                    ; preds = %vector.memcheck1559
  %ind.end1575 = add nsw i64 %n.vec1574, %270
  %invariant.gep1862 = getelementptr float, ptr %11, i64 %270
  br label %vector.body1579

vector.body1579:                                  ; preds = %vector.body1579, %vector.ph1572
  %index1580 = phi i64 [ 0, %vector.ph1572 ], [ %index.next1587, %vector.body1579 ]
  %offset.idx1582 = or disjoint i64 %index1580, 1
  %273 = or disjoint i64 %index1580, 5
  %274 = getelementptr %struct.complex, ptr %invariant.gep1489, i64 %offset.idx1582
  %275 = getelementptr %struct.complex, ptr %invariant.gep1489, i64 %273
  %wide.vec1583 = load <8 x float>, ptr %274, align 4, !tbaa !17
  %wide.vec1584 = load <8 x float>, ptr %275, align 4, !tbaa !17
  %strided.vec1585 = shufflevector <8 x float> %wide.vec1583, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1586 = shufflevector <8 x float> %wide.vec1584, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %gep1863 = getelementptr float, ptr %invariant.gep1862, i64 %index1580
  %276 = getelementptr i8, ptr %gep1863, i64 16
  store <4 x float> %strided.vec1585, ptr %gep1863, align 4, !tbaa !9, !alias.scope !43, !noalias !46
  store <4 x float> %strided.vec1586, ptr %276, align 4, !tbaa !9, !alias.scope !43, !noalias !46
  %index.next1587 = add nuw i64 %index1580, 8
  %277 = icmp eq i64 %index.next1587, %n.vec1574
  br i1 %277, label %scalar.ph1570.preheader, label %vector.body1579, !llvm.loop !48

scalar.ph1570.preheader:                          ; preds = %vector.body1579, %vector.memcheck1559, %.lr.ph1098
  %indvars.iv1330.ph = phi i64 [ %270, %vector.memcheck1559 ], [ %270, %.lr.ph1098 ], [ %ind.end1575, %vector.body1579 ]
  %indvars.iv1328.ph = phi i64 [ 1, %vector.memcheck1559 ], [ 1, %.lr.ph1098 ], [ %ind.end1577, %vector.body1579 ]
  %278 = sub nsw i64 %wide.trip.count1335, %indvars.iv1328.ph
  %279 = sub nsw i64 %266, %indvars.iv1328.ph
  %xtraiter1827 = and i64 %278, 3
  %lcmp.mod1828.not = icmp eq i64 %xtraiter1827, 0
  br i1 %lcmp.mod1828.not, label %scalar.ph1570.prol.loopexit, label %scalar.ph1570.prol

scalar.ph1570.prol:                               ; preds = %scalar.ph1570.preheader, %scalar.ph1570.prol
  %indvars.iv1330.prol = phi i64 [ %indvars.iv.next1331.prol, %scalar.ph1570.prol ], [ %indvars.iv1330.ph, %scalar.ph1570.preheader ]
  %indvars.iv1328.prol = phi i64 [ %indvars.iv.next1329.prol, %scalar.ph1570.prol ], [ %indvars.iv1328.ph, %scalar.ph1570.preheader ]
  %prol.iter1829 = phi i64 [ %prol.iter1829.next, %scalar.ph1570.prol ], [ 0, %scalar.ph1570.preheader ]
  %indvars.iv.next1331.prol = add nsw i64 %indvars.iv1330.prol, 1
  %gep1490.prol = getelementptr %struct.complex, ptr %invariant.gep1489, i64 %indvars.iv1328.prol
  %280 = load float, ptr %gep1490.prol, align 4, !tbaa !17
  %281 = getelementptr float, ptr %11, i64 %indvars.iv1330.prol
  store float %280, ptr %281, align 4, !tbaa !9
  %indvars.iv.next1329.prol = add nuw nsw i64 %indvars.iv1328.prol, 1
  %prol.iter1829.next = add i64 %prol.iter1829, 1
  %prol.iter1829.cmp.not = icmp eq i64 %prol.iter1829.next, %xtraiter1827
  br i1 %prol.iter1829.cmp.not, label %scalar.ph1570.prol.loopexit, label %scalar.ph1570.prol, !llvm.loop !49

scalar.ph1570.prol.loopexit:                      ; preds = %scalar.ph1570.prol, %scalar.ph1570.preheader
  %indvars.iv.next1331.lcssa.unr = phi i64 [ poison, %scalar.ph1570.preheader ], [ %indvars.iv.next1331.prol, %scalar.ph1570.prol ]
  %indvars.iv1330.unr = phi i64 [ %indvars.iv1330.ph, %scalar.ph1570.preheader ], [ %indvars.iv.next1331.prol, %scalar.ph1570.prol ]
  %indvars.iv1328.unr = phi i64 [ %indvars.iv1328.ph, %scalar.ph1570.preheader ], [ %indvars.iv.next1329.prol, %scalar.ph1570.prol ]
  %282 = icmp ult i64 %279, 3
  br i1 %282, label %._crit_edge1099, label %scalar.ph1570.preheader.new

scalar.ph1570.preheader.new:                      ; preds = %scalar.ph1570.prol.loopexit
  %invariant.gep1864 = getelementptr i8, ptr %invariant.gep1489, i64 8
  %invariant.gep1868 = getelementptr i8, ptr %invariant.gep1489, i64 16
  %invariant.gep1872 = getelementptr i8, ptr %invariant.gep1489, i64 24
  br label %scalar.ph1570

scalar.ph1570:                                    ; preds = %scalar.ph1570, %scalar.ph1570.preheader.new
  %indvars.iv1330 = phi i64 [ %indvars.iv1330.unr, %scalar.ph1570.preheader.new ], [ %indvars.iv.next1331.3, %scalar.ph1570 ]
  %indvars.iv1328 = phi i64 [ %indvars.iv1328.unr, %scalar.ph1570.preheader.new ], [ %indvars.iv.next1329.3, %scalar.ph1570 ]
  %gep1490 = getelementptr %struct.complex, ptr %invariant.gep1489, i64 %indvars.iv1328
  %283 = load float, ptr %gep1490, align 4, !tbaa !17
  %284 = getelementptr float, ptr %11, i64 %indvars.iv1330
  store float %283, ptr %284, align 4, !tbaa !9
  %gep1865 = getelementptr %struct.complex, ptr %invariant.gep1864, i64 %indvars.iv1328
  %285 = load float, ptr %gep1865, align 4, !tbaa !17
  %gep1867 = getelementptr float, ptr %invariant.gep1866, i64 %indvars.iv1330
  store float %285, ptr %gep1867, align 4, !tbaa !9
  %gep1869 = getelementptr %struct.complex, ptr %invariant.gep1868, i64 %indvars.iv1328
  %286 = load float, ptr %gep1869, align 4, !tbaa !17
  %gep1871 = getelementptr float, ptr %invariant.gep1870, i64 %indvars.iv1330
  store float %286, ptr %gep1871, align 4, !tbaa !9
  %indvars.iv.next1331.3 = add nsw i64 %indvars.iv1330, 4
  %gep1873 = getelementptr %struct.complex, ptr %invariant.gep1872, i64 %indvars.iv1328
  %287 = load float, ptr %gep1873, align 4, !tbaa !17
  %gep1875 = getelementptr float, ptr %invariant.gep1874, i64 %indvars.iv1330
  store float %287, ptr %gep1875, align 4, !tbaa !9
  %indvars.iv.next1329.3 = add nuw nsw i64 %indvars.iv1328, 4
  %exitcond1336.not.3 = icmp eq i64 %indvars.iv.next1329.3, %wide.trip.count1335
  br i1 %exitcond1336.not.3, label %._crit_edge1099, label %scalar.ph1570, !llvm.loop !50

._crit_edge1099:                                  ; preds = %scalar.ph1570, %scalar.ph1570.prol.loopexit
  %indvars.iv.next1331.lcssa = phi i64 [ %indvars.iv.next1331.lcssa.unr, %scalar.ph1570.prol.loopexit ], [ %indvars.iv.next1331.3, %scalar.ph1570 ]
  %288 = trunc nsw i64 %indvars.iv.next1331.lcssa to i32
  %indvars.iv.next1338 = add nuw nsw i64 %indvars.iv1337, 1
  %exitcond1341.not = icmp eq i64 %indvars.iv.next1338, %wide.trip.count1340
  br i1 %exitcond1341.not, label %._crit_edge1106, label %.lr.ph1098, !llvm.loop !51

._crit_edge1106:                                  ; preds = %._crit_edge1099, %.lr.ph1105, %._crit_edge1093
  call void @sgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %2, ptr noundef nonnull @c_b10, ptr noundef nonnull %112, ptr noundef nonnull %2, ptr noundef nonnull %161, ptr noundef nonnull %2, ptr noundef nonnull @c_b35, ptr noundef nonnull %114, ptr noundef nonnull %2) #6
  %289 = load i32, ptr %3, align 4, !tbaa !5
  %.not10171114 = icmp slt i32 %289, 1
  br i1 %.not10171114, label %._crit_edge1119, label %.lr.ph1118.preheader

.lr.ph1118.preheader:                             ; preds = %._crit_edge1106
  %290 = sext i32 %27 to i64
  %291 = zext nneg i32 %289 to i64
  br label %.lr.ph1118

.lr.ph1118:                                       ; preds = %.lr.ph1118.preheader, %._crit_edge1112
  %indvars.iv1351 = phi i64 [ 1, %.lr.ph1118.preheader ], [ %indvars.iv.next1352, %._crit_edge1112 ]
  %.79671115 = phi i32 [ %117, %.lr.ph1118.preheader ], [ %.8968.lcssa, %._crit_edge1112 ]
  %292 = load i32, ptr %2, align 4, !tbaa !5
  %.not10201107 = icmp slt i32 %292, 1
  br i1 %.not10201107, label %._crit_edge1112, label %.lr.ph1111

.lr.ph1111:                                       ; preds = %.lr.ph1118
  %293 = mul nsw i64 %indvars.iv1351, %290
  %294 = sext i32 %.79671115 to i64
  %295 = add nuw i32 %292, 1
  %wide.trip.count1349 = zext i32 %295 to i64
  %invariant.gep1491 = getelementptr %struct.complex, ptr %29, i64 %293
  br label %296

296:                                              ; preds = %.lr.ph1111, %296
  %indvars.iv1344 = phi i64 [ %294, %.lr.ph1111 ], [ %indvars.iv.next1345, %296 ]
  %indvars.iv1342 = phi i64 [ 1, %.lr.ph1111 ], [ %indvars.iv.next1343, %296 ]
  %indvars.iv.next1345 = add nsw i64 %indvars.iv1344, 1
  %gep1492 = getelementptr %struct.complex, ptr %invariant.gep1491, i64 %indvars.iv1342
  %297 = call <2 x float> @Cf(ptr noundef %gep1492)
  %.sroa.02.4.vec.extract = extractelement <2 x float> %297, i64 1
  %298 = getelementptr float, ptr %11, i64 %indvars.iv1344
  store float %.sroa.02.4.vec.extract, ptr %298, align 4, !tbaa !9
  %indvars.iv.next1343 = add nuw nsw i64 %indvars.iv1342, 1
  %exitcond1350.not = icmp eq i64 %indvars.iv.next1343, %wide.trip.count1349
  br i1 %exitcond1350.not, label %._crit_edge1112.loopexit, label %296, !llvm.loop !52

._crit_edge1112.loopexit:                         ; preds = %296
  %299 = trunc nsw i64 %indvars.iv.next1345 to i32
  br label %._crit_edge1112

._crit_edge1112:                                  ; preds = %._crit_edge1112.loopexit, %.lr.ph1118
  %.8968.lcssa = phi i32 [ %.79671115, %.lr.ph1118 ], [ %299, %._crit_edge1112.loopexit ]
  %indvars.iv.next1352 = add nuw nsw i64 %indvars.iv1351, 1
  %.not1017.not = icmp ult i64 %indvars.iv1351, %291
  br i1 %.not1017.not, label %.lr.ph1118, label %._crit_edge1119, !llvm.loop !53

._crit_edge1119:                                  ; preds = %._crit_edge1112, %._crit_edge1106
  call void @sgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %2, ptr noundef nonnull @c_b10, ptr noundef nonnull %112, ptr noundef nonnull %2, ptr noundef nonnull %161, ptr noundef nonnull %2, ptr noundef nonnull @c_b35, ptr noundef nonnull %176, ptr noundef nonnull %2) #6
  %300 = load i32, ptr %3, align 4, !tbaa !5
  %.not10181129 = icmp slt i32 %300, 1
  br i1 %.not10181129, label %._crit_edge1135, label %.lr.ph1134

.lr.ph1134:                                       ; preds = %._crit_edge1119
  %301 = load i32, ptr %2, align 4, !tbaa !5
  %.not10191120 = icmp slt i32 %301, 1
  br i1 %.not10191120, label %._crit_edge1135, label %.lr.ph1125.preheader

.lr.ph1125.preheader:                             ; preds = %.lr.ph1134
  %302 = add nuw i32 %301, 1
  %303 = sext i32 %27 to i64
  %304 = add nuw i32 %300, 1
  %wide.trip.count1370 = zext i32 %304 to i64
  %wide.trip.count1365 = zext i32 %302 to i64
  %305 = shl nsw i64 %303, 3
  %306 = shl nsw i64 %28, 3
  %307 = getelementptr i8, ptr %6, i64 %305
  %308 = getelementptr i8, ptr %307, i64 %306
  %scevgep1589 = getelementptr i8, ptr %308, i64 8
  %309 = shl nuw nsw i64 %wide.trip.count1370, 3
  %310 = add nsw i64 %309, -8
  %311 = mul i64 %310, %303
  %312 = shl nuw nsw i64 %wide.trip.count1365, 3
  %313 = getelementptr i8, ptr %6, i64 %311
  %314 = getelementptr i8, ptr %313, i64 %306
  %scevgep1590 = getelementptr i8, ptr %314, i64 %312
  %315 = shl nuw nsw i64 %wide.trip.count1365, 2
  %316 = add nsw i64 %315, -4
  %scevgep1592 = getelementptr i8, ptr %11, i64 %316
  %scevgep1595 = getelementptr i8, ptr %11, i64 %316
  %317 = zext nneg i32 %301 to i64
  %318 = zext nneg i32 %301 to i64
  %min.iters.check1608 = icmp ult i32 %301, 8
  %stride.check1604 = icmp slt i32 %27, 0
  %n.vec1611 = and i64 %317, 2147483644
  %ind.end1612 = or disjoint i64 %n.vec1611, 1
  %cmp.n1630 = icmp eq i64 %n.vec1611, %317
  %319 = and i32 %301, 1
  %lcmp.mod1831.not = icmp eq i32 %319, 0
  %invariant.gep1880 = getelementptr i8, ptr %11, i64 4
  %invariant.gep1882 = getelementptr i8, ptr %11, i64 4
  br label %.lr.ph1125

.lr.ph1125:                                       ; preds = %.lr.ph1125.preheader, %._crit_edge1126
  %indvars.iv1367 = phi i64 [ 1, %.lr.ph1125.preheader ], [ %indvars.iv.next1368, %._crit_edge1126 ]
  %.29201131 = phi i32 [ %177, %.lr.ph1125.preheader ], [ %348, %._crit_edge1126 ]
  %.29331130 = phi i32 [ %178, %.lr.ph1125.preheader ], [ %347, %._crit_edge1126 ]
  %320 = mul nsw i64 %indvars.iv1367, %303
  %321 = sext i32 %.29201131 to i64
  %322 = sext i32 %.29331130 to i64
  %invariant.gep1493 = getelementptr %struct.complex, ptr %29, i64 %320
  br i1 %min.iters.check1608, label %scalar.ph1607.preheader, label %vector.memcheck1588

vector.memcheck1588:                              ; preds = %.lr.ph1125
  %323 = shl nsw i64 %322, 2
  %scevgep1591 = getelementptr i8, ptr %11, i64 %323
  %scevgep1593 = getelementptr i8, ptr %scevgep1592, i64 %323
  %324 = shl nsw i64 %321, 2
  %scevgep1594 = getelementptr i8, ptr %11, i64 %324
  %scevgep1596 = getelementptr i8, ptr %scevgep1595, i64 %324
  %bound01597 = icmp ult ptr %scevgep1589, %scevgep1593
  %bound11598 = icmp ult ptr %scevgep1591, %scevgep1590
  %found.conflict1599 = and i1 %bound01597, %bound11598
  %bound01601 = icmp ult ptr %scevgep1589, %scevgep1596
  %bound11602 = icmp ult ptr %scevgep1594, %scevgep1590
  %found.conflict1603 = and i1 %bound01601, %bound11602
  %325 = or i1 %found.conflict1603, %stride.check1604
  %conflict.rdx1605 = or i1 %found.conflict1599, %325
  br i1 %conflict.rdx1605, label %scalar.ph1607.preheader, label %vector.ph1609

vector.ph1609:                                    ; preds = %vector.memcheck1588
  %ind.end1614 = add nsw i64 %n.vec1611, %322
  %ind.end1616 = add nsw i64 %n.vec1611, %321
  %invariant.gep1876 = getelementptr float, ptr %11, i64 %321
  %invariant.gep1878 = getelementptr float, ptr %11, i64 %322
  br label %vector.body1618

vector.body1618:                                  ; preds = %vector.body1618, %vector.ph1609
  %index1619 = phi i64 [ 0, %vector.ph1609 ], [ %index.next1629, %vector.body1618 ]
  %offset.idx1620 = or disjoint i64 %index1619, 1
  %326 = or disjoint i64 %index1619, 3
  %gep1877 = getelementptr float, ptr %invariant.gep1876, i64 %index1619
  %327 = getelementptr i8, ptr %gep1877, i64 8
  %wide.load1623 = load <2 x float>, ptr %gep1877, align 4, !tbaa !9, !alias.scope !54
  %wide.load1624 = load <2 x float>, ptr %327, align 4, !tbaa !9, !alias.scope !54
  %gep1879 = getelementptr float, ptr %invariant.gep1878, i64 %index1619
  %328 = getelementptr i8, ptr %gep1879, i64 8
  %wide.load1625 = load <2 x float>, ptr %gep1879, align 4, !tbaa !9, !alias.scope !57
  %wide.load1626 = load <2 x float>, ptr %328, align 4, !tbaa !9, !alias.scope !57
  %329 = getelementptr %struct.complex, ptr %invariant.gep1493, i64 %offset.idx1620
  %330 = getelementptr %struct.complex, ptr %invariant.gep1493, i64 %326
  %interleaved.vec1627 = shufflevector <2 x float> %wide.load1623, <2 x float> %wide.load1625, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1627, ptr %329, align 4, !tbaa !9
  %interleaved.vec1628 = shufflevector <2 x float> %wide.load1624, <2 x float> %wide.load1626, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1628, ptr %330, align 4, !tbaa !9
  %index.next1629 = add nuw i64 %index1619, 4
  %331 = icmp eq i64 %index.next1629, %n.vec1611
  br i1 %331, label %middle.block1606, label %vector.body1618, !llvm.loop !59

middle.block1606:                                 ; preds = %vector.body1618
  br i1 %cmp.n1630, label %._crit_edge1126, label %scalar.ph1607.preheader

scalar.ph1607.preheader:                          ; preds = %middle.block1606, %vector.memcheck1588, %.lr.ph1125
  %indvars.iv1358.ph = phi i64 [ 1, %vector.memcheck1588 ], [ 1, %.lr.ph1125 ], [ %ind.end1612, %middle.block1606 ]
  %indvars.iv1356.ph = phi i64 [ %322, %vector.memcheck1588 ], [ %322, %.lr.ph1125 ], [ %ind.end1614, %middle.block1606 ]
  %indvars.iv1354.ph = phi i64 [ %321, %vector.memcheck1588 ], [ %321, %.lr.ph1125 ], [ %ind.end1616, %middle.block1606 ]
  br i1 %lcmp.mod1831.not, label %scalar.ph1607.prol.loopexit, label %scalar.ph1607.prol

scalar.ph1607.prol:                               ; preds = %scalar.ph1607.preheader
  %indvars.iv.next1355.prol = add nsw i64 %indvars.iv1354.ph, 1
  %indvars.iv.next1357.prol = add nsw i64 %indvars.iv1356.ph, 1
  %332 = getelementptr float, ptr %11, i64 %indvars.iv1354.ph
  %333 = load float, ptr %332, align 4, !tbaa !9
  %334 = getelementptr float, ptr %11, i64 %indvars.iv1356.ph
  %335 = load float, ptr %334, align 4, !tbaa !9
  %gep1494.prol = getelementptr %struct.complex, ptr %invariant.gep1493, i64 %indvars.iv1358.ph
  store float %333, ptr %gep1494.prol, align 4, !tbaa !17
  %336 = getelementptr inbounds i8, ptr %gep1494.prol, i64 4
  store float %335, ptr %336, align 4, !tbaa !39
  %indvars.iv.next1359.prol = add nuw nsw i64 %indvars.iv1358.ph, 1
  br label %scalar.ph1607.prol.loopexit

scalar.ph1607.prol.loopexit:                      ; preds = %scalar.ph1607.prol, %scalar.ph1607.preheader
  %indvars.iv.next1355.lcssa1821.unr = phi i64 [ poison, %scalar.ph1607.preheader ], [ %indvars.iv.next1355.prol, %scalar.ph1607.prol ]
  %indvars.iv.next1357.lcssa1820.unr = phi i64 [ poison, %scalar.ph1607.preheader ], [ %indvars.iv.next1357.prol, %scalar.ph1607.prol ]
  %indvars.iv1358.unr = phi i64 [ %indvars.iv1358.ph, %scalar.ph1607.preheader ], [ %indvars.iv.next1359.prol, %scalar.ph1607.prol ]
  %indvars.iv1356.unr = phi i64 [ %indvars.iv1356.ph, %scalar.ph1607.preheader ], [ %indvars.iv.next1357.prol, %scalar.ph1607.prol ]
  %indvars.iv1354.unr = phi i64 [ %indvars.iv1354.ph, %scalar.ph1607.preheader ], [ %indvars.iv.next1355.prol, %scalar.ph1607.prol ]
  %337 = icmp eq i64 %indvars.iv1358.ph, %318
  br i1 %337, label %._crit_edge1126, label %scalar.ph1607

scalar.ph1607:                                    ; preds = %scalar.ph1607.prol.loopexit, %scalar.ph1607
  %indvars.iv1358 = phi i64 [ %indvars.iv.next1359.1, %scalar.ph1607 ], [ %indvars.iv1358.unr, %scalar.ph1607.prol.loopexit ]
  %indvars.iv1356 = phi i64 [ %indvars.iv.next1357.1, %scalar.ph1607 ], [ %indvars.iv1356.unr, %scalar.ph1607.prol.loopexit ]
  %indvars.iv1354 = phi i64 [ %indvars.iv.next1355.1, %scalar.ph1607 ], [ %indvars.iv1354.unr, %scalar.ph1607.prol.loopexit ]
  %338 = getelementptr float, ptr %11, i64 %indvars.iv1354
  %339 = load float, ptr %338, align 4, !tbaa !9
  %340 = getelementptr float, ptr %11, i64 %indvars.iv1356
  %341 = load float, ptr %340, align 4, !tbaa !9
  %gep1494 = getelementptr %struct.complex, ptr %invariant.gep1493, i64 %indvars.iv1358
  store float %339, ptr %gep1494, align 4, !tbaa !17
  %342 = getelementptr inbounds i8, ptr %gep1494, i64 4
  store float %341, ptr %342, align 4, !tbaa !39
  %indvars.iv.next1355.1 = add nsw i64 %indvars.iv1354, 2
  %indvars.iv.next1357.1 = add nsw i64 %indvars.iv1356, 2
  %gep1881 = getelementptr float, ptr %invariant.gep1880, i64 %indvars.iv1354
  %343 = load float, ptr %gep1881, align 4, !tbaa !9
  %gep1883 = getelementptr float, ptr %invariant.gep1882, i64 %indvars.iv1356
  %344 = load float, ptr %gep1883, align 4, !tbaa !9
  %345 = getelementptr %struct.complex, ptr %invariant.gep1493, i64 %indvars.iv1358
  %gep1494.1 = getelementptr i8, ptr %345, i64 8
  store float %343, ptr %gep1494.1, align 4, !tbaa !17
  %346 = getelementptr i8, ptr %345, i64 12
  store float %344, ptr %346, align 4, !tbaa !39
  %indvars.iv.next1359.1 = add nuw nsw i64 %indvars.iv1358, 2
  %exitcond1366.not.1 = icmp eq i64 %indvars.iv.next1359.1, %wide.trip.count1365
  br i1 %exitcond1366.not.1, label %._crit_edge1126, label %scalar.ph1607, !llvm.loop !60

._crit_edge1126:                                  ; preds = %scalar.ph1607.prol.loopexit, %scalar.ph1607, %middle.block1606
  %indvars.iv.next1355.lcssa = phi i64 [ %ind.end1616, %middle.block1606 ], [ %indvars.iv.next1355.lcssa1821.unr, %scalar.ph1607.prol.loopexit ], [ %indvars.iv.next1355.1, %scalar.ph1607 ]
  %indvars.iv.next1357.lcssa = phi i64 [ %ind.end1614, %middle.block1606 ], [ %indvars.iv.next1357.lcssa1820.unr, %scalar.ph1607.prol.loopexit ], [ %indvars.iv.next1357.1, %scalar.ph1607 ]
  %347 = trunc nsw i64 %indvars.iv.next1357.lcssa to i32
  %348 = trunc nsw i64 %indvars.iv.next1355.lcssa to i32
  %indvars.iv.next1368 = add nuw nsw i64 %indvars.iv1367, 1
  %exitcond1371.not = icmp eq i64 %indvars.iv.next1368, %wide.trip.count1370
  br i1 %exitcond1371.not, label %._crit_edge1135, label %.lr.ph1125, !llvm.loop !61

._crit_edge1135:                                  ; preds = %._crit_edge1126, %.lr.ph1134, %._crit_edge1119
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b10, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %4, ptr noundef nonnull %2, ptr noundef nonnull %13) #6
  call void @slasrt_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %13) #6
  call void @clascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull @c_b10, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %13) #6
  br label %.loopexit1031

349:                                              ; preds = %100
  %350 = sitofp i32 %101 to float
  %351 = add nsw i32 %102, 1
  %352 = sitofp i32 %351 to float
  %353 = fdiv float %350, %352
  %354 = fpext float %353 to double
  %355 = call double @log(double noundef %354) #6
  %356 = fdiv double %355, 0x3FE62E42FEFA39EF
  %357 = fptosi double %356 to i32
  %358 = add nsw i32 %357, 1
  %359 = load i32, ptr %1, align 4, !tbaa !5
  %360 = add nsw i32 %359, 1
  %361 = load i32, ptr %2, align 4, !tbaa !5
  %362 = mul nsw i32 %361, %359
  %363 = add nsw i32 %362, 1
  %364 = mul nsw i32 %360, %361
  %365 = add nsw i32 %363, %364
  %366 = mul nsw i32 %358, %361
  %367 = add nsw i32 %365, %366
  %368 = shl i32 %366, 1
  %369 = add nsw i32 %367, %368
  %370 = add nsw i32 %369, %366
  %371 = add nsw i32 %370, %361
  %372 = add nsw i32 %371, %361
  %373 = shl i32 %358, 1
  %374 = mul nsw i32 %373, %361
  %375 = add nsw i32 %372, %374
  %376 = add nsw i32 %375, %374
  %377 = load i32, ptr %3, align 4, !tbaa !5
  %378 = mul nsw i32 %377, %359
  %379 = add nsw i32 %376, %378
  %380 = add nsw i32 %379, %378
  %381 = add i32 %361, 1
  %382 = add nsw i32 %381, %361
  %383 = add nsw i32 %382, %361
  %384 = add nsw i32 %383, %361
  %385 = add nsw i32 %384, %366
  %386 = add nsw i32 %385, %368
  store i32 0, ptr %16, align 4, !tbaa !5
  store i32 1, ptr %19, align 4, !tbaa !5
  store i32 0, ptr %20, align 4, !tbaa !5
  %.not9891136 = icmp slt i32 %361, 1
  br i1 %.not9891136, label %._crit_edge1140, label %.lr.ph1139

.lr.ph1139:                                       ; preds = %349
  %387 = fcmp oge float %44, 0.000000e+00
  %.neg = fneg float %44
  %wide.trip.count1375 = zext i32 %381 to i64
  %388 = add nsw i64 %wide.trip.count1375, -1
  %min.iters.check1633 = icmp ult i32 %381, 9
  br i1 %min.iters.check1633, label %scalar.ph1632.preheader, label %vector.ph1634

vector.ph1634:                                    ; preds = %.lr.ph1139
  %n.vec1636 = and i64 %388, -8
  %ind.end1637 = or disjoint i64 %n.vec1636, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %44, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %invariant.gep1884 = getelementptr i8, ptr %25, i64 32
  br label %vector.body1639

vector.body1639:                                  ; preds = %pred.store.continue1657, %vector.ph1634
  %index1640 = phi i64 [ 0, %vector.ph1634 ], [ %index.next1658, %pred.store.continue1657 ]
  %389 = or disjoint i64 %index1640, 5
  %390 = getelementptr float, ptr %4, i64 %index1640
  %391 = getelementptr inbounds i8, ptr %390, i64 16
  %wide.load1642 = load <4 x float>, ptr %390, align 4, !tbaa !9
  %wide.load1643 = load <4 x float>, ptr %391, align 4, !tbaa !9
  %392 = fcmp oge <4 x float> %wide.load1642, zeroinitializer
  %393 = fcmp oge <4 x float> %wide.load1643, zeroinitializer
  %394 = fneg <4 x float> %wide.load1642
  %395 = fneg <4 x float> %wide.load1643
  %396 = select <4 x i1> %392, <4 x float> %wide.load1642, <4 x float> %394
  %397 = select <4 x i1> %393, <4 x float> %wide.load1643, <4 x float> %395
  %398 = fcmp olt <4 x float> %396, %broadcast.splat
  %399 = fcmp olt <4 x float> %397, %broadcast.splat
  %400 = extractelement <4 x i1> %398, i64 0
  br i1 %400, label %pred.store.if, label %pred.store.continue

pred.store.if:                                    ; preds = %vector.body1639
  %401 = extractelement <4 x i1> %392, i64 0
  %402 = xor i1 %387, %401
  %403 = getelementptr float, ptr %4, i64 %index1640
  %404 = select i1 %402, float %.neg, float %44
  store float %404, ptr %403, align 4, !tbaa !9
  br label %pred.store.continue

pred.store.continue:                              ; preds = %pred.store.if, %vector.body1639
  %405 = extractelement <4 x i1> %398, i64 1
  br i1 %405, label %pred.store.if1644, label %pred.store.continue1645

pred.store.if1644:                                ; preds = %pred.store.continue
  %406 = or disjoint i64 %index1640, 2
  %407 = extractelement <4 x i1> %392, i64 1
  %408 = xor i1 %387, %407
  %409 = getelementptr inbounds float, ptr %25, i64 %406
  %410 = select i1 %408, float %.neg, float %44
  store float %410, ptr %409, align 4, !tbaa !9
  br label %pred.store.continue1645

pred.store.continue1645:                          ; preds = %pred.store.if1644, %pred.store.continue
  %411 = extractelement <4 x i1> %398, i64 2
  br i1 %411, label %pred.store.if1646, label %pred.store.continue1647

pred.store.if1646:                                ; preds = %pred.store.continue1645
  %412 = or disjoint i64 %index1640, 3
  %413 = extractelement <4 x i1> %392, i64 2
  %414 = xor i1 %387, %413
  %415 = getelementptr inbounds float, ptr %25, i64 %412
  %416 = select i1 %414, float %.neg, float %44
  store float %416, ptr %415, align 4, !tbaa !9
  br label %pred.store.continue1647

pred.store.continue1647:                          ; preds = %pred.store.if1646, %pred.store.continue1645
  %417 = extractelement <4 x i1> %398, i64 3
  br i1 %417, label %pred.store.if1648, label %pred.store.continue1649

pred.store.if1648:                                ; preds = %pred.store.continue1647
  %418 = or disjoint i64 %index1640, 4
  %419 = extractelement <4 x i1> %392, i64 3
  %420 = xor i1 %387, %419
  %421 = getelementptr inbounds float, ptr %25, i64 %418
  %422 = select i1 %420, float %.neg, float %44
  store float %422, ptr %421, align 4, !tbaa !9
  br label %pred.store.continue1649

pred.store.continue1649:                          ; preds = %pred.store.if1648, %pred.store.continue1647
  %423 = extractelement <4 x i1> %399, i64 0
  br i1 %423, label %pred.store.if1650, label %pred.store.continue1651

pred.store.if1650:                                ; preds = %pred.store.continue1649
  %424 = extractelement <4 x i1> %393, i64 0
  %425 = xor i1 %387, %424
  %426 = getelementptr inbounds float, ptr %25, i64 %389
  %427 = select i1 %425, float %.neg, float %44
  store float %427, ptr %426, align 4, !tbaa !9
  br label %pred.store.continue1651

pred.store.continue1651:                          ; preds = %pred.store.if1650, %pred.store.continue1649
  %428 = extractelement <4 x i1> %399, i64 1
  br i1 %428, label %pred.store.if1652, label %pred.store.continue1653

pred.store.if1652:                                ; preds = %pred.store.continue1651
  %429 = or disjoint i64 %index1640, 6
  %430 = extractelement <4 x i1> %393, i64 1
  %431 = xor i1 %387, %430
  %432 = getelementptr inbounds float, ptr %25, i64 %429
  %433 = select i1 %431, float %.neg, float %44
  store float %433, ptr %432, align 4, !tbaa !9
  br label %pred.store.continue1653

pred.store.continue1653:                          ; preds = %pred.store.if1652, %pred.store.continue1651
  %434 = extractelement <4 x i1> %399, i64 2
  br i1 %434, label %pred.store.if1654, label %pred.store.continue1655

pred.store.if1654:                                ; preds = %pred.store.continue1653
  %435 = or disjoint i64 %index1640, 7
  %436 = extractelement <4 x i1> %393, i64 2
  %437 = xor i1 %387, %436
  %438 = getelementptr inbounds float, ptr %25, i64 %435
  %439 = select i1 %437, float %.neg, float %44
  store float %439, ptr %438, align 4, !tbaa !9
  br label %pred.store.continue1655

pred.store.continue1655:                          ; preds = %pred.store.if1654, %pred.store.continue1653
  %440 = extractelement <4 x i1> %399, i64 3
  br i1 %440, label %pred.store.if1656, label %pred.store.continue1657

pred.store.if1656:                                ; preds = %pred.store.continue1655
  %441 = extractelement <4 x i1> %393, i64 3
  %442 = xor i1 %387, %441
  %gep1885 = getelementptr float, ptr %invariant.gep1884, i64 %index1640
  %443 = select i1 %442, float %.neg, float %44
  store float %443, ptr %gep1885, align 4, !tbaa !9
  br label %pred.store.continue1657

pred.store.continue1657:                          ; preds = %pred.store.if1656, %pred.store.continue1655
  %index.next1658 = add nuw i64 %index1640, 8
  %444 = icmp eq i64 %index.next1658, %n.vec1636
  br i1 %444, label %middle.block1631, label %vector.body1639, !llvm.loop !62

middle.block1631:                                 ; preds = %pred.store.continue1657
  %cmp.n1659 = icmp eq i64 %388, %n.vec1636
  br i1 %cmp.n1659, label %._crit_edge1140, label %scalar.ph1632.preheader

scalar.ph1632.preheader:                          ; preds = %middle.block1631, %.lr.ph1139
  %indvars.iv1372.ph = phi i64 [ 1, %.lr.ph1139 ], [ %ind.end1637, %middle.block1631 ]
  br label %scalar.ph1632

scalar.ph1632:                                    ; preds = %scalar.ph1632.preheader, %453
  %indvars.iv1372 = phi i64 [ %indvars.iv.next1373, %453 ], [ %indvars.iv1372.ph, %scalar.ph1632.preheader ]
  %445 = getelementptr inbounds float, ptr %25, i64 %indvars.iv1372
  %446 = load float, ptr %445, align 4, !tbaa !9
  %447 = fcmp oge float %446, 0.000000e+00
  %448 = fneg float %446
  %449 = select i1 %447, float %446, float %448
  %450 = fcmp olt float %449, %44
  br i1 %450, label %451, label %453

451:                                              ; preds = %scalar.ph1632
  %452 = xor i1 %387, %447
  %. = select i1 %452, float %.neg, float %44
  store float %., ptr %445, align 4, !tbaa !9
  br label %453

453:                                              ; preds = %scalar.ph1632, %451
  %indvars.iv.next1373 = add nuw nsw i64 %indvars.iv1372, 1
  %exitcond1376.not = icmp eq i64 %indvars.iv.next1373, %wide.trip.count1375
  br i1 %exitcond1376.not, label %._crit_edge1140, label %scalar.ph1632, !llvm.loop !63

._crit_edge1140:                                  ; preds = %453, %middle.block1631, %349
  %454 = load i32, ptr %24, align 4, !tbaa !5
  %.not9901185 = icmp slt i32 %454, 1
  br i1 %.not9901185, label %._crit_edge1192, label %.lr.ph1191

.lr.ph1191:                                       ; preds = %._crit_edge1140
  %455 = sext i32 %376 to i64
  %456 = getelementptr inbounds float, ptr %31, i64 %455
  %457 = add nsw i32 %380, -1
  %458 = sext i32 %380 to i64
  %459 = getelementptr inbounds float, ptr %31, i64 %458
  %460 = sext i32 %379 to i64
  %461 = getelementptr inbounds float, ptr %31, i64 %460
  %462 = add nsw i32 %376, -1
  %463 = add nsw i32 %379, -1
  %464 = sext i32 %386 to i64
  %465 = getelementptr inbounds i32, ptr %32, i64 %464
  %466 = sext i32 %27 to i64
  %467 = zext nneg i32 %454 to i64
  %468 = add nsw i64 %466, %28
  %469 = shl nsw i64 %468, 3
  %scevgep1661 = getelementptr i8, ptr %6, i64 %469
  %470 = shl nsw i64 %466, 3
  %471 = add nsw i64 %466, %28
  %472 = add nsw i64 %466, %28
  %473 = shl nsw i64 %472, 3
  %scevgep1710 = getelementptr i8, ptr %6, i64 %473
  %scevgep1712 = getelementptr i8, ptr %6, i64 -4
  %474 = shl nsw i64 %466, 3
  %475 = add nsw i64 %466, %28
  %stride.check1717 = icmp slt i32 %27, 0
  %stride.check1677 = icmp slt i32 %27, 0
  br label %476

476:                                              ; preds = %.lr.ph1191, %676
  %indvars.iv1417 = phi i64 [ 1, %.lr.ph1191 ], [ %indvars.iv.next1418.pre-phi, %676 ]
  %.01188 = phi i32 [ 1, %.lr.ph1191 ], [ %.1, %676 ]
  %.09281187 = phi i32 [ 0, %.lr.ph1191 ], [ %.2930, %676 ]
  %477 = getelementptr inbounds float, ptr %26, i64 %indvars.iv1417
  %478 = load float, ptr %477, align 4, !tbaa !9
  %479 = fcmp oge float %478, 0.000000e+00
  %480 = fneg float %478
  %481 = select i1 %479, float %478, float %480
  %482 = fcmp olt float %481, %44
  %483 = load i32, ptr %24, align 4
  %484 = zext i32 %483 to i64
  %485 = icmp eq i64 %indvars.iv1417, %484
  %or.cond1028 = select i1 %482, i1 true, i1 %485
  br i1 %or.cond1028, label %486, label %._crit_edge1465

._crit_edge1465:                                  ; preds = %476
  %.pre = add nuw nsw i64 %indvars.iv1417, 1
  br label %676

486:                                              ; preds = %476
  %487 = add nsw i32 %.09281187, 1
  %488 = sext i32 %487 to i64
  %489 = getelementptr inbounds i32, ptr %32, i64 %488
  store i32 %.01188, ptr %489, align 4, !tbaa !5
  %490 = sext i32 %483 to i64
  %491 = icmp slt i64 %indvars.iv1417, %490
  br i1 %491, label %492, label %499

492:                                              ; preds = %486
  %493 = trunc nuw nsw i64 %indvars.iv1417 to i32
  %494 = sub nsw i32 %493, %.01188
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr %18, align 4, !tbaa !5
  %496 = add i32 %.09281187, %381
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds i32, ptr %32, i64 %497
  store i32 %495, ptr %498, align 4, !tbaa !5
  br label %523

499:                                              ; preds = %486
  %500 = fcmp ult float %481, %44
  %501 = add i32 %.09281187, %381
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds i32, ptr %32, i64 %502
  br i1 %500, label %508, label %504

504:                                              ; preds = %499
  %505 = load i32, ptr %2, align 4, !tbaa !5
  %506 = sub nsw i32 %505, %.01188
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr %18, align 4, !tbaa !5
  store i32 %507, ptr %503, align 4, !tbaa !5
  br label %523

508:                                              ; preds = %499
  %509 = trunc nuw nsw i64 %indvars.iv1417 to i32
  %510 = sub nsw i32 %509, %.01188
  %511 = add nsw i32 %510, 1
  store i32 %511, ptr %18, align 4, !tbaa !5
  store i32 %511, ptr %503, align 4, !tbaa !5
  %512 = add nsw i32 %.09281187, 2
  %513 = load i32, ptr %2, align 4, !tbaa !5
  %514 = sext i32 %512 to i64
  %515 = getelementptr inbounds i32, ptr %32, i64 %514
  store i32 %513, ptr %515, align 4, !tbaa !5
  %516 = add i32 %512, %361
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds i32, ptr %32, i64 %517
  store i32 1, ptr %518, align 4, !tbaa !5
  %519 = load i32, ptr %2, align 4, !tbaa !5
  %520 = add nsw i32 %519, %27
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds %struct.complex, ptr %29, i64 %521
  %gep1184 = getelementptr %struct.complex, ptr %10, i64 %490
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %522, ptr noundef nonnull %7, ptr noundef %gep1184, ptr noundef nonnull %2) #6
  %.pr1030 = load i32, ptr %18, align 4, !tbaa !5
  br label %523

523:                                              ; preds = %504, %508, %492
  %524 = phi i32 [ %507, %504 ], [ %.pr1030, %508 ], [ %495, %492 ]
  %.1929 = phi i32 [ %487, %504 ], [ %512, %508 ], [ %487, %492 ]
  %525 = add nsw i32 %.01188, -1
  %526 = icmp eq i32 %524, 1
  br i1 %526, label %527, label %533

527:                                              ; preds = %523
  %528 = add nsw i32 %.01188, %27
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds %struct.complex, ptr %29, i64 %529
  %531 = sext i32 %.01188 to i64
  %532 = getelementptr inbounds %struct.complex, ptr %30, i64 %531
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef %530, ptr noundef nonnull %7, ptr noundef nonnull %532, ptr noundef nonnull %2) #6
  br label %673

533:                                              ; preds = %523
  %534 = load i32, ptr %1, align 4, !tbaa !5
  %.not1001 = icmp sgt i32 %524, %534
  br i1 %.not1001, label %625, label %535

535:                                              ; preds = %533
  %536 = add i32 %.01188, %362
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds float, ptr %31, i64 %537
  call void @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %18, ptr noundef nonnull %18, ptr noundef nonnull @c_b35, ptr noundef nonnull @c_b10, ptr noundef nonnull %538, ptr noundef nonnull %2) #6
  %539 = sext i32 %.01188 to i64
  %540 = getelementptr inbounds float, ptr %31, i64 %539
  call void @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %18, ptr noundef nonnull %18, ptr noundef nonnull @c_b35, ptr noundef nonnull @c_b10, ptr noundef nonnull %540, ptr noundef nonnull %2) #6
  %541 = getelementptr inbounds float, ptr %25, i64 %539
  %542 = getelementptr inbounds float, ptr %26, i64 %539
  call void @slasdq_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull %18, ptr noundef nonnull %18, ptr noundef nonnull %18, ptr noundef nonnull @c__0, ptr noundef nonnull %541, ptr noundef nonnull %542, ptr noundef nonnull %538, ptr noundef nonnull %2, ptr noundef nonnull %540, ptr noundef nonnull %2, ptr noundef nonnull %456, ptr noundef nonnull @c__1, ptr noundef nonnull %456, ptr noundef nonnull %13) #6
  %543 = load i32, ptr %13, align 4, !tbaa !5
  %.not1004 = icmp eq i32 %543, 0
  br i1 %.not1004, label %544, label %.loopexit1031

544:                                              ; preds = %535
  %545 = load i32, ptr %3, align 4, !tbaa !5
  %.not10051148 = icmp slt i32 %545, 1
  br i1 %.not10051148, label %._crit_edge1153, label %.lr.ph1152

.lr.ph1152:                                       ; preds = %544
  %546 = load i32, ptr %18, align 4, !tbaa !5
  %.not1010.not1141 = icmp sgt i32 %546, 0
  br i1 %.not1010.not1141, label %.lr.ph1145.us.preheader, label %._crit_edge1153

.lr.ph1145.us.preheader:                          ; preds = %.lr.ph1152
  %547 = add nsw i32 %546, %.01188
  %548 = sext i32 %547 to i64
  %549 = add nuw i32 %545, 1
  %wide.trip.count1387 = zext i32 %549 to i64
  %550 = mul nsw i64 %539, -4
  %scevgep1707 = getelementptr i8, ptr %11, i64 %550
  %551 = add nsw i64 %539, 1
  %smax1708 = call i64 @llvm.smax.i64(i64 %551, i64 %548)
  %552 = shl nsw i64 %539, 3
  %scevgep1711 = getelementptr i8, ptr %scevgep1710, i64 %552
  %553 = add nsw i64 %wide.trip.count1387, -2
  %554 = mul i64 %474, %553
  %555 = add i64 %475, %smax1708
  %556 = shl nsw i64 %555, 3
  %557 = getelementptr i8, ptr %scevgep1712, i64 %554
  %scevgep1713 = getelementptr i8, ptr %557, i64 %556
  %558 = add nsw i64 %539, 1
  %smax1718 = call i64 @llvm.smax.i64(i64 %558, i64 %548)
  %559 = sub i64 %smax1718, %539
  %min.iters.check1721 = icmp ult i64 %559, 9
  %n.mod.vf1723 = and i64 %559, 7
  %560 = icmp eq i64 %n.mod.vf1723, 0
  %561 = select i1 %560, i64 8, i64 %n.mod.vf1723
  %n.vec1724 = sub i64 %559, %561
  %ind.end1727 = add i64 %n.vec1724, %539
  br label %.lr.ph1145.us

.lr.ph1145.us:                                    ; preds = %.lr.ph1145.us.preheader, %._crit_edge1146.us
  %indvars.iv1384 = phi i64 [ 1, %.lr.ph1145.us.preheader ], [ %indvars.iv.next1385, %._crit_edge1146.us ]
  %.99691149.us = phi i32 [ %457, %.lr.ph1145.us.preheader ], [ %573, %._crit_edge1146.us ]
  %562 = mul nsw i64 %indvars.iv1384, %466
  %563 = sext i32 %.99691149.us to i64
  %invariant.gep1495 = getelementptr %struct.complex, ptr %29, i64 %562
  br i1 %min.iters.check1721, label %scalar.ph1720.preheader, label %vector.memcheck1705

vector.memcheck1705:                              ; preds = %.lr.ph1145.us
  %564 = shl nsw i64 %563, 2
  %scevgep1706 = getelementptr i8, ptr %11, i64 %564
  %565 = add i64 %smax1708, %563
  %566 = shl nsw i64 %565, 2
  %scevgep1709 = getelementptr i8, ptr %scevgep1707, i64 %566
  %bound01714 = icmp ult ptr %scevgep1706, %scevgep1713
  %bound11715 = icmp ult ptr %scevgep1711, %scevgep1709
  %found.conflict1716 = and i1 %bound01714, %bound11715
  %567 = or i1 %found.conflict1716, %stride.check1717
  br i1 %567, label %scalar.ph1720.preheader, label %vector.ph1722

vector.ph1722:                                    ; preds = %vector.memcheck1705
  %ind.end1725 = add i64 %n.vec1724, %563
  %invariant.gep1886 = getelementptr i8, ptr %invariant.gep1495, i64 32
  %invariant.gep1888 = getelementptr float, ptr %11, i64 %563
  br label %vector.body1729

vector.body1729:                                  ; preds = %vector.body1729, %vector.ph1722
  %index1730 = phi i64 [ 0, %vector.ph1722 ], [ %index.next1737, %vector.body1729 ]
  %offset.idx1732 = add i64 %index1730, %539
  %568 = getelementptr %struct.complex, ptr %invariant.gep1495, i64 %offset.idx1732
  %gep1887 = getelementptr %struct.complex, ptr %invariant.gep1886, i64 %offset.idx1732
  %wide.vec1733 = load <8 x float>, ptr %568, align 4, !tbaa !17
  %wide.vec1734 = load <8 x float>, ptr %gep1887, align 4, !tbaa !17
  %strided.vec1735 = shufflevector <8 x float> %wide.vec1733, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1736 = shufflevector <8 x float> %wide.vec1734, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %gep1889 = getelementptr float, ptr %invariant.gep1888, i64 %index1730
  %569 = getelementptr i8, ptr %gep1889, i64 16
  store <4 x float> %strided.vec1735, ptr %gep1889, align 4, !tbaa !9, !alias.scope !64, !noalias !67
  store <4 x float> %strided.vec1736, ptr %569, align 4, !tbaa !9, !alias.scope !64, !noalias !67
  %index.next1737 = add nuw i64 %index1730, 8
  %570 = icmp eq i64 %index.next1737, %n.vec1724
  br i1 %570, label %scalar.ph1720.preheader, label %vector.body1729, !llvm.loop !69

scalar.ph1720.preheader:                          ; preds = %vector.body1729, %vector.memcheck1705, %.lr.ph1145.us
  %indvars.iv1379.ph = phi i64 [ %563, %vector.memcheck1705 ], [ %563, %.lr.ph1145.us ], [ %ind.end1725, %vector.body1729 ]
  %indvars.iv1377.ph = phi i64 [ %539, %vector.memcheck1705 ], [ %539, %.lr.ph1145.us ], [ %ind.end1727, %vector.body1729 ]
  br label %scalar.ph1720

scalar.ph1720:                                    ; preds = %scalar.ph1720.preheader, %scalar.ph1720
  %indvars.iv1379 = phi i64 [ %indvars.iv.next1380, %scalar.ph1720 ], [ %indvars.iv1379.ph, %scalar.ph1720.preheader ]
  %indvars.iv1377 = phi i64 [ %indvars.iv.next1378, %scalar.ph1720 ], [ %indvars.iv1377.ph, %scalar.ph1720.preheader ]
  %indvars.iv.next1380 = add nsw i64 %indvars.iv1379, 1
  %gep1496 = getelementptr %struct.complex, ptr %invariant.gep1495, i64 %indvars.iv1377
  %571 = load float, ptr %gep1496, align 4, !tbaa !17
  %572 = getelementptr float, ptr %11, i64 %indvars.iv1379
  store float %571, ptr %572, align 4, !tbaa !9
  %indvars.iv.next1378 = add nsw i64 %indvars.iv1377, 1
  %.not1010.not.us = icmp slt i64 %indvars.iv.next1378, %548
  br i1 %.not1010.not.us, label %scalar.ph1720, label %._crit_edge1146.us, !llvm.loop !70

._crit_edge1146.us:                               ; preds = %scalar.ph1720
  %573 = trunc nsw i64 %indvars.iv.next1380 to i32
  %indvars.iv.next1385 = add nuw nsw i64 %indvars.iv1384, 1
  %exitcond1388.not = icmp eq i64 %indvars.iv.next1385, %wide.trip.count1387
  br i1 %exitcond1388.not, label %._crit_edge1153, label %.lr.ph1145.us, !llvm.loop !71

._crit_edge1153:                                  ; preds = %._crit_edge1146.us, %.lr.ph1152, %544
  call void @sgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %18, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull @c_b10, ptr noundef nonnull %540, ptr noundef nonnull %2, ptr noundef nonnull %459, ptr noundef nonnull %18, ptr noundef nonnull @c_b35, ptr noundef nonnull %456, ptr noundef nonnull %18) #6
  %574 = load i32, ptr %3, align 4, !tbaa !5
  %.not10061161 = icmp slt i32 %574, 1
  br i1 %.not10061161, label %._crit_edge1166, label %.lr.ph1165.preheader

.lr.ph1165.preheader:                             ; preds = %._crit_edge1153
  %575 = add nuw i32 %574, 1
  %wide.trip.count1399 = zext i32 %575 to i64
  br label %.lr.ph1165

.lr.ph1165:                                       ; preds = %.lr.ph1165.preheader, %._crit_edge1159
  %indvars.iv1396 = phi i64 [ 1, %.lr.ph1165.preheader ], [ %indvars.iv.next1397, %._crit_edge1159 ]
  %.119711162 = phi i32 [ %457, %.lr.ph1165.preheader ], [ %.12.lcssa, %._crit_edge1159 ]
  %576 = load i32, ptr %18, align 4, !tbaa !5
  %.not1009.not1154 = icmp sgt i32 %576, 0
  br i1 %.not1009.not1154, label %.lr.ph1158, label %._crit_edge1159

.lr.ph1158:                                       ; preds = %.lr.ph1165
  %577 = add nsw i32 %576, %.01188
  %578 = mul nsw i64 %indvars.iv1396, %466
  %579 = sext i32 %577 to i64
  %580 = sext i32 %.119711162 to i64
  %invariant.gep1497 = getelementptr %struct.complex, ptr %29, i64 %578
  br label %581

581:                                              ; preds = %.lr.ph1158, %581
  %indvars.iv1391 = phi i64 [ %580, %.lr.ph1158 ], [ %indvars.iv.next1392, %581 ]
  %indvars.iv1389 = phi i64 [ %539, %.lr.ph1158 ], [ %indvars.iv.next1390, %581 ]
  %indvars.iv.next1392 = add nsw i64 %indvars.iv1391, 1
  %gep1498 = getelementptr %struct.complex, ptr %invariant.gep1497, i64 %indvars.iv1389
  %582 = call <2 x float> @Cf(ptr noundef %gep1498)
  %.sroa.01.4.vec.extract = extractelement <2 x float> %582, i64 1
  %583 = getelementptr float, ptr %11, i64 %indvars.iv1391
  store float %.sroa.01.4.vec.extract, ptr %583, align 4, !tbaa !9
  %indvars.iv.next1390 = add nsw i64 %indvars.iv1389, 1
  %.not1009.not = icmp slt i64 %indvars.iv.next1390, %579
  br i1 %.not1009.not, label %581, label %._crit_edge1159.loopexit, !llvm.loop !72

._crit_edge1159.loopexit:                         ; preds = %581
  %584 = trunc nsw i64 %indvars.iv.next1392 to i32
  br label %._crit_edge1159

._crit_edge1159:                                  ; preds = %._crit_edge1159.loopexit, %.lr.ph1165
  %.12.lcssa = phi i32 [ %.119711162, %.lr.ph1165 ], [ %584, %._crit_edge1159.loopexit ]
  %indvars.iv.next1397 = add nuw nsw i64 %indvars.iv1396, 1
  %exitcond1400.not = icmp eq i64 %indvars.iv.next1397, %wide.trip.count1399
  br i1 %exitcond1400.not, label %._crit_edge1166, label %.lr.ph1165, !llvm.loop !73

._crit_edge1166:                                  ; preds = %._crit_edge1159, %._crit_edge1153
  call void @sgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %18, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull @c_b10, ptr noundef nonnull %540, ptr noundef nonnull %2, ptr noundef nonnull %459, ptr noundef nonnull %18, ptr noundef nonnull @c_b35, ptr noundef nonnull %461, ptr noundef nonnull %18) #6
  %585 = load i32, ptr %3, align 4, !tbaa !5
  %.not10071176 = icmp slt i32 %585, 1
  br i1 %.not10071176, label %._crit_edge1182, label %.lr.ph1181

.lr.ph1181:                                       ; preds = %._crit_edge1166
  %586 = load i32, ptr %18, align 4, !tbaa !5
  %.not1008.not1167 = icmp sgt i32 %586, 0
  br i1 %.not1008.not1167, label %.lr.ph1172.us.preheader, label %._crit_edge1182

.lr.ph1172.us.preheader:                          ; preds = %.lr.ph1181
  %587 = add i32 %586, %.01188
  %588 = sext i32 %587 to i64
  %589 = add nuw i32 %585, 1
  %wide.trip.count1415 = zext i32 %589 to i64
  %590 = shl nsw i64 %539, 3
  %scevgep1662 = getelementptr i8, ptr %scevgep1661, i64 %590
  %591 = add nsw i64 %wide.trip.count1415, -2
  %592 = mul i64 %470, %591
  %593 = add nsw i64 %539, 1
  %smax = call i64 @llvm.smax.i64(i64 %593, i64 %588)
  %594 = add i64 %471, %smax
  %595 = shl nsw i64 %594, 3
  %596 = getelementptr i8, ptr %6, i64 %592
  %scevgep1663 = getelementptr i8, ptr %596, i64 %595
  %597 = mul nsw i64 %539, -4
  %scevgep1665 = getelementptr i8, ptr %11, i64 %597
  %scevgep1668 = getelementptr i8, ptr %11, i64 %597
  %598 = add nsw i64 %539, 1
  %smax1679 = call i64 @llvm.smax.i64(i64 %598, i64 %588)
  %599 = sub i64 %smax1679, %539
  %min.iters.check1682 = icmp ult i64 %599, 10
  %n.vec1685 = and i64 %599, -4
  %ind.end1686 = add i64 %n.vec1685, %539
  %cmp.n1704 = icmp eq i64 %599, %n.vec1685
  br label %.lr.ph1172.us

.lr.ph1172.us:                                    ; preds = %.lr.ph1172.us.preheader, %._crit_edge1173.us
  %indvars.iv1412 = phi i64 [ 1, %.lr.ph1172.us.preheader ], [ %indvars.iv.next1413, %._crit_edge1173.us ]
  %.49221178.us = phi i32 [ %462, %.lr.ph1172.us.preheader ], [ %620, %._crit_edge1173.us ]
  %.49351177.us = phi i32 [ %463, %.lr.ph1172.us.preheader ], [ %619, %._crit_edge1173.us ]
  %600 = mul nsw i64 %indvars.iv1412, %466
  %601 = sext i32 %.49221178.us to i64
  %602 = sext i32 %.49351177.us to i64
  %invariant.gep1499 = getelementptr %struct.complex, ptr %29, i64 %600
  br i1 %min.iters.check1682, label %scalar.ph1681.preheader, label %vector.memcheck1660

vector.memcheck1660:                              ; preds = %.lr.ph1172.us
  %603 = shl nsw i64 %602, 2
  %scevgep1664 = getelementptr i8, ptr %11, i64 %603
  %604 = add i64 %smax, %602
  %605 = shl nsw i64 %604, 2
  %scevgep1666 = getelementptr i8, ptr %scevgep1665, i64 %605
  %606 = shl nsw i64 %601, 2
  %scevgep1667 = getelementptr i8, ptr %11, i64 %606
  %607 = add i64 %smax, %601
  %608 = shl nsw i64 %607, 2
  %scevgep1669 = getelementptr i8, ptr %scevgep1668, i64 %608
  %bound01670 = icmp ult ptr %scevgep1662, %scevgep1666
  %bound11671 = icmp ult ptr %scevgep1664, %scevgep1663
  %found.conflict1672 = and i1 %bound01670, %bound11671
  %bound01674 = icmp ult ptr %scevgep1662, %scevgep1669
  %bound11675 = icmp ult ptr %scevgep1667, %scevgep1663
  %found.conflict1676 = and i1 %bound01674, %bound11675
  %609 = or i1 %found.conflict1676, %stride.check1677
  %conflict.rdx1678 = or i1 %found.conflict1672, %609
  br i1 %conflict.rdx1678, label %scalar.ph1681.preheader, label %vector.ph1683

vector.ph1683:                                    ; preds = %vector.memcheck1660
  %ind.end1688 = add i64 %n.vec1685, %602
  %ind.end1690 = add i64 %n.vec1685, %601
  %invariant.gep1890 = getelementptr float, ptr %11, i64 %601
  %invariant.gep1892 = getelementptr float, ptr %11, i64 %602
  %invariant.gep1894 = getelementptr i8, ptr %invariant.gep1499, i64 16
  br label %vector.body1692

vector.body1692:                                  ; preds = %vector.body1692, %vector.ph1683
  %index1693 = phi i64 [ 0, %vector.ph1683 ], [ %index.next1703, %vector.body1692 ]
  %offset.idx1694 = add i64 %index1693, %539
  %gep1891 = getelementptr float, ptr %invariant.gep1890, i64 %index1693
  %610 = getelementptr i8, ptr %gep1891, i64 8
  %wide.load1697 = load <2 x float>, ptr %gep1891, align 4, !tbaa !9, !alias.scope !74
  %wide.load1698 = load <2 x float>, ptr %610, align 4, !tbaa !9, !alias.scope !74
  %gep1893 = getelementptr float, ptr %invariant.gep1892, i64 %index1693
  %611 = getelementptr i8, ptr %gep1893, i64 8
  %wide.load1699 = load <2 x float>, ptr %gep1893, align 4, !tbaa !9, !alias.scope !77
  %wide.load1700 = load <2 x float>, ptr %611, align 4, !tbaa !9, !alias.scope !77
  %612 = getelementptr %struct.complex, ptr %invariant.gep1499, i64 %offset.idx1694
  %gep1895 = getelementptr %struct.complex, ptr %invariant.gep1894, i64 %offset.idx1694
  %interleaved.vec1701 = shufflevector <2 x float> %wide.load1697, <2 x float> %wide.load1699, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1701, ptr %612, align 4, !tbaa !9
  %interleaved.vec1702 = shufflevector <2 x float> %wide.load1698, <2 x float> %wide.load1700, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1702, ptr %gep1895, align 4, !tbaa !9
  %index.next1703 = add nuw i64 %index1693, 4
  %613 = icmp eq i64 %index.next1703, %n.vec1685
  br i1 %613, label %middle.block1680, label %vector.body1692, !llvm.loop !79

middle.block1680:                                 ; preds = %vector.body1692
  br i1 %cmp.n1704, label %._crit_edge1173.us, label %scalar.ph1681.preheader

scalar.ph1681.preheader:                          ; preds = %middle.block1680, %vector.memcheck1660, %.lr.ph1172.us
  %indvars.iv1405.ph = phi i64 [ %539, %vector.memcheck1660 ], [ %539, %.lr.ph1172.us ], [ %ind.end1686, %middle.block1680 ]
  %indvars.iv1403.ph = phi i64 [ %602, %vector.memcheck1660 ], [ %602, %.lr.ph1172.us ], [ %ind.end1688, %middle.block1680 ]
  %indvars.iv1401.ph = phi i64 [ %601, %vector.memcheck1660 ], [ %601, %.lr.ph1172.us ], [ %ind.end1690, %middle.block1680 ]
  br label %scalar.ph1681

scalar.ph1681:                                    ; preds = %scalar.ph1681.preheader, %scalar.ph1681
  %indvars.iv1405 = phi i64 [ %indvars.iv.next1406, %scalar.ph1681 ], [ %indvars.iv1405.ph, %scalar.ph1681.preheader ]
  %indvars.iv1403 = phi i64 [ %indvars.iv.next1404, %scalar.ph1681 ], [ %indvars.iv1403.ph, %scalar.ph1681.preheader ]
  %indvars.iv1401 = phi i64 [ %indvars.iv.next1402, %scalar.ph1681 ], [ %indvars.iv1401.ph, %scalar.ph1681.preheader ]
  %indvars.iv.next1402 = add nsw i64 %indvars.iv1401, 1
  %indvars.iv.next1404 = add nsw i64 %indvars.iv1403, 1
  %614 = getelementptr float, ptr %11, i64 %indvars.iv1401
  %615 = load float, ptr %614, align 4, !tbaa !9
  %616 = getelementptr float, ptr %11, i64 %indvars.iv1403
  %617 = load float, ptr %616, align 4, !tbaa !9
  %gep1500 = getelementptr %struct.complex, ptr %invariant.gep1499, i64 %indvars.iv1405
  store float %615, ptr %gep1500, align 4, !tbaa !17
  %618 = getelementptr inbounds i8, ptr %gep1500, i64 4
  store float %617, ptr %618, align 4, !tbaa !39
  %indvars.iv.next1406 = add nsw i64 %indvars.iv1405, 1
  %.not1008.not.us = icmp slt i64 %indvars.iv.next1406, %588
  br i1 %.not1008.not.us, label %scalar.ph1681, label %._crit_edge1173.us, !llvm.loop !80

._crit_edge1173.us:                               ; preds = %scalar.ph1681, %middle.block1680
  %indvars.iv.next1402.lcssa = phi i64 [ %ind.end1690, %middle.block1680 ], [ %indvars.iv.next1402, %scalar.ph1681 ]
  %indvars.iv.next1404.lcssa = phi i64 [ %ind.end1688, %middle.block1680 ], [ %indvars.iv.next1404, %scalar.ph1681 ]
  %619 = trunc nsw i64 %indvars.iv.next1404.lcssa to i32
  %620 = trunc nsw i64 %indvars.iv.next1402.lcssa to i32
  %indvars.iv.next1413 = add nuw nsw i64 %indvars.iv1412, 1
  %exitcond1416.not = icmp eq i64 %indvars.iv.next1413, %wide.trip.count1415
  br i1 %exitcond1416.not, label %._crit_edge1182, label %.lr.ph1172.us, !llvm.loop !81

._crit_edge1182:                                  ; preds = %._crit_edge1173.us, %.lr.ph1181, %._crit_edge1166
  %621 = add nsw i32 %.01188, %27
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds %struct.complex, ptr %29, i64 %622
  %624 = getelementptr inbounds %struct.complex, ptr %30, i64 %539
  call void @clacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %18, ptr noundef nonnull %3, ptr noundef %623, ptr noundef nonnull %7, ptr noundef nonnull %624, ptr noundef nonnull %2) #6
  br label %673

625:                                              ; preds = %533
  %626 = sext i32 %.01188 to i64
  %627 = getelementptr inbounds float, ptr %25, i64 %626
  %628 = getelementptr inbounds float, ptr %26, i64 %626
  %629 = getelementptr inbounds float, ptr %31, i64 %626
  %630 = add i32 %.01188, %362
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds float, ptr %31, i64 %631
  %633 = add nsw i32 %525, %382
  %634 = sext i32 %633 to i64
  %635 = getelementptr inbounds i32, ptr %32, i64 %634
  %636 = add nsw i32 %525, %365
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds float, ptr %31, i64 %637
  %639 = add nsw i32 %525, %367
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds float, ptr %31, i64 %640
  %642 = add nsw i32 %525, %369
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds float, ptr %31, i64 %643
  %645 = add nsw i32 %525, %372
  %646 = sext i32 %645 to i64
  %647 = getelementptr inbounds float, ptr %31, i64 %646
  %648 = add nsw i32 %525, %383
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds i32, ptr %32, i64 %649
  %651 = add nsw i32 %525, %385
  %652 = sext i32 %651 to i64
  %653 = getelementptr inbounds i32, ptr %32, i64 %652
  %654 = add nsw i32 %525, %384
  %655 = sext i32 %654 to i64
  %656 = getelementptr inbounds i32, ptr %32, i64 %655
  %657 = add nsw i32 %525, %375
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds float, ptr %31, i64 %658
  %660 = add nsw i32 %525, %370
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds float, ptr %31, i64 %661
  %663 = add nsw i32 %525, %371
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds float, ptr %31, i64 %664
  call void @slasda_(ptr noundef nonnull %19, ptr noundef nonnull %1, ptr noundef nonnull %18, ptr noundef nonnull %16, ptr noundef nonnull %627, ptr noundef nonnull %628, ptr noundef nonnull %629, ptr noundef nonnull %2, ptr noundef nonnull %632, ptr noundef nonnull %635, ptr noundef nonnull %638, ptr noundef nonnull %641, ptr noundef nonnull %644, ptr noundef nonnull %647, ptr noundef nonnull %650, ptr noundef nonnull %653, ptr noundef nonnull %2, ptr noundef nonnull %656, ptr noundef nonnull %659, ptr noundef nonnull %662, ptr noundef nonnull %665, ptr noundef nonnull %456, ptr noundef nonnull %465, ptr noundef nonnull %13) #6
  %666 = load i32, ptr %13, align 4, !tbaa !5
  %.not1002 = icmp eq i32 %666, 0
  br i1 %.not1002, label %667, label %.loopexit1031

667:                                              ; preds = %625
  %668 = add nsw i32 %.01188, %27
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds %struct.complex, ptr %29, i64 %669
  %671 = getelementptr inbounds %struct.complex, ptr %30, i64 %626
  call void @clalsa_(ptr noundef nonnull %20, ptr noundef nonnull %1, ptr noundef nonnull %18, ptr noundef nonnull %3, ptr noundef %670, ptr noundef nonnull %7, ptr noundef nonnull %671, ptr noundef nonnull %2, ptr noundef nonnull %629, ptr noundef nonnull %2, ptr noundef nonnull %632, ptr noundef nonnull %635, ptr noundef nonnull %638, ptr noundef nonnull %641, ptr noundef nonnull %644, ptr noundef nonnull %647, ptr noundef nonnull %650, ptr noundef nonnull %653, ptr noundef nonnull %2, ptr noundef nonnull %656, ptr noundef nonnull %659, ptr noundef nonnull %662, ptr noundef nonnull %665, ptr noundef nonnull %456, ptr noundef nonnull %465, ptr noundef nonnull %13) #6
  %672 = load i32, ptr %13, align 4, !tbaa !5
  %.not1003 = icmp eq i32 %672, 0
  br i1 %.not1003, label %673, label %.loopexit1031

673:                                              ; preds = %._crit_edge1182, %667, %527
  %674 = add nuw nsw i64 %indvars.iv1417, 1
  %675 = trunc nuw i64 %674 to i32
  br label %676

676:                                              ; preds = %._crit_edge1465, %673
  %indvars.iv.next1418.pre-phi = phi i64 [ %.pre, %._crit_edge1465 ], [ %674, %673 ]
  %.2930 = phi i32 [ %.09281187, %._crit_edge1465 ], [ %.1929, %673 ]
  %.1 = phi i32 [ %.01188, %._crit_edge1465 ], [ %675, %673 ]
  %.not990.not = icmp slt i64 %indvars.iv1417, %467
  br i1 %.not990.not, label %476, label %._crit_edge1192, !llvm.loop !82

._crit_edge1192:                                  ; preds = %676, %._crit_edge1140
  %677 = phi i32 [ 0, %._crit_edge1140 ], [ %.2930, %676 ]
  %678 = call i32 @isamax_(ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull @c__1) #6
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds float, ptr %25, i64 %679
  %681 = load float, ptr %680, align 4, !tbaa !9
  %682 = fcmp oge float %681, 0.000000e+00
  %683 = fneg float %681
  %684 = select i1 %682, float %681, float %683
  %685 = fmul float %.0915, %684
  %686 = load i32, ptr %2, align 4, !tbaa !5
  %.not9911194 = icmp slt i32 %686, 1
  br i1 %.not9911194, label %._crit_edge1198, label %.lr.ph1197.preheader

.lr.ph1197.preheader:                             ; preds = %._crit_edge1192
  %687 = zext nneg i32 %686 to i64
  br label %.lr.ph1197

.lr.ph1197:                                       ; preds = %.lr.ph1197.preheader, %700
  %indvars.iv1420 = phi i64 [ 1, %.lr.ph1197.preheader ], [ %indvars.iv.next1421, %700 ]
  %688 = getelementptr inbounds float, ptr %25, i64 %indvars.iv1420
  %689 = load float, ptr %688, align 4, !tbaa !9
  %690 = fcmp oge float %689, 0.000000e+00
  %691 = fneg float %689
  %692 = select i1 %690, float %689, float %691
  %693 = fcmp ugt float %692, %685
  br i1 %693, label %696, label %694

694:                                              ; preds = %.lr.ph1197
  %695 = getelementptr inbounds %struct.complex, ptr %30, i64 %indvars.iv1420
  call void @claset_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef nonnull @c_b1, ptr noundef nonnull @c_b1, ptr noundef nonnull %695, ptr noundef nonnull %2) #6
  br label %700

696:                                              ; preds = %.lr.ph1197
  %697 = load i32, ptr %9, align 4, !tbaa !5
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr %9, align 4, !tbaa !5
  %699 = getelementptr inbounds %struct.complex, ptr %30, i64 %indvars.iv1420
  call void @clascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %688, ptr noundef nonnull @c_b10, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef nonnull %699, ptr noundef nonnull %2, ptr noundef nonnull %13) #6
  br label %700

700:                                              ; preds = %696, %694
  %701 = load float, ptr %688, align 4, !tbaa !9
  %702 = fcmp oge float %701, 0.000000e+00
  %703 = fneg float %701
  %704 = select i1 %702, float %701, float %703
  store float %704, ptr %688, align 4, !tbaa !9
  %indvars.iv.next1421 = add nuw nsw i64 %indvars.iv1420, 1
  %.not991.not = icmp ult i64 %indvars.iv1420, %687
  br i1 %.not991.not, label %.lr.ph1197, label %._crit_edge1198, !llvm.loop !83

._crit_edge1198:                                  ; preds = %700, %._crit_edge1192
  store i32 1, ptr %20, align 4, !tbaa !5
  %.not9921242 = icmp slt i32 %677, 1
  br i1 %.not9921242, label %._crit_edge1246, label %.lr.ph1245

.lr.ph1245:                                       ; preds = %._crit_edge1198
  %705 = add nsw i32 %380, -1
  %706 = sext i32 %380 to i64
  %707 = getelementptr inbounds float, ptr %31, i64 %706
  %708 = sext i32 %376 to i64
  %709 = getelementptr inbounds float, ptr %31, i64 %708
  %710 = sext i32 %379 to i64
  %711 = getelementptr inbounds float, ptr %31, i64 %710
  %712 = add nsw i32 %376, -1
  %713 = add nsw i32 %379, -1
  %714 = sext i32 %386 to i64
  %715 = getelementptr inbounds i32, ptr %32, i64 %714
  %716 = sext i32 %27 to i64
  %717 = zext nneg i32 %677 to i64
  %718 = add nsw i64 %716, %28
  %719 = shl nsw i64 %718, 3
  %scevgep1739 = getelementptr i8, ptr %6, i64 %719
  %720 = shl nsw i64 %716, 3
  %721 = add nsw i64 %716, %28
  %scevgep1786 = getelementptr i8, ptr %11, i64 -4
  %scevgep1790 = getelementptr i8, ptr %10, i64 -12
  %invariant.gep1900 = getelementptr i8, ptr %11, i64 4
  %invariant.gep1904 = getelementptr i8, ptr %11, i64 8
  %invariant.gep1908 = getelementptr i8, ptr %11, i64 12
  %stride.check1756 = icmp slt i32 %27, 0
  br label %722

722:                                              ; preds = %.lr.ph1245, %.loopexit
  %indvars.iv1462 = phi i64 [ 1, %.lr.ph1245 ], [ %indvars.iv.next1463, %.loopexit ]
  %723 = getelementptr inbounds i32, ptr %32, i64 %indvars.iv1462
  %724 = load i32, ptr %723, align 4, !tbaa !5
  %725 = add nsw i32 %724, -1
  %726 = trunc nuw nsw i64 %indvars.iv1462 to i32
  %727 = add i32 %361, %726
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds i32, ptr %32, i64 %728
  %730 = load i32, ptr %729, align 4, !tbaa !5
  store i32 %730, ptr %18, align 4, !tbaa !5
  %731 = icmp eq i32 %730, 1
  br i1 %731, label %732, label %738

732:                                              ; preds = %722
  %733 = sext i32 %724 to i64
  %734 = getelementptr inbounds %struct.complex, ptr %30, i64 %733
  %735 = add nsw i32 %724, %27
  %736 = sext i32 %735 to i64
  %737 = getelementptr inbounds %struct.complex, ptr %29, i64 %736
  call void @ccopy_(ptr noundef nonnull %3, ptr noundef nonnull %734, ptr noundef nonnull %2, ptr noundef %737, ptr noundef nonnull %7) #6
  br label %.loopexit

738:                                              ; preds = %722
  %739 = load i32, ptr %1, align 4, !tbaa !5
  %.not993 = icmp sgt i32 %730, %739
  br i1 %.not993, label %838, label %740

740:                                              ; preds = %738
  %741 = load i32, ptr %3, align 4, !tbaa !5
  %.not9951206 = icmp slt i32 %741, 1
  %.not10001199 = icmp slt i32 %730, 1
  %or.cond1507 = or i1 %.not9951206, %.not10001199
  br i1 %or.cond1507, label %._crit_edge1212, label %.lr.ph1203.preheader

.lr.ph1203.preheader:                             ; preds = %740
  %742 = load i32, ptr %2, align 4, !tbaa !5
  %743 = xor i32 %742, -1
  %744 = add i32 %724, %743
  %745 = add nuw i32 %730, 1
  %746 = sext i32 %744 to i64
  %747 = sext i32 %742 to i64
  %wide.trip.count1430 = zext i32 %745 to i64
  %748 = shl nuw nsw i64 %wide.trip.count1430, 2
  %scevgep1787 = getelementptr i8, ptr %scevgep1786, i64 %748
  %749 = add nsw i64 %747, %746
  %750 = shl nsw i64 %749, 3
  %scevgep1789 = getelementptr i8, ptr %10, i64 %750
  %751 = shl nsw i64 %747, 3
  %752 = add nsw i32 %741, -1
  %753 = zext i32 %752 to i64
  %754 = mul i64 %751, %753
  %755 = shl nuw nsw i64 %wide.trip.count1430, 3
  %756 = getelementptr i8, ptr %scevgep1790, i64 %754
  %757 = getelementptr i8, ptr %756, i64 %750
  %scevgep1791 = getelementptr i8, ptr %757, i64 %755
  %758 = zext nneg i32 %730 to i64
  %759 = zext nneg i32 %730 to i64
  %min.iters.check1798 = icmp ult i32 %730, 9
  %stride.check1795 = icmp slt i32 %742, 0
  %n.mod.vf1800 = and i64 %758, 7
  %760 = icmp eq i64 %n.mod.vf1800, 0
  %761 = select i1 %760, i64 8, i64 %n.mod.vf1800
  %n.vec1801 = sub nsw i64 %758, %761
  %ind.end1802 = add nsw i64 %n.vec1801, 1
  br label %.lr.ph1203

.lr.ph1203:                                       ; preds = %.lr.ph1203.preheader, %._crit_edge1204
  %indvars.iv1432 = phi i64 [ %746, %.lr.ph1203.preheader ], [ %indvars.iv.next1433, %._crit_edge1204 ]
  %.91209 = phi i32 [ 1, %.lr.ph1203.preheader ], [ %781, %._crit_edge1204 ]
  %.69241208 = phi i32 [ %705, %.lr.ph1203.preheader ], [ %780, %._crit_edge1204 ]
  %indvars.iv.next1433 = add nsw i64 %indvars.iv1432, %747
  %762 = sext i32 %.69241208 to i64
  %invariant.gep1501 = getelementptr %struct.complex, ptr %30, i64 %indvars.iv.next1433
  br i1 %min.iters.check1798, label %scalar.ph1797.preheader, label %vector.memcheck1784

vector.memcheck1784:                              ; preds = %.lr.ph1203
  %763 = shl nsw i64 %762, 2
  %scevgep1785 = getelementptr i8, ptr %11, i64 %763
  %scevgep1788 = getelementptr i8, ptr %scevgep1787, i64 %763
  %bound01792 = icmp ult ptr %scevgep1785, %scevgep1791
  %bound11793 = icmp ult ptr %scevgep1789, %scevgep1788
  %found.conflict1794 = and i1 %bound01792, %bound11793
  %764 = or i1 %found.conflict1794, %stride.check1795
  br i1 %764, label %scalar.ph1797.preheader, label %vector.ph1799

vector.ph1799:                                    ; preds = %vector.memcheck1784
  %ind.end1804 = add nsw i64 %n.vec1801, %762
  %invariant.gep1896 = getelementptr float, ptr %11, i64 %762
  br label %vector.body1806

vector.body1806:                                  ; preds = %vector.body1806, %vector.ph1799
  %index1807 = phi i64 [ 0, %vector.ph1799 ], [ %index.next1814, %vector.body1806 ]
  %offset.idx1808 = or disjoint i64 %index1807, 1
  %765 = or disjoint i64 %index1807, 5
  %766 = getelementptr %struct.complex, ptr %invariant.gep1501, i64 %offset.idx1808
  %767 = getelementptr %struct.complex, ptr %invariant.gep1501, i64 %765
  %wide.vec1810 = load <8 x float>, ptr %766, align 4, !tbaa !17
  %wide.vec1811 = load <8 x float>, ptr %767, align 4, !tbaa !17
  %strided.vec1812 = shufflevector <8 x float> %wide.vec1810, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %strided.vec1813 = shufflevector <8 x float> %wide.vec1811, <8 x float> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %gep1897 = getelementptr float, ptr %invariant.gep1896, i64 %index1807
  %768 = getelementptr i8, ptr %gep1897, i64 16
  store <4 x float> %strided.vec1812, ptr %gep1897, align 4, !tbaa !9, !alias.scope !84, !noalias !87
  store <4 x float> %strided.vec1813, ptr %768, align 4, !tbaa !9, !alias.scope !84, !noalias !87
  %index.next1814 = add nuw i64 %index1807, 8
  %769 = icmp eq i64 %index.next1814, %n.vec1801
  br i1 %769, label %scalar.ph1797.preheader, label %vector.body1806, !llvm.loop !89

scalar.ph1797.preheader:                          ; preds = %vector.body1806, %vector.memcheck1784, %.lr.ph1203
  %indvars.iv1425.ph = phi i64 [ 1, %vector.memcheck1784 ], [ 1, %.lr.ph1203 ], [ %ind.end1802, %vector.body1806 ]
  %indvars.iv1423.ph = phi i64 [ %762, %vector.memcheck1784 ], [ %762, %.lr.ph1203 ], [ %ind.end1804, %vector.body1806 ]
  %770 = sub nsw i64 %wide.trip.count1430, %indvars.iv1425.ph
  %771 = sub nsw i64 %759, %indvars.iv1425.ph
  %xtraiter1833 = and i64 %770, 3
  %lcmp.mod1834.not = icmp eq i64 %xtraiter1833, 0
  br i1 %lcmp.mod1834.not, label %scalar.ph1797.prol.loopexit, label %scalar.ph1797.prol

scalar.ph1797.prol:                               ; preds = %scalar.ph1797.preheader, %scalar.ph1797.prol
  %indvars.iv1425.prol = phi i64 [ %indvars.iv.next1426.prol, %scalar.ph1797.prol ], [ %indvars.iv1425.ph, %scalar.ph1797.preheader ]
  %indvars.iv1423.prol = phi i64 [ %indvars.iv.next1424.prol, %scalar.ph1797.prol ], [ %indvars.iv1423.ph, %scalar.ph1797.preheader ]
  %prol.iter1835 = phi i64 [ %prol.iter1835.next, %scalar.ph1797.prol ], [ 0, %scalar.ph1797.preheader ]
  %indvars.iv.next1424.prol = add nsw i64 %indvars.iv1423.prol, 1
  %gep1502.prol = getelementptr %struct.complex, ptr %invariant.gep1501, i64 %indvars.iv1425.prol
  %772 = load float, ptr %gep1502.prol, align 4, !tbaa !17
  %773 = getelementptr float, ptr %11, i64 %indvars.iv1423.prol
  store float %772, ptr %773, align 4, !tbaa !9
  %indvars.iv.next1426.prol = add nuw nsw i64 %indvars.iv1425.prol, 1
  %prol.iter1835.next = add i64 %prol.iter1835, 1
  %prol.iter1835.cmp.not = icmp eq i64 %prol.iter1835.next, %xtraiter1833
  br i1 %prol.iter1835.cmp.not, label %scalar.ph1797.prol.loopexit, label %scalar.ph1797.prol, !llvm.loop !90

scalar.ph1797.prol.loopexit:                      ; preds = %scalar.ph1797.prol, %scalar.ph1797.preheader
  %indvars.iv.next1424.lcssa.unr = phi i64 [ poison, %scalar.ph1797.preheader ], [ %indvars.iv.next1424.prol, %scalar.ph1797.prol ]
  %indvars.iv1425.unr = phi i64 [ %indvars.iv1425.ph, %scalar.ph1797.preheader ], [ %indvars.iv.next1426.prol, %scalar.ph1797.prol ]
  %indvars.iv1423.unr = phi i64 [ %indvars.iv1423.ph, %scalar.ph1797.preheader ], [ %indvars.iv.next1424.prol, %scalar.ph1797.prol ]
  %774 = icmp ult i64 %771, 3
  br i1 %774, label %._crit_edge1204, label %scalar.ph1797.preheader.new

scalar.ph1797.preheader.new:                      ; preds = %scalar.ph1797.prol.loopexit
  %invariant.gep1898 = getelementptr i8, ptr %invariant.gep1501, i64 8
  %invariant.gep1902 = getelementptr i8, ptr %invariant.gep1501, i64 16
  %invariant.gep1906 = getelementptr i8, ptr %invariant.gep1501, i64 24
  br label %scalar.ph1797

scalar.ph1797:                                    ; preds = %scalar.ph1797, %scalar.ph1797.preheader.new
  %indvars.iv1425 = phi i64 [ %indvars.iv1425.unr, %scalar.ph1797.preheader.new ], [ %indvars.iv.next1426.3, %scalar.ph1797 ]
  %indvars.iv1423 = phi i64 [ %indvars.iv1423.unr, %scalar.ph1797.preheader.new ], [ %indvars.iv.next1424.3, %scalar.ph1797 ]
  %gep1502 = getelementptr %struct.complex, ptr %invariant.gep1501, i64 %indvars.iv1425
  %775 = load float, ptr %gep1502, align 4, !tbaa !17
  %776 = getelementptr float, ptr %11, i64 %indvars.iv1423
  store float %775, ptr %776, align 4, !tbaa !9
  %gep1899 = getelementptr %struct.complex, ptr %invariant.gep1898, i64 %indvars.iv1425
  %777 = load float, ptr %gep1899, align 4, !tbaa !17
  %gep1901 = getelementptr float, ptr %invariant.gep1900, i64 %indvars.iv1423
  store float %777, ptr %gep1901, align 4, !tbaa !9
  %gep1903 = getelementptr %struct.complex, ptr %invariant.gep1902, i64 %indvars.iv1425
  %778 = load float, ptr %gep1903, align 4, !tbaa !17
  %gep1905 = getelementptr float, ptr %invariant.gep1904, i64 %indvars.iv1423
  store float %778, ptr %gep1905, align 4, !tbaa !9
  %indvars.iv.next1424.3 = add nsw i64 %indvars.iv1423, 4
  %gep1907 = getelementptr %struct.complex, ptr %invariant.gep1906, i64 %indvars.iv1425
  %779 = load float, ptr %gep1907, align 4, !tbaa !17
  %gep1909 = getelementptr float, ptr %invariant.gep1908, i64 %indvars.iv1423
  store float %779, ptr %gep1909, align 4, !tbaa !9
  %indvars.iv.next1426.3 = add nuw nsw i64 %indvars.iv1425, 4
  %exitcond1431.not.3 = icmp eq i64 %indvars.iv.next1426.3, %wide.trip.count1430
  br i1 %exitcond1431.not.3, label %._crit_edge1204, label %scalar.ph1797, !llvm.loop !91

._crit_edge1204:                                  ; preds = %scalar.ph1797, %scalar.ph1797.prol.loopexit
  %indvars.iv.next1424.lcssa = phi i64 [ %indvars.iv.next1424.lcssa.unr, %scalar.ph1797.prol.loopexit ], [ %indvars.iv.next1424.3, %scalar.ph1797 ]
  %780 = trunc nsw i64 %indvars.iv.next1424.lcssa to i32
  %781 = add nuw i32 %.91209, 1
  %exitcond1435.not = icmp eq i32 %.91209, %741
  br i1 %exitcond1435.not, label %._crit_edge1212, label %.lr.ph1203, !llvm.loop !92

._crit_edge1212:                                  ; preds = %._crit_edge1204, %740
  %782 = add i32 %724, %362
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds float, ptr %31, i64 %783
  call void @sgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %18, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull @c_b10, ptr noundef nonnull %784, ptr noundef nonnull %2, ptr noundef nonnull %707, ptr noundef nonnull %18, ptr noundef nonnull @c_b35, ptr noundef nonnull %709, ptr noundef nonnull %18) #6
  %785 = load i32, ptr %3, align 4, !tbaa !5
  %.not9961220 = icmp slt i32 %785, 1
  %786 = load i32, ptr %18, align 4
  %787 = icmp slt i32 %786, 1
  %or.cond1509 = select i1 %.not9961220, i1 true, i1 %787
  br i1 %or.cond1509, label %._crit_edge1226, label %.lr.ph1225.split.preheader

.lr.ph1225.split.preheader:                       ; preds = %._crit_edge1212
  %788 = load i32, ptr %2, align 4, !tbaa !5
  %789 = xor i32 %788, -1
  %790 = add i32 %724, %789
  br label %.lr.ph1225.split

.lr.ph1225.split:                                 ; preds = %.lr.ph1225.split.preheader, %._crit_edge1218
  %.101223 = phi i32 [ %800, %._crit_edge1218 ], [ 1, %.lr.ph1225.split.preheader ]
  %.69371222 = phi i32 [ %.7938.lcssa, %._crit_edge1218 ], [ %705, %.lr.ph1225.split.preheader ]
  %.141221 = phi i32 [ %792, %._crit_edge1218 ], [ %790, %.lr.ph1225.split.preheader ]
  %791 = load i32, ptr %2, align 4, !tbaa !5
  %792 = add nsw i32 %791, %.141221
  %793 = load i32, ptr %18, align 4, !tbaa !5
  %.not9991213 = icmp slt i32 %793, 1
  br i1 %.not9991213, label %._crit_edge1218, label %.lr.ph1217.preheader

.lr.ph1217.preheader:                             ; preds = %.lr.ph1225.split
  %794 = sext i32 %.69371222 to i64
  %795 = sext i32 %792 to i64
  %796 = add nuw i32 %793, 1
  %wide.trip.count1443 = zext i32 %796 to i64
  %invariant.gep1503 = getelementptr %struct.complex, ptr %30, i64 %795
  br label %.lr.ph1217

.lr.ph1217:                                       ; preds = %.lr.ph1217.preheader, %.lr.ph1217
  %indvars.iv1438 = phi i64 [ 1, %.lr.ph1217.preheader ], [ %indvars.iv.next1439, %.lr.ph1217 ]
  %indvars.iv1436 = phi i64 [ %794, %.lr.ph1217.preheader ], [ %indvars.iv.next1437, %.lr.ph1217 ]
  %indvars.iv.next1437 = add nsw i64 %indvars.iv1436, 1
  %gep1504 = getelementptr %struct.complex, ptr %invariant.gep1503, i64 %indvars.iv1438
  %797 = call <2 x float> @Cf(ptr noundef nonnull %gep1504)
  %.sroa.0.4.vec.extract = extractelement <2 x float> %797, i64 1
  %798 = getelementptr float, ptr %11, i64 %indvars.iv1436
  store float %.sroa.0.4.vec.extract, ptr %798, align 4, !tbaa !9
  %indvars.iv.next1439 = add nuw nsw i64 %indvars.iv1438, 1
  %exitcond1444.not = icmp eq i64 %indvars.iv.next1439, %wide.trip.count1443
  br i1 %exitcond1444.not, label %._crit_edge1218.loopexit, label %.lr.ph1217, !llvm.loop !93

._crit_edge1218.loopexit:                         ; preds = %.lr.ph1217
  %799 = trunc nsw i64 %indvars.iv.next1437 to i32
  br label %._crit_edge1218

._crit_edge1218:                                  ; preds = %._crit_edge1218.loopexit, %.lr.ph1225.split
  %.7938.lcssa = phi i32 [ %.69371222, %.lr.ph1225.split ], [ %799, %._crit_edge1218.loopexit ]
  %800 = add nuw i32 %.101223, 1
  %exitcond1445.not = icmp eq i32 %.101223, %785
  br i1 %exitcond1445.not, label %._crit_edge1226, label %.lr.ph1225.split, !llvm.loop !94

._crit_edge1226:                                  ; preds = %._crit_edge1218, %._crit_edge1212
  call void @sgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %18, ptr noundef nonnull %3, ptr noundef nonnull %18, ptr noundef nonnull @c_b10, ptr noundef nonnull %784, ptr noundef nonnull %2, ptr noundef nonnull %707, ptr noundef nonnull %18, ptr noundef nonnull @c_b35, ptr noundef nonnull %711, ptr noundef nonnull %18) #6
  %801 = load i32, ptr %3, align 4, !tbaa !5
  %.not9971236 = icmp slt i32 %801, 1
  br i1 %.not9971236, label %.loopexit, label %.lr.ph1241

.lr.ph1241:                                       ; preds = %._crit_edge1226
  %802 = load i32, ptr %18, align 4, !tbaa !5
  %.not998.not1227 = icmp sgt i32 %802, 0
  br i1 %.not998.not1227, label %.lr.ph1232.us.preheader, label %.loopexit

.lr.ph1232.us.preheader:                          ; preds = %.lr.ph1241
  %803 = add i32 %802, %724
  %804 = sext i32 %724 to i64
  %805 = sext i32 %803 to i64
  %806 = add nuw i32 %801, 1
  %wide.trip.count1460 = zext i32 %806 to i64
  %807 = shl nsw i64 %804, 3
  %scevgep1740 = getelementptr i8, ptr %scevgep1739, i64 %807
  %808 = add nsw i64 %wide.trip.count1460, -2
  %809 = mul i64 %720, %808
  %810 = add nsw i64 %804, 1
  %smax1741 = call i64 @llvm.smax.i64(i64 %810, i64 %805)
  %811 = add i64 %721, %smax1741
  %812 = shl nsw i64 %811, 3
  %813 = getelementptr i8, ptr %6, i64 %809
  %scevgep1742 = getelementptr i8, ptr %813, i64 %812
  %814 = mul nsw i64 %804, -4
  %scevgep1744 = getelementptr i8, ptr %11, i64 %814
  %scevgep1747 = getelementptr i8, ptr %11, i64 %814
  %815 = add nsw i64 %804, 1
  %smax1758 = call i64 @llvm.smax.i64(i64 %815, i64 %805)
  %816 = sub i64 %smax1758, %804
  %min.iters.check1761 = icmp ult i64 %816, 10
  %n.vec1764 = and i64 %816, -4
  %ind.end1765 = add i64 %n.vec1764, %804
  %cmp.n1783 = icmp eq i64 %816, %n.vec1764
  br label %.lr.ph1232.us

.lr.ph1232.us:                                    ; preds = %.lr.ph1232.us.preheader, %._crit_edge1233.us
  %indvars.iv1457 = phi i64 [ 1, %.lr.ph1232.us.preheader ], [ %indvars.iv.next1458, %._crit_edge1233.us ]
  %.89261238.us = phi i32 [ %712, %.lr.ph1232.us.preheader ], [ %837, %._crit_edge1233.us ]
  %.89391237.us = phi i32 [ %713, %.lr.ph1232.us.preheader ], [ %836, %._crit_edge1233.us ]
  %817 = mul nsw i64 %indvars.iv1457, %716
  %818 = sext i32 %.89261238.us to i64
  %819 = sext i32 %.89391237.us to i64
  %invariant.gep1505 = getelementptr %struct.complex, ptr %29, i64 %817
  br i1 %min.iters.check1761, label %scalar.ph1760.preheader, label %vector.memcheck1738

vector.memcheck1738:                              ; preds = %.lr.ph1232.us
  %820 = shl nsw i64 %819, 2
  %scevgep1743 = getelementptr i8, ptr %11, i64 %820
  %821 = add i64 %smax1741, %819
  %822 = shl nsw i64 %821, 2
  %scevgep1745 = getelementptr i8, ptr %scevgep1744, i64 %822
  %823 = shl nsw i64 %818, 2
  %scevgep1746 = getelementptr i8, ptr %11, i64 %823
  %824 = add i64 %smax1741, %818
  %825 = shl nsw i64 %824, 2
  %scevgep1748 = getelementptr i8, ptr %scevgep1747, i64 %825
  %bound01749 = icmp ult ptr %scevgep1740, %scevgep1745
  %bound11750 = icmp ult ptr %scevgep1743, %scevgep1742
  %found.conflict1751 = and i1 %bound01749, %bound11750
  %bound01753 = icmp ult ptr %scevgep1740, %scevgep1748
  %bound11754 = icmp ult ptr %scevgep1746, %scevgep1742
  %found.conflict1755 = and i1 %bound01753, %bound11754
  %826 = or i1 %found.conflict1755, %stride.check1756
  %conflict.rdx1757 = or i1 %found.conflict1751, %826
  br i1 %conflict.rdx1757, label %scalar.ph1760.preheader, label %vector.ph1762

vector.ph1762:                                    ; preds = %vector.memcheck1738
  %ind.end1767 = add i64 %n.vec1764, %819
  %ind.end1769 = add i64 %n.vec1764, %818
  %invariant.gep1910 = getelementptr float, ptr %11, i64 %818
  %invariant.gep1912 = getelementptr float, ptr %11, i64 %819
  %invariant.gep1914 = getelementptr i8, ptr %invariant.gep1505, i64 16
  br label %vector.body1771

vector.body1771:                                  ; preds = %vector.body1771, %vector.ph1762
  %index1772 = phi i64 [ 0, %vector.ph1762 ], [ %index.next1782, %vector.body1771 ]
  %offset.idx1773 = add i64 %index1772, %804
  %gep1911 = getelementptr float, ptr %invariant.gep1910, i64 %index1772
  %827 = getelementptr i8, ptr %gep1911, i64 8
  %wide.load1776 = load <2 x float>, ptr %gep1911, align 4, !tbaa !9, !alias.scope !95
  %wide.load1777 = load <2 x float>, ptr %827, align 4, !tbaa !9, !alias.scope !95
  %gep1913 = getelementptr float, ptr %invariant.gep1912, i64 %index1772
  %828 = getelementptr i8, ptr %gep1913, i64 8
  %wide.load1778 = load <2 x float>, ptr %gep1913, align 4, !tbaa !9, !alias.scope !98
  %wide.load1779 = load <2 x float>, ptr %828, align 4, !tbaa !9, !alias.scope !98
  %829 = getelementptr %struct.complex, ptr %invariant.gep1505, i64 %offset.idx1773
  %gep1915 = getelementptr %struct.complex, ptr %invariant.gep1914, i64 %offset.idx1773
  %interleaved.vec1780 = shufflevector <2 x float> %wide.load1776, <2 x float> %wide.load1778, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1780, ptr %829, align 4, !tbaa !9
  %interleaved.vec1781 = shufflevector <2 x float> %wide.load1777, <2 x float> %wide.load1779, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x float> %interleaved.vec1781, ptr %gep1915, align 4, !tbaa !9
  %index.next1782 = add nuw i64 %index1772, 4
  %830 = icmp eq i64 %index.next1782, %n.vec1764
  br i1 %830, label %middle.block1759, label %vector.body1771, !llvm.loop !100

middle.block1759:                                 ; preds = %vector.body1771
  br i1 %cmp.n1783, label %._crit_edge1233.us, label %scalar.ph1760.preheader

scalar.ph1760.preheader:                          ; preds = %middle.block1759, %vector.memcheck1738, %.lr.ph1232.us
  %indvars.iv1450.ph = phi i64 [ %804, %vector.memcheck1738 ], [ %804, %.lr.ph1232.us ], [ %ind.end1765, %middle.block1759 ]
  %indvars.iv1448.ph = phi i64 [ %819, %vector.memcheck1738 ], [ %819, %.lr.ph1232.us ], [ %ind.end1767, %middle.block1759 ]
  %indvars.iv1446.ph = phi i64 [ %818, %vector.memcheck1738 ], [ %818, %.lr.ph1232.us ], [ %ind.end1769, %middle.block1759 ]
  br label %scalar.ph1760

scalar.ph1760:                                    ; preds = %scalar.ph1760.preheader, %scalar.ph1760
  %indvars.iv1450 = phi i64 [ %indvars.iv.next1451, %scalar.ph1760 ], [ %indvars.iv1450.ph, %scalar.ph1760.preheader ]
  %indvars.iv1448 = phi i64 [ %indvars.iv.next1449, %scalar.ph1760 ], [ %indvars.iv1448.ph, %scalar.ph1760.preheader ]
  %indvars.iv1446 = phi i64 [ %indvars.iv.next1447, %scalar.ph1760 ], [ %indvars.iv1446.ph, %scalar.ph1760.preheader ]
  %indvars.iv.next1447 = add nsw i64 %indvars.iv1446, 1
  %indvars.iv.next1449 = add nsw i64 %indvars.iv1448, 1
  %831 = getelementptr float, ptr %11, i64 %indvars.iv1446
  %832 = load float, ptr %831, align 4, !tbaa !9
  %833 = getelementptr float, ptr %11, i64 %indvars.iv1448
  %834 = load float, ptr %833, align 4, !tbaa !9
  %gep1506 = getelementptr %struct.complex, ptr %invariant.gep1505, i64 %indvars.iv1450
  store float %832, ptr %gep1506, align 4, !tbaa !17
  %835 = getelementptr inbounds i8, ptr %gep1506, i64 4
  store float %834, ptr %835, align 4, !tbaa !39
  %indvars.iv.next1451 = add nsw i64 %indvars.iv1450, 1
  %.not998.not.us = icmp slt i64 %indvars.iv.next1451, %805
  br i1 %.not998.not.us, label %scalar.ph1760, label %._crit_edge1233.us, !llvm.loop !101

._crit_edge1233.us:                               ; preds = %scalar.ph1760, %middle.block1759
  %indvars.iv.next1447.lcssa = phi i64 [ %ind.end1769, %middle.block1759 ], [ %indvars.iv.next1447, %scalar.ph1760 ]
  %indvars.iv.next1449.lcssa = phi i64 [ %ind.end1767, %middle.block1759 ], [ %indvars.iv.next1449, %scalar.ph1760 ]
  %836 = trunc nsw i64 %indvars.iv.next1449.lcssa to i32
  %837 = trunc nsw i64 %indvars.iv.next1447.lcssa to i32
  %indvars.iv.next1458 = add nuw nsw i64 %indvars.iv1457, 1
  %exitcond1461.not = icmp eq i64 %indvars.iv.next1458, %wide.trip.count1460
  br i1 %exitcond1461.not, label %.loopexit, label %.lr.ph1232.us, !llvm.loop !102

838:                                              ; preds = %738
  %839 = sext i32 %724 to i64
  %840 = getelementptr inbounds %struct.complex, ptr %30, i64 %839
  %841 = add nsw i32 %724, %27
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds %struct.complex, ptr %29, i64 %842
  %844 = getelementptr inbounds float, ptr %31, i64 %839
  %845 = add i32 %724, %362
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds float, ptr %31, i64 %846
  %848 = add nsw i32 %725, %382
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds i32, ptr %32, i64 %849
  %851 = add nsw i32 %725, %365
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds float, ptr %31, i64 %852
  %854 = add nsw i32 %725, %367
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds float, ptr %31, i64 %855
  %857 = add nsw i32 %725, %369
  %858 = sext i32 %857 to i64
  %859 = getelementptr inbounds float, ptr %31, i64 %858
  %860 = add nsw i32 %725, %372
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds float, ptr %31, i64 %861
  %863 = add nsw i32 %725, %383
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds i32, ptr %32, i64 %864
  %866 = add nsw i32 %725, %385
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds i32, ptr %32, i64 %867
  %869 = add nsw i32 %725, %384
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds i32, ptr %32, i64 %870
  %872 = add nsw i32 %725, %375
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds float, ptr %31, i64 %873
  %875 = add nsw i32 %725, %370
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds float, ptr %31, i64 %876
  %878 = add nsw i32 %725, %371
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds float, ptr %31, i64 %879
  call void @clalsa_(ptr noundef nonnull %20, ptr noundef nonnull %1, ptr noundef nonnull %18, ptr noundef nonnull %3, ptr noundef nonnull %840, ptr noundef nonnull %2, ptr noundef %843, ptr noundef nonnull %7, ptr noundef nonnull %844, ptr noundef nonnull %2, ptr noundef nonnull %847, ptr noundef nonnull %850, ptr noundef nonnull %853, ptr noundef nonnull %856, ptr noundef nonnull %859, ptr noundef nonnull %862, ptr noundef nonnull %865, ptr noundef nonnull %868, ptr noundef nonnull %2, ptr noundef nonnull %871, ptr noundef nonnull %874, ptr noundef nonnull %877, ptr noundef nonnull %880, ptr noundef nonnull %709, ptr noundef nonnull %715, ptr noundef nonnull %13) #6
  %881 = load i32, ptr %13, align 4, !tbaa !5
  %.not994 = icmp eq i32 %881, 0
  br i1 %.not994, label %.loopexit, label %.loopexit1031

.loopexit:                                        ; preds = %._crit_edge1233.us, %.lr.ph1241, %._crit_edge1226, %732, %838
  %indvars.iv.next1463 = add nuw nsw i64 %indvars.iv1462, 1
  %.not992.not = icmp ult i64 %indvars.iv1462, %717
  br i1 %.not992.not, label %722, label %._crit_edge1246, !llvm.loop !103

._crit_edge1246:                                  ; preds = %.loopexit, %._crit_edge1198
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b10, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %4, ptr noundef nonnull %2, ptr noundef nonnull %13) #6
  call void @slasrt_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %13) #6
  call void @clascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull @c_b10, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %13) #6
  br label %.loopexit1031

.loopexit1031:                                    ; preds = %667, %625, %535, %838, %103, %52, %53, %43, %._crit_edge1246, %._crit_edge1135, %99, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #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 float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare float @slanst_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

declare void @slasdq_(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

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 i32 @isamax_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @log(double noundef) local_unnamed_addr #4

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

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

declare void @slasda_(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

declare void @clalsa_(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, 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 = { mustprogress nofree nounwind willreturn memory(write) "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, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13, !16}
!16 = !{!"llvm.loop.unswitch.partial.disable"}
!17 = !{!18, !10, i64 0}
!18 = !{!"", !10, i64 0, !10, i64 4}
!19 = !{!20}
!20 = distinct !{!20, !21}
!21 = distinct !{!21, !"LVerDomain"}
!22 = !{!23}
!23 = distinct !{!23, !21}
!24 = distinct !{!24, !13, !25, !26}
!25 = !{!"llvm.loop.isvectorized", i32 1}
!26 = !{!"llvm.loop.unroll.runtime.disable"}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.unroll.disable"}
!29 = distinct !{!29, !13, !25}
!30 = distinct !{!30, !13}
!31 = distinct !{!31, !13}
!32 = distinct !{!32, !13, !16}
!33 = !{!34}
!34 = distinct !{!34, !35}
!35 = distinct !{!35, !"LVerDomain"}
!36 = !{!37}
!37 = distinct !{!37, !35}
!38 = distinct !{!38, !13, !25, !26}
!39 = !{!18, !10, i64 4}
!40 = distinct !{!40, !13, !25}
!41 = distinct !{!41, !13}
!42 = distinct !{!42, !13}
!43 = !{!44}
!44 = distinct !{!44, !45}
!45 = distinct !{!45, !"LVerDomain"}
!46 = !{!47}
!47 = distinct !{!47, !45}
!48 = distinct !{!48, !13, !25, !26}
!49 = distinct !{!49, !28}
!50 = distinct !{!50, !13, !25}
!51 = distinct !{!51, !13}
!52 = distinct !{!52, !13}
!53 = distinct !{!53, !13}
!54 = !{!55}
!55 = distinct !{!55, !56}
!56 = distinct !{!56, !"LVerDomain"}
!57 = !{!58}
!58 = distinct !{!58, !56}
!59 = distinct !{!59, !13, !25, !26}
!60 = distinct !{!60, !13, !25}
!61 = distinct !{!61, !13}
!62 = distinct !{!62, !13, !25, !26}
!63 = distinct !{!63, !13, !26, !25}
!64 = !{!65}
!65 = distinct !{!65, !66}
!66 = distinct !{!66, !"LVerDomain"}
!67 = !{!68}
!68 = distinct !{!68, !66}
!69 = distinct !{!69, !13, !25, !26}
!70 = distinct !{!70, !13, !25}
!71 = distinct !{!71, !13}
!72 = distinct !{!72, !13}
!73 = distinct !{!73, !13}
!74 = !{!75}
!75 = distinct !{!75, !76}
!76 = distinct !{!76, !"LVerDomain"}
!77 = !{!78}
!78 = distinct !{!78, !76}
!79 = distinct !{!79, !13, !25, !26}
!80 = distinct !{!80, !13, !25}
!81 = distinct !{!81, !13}
!82 = distinct !{!82, !13}
!83 = distinct !{!83, !13}
!84 = !{!85}
!85 = distinct !{!85, !86}
!86 = distinct !{!86, !"LVerDomain"}
!87 = !{!88}
!88 = distinct !{!88, !86}
!89 = distinct !{!89, !13, !25, !26}
!90 = distinct !{!90, !28}
!91 = distinct !{!91, !13, !25}
!92 = distinct !{!92, !13}
!93 = distinct !{!93, !13}
!94 = distinct !{!94, !13, !16}
!95 = !{!96}
!96 = distinct !{!96, !97}
!97 = distinct !{!97, !"LVerDomain"}
!98 = !{!99}
!99 = distinct !{!99, !97}
!100 = distinct !{!100, !13, !25, !26}
!101 = distinct !{!101, !13, !25}
!102 = distinct !{!102, !13}
!103 = distinct !{!103, !13}


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