; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (chfrk)

; 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 [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @chfrk_(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) #0 {
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %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 i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca %struct.complex, align 4
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca %struct.complex, align 4
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca %struct.complex, align 4
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i32, align 4
  store ptr %0, ptr %12, align 8, !tbaa !5
  store ptr %1, ptr %13, align 8, !tbaa !5
  store ptr %2, ptr %14, align 8, !tbaa !5
  store ptr %3, ptr %15, align 8, !tbaa !5
  store ptr %4, ptr %16, align 8, !tbaa !5
  store ptr %5, ptr %17, align 8, !tbaa !5
  store ptr %6, ptr %18, align 8, !tbaa !5
  store ptr %7, ptr %19, align 8, !tbaa !5
  store ptr %8, ptr %20, align 8, !tbaa !5
  store ptr %9, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #3
  %40 = load ptr, ptr %19, align 8, !tbaa !5
  %41 = load i64, ptr %40, align 8, !tbaa !9
  store i64 %41, ptr %22, align 8, !tbaa !9
  %42 = load i64, ptr %22, align 8, !tbaa !9
  %43 = add nsw i64 1, %42
  store i64 %43, ptr %23, align 8, !tbaa !9
  %44 = load i64, ptr %23, align 8, !tbaa !9
  %45 = load ptr, ptr %18, align 8, !tbaa !5
  %46 = sub i64 0, %44
  %47 = getelementptr inbounds %struct.complex, ptr %45, i64 %46
  store ptr %47, ptr %18, align 8, !tbaa !5
  %48 = load ptr, ptr %21, align 8, !tbaa !5
  %49 = getelementptr inbounds %struct.complex, ptr %48, i32 -1
  store ptr %49, ptr %21, align 8, !tbaa !5
  store i64 0, ptr %31, align 8, !tbaa !9
  %50 = load ptr, ptr %12, align 8, !tbaa !5
  %51 = call i64 @lsame_(ptr noundef %50, ptr noundef @.str)
  store i64 %51, ptr %33, align 8, !tbaa !9
  %52 = load ptr, ptr %13, align 8, !tbaa !5
  %53 = call i64 @lsame_(ptr noundef %52, ptr noundef @.str.1)
  store i64 %53, ptr %35, align 8, !tbaa !9
  %54 = load ptr, ptr %14, align 8, !tbaa !5
  %55 = call i64 @lsame_(ptr noundef %54, ptr noundef @.str)
  store i64 %55, ptr %38, align 8, !tbaa !9
  %56 = load i64, ptr %38, align 8, !tbaa !9
  %57 = icmp ne i64 %56, 0
  br i1 %57, label %58, label %61

58:                                               ; preds = %10
  %59 = load ptr, ptr %15, align 8, !tbaa !5
  %60 = load i64, ptr %59, align 8, !tbaa !9
  store i64 %60, ptr %34, align 8, !tbaa !9
  br label %64

61:                                               ; preds = %10
  %62 = load ptr, ptr %16, align 8, !tbaa !5
  %63 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %63, ptr %34, align 8, !tbaa !9
  br label %64

64:                                               ; preds = %61, %58
  %65 = load i64, ptr %33, align 8, !tbaa !9
  %66 = icmp ne i64 %65, 0
  br i1 %66, label %72, label %67

67:                                               ; preds = %64
  %68 = load ptr, ptr %12, align 8, !tbaa !5
  %69 = call i64 @lsame_(ptr noundef %68, ptr noundef @.str.2)
  %70 = icmp ne i64 %69, 0
  br i1 %70, label %72, label %71

71:                                               ; preds = %67
  store i64 -1, ptr %31, align 8, !tbaa !9
  br label %115

72:                                               ; preds = %67, %64
  %73 = load i64, ptr %35, align 8, !tbaa !9
  %74 = icmp ne i64 %73, 0
  br i1 %74, label %80, label %75

75:                                               ; preds = %72
  %76 = load ptr, ptr %13, align 8, !tbaa !5
  %77 = call i64 @lsame_(ptr noundef %76, ptr noundef @.str.3)
  %78 = icmp ne i64 %77, 0
  br i1 %78, label %80, label %79

79:                                               ; preds = %75
  store i64 -2, ptr %31, align 8, !tbaa !9
  br label %114

80:                                               ; preds = %75, %72
  %81 = load i64, ptr %38, align 8, !tbaa !9
  %82 = icmp ne i64 %81, 0
  br i1 %82, label %88, label %83

83:                                               ; preds = %80
  %84 = load ptr, ptr %14, align 8, !tbaa !5
  %85 = call i64 @lsame_(ptr noundef %84, ptr noundef @.str.2)
  %86 = icmp ne i64 %85, 0
  br i1 %86, label %88, label %87

87:                                               ; preds = %83
  store i64 -3, ptr %31, align 8, !tbaa !9
  br label %113

88:                                               ; preds = %83, %80
  %89 = load ptr, ptr %15, align 8, !tbaa !5
  %90 = load i64, ptr %89, align 8, !tbaa !9
  %91 = icmp slt i64 %90, 0
  br i1 %91, label %92, label %93

92:                                               ; preds = %88
  store i64 -4, ptr %31, align 8, !tbaa !9
  br label %112

93:                                               ; preds = %88
  %94 = load ptr, ptr %16, align 8, !tbaa !5
  %95 = load i64, ptr %94, align 8, !tbaa !9
  %96 = icmp slt i64 %95, 0
  br i1 %96, label %97, label %98

97:                                               ; preds = %93
  store i64 -5, ptr %31, align 8, !tbaa !9
  br label %111

98:                                               ; preds = %93
  %99 = load ptr, ptr %19, align 8, !tbaa !5
  %100 = load i64, ptr %99, align 8, !tbaa !9
  %101 = load i64, ptr %34, align 8, !tbaa !9
  %102 = icmp sge i64 1, %101
  br i1 %102, label %103, label %104

103:                                              ; preds = %98
  br label %106

104:                                              ; preds = %98
  %105 = load i64, ptr %34, align 8, !tbaa !9
  br label %106

106:                                              ; preds = %104, %103
  %107 = phi i64 [ 1, %103 ], [ %105, %104 ]
  %108 = icmp slt i64 %100, %107
  br i1 %108, label %109, label %110

109:                                              ; preds = %106
  store i64 -8, ptr %31, align 8, !tbaa !9
  br label %110

110:                                              ; preds = %109, %106
  br label %111

111:                                              ; preds = %110, %97
  br label %112

112:                                              ; preds = %111, %92
  br label %113

113:                                              ; preds = %112, %87
  br label %114

114:                                              ; preds = %113, %79
  br label %115

115:                                              ; preds = %114, %71
  %116 = load i64, ptr %31, align 8, !tbaa !9
  %117 = icmp ne i64 %116, 0
  br i1 %117, label %118, label %122

118:                                              ; preds = %115
  %119 = load i64, ptr %31, align 8, !tbaa !9
  %120 = sub nsw i64 0, %119
  store i64 %120, ptr %24, align 8, !tbaa !9
  %121 = call i32 @xerbla_(ptr noundef @.str.4, ptr noundef %24)
  store i32 0, ptr %11, align 4
  store i32 1, ptr %39, align 4
  br label %1084

122:                                              ; preds = %115
  %123 = load ptr, ptr %15, align 8, !tbaa !5
  %124 = load i64, ptr %123, align 8, !tbaa !9
  %125 = icmp eq i64 %124, 0
  br i1 %125, label %138, label %126

126:                                              ; preds = %122
  %127 = load ptr, ptr %17, align 8, !tbaa !5
  %128 = load float, ptr %127, align 4, !tbaa !11
  %129 = fcmp oeq float %128, 0.000000e+00
  br i1 %129, label %134, label %130

130:                                              ; preds = %126
  %131 = load ptr, ptr %16, align 8, !tbaa !5
  %132 = load i64, ptr %131, align 8, !tbaa !9
  %133 = icmp eq i64 %132, 0
  br i1 %133, label %134, label %139

134:                                              ; preds = %130, %126
  %135 = load ptr, ptr %20, align 8, !tbaa !5
  %136 = load float, ptr %135, align 4, !tbaa !11
  %137 = fcmp oeq float %136, 1.000000e+00
  br i1 %137, label %138, label %139

138:                                              ; preds = %134, %122
  store i32 0, ptr %11, align 4
  store i32 1, ptr %39, align 4
  br label %1084

139:                                              ; preds = %134, %130
  %140 = load ptr, ptr %17, align 8, !tbaa !5
  %141 = load float, ptr %140, align 4, !tbaa !11
  %142 = fcmp oeq float %141, 0.000000e+00
  br i1 %142, label %143, label %173

143:                                              ; preds = %139
  %144 = load ptr, ptr %20, align 8, !tbaa !5
  %145 = load float, ptr %144, align 4, !tbaa !11
  %146 = fcmp oeq float %145, 0.000000e+00
  br i1 %146, label %147, label %173

147:                                              ; preds = %143
  %148 = load ptr, ptr %15, align 8, !tbaa !5
  %149 = load i64, ptr %148, align 8, !tbaa !9
  %150 = load ptr, ptr %15, align 8, !tbaa !5
  %151 = load i64, ptr %150, align 8, !tbaa !9
  %152 = add nsw i64 %151, 1
  %153 = mul nsw i64 %149, %152
  %154 = sdiv i64 %153, 2
  store i64 %154, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %27, align 8, !tbaa !9
  br label %155

155:                                              ; preds = %169, %147
  %156 = load i64, ptr %27, align 8, !tbaa !9
  %157 = load i64, ptr %24, align 8, !tbaa !9
  %158 = icmp sle i64 %156, %157
  br i1 %158, label %159, label %172

159:                                              ; preds = %155
  %160 = load i64, ptr %27, align 8, !tbaa !9
  store i64 %160, ptr %25, align 8, !tbaa !9
  %161 = load ptr, ptr %21, align 8, !tbaa !5
  %162 = load i64, ptr %25, align 8, !tbaa !9
  %163 = getelementptr inbounds %struct.complex, ptr %161, i64 %162
  %164 = getelementptr inbounds %struct.complex, ptr %163, i32 0, i32 0
  store float 0.000000e+00, ptr %164, align 4, !tbaa !13
  %165 = load ptr, ptr %21, align 8, !tbaa !5
  %166 = load i64, ptr %25, align 8, !tbaa !9
  %167 = getelementptr inbounds %struct.complex, ptr %165, i64 %166
  %168 = getelementptr inbounds %struct.complex, ptr %167, i32 0, i32 1
  store float 0.000000e+00, ptr %168, align 4, !tbaa !15
  br label %169

169:                                              ; preds = %159
  %170 = load i64, ptr %27, align 8, !tbaa !9
  %171 = add nsw i64 %170, 1
  store i64 %171, ptr %27, align 8, !tbaa !9
  br label %155, !llvm.loop !16

172:                                              ; preds = %155
  store i32 0, ptr %11, align 4
  store i32 1, ptr %39, align 4
  br label %1084

173:                                              ; preds = %143, %139
  %174 = load ptr, ptr %17, align 8, !tbaa !5
  %175 = load float, ptr %174, align 4, !tbaa !11
  %176 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %175, ptr %176, align 4, !tbaa !13
  %177 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float 0.000000e+00, ptr %177, align 4, !tbaa !15
  %178 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %179 = load float, ptr %178, align 4, !tbaa !13
  %180 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 0
  store float %179, ptr %180, align 4, !tbaa !13
  %181 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %182 = load float, ptr %181, align 4, !tbaa !15
  %183 = getelementptr inbounds %struct.complex, ptr %36, i32 0, i32 1
  store float %182, ptr %183, align 4, !tbaa !15
  %184 = load ptr, ptr %20, align 8, !tbaa !5
  %185 = load float, ptr %184, align 4, !tbaa !11
  %186 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %185, ptr %186, align 4, !tbaa !13
  %187 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float 0.000000e+00, ptr %187, align 4, !tbaa !15
  %188 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %189 = load float, ptr %188, align 4, !tbaa !13
  %190 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 0
  store float %189, ptr %190, align 4, !tbaa !13
  %191 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %192 = load float, ptr %191, align 4, !tbaa !15
  %193 = getelementptr inbounds %struct.complex, ptr %32, i32 0, i32 1
  store float %192, ptr %193, align 4, !tbaa !15
  %194 = load ptr, ptr %15, align 8, !tbaa !5
  %195 = load i64, ptr %194, align 8, !tbaa !9
  %196 = srem i64 %195, 2
  %197 = icmp eq i64 %196, 0
  br i1 %197, label %198, label %202

198:                                              ; preds = %173
  store i64 0, ptr %37, align 8, !tbaa !9
  %199 = load ptr, ptr %15, align 8, !tbaa !5
  %200 = load i64, ptr %199, align 8, !tbaa !9
  %201 = sdiv i64 %200, 2
  store i64 %201, ptr %30, align 8, !tbaa !9
  br label %222

202:                                              ; preds = %173
  store i64 1, ptr %37, align 8, !tbaa !9
  %203 = load i64, ptr %35, align 8, !tbaa !9
  %204 = icmp ne i64 %203, 0
  br i1 %204, label %205, label %213

205:                                              ; preds = %202
  %206 = load ptr, ptr %15, align 8, !tbaa !5
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = sdiv i64 %207, 2
  store i64 %208, ptr %29, align 8, !tbaa !9
  %209 = load ptr, ptr %15, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  %211 = load i64, ptr %29, align 8, !tbaa !9
  %212 = sub nsw i64 %210, %211
  store i64 %212, ptr %28, align 8, !tbaa !9
  br label %221

213:                                              ; preds = %202
  %214 = load ptr, ptr %15, align 8, !tbaa !5
  %215 = load i64, ptr %214, align 8, !tbaa !9
  %216 = sdiv i64 %215, 2
  store i64 %216, ptr %28, align 8, !tbaa !9
  %217 = load ptr, ptr %15, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = load i64, ptr %28, align 8, !tbaa !9
  %220 = sub nsw i64 %218, %219
  store i64 %220, ptr %29, align 8, !tbaa !9
  br label %221

221:                                              ; preds = %213, %205
  br label %222

222:                                              ; preds = %221, %198
  %223 = load i64, ptr %37, align 8, !tbaa !9
  %224 = icmp ne i64 %223, 0
  br i1 %224, label %225, label %639

225:                                              ; preds = %222
  %226 = load i64, ptr %33, align 8, !tbaa !9
  %227 = icmp ne i64 %226, 0
  br i1 %227, label %228, label %434

228:                                              ; preds = %225
  %229 = load i64, ptr %35, align 8, !tbaa !9
  %230 = icmp ne i64 %229, 0
  br i1 %230, label %231, label %335

231:                                              ; preds = %228
  %232 = load i64, ptr %38, align 8, !tbaa !9
  %233 = icmp ne i64 %232, 0
  br i1 %233, label %234, label %283

234:                                              ; preds = %231
  %235 = load ptr, ptr %16, align 8, !tbaa !5
  %236 = load ptr, ptr %17, align 8, !tbaa !5
  %237 = load ptr, ptr %18, align 8, !tbaa !5
  %238 = load i64, ptr %22, align 8, !tbaa !9
  %239 = add nsw i64 %238, 1
  %240 = getelementptr inbounds %struct.complex, ptr %237, i64 %239
  %241 = load ptr, ptr %19, align 8, !tbaa !5
  %242 = load ptr, ptr %20, align 8, !tbaa !5
  %243 = load ptr, ptr %21, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.complex, ptr %243, i64 1
  %245 = load ptr, ptr %15, align 8, !tbaa !5
  %246 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %28, ptr noundef %235, ptr noundef %236, ptr noundef %240, ptr noundef %241, ptr noundef %242, ptr noundef %244, ptr noundef %245)
  %247 = load ptr, ptr %16, align 8, !tbaa !5
  %248 = load ptr, ptr %17, align 8, !tbaa !5
  %249 = load ptr, ptr %18, align 8, !tbaa !5
  %250 = load i64, ptr %28, align 8, !tbaa !9
  %251 = add nsw i64 %250, 1
  %252 = load i64, ptr %22, align 8, !tbaa !9
  %253 = add nsw i64 %251, %252
  %254 = getelementptr inbounds %struct.complex, ptr %249, i64 %253
  %255 = load ptr, ptr %19, align 8, !tbaa !5
  %256 = load ptr, ptr %20, align 8, !tbaa !5
  %257 = load ptr, ptr %21, align 8, !tbaa !5
  %258 = load ptr, ptr %15, align 8, !tbaa !5
  %259 = load i64, ptr %258, align 8, !tbaa !9
  %260 = add nsw i64 %259, 1
  %261 = getelementptr inbounds %struct.complex, ptr %257, i64 %260
  %262 = load ptr, ptr %15, align 8, !tbaa !5
  %263 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str, ptr noundef %29, ptr noundef %247, ptr noundef %248, ptr noundef %254, ptr noundef %255, ptr noundef %256, ptr noundef %261, ptr noundef %262)
  %264 = load ptr, ptr %16, align 8, !tbaa !5
  %265 = load ptr, ptr %18, align 8, !tbaa !5
  %266 = load i64, ptr %28, align 8, !tbaa !9
  %267 = add nsw i64 %266, 1
  %268 = load i64, ptr %22, align 8, !tbaa !9
  %269 = add nsw i64 %267, %268
  %270 = getelementptr inbounds %struct.complex, ptr %265, i64 %269
  %271 = load ptr, ptr %19, align 8, !tbaa !5
  %272 = load ptr, ptr %18, align 8, !tbaa !5
  %273 = load i64, ptr %22, align 8, !tbaa !9
  %274 = add nsw i64 %273, 1
  %275 = getelementptr inbounds %struct.complex, ptr %272, i64 %274
  %276 = load ptr, ptr %19, align 8, !tbaa !5
  %277 = load ptr, ptr %21, align 8, !tbaa !5
  %278 = load i64, ptr %28, align 8, !tbaa !9
  %279 = add nsw i64 %278, 1
  %280 = getelementptr inbounds %struct.complex, ptr %277, i64 %279
  %281 = load ptr, ptr %15, align 8, !tbaa !5
  %282 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str.2, ptr noundef %29, ptr noundef %28, ptr noundef %264, ptr noundef %36, ptr noundef %270, ptr noundef %271, ptr noundef %275, ptr noundef %276, ptr noundef %32, ptr noundef %280, ptr noundef %281)
  br label %334

283:                                              ; preds = %231
  %284 = load ptr, ptr %16, align 8, !tbaa !5
  %285 = load ptr, ptr %17, align 8, !tbaa !5
  %286 = load ptr, ptr %18, align 8, !tbaa !5
  %287 = load i64, ptr %22, align 8, !tbaa !9
  %288 = add nsw i64 %287, 1
  %289 = getelementptr inbounds %struct.complex, ptr %286, i64 %288
  %290 = load ptr, ptr %19, align 8, !tbaa !5
  %291 = load ptr, ptr %20, align 8, !tbaa !5
  %292 = load ptr, ptr %21, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.complex, ptr %292, i64 1
  %294 = load ptr, ptr %15, align 8, !tbaa !5
  %295 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %28, ptr noundef %284, ptr noundef %285, ptr noundef %289, ptr noundef %290, ptr noundef %291, ptr noundef %293, ptr noundef %294)
  %296 = load ptr, ptr %16, align 8, !tbaa !5
  %297 = load ptr, ptr %17, align 8, !tbaa !5
  %298 = load ptr, ptr %18, align 8, !tbaa !5
  %299 = load i64, ptr %28, align 8, !tbaa !9
  %300 = add nsw i64 %299, 1
  %301 = load i64, ptr %22, align 8, !tbaa !9
  %302 = mul nsw i64 %300, %301
  %303 = add nsw i64 %302, 1
  %304 = getelementptr inbounds %struct.complex, ptr %298, i64 %303
  %305 = load ptr, ptr %19, align 8, !tbaa !5
  %306 = load ptr, ptr %20, align 8, !tbaa !5
  %307 = load ptr, ptr %21, align 8, !tbaa !5
  %308 = load ptr, ptr %15, align 8, !tbaa !5
  %309 = load i64, ptr %308, align 8, !tbaa !9
  %310 = add nsw i64 %309, 1
  %311 = getelementptr inbounds %struct.complex, ptr %307, i64 %310
  %312 = load ptr, ptr %15, align 8, !tbaa !5
  %313 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str.2, ptr noundef %29, ptr noundef %296, ptr noundef %297, ptr noundef %304, ptr noundef %305, ptr noundef %306, ptr noundef %311, ptr noundef %312)
  %314 = load ptr, ptr %16, align 8, !tbaa !5
  %315 = load ptr, ptr %18, align 8, !tbaa !5
  %316 = load i64, ptr %28, align 8, !tbaa !9
  %317 = add nsw i64 %316, 1
  %318 = load i64, ptr %22, align 8, !tbaa !9
  %319 = mul nsw i64 %317, %318
  %320 = add nsw i64 %319, 1
  %321 = getelementptr inbounds %struct.complex, ptr %315, i64 %320
  %322 = load ptr, ptr %19, align 8, !tbaa !5
  %323 = load ptr, ptr %18, align 8, !tbaa !5
  %324 = load i64, ptr %22, align 8, !tbaa !9
  %325 = add nsw i64 %324, 1
  %326 = getelementptr inbounds %struct.complex, ptr %323, i64 %325
  %327 = load ptr, ptr %19, align 8, !tbaa !5
  %328 = load ptr, ptr %21, align 8, !tbaa !5
  %329 = load i64, ptr %28, align 8, !tbaa !9
  %330 = add nsw i64 %329, 1
  %331 = getelementptr inbounds %struct.complex, ptr %328, i64 %330
  %332 = load ptr, ptr %15, align 8, !tbaa !5
  %333 = call i32 @f2c_cgemm(ptr noundef @.str.2, ptr noundef @.str, ptr noundef %29, ptr noundef %28, ptr noundef %314, ptr noundef %36, ptr noundef %321, ptr noundef %322, ptr noundef %326, ptr noundef %327, ptr noundef %32, ptr noundef %331, ptr noundef %332)
  br label %334

334:                                              ; preds = %283, %234
  br label %433

335:                                              ; preds = %228
  %336 = load i64, ptr %38, align 8, !tbaa !9
  %337 = icmp ne i64 %336, 0
  br i1 %337, label %338, label %384

338:                                              ; preds = %335
  %339 = load ptr, ptr %16, align 8, !tbaa !5
  %340 = load ptr, ptr %17, align 8, !tbaa !5
  %341 = load ptr, ptr %18, align 8, !tbaa !5
  %342 = load i64, ptr %22, align 8, !tbaa !9
  %343 = add nsw i64 %342, 1
  %344 = getelementptr inbounds %struct.complex, ptr %341, i64 %343
  %345 = load ptr, ptr %19, align 8, !tbaa !5
  %346 = load ptr, ptr %20, align 8, !tbaa !5
  %347 = load ptr, ptr %21, align 8, !tbaa !5
  %348 = load i64, ptr %29, align 8, !tbaa !9
  %349 = add nsw i64 %348, 1
  %350 = getelementptr inbounds %struct.complex, ptr %347, i64 %349
  %351 = load ptr, ptr %15, align 8, !tbaa !5
  %352 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %28, ptr noundef %339, ptr noundef %340, ptr noundef %344, ptr noundef %345, ptr noundef %346, ptr noundef %350, ptr noundef %351)
  %353 = load ptr, ptr %16, align 8, !tbaa !5
  %354 = load ptr, ptr %17, align 8, !tbaa !5
  %355 = load ptr, ptr %18, align 8, !tbaa !5
  %356 = load i64, ptr %29, align 8, !tbaa !9
  %357 = load i64, ptr %22, align 8, !tbaa !9
  %358 = add nsw i64 %356, %357
  %359 = getelementptr inbounds %struct.complex, ptr %355, i64 %358
  %360 = load ptr, ptr %19, align 8, !tbaa !5
  %361 = load ptr, ptr %20, align 8, !tbaa !5
  %362 = load ptr, ptr %21, align 8, !tbaa !5
  %363 = load i64, ptr %28, align 8, !tbaa !9
  %364 = add nsw i64 %363, 1
  %365 = getelementptr inbounds %struct.complex, ptr %362, i64 %364
  %366 = load ptr, ptr %15, align 8, !tbaa !5
  %367 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str, ptr noundef %29, ptr noundef %353, ptr noundef %354, ptr noundef %359, ptr noundef %360, ptr noundef %361, ptr noundef %365, ptr noundef %366)
  %368 = load ptr, ptr %16, align 8, !tbaa !5
  %369 = load ptr, ptr %18, align 8, !tbaa !5
  %370 = load i64, ptr %22, align 8, !tbaa !9
  %371 = add nsw i64 %370, 1
  %372 = getelementptr inbounds %struct.complex, ptr %369, i64 %371
  %373 = load ptr, ptr %19, align 8, !tbaa !5
  %374 = load ptr, ptr %18, align 8, !tbaa !5
  %375 = load i64, ptr %29, align 8, !tbaa !9
  %376 = load i64, ptr %22, align 8, !tbaa !9
  %377 = add nsw i64 %375, %376
  %378 = getelementptr inbounds %struct.complex, ptr %374, i64 %377
  %379 = load ptr, ptr %19, align 8, !tbaa !5
  %380 = load ptr, ptr %21, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.complex, ptr %380, i64 1
  %382 = load ptr, ptr %15, align 8, !tbaa !5
  %383 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str.2, ptr noundef %28, ptr noundef %29, ptr noundef %368, ptr noundef %36, ptr noundef %372, ptr noundef %373, ptr noundef %378, ptr noundef %379, ptr noundef %32, ptr noundef %381, ptr noundef %382)
  br label %432

384:                                              ; preds = %335
  %385 = load ptr, ptr %16, align 8, !tbaa !5
  %386 = load ptr, ptr %17, align 8, !tbaa !5
  %387 = load ptr, ptr %18, align 8, !tbaa !5
  %388 = load i64, ptr %22, align 8, !tbaa !9
  %389 = add nsw i64 %388, 1
  %390 = getelementptr inbounds %struct.complex, ptr %387, i64 %389
  %391 = load ptr, ptr %19, align 8, !tbaa !5
  %392 = load ptr, ptr %20, align 8, !tbaa !5
  %393 = load ptr, ptr %21, align 8, !tbaa !5
  %394 = load i64, ptr %29, align 8, !tbaa !9
  %395 = add nsw i64 %394, 1
  %396 = getelementptr inbounds %struct.complex, ptr %393, i64 %395
  %397 = load ptr, ptr %15, align 8, !tbaa !5
  %398 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %28, ptr noundef %385, ptr noundef %386, ptr noundef %390, ptr noundef %391, ptr noundef %392, ptr noundef %396, ptr noundef %397)
  %399 = load ptr, ptr %16, align 8, !tbaa !5
  %400 = load ptr, ptr %17, align 8, !tbaa !5
  %401 = load ptr, ptr %18, align 8, !tbaa !5
  %402 = load i64, ptr %29, align 8, !tbaa !9
  %403 = load i64, ptr %22, align 8, !tbaa !9
  %404 = mul nsw i64 %402, %403
  %405 = add nsw i64 %404, 1
  %406 = getelementptr inbounds %struct.complex, ptr %401, i64 %405
  %407 = load ptr, ptr %19, align 8, !tbaa !5
  %408 = load ptr, ptr %20, align 8, !tbaa !5
  %409 = load ptr, ptr %21, align 8, !tbaa !5
  %410 = load i64, ptr %28, align 8, !tbaa !9
  %411 = add nsw i64 %410, 1
  %412 = getelementptr inbounds %struct.complex, ptr %409, i64 %411
  %413 = load ptr, ptr %15, align 8, !tbaa !5
  %414 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str.2, ptr noundef %29, ptr noundef %399, ptr noundef %400, ptr noundef %406, ptr noundef %407, ptr noundef %408, ptr noundef %412, ptr noundef %413)
  %415 = load ptr, ptr %16, align 8, !tbaa !5
  %416 = load ptr, ptr %18, align 8, !tbaa !5
  %417 = load i64, ptr %22, align 8, !tbaa !9
  %418 = add nsw i64 %417, 1
  %419 = getelementptr inbounds %struct.complex, ptr %416, i64 %418
  %420 = load ptr, ptr %19, align 8, !tbaa !5
  %421 = load ptr, ptr %18, align 8, !tbaa !5
  %422 = load i64, ptr %29, align 8, !tbaa !9
  %423 = load i64, ptr %22, align 8, !tbaa !9
  %424 = mul nsw i64 %422, %423
  %425 = add nsw i64 %424, 1
  %426 = getelementptr inbounds %struct.complex, ptr %421, i64 %425
  %427 = load ptr, ptr %19, align 8, !tbaa !5
  %428 = load ptr, ptr %21, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.complex, ptr %428, i64 1
  %430 = load ptr, ptr %15, align 8, !tbaa !5
  %431 = call i32 @f2c_cgemm(ptr noundef @.str.2, ptr noundef @.str, ptr noundef %28, ptr noundef %29, ptr noundef %415, ptr noundef %36, ptr noundef %419, ptr noundef %420, ptr noundef %426, ptr noundef %427, ptr noundef %32, ptr noundef %429, ptr noundef %430)
  br label %432

432:                                              ; preds = %384, %338
  br label %433

433:                                              ; preds = %432, %334
  br label %638

434:                                              ; preds = %225
  %435 = load i64, ptr %35, align 8, !tbaa !9
  %436 = icmp ne i64 %435, 0
  br i1 %436, label %437, label %533

437:                                              ; preds = %434
  %438 = load i64, ptr %38, align 8, !tbaa !9
  %439 = icmp ne i64 %438, 0
  br i1 %439, label %440, label %485

440:                                              ; preds = %437
  %441 = load ptr, ptr %16, align 8, !tbaa !5
  %442 = load ptr, ptr %17, align 8, !tbaa !5
  %443 = load ptr, ptr %18, align 8, !tbaa !5
  %444 = load i64, ptr %22, align 8, !tbaa !9
  %445 = add nsw i64 %444, 1
  %446 = getelementptr inbounds %struct.complex, ptr %443, i64 %445
  %447 = load ptr, ptr %19, align 8, !tbaa !5
  %448 = load ptr, ptr %20, align 8, !tbaa !5
  %449 = load ptr, ptr %21, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.complex, ptr %449, i64 1
  %451 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str, ptr noundef %28, ptr noundef %441, ptr noundef %442, ptr noundef %446, ptr noundef %447, ptr noundef %448, ptr noundef %450, ptr noundef %28)
  %452 = load ptr, ptr %16, align 8, !tbaa !5
  %453 = load ptr, ptr %17, align 8, !tbaa !5
  %454 = load ptr, ptr %18, align 8, !tbaa !5
  %455 = load i64, ptr %28, align 8, !tbaa !9
  %456 = add nsw i64 %455, 1
  %457 = load i64, ptr %22, align 8, !tbaa !9
  %458 = add nsw i64 %456, %457
  %459 = getelementptr inbounds %struct.complex, ptr %454, i64 %458
  %460 = load ptr, ptr %19, align 8, !tbaa !5
  %461 = load ptr, ptr %20, align 8, !tbaa !5
  %462 = load ptr, ptr %21, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.complex, ptr %462, i64 2
  %464 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %29, ptr noundef %452, ptr noundef %453, ptr noundef %459, ptr noundef %460, ptr noundef %461, ptr noundef %463, ptr noundef %28)
  %465 = load ptr, ptr %16, align 8, !tbaa !5
  %466 = load ptr, ptr %18, align 8, !tbaa !5
  %467 = load i64, ptr %22, align 8, !tbaa !9
  %468 = add nsw i64 %467, 1
  %469 = getelementptr inbounds %struct.complex, ptr %466, i64 %468
  %470 = load ptr, ptr %19, align 8, !tbaa !5
  %471 = load ptr, ptr %18, align 8, !tbaa !5
  %472 = load i64, ptr %28, align 8, !tbaa !9
  %473 = add nsw i64 %472, 1
  %474 = load i64, ptr %22, align 8, !tbaa !9
  %475 = add nsw i64 %473, %474
  %476 = getelementptr inbounds %struct.complex, ptr %471, i64 %475
  %477 = load ptr, ptr %19, align 8, !tbaa !5
  %478 = load ptr, ptr %21, align 8, !tbaa !5
  %479 = load i64, ptr %28, align 8, !tbaa !9
  %480 = load i64, ptr %28, align 8, !tbaa !9
  %481 = mul nsw i64 %479, %480
  %482 = add nsw i64 %481, 1
  %483 = getelementptr inbounds %struct.complex, ptr %478, i64 %482
  %484 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str.2, ptr noundef %28, ptr noundef %29, ptr noundef %465, ptr noundef %36, ptr noundef %469, ptr noundef %470, ptr noundef %476, ptr noundef %477, ptr noundef %32, ptr noundef %483, ptr noundef %28)
  br label %532

485:                                              ; preds = %437
  %486 = load ptr, ptr %16, align 8, !tbaa !5
  %487 = load ptr, ptr %17, align 8, !tbaa !5
  %488 = load ptr, ptr %18, align 8, !tbaa !5
  %489 = load i64, ptr %22, align 8, !tbaa !9
  %490 = add nsw i64 %489, 1
  %491 = getelementptr inbounds %struct.complex, ptr %488, i64 %490
  %492 = load ptr, ptr %19, align 8, !tbaa !5
  %493 = load ptr, ptr %20, align 8, !tbaa !5
  %494 = load ptr, ptr %21, align 8, !tbaa !5
  %495 = getelementptr inbounds %struct.complex, ptr %494, i64 1
  %496 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str.2, ptr noundef %28, ptr noundef %486, ptr noundef %487, ptr noundef %491, ptr noundef %492, ptr noundef %493, ptr noundef %495, ptr noundef %28)
  %497 = load ptr, ptr %16, align 8, !tbaa !5
  %498 = load ptr, ptr %17, align 8, !tbaa !5
  %499 = load ptr, ptr %18, align 8, !tbaa !5
  %500 = load i64, ptr %28, align 8, !tbaa !9
  %501 = add nsw i64 %500, 1
  %502 = load i64, ptr %22, align 8, !tbaa !9
  %503 = mul nsw i64 %501, %502
  %504 = add nsw i64 %503, 1
  %505 = getelementptr inbounds %struct.complex, ptr %499, i64 %504
  %506 = load ptr, ptr %19, align 8, !tbaa !5
  %507 = load ptr, ptr %20, align 8, !tbaa !5
  %508 = load ptr, ptr %21, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.complex, ptr %508, i64 2
  %510 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %29, ptr noundef %497, ptr noundef %498, ptr noundef %505, ptr noundef %506, ptr noundef %507, ptr noundef %509, ptr noundef %28)
  %511 = load ptr, ptr %16, align 8, !tbaa !5
  %512 = load ptr, ptr %18, align 8, !tbaa !5
  %513 = load i64, ptr %22, align 8, !tbaa !9
  %514 = add nsw i64 %513, 1
  %515 = getelementptr inbounds %struct.complex, ptr %512, i64 %514
  %516 = load ptr, ptr %19, align 8, !tbaa !5
  %517 = load ptr, ptr %18, align 8, !tbaa !5
  %518 = load i64, ptr %28, align 8, !tbaa !9
  %519 = add nsw i64 %518, 1
  %520 = load i64, ptr %22, align 8, !tbaa !9
  %521 = mul nsw i64 %519, %520
  %522 = add nsw i64 %521, 1
  %523 = getelementptr inbounds %struct.complex, ptr %517, i64 %522
  %524 = load ptr, ptr %19, align 8, !tbaa !5
  %525 = load ptr, ptr %21, align 8, !tbaa !5
  %526 = load i64, ptr %28, align 8, !tbaa !9
  %527 = load i64, ptr %28, align 8, !tbaa !9
  %528 = mul nsw i64 %526, %527
  %529 = add nsw i64 %528, 1
  %530 = getelementptr inbounds %struct.complex, ptr %525, i64 %529
  %531 = call i32 @f2c_cgemm(ptr noundef @.str.2, ptr noundef @.str, ptr noundef %28, ptr noundef %29, ptr noundef %511, ptr noundef %36, ptr noundef %515, ptr noundef %516, ptr noundef %523, ptr noundef %524, ptr noundef %32, ptr noundef %530, ptr noundef %28)
  br label %532

532:                                              ; preds = %485, %440
  br label %637

533:                                              ; preds = %434
  %534 = load i64, ptr %38, align 8, !tbaa !9
  %535 = icmp ne i64 %534, 0
  br i1 %535, label %536, label %585

536:                                              ; preds = %533
  %537 = load ptr, ptr %16, align 8, !tbaa !5
  %538 = load ptr, ptr %17, align 8, !tbaa !5
  %539 = load ptr, ptr %18, align 8, !tbaa !5
  %540 = load i64, ptr %22, align 8, !tbaa !9
  %541 = add nsw i64 %540, 1
  %542 = getelementptr inbounds %struct.complex, ptr %539, i64 %541
  %543 = load ptr, ptr %19, align 8, !tbaa !5
  %544 = load ptr, ptr %20, align 8, !tbaa !5
  %545 = load ptr, ptr %21, align 8, !tbaa !5
  %546 = load i64, ptr %29, align 8, !tbaa !9
  %547 = load i64, ptr %29, align 8, !tbaa !9
  %548 = mul nsw i64 %546, %547
  %549 = add nsw i64 %548, 1
  %550 = getelementptr inbounds %struct.complex, ptr %545, i64 %549
  %551 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str, ptr noundef %28, ptr noundef %537, ptr noundef %538, ptr noundef %542, ptr noundef %543, ptr noundef %544, ptr noundef %550, ptr noundef %29)
  %552 = load ptr, ptr %16, align 8, !tbaa !5
  %553 = load ptr, ptr %17, align 8, !tbaa !5
  %554 = load ptr, ptr %18, align 8, !tbaa !5
  %555 = load i64, ptr %28, align 8, !tbaa !9
  %556 = add nsw i64 %555, 1
  %557 = load i64, ptr %22, align 8, !tbaa !9
  %558 = add nsw i64 %556, %557
  %559 = getelementptr inbounds %struct.complex, ptr %554, i64 %558
  %560 = load ptr, ptr %19, align 8, !tbaa !5
  %561 = load ptr, ptr %20, align 8, !tbaa !5
  %562 = load ptr, ptr %21, align 8, !tbaa !5
  %563 = load i64, ptr %28, align 8, !tbaa !9
  %564 = load i64, ptr %29, align 8, !tbaa !9
  %565 = mul nsw i64 %563, %564
  %566 = add nsw i64 %565, 1
  %567 = getelementptr inbounds %struct.complex, ptr %562, i64 %566
  %568 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %29, ptr noundef %552, ptr noundef %553, ptr noundef %559, ptr noundef %560, ptr noundef %561, ptr noundef %567, ptr noundef %29)
  %569 = load ptr, ptr %16, align 8, !tbaa !5
  %570 = load ptr, ptr %18, align 8, !tbaa !5
  %571 = load i64, ptr %28, align 8, !tbaa !9
  %572 = add nsw i64 %571, 1
  %573 = load i64, ptr %22, align 8, !tbaa !9
  %574 = add nsw i64 %572, %573
  %575 = getelementptr inbounds %struct.complex, ptr %570, i64 %574
  %576 = load ptr, ptr %19, align 8, !tbaa !5
  %577 = load ptr, ptr %18, align 8, !tbaa !5
  %578 = load i64, ptr %22, align 8, !tbaa !9
  %579 = add nsw i64 %578, 1
  %580 = getelementptr inbounds %struct.complex, ptr %577, i64 %579
  %581 = load ptr, ptr %19, align 8, !tbaa !5
  %582 = load ptr, ptr %21, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.complex, ptr %582, i64 1
  %584 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str.2, ptr noundef %29, ptr noundef %28, ptr noundef %569, ptr noundef %36, ptr noundef %575, ptr noundef %576, ptr noundef %580, ptr noundef %581, ptr noundef %32, ptr noundef %583, ptr noundef %29)
  br label %636

585:                                              ; preds = %533
  %586 = load ptr, ptr %16, align 8, !tbaa !5
  %587 = load ptr, ptr %17, align 8, !tbaa !5
  %588 = load ptr, ptr %18, align 8, !tbaa !5
  %589 = load i64, ptr %22, align 8, !tbaa !9
  %590 = add nsw i64 %589, 1
  %591 = getelementptr inbounds %struct.complex, ptr %588, i64 %590
  %592 = load ptr, ptr %19, align 8, !tbaa !5
  %593 = load ptr, ptr %20, align 8, !tbaa !5
  %594 = load ptr, ptr %21, align 8, !tbaa !5
  %595 = load i64, ptr %29, align 8, !tbaa !9
  %596 = load i64, ptr %29, align 8, !tbaa !9
  %597 = mul nsw i64 %595, %596
  %598 = add nsw i64 %597, 1
  %599 = getelementptr inbounds %struct.complex, ptr %594, i64 %598
  %600 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str.2, ptr noundef %28, ptr noundef %586, ptr noundef %587, ptr noundef %591, ptr noundef %592, ptr noundef %593, ptr noundef %599, ptr noundef %29)
  %601 = load ptr, ptr %16, align 8, !tbaa !5
  %602 = load ptr, ptr %17, align 8, !tbaa !5
  %603 = load ptr, ptr %18, align 8, !tbaa !5
  %604 = load i64, ptr %28, align 8, !tbaa !9
  %605 = add nsw i64 %604, 1
  %606 = load i64, ptr %22, align 8, !tbaa !9
  %607 = mul nsw i64 %605, %606
  %608 = add nsw i64 %607, 1
  %609 = getelementptr inbounds %struct.complex, ptr %603, i64 %608
  %610 = load ptr, ptr %19, align 8, !tbaa !5
  %611 = load ptr, ptr %20, align 8, !tbaa !5
  %612 = load ptr, ptr %21, align 8, !tbaa !5
  %613 = load i64, ptr %28, align 8, !tbaa !9
  %614 = load i64, ptr %29, align 8, !tbaa !9
  %615 = mul nsw i64 %613, %614
  %616 = add nsw i64 %615, 1
  %617 = getelementptr inbounds %struct.complex, ptr %612, i64 %616
  %618 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %29, ptr noundef %601, ptr noundef %602, ptr noundef %609, ptr noundef %610, ptr noundef %611, ptr noundef %617, ptr noundef %29)
  %619 = load ptr, ptr %16, align 8, !tbaa !5
  %620 = load ptr, ptr %18, align 8, !tbaa !5
  %621 = load i64, ptr %28, align 8, !tbaa !9
  %622 = add nsw i64 %621, 1
  %623 = load i64, ptr %22, align 8, !tbaa !9
  %624 = mul nsw i64 %622, %623
  %625 = add nsw i64 %624, 1
  %626 = getelementptr inbounds %struct.complex, ptr %620, i64 %625
  %627 = load ptr, ptr %19, align 8, !tbaa !5
  %628 = load ptr, ptr %18, align 8, !tbaa !5
  %629 = load i64, ptr %22, align 8, !tbaa !9
  %630 = add nsw i64 %629, 1
  %631 = getelementptr inbounds %struct.complex, ptr %628, i64 %630
  %632 = load ptr, ptr %19, align 8, !tbaa !5
  %633 = load ptr, ptr %21, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.complex, ptr %633, i64 1
  %635 = call i32 @f2c_cgemm(ptr noundef @.str.2, ptr noundef @.str, ptr noundef %29, ptr noundef %28, ptr noundef %619, ptr noundef %36, ptr noundef %626, ptr noundef %627, ptr noundef %631, ptr noundef %632, ptr noundef %32, ptr noundef %634, ptr noundef %29)
  br label %636

636:                                              ; preds = %585, %536
  br label %637

637:                                              ; preds = %636, %532
  br label %638

638:                                              ; preds = %637, %433
  br label %1083

639:                                              ; preds = %222
  %640 = load i64, ptr %33, align 8, !tbaa !9
  %641 = icmp ne i64 %640, 0
  br i1 %641, label %642, label %870

642:                                              ; preds = %639
  %643 = load i64, ptr %35, align 8, !tbaa !9
  %644 = icmp ne i64 %643, 0
  br i1 %644, label %645, label %755

645:                                              ; preds = %642
  %646 = load i64, ptr %38, align 8, !tbaa !9
  %647 = icmp ne i64 %646, 0
  br i1 %647, label %648, label %700

648:                                              ; preds = %645
  %649 = load ptr, ptr %15, align 8, !tbaa !5
  %650 = load i64, ptr %649, align 8, !tbaa !9
  %651 = add nsw i64 %650, 1
  store i64 %651, ptr %24, align 8, !tbaa !9
  %652 = load ptr, ptr %16, align 8, !tbaa !5
  %653 = load ptr, ptr %17, align 8, !tbaa !5
  %654 = load ptr, ptr %18, align 8, !tbaa !5
  %655 = load i64, ptr %22, align 8, !tbaa !9
  %656 = add nsw i64 %655, 1
  %657 = getelementptr inbounds %struct.complex, ptr %654, i64 %656
  %658 = load ptr, ptr %19, align 8, !tbaa !5
  %659 = load ptr, ptr %20, align 8, !tbaa !5
  %660 = load ptr, ptr %21, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.complex, ptr %660, i64 2
  %662 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %30, ptr noundef %652, ptr noundef %653, ptr noundef %657, ptr noundef %658, ptr noundef %659, ptr noundef %661, ptr noundef %24)
  %663 = load ptr, ptr %15, align 8, !tbaa !5
  %664 = load i64, ptr %663, align 8, !tbaa !9
  %665 = add nsw i64 %664, 1
  store i64 %665, ptr %24, align 8, !tbaa !9
  %666 = load ptr, ptr %16, align 8, !tbaa !5
  %667 = load ptr, ptr %17, align 8, !tbaa !5
  %668 = load ptr, ptr %18, align 8, !tbaa !5
  %669 = load i64, ptr %30, align 8, !tbaa !9
  %670 = add nsw i64 %669, 1
  %671 = load i64, ptr %22, align 8, !tbaa !9
  %672 = add nsw i64 %670, %671
  %673 = getelementptr inbounds %struct.complex, ptr %668, i64 %672
  %674 = load ptr, ptr %19, align 8, !tbaa !5
  %675 = load ptr, ptr %20, align 8, !tbaa !5
  %676 = load ptr, ptr %21, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.complex, ptr %676, i64 1
  %678 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str, ptr noundef %30, ptr noundef %666, ptr noundef %667, ptr noundef %673, ptr noundef %674, ptr noundef %675, ptr noundef %677, ptr noundef %24)
  %679 = load ptr, ptr %15, align 8, !tbaa !5
  %680 = load i64, ptr %679, align 8, !tbaa !9
  %681 = add nsw i64 %680, 1
  store i64 %681, ptr %24, align 8, !tbaa !9
  %682 = load ptr, ptr %16, align 8, !tbaa !5
  %683 = load ptr, ptr %18, align 8, !tbaa !5
  %684 = load i64, ptr %30, align 8, !tbaa !9
  %685 = add nsw i64 %684, 1
  %686 = load i64, ptr %22, align 8, !tbaa !9
  %687 = add nsw i64 %685, %686
  %688 = getelementptr inbounds %struct.complex, ptr %683, i64 %687
  %689 = load ptr, ptr %19, align 8, !tbaa !5
  %690 = load ptr, ptr %18, align 8, !tbaa !5
  %691 = load i64, ptr %22, align 8, !tbaa !9
  %692 = add nsw i64 %691, 1
  %693 = getelementptr inbounds %struct.complex, ptr %690, i64 %692
  %694 = load ptr, ptr %19, align 8, !tbaa !5
  %695 = load ptr, ptr %21, align 8, !tbaa !5
  %696 = load i64, ptr %30, align 8, !tbaa !9
  %697 = add nsw i64 %696, 2
  %698 = getelementptr inbounds %struct.complex, ptr %695, i64 %697
  %699 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str.2, ptr noundef %30, ptr noundef %30, ptr noundef %682, ptr noundef %36, ptr noundef %688, ptr noundef %689, ptr noundef %693, ptr noundef %694, ptr noundef %32, ptr noundef %698, ptr noundef %24)
  br label %754

700:                                              ; preds = %645
  %701 = load ptr, ptr %15, align 8, !tbaa !5
  %702 = load i64, ptr %701, align 8, !tbaa !9
  %703 = add nsw i64 %702, 1
  store i64 %703, ptr %24, align 8, !tbaa !9
  %704 = load ptr, ptr %16, align 8, !tbaa !5
  %705 = load ptr, ptr %17, align 8, !tbaa !5
  %706 = load ptr, ptr %18, align 8, !tbaa !5
  %707 = load i64, ptr %22, align 8, !tbaa !9
  %708 = add nsw i64 %707, 1
  %709 = getelementptr inbounds %struct.complex, ptr %706, i64 %708
  %710 = load ptr, ptr %19, align 8, !tbaa !5
  %711 = load ptr, ptr %20, align 8, !tbaa !5
  %712 = load ptr, ptr %21, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.complex, ptr %712, i64 2
  %714 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %30, ptr noundef %704, ptr noundef %705, ptr noundef %709, ptr noundef %710, ptr noundef %711, ptr noundef %713, ptr noundef %24)
  %715 = load ptr, ptr %15, align 8, !tbaa !5
  %716 = load i64, ptr %715, align 8, !tbaa !9
  %717 = add nsw i64 %716, 1
  store i64 %717, ptr %24, align 8, !tbaa !9
  %718 = load ptr, ptr %16, align 8, !tbaa !5
  %719 = load ptr, ptr %17, align 8, !tbaa !5
  %720 = load ptr, ptr %18, align 8, !tbaa !5
  %721 = load i64, ptr %30, align 8, !tbaa !9
  %722 = add nsw i64 %721, 1
  %723 = load i64, ptr %22, align 8, !tbaa !9
  %724 = mul nsw i64 %722, %723
  %725 = add nsw i64 %724, 1
  %726 = getelementptr inbounds %struct.complex, ptr %720, i64 %725
  %727 = load ptr, ptr %19, align 8, !tbaa !5
  %728 = load ptr, ptr %20, align 8, !tbaa !5
  %729 = load ptr, ptr %21, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.complex, ptr %729, i64 1
  %731 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str.2, ptr noundef %30, ptr noundef %718, ptr noundef %719, ptr noundef %726, ptr noundef %727, ptr noundef %728, ptr noundef %730, ptr noundef %24)
  %732 = load ptr, ptr %15, align 8, !tbaa !5
  %733 = load i64, ptr %732, align 8, !tbaa !9
  %734 = add nsw i64 %733, 1
  store i64 %734, ptr %24, align 8, !tbaa !9
  %735 = load ptr, ptr %16, align 8, !tbaa !5
  %736 = load ptr, ptr %18, align 8, !tbaa !5
  %737 = load i64, ptr %30, align 8, !tbaa !9
  %738 = add nsw i64 %737, 1
  %739 = load i64, ptr %22, align 8, !tbaa !9
  %740 = mul nsw i64 %738, %739
  %741 = add nsw i64 %740, 1
  %742 = getelementptr inbounds %struct.complex, ptr %736, i64 %741
  %743 = load ptr, ptr %19, align 8, !tbaa !5
  %744 = load ptr, ptr %18, align 8, !tbaa !5
  %745 = load i64, ptr %22, align 8, !tbaa !9
  %746 = add nsw i64 %745, 1
  %747 = getelementptr inbounds %struct.complex, ptr %744, i64 %746
  %748 = load ptr, ptr %19, align 8, !tbaa !5
  %749 = load ptr, ptr %21, align 8, !tbaa !5
  %750 = load i64, ptr %30, align 8, !tbaa !9
  %751 = add nsw i64 %750, 2
  %752 = getelementptr inbounds %struct.complex, ptr %749, i64 %751
  %753 = call i32 @f2c_cgemm(ptr noundef @.str.2, ptr noundef @.str, ptr noundef %30, ptr noundef %30, ptr noundef %735, ptr noundef %36, ptr noundef %742, ptr noundef %743, ptr noundef %747, ptr noundef %748, ptr noundef %32, ptr noundef %752, ptr noundef %24)
  br label %754

754:                                              ; preds = %700, %648
  br label %869

755:                                              ; preds = %642
  %756 = load i64, ptr %38, align 8, !tbaa !9
  %757 = icmp ne i64 %756, 0
  br i1 %757, label %758, label %812

758:                                              ; preds = %755
  %759 = load ptr, ptr %15, align 8, !tbaa !5
  %760 = load i64, ptr %759, align 8, !tbaa !9
  %761 = add nsw i64 %760, 1
  store i64 %761, ptr %24, align 8, !tbaa !9
  %762 = load ptr, ptr %16, align 8, !tbaa !5
  %763 = load ptr, ptr %17, align 8, !tbaa !5
  %764 = load ptr, ptr %18, align 8, !tbaa !5
  %765 = load i64, ptr %22, align 8, !tbaa !9
  %766 = add nsw i64 %765, 1
  %767 = getelementptr inbounds %struct.complex, ptr %764, i64 %766
  %768 = load ptr, ptr %19, align 8, !tbaa !5
  %769 = load ptr, ptr %20, align 8, !tbaa !5
  %770 = load ptr, ptr %21, align 8, !tbaa !5
  %771 = load i64, ptr %30, align 8, !tbaa !9
  %772 = add nsw i64 %771, 2
  %773 = getelementptr inbounds %struct.complex, ptr %770, i64 %772
  %774 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %30, ptr noundef %762, ptr noundef %763, ptr noundef %767, ptr noundef %768, ptr noundef %769, ptr noundef %773, ptr noundef %24)
  %775 = load ptr, ptr %15, align 8, !tbaa !5
  %776 = load i64, ptr %775, align 8, !tbaa !9
  %777 = add nsw i64 %776, 1
  store i64 %777, ptr %24, align 8, !tbaa !9
  %778 = load ptr, ptr %16, align 8, !tbaa !5
  %779 = load ptr, ptr %17, align 8, !tbaa !5
  %780 = load ptr, ptr %18, align 8, !tbaa !5
  %781 = load i64, ptr %30, align 8, !tbaa !9
  %782 = add nsw i64 %781, 1
  %783 = load i64, ptr %22, align 8, !tbaa !9
  %784 = add nsw i64 %782, %783
  %785 = getelementptr inbounds %struct.complex, ptr %780, i64 %784
  %786 = load ptr, ptr %19, align 8, !tbaa !5
  %787 = load ptr, ptr %20, align 8, !tbaa !5
  %788 = load ptr, ptr %21, align 8, !tbaa !5
  %789 = load i64, ptr %30, align 8, !tbaa !9
  %790 = add nsw i64 %789, 1
  %791 = getelementptr inbounds %struct.complex, ptr %788, i64 %790
  %792 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str, ptr noundef %30, ptr noundef %778, ptr noundef %779, ptr noundef %785, ptr noundef %786, ptr noundef %787, ptr noundef %791, ptr noundef %24)
  %793 = load ptr, ptr %15, align 8, !tbaa !5
  %794 = load i64, ptr %793, align 8, !tbaa !9
  %795 = add nsw i64 %794, 1
  store i64 %795, ptr %24, align 8, !tbaa !9
  %796 = load ptr, ptr %16, align 8, !tbaa !5
  %797 = load ptr, ptr %18, align 8, !tbaa !5
  %798 = load i64, ptr %22, align 8, !tbaa !9
  %799 = add nsw i64 %798, 1
  %800 = getelementptr inbounds %struct.complex, ptr %797, i64 %799
  %801 = load ptr, ptr %19, align 8, !tbaa !5
  %802 = load ptr, ptr %18, align 8, !tbaa !5
  %803 = load i64, ptr %30, align 8, !tbaa !9
  %804 = add nsw i64 %803, 1
  %805 = load i64, ptr %22, align 8, !tbaa !9
  %806 = add nsw i64 %804, %805
  %807 = getelementptr inbounds %struct.complex, ptr %802, i64 %806
  %808 = load ptr, ptr %19, align 8, !tbaa !5
  %809 = load ptr, ptr %21, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.complex, ptr %809, i64 1
  %811 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str.2, ptr noundef %30, ptr noundef %30, ptr noundef %796, ptr noundef %36, ptr noundef %800, ptr noundef %801, ptr noundef %807, ptr noundef %808, ptr noundef %32, ptr noundef %810, ptr noundef %24)
  br label %868

812:                                              ; preds = %755
  %813 = load ptr, ptr %15, align 8, !tbaa !5
  %814 = load i64, ptr %813, align 8, !tbaa !9
  %815 = add nsw i64 %814, 1
  store i64 %815, ptr %24, align 8, !tbaa !9
  %816 = load ptr, ptr %16, align 8, !tbaa !5
  %817 = load ptr, ptr %17, align 8, !tbaa !5
  %818 = load ptr, ptr %18, align 8, !tbaa !5
  %819 = load i64, ptr %22, align 8, !tbaa !9
  %820 = add nsw i64 %819, 1
  %821 = getelementptr inbounds %struct.complex, ptr %818, i64 %820
  %822 = load ptr, ptr %19, align 8, !tbaa !5
  %823 = load ptr, ptr %20, align 8, !tbaa !5
  %824 = load ptr, ptr %21, align 8, !tbaa !5
  %825 = load i64, ptr %30, align 8, !tbaa !9
  %826 = add nsw i64 %825, 2
  %827 = getelementptr inbounds %struct.complex, ptr %824, i64 %826
  %828 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %30, ptr noundef %816, ptr noundef %817, ptr noundef %821, ptr noundef %822, ptr noundef %823, ptr noundef %827, ptr noundef %24)
  %829 = load ptr, ptr %15, align 8, !tbaa !5
  %830 = load i64, ptr %829, align 8, !tbaa !9
  %831 = add nsw i64 %830, 1
  store i64 %831, ptr %24, align 8, !tbaa !9
  %832 = load ptr, ptr %16, align 8, !tbaa !5
  %833 = load ptr, ptr %17, align 8, !tbaa !5
  %834 = load ptr, ptr %18, align 8, !tbaa !5
  %835 = load i64, ptr %30, align 8, !tbaa !9
  %836 = add nsw i64 %835, 1
  %837 = load i64, ptr %22, align 8, !tbaa !9
  %838 = mul nsw i64 %836, %837
  %839 = add nsw i64 %838, 1
  %840 = getelementptr inbounds %struct.complex, ptr %834, i64 %839
  %841 = load ptr, ptr %19, align 8, !tbaa !5
  %842 = load ptr, ptr %20, align 8, !tbaa !5
  %843 = load ptr, ptr %21, align 8, !tbaa !5
  %844 = load i64, ptr %30, align 8, !tbaa !9
  %845 = add nsw i64 %844, 1
  %846 = getelementptr inbounds %struct.complex, ptr %843, i64 %845
  %847 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str.2, ptr noundef %30, ptr noundef %832, ptr noundef %833, ptr noundef %840, ptr noundef %841, ptr noundef %842, ptr noundef %846, ptr noundef %24)
  %848 = load ptr, ptr %15, align 8, !tbaa !5
  %849 = load i64, ptr %848, align 8, !tbaa !9
  %850 = add nsw i64 %849, 1
  store i64 %850, ptr %24, align 8, !tbaa !9
  %851 = load ptr, ptr %16, align 8, !tbaa !5
  %852 = load ptr, ptr %18, align 8, !tbaa !5
  %853 = load i64, ptr %22, align 8, !tbaa !9
  %854 = add nsw i64 %853, 1
  %855 = getelementptr inbounds %struct.complex, ptr %852, i64 %854
  %856 = load ptr, ptr %19, align 8, !tbaa !5
  %857 = load ptr, ptr %18, align 8, !tbaa !5
  %858 = load i64, ptr %30, align 8, !tbaa !9
  %859 = add nsw i64 %858, 1
  %860 = load i64, ptr %22, align 8, !tbaa !9
  %861 = mul nsw i64 %859, %860
  %862 = add nsw i64 %861, 1
  %863 = getelementptr inbounds %struct.complex, ptr %857, i64 %862
  %864 = load ptr, ptr %19, align 8, !tbaa !5
  %865 = load ptr, ptr %21, align 8, !tbaa !5
  %866 = getelementptr inbounds %struct.complex, ptr %865, i64 1
  %867 = call i32 @f2c_cgemm(ptr noundef @.str.2, ptr noundef @.str, ptr noundef %30, ptr noundef %30, ptr noundef %851, ptr noundef %36, ptr noundef %855, ptr noundef %856, ptr noundef %863, ptr noundef %864, ptr noundef %32, ptr noundef %866, ptr noundef %24)
  br label %868

868:                                              ; preds = %812, %758
  br label %869

869:                                              ; preds = %868, %754
  br label %1082

870:                                              ; preds = %639
  %871 = load i64, ptr %35, align 8, !tbaa !9
  %872 = icmp ne i64 %871, 0
  br i1 %872, label %873, label %975

873:                                              ; preds = %870
  %874 = load i64, ptr %38, align 8, !tbaa !9
  %875 = icmp ne i64 %874, 0
  br i1 %875, label %876, label %924

876:                                              ; preds = %873
  %877 = load ptr, ptr %16, align 8, !tbaa !5
  %878 = load ptr, ptr %17, align 8, !tbaa !5
  %879 = load ptr, ptr %18, align 8, !tbaa !5
  %880 = load i64, ptr %22, align 8, !tbaa !9
  %881 = add nsw i64 %880, 1
  %882 = getelementptr inbounds %struct.complex, ptr %879, i64 %881
  %883 = load ptr, ptr %19, align 8, !tbaa !5
  %884 = load ptr, ptr %20, align 8, !tbaa !5
  %885 = load ptr, ptr %21, align 8, !tbaa !5
  %886 = load i64, ptr %30, align 8, !tbaa !9
  %887 = add nsw i64 %886, 1
  %888 = getelementptr inbounds %struct.complex, ptr %885, i64 %887
  %889 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str, ptr noundef %30, ptr noundef %877, ptr noundef %878, ptr noundef %882, ptr noundef %883, ptr noundef %884, ptr noundef %888, ptr noundef %30)
  %890 = load ptr, ptr %16, align 8, !tbaa !5
  %891 = load ptr, ptr %17, align 8, !tbaa !5
  %892 = load ptr, ptr %18, align 8, !tbaa !5
  %893 = load i64, ptr %30, align 8, !tbaa !9
  %894 = add nsw i64 %893, 1
  %895 = load i64, ptr %22, align 8, !tbaa !9
  %896 = add nsw i64 %894, %895
  %897 = getelementptr inbounds %struct.complex, ptr %892, i64 %896
  %898 = load ptr, ptr %19, align 8, !tbaa !5
  %899 = load ptr, ptr %20, align 8, !tbaa !5
  %900 = load ptr, ptr %21, align 8, !tbaa !5
  %901 = getelementptr inbounds %struct.complex, ptr %900, i64 1
  %902 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %30, ptr noundef %890, ptr noundef %891, ptr noundef %897, ptr noundef %898, ptr noundef %899, ptr noundef %901, ptr noundef %30)
  %903 = load ptr, ptr %16, align 8, !tbaa !5
  %904 = load ptr, ptr %18, align 8, !tbaa !5
  %905 = load i64, ptr %22, align 8, !tbaa !9
  %906 = add nsw i64 %905, 1
  %907 = getelementptr inbounds %struct.complex, ptr %904, i64 %906
  %908 = load ptr, ptr %19, align 8, !tbaa !5
  %909 = load ptr, ptr %18, align 8, !tbaa !5
  %910 = load i64, ptr %30, align 8, !tbaa !9
  %911 = add nsw i64 %910, 1
  %912 = load i64, ptr %22, align 8, !tbaa !9
  %913 = add nsw i64 %911, %912
  %914 = getelementptr inbounds %struct.complex, ptr %909, i64 %913
  %915 = load ptr, ptr %19, align 8, !tbaa !5
  %916 = load ptr, ptr %21, align 8, !tbaa !5
  %917 = load i64, ptr %30, align 8, !tbaa !9
  %918 = add nsw i64 %917, 1
  %919 = load i64, ptr %30, align 8, !tbaa !9
  %920 = mul nsw i64 %918, %919
  %921 = add nsw i64 %920, 1
  %922 = getelementptr inbounds %struct.complex, ptr %916, i64 %921
  %923 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str.2, ptr noundef %30, ptr noundef %30, ptr noundef %903, ptr noundef %36, ptr noundef %907, ptr noundef %908, ptr noundef %914, ptr noundef %915, ptr noundef %32, ptr noundef %922, ptr noundef %30)
  br label %974

924:                                              ; preds = %873
  %925 = load ptr, ptr %16, align 8, !tbaa !5
  %926 = load ptr, ptr %17, align 8, !tbaa !5
  %927 = load ptr, ptr %18, align 8, !tbaa !5
  %928 = load i64, ptr %22, align 8, !tbaa !9
  %929 = add nsw i64 %928, 1
  %930 = getelementptr inbounds %struct.complex, ptr %927, i64 %929
  %931 = load ptr, ptr %19, align 8, !tbaa !5
  %932 = load ptr, ptr %20, align 8, !tbaa !5
  %933 = load ptr, ptr %21, align 8, !tbaa !5
  %934 = load i64, ptr %30, align 8, !tbaa !9
  %935 = add nsw i64 %934, 1
  %936 = getelementptr inbounds %struct.complex, ptr %933, i64 %935
  %937 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str.2, ptr noundef %30, ptr noundef %925, ptr noundef %926, ptr noundef %930, ptr noundef %931, ptr noundef %932, ptr noundef %936, ptr noundef %30)
  %938 = load ptr, ptr %16, align 8, !tbaa !5
  %939 = load ptr, ptr %17, align 8, !tbaa !5
  %940 = load ptr, ptr %18, align 8, !tbaa !5
  %941 = load i64, ptr %30, align 8, !tbaa !9
  %942 = add nsw i64 %941, 1
  %943 = load i64, ptr %22, align 8, !tbaa !9
  %944 = mul nsw i64 %942, %943
  %945 = add nsw i64 %944, 1
  %946 = getelementptr inbounds %struct.complex, ptr %940, i64 %945
  %947 = load ptr, ptr %19, align 8, !tbaa !5
  %948 = load ptr, ptr %20, align 8, !tbaa !5
  %949 = load ptr, ptr %21, align 8, !tbaa !5
  %950 = getelementptr inbounds %struct.complex, ptr %949, i64 1
  %951 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %30, ptr noundef %938, ptr noundef %939, ptr noundef %946, ptr noundef %947, ptr noundef %948, ptr noundef %950, ptr noundef %30)
  %952 = load ptr, ptr %16, align 8, !tbaa !5
  %953 = load ptr, ptr %18, align 8, !tbaa !5
  %954 = load i64, ptr %22, align 8, !tbaa !9
  %955 = add nsw i64 %954, 1
  %956 = getelementptr inbounds %struct.complex, ptr %953, i64 %955
  %957 = load ptr, ptr %19, align 8, !tbaa !5
  %958 = load ptr, ptr %18, align 8, !tbaa !5
  %959 = load i64, ptr %30, align 8, !tbaa !9
  %960 = add nsw i64 %959, 1
  %961 = load i64, ptr %22, align 8, !tbaa !9
  %962 = mul nsw i64 %960, %961
  %963 = add nsw i64 %962, 1
  %964 = getelementptr inbounds %struct.complex, ptr %958, i64 %963
  %965 = load ptr, ptr %19, align 8, !tbaa !5
  %966 = load ptr, ptr %21, align 8, !tbaa !5
  %967 = load i64, ptr %30, align 8, !tbaa !9
  %968 = add nsw i64 %967, 1
  %969 = load i64, ptr %30, align 8, !tbaa !9
  %970 = mul nsw i64 %968, %969
  %971 = add nsw i64 %970, 1
  %972 = getelementptr inbounds %struct.complex, ptr %966, i64 %971
  %973 = call i32 @f2c_cgemm(ptr noundef @.str.2, ptr noundef @.str, ptr noundef %30, ptr noundef %30, ptr noundef %952, ptr noundef %36, ptr noundef %956, ptr noundef %957, ptr noundef %964, ptr noundef %965, ptr noundef %32, ptr noundef %972, ptr noundef %30)
  br label %974

974:                                              ; preds = %924, %876
  br label %1081

975:                                              ; preds = %870
  %976 = load i64, ptr %38, align 8, !tbaa !9
  %977 = icmp ne i64 %976, 0
  br i1 %977, label %978, label %1028

978:                                              ; preds = %975
  %979 = load ptr, ptr %16, align 8, !tbaa !5
  %980 = load ptr, ptr %17, align 8, !tbaa !5
  %981 = load ptr, ptr %18, align 8, !tbaa !5
  %982 = load i64, ptr %22, align 8, !tbaa !9
  %983 = add nsw i64 %982, 1
  %984 = getelementptr inbounds %struct.complex, ptr %981, i64 %983
  %985 = load ptr, ptr %19, align 8, !tbaa !5
  %986 = load ptr, ptr %20, align 8, !tbaa !5
  %987 = load ptr, ptr %21, align 8, !tbaa !5
  %988 = load i64, ptr %30, align 8, !tbaa !9
  %989 = load i64, ptr %30, align 8, !tbaa !9
  %990 = add nsw i64 %989, 1
  %991 = mul nsw i64 %988, %990
  %992 = add nsw i64 %991, 1
  %993 = getelementptr inbounds %struct.complex, ptr %987, i64 %992
  %994 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str, ptr noundef %30, ptr noundef %979, ptr noundef %980, ptr noundef %984, ptr noundef %985, ptr noundef %986, ptr noundef %993, ptr noundef %30)
  %995 = load ptr, ptr %16, align 8, !tbaa !5
  %996 = load ptr, ptr %17, align 8, !tbaa !5
  %997 = load ptr, ptr %18, align 8, !tbaa !5
  %998 = load i64, ptr %30, align 8, !tbaa !9
  %999 = add nsw i64 %998, 1
  %1000 = load i64, ptr %22, align 8, !tbaa !9
  %1001 = add nsw i64 %999, %1000
  %1002 = getelementptr inbounds %struct.complex, ptr %997, i64 %1001
  %1003 = load ptr, ptr %19, align 8, !tbaa !5
  %1004 = load ptr, ptr %20, align 8, !tbaa !5
  %1005 = load ptr, ptr %21, align 8, !tbaa !5
  %1006 = load i64, ptr %30, align 8, !tbaa !9
  %1007 = load i64, ptr %30, align 8, !tbaa !9
  %1008 = mul nsw i64 %1006, %1007
  %1009 = add nsw i64 %1008, 1
  %1010 = getelementptr inbounds %struct.complex, ptr %1005, i64 %1009
  %1011 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str, ptr noundef %30, ptr noundef %995, ptr noundef %996, ptr noundef %1002, ptr noundef %1003, ptr noundef %1004, ptr noundef %1010, ptr noundef %30)
  %1012 = load ptr, ptr %16, align 8, !tbaa !5
  %1013 = load ptr, ptr %18, align 8, !tbaa !5
  %1014 = load i64, ptr %30, align 8, !tbaa !9
  %1015 = add nsw i64 %1014, 1
  %1016 = load i64, ptr %22, align 8, !tbaa !9
  %1017 = add nsw i64 %1015, %1016
  %1018 = getelementptr inbounds %struct.complex, ptr %1013, i64 %1017
  %1019 = load ptr, ptr %19, align 8, !tbaa !5
  %1020 = load ptr, ptr %18, align 8, !tbaa !5
  %1021 = load i64, ptr %22, align 8, !tbaa !9
  %1022 = add nsw i64 %1021, 1
  %1023 = getelementptr inbounds %struct.complex, ptr %1020, i64 %1022
  %1024 = load ptr, ptr %19, align 8, !tbaa !5
  %1025 = load ptr, ptr %21, align 8, !tbaa !5
  %1026 = getelementptr inbounds %struct.complex, ptr %1025, i64 1
  %1027 = call i32 @f2c_cgemm(ptr noundef @.str, ptr noundef @.str.2, ptr noundef %30, ptr noundef %30, ptr noundef %1012, ptr noundef %36, ptr noundef %1018, ptr noundef %1019, ptr noundef %1023, ptr noundef %1024, ptr noundef %32, ptr noundef %1026, ptr noundef %30)
  br label %1080

1028:                                             ; preds = %975
  %1029 = load ptr, ptr %16, align 8, !tbaa !5
  %1030 = load ptr, ptr %17, align 8, !tbaa !5
  %1031 = load ptr, ptr %18, align 8, !tbaa !5
  %1032 = load i64, ptr %22, align 8, !tbaa !9
  %1033 = add nsw i64 %1032, 1
  %1034 = getelementptr inbounds %struct.complex, ptr %1031, i64 %1033
  %1035 = load ptr, ptr %19, align 8, !tbaa !5
  %1036 = load ptr, ptr %20, align 8, !tbaa !5
  %1037 = load ptr, ptr %21, align 8, !tbaa !5
  %1038 = load i64, ptr %30, align 8, !tbaa !9
  %1039 = load i64, ptr %30, align 8, !tbaa !9
  %1040 = add nsw i64 %1039, 1
  %1041 = mul nsw i64 %1038, %1040
  %1042 = add nsw i64 %1041, 1
  %1043 = getelementptr inbounds %struct.complex, ptr %1037, i64 %1042
  %1044 = call i32 @f2c_cherk(ptr noundef @.str.3, ptr noundef @.str.2, ptr noundef %30, ptr noundef %1029, ptr noundef %1030, ptr noundef %1034, ptr noundef %1035, ptr noundef %1036, ptr noundef %1043, ptr noundef %30)
  %1045 = load ptr, ptr %16, align 8, !tbaa !5
  %1046 = load ptr, ptr %17, align 8, !tbaa !5
  %1047 = load ptr, ptr %18, align 8, !tbaa !5
  %1048 = load i64, ptr %30, align 8, !tbaa !9
  %1049 = add nsw i64 %1048, 1
  %1050 = load i64, ptr %22, align 8, !tbaa !9
  %1051 = mul nsw i64 %1049, %1050
  %1052 = add nsw i64 %1051, 1
  %1053 = getelementptr inbounds %struct.complex, ptr %1047, i64 %1052
  %1054 = load ptr, ptr %19, align 8, !tbaa !5
  %1055 = load ptr, ptr %20, align 8, !tbaa !5
  %1056 = load ptr, ptr %21, align 8, !tbaa !5
  %1057 = load i64, ptr %30, align 8, !tbaa !9
  %1058 = load i64, ptr %30, align 8, !tbaa !9
  %1059 = mul nsw i64 %1057, %1058
  %1060 = add nsw i64 %1059, 1
  %1061 = getelementptr inbounds %struct.complex, ptr %1056, i64 %1060
  %1062 = call i32 @f2c_cherk(ptr noundef @.str.1, ptr noundef @.str.2, ptr noundef %30, ptr noundef %1045, ptr noundef %1046, ptr noundef %1053, ptr noundef %1054, ptr noundef %1055, ptr noundef %1061, ptr noundef %30)
  %1063 = load ptr, ptr %16, align 8, !tbaa !5
  %1064 = load ptr, ptr %18, align 8, !tbaa !5
  %1065 = load i64, ptr %30, align 8, !tbaa !9
  %1066 = add nsw i64 %1065, 1
  %1067 = load i64, ptr %22, align 8, !tbaa !9
  %1068 = mul nsw i64 %1066, %1067
  %1069 = add nsw i64 %1068, 1
  %1070 = getelementptr inbounds %struct.complex, ptr %1064, i64 %1069
  %1071 = load ptr, ptr %19, align 8, !tbaa !5
  %1072 = load ptr, ptr %18, align 8, !tbaa !5
  %1073 = load i64, ptr %22, align 8, !tbaa !9
  %1074 = add nsw i64 %1073, 1
  %1075 = getelementptr inbounds %struct.complex, ptr %1072, i64 %1074
  %1076 = load ptr, ptr %19, align 8, !tbaa !5
  %1077 = load ptr, ptr %21, align 8, !tbaa !5
  %1078 = getelementptr inbounds %struct.complex, ptr %1077, i64 1
  %1079 = call i32 @f2c_cgemm(ptr noundef @.str.2, ptr noundef @.str, ptr noundef %30, ptr noundef %30, ptr noundef %1063, ptr noundef %36, ptr noundef %1070, ptr noundef %1071, ptr noundef %1075, ptr noundef %1076, ptr noundef %32, ptr noundef %1078, ptr noundef %30)
  br label %1080

1080:                                             ; preds = %1028, %978
  br label %1081

1081:                                             ; preds = %1080, %974
  br label %1082

1082:                                             ; preds = %1081, %869
  br label %1083

1083:                                             ; preds = %1082, %638
  store i32 0, ptr %11, align 4
  store i32 1, ptr %39, align 4
  br label %1084

1084:                                             ; preds = %1083, %172, %138, %118
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #3
  %1085 = load i32, ptr %11, align 4
  ret i32 %1085
}

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

declare i64 @lsame_(ptr noundef, ptr noundef) #2

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

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

declare i32 @f2c_cgemm(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"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { 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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!14, !12, i64 0}
!14 = !{!"", !12, i64 0, !12, i64 4}
!15 = !{!14, !12, i64 4}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}


; 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 [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [7 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @chfrk_(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) local_unnamed_addr #0 {
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca %struct.complex, align 4
  %16 = alloca %struct.complex, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  %17 = load i64, ptr %7, align 8, !tbaa !5
  %18 = xor i64 %17, -1
  %19 = getelementptr inbounds %struct.complex, ptr %6, i64 %18
  %20 = getelementptr inbounds i8, ptr %9, i64 -8
  %21 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %22 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  %23 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #5
  %.not = icmp eq i64 %23, 0
  %. = select i1 %.not, ptr %4, ptr %3
  %.0444 = load i64, ptr %., align 8, !tbaa !5
  %.not447 = icmp eq i64 %21, 0
  br i1 %.not447, label %24, label %26

24:                                               ; preds = %10
  %25 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #5
  %.not448 = icmp eq i64 %25, 0
  br i1 %.not448, label %.thread, label %26

26:                                               ; preds = %24, %10
  %.not449 = icmp eq i64 %22, 0
  br i1 %.not449, label %27, label %29

27:                                               ; preds = %26
  %28 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #5
  %.not450 = icmp eq i64 %28, 0
  br i1 %.not450, label %.thread, label %29

29:                                               ; preds = %27, %26
  br i1 %.not, label %30, label %32

30:                                               ; preds = %29
  %31 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.2) #5
  %.not451 = icmp eq i64 %31, 0
  br i1 %.not451, label %.thread, label %32

32:                                               ; preds = %30, %29
  %33 = load i64, ptr %3, align 8, !tbaa !5
  %34 = icmp slt i64 %33, 0
  br i1 %34, label %.thread, label %35

35:                                               ; preds = %32
  %36 = load i64, ptr %4, align 8, !tbaa !5
  %37 = icmp slt i64 %36, 0
  br i1 %37, label %.thread, label %38

38:                                               ; preds = %35
  %39 = load i64, ptr %7, align 8, !tbaa !5
  %40 = tail call i64 @llvm.smax.i64(i64 %.0444, i64 1)
  %.not474 = icmp slt i64 %39, %40
  br i1 %.not474, label %.thread, label %42

.thread:                                          ; preds = %35, %32, %30, %27, %24, %38
  %.0445.neg463 = phi i64 [ 8, %38 ], [ 5, %35 ], [ 4, %32 ], [ 3, %30 ], [ 2, %27 ], [ 1, %24 ]
  store i64 %.0445.neg463, ptr %11, align 8, !tbaa !5
  %41 = call i32 @xerbla_(ptr noundef nonnull @.str.4, ptr noundef nonnull %11) #5
  br label %.loopexit

42:                                               ; preds = %38
  %43 = icmp eq i64 %33, 0
  br i1 %43, label %.loopexit, label %44

44:                                               ; preds = %42
  %45 = load float, ptr %5, align 4, !tbaa !9
  %46 = fcmp oeq float %45, 0.000000e+00
  br i1 %46, label %50, label %47

47:                                               ; preds = %44
  %48 = icmp eq i64 %36, 0
  %.pre = load float, ptr %8, align 4, !tbaa !9
  %49 = fcmp oeq float %.pre, 1.000000e+00
  %or.cond = select i1 %48, i1 %49, i1 false
  br i1 %or.cond, label %.loopexit, label %.thread464

50:                                               ; preds = %44
  %51 = load float, ptr %8, align 4, !tbaa !9
  %52 = fcmp oeq float %51, 1.000000e+00
  br i1 %52, label %.loopexit, label %53

53:                                               ; preds = %50
  %54 = fcmp oeq float %51, 0.000000e+00
  br i1 %54, label %.lr.ph.preheader, label %.thread464

.lr.ph.preheader:                                 ; preds = %53
  %55 = add nuw nsw i64 %33, 1
  %56 = mul nuw nsw i64 %55, %33
  %57 = shl nuw i64 %56, 2
  %58 = and i64 %57, -8
  tail call void @llvm.memset.p0.i64(ptr align 4 %9, i8 0, i64 %58, i1 false), !tbaa !9
  br label %.loopexit

.thread464:                                       ; preds = %47, %53
  %59 = phi float [ %.pre, %47 ], [ %51, %53 ]
  store float %45, ptr %16, align 4, !tbaa !11
  %60 = getelementptr inbounds i8, ptr %16, i64 4
  store float 0.000000e+00, ptr %60, align 4, !tbaa !13
  store float %59, ptr %15, align 4, !tbaa !11
  %61 = getelementptr inbounds i8, ptr %15, i64 4
  store float 0.000000e+00, ptr %61, align 4, !tbaa !13
  %62 = and i64 %33, 1
  %63 = icmp eq i64 %62, 0
  %64 = lshr i64 %33, 1
  br i1 %63, label %183, label %65

65:                                               ; preds = %.thread464
  %66 = sub nsw i64 %33, %64
  br i1 %.not449, label %.thread469, label %67

67:                                               ; preds = %65
  store i64 %64, ptr %13, align 8, !tbaa !5
  store i64 %66, ptr %12, align 8, !tbaa !5
  br i1 %.not447, label %124, label %68

.thread469:                                       ; preds = %65
  store i64 %64, ptr %12, align 8, !tbaa !5
  store i64 %66, ptr %13, align 8, !tbaa !5
  br i1 %.not447, label %.thread472, label %.thread470

68:                                               ; preds = %67
  br i1 %.not, label %80, label %69

69:                                               ; preds = %68
  %70 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %3) #5
  %71 = load i64, ptr %12, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.complex, ptr %6, i64 %71
  %73 = load i64, ptr %3, align 8, !tbaa !5
  %74 = getelementptr %struct.complex, ptr %9, i64 %73
  %75 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %72, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %74, ptr noundef nonnull %3) #5
  %76 = load i64, ptr %12, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.complex, ptr %6, i64 %76
  %78 = getelementptr %struct.complex, ptr %9, i64 %76
  %79 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %77, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %78, ptr noundef nonnull %3) #5
  br label %.loopexit

80:                                               ; preds = %68
  %81 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %3) #5
  %82 = load i64, ptr %12, align 8, !tbaa !5
  %83 = add nsw i64 %82, 1
  %84 = mul nsw i64 %83, %17
  %85 = getelementptr %struct.complex, ptr %19, i64 %84
  %86 = getelementptr i8, ptr %85, i64 8
  %87 = load i64, ptr %3, align 8, !tbaa !5
  %88 = getelementptr %struct.complex, ptr %9, i64 %87
  %89 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.2, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %86, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %88, ptr noundef nonnull %3) #5
  %90 = load i64, ptr %12, align 8, !tbaa !5
  %91 = add nsw i64 %90, 1
  %92 = mul nsw i64 %91, %17
  %93 = getelementptr %struct.complex, ptr %19, i64 %92
  %94 = getelementptr i8, ptr %93, i64 8
  %95 = getelementptr %struct.complex, ptr %9, i64 %90
  %96 = call i32 @f2c_cgemm(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %94, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %95, ptr noundef nonnull %3) #5
  br label %.loopexit

.thread470:                                       ; preds = %.thread469
  %97 = getelementptr %struct.complex, ptr %9, i64 %66
  br i1 %.not, label %110, label %98

98:                                               ; preds = %.thread470
  %99 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %97, ptr noundef nonnull %3) #5
  %100 = load i64, ptr %13, align 8, !tbaa !5
  %101 = getelementptr %struct.complex, ptr %19, i64 %100
  %102 = getelementptr %struct.complex, ptr %101, i64 %17
  %103 = load i64, ptr %12, align 8, !tbaa !5
  %104 = getelementptr %struct.complex, ptr %9, i64 %103
  %105 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %102, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %104, ptr noundef nonnull %3) #5
  %106 = load i64, ptr %13, align 8, !tbaa !5
  %107 = getelementptr %struct.complex, ptr %19, i64 %106
  %108 = getelementptr %struct.complex, ptr %107, i64 %17
  %109 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %108, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %9, ptr noundef nonnull %3) #5
  br label %.loopexit

110:                                              ; preds = %.thread470
  %111 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %97, ptr noundef nonnull %3) #5
  %112 = load i64, ptr %13, align 8, !tbaa !5
  %113 = mul nsw i64 %112, %17
  %114 = getelementptr %struct.complex, ptr %19, i64 %113
  %115 = getelementptr i8, ptr %114, i64 8
  %116 = load i64, ptr %12, align 8, !tbaa !5
  %117 = getelementptr %struct.complex, ptr %9, i64 %116
  %118 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.2, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %115, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %117, ptr noundef nonnull %3) #5
  %119 = load i64, ptr %13, align 8, !tbaa !5
  %120 = mul nsw i64 %119, %17
  %121 = getelementptr %struct.complex, ptr %19, i64 %120
  %122 = getelementptr i8, ptr %121, i64 8
  %123 = call i32 @f2c_cgemm(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %122, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %9, ptr noundef nonnull %3) #5
  br label %.loopexit

124:                                              ; preds = %67
  br i1 %.not, label %136, label %125

125:                                              ; preds = %124
  %126 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %12) #5
  %127 = load i64, ptr %12, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.complex, ptr %6, i64 %127
  %129 = getelementptr inbounds i8, ptr %9, i64 8
  %130 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %128, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %129, ptr noundef nonnull %12) #5
  %131 = load i64, ptr %12, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.complex, ptr %6, i64 %131
  %133 = mul nsw i64 %131, %131
  %134 = getelementptr %struct.complex, ptr %9, i64 %133
  %135 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %132, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %134, ptr noundef nonnull %12) #5
  br label %.loopexit

136:                                              ; preds = %124
  %137 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.2, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %12) #5
  %138 = load i64, ptr %12, align 8, !tbaa !5
  %139 = add nsw i64 %138, 1
  %140 = mul nsw i64 %139, %17
  %141 = getelementptr %struct.complex, ptr %19, i64 %140
  %142 = getelementptr i8, ptr %141, i64 8
  %143 = getelementptr inbounds i8, ptr %9, i64 8
  %144 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %142, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %143, ptr noundef nonnull %12) #5
  %145 = load i64, ptr %12, align 8, !tbaa !5
  %146 = add nsw i64 %145, 1
  %147 = mul nsw i64 %146, %17
  %148 = getelementptr %struct.complex, ptr %19, i64 %147
  %149 = getelementptr i8, ptr %148, i64 8
  %150 = mul nsw i64 %145, %145
  %151 = getelementptr %struct.complex, ptr %9, i64 %150
  %152 = call i32 @f2c_cgemm(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %149, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %151, ptr noundef nonnull %12) #5
  br label %.loopexit

.thread472:                                       ; preds = %.thread469
  %153 = mul nsw i64 %66, %66
  %154 = getelementptr %struct.complex, ptr %9, i64 %153
  br i1 %.not, label %166, label %155

155:                                              ; preds = %.thread472
  %156 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %154, ptr noundef nonnull %13) #5
  %157 = load i64, ptr %12, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.complex, ptr %6, i64 %157
  %159 = load i64, ptr %13, align 8, !tbaa !5
  %160 = mul nsw i64 %159, %157
  %161 = getelementptr %struct.complex, ptr %9, i64 %160
  %162 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %158, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %161, ptr noundef nonnull %13) #5
  %163 = load i64, ptr %12, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.complex, ptr %6, i64 %163
  %165 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %164, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %9, ptr noundef nonnull %13) #5
  br label %.loopexit

166:                                              ; preds = %.thread472
  %167 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.2, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %154, ptr noundef nonnull %13) #5
  %168 = load i64, ptr %12, align 8, !tbaa !5
  %169 = add nsw i64 %168, 1
  %170 = mul nsw i64 %169, %17
  %171 = getelementptr %struct.complex, ptr %19, i64 %170
  %172 = getelementptr i8, ptr %171, i64 8
  %173 = load i64, ptr %13, align 8, !tbaa !5
  %174 = mul nsw i64 %173, %168
  %175 = getelementptr %struct.complex, ptr %9, i64 %174
  %176 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %13, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %172, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %175, ptr noundef nonnull %13) #5
  %177 = load i64, ptr %12, align 8, !tbaa !5
  %178 = add nsw i64 %177, 1
  %179 = mul nsw i64 %178, %17
  %180 = getelementptr %struct.complex, ptr %19, i64 %179
  %181 = getelementptr i8, ptr %180, i64 8
  %182 = call i32 @f2c_cgemm(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str, ptr noundef nonnull %13, ptr noundef nonnull %12, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %181, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %9, ptr noundef nonnull %13) #5
  br label %.loopexit

183:                                              ; preds = %.thread464
  store i64 %64, ptr %14, align 8, !tbaa !5
  br i1 %.not447, label %257, label %184

184:                                              ; preds = %183
  %185 = or disjoint i64 %33, 1
  store i64 %185, ptr %11, align 8, !tbaa !5
  br i1 %.not449, label %222, label %186

186:                                              ; preds = %184
  %187 = getelementptr inbounds i8, ptr %9, i64 8
  br i1 %.not, label %202, label %188

188:                                              ; preds = %186
  %189 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %187, ptr noundef nonnull %11) #5
  %190 = load i64, ptr %3, align 8, !tbaa !5
  %191 = add nsw i64 %190, 1
  store i64 %191, ptr %11, align 8, !tbaa !5
  %192 = load i64, ptr %14, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.complex, ptr %6, i64 %192
  %194 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %193, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %11) #5
  %195 = load i64, ptr %3, align 8, !tbaa !5
  %196 = add nsw i64 %195, 1
  store i64 %196, ptr %11, align 8, !tbaa !5
  %197 = load i64, ptr %14, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.complex, ptr %6, i64 %197
  %199 = getelementptr %struct.complex, ptr %20, i64 %197
  %200 = getelementptr i8, ptr %199, i64 16
  %201 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %198, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %200, ptr noundef nonnull %11) #5
  br label %.loopexit

202:                                              ; preds = %186
  %203 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %187, ptr noundef nonnull %11) #5
  %204 = load i64, ptr %3, align 8, !tbaa !5
  %205 = add nsw i64 %204, 1
  store i64 %205, ptr %11, align 8, !tbaa !5
  %206 = load i64, ptr %14, align 8, !tbaa !5
  %207 = add nsw i64 %206, 1
  %208 = mul nsw i64 %207, %17
  %209 = getelementptr %struct.complex, ptr %19, i64 %208
  %210 = getelementptr i8, ptr %209, i64 8
  %211 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %210, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %11) #5
  %212 = load i64, ptr %3, align 8, !tbaa !5
  %213 = add nsw i64 %212, 1
  store i64 %213, ptr %11, align 8, !tbaa !5
  %214 = load i64, ptr %14, align 8, !tbaa !5
  %215 = add nsw i64 %214, 1
  %216 = mul nsw i64 %215, %17
  %217 = getelementptr %struct.complex, ptr %19, i64 %216
  %218 = getelementptr i8, ptr %217, i64 8
  %219 = getelementptr %struct.complex, ptr %20, i64 %214
  %220 = getelementptr i8, ptr %219, i64 16
  %221 = call i32 @f2c_cgemm(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %218, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %220, ptr noundef nonnull %11) #5
  br label %.loopexit

222:                                              ; preds = %184
  %223 = getelementptr %struct.complex, ptr %20, i64 %64
  %224 = getelementptr i8, ptr %223, i64 16
  br i1 %.not, label %238, label %225

225:                                              ; preds = %222
  %226 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %224, ptr noundef nonnull %11) #5
  %227 = load i64, ptr %3, align 8, !tbaa !5
  %228 = add nsw i64 %227, 1
  store i64 %228, ptr %11, align 8, !tbaa !5
  %229 = load i64, ptr %14, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.complex, ptr %6, i64 %229
  %231 = getelementptr %struct.complex, ptr %9, i64 %229
  %232 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %230, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %231, ptr noundef nonnull %11) #5
  %233 = load i64, ptr %3, align 8, !tbaa !5
  %234 = add nsw i64 %233, 1
  store i64 %234, ptr %11, align 8, !tbaa !5
  %235 = load i64, ptr %14, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.complex, ptr %6, i64 %235
  %237 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %236, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %9, ptr noundef nonnull %11) #5
  br label %.loopexit

238:                                              ; preds = %222
  %239 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %224, ptr noundef nonnull %11) #5
  %240 = load i64, ptr %3, align 8, !tbaa !5
  %241 = add nsw i64 %240, 1
  store i64 %241, ptr %11, align 8, !tbaa !5
  %242 = load i64, ptr %14, align 8, !tbaa !5
  %243 = add nsw i64 %242, 1
  %244 = mul nsw i64 %243, %17
  %245 = getelementptr %struct.complex, ptr %19, i64 %244
  %246 = getelementptr i8, ptr %245, i64 8
  %247 = getelementptr %struct.complex, ptr %9, i64 %242
  %248 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %246, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %247, ptr noundef nonnull %11) #5
  %249 = load i64, ptr %3, align 8, !tbaa !5
  %250 = add nsw i64 %249, 1
  store i64 %250, ptr %11, align 8, !tbaa !5
  %251 = load i64, ptr %14, align 8, !tbaa !5
  %252 = add nsw i64 %251, 1
  %253 = mul nsw i64 %252, %17
  %254 = getelementptr %struct.complex, ptr %19, i64 %253
  %255 = getelementptr i8, ptr %254, i64 8
  %256 = call i32 @f2c_cgemm(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %255, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %9, ptr noundef nonnull %11) #5
  br label %.loopexit

257:                                              ; preds = %183
  br i1 %.not449, label %287, label %258

258:                                              ; preds = %257
  %259 = getelementptr %struct.complex, ptr %9, i64 %64
  br i1 %.not, label %271, label %260

260:                                              ; preds = %258
  %261 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %259, ptr noundef nonnull %14) #5
  %262 = load i64, ptr %14, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.complex, ptr %6, i64 %262
  %264 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %263, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %14) #5
  %265 = load i64, ptr %14, align 8, !tbaa !5
  %266 = add nsw i64 %265, 1
  %267 = getelementptr inbounds %struct.complex, ptr %6, i64 %265
  %268 = mul nsw i64 %266, %265
  %269 = getelementptr %struct.complex, ptr %9, i64 %268
  %270 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %267, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %269, ptr noundef nonnull %14) #5
  br label %.loopexit

271:                                              ; preds = %258
  %272 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %259, ptr noundef nonnull %14) #5
  %273 = load i64, ptr %14, align 8, !tbaa !5
  %274 = add nsw i64 %273, 1
  %275 = mul nsw i64 %274, %17
  %276 = getelementptr %struct.complex, ptr %19, i64 %275
  %277 = getelementptr i8, ptr %276, i64 8
  %278 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %277, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %9, ptr noundef nonnull %14) #5
  %279 = load i64, ptr %14, align 8, !tbaa !5
  %280 = add nsw i64 %279, 1
  %281 = mul nsw i64 %280, %17
  %282 = getelementptr %struct.complex, ptr %19, i64 %281
  %283 = getelementptr i8, ptr %282, i64 8
  %284 = mul nsw i64 %280, %279
  %285 = getelementptr %struct.complex, ptr %9, i64 %284
  %286 = call i32 @f2c_cgemm(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %283, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %285, ptr noundef nonnull %14) #5
  br label %.loopexit

287:                                              ; preds = %257
  %288 = add nuw nsw i64 %64, 1
  %289 = mul nuw nsw i64 %288, %64
  %290 = getelementptr %struct.complex, ptr %9, i64 %289
  br i1 %.not, label %301, label %291

291:                                              ; preds = %287
  %292 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %290, ptr noundef nonnull %14) #5
  %293 = load i64, ptr %14, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.complex, ptr %6, i64 %293
  %295 = mul nsw i64 %293, %293
  %296 = getelementptr %struct.complex, ptr %9, i64 %295
  %297 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %294, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %296, ptr noundef nonnull %14) #5
  %298 = load i64, ptr %14, align 8, !tbaa !5
  %299 = getelementptr inbounds %struct.complex, ptr %6, i64 %298
  %300 = call i32 @f2c_cgemm(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %299, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %9, ptr noundef nonnull %14) #5
  br label %.loopexit

301:                                              ; preds = %287
  %302 = call i32 @f2c_cherk(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %290, ptr noundef nonnull %14) #5
  %303 = load i64, ptr %14, align 8, !tbaa !5
  %304 = add nsw i64 %303, 1
  %305 = mul nsw i64 %304, %17
  %306 = getelementptr %struct.complex, ptr %19, i64 %305
  %307 = getelementptr i8, ptr %306, i64 8
  %308 = mul nsw i64 %303, %303
  %309 = getelementptr %struct.complex, ptr %9, i64 %308
  %310 = call i32 @f2c_cherk(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %307, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef %309, ptr noundef nonnull %14) #5
  %311 = load i64, ptr %14, align 8, !tbaa !5
  %312 = add nsw i64 %311, 1
  %313 = mul nsw i64 %312, %17
  %314 = getelementptr %struct.complex, ptr %19, i64 %313
  %315 = getelementptr i8, ptr %314, i64 8
  %316 = call i32 @f2c_cgemm(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str, ptr noundef nonnull %14, ptr noundef nonnull %14, ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef %315, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %15, ptr noundef %9, ptr noundef nonnull %14) #5
  br label %.loopexit

.loopexit:                                        ; preds = %47, %.lr.ph.preheader, %136, %125, %166, %155, %80, %69, %110, %98, %271, %260, %301, %291, %202, %188, %238, %225, %42, %50, %.thread
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  ret i32 0
}

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

declare i64 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @f2c_cherk(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 i32 @f2c_cgemm(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) #3

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

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


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass