; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/TESTING/MATGEN (zlatmr)

; 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.doublecomplex = type { double, double }

@.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 [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [7 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @zlatmr_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27) #0 {
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca %struct.doublecomplex, align 8
  %66 = alloca %struct.doublecomplex, align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca double, align 8
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca [1 x double], align 8
  %76 = alloca %struct.doublecomplex, align 8
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca double, align 8
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca %struct.doublecomplex, align 8
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca { double, double }, align 8
  %96 = alloca { double, double }, align 8
  store ptr %0, ptr %29, align 8, !tbaa !5
  store ptr %1, ptr %30, align 8, !tbaa !5
  store ptr %2, ptr %31, align 8, !tbaa !5
  store ptr %3, ptr %32, align 8, !tbaa !5
  store ptr %4, ptr %33, align 8, !tbaa !5
  store ptr %5, ptr %34, align 8, !tbaa !5
  store ptr %6, ptr %35, align 8, !tbaa !5
  store ptr %7, ptr %36, align 8, !tbaa !5
  store ptr %8, ptr %37, align 8, !tbaa !5
  store ptr %9, ptr %38, align 8, !tbaa !5
  store ptr %10, ptr %39, align 8, !tbaa !5
  store ptr %11, ptr %40, align 8, !tbaa !5
  store ptr %12, ptr %41, align 8, !tbaa !5
  store ptr %13, ptr %42, align 8, !tbaa !5
  store ptr %14, ptr %43, align 8, !tbaa !5
  store ptr %15, ptr %44, align 8, !tbaa !5
  store ptr %16, ptr %45, align 8, !tbaa !5
  store ptr %17, ptr %46, align 8, !tbaa !5
  store ptr %18, ptr %47, align 8, !tbaa !5
  store ptr %19, ptr %48, align 8, !tbaa !5
  store ptr %20, ptr %49, align 8, !tbaa !5
  store ptr %21, ptr %50, align 8, !tbaa !5
  store ptr %22, ptr %51, align 8, !tbaa !5
  store ptr %23, ptr %52, align 8, !tbaa !5
  store ptr %24, ptr %53, align 8, !tbaa !5
  store ptr %25, ptr %54, align 8, !tbaa !5
  store ptr %26, ptr %55, align 8, !tbaa !5
  store ptr %27, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %65) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %76) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr %86) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #6
  %97 = load ptr, ptr %32, align 8, !tbaa !5
  %98 = getelementptr inbounds i32, ptr %97, i32 -1
  store ptr %98, ptr %32, align 8, !tbaa !5
  %99 = load ptr, ptr %34, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.doublecomplex, ptr %99, i32 -1
  store ptr %100, ptr %34, align 8, !tbaa !5
  %101 = load ptr, ptr %40, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.doublecomplex, ptr %101, i32 -1
  store ptr %102, ptr %40, align 8, !tbaa !5
  %103 = load ptr, ptr %43, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.doublecomplex, ptr %103, i32 -1
  store ptr %104, ptr %43, align 8, !tbaa !5
  %105 = load ptr, ptr %47, align 8, !tbaa !5
  %106 = getelementptr inbounds i32, ptr %105, i32 -1
  store ptr %106, ptr %47, align 8, !tbaa !5
  %107 = load ptr, ptr %54, align 8, !tbaa !5
  %108 = load i32, ptr %107, align 4, !tbaa !9
  store i32 %108, ptr %57, align 4, !tbaa !9
  %109 = load i32, ptr %57, align 4, !tbaa !9
  %110 = mul nsw i32 %109, 1
  %111 = add nsw i32 1, %110
  store i32 %111, ptr %58, align 4, !tbaa !9
  %112 = load i32, ptr %58, align 4, !tbaa !9
  %113 = load ptr, ptr %53, align 8, !tbaa !5
  %114 = sext i32 %112 to i64
  %115 = sub i64 0, %114
  %116 = getelementptr inbounds %struct.doublecomplex, ptr %113, i64 %115
  store ptr %116, ptr %53, align 8, !tbaa !5
  %117 = load ptr, ptr %55, align 8, !tbaa !5
  %118 = getelementptr inbounds i32, ptr %117, i32 -1
  store ptr %118, ptr %55, align 8, !tbaa !5
  %119 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 0, ptr %119, align 4, !tbaa !9
  %120 = load ptr, ptr %29, align 8, !tbaa !5
  %121 = load i32, ptr %120, align 4, !tbaa !9
  %122 = icmp eq i32 %121, 0
  br i1 %122, label %127, label %123

123:                                              ; preds = %28
  %124 = load ptr, ptr %30, align 8, !tbaa !5
  %125 = load i32, ptr %124, align 4, !tbaa !9
  %126 = icmp eq i32 %125, 0
  br i1 %126, label %127, label %128

127:                                              ; preds = %123, %28
  store i32 1, ptr %94, align 4
  br label %4261

128:                                              ; preds = %123
  %129 = load ptr, ptr %31, align 8, !tbaa !5
  %130 = call i32 @lsame_(ptr noundef %129, ptr noundef @.str)
  %131 = icmp ne i32 %130, 0
  br i1 %131, label %132, label %133

132:                                              ; preds = %128
  store i32 1, ptr %78, align 4, !tbaa !9
  br label %152

133:                                              ; preds = %128
  %134 = load ptr, ptr %31, align 8, !tbaa !5
  %135 = call i32 @lsame_(ptr noundef %134, ptr noundef @.str.1)
  %136 = icmp ne i32 %135, 0
  br i1 %136, label %137, label %138

137:                                              ; preds = %133
  store i32 2, ptr %78, align 4, !tbaa !9
  br label %151

138:                                              ; preds = %133
  %139 = load ptr, ptr %31, align 8, !tbaa !5
  %140 = call i32 @lsame_(ptr noundef %139, ptr noundef @.str.2)
  %141 = icmp ne i32 %140, 0
  br i1 %141, label %142, label %143

142:                                              ; preds = %138
  store i32 3, ptr %78, align 4, !tbaa !9
  br label %150

143:                                              ; preds = %138
  %144 = load ptr, ptr %31, align 8, !tbaa !5
  %145 = call i32 @lsame_(ptr noundef %144, ptr noundef @.str.3)
  %146 = icmp ne i32 %145, 0
  br i1 %146, label %147, label %148

147:                                              ; preds = %143
  store i32 4, ptr %78, align 4, !tbaa !9
  br label %149

148:                                              ; preds = %143
  store i32 -1, ptr %78, align 4, !tbaa !9
  br label %149

149:                                              ; preds = %148, %147
  br label %150

150:                                              ; preds = %149, %142
  br label %151

151:                                              ; preds = %150, %137
  br label %152

152:                                              ; preds = %151, %132
  %153 = load ptr, ptr %33, align 8, !tbaa !5
  %154 = call i32 @lsame_(ptr noundef %153, ptr noundef @.str.4)
  %155 = icmp ne i32 %154, 0
  br i1 %155, label %156, label %157

156:                                              ; preds = %152
  store i32 0, ptr %70, align 4, !tbaa !9
  br label %170

157:                                              ; preds = %152
  %158 = load ptr, ptr %33, align 8, !tbaa !5
  %159 = call i32 @lsame_(ptr noundef %158, ptr noundef @.str.2)
  %160 = icmp ne i32 %159, 0
  br i1 %160, label %161, label %162

161:                                              ; preds = %157
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %169

162:                                              ; preds = %157
  %163 = load ptr, ptr %33, align 8, !tbaa !5
  %164 = call i32 @lsame_(ptr noundef %163, ptr noundef @.str.1)
  %165 = icmp ne i32 %164, 0
  br i1 %165, label %166, label %167

166:                                              ; preds = %162
  store i32 2, ptr %70, align 4, !tbaa !9
  br label %168

167:                                              ; preds = %162
  store i32 -1, ptr %70, align 4, !tbaa !9
  br label %168

168:                                              ; preds = %167, %166
  br label %169

169:                                              ; preds = %168, %161
  br label %170

170:                                              ; preds = %169, %156
  %171 = load ptr, ptr %38, align 8, !tbaa !5
  %172 = call i32 @lsame_(ptr noundef %171, ptr noundef @.str.5)
  %173 = icmp ne i32 %172, 0
  br i1 %173, label %174, label %175

174:                                              ; preds = %170
  store i32 0, ptr %90, align 4, !tbaa !9
  br label %182

175:                                              ; preds = %170
  %176 = load ptr, ptr %38, align 8, !tbaa !5
  %177 = call i32 @lsame_(ptr noundef %176, ptr noundef @.str.6)
  %178 = icmp ne i32 %177, 0
  br i1 %178, label %179, label %180

179:                                              ; preds = %175
  store i32 1, ptr %90, align 4, !tbaa !9
  br label %181

180:                                              ; preds = %175
  store i32 -1, ptr %90, align 4, !tbaa !9
  br label %181

181:                                              ; preds = %180, %179
  br label %182

182:                                              ; preds = %181, %174
  %183 = load ptr, ptr %46, align 8, !tbaa !5
  %184 = call i32 @lsame_(ptr noundef %183, ptr noundef @.str.2)
  %185 = icmp ne i32 %184, 0
  br i1 %185, label %186, label %187

186:                                              ; preds = %182
  store i32 0, ptr %91, align 4, !tbaa !9
  br label %248

187:                                              ; preds = %182
  %188 = load ptr, ptr %46, align 8, !tbaa !5
  %189 = call i32 @lsame_(ptr noundef %188, ptr noundef @.str.7)
  %190 = icmp ne i32 %189, 0
  br i1 %190, label %191, label %192

191:                                              ; preds = %187
  store i32 0, ptr %91, align 4, !tbaa !9
  br label %247

192:                                              ; preds = %187
  %193 = load ptr, ptr %46, align 8, !tbaa !5
  %194 = call i32 @lsame_(ptr noundef %193, ptr noundef @.str.8)
  %195 = icmp ne i32 %194, 0
  br i1 %195, label %196, label %199

196:                                              ; preds = %192
  store i32 1, ptr %91, align 4, !tbaa !9
  %197 = load ptr, ptr %29, align 8, !tbaa !5
  %198 = load i32, ptr %197, align 4, !tbaa !9
  store i32 %198, ptr %85, align 4, !tbaa !9
  br label %246

199:                                              ; preds = %192
  %200 = load ptr, ptr %46, align 8, !tbaa !5
  %201 = call i32 @lsame_(ptr noundef %200, ptr noundef @.str.9)
  %202 = icmp ne i32 %201, 0
  br i1 %202, label %203, label %206

203:                                              ; preds = %199
  store i32 2, ptr %91, align 4, !tbaa !9
  %204 = load ptr, ptr %30, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  store i32 %205, ptr %85, align 4, !tbaa !9
  br label %245

206:                                              ; preds = %199
  %207 = load ptr, ptr %46, align 8, !tbaa !5
  %208 = call i32 @lsame_(ptr noundef %207, ptr noundef @.str.10)
  %209 = icmp ne i32 %208, 0
  br i1 %209, label %210, label %224

210:                                              ; preds = %206
  store i32 3, ptr %91, align 4, !tbaa !9
  %211 = load ptr, ptr %30, align 8, !tbaa !5
  %212 = load i32, ptr %211, align 4, !tbaa !9
  %213 = load ptr, ptr %29, align 8, !tbaa !5
  %214 = load i32, ptr %213, align 4, !tbaa !9
  %215 = icmp sle i32 %212, %214
  br i1 %215, label %216, label %219

216:                                              ; preds = %210
  %217 = load ptr, ptr %30, align 8, !tbaa !5
  %218 = load i32, ptr %217, align 4, !tbaa !9
  br label %222

219:                                              ; preds = %210
  %220 = load ptr, ptr %29, align 8, !tbaa !5
  %221 = load i32, ptr %220, align 4, !tbaa !9
  br label %222

222:                                              ; preds = %219, %216
  %223 = phi i32 [ %218, %216 ], [ %221, %219 ]
  store i32 %223, ptr %85, align 4, !tbaa !9
  br label %244

224:                                              ; preds = %206
  %225 = load ptr, ptr %46, align 8, !tbaa !5
  %226 = call i32 @lsame_(ptr noundef %225, ptr noundef @.str.5)
  %227 = icmp ne i32 %226, 0
  br i1 %227, label %228, label %242

228:                                              ; preds = %224
  store i32 3, ptr %91, align 4, !tbaa !9
  %229 = load ptr, ptr %30, align 8, !tbaa !5
  %230 = load i32, ptr %229, align 4, !tbaa !9
  %231 = load ptr, ptr %29, align 8, !tbaa !5
  %232 = load i32, ptr %231, align 4, !tbaa !9
  %233 = icmp sle i32 %230, %232
  br i1 %233, label %234, label %237

234:                                              ; preds = %228
  %235 = load ptr, ptr %30, align 8, !tbaa !5
  %236 = load i32, ptr %235, align 4, !tbaa !9
  br label %240

237:                                              ; preds = %228
  %238 = load ptr, ptr %29, align 8, !tbaa !5
  %239 = load i32, ptr %238, align 4, !tbaa !9
  br label %240

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

242:                                              ; preds = %224
  store i32 -1, ptr %91, align 4, !tbaa !9
  br label %243

243:                                              ; preds = %242, %240
  br label %244

244:                                              ; preds = %243, %222
  br label %245

245:                                              ; preds = %244, %203
  br label %246

246:                                              ; preds = %245, %196
  br label %247

247:                                              ; preds = %246, %191
  br label %248

248:                                              ; preds = %247, %186
  %249 = load ptr, ptr %39, align 8, !tbaa !5
  %250 = call i32 @lsame_(ptr noundef %249, ptr noundef @.str.2)
  %251 = icmp ne i32 %250, 0
  br i1 %251, label %252, label %253

252:                                              ; preds = %248
  store i32 0, ptr %87, align 4, !tbaa !9
  br label %290

253:                                              ; preds = %248
  %254 = load ptr, ptr %39, align 8, !tbaa !5
  %255 = call i32 @lsame_(ptr noundef %254, ptr noundef @.str.8)
  %256 = icmp ne i32 %255, 0
  br i1 %256, label %257, label %258

257:                                              ; preds = %253
  store i32 1, ptr %87, align 4, !tbaa !9
  br label %289

258:                                              ; preds = %253
  %259 = load ptr, ptr %39, align 8, !tbaa !5
  %260 = call i32 @lsame_(ptr noundef %259, ptr noundef @.str.9)
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %262, label %263

262:                                              ; preds = %258
  store i32 2, ptr %87, align 4, !tbaa !9
  br label %288

263:                                              ; preds = %258
  %264 = load ptr, ptr %39, align 8, !tbaa !5
  %265 = call i32 @lsame_(ptr noundef %264, ptr noundef @.str.10)
  %266 = icmp ne i32 %265, 0
  br i1 %266, label %267, label %268

267:                                              ; preds = %263
  store i32 3, ptr %87, align 4, !tbaa !9
  br label %287

268:                                              ; preds = %263
  %269 = load ptr, ptr %39, align 8, !tbaa !5
  %270 = call i32 @lsame_(ptr noundef %269, ptr noundef @.str.11)
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %272, label %273

272:                                              ; preds = %268
  store i32 4, ptr %87, align 4, !tbaa !9
  br label %286

273:                                              ; preds = %268
  %274 = load ptr, ptr %39, align 8, !tbaa !5
  %275 = call i32 @lsame_(ptr noundef %274, ptr noundef @.str.4)
  %276 = icmp ne i32 %275, 0
  br i1 %276, label %277, label %278

277:                                              ; preds = %273
  store i32 5, ptr %87, align 4, !tbaa !9
  br label %285

278:                                              ; preds = %273
  %279 = load ptr, ptr %39, align 8, !tbaa !5
  %280 = call i32 @lsame_(ptr noundef %279, ptr noundef @.str.1)
  %281 = icmp ne i32 %280, 0
  br i1 %281, label %282, label %283

282:                                              ; preds = %278
  store i32 6, ptr %87, align 4, !tbaa !9
  br label %284

283:                                              ; preds = %278
  store i32 -1, ptr %87, align 4, !tbaa !9
  br label %284

284:                                              ; preds = %283, %282
  br label %285

285:                                              ; preds = %284, %277
  br label %286

286:                                              ; preds = %285, %272
  br label %287

287:                                              ; preds = %286, %267
  br label %288

288:                                              ; preds = %287, %262
  br label %289

289:                                              ; preds = %288, %257
  br label %290

290:                                              ; preds = %289, %252
  %291 = load ptr, ptr %52, align 8, !tbaa !5
  %292 = call i32 @lsame_(ptr noundef %291, ptr noundef @.str.2)
  %293 = icmp ne i32 %292, 0
  br i1 %293, label %294, label %295

294:                                              ; preds = %290
  store i32 0, ptr %74, align 4, !tbaa !9
  br label %338

295:                                              ; preds = %290
  %296 = load ptr, ptr %52, align 8, !tbaa !5
  %297 = call i32 @lsame_(ptr noundef %296, ptr noundef @.str)
  %298 = icmp ne i32 %297, 0
  br i1 %298, label %299, label %300

299:                                              ; preds = %295
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %337

300:                                              ; preds = %295
  %301 = load ptr, ptr %52, align 8, !tbaa !5
  %302 = call i32 @lsame_(ptr noundef %301, ptr noundef @.str.8)
  %303 = icmp ne i32 %302, 0
  br i1 %303, label %304, label %305

304:                                              ; preds = %300
  store i32 2, ptr %74, align 4, !tbaa !9
  br label %336

305:                                              ; preds = %300
  %306 = load ptr, ptr %52, align 8, !tbaa !5
  %307 = call i32 @lsame_(ptr noundef %306, ptr noundef @.str.12)
  %308 = icmp ne i32 %307, 0
  br i1 %308, label %309, label %310

309:                                              ; preds = %305
  store i32 3, ptr %74, align 4, !tbaa !9
  br label %335

310:                                              ; preds = %305
  %311 = load ptr, ptr %52, align 8, !tbaa !5
  %312 = call i32 @lsame_(ptr noundef %311, ptr noundef @.str.9)
  %313 = icmp ne i32 %312, 0
  br i1 %313, label %314, label %315

314:                                              ; preds = %310
  store i32 4, ptr %74, align 4, !tbaa !9
  br label %334

315:                                              ; preds = %310
  %316 = load ptr, ptr %52, align 8, !tbaa !5
  %317 = call i32 @lsame_(ptr noundef %316, ptr noundef @.str.10)
  %318 = icmp ne i32 %317, 0
  br i1 %318, label %319, label %320

319:                                              ; preds = %315
  store i32 5, ptr %74, align 4, !tbaa !9
  br label %333

320:                                              ; preds = %315
  %321 = load ptr, ptr %52, align 8, !tbaa !5
  %322 = call i32 @lsame_(ptr noundef %321, ptr noundef @.str.13)
  %323 = icmp ne i32 %322, 0
  br i1 %323, label %324, label %325

324:                                              ; preds = %320
  store i32 6, ptr %74, align 4, !tbaa !9
  br label %332

325:                                              ; preds = %320
  %326 = load ptr, ptr %52, align 8, !tbaa !5
  %327 = call i32 @lsame_(ptr noundef %326, ptr noundef @.str.14)
  %328 = icmp ne i32 %327, 0
  br i1 %328, label %329, label %330

329:                                              ; preds = %325
  store i32 7, ptr %74, align 4, !tbaa !9
  br label %331

330:                                              ; preds = %325
  store i32 -1, ptr %74, align 4, !tbaa !9
  br label %331

331:                                              ; preds = %330, %329
  br label %332

332:                                              ; preds = %331, %324
  br label %333

333:                                              ; preds = %332, %319
  br label %334

334:                                              ; preds = %333, %314
  br label %335

335:                                              ; preds = %334, %309
  br label %336

336:                                              ; preds = %335, %304
  br label %337

337:                                              ; preds = %336, %299
  br label %338

338:                                              ; preds = %337, %294
  %339 = load ptr, ptr %29, align 8, !tbaa !5
  %340 = load i32, ptr %339, align 4, !tbaa !9
  %341 = load ptr, ptr %30, align 8, !tbaa !5
  %342 = load i32, ptr %341, align 4, !tbaa !9
  %343 = icmp sle i32 %340, %342
  br i1 %343, label %344, label %347

344:                                              ; preds = %338
  %345 = load ptr, ptr %29, align 8, !tbaa !5
  %346 = load i32, ptr %345, align 4, !tbaa !9
  br label %350

347:                                              ; preds = %338
  %348 = load ptr, ptr %30, align 8, !tbaa !5
  %349 = load i32, ptr %348, align 4, !tbaa !9
  br label %350

350:                                              ; preds = %347, %344
  %351 = phi i32 [ %346, %344 ], [ %349, %347 ]
  store i32 %351, ptr %80, align 4, !tbaa !9
  %352 = load ptr, ptr %48, align 8, !tbaa !5
  %353 = load i32, ptr %352, align 4, !tbaa !9
  store i32 %353, ptr %59, align 4, !tbaa !9
  %354 = load ptr, ptr %29, align 8, !tbaa !5
  %355 = load i32, ptr %354, align 4, !tbaa !9
  %356 = sub nsw i32 %355, 1
  store i32 %356, ptr %60, align 4, !tbaa !9
  %357 = load i32, ptr %59, align 4, !tbaa !9
  %358 = load i32, ptr %60, align 4, !tbaa !9
  %359 = icmp sle i32 %357, %358
  br i1 %359, label %360, label %362

360:                                              ; preds = %350
  %361 = load i32, ptr %59, align 4, !tbaa !9
  br label %364

362:                                              ; preds = %350
  %363 = load i32, ptr %60, align 4, !tbaa !9
  br label %364

364:                                              ; preds = %362, %360
  %365 = phi i32 [ %361, %360 ], [ %363, %362 ]
  store i32 %365, ptr %92, align 4, !tbaa !9
  %366 = load ptr, ptr %49, align 8, !tbaa !5
  %367 = load i32, ptr %366, align 4, !tbaa !9
  store i32 %367, ptr %59, align 4, !tbaa !9
  %368 = load ptr, ptr %30, align 8, !tbaa !5
  %369 = load i32, ptr %368, align 4, !tbaa !9
  %370 = sub nsw i32 %369, 1
  store i32 %370, ptr %60, align 4, !tbaa !9
  %371 = load i32, ptr %59, align 4, !tbaa !9
  %372 = load i32, ptr %60, align 4, !tbaa !9
  %373 = icmp sle i32 %371, %372
  br i1 %373, label %374, label %376

374:                                              ; preds = %364
  %375 = load i32, ptr %59, align 4, !tbaa !9
  br label %378

376:                                              ; preds = %364
  %377 = load i32, ptr %60, align 4, !tbaa !9
  br label %378

378:                                              ; preds = %376, %374
  %379 = phi i32 [ %375, %374 ], [ %377, %376 ]
  store i32 %379, ptr %93, align 4, !tbaa !9
  store i32 0, ptr %81, align 4, !tbaa !9
  %380 = load i32, ptr %87, align 4, !tbaa !9
  %381 = icmp eq i32 %380, 4
  br i1 %381, label %382, label %416

382:                                              ; preds = %378
  %383 = load ptr, ptr %41, align 8, !tbaa !5
  %384 = load i32, ptr %383, align 4, !tbaa !9
  %385 = icmp eq i32 %384, 0
  br i1 %385, label %386, label %416

386:                                              ; preds = %382
  %387 = load ptr, ptr %29, align 8, !tbaa !5
  %388 = load i32, ptr %387, align 4, !tbaa !9
  store i32 %388, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %389

389:                                              ; preds = %412, %386
  %390 = load i32, ptr %71, align 4, !tbaa !9
  %391 = load i32, ptr %59, align 4, !tbaa !9
  %392 = icmp sle i32 %390, %391
  br i1 %392, label %393, label %415

393:                                              ; preds = %389
  %394 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %394, ptr %60, align 4, !tbaa !9
  %395 = load ptr, ptr %40, align 8, !tbaa !5
  %396 = load i32, ptr %60, align 4, !tbaa !9
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds %struct.doublecomplex, ptr %395, i64 %397
  %399 = getelementptr inbounds %struct.doublecomplex, ptr %398, i32 0, i32 0
  %400 = load double, ptr %399, align 8, !tbaa !11
  %401 = fcmp oeq double %400, 0.000000e+00
  br i1 %401, label %402, label %411

402:                                              ; preds = %393
  %403 = load ptr, ptr %40, align 8, !tbaa !5
  %404 = load i32, ptr %60, align 4, !tbaa !9
  %405 = sext i32 %404 to i64
  %406 = getelementptr inbounds %struct.doublecomplex, ptr %403, i64 %405
  %407 = getelementptr inbounds %struct.doublecomplex, ptr %406, i32 0, i32 1
  %408 = load double, ptr %407, align 8, !tbaa !14
  %409 = fcmp oeq double %408, 0.000000e+00
  br i1 %409, label %410, label %411

410:                                              ; preds = %402
  store i32 1, ptr %81, align 4, !tbaa !9
  br label %411

411:                                              ; preds = %410, %402, %393
  br label %412

412:                                              ; preds = %411
  %413 = load i32, ptr %71, align 4, !tbaa !9
  %414 = add nsw i32 %413, 1
  store i32 %414, ptr %71, align 4, !tbaa !9
  br label %389, !llvm.loop !15

415:                                              ; preds = %389
  br label %416

416:                                              ; preds = %415, %382, %378
  store i32 0, ptr %89, align 4, !tbaa !9
  %417 = load i32, ptr %91, align 4, !tbaa !9
  %418 = icmp sgt i32 %417, 0
  br i1 %418, label %419, label %446

419:                                              ; preds = %416
  %420 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %420, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %421

421:                                              ; preds = %442, %419
  %422 = load i32, ptr %72, align 4, !tbaa !9
  %423 = load i32, ptr %59, align 4, !tbaa !9
  %424 = icmp sle i32 %422, %423
  br i1 %424, label %425, label %445

425:                                              ; preds = %421
  %426 = load ptr, ptr %47, align 8, !tbaa !5
  %427 = load i32, ptr %72, align 4, !tbaa !9
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds i32, ptr %426, i64 %428
  %430 = load i32, ptr %429, align 4, !tbaa !9
  %431 = icmp sle i32 %430, 0
  br i1 %431, label %440, label %432

432:                                              ; preds = %425
  %433 = load ptr, ptr %47, align 8, !tbaa !5
  %434 = load i32, ptr %72, align 4, !tbaa !9
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds i32, ptr %433, i64 %435
  %437 = load i32, ptr %436, align 4, !tbaa !9
  %438 = load i32, ptr %85, align 4, !tbaa !9
  %439 = icmp sgt i32 %437, %438
  br i1 %439, label %440, label %441

440:                                              ; preds = %432, %425
  store i32 1, ptr %89, align 4, !tbaa !9
  br label %441

441:                                              ; preds = %440, %432
  br label %442

442:                                              ; preds = %441
  %443 = load i32, ptr %72, align 4, !tbaa !9
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr %72, align 4, !tbaa !9
  br label %421, !llvm.loop !17

445:                                              ; preds = %421
  br label %446

446:                                              ; preds = %445, %416
  %447 = load ptr, ptr %29, align 8, !tbaa !5
  %448 = load i32, ptr %447, align 4, !tbaa !9
  %449 = icmp slt i32 %448, 0
  br i1 %449, label %450, label %452

450:                                              ; preds = %446
  %451 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -1, ptr %451, align 4, !tbaa !9
  br label %880

452:                                              ; preds = %446
  %453 = load ptr, ptr %29, align 8, !tbaa !5
  %454 = load i32, ptr %453, align 4, !tbaa !9
  %455 = load ptr, ptr %30, align 8, !tbaa !5
  %456 = load i32, ptr %455, align 4, !tbaa !9
  %457 = icmp ne i32 %454, %456
  br i1 %457, label %458, label %466

458:                                              ; preds = %452
  %459 = load i32, ptr %70, align 4, !tbaa !9
  %460 = icmp eq i32 %459, 0
  br i1 %460, label %464, label %461

461:                                              ; preds = %458
  %462 = load i32, ptr %70, align 4, !tbaa !9
  %463 = icmp eq i32 %462, 2
  br i1 %463, label %464, label %466

464:                                              ; preds = %461, %458
  %465 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -1, ptr %465, align 4, !tbaa !9
  br label %879

466:                                              ; preds = %461, %452
  %467 = load ptr, ptr %30, align 8, !tbaa !5
  %468 = load i32, ptr %467, align 4, !tbaa !9
  %469 = icmp slt i32 %468, 0
  br i1 %469, label %470, label %472

470:                                              ; preds = %466
  %471 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -2, ptr %471, align 4, !tbaa !9
  br label %878

472:                                              ; preds = %466
  %473 = load i32, ptr %78, align 4, !tbaa !9
  %474 = icmp eq i32 %473, -1
  br i1 %474, label %475, label %477

475:                                              ; preds = %472
  %476 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -3, ptr %476, align 4, !tbaa !9
  br label %877

477:                                              ; preds = %472
  %478 = load i32, ptr %70, align 4, !tbaa !9
  %479 = icmp eq i32 %478, -1
  br i1 %479, label %480, label %482

480:                                              ; preds = %477
  %481 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -5, ptr %481, align 4, !tbaa !9
  br label %876

482:                                              ; preds = %477
  %483 = load ptr, ptr %35, align 8, !tbaa !5
  %484 = load i32, ptr %483, align 4, !tbaa !9
  %485 = icmp slt i32 %484, -6
  br i1 %485, label %490, label %486

486:                                              ; preds = %482
  %487 = load ptr, ptr %35, align 8, !tbaa !5
  %488 = load i32, ptr %487, align 4, !tbaa !9
  %489 = icmp sgt i32 %488, 6
  br i1 %489, label %490, label %492

490:                                              ; preds = %486, %482
  %491 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -7, ptr %491, align 4, !tbaa !9
  br label %875

492:                                              ; preds = %486
  %493 = load ptr, ptr %35, align 8, !tbaa !5
  %494 = load i32, ptr %493, align 4, !tbaa !9
  %495 = icmp ne i32 %494, -6
  br i1 %495, label %496, label %510

496:                                              ; preds = %492
  %497 = load ptr, ptr %35, align 8, !tbaa !5
  %498 = load i32, ptr %497, align 4, !tbaa !9
  %499 = icmp ne i32 %498, 0
  br i1 %499, label %500, label %510

500:                                              ; preds = %496
  %501 = load ptr, ptr %35, align 8, !tbaa !5
  %502 = load i32, ptr %501, align 4, !tbaa !9
  %503 = icmp ne i32 %502, 6
  br i1 %503, label %504, label %510

504:                                              ; preds = %500
  %505 = load ptr, ptr %36, align 8, !tbaa !5
  %506 = load double, ptr %505, align 8, !tbaa !18
  %507 = fcmp olt double %506, 1.000000e+00
  br i1 %507, label %508, label %510

508:                                              ; preds = %504
  %509 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -8, ptr %509, align 4, !tbaa !9
  br label %874

510:                                              ; preds = %504, %500, %496, %492
  %511 = load ptr, ptr %35, align 8, !tbaa !5
  %512 = load i32, ptr %511, align 4, !tbaa !9
  %513 = icmp ne i32 %512, -6
  br i1 %513, label %514, label %527

514:                                              ; preds = %510
  %515 = load ptr, ptr %35, align 8, !tbaa !5
  %516 = load i32, ptr %515, align 4, !tbaa !9
  %517 = icmp ne i32 %516, 0
  br i1 %517, label %518, label %527

518:                                              ; preds = %514
  %519 = load ptr, ptr %35, align 8, !tbaa !5
  %520 = load i32, ptr %519, align 4, !tbaa !9
  %521 = icmp ne i32 %520, 6
  br i1 %521, label %522, label %527

522:                                              ; preds = %518
  %523 = load i32, ptr %90, align 4, !tbaa !9
  %524 = icmp eq i32 %523, -1
  br i1 %524, label %525, label %527

525:                                              ; preds = %522
  %526 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -10, ptr %526, align 4, !tbaa !9
  br label %873

527:                                              ; preds = %522, %518, %514, %510
  %528 = load i32, ptr %87, align 4, !tbaa !9
  %529 = icmp eq i32 %528, -1
  br i1 %529, label %575, label %530

530:                                              ; preds = %527
  %531 = load i32, ptr %87, align 4, !tbaa !9
  %532 = icmp eq i32 %531, 4
  br i1 %532, label %533, label %539

533:                                              ; preds = %530
  %534 = load ptr, ptr %29, align 8, !tbaa !5
  %535 = load i32, ptr %534, align 4, !tbaa !9
  %536 = load ptr, ptr %30, align 8, !tbaa !5
  %537 = load i32, ptr %536, align 4, !tbaa !9
  %538 = icmp ne i32 %535, %537
  br i1 %538, label %575, label %539

539:                                              ; preds = %533, %530
  %540 = load i32, ptr %87, align 4, !tbaa !9
  %541 = icmp eq i32 %540, 1
  br i1 %541, label %554, label %542

542:                                              ; preds = %539
  %543 = load i32, ptr %87, align 4, !tbaa !9
  %544 = icmp eq i32 %543, 2
  br i1 %544, label %554, label %545

545:                                              ; preds = %542
  %546 = load i32, ptr %87, align 4, !tbaa !9
  %547 = icmp eq i32 %546, 3
  br i1 %547, label %554, label %548

548:                                              ; preds = %545
  %549 = load i32, ptr %87, align 4, !tbaa !9
  %550 = icmp eq i32 %549, 4
  br i1 %550, label %554, label %551

551:                                              ; preds = %548
  %552 = load i32, ptr %87, align 4, !tbaa !9
  %553 = icmp eq i32 %552, 6
  br i1 %553, label %554, label %557

554:                                              ; preds = %551, %548, %545, %542, %539
  %555 = load i32, ptr %70, align 4, !tbaa !9
  %556 = icmp eq i32 %555, 0
  br i1 %556, label %575, label %557

557:                                              ; preds = %554, %551
  %558 = load i32, ptr %87, align 4, !tbaa !9
  %559 = icmp eq i32 %558, 1
  br i1 %559, label %572, label %560

560:                                              ; preds = %557
  %561 = load i32, ptr %87, align 4, !tbaa !9
  %562 = icmp eq i32 %561, 2
  br i1 %562, label %572, label %563

563:                                              ; preds = %560
  %564 = load i32, ptr %87, align 4, !tbaa !9
  %565 = icmp eq i32 %564, 3
  br i1 %565, label %572, label %566

566:                                              ; preds = %563
  %567 = load i32, ptr %87, align 4, !tbaa !9
  %568 = icmp eq i32 %567, 4
  br i1 %568, label %572, label %569

569:                                              ; preds = %566
  %570 = load i32, ptr %87, align 4, !tbaa !9
  %571 = icmp eq i32 %570, 5
  br i1 %571, label %572, label %577

572:                                              ; preds = %569, %566, %563, %560, %557
  %573 = load i32, ptr %70, align 4, !tbaa !9
  %574 = icmp eq i32 %573, 2
  br i1 %574, label %575, label %577

575:                                              ; preds = %572, %554, %533, %527
  %576 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -11, ptr %576, align 4, !tbaa !9
  br label %872

577:                                              ; preds = %572, %569
  %578 = load i32, ptr %87, align 4, !tbaa !9
  %579 = icmp eq i32 %578, 4
  br i1 %579, label %580, label %585

580:                                              ; preds = %577
  %581 = load i32, ptr %81, align 4, !tbaa !9
  %582 = icmp ne i32 %581, 0
  br i1 %582, label %583, label %585

583:                                              ; preds = %580
  %584 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -12, ptr %584, align 4, !tbaa !9
  br label %871

585:                                              ; preds = %580, %577
  %586 = load i32, ptr %87, align 4, !tbaa !9
  %587 = icmp eq i32 %586, 1
  br i1 %587, label %600, label %588

588:                                              ; preds = %585
  %589 = load i32, ptr %87, align 4, !tbaa !9
  %590 = icmp eq i32 %589, 3
  br i1 %590, label %600, label %591

591:                                              ; preds = %588
  %592 = load i32, ptr %87, align 4, !tbaa !9
  %593 = icmp eq i32 %592, 4
  br i1 %593, label %600, label %594

594:                                              ; preds = %591
  %595 = load i32, ptr %87, align 4, !tbaa !9
  %596 = icmp eq i32 %595, 5
  br i1 %596, label %600, label %597

597:                                              ; preds = %594
  %598 = load i32, ptr %87, align 4, !tbaa !9
  %599 = icmp eq i32 %598, 6
  br i1 %599, label %600, label %610

600:                                              ; preds = %597, %594, %591, %588, %585
  %601 = load ptr, ptr %41, align 8, !tbaa !5
  %602 = load i32, ptr %601, align 4, !tbaa !9
  %603 = icmp slt i32 %602, -6
  br i1 %603, label %608, label %604

604:                                              ; preds = %600
  %605 = load ptr, ptr %41, align 8, !tbaa !5
  %606 = load i32, ptr %605, align 4, !tbaa !9
  %607 = icmp sgt i32 %606, 6
  br i1 %607, label %608, label %610

608:                                              ; preds = %604, %600
  %609 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -13, ptr %609, align 4, !tbaa !9
  br label %870

610:                                              ; preds = %604, %597
  %611 = load i32, ptr %87, align 4, !tbaa !9
  %612 = icmp eq i32 %611, 1
  br i1 %612, label %625, label %613

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

616:                                              ; preds = %613
  %617 = load i32, ptr %87, align 4, !tbaa !9
  %618 = icmp eq i32 %617, 4
  br i1 %618, label %625, label %619

619:                                              ; preds = %616
  %620 = load i32, ptr %87, align 4, !tbaa !9
  %621 = icmp eq i32 %620, 5
  br i1 %621, label %625, label %622

622:                                              ; preds = %619
  %623 = load i32, ptr %87, align 4, !tbaa !9
  %624 = icmp eq i32 %623, 6
  br i1 %624, label %625, label %643

625:                                              ; preds = %622, %619, %616, %613, %610
  %626 = load ptr, ptr %41, align 8, !tbaa !5
  %627 = load i32, ptr %626, align 4, !tbaa !9
  %628 = icmp ne i32 %627, -6
  br i1 %628, label %629, label %643

629:                                              ; preds = %625
  %630 = load ptr, ptr %41, align 8, !tbaa !5
  %631 = load i32, ptr %630, align 4, !tbaa !9
  %632 = icmp ne i32 %631, 0
  br i1 %632, label %633, label %643

633:                                              ; preds = %629
  %634 = load ptr, ptr %41, align 8, !tbaa !5
  %635 = load i32, ptr %634, align 4, !tbaa !9
  %636 = icmp ne i32 %635, 6
  br i1 %636, label %637, label %643

637:                                              ; preds = %633
  %638 = load ptr, ptr %42, align 8, !tbaa !5
  %639 = load double, ptr %638, align 8, !tbaa !18
  %640 = fcmp olt double %639, 1.000000e+00
  br i1 %640, label %641, label %643

641:                                              ; preds = %637
  %642 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -14, ptr %642, align 4, !tbaa !9
  br label %869

643:                                              ; preds = %637, %633, %629, %625, %622
  %644 = load i32, ptr %87, align 4, !tbaa !9
  %645 = icmp eq i32 %644, 2
  br i1 %645, label %649, label %646

646:                                              ; preds = %643
  %647 = load i32, ptr %87, align 4, !tbaa !9
  %648 = icmp eq i32 %647, 3
  br i1 %648, label %649, label %659

649:                                              ; preds = %646, %643
  %650 = load ptr, ptr %44, align 8, !tbaa !5
  %651 = load i32, ptr %650, align 4, !tbaa !9
  %652 = icmp slt i32 %651, -6
  br i1 %652, label %657, label %653

653:                                              ; preds = %649
  %654 = load ptr, ptr %44, align 8, !tbaa !5
  %655 = load i32, ptr %654, align 4, !tbaa !9
  %656 = icmp sgt i32 %655, 6
  br i1 %656, label %657, label %659

657:                                              ; preds = %653, %649
  %658 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -16, ptr %658, align 4, !tbaa !9
  br label %868

659:                                              ; preds = %653, %646
  %660 = load i32, ptr %87, align 4, !tbaa !9
  %661 = icmp eq i32 %660, 2
  br i1 %661, label %665, label %662

662:                                              ; preds = %659
  %663 = load i32, ptr %87, align 4, !tbaa !9
  %664 = icmp eq i32 %663, 3
  br i1 %664, label %665, label %683

665:                                              ; preds = %662, %659
  %666 = load ptr, ptr %44, align 8, !tbaa !5
  %667 = load i32, ptr %666, align 4, !tbaa !9
  %668 = icmp ne i32 %667, -6
  br i1 %668, label %669, label %683

669:                                              ; preds = %665
  %670 = load ptr, ptr %44, align 8, !tbaa !5
  %671 = load i32, ptr %670, align 4, !tbaa !9
  %672 = icmp ne i32 %671, 0
  br i1 %672, label %673, label %683

673:                                              ; preds = %669
  %674 = load ptr, ptr %44, align 8, !tbaa !5
  %675 = load i32, ptr %674, align 4, !tbaa !9
  %676 = icmp ne i32 %675, 6
  br i1 %676, label %677, label %683

677:                                              ; preds = %673
  %678 = load ptr, ptr %45, align 8, !tbaa !5
  %679 = load double, ptr %678, align 8, !tbaa !18
  %680 = fcmp olt double %679, 1.000000e+00
  br i1 %680, label %681, label %683

681:                                              ; preds = %677
  %682 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -17, ptr %682, align 4, !tbaa !9
  br label %867

683:                                              ; preds = %677, %673, %669, %665, %662
  %684 = load i32, ptr %91, align 4, !tbaa !9
  %685 = icmp eq i32 %684, -1
  br i1 %685, label %707, label %686

686:                                              ; preds = %683
  %687 = load i32, ptr %91, align 4, !tbaa !9
  %688 = icmp eq i32 %687, 3
  br i1 %688, label %689, label %695

689:                                              ; preds = %686
  %690 = load ptr, ptr %29, align 8, !tbaa !5
  %691 = load i32, ptr %690, align 4, !tbaa !9
  %692 = load ptr, ptr %30, align 8, !tbaa !5
  %693 = load i32, ptr %692, align 4, !tbaa !9
  %694 = icmp ne i32 %691, %693
  br i1 %694, label %707, label %695

695:                                              ; preds = %689, %686
  %696 = load i32, ptr %91, align 4, !tbaa !9
  %697 = icmp eq i32 %696, 1
  br i1 %697, label %701, label %698

698:                                              ; preds = %695
  %699 = load i32, ptr %91, align 4, !tbaa !9
  %700 = icmp eq i32 %699, 2
  br i1 %700, label %701, label %709

701:                                              ; preds = %698, %695
  %702 = load i32, ptr %70, align 4, !tbaa !9
  %703 = icmp eq i32 %702, 0
  br i1 %703, label %707, label %704

704:                                              ; preds = %701
  %705 = load i32, ptr %70, align 4, !tbaa !9
  %706 = icmp eq i32 %705, 2
  br i1 %706, label %707, label %709

707:                                              ; preds = %704, %701, %689, %683
  %708 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -18, ptr %708, align 4, !tbaa !9
  br label %866

709:                                              ; preds = %704, %698
  %710 = load i32, ptr %91, align 4, !tbaa !9
  %711 = icmp ne i32 %710, 0
  br i1 %711, label %712, label %717

712:                                              ; preds = %709
  %713 = load i32, ptr %89, align 4, !tbaa !9
  %714 = icmp ne i32 %713, 0
  br i1 %714, label %715, label %717

715:                                              ; preds = %712
  %716 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -19, ptr %716, align 4, !tbaa !9
  br label %865

717:                                              ; preds = %712, %709
  %718 = load ptr, ptr %48, align 8, !tbaa !5
  %719 = load i32, ptr %718, align 4, !tbaa !9
  %720 = icmp slt i32 %719, 0
  br i1 %720, label %721, label %723

721:                                              ; preds = %717
  %722 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -20, ptr %722, align 4, !tbaa !9
  br label %864

723:                                              ; preds = %717
  %724 = load ptr, ptr %49, align 8, !tbaa !5
  %725 = load i32, ptr %724, align 4, !tbaa !9
  %726 = icmp slt i32 %725, 0
  br i1 %726, label %739, label %727

727:                                              ; preds = %723
  %728 = load i32, ptr %70, align 4, !tbaa !9
  %729 = icmp eq i32 %728, 0
  br i1 %729, label %733, label %730

730:                                              ; preds = %727
  %731 = load i32, ptr %70, align 4, !tbaa !9
  %732 = icmp eq i32 %731, 2
  br i1 %732, label %733, label %741

733:                                              ; preds = %730, %727
  %734 = load ptr, ptr %48, align 8, !tbaa !5
  %735 = load i32, ptr %734, align 4, !tbaa !9
  %736 = load ptr, ptr %49, align 8, !tbaa !5
  %737 = load i32, ptr %736, align 4, !tbaa !9
  %738 = icmp ne i32 %735, %737
  br i1 %738, label %739, label %741

739:                                              ; preds = %733, %723
  %740 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -21, ptr %740, align 4, !tbaa !9
  br label %863

741:                                              ; preds = %733, %730
  %742 = load ptr, ptr %50, align 8, !tbaa !5
  %743 = load double, ptr %742, align 8, !tbaa !18
  %744 = fcmp olt double %743, 0.000000e+00
  br i1 %744, label %749, label %745

745:                                              ; preds = %741
  %746 = load ptr, ptr %50, align 8, !tbaa !5
  %747 = load double, ptr %746, align 8, !tbaa !18
  %748 = fcmp ogt double %747, 1.000000e+00
  br i1 %748, label %749, label %751

749:                                              ; preds = %745, %741
  %750 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -22, ptr %750, align 4, !tbaa !9
  br label %862

751:                                              ; preds = %745
  %752 = load i32, ptr %74, align 4, !tbaa !9
  %753 = icmp eq i32 %752, -1
  br i1 %753, label %801, label %754

754:                                              ; preds = %751
  %755 = load i32, ptr %74, align 4, !tbaa !9
  %756 = icmp eq i32 %755, 1
  br i1 %756, label %766, label %757

757:                                              ; preds = %754
  %758 = load i32, ptr %74, align 4, !tbaa !9
  %759 = icmp eq i32 %758, 2
  br i1 %759, label %766, label %760

760:                                              ; preds = %757
  %761 = load i32, ptr %74, align 4, !tbaa !9
  %762 = icmp eq i32 %761, 5
  br i1 %762, label %766, label %763

763:                                              ; preds = %760
  %764 = load i32, ptr %74, align 4, !tbaa !9
  %765 = icmp eq i32 %764, 6
  br i1 %765, label %766, label %769

766:                                              ; preds = %763, %760, %757, %754
  %767 = load i32, ptr %70, align 4, !tbaa !9
  %768 = icmp eq i32 %767, 1
  br i1 %768, label %801, label %769

769:                                              ; preds = %766, %763
  %770 = load i32, ptr %74, align 4, !tbaa !9
  %771 = icmp eq i32 %770, 3
  br i1 %771, label %772, label %785

772:                                              ; preds = %769
  %773 = load i32, ptr %70, align 4, !tbaa !9
  %774 = icmp eq i32 %773, 1
  br i1 %774, label %775, label %785

775:                                              ; preds = %772
  %776 = load ptr, ptr %48, align 8, !tbaa !5
  %777 = load i32, ptr %776, align 4, !tbaa !9
  %778 = icmp ne i32 %777, 0
  br i1 %778, label %801, label %779

779:                                              ; preds = %775
  %780 = load ptr, ptr %29, align 8, !tbaa !5
  %781 = load i32, ptr %780, align 4, !tbaa !9
  %782 = load ptr, ptr %30, align 8, !tbaa !5
  %783 = load i32, ptr %782, align 4, !tbaa !9
  %784 = icmp ne i32 %781, %783
  br i1 %784, label %801, label %785

785:                                              ; preds = %779, %772, %769
  %786 = load i32, ptr %74, align 4, !tbaa !9
  %787 = icmp eq i32 %786, 4
  br i1 %787, label %788, label %803

788:                                              ; preds = %785
  %789 = load i32, ptr %70, align 4, !tbaa !9
  %790 = icmp eq i32 %789, 1
  br i1 %790, label %791, label %803

791:                                              ; preds = %788
  %792 = load ptr, ptr %49, align 8, !tbaa !5
  %793 = load i32, ptr %792, align 4, !tbaa !9
  %794 = icmp ne i32 %793, 0
  br i1 %794, label %801, label %795

795:                                              ; preds = %791
  %796 = load ptr, ptr %29, align 8, !tbaa !5
  %797 = load i32, ptr %796, align 4, !tbaa !9
  %798 = load ptr, ptr %30, align 8, !tbaa !5
  %799 = load i32, ptr %798, align 4, !tbaa !9
  %800 = icmp ne i32 %797, %799
  br i1 %800, label %801, label %803

801:                                              ; preds = %795, %791, %779, %775, %766, %751
  %802 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -24, ptr %802, align 4, !tbaa !9
  br label %861

803:                                              ; preds = %795, %788, %785
  %804 = load i32, ptr %74, align 4, !tbaa !9
  %805 = icmp eq i32 %804, 0
  br i1 %805, label %812, label %806

806:                                              ; preds = %803
  %807 = load i32, ptr %74, align 4, !tbaa !9
  %808 = icmp eq i32 %807, 1
  br i1 %808, label %812, label %809

809:                                              ; preds = %806
  %810 = load i32, ptr %74, align 4, !tbaa !9
  %811 = icmp eq i32 %810, 2
  br i1 %811, label %812, label %825

812:                                              ; preds = %809, %806, %803
  %813 = load ptr, ptr %54, align 8, !tbaa !5
  %814 = load i32, ptr %813, align 4, !tbaa !9
  %815 = load ptr, ptr %29, align 8, !tbaa !5
  %816 = load i32, ptr %815, align 4, !tbaa !9
  %817 = icmp sge i32 1, %816
  br i1 %817, label %818, label %819

818:                                              ; preds = %812
  br label %822

819:                                              ; preds = %812
  %820 = load ptr, ptr %29, align 8, !tbaa !5
  %821 = load i32, ptr %820, align 4, !tbaa !9
  br label %822

822:                                              ; preds = %819, %818
  %823 = phi i32 [ 1, %818 ], [ %821, %819 ]
  %824 = icmp slt i32 %814, %823
  br i1 %824, label %858, label %825

825:                                              ; preds = %822, %809
  %826 = load i32, ptr %74, align 4, !tbaa !9
  %827 = icmp eq i32 %826, 3
  br i1 %827, label %831, label %828

828:                                              ; preds = %825
  %829 = load i32, ptr %74, align 4, !tbaa !9
  %830 = icmp eq i32 %829, 4
  br i1 %830, label %831, label %835

831:                                              ; preds = %828, %825
  %832 = load ptr, ptr %54, align 8, !tbaa !5
  %833 = load i32, ptr %832, align 4, !tbaa !9
  %834 = icmp slt i32 %833, 1
  br i1 %834, label %858, label %835

835:                                              ; preds = %831, %828
  %836 = load i32, ptr %74, align 4, !tbaa !9
  %837 = icmp eq i32 %836, 5
  br i1 %837, label %841, label %838

838:                                              ; preds = %835
  %839 = load i32, ptr %74, align 4, !tbaa !9
  %840 = icmp eq i32 %839, 6
  br i1 %840, label %841, label %847

841:                                              ; preds = %838, %835
  %842 = load ptr, ptr %54, align 8, !tbaa !5
  %843 = load i32, ptr %842, align 4, !tbaa !9
  %844 = load i32, ptr %93, align 4, !tbaa !9
  %845 = add nsw i32 %844, 1
  %846 = icmp slt i32 %843, %845
  br i1 %846, label %858, label %847

847:                                              ; preds = %841, %838
  %848 = load i32, ptr %74, align 4, !tbaa !9
  %849 = icmp eq i32 %848, 7
  br i1 %849, label %850, label %860

850:                                              ; preds = %847
  %851 = load ptr, ptr %54, align 8, !tbaa !5
  %852 = load i32, ptr %851, align 4, !tbaa !9
  %853 = load i32, ptr %92, align 4, !tbaa !9
  %854 = load i32, ptr %93, align 4, !tbaa !9
  %855 = add nsw i32 %853, %854
  %856 = add nsw i32 %855, 1
  %857 = icmp slt i32 %852, %856
  br i1 %857, label %858, label %860

858:                                              ; preds = %850, %841, %831, %822
  %859 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 -26, ptr %859, align 4, !tbaa !9
  br label %860

860:                                              ; preds = %858, %850, %847
  br label %861

861:                                              ; preds = %860, %801
  br label %862

862:                                              ; preds = %861, %749
  br label %863

863:                                              ; preds = %862, %739
  br label %864

864:                                              ; preds = %863, %721
  br label %865

865:                                              ; preds = %864, %715
  br label %866

866:                                              ; preds = %865, %707
  br label %867

867:                                              ; preds = %866, %681
  br label %868

868:                                              ; preds = %867, %657
  br label %869

869:                                              ; preds = %868, %641
  br label %870

870:                                              ; preds = %869, %608
  br label %871

871:                                              ; preds = %870, %583
  br label %872

872:                                              ; preds = %871, %575
  br label %873

873:                                              ; preds = %872, %525
  br label %874

874:                                              ; preds = %873, %508
  br label %875

875:                                              ; preds = %874, %490
  br label %876

876:                                              ; preds = %875, %480
  br label %877

877:                                              ; preds = %876, %475
  br label %878

878:                                              ; preds = %877, %470
  br label %879

879:                                              ; preds = %878, %464
  br label %880

880:                                              ; preds = %879, %450
  %881 = load ptr, ptr %56, align 8, !tbaa !5
  %882 = load i32, ptr %881, align 4, !tbaa !9
  %883 = icmp ne i32 %882, 0
  br i1 %883, label %884, label %889

884:                                              ; preds = %880
  %885 = load ptr, ptr %56, align 8, !tbaa !5
  %886 = load i32, ptr %885, align 4, !tbaa !9
  %887 = sub nsw i32 0, %886
  store i32 %887, ptr %59, align 4, !tbaa !9
  %888 = call i32 @xerbla_(ptr noundef @.str.15, ptr noundef %59, i32 noundef 6)
  store i32 1, ptr %94, align 4
  br label %4261

889:                                              ; preds = %880
  store i32 0, ptr %88, align 4, !tbaa !9
  %890 = load i32, ptr %93, align 4, !tbaa !9
  %891 = load ptr, ptr %30, align 8, !tbaa !5
  %892 = load i32, ptr %891, align 4, !tbaa !9
  %893 = sub nsw i32 %892, 1
  %894 = icmp eq i32 %890, %893
  br i1 %894, label %895, label %902

895:                                              ; preds = %889
  %896 = load i32, ptr %92, align 4, !tbaa !9
  %897 = load ptr, ptr %29, align 8, !tbaa !5
  %898 = load i32, ptr %897, align 4, !tbaa !9
  %899 = sub nsw i32 %898, 1
  %900 = icmp eq i32 %896, %899
  br i1 %900, label %901, label %902

901:                                              ; preds = %895
  store i32 1, ptr %88, align 4, !tbaa !9
  br label %902

902:                                              ; preds = %901, %895, %889
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %903

903:                                              ; preds = %926, %902
  %904 = load i32, ptr %71, align 4, !tbaa !9
  %905 = icmp sle i32 %904, 4
  br i1 %905, label %906, label %929

906:                                              ; preds = %903
  %907 = load ptr, ptr %32, align 8, !tbaa !5
  %908 = load i32, ptr %71, align 4, !tbaa !9
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds i32, ptr %907, i64 %909
  %911 = load i32, ptr %910, align 4, !tbaa !9
  store i32 %911, ptr %59, align 4, !tbaa !9
  %912 = load i32, ptr %59, align 4, !tbaa !9
  %913 = icmp sge i32 %912, 0
  br i1 %913, label %914, label %916

914:                                              ; preds = %906
  %915 = load i32, ptr %59, align 4, !tbaa !9
  br label %919

916:                                              ; preds = %906
  %917 = load i32, ptr %59, align 4, !tbaa !9
  %918 = sub nsw i32 0, %917
  br label %919

919:                                              ; preds = %916, %914
  %920 = phi i32 [ %915, %914 ], [ %918, %916 ]
  %921 = srem i32 %920, 4096
  %922 = load ptr, ptr %32, align 8, !tbaa !5
  %923 = load i32, ptr %71, align 4, !tbaa !9
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds i32, ptr %922, i64 %924
  store i32 %921, ptr %925, align 4, !tbaa !9
  br label %926

926:                                              ; preds = %919
  %927 = load i32, ptr %71, align 4, !tbaa !9
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr %71, align 4, !tbaa !9
  br label %903, !llvm.loop !19

929:                                              ; preds = %903
  %930 = load ptr, ptr %32, align 8, !tbaa !5
  %931 = getelementptr inbounds i32, ptr %930, i64 4
  %932 = load i32, ptr %931, align 4, !tbaa !9
  %933 = sdiv i32 %932, 2
  %934 = shl i32 %933, 1
  %935 = add nsw i32 %934, 1
  %936 = load ptr, ptr %32, align 8, !tbaa !5
  %937 = getelementptr inbounds i32, ptr %936, i64 4
  store i32 %935, ptr %937, align 4, !tbaa !9
  %938 = load ptr, ptr %35, align 8, !tbaa !5
  %939 = load ptr, ptr %36, align 8, !tbaa !5
  %940 = load ptr, ptr %32, align 8, !tbaa !5
  %941 = getelementptr inbounds i32, ptr %940, i64 1
  %942 = load ptr, ptr %34, align 8, !tbaa !5
  %943 = getelementptr inbounds %struct.doublecomplex, ptr %942, i64 1
  %944 = load ptr, ptr %56, align 8, !tbaa !5
  call void @zlatm1_(ptr noundef %938, ptr noundef %939, ptr noundef %90, ptr noundef %78, ptr noundef %941, ptr noundef %943, ptr noundef %80, ptr noundef %944)
  %945 = load ptr, ptr %56, align 8, !tbaa !5
  %946 = load i32, ptr %945, align 4, !tbaa !9
  %947 = icmp ne i32 %946, 0
  br i1 %947, label %948, label %950

948:                                              ; preds = %929
  %949 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 1, ptr %949, align 4, !tbaa !9
  store i32 1, ptr %94, align 4
  br label %4261

950:                                              ; preds = %929
  %951 = load ptr, ptr %35, align 8, !tbaa !5
  %952 = load i32, ptr %951, align 4, !tbaa !9
  %953 = icmp ne i32 %952, 0
  br i1 %953, label %954, label %1114

954:                                              ; preds = %950
  %955 = load ptr, ptr %35, align 8, !tbaa !5
  %956 = load i32, ptr %955, align 4, !tbaa !9
  %957 = icmp ne i32 %956, -6
  br i1 %957, label %958, label %1114

958:                                              ; preds = %954
  %959 = load ptr, ptr %35, align 8, !tbaa !5
  %960 = load i32, ptr %959, align 4, !tbaa !9
  %961 = icmp ne i32 %960, 6
  br i1 %961, label %962, label %1114

962:                                              ; preds = %958
  %963 = load ptr, ptr %34, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.doublecomplex, ptr %963, i64 1
  %965 = call { double, double } @Cd(ptr noundef %964)
  %966 = extractvalue { double, double } %965, 0
  %967 = extractvalue { double, double } %965, 1
  %968 = getelementptr inbounds { double, double }, ptr %95, i32 0, i32 0
  %969 = getelementptr inbounds { double, double }, ptr %95, i32 0, i32 1
  store double %966, ptr %968, align 8
  store double %967, ptr %969, align 8
  %970 = getelementptr inbounds { double, double }, ptr %95, i32 0, i32 0
  %971 = load double, ptr %970, align 8
  %972 = getelementptr inbounds { double, double }, ptr %95, i32 0, i32 1
  %973 = load double, ptr %972, align 8
  %974 = call double @cabs(double noundef %971, double noundef %973) #6
  store double %974, ptr %69, align 8, !tbaa !18
  %975 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %975, ptr %59, align 4, !tbaa !9
  store i32 2, ptr %71, align 4, !tbaa !9
  br label %976

976:                                              ; preds = %1005, %962
  %977 = load i32, ptr %71, align 4, !tbaa !9
  %978 = load i32, ptr %59, align 4, !tbaa !9
  %979 = icmp sle i32 %977, %978
  br i1 %979, label %980, label %1008

980:                                              ; preds = %976
  %981 = load double, ptr %69, align 8, !tbaa !18
  store double %981, ptr %63, align 8, !tbaa !18
  %982 = load ptr, ptr %34, align 8, !tbaa !5
  %983 = load i32, ptr %71, align 4, !tbaa !9
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds %struct.doublecomplex, ptr %982, i64 %984
  %986 = call { double, double } @Cd(ptr noundef %985)
  %987 = extractvalue { double, double } %986, 0
  %988 = extractvalue { double, double } %986, 1
  %989 = getelementptr inbounds { double, double }, ptr %96, i32 0, i32 0
  %990 = getelementptr inbounds { double, double }, ptr %96, i32 0, i32 1
  store double %987, ptr %989, align 8
  store double %988, ptr %990, align 8
  %991 = getelementptr inbounds { double, double }, ptr %96, i32 0, i32 0
  %992 = load double, ptr %991, align 8
  %993 = getelementptr inbounds { double, double }, ptr %96, i32 0, i32 1
  %994 = load double, ptr %993, align 8
  %995 = call double @cabs(double noundef %992, double noundef %994) #6
  store double %995, ptr %64, align 8, !tbaa !18
  %996 = load double, ptr %63, align 8, !tbaa !18
  %997 = load double, ptr %64, align 8, !tbaa !18
  %998 = fcmp oge double %996, %997
  br i1 %998, label %999, label %1001

999:                                              ; preds = %980
  %1000 = load double, ptr %63, align 8, !tbaa !18
  br label %1003

1001:                                             ; preds = %980
  %1002 = load double, ptr %64, align 8, !tbaa !18
  br label %1003

1003:                                             ; preds = %1001, %999
  %1004 = phi double [ %1000, %999 ], [ %1002, %1001 ]
  store double %1004, ptr %69, align 8, !tbaa !18
  br label %1005

1005:                                             ; preds = %1003
  %1006 = load i32, ptr %71, align 4, !tbaa !9
  %1007 = add nsw i32 %1006, 1
  store i32 %1007, ptr %71, align 4, !tbaa !9
  br label %976, !llvm.loop !20

1008:                                             ; preds = %976
  %1009 = load double, ptr %69, align 8, !tbaa !18
  %1010 = fcmp oeq double %1009, 0.000000e+00
  br i1 %1010, label %1011, label %1023

1011:                                             ; preds = %1008
  %1012 = load ptr, ptr %37, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.doublecomplex, ptr %1012, i32 0, i32 0
  %1014 = load double, ptr %1013, align 8, !tbaa !11
  %1015 = fcmp une double %1014, 0.000000e+00
  br i1 %1015, label %1021, label %1016

1016:                                             ; preds = %1011
  %1017 = load ptr, ptr %37, align 8, !tbaa !5
  %1018 = getelementptr inbounds %struct.doublecomplex, ptr %1017, i32 0, i32 1
  %1019 = load double, ptr %1018, align 8, !tbaa !14
  %1020 = fcmp une double %1019, 0.000000e+00
  br i1 %1020, label %1021, label %1023

1021:                                             ; preds = %1016, %1011
  %1022 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 2, ptr %1022, align 4, !tbaa !9
  store i32 1, ptr %94, align 4
  br label %4261

1023:                                             ; preds = %1016, %1008
  %1024 = load double, ptr %69, align 8, !tbaa !18
  %1025 = fcmp une double %1024, 0.000000e+00
  br i1 %1025, label %1026, label %1045

1026:                                             ; preds = %1023
  %1027 = load ptr, ptr %37, align 8, !tbaa !5
  %1028 = getelementptr inbounds %struct.doublecomplex, ptr %1027, i32 0, i32 0
  %1029 = load double, ptr %1028, align 8, !tbaa !11
  %1030 = load double, ptr %69, align 8, !tbaa !18
  %1031 = fdiv double %1029, %1030
  %1032 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  store double %1031, ptr %1032, align 8, !tbaa !11
  %1033 = load ptr, ptr %37, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.doublecomplex, ptr %1033, i32 0, i32 1
  %1035 = load double, ptr %1034, align 8, !tbaa !14
  %1036 = load double, ptr %69, align 8, !tbaa !18
  %1037 = fdiv double %1035, %1036
  %1038 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  store double %1037, ptr %1038, align 8, !tbaa !14
  %1039 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1040 = load double, ptr %1039, align 8, !tbaa !11
  %1041 = getelementptr inbounds %struct.doublecomplex, ptr %86, i32 0, i32 0
  store double %1040, ptr %1041, align 8, !tbaa !11
  %1042 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1043 = load double, ptr %1042, align 8, !tbaa !14
  %1044 = getelementptr inbounds %struct.doublecomplex, ptr %86, i32 0, i32 1
  store double %1043, ptr %1044, align 8, !tbaa !14
  br label %1048

1045:                                             ; preds = %1023
  %1046 = getelementptr inbounds %struct.doublecomplex, ptr %86, i32 0, i32 0
  store double 1.000000e+00, ptr %1046, align 8, !tbaa !11
  %1047 = getelementptr inbounds %struct.doublecomplex, ptr %86, i32 0, i32 1
  store double 0.000000e+00, ptr %1047, align 8, !tbaa !14
  br label %1048

1048:                                             ; preds = %1045, %1026
  %1049 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %1049, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1050

1050:                                             ; preds = %1110, %1048
  %1051 = load i32, ptr %71, align 4, !tbaa !9
  %1052 = load i32, ptr %59, align 4, !tbaa !9
  %1053 = icmp sle i32 %1051, %1052
  br i1 %1053, label %1054, label %1113

1054:                                             ; preds = %1050
  %1055 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %1055, ptr %60, align 4, !tbaa !9
  %1056 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %1056, ptr %61, align 4, !tbaa !9
  %1057 = getelementptr inbounds %struct.doublecomplex, ptr %86, i32 0, i32 0
  %1058 = load double, ptr %1057, align 8, !tbaa !11
  %1059 = load ptr, ptr %34, align 8, !tbaa !5
  %1060 = load i32, ptr %61, align 4, !tbaa !9
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds %struct.doublecomplex, ptr %1059, i64 %1061
  %1063 = getelementptr inbounds %struct.doublecomplex, ptr %1062, i32 0, i32 0
  %1064 = load double, ptr %1063, align 8, !tbaa !11
  %1065 = getelementptr inbounds %struct.doublecomplex, ptr %86, i32 0, i32 1
  %1066 = load double, ptr %1065, align 8, !tbaa !14
  %1067 = load ptr, ptr %34, align 8, !tbaa !5
  %1068 = load i32, ptr %61, align 4, !tbaa !9
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds %struct.doublecomplex, ptr %1067, i64 %1069
  %1071 = getelementptr inbounds %struct.doublecomplex, ptr %1070, i32 0, i32 1
  %1072 = load double, ptr %1071, align 8, !tbaa !14
  %1073 = fmul double %1066, %1072
  %1074 = fneg double %1073
  %1075 = call double @llvm.fmuladd.f64(double %1058, double %1064, double %1074)
  %1076 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  store double %1075, ptr %1076, align 8, !tbaa !11
  %1077 = getelementptr inbounds %struct.doublecomplex, ptr %86, i32 0, i32 0
  %1078 = load double, ptr %1077, align 8, !tbaa !11
  %1079 = load ptr, ptr %34, align 8, !tbaa !5
  %1080 = load i32, ptr %61, align 4, !tbaa !9
  %1081 = sext i32 %1080 to i64
  %1082 = getelementptr inbounds %struct.doublecomplex, ptr %1079, i64 %1081
  %1083 = getelementptr inbounds %struct.doublecomplex, ptr %1082, i32 0, i32 1
  %1084 = load double, ptr %1083, align 8, !tbaa !14
  %1085 = getelementptr inbounds %struct.doublecomplex, ptr %86, i32 0, i32 1
  %1086 = load double, ptr %1085, align 8, !tbaa !14
  %1087 = load ptr, ptr %34, align 8, !tbaa !5
  %1088 = load i32, ptr %61, align 4, !tbaa !9
  %1089 = sext i32 %1088 to i64
  %1090 = getelementptr inbounds %struct.doublecomplex, ptr %1087, i64 %1089
  %1091 = getelementptr inbounds %struct.doublecomplex, ptr %1090, i32 0, i32 0
  %1092 = load double, ptr %1091, align 8, !tbaa !11
  %1093 = fmul double %1086, %1092
  %1094 = call double @llvm.fmuladd.f64(double %1078, double %1084, double %1093)
  %1095 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  store double %1094, ptr %1095, align 8, !tbaa !14
  %1096 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1097 = load double, ptr %1096, align 8, !tbaa !11
  %1098 = load ptr, ptr %34, align 8, !tbaa !5
  %1099 = load i32, ptr %60, align 4, !tbaa !9
  %1100 = sext i32 %1099 to i64
  %1101 = getelementptr inbounds %struct.doublecomplex, ptr %1098, i64 %1100
  %1102 = getelementptr inbounds %struct.doublecomplex, ptr %1101, i32 0, i32 0
  store double %1097, ptr %1102, align 8, !tbaa !11
  %1103 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1104 = load double, ptr %1103, align 8, !tbaa !14
  %1105 = load ptr, ptr %34, align 8, !tbaa !5
  %1106 = load i32, ptr %60, align 4, !tbaa !9
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds %struct.doublecomplex, ptr %1105, i64 %1107
  %1109 = getelementptr inbounds %struct.doublecomplex, ptr %1108, i32 0, i32 1
  store double %1104, ptr %1109, align 8, !tbaa !14
  br label %1110

1110:                                             ; preds = %1054
  %1111 = load i32, ptr %71, align 4, !tbaa !9
  %1112 = add nsw i32 %1111, 1
  store i32 %1112, ptr %71, align 4, !tbaa !9
  br label %1050, !llvm.loop !21

1113:                                             ; preds = %1050
  br label %1114

1114:                                             ; preds = %1113, %958, %954, %950
  %1115 = load i32, ptr %70, align 4, !tbaa !9
  %1116 = icmp eq i32 %1115, 0
  br i1 %1116, label %1117, label %1147

1117:                                             ; preds = %1114
  %1118 = load i32, ptr %80, align 4, !tbaa !9
  store i32 %1118, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1119

1119:                                             ; preds = %1143, %1117
  %1120 = load i32, ptr %71, align 4, !tbaa !9
  %1121 = load i32, ptr %59, align 4, !tbaa !9
  %1122 = icmp sle i32 %1120, %1121
  br i1 %1122, label %1123, label %1146

1123:                                             ; preds = %1119
  %1124 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %1124, ptr %60, align 4, !tbaa !9
  %1125 = load i32, ptr %71, align 4, !tbaa !9
  store i32 %1125, ptr %61, align 4, !tbaa !9
  %1126 = load ptr, ptr %34, align 8, !tbaa !5
  %1127 = load i32, ptr %61, align 4, !tbaa !9
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds %struct.doublecomplex, ptr %1126, i64 %1128
  %1130 = getelementptr inbounds %struct.doublecomplex, ptr %1129, i32 0, i32 0
  %1131 = load double, ptr %1130, align 8, !tbaa !11
  store double %1131, ptr %63, align 8, !tbaa !18
  %1132 = load double, ptr %63, align 8, !tbaa !18
  %1133 = load ptr, ptr %34, align 8, !tbaa !5
  %1134 = load i32, ptr %60, align 4, !tbaa !9
  %1135 = sext i32 %1134 to i64
  %1136 = getelementptr inbounds %struct.doublecomplex, ptr %1133, i64 %1135
  %1137 = getelementptr inbounds %struct.doublecomplex, ptr %1136, i32 0, i32 0
  store double %1132, ptr %1137, align 8, !tbaa !11
  %1138 = load ptr, ptr %34, align 8, !tbaa !5
  %1139 = load i32, ptr %60, align 4, !tbaa !9
  %1140 = sext i32 %1139 to i64
  %1141 = getelementptr inbounds %struct.doublecomplex, ptr %1138, i64 %1140
  %1142 = getelementptr inbounds %struct.doublecomplex, ptr %1141, i32 0, i32 1
  store double 0.000000e+00, ptr %1142, align 8, !tbaa !14
  br label %1143

1143:                                             ; preds = %1123
  %1144 = load i32, ptr %71, align 4, !tbaa !9
  %1145 = add nsw i32 %1144, 1
  store i32 %1145, ptr %71, align 4, !tbaa !9
  br label %1119, !llvm.loop !22

1146:                                             ; preds = %1119
  br label %1147

1147:                                             ; preds = %1146, %1114
  %1148 = load i32, ptr %87, align 4, !tbaa !9
  %1149 = icmp eq i32 %1148, 1
  br i1 %1149, label %1162, label %1150

1150:                                             ; preds = %1147
  %1151 = load i32, ptr %87, align 4, !tbaa !9
  %1152 = icmp eq i32 %1151, 3
  br i1 %1152, label %1162, label %1153

1153:                                             ; preds = %1150
  %1154 = load i32, ptr %87, align 4, !tbaa !9
  %1155 = icmp eq i32 %1154, 4
  br i1 %1155, label %1162, label %1156

1156:                                             ; preds = %1153
  %1157 = load i32, ptr %87, align 4, !tbaa !9
  %1158 = icmp eq i32 %1157, 5
  br i1 %1158, label %1162, label %1159

1159:                                             ; preds = %1156
  %1160 = load i32, ptr %87, align 4, !tbaa !9
  %1161 = icmp eq i32 %1160, 6
  br i1 %1161, label %1162, label %1177

1162:                                             ; preds = %1159, %1156, %1153, %1150, %1147
  %1163 = load ptr, ptr %41, align 8, !tbaa !5
  %1164 = load ptr, ptr %42, align 8, !tbaa !5
  %1165 = load ptr, ptr %32, align 8, !tbaa !5
  %1166 = getelementptr inbounds i32, ptr %1165, i64 1
  %1167 = load ptr, ptr %40, align 8, !tbaa !5
  %1168 = getelementptr inbounds %struct.doublecomplex, ptr %1167, i64 1
  %1169 = load ptr, ptr %29, align 8, !tbaa !5
  %1170 = load ptr, ptr %56, align 8, !tbaa !5
  call void @zlatm1_(ptr noundef %1163, ptr noundef %1164, ptr noundef @c__0, ptr noundef %78, ptr noundef %1166, ptr noundef %1168, ptr noundef %1169, ptr noundef %1170)
  %1171 = load ptr, ptr %56, align 8, !tbaa !5
  %1172 = load i32, ptr %1171, align 4, !tbaa !9
  %1173 = icmp ne i32 %1172, 0
  br i1 %1173, label %1174, label %1176

1174:                                             ; preds = %1162
  %1175 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 3, ptr %1175, align 4, !tbaa !9
  store i32 1, ptr %94, align 4
  br label %4261

1176:                                             ; preds = %1162
  br label %1177

1177:                                             ; preds = %1176, %1159
  %1178 = load i32, ptr %87, align 4, !tbaa !9
  %1179 = icmp eq i32 %1178, 2
  br i1 %1179, label %1183, label %1180

1180:                                             ; preds = %1177
  %1181 = load i32, ptr %87, align 4, !tbaa !9
  %1182 = icmp eq i32 %1181, 3
  br i1 %1182, label %1183, label %1198

1183:                                             ; preds = %1180, %1177
  %1184 = load ptr, ptr %44, align 8, !tbaa !5
  %1185 = load ptr, ptr %45, align 8, !tbaa !5
  %1186 = load ptr, ptr %32, align 8, !tbaa !5
  %1187 = getelementptr inbounds i32, ptr %1186, i64 1
  %1188 = load ptr, ptr %43, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.doublecomplex, ptr %1188, i64 1
  %1190 = load ptr, ptr %30, align 8, !tbaa !5
  %1191 = load ptr, ptr %56, align 8, !tbaa !5
  call void @zlatm1_(ptr noundef %1184, ptr noundef %1185, ptr noundef @c__0, ptr noundef %78, ptr noundef %1187, ptr noundef %1189, ptr noundef %1190, ptr noundef %1191)
  %1192 = load ptr, ptr %56, align 8, !tbaa !5
  %1193 = load i32, ptr %1192, align 4, !tbaa !9
  %1194 = icmp ne i32 %1193, 0
  br i1 %1194, label %1195, label %1197

1195:                                             ; preds = %1183
  %1196 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 4, ptr %1196, align 4, !tbaa !9
  store i32 1, ptr %94, align 4
  br label %4261

1197:                                             ; preds = %1183
  br label %1198

1198:                                             ; preds = %1197, %1180
  %1199 = load i32, ptr %91, align 4, !tbaa !9
  %1200 = icmp sgt i32 %1199, 0
  br i1 %1200, label %1201, label %1289

1201:                                             ; preds = %1198
  %1202 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %1202, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1203

1203:                                             ; preds = %1213, %1201
  %1204 = load i32, ptr %71, align 4, !tbaa !9
  %1205 = load i32, ptr %59, align 4, !tbaa !9
  %1206 = icmp sle i32 %1204, %1205
  br i1 %1206, label %1207, label %1216

1207:                                             ; preds = %1203
  %1208 = load i32, ptr %71, align 4, !tbaa !9
  %1209 = load ptr, ptr %55, align 8, !tbaa !5
  %1210 = load i32, ptr %71, align 4, !tbaa !9
  %1211 = sext i32 %1210 to i64
  %1212 = getelementptr inbounds i32, ptr %1209, i64 %1211
  store i32 %1208, ptr %1212, align 4, !tbaa !9
  br label %1213

1213:                                             ; preds = %1207
  %1214 = load i32, ptr %71, align 4, !tbaa !9
  %1215 = add nsw i32 %1214, 1
  store i32 %1215, ptr %71, align 4, !tbaa !9
  br label %1203, !llvm.loop !23

1216:                                             ; preds = %1203
  %1217 = load i32, ptr %88, align 4, !tbaa !9
  %1218 = icmp ne i32 %1217, 0
  br i1 %1218, label %1219, label %1254

1219:                                             ; preds = %1216
  %1220 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %1220, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1221

1221:                                             ; preds = %1250, %1219
  %1222 = load i32, ptr %71, align 4, !tbaa !9
  %1223 = load i32, ptr %59, align 4, !tbaa !9
  %1224 = icmp sle i32 %1222, %1223
  br i1 %1224, label %1225, label %1253

1225:                                             ; preds = %1221
  %1226 = load ptr, ptr %47, align 8, !tbaa !5
  %1227 = load i32, ptr %71, align 4, !tbaa !9
  %1228 = sext i32 %1227 to i64
  %1229 = getelementptr inbounds i32, ptr %1226, i64 %1228
  %1230 = load i32, ptr %1229, align 4, !tbaa !9
  store i32 %1230, ptr %73, align 4, !tbaa !9
  %1231 = load ptr, ptr %55, align 8, !tbaa !5
  %1232 = load i32, ptr %71, align 4, !tbaa !9
  %1233 = sext i32 %1232 to i64
  %1234 = getelementptr inbounds i32, ptr %1231, i64 %1233
  %1235 = load i32, ptr %1234, align 4, !tbaa !9
  store i32 %1235, ptr %72, align 4, !tbaa !9
  %1236 = load ptr, ptr %55, align 8, !tbaa !5
  %1237 = load i32, ptr %73, align 4, !tbaa !9
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds i32, ptr %1236, i64 %1238
  %1240 = load i32, ptr %1239, align 4, !tbaa !9
  %1241 = load ptr, ptr %55, align 8, !tbaa !5
  %1242 = load i32, ptr %71, align 4, !tbaa !9
  %1243 = sext i32 %1242 to i64
  %1244 = getelementptr inbounds i32, ptr %1241, i64 %1243
  store i32 %1240, ptr %1244, align 4, !tbaa !9
  %1245 = load i32, ptr %72, align 4, !tbaa !9
  %1246 = load ptr, ptr %55, align 8, !tbaa !5
  %1247 = load i32, ptr %73, align 4, !tbaa !9
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds i32, ptr %1246, i64 %1248
  store i32 %1245, ptr %1249, align 4, !tbaa !9
  br label %1250

1250:                                             ; preds = %1225
  %1251 = load i32, ptr %71, align 4, !tbaa !9
  %1252 = add nsw i32 %1251, 1
  store i32 %1252, ptr %71, align 4, !tbaa !9
  br label %1221, !llvm.loop !24

1253:                                             ; preds = %1221
  br label %1288

1254:                                             ; preds = %1216
  %1255 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %1255, ptr %71, align 4, !tbaa !9
  br label %1256

1256:                                             ; preds = %1284, %1254
  %1257 = load i32, ptr %71, align 4, !tbaa !9
  %1258 = icmp sge i32 %1257, 1
  br i1 %1258, label %1259, label %1287

1259:                                             ; preds = %1256
  %1260 = load ptr, ptr %47, align 8, !tbaa !5
  %1261 = load i32, ptr %71, align 4, !tbaa !9
  %1262 = sext i32 %1261 to i64
  %1263 = getelementptr inbounds i32, ptr %1260, i64 %1262
  %1264 = load i32, ptr %1263, align 4, !tbaa !9
  store i32 %1264, ptr %73, align 4, !tbaa !9
  %1265 = load ptr, ptr %55, align 8, !tbaa !5
  %1266 = load i32, ptr %71, align 4, !tbaa !9
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds i32, ptr %1265, i64 %1267
  %1269 = load i32, ptr %1268, align 4, !tbaa !9
  store i32 %1269, ptr %72, align 4, !tbaa !9
  %1270 = load ptr, ptr %55, align 8, !tbaa !5
  %1271 = load i32, ptr %73, align 4, !tbaa !9
  %1272 = sext i32 %1271 to i64
  %1273 = getelementptr inbounds i32, ptr %1270, i64 %1272
  %1274 = load i32, ptr %1273, align 4, !tbaa !9
  %1275 = load ptr, ptr %55, align 8, !tbaa !5
  %1276 = load i32, ptr %71, align 4, !tbaa !9
  %1277 = sext i32 %1276 to i64
  %1278 = getelementptr inbounds i32, ptr %1275, i64 %1277
  store i32 %1274, ptr %1278, align 4, !tbaa !9
  %1279 = load i32, ptr %72, align 4, !tbaa !9
  %1280 = load ptr, ptr %55, align 8, !tbaa !5
  %1281 = load i32, ptr %73, align 4, !tbaa !9
  %1282 = sext i32 %1281 to i64
  %1283 = getelementptr inbounds i32, ptr %1280, i64 %1282
  store i32 %1279, ptr %1283, align 4, !tbaa !9
  br label %1284

1284:                                             ; preds = %1259
  %1285 = load i32, ptr %71, align 4, !tbaa !9
  %1286 = add nsw i32 %1285, -1
  store i32 %1286, ptr %71, align 4, !tbaa !9
  br label %1256, !llvm.loop !25

1287:                                             ; preds = %1256
  br label %1288

1288:                                             ; preds = %1287, %1253
  br label %1289

1289:                                             ; preds = %1288, %1198
  %1290 = load i32, ptr %88, align 4, !tbaa !9
  %1291 = icmp ne i32 %1290, 0
  br i1 %1291, label %1292, label %2717

1292:                                             ; preds = %1289
  %1293 = load i32, ptr %74, align 4, !tbaa !9
  %1294 = icmp eq i32 %1293, 0
  br i1 %1294, label %1295, label %1539

1295:                                             ; preds = %1292
  %1296 = load i32, ptr %70, align 4, !tbaa !9
  %1297 = icmp eq i32 %1296, 0
  br i1 %1297, label %1298, label %1386

1298:                                             ; preds = %1295
  %1299 = load ptr, ptr %30, align 8, !tbaa !5
  %1300 = load i32, ptr %1299, align 4, !tbaa !9
  store i32 %1300, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %1301

1301:                                             ; preds = %1382, %1298
  %1302 = load i32, ptr %72, align 4, !tbaa !9
  %1303 = load i32, ptr %59, align 4, !tbaa !9
  %1304 = icmp sle i32 %1302, %1303
  br i1 %1304, label %1305, label %1385

1305:                                             ; preds = %1301
  %1306 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1306, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1307

1307:                                             ; preds = %1378, %1305
  %1308 = load i32, ptr %71, align 4, !tbaa !9
  %1309 = load i32, ptr %60, align 4, !tbaa !9
  %1310 = icmp sle i32 %1308, %1309
  br i1 %1310, label %1311, label %1381

1311:                                             ; preds = %1307
  %1312 = load ptr, ptr %29, align 8, !tbaa !5
  %1313 = load ptr, ptr %30, align 8, !tbaa !5
  %1314 = load ptr, ptr %48, align 8, !tbaa !5
  %1315 = load ptr, ptr %49, align 8, !tbaa !5
  %1316 = load ptr, ptr %32, align 8, !tbaa !5
  %1317 = getelementptr inbounds i32, ptr %1316, i64 1
  %1318 = load ptr, ptr %34, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.doublecomplex, ptr %1318, i64 1
  %1320 = load ptr, ptr %40, align 8, !tbaa !5
  %1321 = getelementptr inbounds %struct.doublecomplex, ptr %1320, i64 1
  %1322 = load ptr, ptr %43, align 8, !tbaa !5
  %1323 = getelementptr inbounds %struct.doublecomplex, ptr %1322, i64 1
  %1324 = load ptr, ptr %55, align 8, !tbaa !5
  %1325 = getelementptr inbounds i32, ptr %1324, i64 1
  %1326 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %1312, ptr noundef %1313, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %1314, ptr noundef %1315, ptr noundef %78, ptr noundef %1317, ptr noundef %1319, ptr noundef %87, ptr noundef %1321, ptr noundef %1323, ptr noundef %91, ptr noundef %1325, ptr noundef %1326)
  %1327 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1328 = load double, ptr %1327, align 8, !tbaa !11
  %1329 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %1328, ptr %1329, align 8, !tbaa !11
  %1330 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1331 = load double, ptr %1330, align 8, !tbaa !14
  %1332 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %1331, ptr %1332, align 8, !tbaa !14
  %1333 = load i32, ptr %67, align 4, !tbaa !9
  %1334 = load i32, ptr %68, align 4, !tbaa !9
  %1335 = load i32, ptr %57, align 4, !tbaa !9
  %1336 = mul nsw i32 %1334, %1335
  %1337 = add nsw i32 %1333, %1336
  store i32 %1337, ptr %61, align 4, !tbaa !9
  %1338 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %1339 = load double, ptr %1338, align 8, !tbaa !11
  %1340 = load ptr, ptr %53, align 8, !tbaa !5
  %1341 = load i32, ptr %61, align 4, !tbaa !9
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr inbounds %struct.doublecomplex, ptr %1340, i64 %1342
  %1344 = getelementptr inbounds %struct.doublecomplex, ptr %1343, i32 0, i32 0
  store double %1339, ptr %1344, align 8, !tbaa !11
  %1345 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %1346 = load double, ptr %1345, align 8, !tbaa !14
  %1347 = load ptr, ptr %53, align 8, !tbaa !5
  %1348 = load i32, ptr %61, align 4, !tbaa !9
  %1349 = sext i32 %1348 to i64
  %1350 = getelementptr inbounds %struct.doublecomplex, ptr %1347, i64 %1349
  %1351 = getelementptr inbounds %struct.doublecomplex, ptr %1350, i32 0, i32 1
  store double %1346, ptr %1351, align 8, !tbaa !14
  %1352 = load i32, ptr %68, align 4, !tbaa !9
  %1353 = load i32, ptr %67, align 4, !tbaa !9
  %1354 = load i32, ptr %57, align 4, !tbaa !9
  %1355 = mul nsw i32 %1353, %1354
  %1356 = add nsw i32 %1352, %1355
  store i32 %1356, ptr %61, align 4, !tbaa !9
  %1357 = call { double, double } @Cd(ptr noundef %76)
  %1358 = extractvalue { double, double } %1357, 0
  %1359 = extractvalue { double, double } %1357, 1
  %1360 = fneg double %1359
  %1361 = call ptr @_pCd(ptr noundef %65)
  %1362 = getelementptr inbounds { double, double }, ptr %1361, i32 0, i32 0
  %1363 = getelementptr inbounds { double, double }, ptr %1361, i32 0, i32 1
  store double %1358, ptr %1362, align 8
  store double %1360, ptr %1363, align 8
  %1364 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1365 = load double, ptr %1364, align 8, !tbaa !11
  %1366 = load ptr, ptr %53, align 8, !tbaa !5
  %1367 = load i32, ptr %61, align 4, !tbaa !9
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds %struct.doublecomplex, ptr %1366, i64 %1368
  %1370 = getelementptr inbounds %struct.doublecomplex, ptr %1369, i32 0, i32 0
  store double %1365, ptr %1370, align 8, !tbaa !11
  %1371 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1372 = load double, ptr %1371, align 8, !tbaa !14
  %1373 = load ptr, ptr %53, align 8, !tbaa !5
  %1374 = load i32, ptr %61, align 4, !tbaa !9
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds %struct.doublecomplex, ptr %1373, i64 %1375
  %1377 = getelementptr inbounds %struct.doublecomplex, ptr %1376, i32 0, i32 1
  store double %1372, ptr %1377, align 8, !tbaa !14
  br label %1378

1378:                                             ; preds = %1311
  %1379 = load i32, ptr %71, align 4, !tbaa !9
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr %71, align 4, !tbaa !9
  br label %1307, !llvm.loop !26

1381:                                             ; preds = %1307
  br label %1382

1382:                                             ; preds = %1381
  %1383 = load i32, ptr %72, align 4, !tbaa !9
  %1384 = add nsw i32 %1383, 1
  store i32 %1384, ptr %72, align 4, !tbaa !9
  br label %1301, !llvm.loop !27

1385:                                             ; preds = %1301
  br label %1538

1386:                                             ; preds = %1295
  %1387 = load i32, ptr %70, align 4, !tbaa !9
  %1388 = icmp eq i32 %1387, 1
  br i1 %1388, label %1389, label %1452

1389:                                             ; preds = %1386
  %1390 = load ptr, ptr %30, align 8, !tbaa !5
  %1391 = load i32, ptr %1390, align 4, !tbaa !9
  store i32 %1391, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %1392

1392:                                             ; preds = %1448, %1389
  %1393 = load i32, ptr %72, align 4, !tbaa !9
  %1394 = load i32, ptr %59, align 4, !tbaa !9
  %1395 = icmp sle i32 %1393, %1394
  br i1 %1395, label %1396, label %1451

1396:                                             ; preds = %1392
  %1397 = load ptr, ptr %29, align 8, !tbaa !5
  %1398 = load i32, ptr %1397, align 4, !tbaa !9
  store i32 %1398, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1399

1399:                                             ; preds = %1444, %1396
  %1400 = load i32, ptr %71, align 4, !tbaa !9
  %1401 = load i32, ptr %60, align 4, !tbaa !9
  %1402 = icmp sle i32 %1400, %1401
  br i1 %1402, label %1403, label %1447

1403:                                             ; preds = %1399
  %1404 = load ptr, ptr %29, align 8, !tbaa !5
  %1405 = load ptr, ptr %30, align 8, !tbaa !5
  %1406 = load ptr, ptr %48, align 8, !tbaa !5
  %1407 = load ptr, ptr %49, align 8, !tbaa !5
  %1408 = load ptr, ptr %32, align 8, !tbaa !5
  %1409 = getelementptr inbounds i32, ptr %1408, i64 1
  %1410 = load ptr, ptr %34, align 8, !tbaa !5
  %1411 = getelementptr inbounds %struct.doublecomplex, ptr %1410, i64 1
  %1412 = load ptr, ptr %40, align 8, !tbaa !5
  %1413 = getelementptr inbounds %struct.doublecomplex, ptr %1412, i64 1
  %1414 = load ptr, ptr %43, align 8, !tbaa !5
  %1415 = getelementptr inbounds %struct.doublecomplex, ptr %1414, i64 1
  %1416 = load ptr, ptr %55, align 8, !tbaa !5
  %1417 = getelementptr inbounds i32, ptr %1416, i64 1
  %1418 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %1404, ptr noundef %1405, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %1406, ptr noundef %1407, ptr noundef %78, ptr noundef %1409, ptr noundef %1411, ptr noundef %87, ptr noundef %1413, ptr noundef %1415, ptr noundef %91, ptr noundef %1417, ptr noundef %1418)
  %1419 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1420 = load double, ptr %1419, align 8, !tbaa !11
  %1421 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %1420, ptr %1421, align 8, !tbaa !11
  %1422 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1423 = load double, ptr %1422, align 8, !tbaa !14
  %1424 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %1423, ptr %1424, align 8, !tbaa !14
  %1425 = load i32, ptr %67, align 4, !tbaa !9
  %1426 = load i32, ptr %68, align 4, !tbaa !9
  %1427 = load i32, ptr %57, align 4, !tbaa !9
  %1428 = mul nsw i32 %1426, %1427
  %1429 = add nsw i32 %1425, %1428
  store i32 %1429, ptr %61, align 4, !tbaa !9
  %1430 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %1431 = load double, ptr %1430, align 8, !tbaa !11
  %1432 = load ptr, ptr %53, align 8, !tbaa !5
  %1433 = load i32, ptr %61, align 4, !tbaa !9
  %1434 = sext i32 %1433 to i64
  %1435 = getelementptr inbounds %struct.doublecomplex, ptr %1432, i64 %1434
  %1436 = getelementptr inbounds %struct.doublecomplex, ptr %1435, i32 0, i32 0
  store double %1431, ptr %1436, align 8, !tbaa !11
  %1437 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %1438 = load double, ptr %1437, align 8, !tbaa !14
  %1439 = load ptr, ptr %53, align 8, !tbaa !5
  %1440 = load i32, ptr %61, align 4, !tbaa !9
  %1441 = sext i32 %1440 to i64
  %1442 = getelementptr inbounds %struct.doublecomplex, ptr %1439, i64 %1441
  %1443 = getelementptr inbounds %struct.doublecomplex, ptr %1442, i32 0, i32 1
  store double %1438, ptr %1443, align 8, !tbaa !14
  br label %1444

1444:                                             ; preds = %1403
  %1445 = load i32, ptr %71, align 4, !tbaa !9
  %1446 = add nsw i32 %1445, 1
  store i32 %1446, ptr %71, align 4, !tbaa !9
  br label %1399, !llvm.loop !28

1447:                                             ; preds = %1399
  br label %1448

1448:                                             ; preds = %1447
  %1449 = load i32, ptr %72, align 4, !tbaa !9
  %1450 = add nsw i32 %1449, 1
  store i32 %1450, ptr %72, align 4, !tbaa !9
  br label %1392, !llvm.loop !29

1451:                                             ; preds = %1392
  br label %1537

1452:                                             ; preds = %1386
  %1453 = load i32, ptr %70, align 4, !tbaa !9
  %1454 = icmp eq i32 %1453, 2
  br i1 %1454, label %1455, label %1536

1455:                                             ; preds = %1452
  %1456 = load ptr, ptr %30, align 8, !tbaa !5
  %1457 = load i32, ptr %1456, align 4, !tbaa !9
  store i32 %1457, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %1458

1458:                                             ; preds = %1532, %1455
  %1459 = load i32, ptr %72, align 4, !tbaa !9
  %1460 = load i32, ptr %59, align 4, !tbaa !9
  %1461 = icmp sle i32 %1459, %1460
  br i1 %1461, label %1462, label %1535

1462:                                             ; preds = %1458
  %1463 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1463, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1464

1464:                                             ; preds = %1528, %1462
  %1465 = load i32, ptr %71, align 4, !tbaa !9
  %1466 = load i32, ptr %60, align 4, !tbaa !9
  %1467 = icmp sle i32 %1465, %1466
  br i1 %1467, label %1468, label %1531

1468:                                             ; preds = %1464
  %1469 = load ptr, ptr %29, align 8, !tbaa !5
  %1470 = load ptr, ptr %30, align 8, !tbaa !5
  %1471 = load ptr, ptr %48, align 8, !tbaa !5
  %1472 = load ptr, ptr %49, align 8, !tbaa !5
  %1473 = load ptr, ptr %32, align 8, !tbaa !5
  %1474 = getelementptr inbounds i32, ptr %1473, i64 1
  %1475 = load ptr, ptr %34, align 8, !tbaa !5
  %1476 = getelementptr inbounds %struct.doublecomplex, ptr %1475, i64 1
  %1477 = load ptr, ptr %40, align 8, !tbaa !5
  %1478 = getelementptr inbounds %struct.doublecomplex, ptr %1477, i64 1
  %1479 = load ptr, ptr %43, align 8, !tbaa !5
  %1480 = getelementptr inbounds %struct.doublecomplex, ptr %1479, i64 1
  %1481 = load ptr, ptr %55, align 8, !tbaa !5
  %1482 = getelementptr inbounds i32, ptr %1481, i64 1
  %1483 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %1469, ptr noundef %1470, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %1471, ptr noundef %1472, ptr noundef %78, ptr noundef %1474, ptr noundef %1476, ptr noundef %87, ptr noundef %1478, ptr noundef %1480, ptr noundef %91, ptr noundef %1482, ptr noundef %1483)
  %1484 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1485 = load double, ptr %1484, align 8, !tbaa !11
  %1486 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %1485, ptr %1486, align 8, !tbaa !11
  %1487 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1488 = load double, ptr %1487, align 8, !tbaa !14
  %1489 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %1488, ptr %1489, align 8, !tbaa !14
  %1490 = load i32, ptr %67, align 4, !tbaa !9
  %1491 = load i32, ptr %68, align 4, !tbaa !9
  %1492 = load i32, ptr %57, align 4, !tbaa !9
  %1493 = mul nsw i32 %1491, %1492
  %1494 = add nsw i32 %1490, %1493
  store i32 %1494, ptr %61, align 4, !tbaa !9
  %1495 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %1496 = load double, ptr %1495, align 8, !tbaa !11
  %1497 = load ptr, ptr %53, align 8, !tbaa !5
  %1498 = load i32, ptr %61, align 4, !tbaa !9
  %1499 = sext i32 %1498 to i64
  %1500 = getelementptr inbounds %struct.doublecomplex, ptr %1497, i64 %1499
  %1501 = getelementptr inbounds %struct.doublecomplex, ptr %1500, i32 0, i32 0
  store double %1496, ptr %1501, align 8, !tbaa !11
  %1502 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %1503 = load double, ptr %1502, align 8, !tbaa !14
  %1504 = load ptr, ptr %53, align 8, !tbaa !5
  %1505 = load i32, ptr %61, align 4, !tbaa !9
  %1506 = sext i32 %1505 to i64
  %1507 = getelementptr inbounds %struct.doublecomplex, ptr %1504, i64 %1506
  %1508 = getelementptr inbounds %struct.doublecomplex, ptr %1507, i32 0, i32 1
  store double %1503, ptr %1508, align 8, !tbaa !14
  %1509 = load i32, ptr %68, align 4, !tbaa !9
  %1510 = load i32, ptr %67, align 4, !tbaa !9
  %1511 = load i32, ptr %57, align 4, !tbaa !9
  %1512 = mul nsw i32 %1510, %1511
  %1513 = add nsw i32 %1509, %1512
  store i32 %1513, ptr %61, align 4, !tbaa !9
  %1514 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %1515 = load double, ptr %1514, align 8, !tbaa !11
  %1516 = load ptr, ptr %53, align 8, !tbaa !5
  %1517 = load i32, ptr %61, align 4, !tbaa !9
  %1518 = sext i32 %1517 to i64
  %1519 = getelementptr inbounds %struct.doublecomplex, ptr %1516, i64 %1518
  %1520 = getelementptr inbounds %struct.doublecomplex, ptr %1519, i32 0, i32 0
  store double %1515, ptr %1520, align 8, !tbaa !11
  %1521 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %1522 = load double, ptr %1521, align 8, !tbaa !14
  %1523 = load ptr, ptr %53, align 8, !tbaa !5
  %1524 = load i32, ptr %61, align 4, !tbaa !9
  %1525 = sext i32 %1524 to i64
  %1526 = getelementptr inbounds %struct.doublecomplex, ptr %1523, i64 %1525
  %1527 = getelementptr inbounds %struct.doublecomplex, ptr %1526, i32 0, i32 1
  store double %1522, ptr %1527, align 8, !tbaa !14
  br label %1528

1528:                                             ; preds = %1468
  %1529 = load i32, ptr %71, align 4, !tbaa !9
  %1530 = add nsw i32 %1529, 1
  store i32 %1530, ptr %71, align 4, !tbaa !9
  br label %1464, !llvm.loop !30

1531:                                             ; preds = %1464
  br label %1532

1532:                                             ; preds = %1531
  %1533 = load i32, ptr %72, align 4, !tbaa !9
  %1534 = add nsw i32 %1533, 1
  store i32 %1534, ptr %72, align 4, !tbaa !9
  br label %1458, !llvm.loop !31

1535:                                             ; preds = %1458
  br label %1536

1536:                                             ; preds = %1535, %1452
  br label %1537

1537:                                             ; preds = %1536, %1451
  br label %1538

1538:                                             ; preds = %1537, %1385
  br label %2716

1539:                                             ; preds = %1292
  %1540 = load i32, ptr %74, align 4, !tbaa !9
  %1541 = icmp eq i32 %1540, 1
  br i1 %1541, label %1542, label %1677

1542:                                             ; preds = %1539
  %1543 = load ptr, ptr %30, align 8, !tbaa !5
  %1544 = load i32, ptr %1543, align 4, !tbaa !9
  store i32 %1544, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %1545

1545:                                             ; preds = %1673, %1542
  %1546 = load i32, ptr %72, align 4, !tbaa !9
  %1547 = load i32, ptr %59, align 4, !tbaa !9
  %1548 = icmp sle i32 %1546, %1547
  br i1 %1548, label %1549, label %1676

1549:                                             ; preds = %1545
  %1550 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1550, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1551

1551:                                             ; preds = %1669, %1549
  %1552 = load i32, ptr %71, align 4, !tbaa !9
  %1553 = load i32, ptr %60, align 4, !tbaa !9
  %1554 = icmp sle i32 %1552, %1553
  br i1 %1554, label %1555, label %1672

1555:                                             ; preds = %1551
  %1556 = load ptr, ptr %29, align 8, !tbaa !5
  %1557 = load ptr, ptr %30, align 8, !tbaa !5
  %1558 = load ptr, ptr %48, align 8, !tbaa !5
  %1559 = load ptr, ptr %49, align 8, !tbaa !5
  %1560 = load ptr, ptr %32, align 8, !tbaa !5
  %1561 = getelementptr inbounds i32, ptr %1560, i64 1
  %1562 = load ptr, ptr %34, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.doublecomplex, ptr %1562, i64 1
  %1564 = load ptr, ptr %40, align 8, !tbaa !5
  %1565 = getelementptr inbounds %struct.doublecomplex, ptr %1564, i64 1
  %1566 = load ptr, ptr %43, align 8, !tbaa !5
  %1567 = getelementptr inbounds %struct.doublecomplex, ptr %1566, i64 1
  %1568 = load ptr, ptr %55, align 8, !tbaa !5
  %1569 = getelementptr inbounds i32, ptr %1568, i64 1
  %1570 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %1556, ptr noundef %1557, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %1558, ptr noundef %1559, ptr noundef %78, ptr noundef %1561, ptr noundef %1563, ptr noundef %87, ptr noundef %1565, ptr noundef %1567, ptr noundef %91, ptr noundef %1569, ptr noundef %1570)
  %1571 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1572 = load double, ptr %1571, align 8, !tbaa !11
  %1573 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %1572, ptr %1573, align 8, !tbaa !11
  %1574 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1575 = load double, ptr %1574, align 8, !tbaa !14
  %1576 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %1575, ptr %1576, align 8, !tbaa !14
  %1577 = load i32, ptr %67, align 4, !tbaa !9
  %1578 = load i32, ptr %68, align 4, !tbaa !9
  %1579 = icmp sle i32 %1577, %1578
  br i1 %1579, label %1580, label %1582

1580:                                             ; preds = %1555
  %1581 = load i32, ptr %67, align 4, !tbaa !9
  br label %1584

1582:                                             ; preds = %1555
  %1583 = load i32, ptr %68, align 4, !tbaa !9
  br label %1584

1584:                                             ; preds = %1582, %1580
  %1585 = phi i32 [ %1581, %1580 ], [ %1583, %1582 ]
  store i32 %1585, ptr %82, align 4, !tbaa !9
  %1586 = load i32, ptr %67, align 4, !tbaa !9
  %1587 = load i32, ptr %68, align 4, !tbaa !9
  %1588 = icmp sge i32 %1586, %1587
  br i1 %1588, label %1589, label %1591

1589:                                             ; preds = %1584
  %1590 = load i32, ptr %67, align 4, !tbaa !9
  br label %1593

1591:                                             ; preds = %1584
  %1592 = load i32, ptr %68, align 4, !tbaa !9
  br label %1593

1593:                                             ; preds = %1591, %1589
  %1594 = phi i32 [ %1590, %1589 ], [ %1592, %1591 ]
  store i32 %1594, ptr %84, align 4, !tbaa !9
  %1595 = load i32, ptr %84, align 4, !tbaa !9
  %1596 = load i32, ptr %67, align 4, !tbaa !9
  %1597 = icmp eq i32 %1595, %1596
  br i1 %1597, label %1598, label %1628

1598:                                             ; preds = %1593
  %1599 = load i32, ptr %70, align 4, !tbaa !9
  %1600 = icmp eq i32 %1599, 0
  br i1 %1600, label %1601, label %1628

1601:                                             ; preds = %1598
  %1602 = load i32, ptr %82, align 4, !tbaa !9
  %1603 = load i32, ptr %84, align 4, !tbaa !9
  %1604 = load i32, ptr %57, align 4, !tbaa !9
  %1605 = mul nsw i32 %1603, %1604
  %1606 = add nsw i32 %1602, %1605
  store i32 %1606, ptr %61, align 4, !tbaa !9
  %1607 = call { double, double } @Cd(ptr noundef %76)
  %1608 = extractvalue { double, double } %1607, 0
  %1609 = extractvalue { double, double } %1607, 1
  %1610 = fneg double %1609
  %1611 = call ptr @_pCd(ptr noundef %65)
  %1612 = getelementptr inbounds { double, double }, ptr %1611, i32 0, i32 0
  %1613 = getelementptr inbounds { double, double }, ptr %1611, i32 0, i32 1
  store double %1608, ptr %1612, align 8
  store double %1610, ptr %1613, align 8
  %1614 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1615 = load double, ptr %1614, align 8, !tbaa !11
  %1616 = load ptr, ptr %53, align 8, !tbaa !5
  %1617 = load i32, ptr %61, align 4, !tbaa !9
  %1618 = sext i32 %1617 to i64
  %1619 = getelementptr inbounds %struct.doublecomplex, ptr %1616, i64 %1618
  %1620 = getelementptr inbounds %struct.doublecomplex, ptr %1619, i32 0, i32 0
  store double %1615, ptr %1620, align 8, !tbaa !11
  %1621 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1622 = load double, ptr %1621, align 8, !tbaa !14
  %1623 = load ptr, ptr %53, align 8, !tbaa !5
  %1624 = load i32, ptr %61, align 4, !tbaa !9
  %1625 = sext i32 %1624 to i64
  %1626 = getelementptr inbounds %struct.doublecomplex, ptr %1623, i64 %1625
  %1627 = getelementptr inbounds %struct.doublecomplex, ptr %1626, i32 0, i32 1
  store double %1622, ptr %1627, align 8, !tbaa !14
  br label %1648

1628:                                             ; preds = %1598, %1593
  %1629 = load i32, ptr %82, align 4, !tbaa !9
  %1630 = load i32, ptr %84, align 4, !tbaa !9
  %1631 = load i32, ptr %57, align 4, !tbaa !9
  %1632 = mul nsw i32 %1630, %1631
  %1633 = add nsw i32 %1629, %1632
  store i32 %1633, ptr %61, align 4, !tbaa !9
  %1634 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %1635 = load double, ptr %1634, align 8, !tbaa !11
  %1636 = load ptr, ptr %53, align 8, !tbaa !5
  %1637 = load i32, ptr %61, align 4, !tbaa !9
  %1638 = sext i32 %1637 to i64
  %1639 = getelementptr inbounds %struct.doublecomplex, ptr %1636, i64 %1638
  %1640 = getelementptr inbounds %struct.doublecomplex, ptr %1639, i32 0, i32 0
  store double %1635, ptr %1640, align 8, !tbaa !11
  %1641 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %1642 = load double, ptr %1641, align 8, !tbaa !14
  %1643 = load ptr, ptr %53, align 8, !tbaa !5
  %1644 = load i32, ptr %61, align 4, !tbaa !9
  %1645 = sext i32 %1644 to i64
  %1646 = getelementptr inbounds %struct.doublecomplex, ptr %1643, i64 %1645
  %1647 = getelementptr inbounds %struct.doublecomplex, ptr %1646, i32 0, i32 1
  store double %1642, ptr %1647, align 8, !tbaa !14
  br label %1648

1648:                                             ; preds = %1628, %1601
  %1649 = load i32, ptr %82, align 4, !tbaa !9
  %1650 = load i32, ptr %84, align 4, !tbaa !9
  %1651 = icmp ne i32 %1649, %1650
  br i1 %1651, label %1652, label %1668

1652:                                             ; preds = %1648
  %1653 = load i32, ptr %84, align 4, !tbaa !9
  %1654 = load i32, ptr %82, align 4, !tbaa !9
  %1655 = load i32, ptr %57, align 4, !tbaa !9
  %1656 = mul nsw i32 %1654, %1655
  %1657 = add nsw i32 %1653, %1656
  store i32 %1657, ptr %61, align 4, !tbaa !9
  %1658 = load ptr, ptr %53, align 8, !tbaa !5
  %1659 = load i32, ptr %61, align 4, !tbaa !9
  %1660 = sext i32 %1659 to i64
  %1661 = getelementptr inbounds %struct.doublecomplex, ptr %1658, i64 %1660
  %1662 = getelementptr inbounds %struct.doublecomplex, ptr %1661, i32 0, i32 0
  store double 0.000000e+00, ptr %1662, align 8, !tbaa !11
  %1663 = load ptr, ptr %53, align 8, !tbaa !5
  %1664 = load i32, ptr %61, align 4, !tbaa !9
  %1665 = sext i32 %1664 to i64
  %1666 = getelementptr inbounds %struct.doublecomplex, ptr %1663, i64 %1665
  %1667 = getelementptr inbounds %struct.doublecomplex, ptr %1666, i32 0, i32 1
  store double 0.000000e+00, ptr %1667, align 8, !tbaa !14
  br label %1668

1668:                                             ; preds = %1652, %1648
  br label %1669

1669:                                             ; preds = %1668
  %1670 = load i32, ptr %71, align 4, !tbaa !9
  %1671 = add nsw i32 %1670, 1
  store i32 %1671, ptr %71, align 4, !tbaa !9
  br label %1551, !llvm.loop !32

1672:                                             ; preds = %1551
  br label %1673

1673:                                             ; preds = %1672
  %1674 = load i32, ptr %72, align 4, !tbaa !9
  %1675 = add nsw i32 %1674, 1
  store i32 %1675, ptr %72, align 4, !tbaa !9
  br label %1545, !llvm.loop !33

1676:                                             ; preds = %1545
  br label %2715

1677:                                             ; preds = %1539
  %1678 = load i32, ptr %74, align 4, !tbaa !9
  %1679 = icmp eq i32 %1678, 2
  br i1 %1679, label %1680, label %1815

1680:                                             ; preds = %1677
  %1681 = load ptr, ptr %30, align 8, !tbaa !5
  %1682 = load i32, ptr %1681, align 4, !tbaa !9
  store i32 %1682, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %1683

1683:                                             ; preds = %1811, %1680
  %1684 = load i32, ptr %72, align 4, !tbaa !9
  %1685 = load i32, ptr %59, align 4, !tbaa !9
  %1686 = icmp sle i32 %1684, %1685
  br i1 %1686, label %1687, label %1814

1687:                                             ; preds = %1683
  %1688 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1688, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1689

1689:                                             ; preds = %1807, %1687
  %1690 = load i32, ptr %71, align 4, !tbaa !9
  %1691 = load i32, ptr %60, align 4, !tbaa !9
  %1692 = icmp sle i32 %1690, %1691
  br i1 %1692, label %1693, label %1810

1693:                                             ; preds = %1689
  %1694 = load ptr, ptr %29, align 8, !tbaa !5
  %1695 = load ptr, ptr %30, align 8, !tbaa !5
  %1696 = load ptr, ptr %48, align 8, !tbaa !5
  %1697 = load ptr, ptr %49, align 8, !tbaa !5
  %1698 = load ptr, ptr %32, align 8, !tbaa !5
  %1699 = getelementptr inbounds i32, ptr %1698, i64 1
  %1700 = load ptr, ptr %34, align 8, !tbaa !5
  %1701 = getelementptr inbounds %struct.doublecomplex, ptr %1700, i64 1
  %1702 = load ptr, ptr %40, align 8, !tbaa !5
  %1703 = getelementptr inbounds %struct.doublecomplex, ptr %1702, i64 1
  %1704 = load ptr, ptr %43, align 8, !tbaa !5
  %1705 = getelementptr inbounds %struct.doublecomplex, ptr %1704, i64 1
  %1706 = load ptr, ptr %55, align 8, !tbaa !5
  %1707 = getelementptr inbounds i32, ptr %1706, i64 1
  %1708 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %1694, ptr noundef %1695, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %1696, ptr noundef %1697, ptr noundef %78, ptr noundef %1699, ptr noundef %1701, ptr noundef %87, ptr noundef %1703, ptr noundef %1705, ptr noundef %91, ptr noundef %1707, ptr noundef %1708)
  %1709 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1710 = load double, ptr %1709, align 8, !tbaa !11
  %1711 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %1710, ptr %1711, align 8, !tbaa !11
  %1712 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1713 = load double, ptr %1712, align 8, !tbaa !14
  %1714 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %1713, ptr %1714, align 8, !tbaa !14
  %1715 = load i32, ptr %67, align 4, !tbaa !9
  %1716 = load i32, ptr %68, align 4, !tbaa !9
  %1717 = icmp sle i32 %1715, %1716
  br i1 %1717, label %1718, label %1720

1718:                                             ; preds = %1693
  %1719 = load i32, ptr %67, align 4, !tbaa !9
  br label %1722

1720:                                             ; preds = %1693
  %1721 = load i32, ptr %68, align 4, !tbaa !9
  br label %1722

1722:                                             ; preds = %1720, %1718
  %1723 = phi i32 [ %1719, %1718 ], [ %1721, %1720 ]
  store i32 %1723, ptr %82, align 4, !tbaa !9
  %1724 = load i32, ptr %67, align 4, !tbaa !9
  %1725 = load i32, ptr %68, align 4, !tbaa !9
  %1726 = icmp sge i32 %1724, %1725
  br i1 %1726, label %1727, label %1729

1727:                                             ; preds = %1722
  %1728 = load i32, ptr %67, align 4, !tbaa !9
  br label %1731

1729:                                             ; preds = %1722
  %1730 = load i32, ptr %68, align 4, !tbaa !9
  br label %1731

1731:                                             ; preds = %1729, %1727
  %1732 = phi i32 [ %1728, %1727 ], [ %1730, %1729 ]
  store i32 %1732, ptr %84, align 4, !tbaa !9
  %1733 = load i32, ptr %84, align 4, !tbaa !9
  %1734 = load i32, ptr %68, align 4, !tbaa !9
  %1735 = icmp eq i32 %1733, %1734
  br i1 %1735, label %1736, label %1766

1736:                                             ; preds = %1731
  %1737 = load i32, ptr %70, align 4, !tbaa !9
  %1738 = icmp eq i32 %1737, 0
  br i1 %1738, label %1739, label %1766

1739:                                             ; preds = %1736
  %1740 = load i32, ptr %84, align 4, !tbaa !9
  %1741 = load i32, ptr %82, align 4, !tbaa !9
  %1742 = load i32, ptr %57, align 4, !tbaa !9
  %1743 = mul nsw i32 %1741, %1742
  %1744 = add nsw i32 %1740, %1743
  store i32 %1744, ptr %61, align 4, !tbaa !9
  %1745 = call { double, double } @Cd(ptr noundef %76)
  %1746 = extractvalue { double, double } %1745, 0
  %1747 = extractvalue { double, double } %1745, 1
  %1748 = fneg double %1747
  %1749 = call ptr @_pCd(ptr noundef %65)
  %1750 = getelementptr inbounds { double, double }, ptr %1749, i32 0, i32 0
  %1751 = getelementptr inbounds { double, double }, ptr %1749, i32 0, i32 1
  store double %1746, ptr %1750, align 8
  store double %1748, ptr %1751, align 8
  %1752 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1753 = load double, ptr %1752, align 8, !tbaa !11
  %1754 = load ptr, ptr %53, align 8, !tbaa !5
  %1755 = load i32, ptr %61, align 4, !tbaa !9
  %1756 = sext i32 %1755 to i64
  %1757 = getelementptr inbounds %struct.doublecomplex, ptr %1754, i64 %1756
  %1758 = getelementptr inbounds %struct.doublecomplex, ptr %1757, i32 0, i32 0
  store double %1753, ptr %1758, align 8, !tbaa !11
  %1759 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1760 = load double, ptr %1759, align 8, !tbaa !14
  %1761 = load ptr, ptr %53, align 8, !tbaa !5
  %1762 = load i32, ptr %61, align 4, !tbaa !9
  %1763 = sext i32 %1762 to i64
  %1764 = getelementptr inbounds %struct.doublecomplex, ptr %1761, i64 %1763
  %1765 = getelementptr inbounds %struct.doublecomplex, ptr %1764, i32 0, i32 1
  store double %1760, ptr %1765, align 8, !tbaa !14
  br label %1786

1766:                                             ; preds = %1736, %1731
  %1767 = load i32, ptr %84, align 4, !tbaa !9
  %1768 = load i32, ptr %82, align 4, !tbaa !9
  %1769 = load i32, ptr %57, align 4, !tbaa !9
  %1770 = mul nsw i32 %1768, %1769
  %1771 = add nsw i32 %1767, %1770
  store i32 %1771, ptr %61, align 4, !tbaa !9
  %1772 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %1773 = load double, ptr %1772, align 8, !tbaa !11
  %1774 = load ptr, ptr %53, align 8, !tbaa !5
  %1775 = load i32, ptr %61, align 4, !tbaa !9
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds %struct.doublecomplex, ptr %1774, i64 %1776
  %1778 = getelementptr inbounds %struct.doublecomplex, ptr %1777, i32 0, i32 0
  store double %1773, ptr %1778, align 8, !tbaa !11
  %1779 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %1780 = load double, ptr %1779, align 8, !tbaa !14
  %1781 = load ptr, ptr %53, align 8, !tbaa !5
  %1782 = load i32, ptr %61, align 4, !tbaa !9
  %1783 = sext i32 %1782 to i64
  %1784 = getelementptr inbounds %struct.doublecomplex, ptr %1781, i64 %1783
  %1785 = getelementptr inbounds %struct.doublecomplex, ptr %1784, i32 0, i32 1
  store double %1780, ptr %1785, align 8, !tbaa !14
  br label %1786

1786:                                             ; preds = %1766, %1739
  %1787 = load i32, ptr %82, align 4, !tbaa !9
  %1788 = load i32, ptr %84, align 4, !tbaa !9
  %1789 = icmp ne i32 %1787, %1788
  br i1 %1789, label %1790, label %1806

1790:                                             ; preds = %1786
  %1791 = load i32, ptr %82, align 4, !tbaa !9
  %1792 = load i32, ptr %84, align 4, !tbaa !9
  %1793 = load i32, ptr %57, align 4, !tbaa !9
  %1794 = mul nsw i32 %1792, %1793
  %1795 = add nsw i32 %1791, %1794
  store i32 %1795, ptr %61, align 4, !tbaa !9
  %1796 = load ptr, ptr %53, align 8, !tbaa !5
  %1797 = load i32, ptr %61, align 4, !tbaa !9
  %1798 = sext i32 %1797 to i64
  %1799 = getelementptr inbounds %struct.doublecomplex, ptr %1796, i64 %1798
  %1800 = getelementptr inbounds %struct.doublecomplex, ptr %1799, i32 0, i32 0
  store double 0.000000e+00, ptr %1800, align 8, !tbaa !11
  %1801 = load ptr, ptr %53, align 8, !tbaa !5
  %1802 = load i32, ptr %61, align 4, !tbaa !9
  %1803 = sext i32 %1802 to i64
  %1804 = getelementptr inbounds %struct.doublecomplex, ptr %1801, i64 %1803
  %1805 = getelementptr inbounds %struct.doublecomplex, ptr %1804, i32 0, i32 1
  store double 0.000000e+00, ptr %1805, align 8, !tbaa !14
  br label %1806

1806:                                             ; preds = %1790, %1786
  br label %1807

1807:                                             ; preds = %1806
  %1808 = load i32, ptr %71, align 4, !tbaa !9
  %1809 = add nsw i32 %1808, 1
  store i32 %1809, ptr %71, align 4, !tbaa !9
  br label %1689, !llvm.loop !34

1810:                                             ; preds = %1689
  br label %1811

1811:                                             ; preds = %1810
  %1812 = load i32, ptr %72, align 4, !tbaa !9
  %1813 = add nsw i32 %1812, 1
  store i32 %1813, ptr %72, align 4, !tbaa !9
  br label %1683, !llvm.loop !35

1814:                                             ; preds = %1683
  br label %2714

1815:                                             ; preds = %1677
  %1816 = load i32, ptr %74, align 4, !tbaa !9
  %1817 = icmp eq i32 %1816, 3
  br i1 %1817, label %1818, label %1953

1818:                                             ; preds = %1815
  %1819 = load ptr, ptr %30, align 8, !tbaa !5
  %1820 = load i32, ptr %1819, align 4, !tbaa !9
  store i32 %1820, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %1821

1821:                                             ; preds = %1949, %1818
  %1822 = load i32, ptr %72, align 4, !tbaa !9
  %1823 = load i32, ptr %59, align 4, !tbaa !9
  %1824 = icmp sle i32 %1822, %1823
  br i1 %1824, label %1825, label %1952

1825:                                             ; preds = %1821
  %1826 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1826, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1827

1827:                                             ; preds = %1945, %1825
  %1828 = load i32, ptr %71, align 4, !tbaa !9
  %1829 = load i32, ptr %60, align 4, !tbaa !9
  %1830 = icmp sle i32 %1828, %1829
  br i1 %1830, label %1831, label %1948

1831:                                             ; preds = %1827
  %1832 = load ptr, ptr %29, align 8, !tbaa !5
  %1833 = load ptr, ptr %30, align 8, !tbaa !5
  %1834 = load ptr, ptr %48, align 8, !tbaa !5
  %1835 = load ptr, ptr %49, align 8, !tbaa !5
  %1836 = load ptr, ptr %32, align 8, !tbaa !5
  %1837 = getelementptr inbounds i32, ptr %1836, i64 1
  %1838 = load ptr, ptr %34, align 8, !tbaa !5
  %1839 = getelementptr inbounds %struct.doublecomplex, ptr %1838, i64 1
  %1840 = load ptr, ptr %40, align 8, !tbaa !5
  %1841 = getelementptr inbounds %struct.doublecomplex, ptr %1840, i64 1
  %1842 = load ptr, ptr %43, align 8, !tbaa !5
  %1843 = getelementptr inbounds %struct.doublecomplex, ptr %1842, i64 1
  %1844 = load ptr, ptr %55, align 8, !tbaa !5
  %1845 = getelementptr inbounds i32, ptr %1844, i64 1
  %1846 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %1832, ptr noundef %1833, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %1834, ptr noundef %1835, ptr noundef %78, ptr noundef %1837, ptr noundef %1839, ptr noundef %87, ptr noundef %1841, ptr noundef %1843, ptr noundef %91, ptr noundef %1845, ptr noundef %1846)
  %1847 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1848 = load double, ptr %1847, align 8, !tbaa !11
  %1849 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %1848, ptr %1849, align 8, !tbaa !11
  %1850 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1851 = load double, ptr %1850, align 8, !tbaa !14
  %1852 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %1851, ptr %1852, align 8, !tbaa !14
  %1853 = load i32, ptr %67, align 4, !tbaa !9
  %1854 = load i32, ptr %68, align 4, !tbaa !9
  %1855 = icmp sle i32 %1853, %1854
  br i1 %1855, label %1856, label %1858

1856:                                             ; preds = %1831
  %1857 = load i32, ptr %67, align 4, !tbaa !9
  br label %1860

1858:                                             ; preds = %1831
  %1859 = load i32, ptr %68, align 4, !tbaa !9
  br label %1860

1860:                                             ; preds = %1858, %1856
  %1861 = phi i32 [ %1857, %1856 ], [ %1859, %1858 ]
  store i32 %1861, ptr %82, align 4, !tbaa !9
  %1862 = load i32, ptr %67, align 4, !tbaa !9
  %1863 = load i32, ptr %68, align 4, !tbaa !9
  %1864 = icmp sge i32 %1862, %1863
  br i1 %1864, label %1865, label %1867

1865:                                             ; preds = %1860
  %1866 = load i32, ptr %67, align 4, !tbaa !9
  br label %1869

1867:                                             ; preds = %1860
  %1868 = load i32, ptr %68, align 4, !tbaa !9
  br label %1869

1869:                                             ; preds = %1867, %1865
  %1870 = phi i32 [ %1866, %1865 ], [ %1868, %1867 ]
  store i32 %1870, ptr %84, align 4, !tbaa !9
  %1871 = load i32, ptr %84, align 4, !tbaa !9
  %1872 = load i32, ptr %84, align 4, !tbaa !9
  %1873 = sub nsw i32 %1872, 1
  %1874 = mul nsw i32 %1871, %1873
  %1875 = sdiv i32 %1874, 2
  %1876 = load i32, ptr %82, align 4, !tbaa !9
  %1877 = add nsw i32 %1875, %1876
  store i32 %1877, ptr %73, align 4, !tbaa !9
  %1878 = load i32, ptr %73, align 4, !tbaa !9
  %1879 = sub nsw i32 %1878, 1
  %1880 = load ptr, ptr %54, align 8, !tbaa !5
  %1881 = load i32, ptr %1880, align 4, !tbaa !9
  %1882 = sdiv i32 %1879, %1881
  %1883 = add nsw i32 %1882, 1
  store i32 %1883, ptr %79, align 4, !tbaa !9
  %1884 = load i32, ptr %73, align 4, !tbaa !9
  %1885 = load ptr, ptr %54, align 8, !tbaa !5
  %1886 = load i32, ptr %1885, align 4, !tbaa !9
  %1887 = load i32, ptr %79, align 4, !tbaa !9
  %1888 = sub nsw i32 %1887, 1
  %1889 = mul nsw i32 %1886, %1888
  %1890 = sub nsw i32 %1884, %1889
  store i32 %1890, ptr %77, align 4, !tbaa !9
  %1891 = load i32, ptr %84, align 4, !tbaa !9
  %1892 = load i32, ptr %67, align 4, !tbaa !9
  %1893 = icmp eq i32 %1891, %1892
  br i1 %1893, label %1894, label %1924

1894:                                             ; preds = %1869
  %1895 = load i32, ptr %70, align 4, !tbaa !9
  %1896 = icmp eq i32 %1895, 0
  br i1 %1896, label %1897, label %1924

1897:                                             ; preds = %1894
  %1898 = load i32, ptr %77, align 4, !tbaa !9
  %1899 = load i32, ptr %79, align 4, !tbaa !9
  %1900 = load i32, ptr %57, align 4, !tbaa !9
  %1901 = mul nsw i32 %1899, %1900
  %1902 = add nsw i32 %1898, %1901
  store i32 %1902, ptr %61, align 4, !tbaa !9
  %1903 = call { double, double } @Cd(ptr noundef %76)
  %1904 = extractvalue { double, double } %1903, 0
  %1905 = extractvalue { double, double } %1903, 1
  %1906 = fneg double %1905
  %1907 = call ptr @_pCd(ptr noundef %65)
  %1908 = getelementptr inbounds { double, double }, ptr %1907, i32 0, i32 0
  %1909 = getelementptr inbounds { double, double }, ptr %1907, i32 0, i32 1
  store double %1904, ptr %1908, align 8
  store double %1906, ptr %1909, align 8
  %1910 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1911 = load double, ptr %1910, align 8, !tbaa !11
  %1912 = load ptr, ptr %53, align 8, !tbaa !5
  %1913 = load i32, ptr %61, align 4, !tbaa !9
  %1914 = sext i32 %1913 to i64
  %1915 = getelementptr inbounds %struct.doublecomplex, ptr %1912, i64 %1914
  %1916 = getelementptr inbounds %struct.doublecomplex, ptr %1915, i32 0, i32 0
  store double %1911, ptr %1916, align 8, !tbaa !11
  %1917 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1918 = load double, ptr %1917, align 8, !tbaa !14
  %1919 = load ptr, ptr %53, align 8, !tbaa !5
  %1920 = load i32, ptr %61, align 4, !tbaa !9
  %1921 = sext i32 %1920 to i64
  %1922 = getelementptr inbounds %struct.doublecomplex, ptr %1919, i64 %1921
  %1923 = getelementptr inbounds %struct.doublecomplex, ptr %1922, i32 0, i32 1
  store double %1918, ptr %1923, align 8, !tbaa !14
  br label %1944

1924:                                             ; preds = %1894, %1869
  %1925 = load i32, ptr %77, align 4, !tbaa !9
  %1926 = load i32, ptr %79, align 4, !tbaa !9
  %1927 = load i32, ptr %57, align 4, !tbaa !9
  %1928 = mul nsw i32 %1926, %1927
  %1929 = add nsw i32 %1925, %1928
  store i32 %1929, ptr %61, align 4, !tbaa !9
  %1930 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %1931 = load double, ptr %1930, align 8, !tbaa !11
  %1932 = load ptr, ptr %53, align 8, !tbaa !5
  %1933 = load i32, ptr %61, align 4, !tbaa !9
  %1934 = sext i32 %1933 to i64
  %1935 = getelementptr inbounds %struct.doublecomplex, ptr %1932, i64 %1934
  %1936 = getelementptr inbounds %struct.doublecomplex, ptr %1935, i32 0, i32 0
  store double %1931, ptr %1936, align 8, !tbaa !11
  %1937 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %1938 = load double, ptr %1937, align 8, !tbaa !14
  %1939 = load ptr, ptr %53, align 8, !tbaa !5
  %1940 = load i32, ptr %61, align 4, !tbaa !9
  %1941 = sext i32 %1940 to i64
  %1942 = getelementptr inbounds %struct.doublecomplex, ptr %1939, i64 %1941
  %1943 = getelementptr inbounds %struct.doublecomplex, ptr %1942, i32 0, i32 1
  store double %1938, ptr %1943, align 8, !tbaa !14
  br label %1944

1944:                                             ; preds = %1924, %1897
  br label %1945

1945:                                             ; preds = %1944
  %1946 = load i32, ptr %71, align 4, !tbaa !9
  %1947 = add nsw i32 %1946, 1
  store i32 %1947, ptr %71, align 4, !tbaa !9
  br label %1827, !llvm.loop !36

1948:                                             ; preds = %1827
  br label %1949

1949:                                             ; preds = %1948
  %1950 = load i32, ptr %72, align 4, !tbaa !9
  %1951 = add nsw i32 %1950, 1
  store i32 %1951, ptr %72, align 4, !tbaa !9
  br label %1821, !llvm.loop !37

1952:                                             ; preds = %1821
  br label %2713

1953:                                             ; preds = %1815
  %1954 = load i32, ptr %74, align 4, !tbaa !9
  %1955 = icmp eq i32 %1954, 4
  br i1 %1955, label %1956, label %2115

1956:                                             ; preds = %1953
  %1957 = load ptr, ptr %30, align 8, !tbaa !5
  %1958 = load i32, ptr %1957, align 4, !tbaa !9
  store i32 %1958, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %1959

1959:                                             ; preds = %2111, %1956
  %1960 = load i32, ptr %72, align 4, !tbaa !9
  %1961 = load i32, ptr %59, align 4, !tbaa !9
  %1962 = icmp sle i32 %1960, %1961
  br i1 %1962, label %1963, label %2114

1963:                                             ; preds = %1959
  %1964 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %1964, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %1965

1965:                                             ; preds = %2107, %1963
  %1966 = load i32, ptr %71, align 4, !tbaa !9
  %1967 = load i32, ptr %60, align 4, !tbaa !9
  %1968 = icmp sle i32 %1966, %1967
  br i1 %1968, label %1969, label %2110

1969:                                             ; preds = %1965
  %1970 = load ptr, ptr %29, align 8, !tbaa !5
  %1971 = load ptr, ptr %30, align 8, !tbaa !5
  %1972 = load ptr, ptr %48, align 8, !tbaa !5
  %1973 = load ptr, ptr %49, align 8, !tbaa !5
  %1974 = load ptr, ptr %32, align 8, !tbaa !5
  %1975 = getelementptr inbounds i32, ptr %1974, i64 1
  %1976 = load ptr, ptr %34, align 8, !tbaa !5
  %1977 = getelementptr inbounds %struct.doublecomplex, ptr %1976, i64 1
  %1978 = load ptr, ptr %40, align 8, !tbaa !5
  %1979 = getelementptr inbounds %struct.doublecomplex, ptr %1978, i64 1
  %1980 = load ptr, ptr %43, align 8, !tbaa !5
  %1981 = getelementptr inbounds %struct.doublecomplex, ptr %1980, i64 1
  %1982 = load ptr, ptr %55, align 8, !tbaa !5
  %1983 = getelementptr inbounds i32, ptr %1982, i64 1
  %1984 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %1970, ptr noundef %1971, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %1972, ptr noundef %1973, ptr noundef %78, ptr noundef %1975, ptr noundef %1977, ptr noundef %87, ptr noundef %1979, ptr noundef %1981, ptr noundef %91, ptr noundef %1983, ptr noundef %1984)
  %1985 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %1986 = load double, ptr %1985, align 8, !tbaa !11
  %1987 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %1986, ptr %1987, align 8, !tbaa !11
  %1988 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %1989 = load double, ptr %1988, align 8, !tbaa !14
  %1990 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %1989, ptr %1990, align 8, !tbaa !14
  %1991 = load i32, ptr %67, align 4, !tbaa !9
  %1992 = load i32, ptr %68, align 4, !tbaa !9
  %1993 = icmp sle i32 %1991, %1992
  br i1 %1993, label %1994, label %1996

1994:                                             ; preds = %1969
  %1995 = load i32, ptr %67, align 4, !tbaa !9
  br label %1998

1996:                                             ; preds = %1969
  %1997 = load i32, ptr %68, align 4, !tbaa !9
  br label %1998

1998:                                             ; preds = %1996, %1994
  %1999 = phi i32 [ %1995, %1994 ], [ %1997, %1996 ]
  store i32 %1999, ptr %82, align 4, !tbaa !9
  %2000 = load i32, ptr %67, align 4, !tbaa !9
  %2001 = load i32, ptr %68, align 4, !tbaa !9
  %2002 = icmp sge i32 %2000, %2001
  br i1 %2002, label %2003, label %2005

2003:                                             ; preds = %1998
  %2004 = load i32, ptr %67, align 4, !tbaa !9
  br label %2007

2005:                                             ; preds = %1998
  %2006 = load i32, ptr %68, align 4, !tbaa !9
  br label %2007

2007:                                             ; preds = %2005, %2003
  %2008 = phi i32 [ %2004, %2003 ], [ %2006, %2005 ]
  store i32 %2008, ptr %84, align 4, !tbaa !9
  %2009 = load i32, ptr %82, align 4, !tbaa !9
  %2010 = icmp eq i32 %2009, 1
  br i1 %2010, label %2011, label %2013

2011:                                             ; preds = %2007
  %2012 = load i32, ptr %84, align 4, !tbaa !9
  store i32 %2012, ptr %73, align 4, !tbaa !9
  br label %2039

2013:                                             ; preds = %2007
  %2014 = load ptr, ptr %30, align 8, !tbaa !5
  %2015 = load i32, ptr %2014, align 4, !tbaa !9
  %2016 = load ptr, ptr %30, align 8, !tbaa !5
  %2017 = load i32, ptr %2016, align 4, !tbaa !9
  %2018 = add nsw i32 %2017, 1
  %2019 = mul nsw i32 %2015, %2018
  %2020 = sdiv i32 %2019, 2
  %2021 = load ptr, ptr %30, align 8, !tbaa !5
  %2022 = load i32, ptr %2021, align 4, !tbaa !9
  %2023 = load i32, ptr %82, align 4, !tbaa !9
  %2024 = sub nsw i32 %2022, %2023
  %2025 = add nsw i32 %2024, 1
  %2026 = load ptr, ptr %30, align 8, !tbaa !5
  %2027 = load i32, ptr %2026, align 4, !tbaa !9
  %2028 = load i32, ptr %82, align 4, !tbaa !9
  %2029 = sub nsw i32 %2027, %2028
  %2030 = add nsw i32 %2029, 2
  %2031 = mul nsw i32 %2025, %2030
  %2032 = sdiv i32 %2031, 2
  %2033 = sub nsw i32 %2020, %2032
  %2034 = load i32, ptr %84, align 4, !tbaa !9
  %2035 = add nsw i32 %2033, %2034
  %2036 = load i32, ptr %82, align 4, !tbaa !9
  %2037 = sub nsw i32 %2035, %2036
  %2038 = add nsw i32 %2037, 1
  store i32 %2038, ptr %73, align 4, !tbaa !9
  br label %2039

2039:                                             ; preds = %2013, %2011
  %2040 = load i32, ptr %73, align 4, !tbaa !9
  %2041 = sub nsw i32 %2040, 1
  %2042 = load ptr, ptr %54, align 8, !tbaa !5
  %2043 = load i32, ptr %2042, align 4, !tbaa !9
  %2044 = sdiv i32 %2041, %2043
  %2045 = add nsw i32 %2044, 1
  store i32 %2045, ptr %79, align 4, !tbaa !9
  %2046 = load i32, ptr %73, align 4, !tbaa !9
  %2047 = load ptr, ptr %54, align 8, !tbaa !5
  %2048 = load i32, ptr %2047, align 4, !tbaa !9
  %2049 = load i32, ptr %79, align 4, !tbaa !9
  %2050 = sub nsw i32 %2049, 1
  %2051 = mul nsw i32 %2048, %2050
  %2052 = sub nsw i32 %2046, %2051
  store i32 %2052, ptr %77, align 4, !tbaa !9
  %2053 = load i32, ptr %84, align 4, !tbaa !9
  %2054 = load i32, ptr %68, align 4, !tbaa !9
  %2055 = icmp eq i32 %2053, %2054
  br i1 %2055, label %2056, label %2086

2056:                                             ; preds = %2039
  %2057 = load i32, ptr %70, align 4, !tbaa !9
  %2058 = icmp eq i32 %2057, 0
  br i1 %2058, label %2059, label %2086

2059:                                             ; preds = %2056
  %2060 = load i32, ptr %77, align 4, !tbaa !9
  %2061 = load i32, ptr %79, align 4, !tbaa !9
  %2062 = load i32, ptr %57, align 4, !tbaa !9
  %2063 = mul nsw i32 %2061, %2062
  %2064 = add nsw i32 %2060, %2063
  store i32 %2064, ptr %61, align 4, !tbaa !9
  %2065 = call { double, double } @Cd(ptr noundef %76)
  %2066 = extractvalue { double, double } %2065, 0
  %2067 = extractvalue { double, double } %2065, 1
  %2068 = fneg double %2067
  %2069 = call ptr @_pCd(ptr noundef %65)
  %2070 = getelementptr inbounds { double, double }, ptr %2069, i32 0, i32 0
  %2071 = getelementptr inbounds { double, double }, ptr %2069, i32 0, i32 1
  store double %2066, ptr %2070, align 8
  store double %2068, ptr %2071, align 8
  %2072 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2073 = load double, ptr %2072, align 8, !tbaa !11
  %2074 = load ptr, ptr %53, align 8, !tbaa !5
  %2075 = load i32, ptr %61, align 4, !tbaa !9
  %2076 = sext i32 %2075 to i64
  %2077 = getelementptr inbounds %struct.doublecomplex, ptr %2074, i64 %2076
  %2078 = getelementptr inbounds %struct.doublecomplex, ptr %2077, i32 0, i32 0
  store double %2073, ptr %2078, align 8, !tbaa !11
  %2079 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2080 = load double, ptr %2079, align 8, !tbaa !14
  %2081 = load ptr, ptr %53, align 8, !tbaa !5
  %2082 = load i32, ptr %61, align 4, !tbaa !9
  %2083 = sext i32 %2082 to i64
  %2084 = getelementptr inbounds %struct.doublecomplex, ptr %2081, i64 %2083
  %2085 = getelementptr inbounds %struct.doublecomplex, ptr %2084, i32 0, i32 1
  store double %2080, ptr %2085, align 8, !tbaa !14
  br label %2106

2086:                                             ; preds = %2056, %2039
  %2087 = load i32, ptr %77, align 4, !tbaa !9
  %2088 = load i32, ptr %79, align 4, !tbaa !9
  %2089 = load i32, ptr %57, align 4, !tbaa !9
  %2090 = mul nsw i32 %2088, %2089
  %2091 = add nsw i32 %2087, %2090
  store i32 %2091, ptr %61, align 4, !tbaa !9
  %2092 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %2093 = load double, ptr %2092, align 8, !tbaa !11
  %2094 = load ptr, ptr %53, align 8, !tbaa !5
  %2095 = load i32, ptr %61, align 4, !tbaa !9
  %2096 = sext i32 %2095 to i64
  %2097 = getelementptr inbounds %struct.doublecomplex, ptr %2094, i64 %2096
  %2098 = getelementptr inbounds %struct.doublecomplex, ptr %2097, i32 0, i32 0
  store double %2093, ptr %2098, align 8, !tbaa !11
  %2099 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %2100 = load double, ptr %2099, align 8, !tbaa !14
  %2101 = load ptr, ptr %53, align 8, !tbaa !5
  %2102 = load i32, ptr %61, align 4, !tbaa !9
  %2103 = sext i32 %2102 to i64
  %2104 = getelementptr inbounds %struct.doublecomplex, ptr %2101, i64 %2103
  %2105 = getelementptr inbounds %struct.doublecomplex, ptr %2104, i32 0, i32 1
  store double %2100, ptr %2105, align 8, !tbaa !14
  br label %2106

2106:                                             ; preds = %2086, %2059
  br label %2107

2107:                                             ; preds = %2106
  %2108 = load i32, ptr %71, align 4, !tbaa !9
  %2109 = add nsw i32 %2108, 1
  store i32 %2109, ptr %71, align 4, !tbaa !9
  br label %1965, !llvm.loop !38

2110:                                             ; preds = %1965
  br label %2111

2111:                                             ; preds = %2110
  %2112 = load i32, ptr %72, align 4, !tbaa !9
  %2113 = add nsw i32 %2112, 1
  store i32 %2113, ptr %72, align 4, !tbaa !9
  br label %1959, !llvm.loop !39

2114:                                             ; preds = %1959
  br label %2712

2115:                                             ; preds = %1953
  %2116 = load i32, ptr %74, align 4, !tbaa !9
  %2117 = icmp eq i32 %2116, 5
  br i1 %2117, label %2118, label %2268

2118:                                             ; preds = %2115
  %2119 = load ptr, ptr %30, align 8, !tbaa !5
  %2120 = load i32, ptr %2119, align 4, !tbaa !9
  store i32 %2120, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %2121

2121:                                             ; preds = %2264, %2118
  %2122 = load i32, ptr %72, align 4, !tbaa !9
  %2123 = load i32, ptr %59, align 4, !tbaa !9
  %2124 = icmp sle i32 %2122, %2123
  br i1 %2124, label %2125, label %2267

2125:                                             ; preds = %2121
  %2126 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2126, ptr %60, align 4, !tbaa !9
  %2127 = load i32, ptr %72, align 4, !tbaa !9
  %2128 = load i32, ptr %93, align 4, !tbaa !9
  %2129 = sub nsw i32 %2127, %2128
  store i32 %2129, ptr %71, align 4, !tbaa !9
  br label %2130

2130:                                             ; preds = %2260, %2125
  %2131 = load i32, ptr %71, align 4, !tbaa !9
  %2132 = load i32, ptr %60, align 4, !tbaa !9
  %2133 = icmp sle i32 %2131, %2132
  br i1 %2133, label %2134, label %2263

2134:                                             ; preds = %2130
  %2135 = load i32, ptr %71, align 4, !tbaa !9
  %2136 = icmp slt i32 %2135, 1
  br i1 %2136, label %2137, label %2159

2137:                                             ; preds = %2134
  %2138 = load i32, ptr %72, align 4, !tbaa !9
  %2139 = load i32, ptr %71, align 4, !tbaa !9
  %2140 = sub nsw i32 %2138, %2139
  %2141 = add nsw i32 %2140, 1
  %2142 = load i32, ptr %71, align 4, !tbaa !9
  %2143 = load ptr, ptr %30, align 8, !tbaa !5
  %2144 = load i32, ptr %2143, align 4, !tbaa !9
  %2145 = add nsw i32 %2142, %2144
  %2146 = load i32, ptr %57, align 4, !tbaa !9
  %2147 = mul nsw i32 %2145, %2146
  %2148 = add nsw i32 %2141, %2147
  store i32 %2148, ptr %61, align 4, !tbaa !9
  %2149 = load ptr, ptr %53, align 8, !tbaa !5
  %2150 = load i32, ptr %61, align 4, !tbaa !9
  %2151 = sext i32 %2150 to i64
  %2152 = getelementptr inbounds %struct.doublecomplex, ptr %2149, i64 %2151
  %2153 = getelementptr inbounds %struct.doublecomplex, ptr %2152, i32 0, i32 0
  store double 0.000000e+00, ptr %2153, align 8, !tbaa !11
  %2154 = load ptr, ptr %53, align 8, !tbaa !5
  %2155 = load i32, ptr %61, align 4, !tbaa !9
  %2156 = sext i32 %2155 to i64
  %2157 = getelementptr inbounds %struct.doublecomplex, ptr %2154, i64 %2156
  %2158 = getelementptr inbounds %struct.doublecomplex, ptr %2157, i32 0, i32 1
  store double 0.000000e+00, ptr %2158, align 8, !tbaa !14
  br label %2259

2159:                                             ; preds = %2134
  %2160 = load ptr, ptr %29, align 8, !tbaa !5
  %2161 = load ptr, ptr %30, align 8, !tbaa !5
  %2162 = load ptr, ptr %48, align 8, !tbaa !5
  %2163 = load ptr, ptr %49, align 8, !tbaa !5
  %2164 = load ptr, ptr %32, align 8, !tbaa !5
  %2165 = getelementptr inbounds i32, ptr %2164, i64 1
  %2166 = load ptr, ptr %34, align 8, !tbaa !5
  %2167 = getelementptr inbounds %struct.doublecomplex, ptr %2166, i64 1
  %2168 = load ptr, ptr %40, align 8, !tbaa !5
  %2169 = getelementptr inbounds %struct.doublecomplex, ptr %2168, i64 1
  %2170 = load ptr, ptr %43, align 8, !tbaa !5
  %2171 = getelementptr inbounds %struct.doublecomplex, ptr %2170, i64 1
  %2172 = load ptr, ptr %55, align 8, !tbaa !5
  %2173 = getelementptr inbounds i32, ptr %2172, i64 1
  %2174 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %2160, ptr noundef %2161, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %2162, ptr noundef %2163, ptr noundef %78, ptr noundef %2165, ptr noundef %2167, ptr noundef %87, ptr noundef %2169, ptr noundef %2171, ptr noundef %91, ptr noundef %2173, ptr noundef %2174)
  %2175 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2176 = load double, ptr %2175, align 8, !tbaa !11
  %2177 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %2176, ptr %2177, align 8, !tbaa !11
  %2178 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2179 = load double, ptr %2178, align 8, !tbaa !14
  %2180 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %2179, ptr %2180, align 8, !tbaa !14
  %2181 = load i32, ptr %67, align 4, !tbaa !9
  %2182 = load i32, ptr %68, align 4, !tbaa !9
  %2183 = icmp sle i32 %2181, %2182
  br i1 %2183, label %2184, label %2186

2184:                                             ; preds = %2159
  %2185 = load i32, ptr %67, align 4, !tbaa !9
  br label %2188

2186:                                             ; preds = %2159
  %2187 = load i32, ptr %68, align 4, !tbaa !9
  br label %2188

2188:                                             ; preds = %2186, %2184
  %2189 = phi i32 [ %2185, %2184 ], [ %2187, %2186 ]
  store i32 %2189, ptr %82, align 4, !tbaa !9
  %2190 = load i32, ptr %67, align 4, !tbaa !9
  %2191 = load i32, ptr %68, align 4, !tbaa !9
  %2192 = icmp sge i32 %2190, %2191
  br i1 %2192, label %2193, label %2195

2193:                                             ; preds = %2188
  %2194 = load i32, ptr %67, align 4, !tbaa !9
  br label %2197

2195:                                             ; preds = %2188
  %2196 = load i32, ptr %68, align 4, !tbaa !9
  br label %2197

2197:                                             ; preds = %2195, %2193
  %2198 = phi i32 [ %2194, %2193 ], [ %2196, %2195 ]
  store i32 %2198, ptr %84, align 4, !tbaa !9
  %2199 = load i32, ptr %84, align 4, !tbaa !9
  %2200 = load i32, ptr %68, align 4, !tbaa !9
  %2201 = icmp eq i32 %2199, %2200
  br i1 %2201, label %2202, label %2235

2202:                                             ; preds = %2197
  %2203 = load i32, ptr %70, align 4, !tbaa !9
  %2204 = icmp eq i32 %2203, 0
  br i1 %2204, label %2205, label %2235

2205:                                             ; preds = %2202
  %2206 = load i32, ptr %84, align 4, !tbaa !9
  %2207 = load i32, ptr %82, align 4, !tbaa !9
  %2208 = sub nsw i32 %2206, %2207
  %2209 = add nsw i32 %2208, 1
  %2210 = load i32, ptr %82, align 4, !tbaa !9
  %2211 = load i32, ptr %57, align 4, !tbaa !9
  %2212 = mul nsw i32 %2210, %2211
  %2213 = add nsw i32 %2209, %2212
  store i32 %2213, ptr %61, align 4, !tbaa !9
  %2214 = call { double, double } @Cd(ptr noundef %76)
  %2215 = extractvalue { double, double } %2214, 0
  %2216 = extractvalue { double, double } %2214, 1
  %2217 = fneg double %2216
  %2218 = call ptr @_pCd(ptr noundef %65)
  %2219 = getelementptr inbounds { double, double }, ptr %2218, i32 0, i32 0
  %2220 = getelementptr inbounds { double, double }, ptr %2218, i32 0, i32 1
  store double %2215, ptr %2219, align 8
  store double %2217, ptr %2220, align 8
  %2221 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2222 = load double, ptr %2221, align 8, !tbaa !11
  %2223 = load ptr, ptr %53, align 8, !tbaa !5
  %2224 = load i32, ptr %61, align 4, !tbaa !9
  %2225 = sext i32 %2224 to i64
  %2226 = getelementptr inbounds %struct.doublecomplex, ptr %2223, i64 %2225
  %2227 = getelementptr inbounds %struct.doublecomplex, ptr %2226, i32 0, i32 0
  store double %2222, ptr %2227, align 8, !tbaa !11
  %2228 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2229 = load double, ptr %2228, align 8, !tbaa !14
  %2230 = load ptr, ptr %53, align 8, !tbaa !5
  %2231 = load i32, ptr %61, align 4, !tbaa !9
  %2232 = sext i32 %2231 to i64
  %2233 = getelementptr inbounds %struct.doublecomplex, ptr %2230, i64 %2232
  %2234 = getelementptr inbounds %struct.doublecomplex, ptr %2233, i32 0, i32 1
  store double %2229, ptr %2234, align 8, !tbaa !14
  br label %2258

2235:                                             ; preds = %2202, %2197
  %2236 = load i32, ptr %84, align 4, !tbaa !9
  %2237 = load i32, ptr %82, align 4, !tbaa !9
  %2238 = sub nsw i32 %2236, %2237
  %2239 = add nsw i32 %2238, 1
  %2240 = load i32, ptr %82, align 4, !tbaa !9
  %2241 = load i32, ptr %57, align 4, !tbaa !9
  %2242 = mul nsw i32 %2240, %2241
  %2243 = add nsw i32 %2239, %2242
  store i32 %2243, ptr %61, align 4, !tbaa !9
  %2244 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %2245 = load double, ptr %2244, align 8, !tbaa !11
  %2246 = load ptr, ptr %53, align 8, !tbaa !5
  %2247 = load i32, ptr %61, align 4, !tbaa !9
  %2248 = sext i32 %2247 to i64
  %2249 = getelementptr inbounds %struct.doublecomplex, ptr %2246, i64 %2248
  %2250 = getelementptr inbounds %struct.doublecomplex, ptr %2249, i32 0, i32 0
  store double %2245, ptr %2250, align 8, !tbaa !11
  %2251 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %2252 = load double, ptr %2251, align 8, !tbaa !14
  %2253 = load ptr, ptr %53, align 8, !tbaa !5
  %2254 = load i32, ptr %61, align 4, !tbaa !9
  %2255 = sext i32 %2254 to i64
  %2256 = getelementptr inbounds %struct.doublecomplex, ptr %2253, i64 %2255
  %2257 = getelementptr inbounds %struct.doublecomplex, ptr %2256, i32 0, i32 1
  store double %2252, ptr %2257, align 8, !tbaa !14
  br label %2258

2258:                                             ; preds = %2235, %2205
  br label %2259

2259:                                             ; preds = %2258, %2137
  br label %2260

2260:                                             ; preds = %2259
  %2261 = load i32, ptr %71, align 4, !tbaa !9
  %2262 = add nsw i32 %2261, 1
  store i32 %2262, ptr %71, align 4, !tbaa !9
  br label %2130, !llvm.loop !40

2263:                                             ; preds = %2130
  br label %2264

2264:                                             ; preds = %2263
  %2265 = load i32, ptr %72, align 4, !tbaa !9
  %2266 = add nsw i32 %2265, 1
  store i32 %2266, ptr %72, align 4, !tbaa !9
  br label %2121, !llvm.loop !41

2267:                                             ; preds = %2121
  br label %2711

2268:                                             ; preds = %2115
  %2269 = load i32, ptr %74, align 4, !tbaa !9
  %2270 = icmp eq i32 %2269, 6
  br i1 %2270, label %2271, label %2399

2271:                                             ; preds = %2268
  %2272 = load ptr, ptr %30, align 8, !tbaa !5
  %2273 = load i32, ptr %2272, align 4, !tbaa !9
  store i32 %2273, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %2274

2274:                                             ; preds = %2395, %2271
  %2275 = load i32, ptr %72, align 4, !tbaa !9
  %2276 = load i32, ptr %59, align 4, !tbaa !9
  %2277 = icmp sle i32 %2275, %2276
  br i1 %2277, label %2278, label %2398

2278:                                             ; preds = %2274
  %2279 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2279, ptr %60, align 4, !tbaa !9
  %2280 = load i32, ptr %72, align 4, !tbaa !9
  %2281 = load i32, ptr %93, align 4, !tbaa !9
  %2282 = sub nsw i32 %2280, %2281
  store i32 %2282, ptr %71, align 4, !tbaa !9
  br label %2283

2283:                                             ; preds = %2391, %2278
  %2284 = load i32, ptr %71, align 4, !tbaa !9
  %2285 = load i32, ptr %60, align 4, !tbaa !9
  %2286 = icmp sle i32 %2284, %2285
  br i1 %2286, label %2287, label %2394

2287:                                             ; preds = %2283
  %2288 = load ptr, ptr %29, align 8, !tbaa !5
  %2289 = load ptr, ptr %30, align 8, !tbaa !5
  %2290 = load ptr, ptr %48, align 8, !tbaa !5
  %2291 = load ptr, ptr %49, align 8, !tbaa !5
  %2292 = load ptr, ptr %32, align 8, !tbaa !5
  %2293 = getelementptr inbounds i32, ptr %2292, i64 1
  %2294 = load ptr, ptr %34, align 8, !tbaa !5
  %2295 = getelementptr inbounds %struct.doublecomplex, ptr %2294, i64 1
  %2296 = load ptr, ptr %40, align 8, !tbaa !5
  %2297 = getelementptr inbounds %struct.doublecomplex, ptr %2296, i64 1
  %2298 = load ptr, ptr %43, align 8, !tbaa !5
  %2299 = getelementptr inbounds %struct.doublecomplex, ptr %2298, i64 1
  %2300 = load ptr, ptr %55, align 8, !tbaa !5
  %2301 = getelementptr inbounds i32, ptr %2300, i64 1
  %2302 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %2288, ptr noundef %2289, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %2290, ptr noundef %2291, ptr noundef %78, ptr noundef %2293, ptr noundef %2295, ptr noundef %87, ptr noundef %2297, ptr noundef %2299, ptr noundef %91, ptr noundef %2301, ptr noundef %2302)
  %2303 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2304 = load double, ptr %2303, align 8, !tbaa !11
  %2305 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %2304, ptr %2305, align 8, !tbaa !11
  %2306 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2307 = load double, ptr %2306, align 8, !tbaa !14
  %2308 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %2307, ptr %2308, align 8, !tbaa !14
  %2309 = load i32, ptr %67, align 4, !tbaa !9
  %2310 = load i32, ptr %68, align 4, !tbaa !9
  %2311 = icmp sle i32 %2309, %2310
  br i1 %2311, label %2312, label %2314

2312:                                             ; preds = %2287
  %2313 = load i32, ptr %67, align 4, !tbaa !9
  br label %2316

2314:                                             ; preds = %2287
  %2315 = load i32, ptr %68, align 4, !tbaa !9
  br label %2316

2316:                                             ; preds = %2314, %2312
  %2317 = phi i32 [ %2313, %2312 ], [ %2315, %2314 ]
  store i32 %2317, ptr %82, align 4, !tbaa !9
  %2318 = load i32, ptr %67, align 4, !tbaa !9
  %2319 = load i32, ptr %68, align 4, !tbaa !9
  %2320 = icmp sge i32 %2318, %2319
  br i1 %2320, label %2321, label %2323

2321:                                             ; preds = %2316
  %2322 = load i32, ptr %67, align 4, !tbaa !9
  br label %2325

2323:                                             ; preds = %2316
  %2324 = load i32, ptr %68, align 4, !tbaa !9
  br label %2325

2325:                                             ; preds = %2323, %2321
  %2326 = phi i32 [ %2322, %2321 ], [ %2324, %2323 ]
  store i32 %2326, ptr %84, align 4, !tbaa !9
  %2327 = load i32, ptr %84, align 4, !tbaa !9
  %2328 = load i32, ptr %67, align 4, !tbaa !9
  %2329 = icmp eq i32 %2327, %2328
  br i1 %2329, label %2330, label %2365

2330:                                             ; preds = %2325
  %2331 = load i32, ptr %70, align 4, !tbaa !9
  %2332 = icmp eq i32 %2331, 0
  br i1 %2332, label %2333, label %2365

2333:                                             ; preds = %2330
  %2334 = load i32, ptr %82, align 4, !tbaa !9
  %2335 = load i32, ptr %84, align 4, !tbaa !9
  %2336 = sub nsw i32 %2334, %2335
  %2337 = load i32, ptr %93, align 4, !tbaa !9
  %2338 = add nsw i32 %2336, %2337
  %2339 = add nsw i32 %2338, 1
  %2340 = load i32, ptr %84, align 4, !tbaa !9
  %2341 = load i32, ptr %57, align 4, !tbaa !9
  %2342 = mul nsw i32 %2340, %2341
  %2343 = add nsw i32 %2339, %2342
  store i32 %2343, ptr %61, align 4, !tbaa !9
  %2344 = call { double, double } @Cd(ptr noundef %76)
  %2345 = extractvalue { double, double } %2344, 0
  %2346 = extractvalue { double, double } %2344, 1
  %2347 = fneg double %2346
  %2348 = call ptr @_pCd(ptr noundef %65)
  %2349 = getelementptr inbounds { double, double }, ptr %2348, i32 0, i32 0
  %2350 = getelementptr inbounds { double, double }, ptr %2348, i32 0, i32 1
  store double %2345, ptr %2349, align 8
  store double %2347, ptr %2350, align 8
  %2351 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2352 = load double, ptr %2351, align 8, !tbaa !11
  %2353 = load ptr, ptr %53, align 8, !tbaa !5
  %2354 = load i32, ptr %61, align 4, !tbaa !9
  %2355 = sext i32 %2354 to i64
  %2356 = getelementptr inbounds %struct.doublecomplex, ptr %2353, i64 %2355
  %2357 = getelementptr inbounds %struct.doublecomplex, ptr %2356, i32 0, i32 0
  store double %2352, ptr %2357, align 8, !tbaa !11
  %2358 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2359 = load double, ptr %2358, align 8, !tbaa !14
  %2360 = load ptr, ptr %53, align 8, !tbaa !5
  %2361 = load i32, ptr %61, align 4, !tbaa !9
  %2362 = sext i32 %2361 to i64
  %2363 = getelementptr inbounds %struct.doublecomplex, ptr %2360, i64 %2362
  %2364 = getelementptr inbounds %struct.doublecomplex, ptr %2363, i32 0, i32 1
  store double %2359, ptr %2364, align 8, !tbaa !14
  br label %2390

2365:                                             ; preds = %2330, %2325
  %2366 = load i32, ptr %82, align 4, !tbaa !9
  %2367 = load i32, ptr %84, align 4, !tbaa !9
  %2368 = sub nsw i32 %2366, %2367
  %2369 = load i32, ptr %93, align 4, !tbaa !9
  %2370 = add nsw i32 %2368, %2369
  %2371 = add nsw i32 %2370, 1
  %2372 = load i32, ptr %84, align 4, !tbaa !9
  %2373 = load i32, ptr %57, align 4, !tbaa !9
  %2374 = mul nsw i32 %2372, %2373
  %2375 = add nsw i32 %2371, %2374
  store i32 %2375, ptr %61, align 4, !tbaa !9
  %2376 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %2377 = load double, ptr %2376, align 8, !tbaa !11
  %2378 = load ptr, ptr %53, align 8, !tbaa !5
  %2379 = load i32, ptr %61, align 4, !tbaa !9
  %2380 = sext i32 %2379 to i64
  %2381 = getelementptr inbounds %struct.doublecomplex, ptr %2378, i64 %2380
  %2382 = getelementptr inbounds %struct.doublecomplex, ptr %2381, i32 0, i32 0
  store double %2377, ptr %2382, align 8, !tbaa !11
  %2383 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %2384 = load double, ptr %2383, align 8, !tbaa !14
  %2385 = load ptr, ptr %53, align 8, !tbaa !5
  %2386 = load i32, ptr %61, align 4, !tbaa !9
  %2387 = sext i32 %2386 to i64
  %2388 = getelementptr inbounds %struct.doublecomplex, ptr %2385, i64 %2387
  %2389 = getelementptr inbounds %struct.doublecomplex, ptr %2388, i32 0, i32 1
  store double %2384, ptr %2389, align 8, !tbaa !14
  br label %2390

2390:                                             ; preds = %2365, %2333
  br label %2391

2391:                                             ; preds = %2390
  %2392 = load i32, ptr %71, align 4, !tbaa !9
  %2393 = add nsw i32 %2392, 1
  store i32 %2393, ptr %71, align 4, !tbaa !9
  br label %2283, !llvm.loop !42

2394:                                             ; preds = %2283
  br label %2395

2395:                                             ; preds = %2394
  %2396 = load i32, ptr %72, align 4, !tbaa !9
  %2397 = add nsw i32 %2396, 1
  store i32 %2397, ptr %72, align 4, !tbaa !9
  br label %2274, !llvm.loop !43

2398:                                             ; preds = %2274
  br label %2710

2399:                                             ; preds = %2268
  %2400 = load i32, ptr %74, align 4, !tbaa !9
  %2401 = icmp eq i32 %2400, 7
  br i1 %2401, label %2402, label %2709

2402:                                             ; preds = %2399
  %2403 = load i32, ptr %70, align 4, !tbaa !9
  %2404 = icmp ne i32 %2403, 1
  br i1 %2404, label %2405, label %2632

2405:                                             ; preds = %2402
  %2406 = load ptr, ptr %30, align 8, !tbaa !5
  %2407 = load i32, ptr %2406, align 4, !tbaa !9
  store i32 %2407, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %2408

2408:                                             ; preds = %2628, %2405
  %2409 = load i32, ptr %72, align 4, !tbaa !9
  %2410 = load i32, ptr %59, align 4, !tbaa !9
  %2411 = icmp sle i32 %2409, %2410
  br i1 %2411, label %2412, label %2631

2412:                                             ; preds = %2408
  %2413 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2413, ptr %60, align 4, !tbaa !9
  %2414 = load i32, ptr %72, align 4, !tbaa !9
  %2415 = load i32, ptr %93, align 4, !tbaa !9
  %2416 = sub nsw i32 %2414, %2415
  store i32 %2416, ptr %71, align 4, !tbaa !9
  br label %2417

2417:                                             ; preds = %2624, %2412
  %2418 = load i32, ptr %71, align 4, !tbaa !9
  %2419 = load i32, ptr %60, align 4, !tbaa !9
  %2420 = icmp sle i32 %2418, %2419
  br i1 %2420, label %2421, label %2627

2421:                                             ; preds = %2417
  %2422 = load ptr, ptr %29, align 8, !tbaa !5
  %2423 = load ptr, ptr %30, align 8, !tbaa !5
  %2424 = load ptr, ptr %48, align 8, !tbaa !5
  %2425 = load ptr, ptr %49, align 8, !tbaa !5
  %2426 = load ptr, ptr %32, align 8, !tbaa !5
  %2427 = getelementptr inbounds i32, ptr %2426, i64 1
  %2428 = load ptr, ptr %34, align 8, !tbaa !5
  %2429 = getelementptr inbounds %struct.doublecomplex, ptr %2428, i64 1
  %2430 = load ptr, ptr %40, align 8, !tbaa !5
  %2431 = getelementptr inbounds %struct.doublecomplex, ptr %2430, i64 1
  %2432 = load ptr, ptr %43, align 8, !tbaa !5
  %2433 = getelementptr inbounds %struct.doublecomplex, ptr %2432, i64 1
  %2434 = load ptr, ptr %55, align 8, !tbaa !5
  %2435 = getelementptr inbounds i32, ptr %2434, i64 1
  %2436 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %2422, ptr noundef %2423, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %2424, ptr noundef %2425, ptr noundef %78, ptr noundef %2427, ptr noundef %2429, ptr noundef %87, ptr noundef %2431, ptr noundef %2433, ptr noundef %91, ptr noundef %2435, ptr noundef %2436)
  %2437 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2438 = load double, ptr %2437, align 8, !tbaa !11
  %2439 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %2438, ptr %2439, align 8, !tbaa !11
  %2440 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2441 = load double, ptr %2440, align 8, !tbaa !14
  %2442 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %2441, ptr %2442, align 8, !tbaa !14
  %2443 = load i32, ptr %67, align 4, !tbaa !9
  %2444 = load i32, ptr %68, align 4, !tbaa !9
  %2445 = icmp sle i32 %2443, %2444
  br i1 %2445, label %2446, label %2448

2446:                                             ; preds = %2421
  %2447 = load i32, ptr %67, align 4, !tbaa !9
  br label %2450

2448:                                             ; preds = %2421
  %2449 = load i32, ptr %68, align 4, !tbaa !9
  br label %2450

2450:                                             ; preds = %2448, %2446
  %2451 = phi i32 [ %2447, %2446 ], [ %2449, %2448 ]
  store i32 %2451, ptr %82, align 4, !tbaa !9
  %2452 = load i32, ptr %67, align 4, !tbaa !9
  %2453 = load i32, ptr %68, align 4, !tbaa !9
  %2454 = icmp sge i32 %2452, %2453
  br i1 %2454, label %2455, label %2457

2455:                                             ; preds = %2450
  %2456 = load i32, ptr %67, align 4, !tbaa !9
  br label %2459

2457:                                             ; preds = %2450
  %2458 = load i32, ptr %68, align 4, !tbaa !9
  br label %2459

2459:                                             ; preds = %2457, %2455
  %2460 = phi i32 [ %2456, %2455 ], [ %2458, %2457 ]
  store i32 %2460, ptr %84, align 4, !tbaa !9
  %2461 = load i32, ptr %71, align 4, !tbaa !9
  %2462 = icmp slt i32 %2461, 1
  br i1 %2462, label %2463, label %2487

2463:                                             ; preds = %2459
  %2464 = load i32, ptr %72, align 4, !tbaa !9
  %2465 = load i32, ptr %71, align 4, !tbaa !9
  %2466 = sub nsw i32 %2464, %2465
  %2467 = add nsw i32 %2466, 1
  %2468 = load i32, ptr %93, align 4, !tbaa !9
  %2469 = add nsw i32 %2467, %2468
  %2470 = load i32, ptr %71, align 4, !tbaa !9
  %2471 = load ptr, ptr %30, align 8, !tbaa !5
  %2472 = load i32, ptr %2471, align 4, !tbaa !9
  %2473 = add nsw i32 %2470, %2472
  %2474 = load i32, ptr %57, align 4, !tbaa !9
  %2475 = mul nsw i32 %2473, %2474
  %2476 = add nsw i32 %2469, %2475
  store i32 %2476, ptr %61, align 4, !tbaa !9
  %2477 = load ptr, ptr %53, align 8, !tbaa !5
  %2478 = load i32, ptr %61, align 4, !tbaa !9
  %2479 = sext i32 %2478 to i64
  %2480 = getelementptr inbounds %struct.doublecomplex, ptr %2477, i64 %2479
  %2481 = getelementptr inbounds %struct.doublecomplex, ptr %2480, i32 0, i32 0
  store double 0.000000e+00, ptr %2481, align 8, !tbaa !11
  %2482 = load ptr, ptr %53, align 8, !tbaa !5
  %2483 = load i32, ptr %61, align 4, !tbaa !9
  %2484 = sext i32 %2483 to i64
  %2485 = getelementptr inbounds %struct.doublecomplex, ptr %2482, i64 %2484
  %2486 = getelementptr inbounds %struct.doublecomplex, ptr %2485, i32 0, i32 1
  store double 0.000000e+00, ptr %2486, align 8, !tbaa !14
  br label %2487

2487:                                             ; preds = %2463, %2459
  %2488 = load i32, ptr %84, align 4, !tbaa !9
  %2489 = load i32, ptr %67, align 4, !tbaa !9
  %2490 = icmp eq i32 %2488, %2489
  br i1 %2490, label %2491, label %2526

2491:                                             ; preds = %2487
  %2492 = load i32, ptr %70, align 4, !tbaa !9
  %2493 = icmp eq i32 %2492, 0
  br i1 %2493, label %2494, label %2526

2494:                                             ; preds = %2491
  %2495 = load i32, ptr %82, align 4, !tbaa !9
  %2496 = load i32, ptr %84, align 4, !tbaa !9
  %2497 = sub nsw i32 %2495, %2496
  %2498 = load i32, ptr %93, align 4, !tbaa !9
  %2499 = add nsw i32 %2497, %2498
  %2500 = add nsw i32 %2499, 1
  %2501 = load i32, ptr %84, align 4, !tbaa !9
  %2502 = load i32, ptr %57, align 4, !tbaa !9
  %2503 = mul nsw i32 %2501, %2502
  %2504 = add nsw i32 %2500, %2503
  store i32 %2504, ptr %61, align 4, !tbaa !9
  %2505 = call { double, double } @Cd(ptr noundef %76)
  %2506 = extractvalue { double, double } %2505, 0
  %2507 = extractvalue { double, double } %2505, 1
  %2508 = fneg double %2507
  %2509 = call ptr @_pCd(ptr noundef %65)
  %2510 = getelementptr inbounds { double, double }, ptr %2509, i32 0, i32 0
  %2511 = getelementptr inbounds { double, double }, ptr %2509, i32 0, i32 1
  store double %2506, ptr %2510, align 8
  store double %2508, ptr %2511, align 8
  %2512 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2513 = load double, ptr %2512, align 8, !tbaa !11
  %2514 = load ptr, ptr %53, align 8, !tbaa !5
  %2515 = load i32, ptr %61, align 4, !tbaa !9
  %2516 = sext i32 %2515 to i64
  %2517 = getelementptr inbounds %struct.doublecomplex, ptr %2514, i64 %2516
  %2518 = getelementptr inbounds %struct.doublecomplex, ptr %2517, i32 0, i32 0
  store double %2513, ptr %2518, align 8, !tbaa !11
  %2519 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2520 = load double, ptr %2519, align 8, !tbaa !14
  %2521 = load ptr, ptr %53, align 8, !tbaa !5
  %2522 = load i32, ptr %61, align 4, !tbaa !9
  %2523 = sext i32 %2522 to i64
  %2524 = getelementptr inbounds %struct.doublecomplex, ptr %2521, i64 %2523
  %2525 = getelementptr inbounds %struct.doublecomplex, ptr %2524, i32 0, i32 1
  store double %2520, ptr %2525, align 8, !tbaa !14
  br label %2551

2526:                                             ; preds = %2491, %2487
  %2527 = load i32, ptr %82, align 4, !tbaa !9
  %2528 = load i32, ptr %84, align 4, !tbaa !9
  %2529 = sub nsw i32 %2527, %2528
  %2530 = load i32, ptr %93, align 4, !tbaa !9
  %2531 = add nsw i32 %2529, %2530
  %2532 = add nsw i32 %2531, 1
  %2533 = load i32, ptr %84, align 4, !tbaa !9
  %2534 = load i32, ptr %57, align 4, !tbaa !9
  %2535 = mul nsw i32 %2533, %2534
  %2536 = add nsw i32 %2532, %2535
  store i32 %2536, ptr %61, align 4, !tbaa !9
  %2537 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %2538 = load double, ptr %2537, align 8, !tbaa !11
  %2539 = load ptr, ptr %53, align 8, !tbaa !5
  %2540 = load i32, ptr %61, align 4, !tbaa !9
  %2541 = sext i32 %2540 to i64
  %2542 = getelementptr inbounds %struct.doublecomplex, ptr %2539, i64 %2541
  %2543 = getelementptr inbounds %struct.doublecomplex, ptr %2542, i32 0, i32 0
  store double %2538, ptr %2543, align 8, !tbaa !11
  %2544 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %2545 = load double, ptr %2544, align 8, !tbaa !14
  %2546 = load ptr, ptr %53, align 8, !tbaa !5
  %2547 = load i32, ptr %61, align 4, !tbaa !9
  %2548 = sext i32 %2547 to i64
  %2549 = getelementptr inbounds %struct.doublecomplex, ptr %2546, i64 %2548
  %2550 = getelementptr inbounds %struct.doublecomplex, ptr %2549, i32 0, i32 1
  store double %2545, ptr %2550, align 8, !tbaa !14
  br label %2551

2551:                                             ; preds = %2526, %2494
  %2552 = load i32, ptr %71, align 4, !tbaa !9
  %2553 = icmp sge i32 %2552, 1
  br i1 %2553, label %2554, label %2623

2554:                                             ; preds = %2551
  %2555 = load i32, ptr %82, align 4, !tbaa !9
  %2556 = load i32, ptr %84, align 4, !tbaa !9
  %2557 = icmp ne i32 %2555, %2556
  br i1 %2557, label %2558, label %2623

2558:                                             ; preds = %2554
  %2559 = load i32, ptr %82, align 4, !tbaa !9
  %2560 = load i32, ptr %67, align 4, !tbaa !9
  %2561 = icmp eq i32 %2559, %2560
  br i1 %2561, label %2562, label %2597

2562:                                             ; preds = %2558
  %2563 = load i32, ptr %70, align 4, !tbaa !9
  %2564 = icmp eq i32 %2563, 0
  br i1 %2564, label %2565, label %2597

2565:                                             ; preds = %2562
  %2566 = load i32, ptr %84, align 4, !tbaa !9
  %2567 = load i32, ptr %82, align 4, !tbaa !9
  %2568 = sub nsw i32 %2566, %2567
  %2569 = add nsw i32 %2568, 1
  %2570 = load i32, ptr %93, align 4, !tbaa !9
  %2571 = add nsw i32 %2569, %2570
  %2572 = load i32, ptr %82, align 4, !tbaa !9
  %2573 = load i32, ptr %57, align 4, !tbaa !9
  %2574 = mul nsw i32 %2572, %2573
  %2575 = add nsw i32 %2571, %2574
  store i32 %2575, ptr %61, align 4, !tbaa !9
  %2576 = call { double, double } @Cd(ptr noundef %76)
  %2577 = extractvalue { double, double } %2576, 0
  %2578 = extractvalue { double, double } %2576, 1
  %2579 = fneg double %2578
  %2580 = call ptr @_pCd(ptr noundef %65)
  %2581 = getelementptr inbounds { double, double }, ptr %2580, i32 0, i32 0
  %2582 = getelementptr inbounds { double, double }, ptr %2580, i32 0, i32 1
  store double %2577, ptr %2581, align 8
  store double %2579, ptr %2582, align 8
  %2583 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2584 = load double, ptr %2583, align 8, !tbaa !11
  %2585 = load ptr, ptr %53, align 8, !tbaa !5
  %2586 = load i32, ptr %61, align 4, !tbaa !9
  %2587 = sext i32 %2586 to i64
  %2588 = getelementptr inbounds %struct.doublecomplex, ptr %2585, i64 %2587
  %2589 = getelementptr inbounds %struct.doublecomplex, ptr %2588, i32 0, i32 0
  store double %2584, ptr %2589, align 8, !tbaa !11
  %2590 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2591 = load double, ptr %2590, align 8, !tbaa !14
  %2592 = load ptr, ptr %53, align 8, !tbaa !5
  %2593 = load i32, ptr %61, align 4, !tbaa !9
  %2594 = sext i32 %2593 to i64
  %2595 = getelementptr inbounds %struct.doublecomplex, ptr %2592, i64 %2594
  %2596 = getelementptr inbounds %struct.doublecomplex, ptr %2595, i32 0, i32 1
  store double %2591, ptr %2596, align 8, !tbaa !14
  br label %2622

2597:                                             ; preds = %2562, %2558
  %2598 = load i32, ptr %84, align 4, !tbaa !9
  %2599 = load i32, ptr %82, align 4, !tbaa !9
  %2600 = sub nsw i32 %2598, %2599
  %2601 = add nsw i32 %2600, 1
  %2602 = load i32, ptr %93, align 4, !tbaa !9
  %2603 = add nsw i32 %2601, %2602
  %2604 = load i32, ptr %82, align 4, !tbaa !9
  %2605 = load i32, ptr %57, align 4, !tbaa !9
  %2606 = mul nsw i32 %2604, %2605
  %2607 = add nsw i32 %2603, %2606
  store i32 %2607, ptr %61, align 4, !tbaa !9
  %2608 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %2609 = load double, ptr %2608, align 8, !tbaa !11
  %2610 = load ptr, ptr %53, align 8, !tbaa !5
  %2611 = load i32, ptr %61, align 4, !tbaa !9
  %2612 = sext i32 %2611 to i64
  %2613 = getelementptr inbounds %struct.doublecomplex, ptr %2610, i64 %2612
  %2614 = getelementptr inbounds %struct.doublecomplex, ptr %2613, i32 0, i32 0
  store double %2609, ptr %2614, align 8, !tbaa !11
  %2615 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %2616 = load double, ptr %2615, align 8, !tbaa !14
  %2617 = load ptr, ptr %53, align 8, !tbaa !5
  %2618 = load i32, ptr %61, align 4, !tbaa !9
  %2619 = sext i32 %2618 to i64
  %2620 = getelementptr inbounds %struct.doublecomplex, ptr %2617, i64 %2619
  %2621 = getelementptr inbounds %struct.doublecomplex, ptr %2620, i32 0, i32 1
  store double %2616, ptr %2621, align 8, !tbaa !14
  br label %2622

2622:                                             ; preds = %2597, %2565
  br label %2623

2623:                                             ; preds = %2622, %2554, %2551
  br label %2624

2624:                                             ; preds = %2623
  %2625 = load i32, ptr %71, align 4, !tbaa !9
  %2626 = add nsw i32 %2625, 1
  store i32 %2626, ptr %71, align 4, !tbaa !9
  br label %2417, !llvm.loop !44

2627:                                             ; preds = %2417
  br label %2628

2628:                                             ; preds = %2627
  %2629 = load i32, ptr %72, align 4, !tbaa !9
  %2630 = add nsw i32 %2629, 1
  store i32 %2630, ptr %72, align 4, !tbaa !9
  br label %2408, !llvm.loop !45

2631:                                             ; preds = %2408
  br label %2708

2632:                                             ; preds = %2402
  %2633 = load i32, ptr %70, align 4, !tbaa !9
  %2634 = icmp eq i32 %2633, 1
  br i1 %2634, label %2635, label %2707

2635:                                             ; preds = %2632
  %2636 = load ptr, ptr %30, align 8, !tbaa !5
  %2637 = load i32, ptr %2636, align 4, !tbaa !9
  store i32 %2637, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %2638

2638:                                             ; preds = %2703, %2635
  %2639 = load i32, ptr %72, align 4, !tbaa !9
  %2640 = load i32, ptr %59, align 4, !tbaa !9
  %2641 = icmp sle i32 %2639, %2640
  br i1 %2641, label %2642, label %2706

2642:                                             ; preds = %2638
  %2643 = load i32, ptr %72, align 4, !tbaa !9
  %2644 = load i32, ptr %92, align 4, !tbaa !9
  %2645 = add nsw i32 %2643, %2644
  store i32 %2645, ptr %60, align 4, !tbaa !9
  %2646 = load i32, ptr %72, align 4, !tbaa !9
  %2647 = load i32, ptr %93, align 4, !tbaa !9
  %2648 = sub nsw i32 %2646, %2647
  store i32 %2648, ptr %71, align 4, !tbaa !9
  br label %2649

2649:                                             ; preds = %2699, %2642
  %2650 = load i32, ptr %71, align 4, !tbaa !9
  %2651 = load i32, ptr %60, align 4, !tbaa !9
  %2652 = icmp sle i32 %2650, %2651
  br i1 %2652, label %2653, label %2702

2653:                                             ; preds = %2649
  %2654 = load ptr, ptr %29, align 8, !tbaa !5
  %2655 = load ptr, ptr %30, align 8, !tbaa !5
  %2656 = load ptr, ptr %48, align 8, !tbaa !5
  %2657 = load ptr, ptr %49, align 8, !tbaa !5
  %2658 = load ptr, ptr %32, align 8, !tbaa !5
  %2659 = getelementptr inbounds i32, ptr %2658, i64 1
  %2660 = load ptr, ptr %34, align 8, !tbaa !5
  %2661 = getelementptr inbounds %struct.doublecomplex, ptr %2660, i64 1
  %2662 = load ptr, ptr %40, align 8, !tbaa !5
  %2663 = getelementptr inbounds %struct.doublecomplex, ptr %2662, i64 1
  %2664 = load ptr, ptr %43, align 8, !tbaa !5
  %2665 = getelementptr inbounds %struct.doublecomplex, ptr %2664, i64 1
  %2666 = load ptr, ptr %55, align 8, !tbaa !5
  %2667 = getelementptr inbounds i32, ptr %2666, i64 1
  %2668 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm3_(ptr noundef %65, ptr noundef %2654, ptr noundef %2655, ptr noundef %71, ptr noundef %72, ptr noundef %67, ptr noundef %68, ptr noundef %2656, ptr noundef %2657, ptr noundef %78, ptr noundef %2659, ptr noundef %2661, ptr noundef %87, ptr noundef %2663, ptr noundef %2665, ptr noundef %91, ptr noundef %2667, ptr noundef %2668)
  %2669 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2670 = load double, ptr %2669, align 8, !tbaa !11
  %2671 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  store double %2670, ptr %2671, align 8, !tbaa !11
  %2672 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2673 = load double, ptr %2672, align 8, !tbaa !14
  %2674 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  store double %2673, ptr %2674, align 8, !tbaa !14
  %2675 = load i32, ptr %67, align 4, !tbaa !9
  %2676 = load i32, ptr %68, align 4, !tbaa !9
  %2677 = sub nsw i32 %2675, %2676
  %2678 = load i32, ptr %93, align 4, !tbaa !9
  %2679 = add nsw i32 %2677, %2678
  %2680 = add nsw i32 %2679, 1
  %2681 = load i32, ptr %68, align 4, !tbaa !9
  %2682 = load i32, ptr %57, align 4, !tbaa !9
  %2683 = mul nsw i32 %2681, %2682
  %2684 = add nsw i32 %2680, %2683
  store i32 %2684, ptr %61, align 4, !tbaa !9
  %2685 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 0
  %2686 = load double, ptr %2685, align 8, !tbaa !11
  %2687 = load ptr, ptr %53, align 8, !tbaa !5
  %2688 = load i32, ptr %61, align 4, !tbaa !9
  %2689 = sext i32 %2688 to i64
  %2690 = getelementptr inbounds %struct.doublecomplex, ptr %2687, i64 %2689
  %2691 = getelementptr inbounds %struct.doublecomplex, ptr %2690, i32 0, i32 0
  store double %2686, ptr %2691, align 8, !tbaa !11
  %2692 = getelementptr inbounds %struct.doublecomplex, ptr %76, i32 0, i32 1
  %2693 = load double, ptr %2692, align 8, !tbaa !14
  %2694 = load ptr, ptr %53, align 8, !tbaa !5
  %2695 = load i32, ptr %61, align 4, !tbaa !9
  %2696 = sext i32 %2695 to i64
  %2697 = getelementptr inbounds %struct.doublecomplex, ptr %2694, i64 %2696
  %2698 = getelementptr inbounds %struct.doublecomplex, ptr %2697, i32 0, i32 1
  store double %2693, ptr %2698, align 8, !tbaa !14
  br label %2699

2699:                                             ; preds = %2653
  %2700 = load i32, ptr %71, align 4, !tbaa !9
  %2701 = add nsw i32 %2700, 1
  store i32 %2701, ptr %71, align 4, !tbaa !9
  br label %2649, !llvm.loop !46

2702:                                             ; preds = %2649
  br label %2703

2703:                                             ; preds = %2702
  %2704 = load i32, ptr %72, align 4, !tbaa !9
  %2705 = add nsw i32 %2704, 1
  store i32 %2705, ptr %72, align 4, !tbaa !9
  br label %2638, !llvm.loop !47

2706:                                             ; preds = %2638
  br label %2707

2707:                                             ; preds = %2706, %2632
  br label %2708

2708:                                             ; preds = %2707, %2631
  br label %2709

2709:                                             ; preds = %2708, %2399
  br label %2710

2710:                                             ; preds = %2709, %2398
  br label %2711

2711:                                             ; preds = %2710, %2267
  br label %2712

2712:                                             ; preds = %2711, %2114
  br label %2713

2713:                                             ; preds = %2712, %1952
  br label %2714

2714:                                             ; preds = %2713, %1814
  br label %2715

2715:                                             ; preds = %2714, %1676
  br label %2716

2716:                                             ; preds = %2715, %1538
  br label %3938

2717:                                             ; preds = %1289
  %2718 = load i32, ptr %74, align 4, !tbaa !9
  %2719 = icmp eq i32 %2718, 0
  br i1 %2719, label %2720, label %2967

2720:                                             ; preds = %2717
  %2721 = load i32, ptr %70, align 4, !tbaa !9
  %2722 = icmp eq i32 %2721, 0
  br i1 %2722, label %2723, label %2813

2723:                                             ; preds = %2720
  %2724 = load ptr, ptr %30, align 8, !tbaa !5
  %2725 = load i32, ptr %2724, align 4, !tbaa !9
  store i32 %2725, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %2726

2726:                                             ; preds = %2809, %2723
  %2727 = load i32, ptr %72, align 4, !tbaa !9
  %2728 = load i32, ptr %59, align 4, !tbaa !9
  %2729 = icmp sle i32 %2727, %2728
  br i1 %2729, label %2730, label %2812

2730:                                             ; preds = %2726
  %2731 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2731, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %2732

2732:                                             ; preds = %2805, %2730
  %2733 = load i32, ptr %71, align 4, !tbaa !9
  %2734 = load i32, ptr %60, align 4, !tbaa !9
  %2735 = icmp sle i32 %2733, %2734
  br i1 %2735, label %2736, label %2808

2736:                                             ; preds = %2732
  %2737 = load i32, ptr %71, align 4, !tbaa !9
  %2738 = load i32, ptr %72, align 4, !tbaa !9
  %2739 = load i32, ptr %57, align 4, !tbaa !9
  %2740 = mul nsw i32 %2738, %2739
  %2741 = add nsw i32 %2737, %2740
  store i32 %2741, ptr %61, align 4, !tbaa !9
  %2742 = load ptr, ptr %29, align 8, !tbaa !5
  %2743 = load ptr, ptr %30, align 8, !tbaa !5
  %2744 = load ptr, ptr %48, align 8, !tbaa !5
  %2745 = load ptr, ptr %49, align 8, !tbaa !5
  %2746 = load ptr, ptr %32, align 8, !tbaa !5
  %2747 = getelementptr inbounds i32, ptr %2746, i64 1
  %2748 = load ptr, ptr %34, align 8, !tbaa !5
  %2749 = getelementptr inbounds %struct.doublecomplex, ptr %2748, i64 1
  %2750 = load ptr, ptr %40, align 8, !tbaa !5
  %2751 = getelementptr inbounds %struct.doublecomplex, ptr %2750, i64 1
  %2752 = load ptr, ptr %43, align 8, !tbaa !5
  %2753 = getelementptr inbounds %struct.doublecomplex, ptr %2752, i64 1
  %2754 = load ptr, ptr %55, align 8, !tbaa !5
  %2755 = getelementptr inbounds i32, ptr %2754, i64 1
  %2756 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %2742, ptr noundef %2743, ptr noundef %71, ptr noundef %72, ptr noundef %2744, ptr noundef %2745, ptr noundef %78, ptr noundef %2747, ptr noundef %2749, ptr noundef %87, ptr noundef %2751, ptr noundef %2753, ptr noundef %91, ptr noundef %2755, ptr noundef %2756)
  %2757 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2758 = load double, ptr %2757, align 8, !tbaa !11
  %2759 = load ptr, ptr %53, align 8, !tbaa !5
  %2760 = load i32, ptr %61, align 4, !tbaa !9
  %2761 = sext i32 %2760 to i64
  %2762 = getelementptr inbounds %struct.doublecomplex, ptr %2759, i64 %2761
  %2763 = getelementptr inbounds %struct.doublecomplex, ptr %2762, i32 0, i32 0
  store double %2758, ptr %2763, align 8, !tbaa !11
  %2764 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2765 = load double, ptr %2764, align 8, !tbaa !14
  %2766 = load ptr, ptr %53, align 8, !tbaa !5
  %2767 = load i32, ptr %61, align 4, !tbaa !9
  %2768 = sext i32 %2767 to i64
  %2769 = getelementptr inbounds %struct.doublecomplex, ptr %2766, i64 %2768
  %2770 = getelementptr inbounds %struct.doublecomplex, ptr %2769, i32 0, i32 1
  store double %2765, ptr %2770, align 8, !tbaa !14
  %2771 = load i32, ptr %72, align 4, !tbaa !9
  %2772 = load i32, ptr %71, align 4, !tbaa !9
  %2773 = load i32, ptr %57, align 4, !tbaa !9
  %2774 = mul nsw i32 %2772, %2773
  %2775 = add nsw i32 %2771, %2774
  store i32 %2775, ptr %61, align 4, !tbaa !9
  %2776 = load ptr, ptr %53, align 8, !tbaa !5
  %2777 = load i32, ptr %71, align 4, !tbaa !9
  %2778 = load i32, ptr %72, align 4, !tbaa !9
  %2779 = load i32, ptr %57, align 4, !tbaa !9
  %2780 = mul nsw i32 %2778, %2779
  %2781 = add nsw i32 %2777, %2780
  %2782 = sext i32 %2781 to i64
  %2783 = getelementptr inbounds %struct.doublecomplex, ptr %2776, i64 %2782
  %2784 = call { double, double } @Cd(ptr noundef %2783)
  %2785 = extractvalue { double, double } %2784, 0
  %2786 = extractvalue { double, double } %2784, 1
  %2787 = fneg double %2786
  %2788 = call ptr @_pCd(ptr noundef %65)
  %2789 = getelementptr inbounds { double, double }, ptr %2788, i32 0, i32 0
  %2790 = getelementptr inbounds { double, double }, ptr %2788, i32 0, i32 1
  store double %2785, ptr %2789, align 8
  store double %2787, ptr %2790, align 8
  %2791 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2792 = load double, ptr %2791, align 8, !tbaa !11
  %2793 = load ptr, ptr %53, align 8, !tbaa !5
  %2794 = load i32, ptr %61, align 4, !tbaa !9
  %2795 = sext i32 %2794 to i64
  %2796 = getelementptr inbounds %struct.doublecomplex, ptr %2793, i64 %2795
  %2797 = getelementptr inbounds %struct.doublecomplex, ptr %2796, i32 0, i32 0
  store double %2792, ptr %2797, align 8, !tbaa !11
  %2798 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2799 = load double, ptr %2798, align 8, !tbaa !14
  %2800 = load ptr, ptr %53, align 8, !tbaa !5
  %2801 = load i32, ptr %61, align 4, !tbaa !9
  %2802 = sext i32 %2801 to i64
  %2803 = getelementptr inbounds %struct.doublecomplex, ptr %2800, i64 %2802
  %2804 = getelementptr inbounds %struct.doublecomplex, ptr %2803, i32 0, i32 1
  store double %2799, ptr %2804, align 8, !tbaa !14
  br label %2805

2805:                                             ; preds = %2736
  %2806 = load i32, ptr %71, align 4, !tbaa !9
  %2807 = add nsw i32 %2806, 1
  store i32 %2807, ptr %71, align 4, !tbaa !9
  br label %2732, !llvm.loop !48

2808:                                             ; preds = %2732
  br label %2809

2809:                                             ; preds = %2808
  %2810 = load i32, ptr %72, align 4, !tbaa !9
  %2811 = add nsw i32 %2810, 1
  store i32 %2811, ptr %72, align 4, !tbaa !9
  br label %2726, !llvm.loop !49

2812:                                             ; preds = %2726
  br label %2966

2813:                                             ; preds = %2720
  %2814 = load i32, ptr %70, align 4, !tbaa !9
  %2815 = icmp eq i32 %2814, 1
  br i1 %2815, label %2816, label %2873

2816:                                             ; preds = %2813
  %2817 = load ptr, ptr %30, align 8, !tbaa !5
  %2818 = load i32, ptr %2817, align 4, !tbaa !9
  store i32 %2818, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %2819

2819:                                             ; preds = %2869, %2816
  %2820 = load i32, ptr %72, align 4, !tbaa !9
  %2821 = load i32, ptr %59, align 4, !tbaa !9
  %2822 = icmp sle i32 %2820, %2821
  br i1 %2822, label %2823, label %2872

2823:                                             ; preds = %2819
  %2824 = load ptr, ptr %29, align 8, !tbaa !5
  %2825 = load i32, ptr %2824, align 4, !tbaa !9
  store i32 %2825, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %2826

2826:                                             ; preds = %2865, %2823
  %2827 = load i32, ptr %71, align 4, !tbaa !9
  %2828 = load i32, ptr %60, align 4, !tbaa !9
  %2829 = icmp sle i32 %2827, %2828
  br i1 %2829, label %2830, label %2868

2830:                                             ; preds = %2826
  %2831 = load i32, ptr %71, align 4, !tbaa !9
  %2832 = load i32, ptr %72, align 4, !tbaa !9
  %2833 = load i32, ptr %57, align 4, !tbaa !9
  %2834 = mul nsw i32 %2832, %2833
  %2835 = add nsw i32 %2831, %2834
  store i32 %2835, ptr %61, align 4, !tbaa !9
  %2836 = load ptr, ptr %29, align 8, !tbaa !5
  %2837 = load ptr, ptr %30, align 8, !tbaa !5
  %2838 = load ptr, ptr %48, align 8, !tbaa !5
  %2839 = load ptr, ptr %49, align 8, !tbaa !5
  %2840 = load ptr, ptr %32, align 8, !tbaa !5
  %2841 = getelementptr inbounds i32, ptr %2840, i64 1
  %2842 = load ptr, ptr %34, align 8, !tbaa !5
  %2843 = getelementptr inbounds %struct.doublecomplex, ptr %2842, i64 1
  %2844 = load ptr, ptr %40, align 8, !tbaa !5
  %2845 = getelementptr inbounds %struct.doublecomplex, ptr %2844, i64 1
  %2846 = load ptr, ptr %43, align 8, !tbaa !5
  %2847 = getelementptr inbounds %struct.doublecomplex, ptr %2846, i64 1
  %2848 = load ptr, ptr %55, align 8, !tbaa !5
  %2849 = getelementptr inbounds i32, ptr %2848, i64 1
  %2850 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %2836, ptr noundef %2837, ptr noundef %71, ptr noundef %72, ptr noundef %2838, ptr noundef %2839, ptr noundef %78, ptr noundef %2841, ptr noundef %2843, ptr noundef %87, ptr noundef %2845, ptr noundef %2847, ptr noundef %91, ptr noundef %2849, ptr noundef %2850)
  %2851 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2852 = load double, ptr %2851, align 8, !tbaa !11
  %2853 = load ptr, ptr %53, align 8, !tbaa !5
  %2854 = load i32, ptr %61, align 4, !tbaa !9
  %2855 = sext i32 %2854 to i64
  %2856 = getelementptr inbounds %struct.doublecomplex, ptr %2853, i64 %2855
  %2857 = getelementptr inbounds %struct.doublecomplex, ptr %2856, i32 0, i32 0
  store double %2852, ptr %2857, align 8, !tbaa !11
  %2858 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2859 = load double, ptr %2858, align 8, !tbaa !14
  %2860 = load ptr, ptr %53, align 8, !tbaa !5
  %2861 = load i32, ptr %61, align 4, !tbaa !9
  %2862 = sext i32 %2861 to i64
  %2863 = getelementptr inbounds %struct.doublecomplex, ptr %2860, i64 %2862
  %2864 = getelementptr inbounds %struct.doublecomplex, ptr %2863, i32 0, i32 1
  store double %2859, ptr %2864, align 8, !tbaa !14
  br label %2865

2865:                                             ; preds = %2830
  %2866 = load i32, ptr %71, align 4, !tbaa !9
  %2867 = add nsw i32 %2866, 1
  store i32 %2867, ptr %71, align 4, !tbaa !9
  br label %2826, !llvm.loop !50

2868:                                             ; preds = %2826
  br label %2869

2869:                                             ; preds = %2868
  %2870 = load i32, ptr %72, align 4, !tbaa !9
  %2871 = add nsw i32 %2870, 1
  store i32 %2871, ptr %72, align 4, !tbaa !9
  br label %2819, !llvm.loop !51

2872:                                             ; preds = %2819
  br label %2965

2873:                                             ; preds = %2813
  %2874 = load i32, ptr %70, align 4, !tbaa !9
  %2875 = icmp eq i32 %2874, 2
  br i1 %2875, label %2876, label %2964

2876:                                             ; preds = %2873
  %2877 = load ptr, ptr %30, align 8, !tbaa !5
  %2878 = load i32, ptr %2877, align 4, !tbaa !9
  store i32 %2878, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %2879

2879:                                             ; preds = %2960, %2876
  %2880 = load i32, ptr %72, align 4, !tbaa !9
  %2881 = load i32, ptr %59, align 4, !tbaa !9
  %2882 = icmp sle i32 %2880, %2881
  br i1 %2882, label %2883, label %2963

2883:                                             ; preds = %2879
  %2884 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2884, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %2885

2885:                                             ; preds = %2956, %2883
  %2886 = load i32, ptr %71, align 4, !tbaa !9
  %2887 = load i32, ptr %60, align 4, !tbaa !9
  %2888 = icmp sle i32 %2886, %2887
  br i1 %2888, label %2889, label %2959

2889:                                             ; preds = %2885
  %2890 = load i32, ptr %71, align 4, !tbaa !9
  %2891 = load i32, ptr %72, align 4, !tbaa !9
  %2892 = load i32, ptr %57, align 4, !tbaa !9
  %2893 = mul nsw i32 %2891, %2892
  %2894 = add nsw i32 %2890, %2893
  store i32 %2894, ptr %61, align 4, !tbaa !9
  %2895 = load ptr, ptr %29, align 8, !tbaa !5
  %2896 = load ptr, ptr %30, align 8, !tbaa !5
  %2897 = load ptr, ptr %48, align 8, !tbaa !5
  %2898 = load ptr, ptr %49, align 8, !tbaa !5
  %2899 = load ptr, ptr %32, align 8, !tbaa !5
  %2900 = getelementptr inbounds i32, ptr %2899, i64 1
  %2901 = load ptr, ptr %34, align 8, !tbaa !5
  %2902 = getelementptr inbounds %struct.doublecomplex, ptr %2901, i64 1
  %2903 = load ptr, ptr %40, align 8, !tbaa !5
  %2904 = getelementptr inbounds %struct.doublecomplex, ptr %2903, i64 1
  %2905 = load ptr, ptr %43, align 8, !tbaa !5
  %2906 = getelementptr inbounds %struct.doublecomplex, ptr %2905, i64 1
  %2907 = load ptr, ptr %55, align 8, !tbaa !5
  %2908 = getelementptr inbounds i32, ptr %2907, i64 1
  %2909 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %2895, ptr noundef %2896, ptr noundef %71, ptr noundef %72, ptr noundef %2897, ptr noundef %2898, ptr noundef %78, ptr noundef %2900, ptr noundef %2902, ptr noundef %87, ptr noundef %2904, ptr noundef %2906, ptr noundef %91, ptr noundef %2908, ptr noundef %2909)
  %2910 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %2911 = load double, ptr %2910, align 8, !tbaa !11
  %2912 = load ptr, ptr %53, align 8, !tbaa !5
  %2913 = load i32, ptr %61, align 4, !tbaa !9
  %2914 = sext i32 %2913 to i64
  %2915 = getelementptr inbounds %struct.doublecomplex, ptr %2912, i64 %2914
  %2916 = getelementptr inbounds %struct.doublecomplex, ptr %2915, i32 0, i32 0
  store double %2911, ptr %2916, align 8, !tbaa !11
  %2917 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %2918 = load double, ptr %2917, align 8, !tbaa !14
  %2919 = load ptr, ptr %53, align 8, !tbaa !5
  %2920 = load i32, ptr %61, align 4, !tbaa !9
  %2921 = sext i32 %2920 to i64
  %2922 = getelementptr inbounds %struct.doublecomplex, ptr %2919, i64 %2921
  %2923 = getelementptr inbounds %struct.doublecomplex, ptr %2922, i32 0, i32 1
  store double %2918, ptr %2923, align 8, !tbaa !14
  %2924 = load i32, ptr %72, align 4, !tbaa !9
  %2925 = load i32, ptr %71, align 4, !tbaa !9
  %2926 = load i32, ptr %57, align 4, !tbaa !9
  %2927 = mul nsw i32 %2925, %2926
  %2928 = add nsw i32 %2924, %2927
  store i32 %2928, ptr %61, align 4, !tbaa !9
  %2929 = load i32, ptr %71, align 4, !tbaa !9
  %2930 = load i32, ptr %72, align 4, !tbaa !9
  %2931 = load i32, ptr %57, align 4, !tbaa !9
  %2932 = mul nsw i32 %2930, %2931
  %2933 = add nsw i32 %2929, %2932
  store i32 %2933, ptr %62, align 4, !tbaa !9
  %2934 = load ptr, ptr %53, align 8, !tbaa !5
  %2935 = load i32, ptr %62, align 4, !tbaa !9
  %2936 = sext i32 %2935 to i64
  %2937 = getelementptr inbounds %struct.doublecomplex, ptr %2934, i64 %2936
  %2938 = getelementptr inbounds %struct.doublecomplex, ptr %2937, i32 0, i32 0
  %2939 = load double, ptr %2938, align 8, !tbaa !11
  %2940 = load ptr, ptr %53, align 8, !tbaa !5
  %2941 = load i32, ptr %61, align 4, !tbaa !9
  %2942 = sext i32 %2941 to i64
  %2943 = getelementptr inbounds %struct.doublecomplex, ptr %2940, i64 %2942
  %2944 = getelementptr inbounds %struct.doublecomplex, ptr %2943, i32 0, i32 0
  store double %2939, ptr %2944, align 8, !tbaa !11
  %2945 = load ptr, ptr %53, align 8, !tbaa !5
  %2946 = load i32, ptr %62, align 4, !tbaa !9
  %2947 = sext i32 %2946 to i64
  %2948 = getelementptr inbounds %struct.doublecomplex, ptr %2945, i64 %2947
  %2949 = getelementptr inbounds %struct.doublecomplex, ptr %2948, i32 0, i32 1
  %2950 = load double, ptr %2949, align 8, !tbaa !14
  %2951 = load ptr, ptr %53, align 8, !tbaa !5
  %2952 = load i32, ptr %61, align 4, !tbaa !9
  %2953 = sext i32 %2952 to i64
  %2954 = getelementptr inbounds %struct.doublecomplex, ptr %2951, i64 %2953
  %2955 = getelementptr inbounds %struct.doublecomplex, ptr %2954, i32 0, i32 1
  store double %2950, ptr %2955, align 8, !tbaa !14
  br label %2956

2956:                                             ; preds = %2889
  %2957 = load i32, ptr %71, align 4, !tbaa !9
  %2958 = add nsw i32 %2957, 1
  store i32 %2958, ptr %71, align 4, !tbaa !9
  br label %2885, !llvm.loop !52

2959:                                             ; preds = %2885
  br label %2960

2960:                                             ; preds = %2959
  %2961 = load i32, ptr %72, align 4, !tbaa !9
  %2962 = add nsw i32 %2961, 1
  store i32 %2962, ptr %72, align 4, !tbaa !9
  br label %2879, !llvm.loop !53

2963:                                             ; preds = %2879
  br label %2964

2964:                                             ; preds = %2963, %2873
  br label %2965

2965:                                             ; preds = %2964, %2872
  br label %2966

2966:                                             ; preds = %2965, %2812
  br label %3937

2967:                                             ; preds = %2717
  %2968 = load i32, ptr %74, align 4, !tbaa !9
  %2969 = icmp eq i32 %2968, 1
  br i1 %2969, label %2970, label %3046

2970:                                             ; preds = %2967
  %2971 = load ptr, ptr %30, align 8, !tbaa !5
  %2972 = load i32, ptr %2971, align 4, !tbaa !9
  store i32 %2972, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %2973

2973:                                             ; preds = %3042, %2970
  %2974 = load i32, ptr %72, align 4, !tbaa !9
  %2975 = load i32, ptr %59, align 4, !tbaa !9
  %2976 = icmp sle i32 %2974, %2975
  br i1 %2976, label %2977, label %3045

2977:                                             ; preds = %2973
  %2978 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2978, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %2979

2979:                                             ; preds = %3038, %2977
  %2980 = load i32, ptr %71, align 4, !tbaa !9
  %2981 = load i32, ptr %60, align 4, !tbaa !9
  %2982 = icmp sle i32 %2980, %2981
  br i1 %2982, label %2983, label %3041

2983:                                             ; preds = %2979
  %2984 = load i32, ptr %71, align 4, !tbaa !9
  %2985 = load i32, ptr %72, align 4, !tbaa !9
  %2986 = load i32, ptr %57, align 4, !tbaa !9
  %2987 = mul nsw i32 %2985, %2986
  %2988 = add nsw i32 %2984, %2987
  store i32 %2988, ptr %61, align 4, !tbaa !9
  %2989 = load ptr, ptr %29, align 8, !tbaa !5
  %2990 = load ptr, ptr %30, align 8, !tbaa !5
  %2991 = load ptr, ptr %48, align 8, !tbaa !5
  %2992 = load ptr, ptr %49, align 8, !tbaa !5
  %2993 = load ptr, ptr %32, align 8, !tbaa !5
  %2994 = getelementptr inbounds i32, ptr %2993, i64 1
  %2995 = load ptr, ptr %34, align 8, !tbaa !5
  %2996 = getelementptr inbounds %struct.doublecomplex, ptr %2995, i64 1
  %2997 = load ptr, ptr %40, align 8, !tbaa !5
  %2998 = getelementptr inbounds %struct.doublecomplex, ptr %2997, i64 1
  %2999 = load ptr, ptr %43, align 8, !tbaa !5
  %3000 = getelementptr inbounds %struct.doublecomplex, ptr %2999, i64 1
  %3001 = load ptr, ptr %55, align 8, !tbaa !5
  %3002 = getelementptr inbounds i32, ptr %3001, i64 1
  %3003 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %2989, ptr noundef %2990, ptr noundef %71, ptr noundef %72, ptr noundef %2991, ptr noundef %2992, ptr noundef %78, ptr noundef %2994, ptr noundef %2996, ptr noundef %87, ptr noundef %2998, ptr noundef %3000, ptr noundef %91, ptr noundef %3002, ptr noundef %3003)
  %3004 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3005 = load double, ptr %3004, align 8, !tbaa !11
  %3006 = load ptr, ptr %53, align 8, !tbaa !5
  %3007 = load i32, ptr %61, align 4, !tbaa !9
  %3008 = sext i32 %3007 to i64
  %3009 = getelementptr inbounds %struct.doublecomplex, ptr %3006, i64 %3008
  %3010 = getelementptr inbounds %struct.doublecomplex, ptr %3009, i32 0, i32 0
  store double %3005, ptr %3010, align 8, !tbaa !11
  %3011 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3012 = load double, ptr %3011, align 8, !tbaa !14
  %3013 = load ptr, ptr %53, align 8, !tbaa !5
  %3014 = load i32, ptr %61, align 4, !tbaa !9
  %3015 = sext i32 %3014 to i64
  %3016 = getelementptr inbounds %struct.doublecomplex, ptr %3013, i64 %3015
  %3017 = getelementptr inbounds %struct.doublecomplex, ptr %3016, i32 0, i32 1
  store double %3012, ptr %3017, align 8, !tbaa !14
  %3018 = load i32, ptr %71, align 4, !tbaa !9
  %3019 = load i32, ptr %72, align 4, !tbaa !9
  %3020 = icmp ne i32 %3018, %3019
  br i1 %3020, label %3021, label %3037

3021:                                             ; preds = %2983
  %3022 = load i32, ptr %72, align 4, !tbaa !9
  %3023 = load i32, ptr %71, align 4, !tbaa !9
  %3024 = load i32, ptr %57, align 4, !tbaa !9
  %3025 = mul nsw i32 %3023, %3024
  %3026 = add nsw i32 %3022, %3025
  store i32 %3026, ptr %61, align 4, !tbaa !9
  %3027 = load ptr, ptr %53, align 8, !tbaa !5
  %3028 = load i32, ptr %61, align 4, !tbaa !9
  %3029 = sext i32 %3028 to i64
  %3030 = getelementptr inbounds %struct.doublecomplex, ptr %3027, i64 %3029
  %3031 = getelementptr inbounds %struct.doublecomplex, ptr %3030, i32 0, i32 0
  store double 0.000000e+00, ptr %3031, align 8, !tbaa !11
  %3032 = load ptr, ptr %53, align 8, !tbaa !5
  %3033 = load i32, ptr %61, align 4, !tbaa !9
  %3034 = sext i32 %3033 to i64
  %3035 = getelementptr inbounds %struct.doublecomplex, ptr %3032, i64 %3034
  %3036 = getelementptr inbounds %struct.doublecomplex, ptr %3035, i32 0, i32 1
  store double 0.000000e+00, ptr %3036, align 8, !tbaa !14
  br label %3037

3037:                                             ; preds = %3021, %2983
  br label %3038

3038:                                             ; preds = %3037
  %3039 = load i32, ptr %71, align 4, !tbaa !9
  %3040 = add nsw i32 %3039, 1
  store i32 %3040, ptr %71, align 4, !tbaa !9
  br label %2979, !llvm.loop !54

3041:                                             ; preds = %2979
  br label %3042

3042:                                             ; preds = %3041
  %3043 = load i32, ptr %72, align 4, !tbaa !9
  %3044 = add nsw i32 %3043, 1
  store i32 %3044, ptr %72, align 4, !tbaa !9
  br label %2973, !llvm.loop !55

3045:                                             ; preds = %2973
  br label %3936

3046:                                             ; preds = %2967
  %3047 = load i32, ptr %74, align 4, !tbaa !9
  %3048 = icmp eq i32 %3047, 2
  br i1 %3048, label %3049, label %3171

3049:                                             ; preds = %3046
  %3050 = load ptr, ptr %30, align 8, !tbaa !5
  %3051 = load i32, ptr %3050, align 4, !tbaa !9
  store i32 %3051, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %3052

3052:                                             ; preds = %3167, %3049
  %3053 = load i32, ptr %72, align 4, !tbaa !9
  %3054 = load i32, ptr %59, align 4, !tbaa !9
  %3055 = icmp sle i32 %3053, %3054
  br i1 %3055, label %3056, label %3170

3056:                                             ; preds = %3052
  %3057 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3057, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %3058

3058:                                             ; preds = %3163, %3056
  %3059 = load i32, ptr %71, align 4, !tbaa !9
  %3060 = load i32, ptr %60, align 4, !tbaa !9
  %3061 = icmp sle i32 %3059, %3060
  br i1 %3061, label %3062, label %3166

3062:                                             ; preds = %3058
  %3063 = load i32, ptr %70, align 4, !tbaa !9
  %3064 = icmp eq i32 %3063, 0
  br i1 %3064, label %3065, label %3107

3065:                                             ; preds = %3062
  %3066 = load i32, ptr %72, align 4, !tbaa !9
  %3067 = load i32, ptr %71, align 4, !tbaa !9
  %3068 = load i32, ptr %57, align 4, !tbaa !9
  %3069 = mul nsw i32 %3067, %3068
  %3070 = add nsw i32 %3066, %3069
  store i32 %3070, ptr %61, align 4, !tbaa !9
  %3071 = load ptr, ptr %29, align 8, !tbaa !5
  %3072 = load ptr, ptr %30, align 8, !tbaa !5
  %3073 = load ptr, ptr %48, align 8, !tbaa !5
  %3074 = load ptr, ptr %49, align 8, !tbaa !5
  %3075 = load ptr, ptr %32, align 8, !tbaa !5
  %3076 = getelementptr inbounds i32, ptr %3075, i64 1
  %3077 = load ptr, ptr %34, align 8, !tbaa !5
  %3078 = getelementptr inbounds %struct.doublecomplex, ptr %3077, i64 1
  %3079 = load ptr, ptr %40, align 8, !tbaa !5
  %3080 = getelementptr inbounds %struct.doublecomplex, ptr %3079, i64 1
  %3081 = load ptr, ptr %43, align 8, !tbaa !5
  %3082 = getelementptr inbounds %struct.doublecomplex, ptr %3081, i64 1
  %3083 = load ptr, ptr %55, align 8, !tbaa !5
  %3084 = getelementptr inbounds i32, ptr %3083, i64 1
  %3085 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %66, ptr noundef %3071, ptr noundef %3072, ptr noundef %71, ptr noundef %72, ptr noundef %3073, ptr noundef %3074, ptr noundef %78, ptr noundef %3076, ptr noundef %3078, ptr noundef %87, ptr noundef %3080, ptr noundef %3082, ptr noundef %91, ptr noundef %3084, ptr noundef %3085)
  %3086 = call { double, double } @Cd(ptr noundef %66)
  %3087 = extractvalue { double, double } %3086, 0
  %3088 = extractvalue { double, double } %3086, 1
  %3089 = fneg double %3088
  %3090 = call ptr @_pCd(ptr noundef %65)
  %3091 = getelementptr inbounds { double, double }, ptr %3090, i32 0, i32 0
  %3092 = getelementptr inbounds { double, double }, ptr %3090, i32 0, i32 1
  store double %3087, ptr %3091, align 8
  store double %3089, ptr %3092, align 8
  %3093 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3094 = load double, ptr %3093, align 8, !tbaa !11
  %3095 = load ptr, ptr %53, align 8, !tbaa !5
  %3096 = load i32, ptr %61, align 4, !tbaa !9
  %3097 = sext i32 %3096 to i64
  %3098 = getelementptr inbounds %struct.doublecomplex, ptr %3095, i64 %3097
  %3099 = getelementptr inbounds %struct.doublecomplex, ptr %3098, i32 0, i32 0
  store double %3094, ptr %3099, align 8, !tbaa !11
  %3100 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3101 = load double, ptr %3100, align 8, !tbaa !14
  %3102 = load ptr, ptr %53, align 8, !tbaa !5
  %3103 = load i32, ptr %61, align 4, !tbaa !9
  %3104 = sext i32 %3103 to i64
  %3105 = getelementptr inbounds %struct.doublecomplex, ptr %3102, i64 %3104
  %3106 = getelementptr inbounds %struct.doublecomplex, ptr %3105, i32 0, i32 1
  store double %3101, ptr %3106, align 8, !tbaa !14
  br label %3142

3107:                                             ; preds = %3062
  %3108 = load i32, ptr %72, align 4, !tbaa !9
  %3109 = load i32, ptr %71, align 4, !tbaa !9
  %3110 = load i32, ptr %57, align 4, !tbaa !9
  %3111 = mul nsw i32 %3109, %3110
  %3112 = add nsw i32 %3108, %3111
  store i32 %3112, ptr %61, align 4, !tbaa !9
  %3113 = load ptr, ptr %29, align 8, !tbaa !5
  %3114 = load ptr, ptr %30, align 8, !tbaa !5
  %3115 = load ptr, ptr %48, align 8, !tbaa !5
  %3116 = load ptr, ptr %49, align 8, !tbaa !5
  %3117 = load ptr, ptr %32, align 8, !tbaa !5
  %3118 = getelementptr inbounds i32, ptr %3117, i64 1
  %3119 = load ptr, ptr %34, align 8, !tbaa !5
  %3120 = getelementptr inbounds %struct.doublecomplex, ptr %3119, i64 1
  %3121 = load ptr, ptr %40, align 8, !tbaa !5
  %3122 = getelementptr inbounds %struct.doublecomplex, ptr %3121, i64 1
  %3123 = load ptr, ptr %43, align 8, !tbaa !5
  %3124 = getelementptr inbounds %struct.doublecomplex, ptr %3123, i64 1
  %3125 = load ptr, ptr %55, align 8, !tbaa !5
  %3126 = getelementptr inbounds i32, ptr %3125, i64 1
  %3127 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %3113, ptr noundef %3114, ptr noundef %71, ptr noundef %72, ptr noundef %3115, ptr noundef %3116, ptr noundef %78, ptr noundef %3118, ptr noundef %3120, ptr noundef %87, ptr noundef %3122, ptr noundef %3124, ptr noundef %91, ptr noundef %3126, ptr noundef %3127)
  %3128 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3129 = load double, ptr %3128, align 8, !tbaa !11
  %3130 = load ptr, ptr %53, align 8, !tbaa !5
  %3131 = load i32, ptr %61, align 4, !tbaa !9
  %3132 = sext i32 %3131 to i64
  %3133 = getelementptr inbounds %struct.doublecomplex, ptr %3130, i64 %3132
  %3134 = getelementptr inbounds %struct.doublecomplex, ptr %3133, i32 0, i32 0
  store double %3129, ptr %3134, align 8, !tbaa !11
  %3135 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3136 = load double, ptr %3135, align 8, !tbaa !14
  %3137 = load ptr, ptr %53, align 8, !tbaa !5
  %3138 = load i32, ptr %61, align 4, !tbaa !9
  %3139 = sext i32 %3138 to i64
  %3140 = getelementptr inbounds %struct.doublecomplex, ptr %3137, i64 %3139
  %3141 = getelementptr inbounds %struct.doublecomplex, ptr %3140, i32 0, i32 1
  store double %3136, ptr %3141, align 8, !tbaa !14
  br label %3142

3142:                                             ; preds = %3107, %3065
  %3143 = load i32, ptr %71, align 4, !tbaa !9
  %3144 = load i32, ptr %72, align 4, !tbaa !9
  %3145 = icmp ne i32 %3143, %3144
  br i1 %3145, label %3146, label %3162

3146:                                             ; preds = %3142
  %3147 = load i32, ptr %71, align 4, !tbaa !9
  %3148 = load i32, ptr %72, align 4, !tbaa !9
  %3149 = load i32, ptr %57, align 4, !tbaa !9
  %3150 = mul nsw i32 %3148, %3149
  %3151 = add nsw i32 %3147, %3150
  store i32 %3151, ptr %61, align 4, !tbaa !9
  %3152 = load ptr, ptr %53, align 8, !tbaa !5
  %3153 = load i32, ptr %61, align 4, !tbaa !9
  %3154 = sext i32 %3153 to i64
  %3155 = getelementptr inbounds %struct.doublecomplex, ptr %3152, i64 %3154
  %3156 = getelementptr inbounds %struct.doublecomplex, ptr %3155, i32 0, i32 0
  store double 0.000000e+00, ptr %3156, align 8, !tbaa !11
  %3157 = load ptr, ptr %53, align 8, !tbaa !5
  %3158 = load i32, ptr %61, align 4, !tbaa !9
  %3159 = sext i32 %3158 to i64
  %3160 = getelementptr inbounds %struct.doublecomplex, ptr %3157, i64 %3159
  %3161 = getelementptr inbounds %struct.doublecomplex, ptr %3160, i32 0, i32 1
  store double 0.000000e+00, ptr %3161, align 8, !tbaa !14
  br label %3162

3162:                                             ; preds = %3146, %3142
  br label %3163

3163:                                             ; preds = %3162
  %3164 = load i32, ptr %71, align 4, !tbaa !9
  %3165 = add nsw i32 %3164, 1
  store i32 %3165, ptr %71, align 4, !tbaa !9
  br label %3058, !llvm.loop !56

3166:                                             ; preds = %3058
  br label %3167

3167:                                             ; preds = %3166
  %3168 = load i32, ptr %72, align 4, !tbaa !9
  %3169 = add nsw i32 %3168, 1
  store i32 %3169, ptr %72, align 4, !tbaa !9
  br label %3052, !llvm.loop !57

3170:                                             ; preds = %3052
  br label %3935

3171:                                             ; preds = %3046
  %3172 = load i32, ptr %74, align 4, !tbaa !9
  %3173 = icmp eq i32 %3172, 3
  br i1 %3173, label %3174, label %3240

3174:                                             ; preds = %3171
  store i32 0, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  %3175 = load ptr, ptr %30, align 8, !tbaa !5
  %3176 = load i32, ptr %3175, align 4, !tbaa !9
  store i32 %3176, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %3177

3177:                                             ; preds = %3236, %3174
  %3178 = load i32, ptr %72, align 4, !tbaa !9
  %3179 = load i32, ptr %59, align 4, !tbaa !9
  %3180 = icmp sle i32 %3178, %3179
  br i1 %3180, label %3181, label %3239

3181:                                             ; preds = %3177
  %3182 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3182, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %3183

3183:                                             ; preds = %3232, %3181
  %3184 = load i32, ptr %71, align 4, !tbaa !9
  %3185 = load i32, ptr %60, align 4, !tbaa !9
  %3186 = icmp sle i32 %3184, %3185
  br i1 %3186, label %3187, label %3235

3187:                                             ; preds = %3183
  %3188 = load i32, ptr %67, align 4, !tbaa !9
  %3189 = add nsw i32 %3188, 1
  store i32 %3189, ptr %67, align 4, !tbaa !9
  %3190 = load i32, ptr %67, align 4, !tbaa !9
  %3191 = load ptr, ptr %54, align 8, !tbaa !5
  %3192 = load i32, ptr %3191, align 4, !tbaa !9
  %3193 = icmp sgt i32 %3190, %3192
  br i1 %3193, label %3194, label %3197

3194:                                             ; preds = %3187
  store i32 1, ptr %67, align 4, !tbaa !9
  %3195 = load i32, ptr %68, align 4, !tbaa !9
  %3196 = add nsw i32 %3195, 1
  store i32 %3196, ptr %68, align 4, !tbaa !9
  br label %3197

3197:                                             ; preds = %3194, %3187
  %3198 = load i32, ptr %67, align 4, !tbaa !9
  %3199 = load i32, ptr %68, align 4, !tbaa !9
  %3200 = load i32, ptr %57, align 4, !tbaa !9
  %3201 = mul nsw i32 %3199, %3200
  %3202 = add nsw i32 %3198, %3201
  store i32 %3202, ptr %61, align 4, !tbaa !9
  %3203 = load ptr, ptr %29, align 8, !tbaa !5
  %3204 = load ptr, ptr %30, align 8, !tbaa !5
  %3205 = load ptr, ptr %48, align 8, !tbaa !5
  %3206 = load ptr, ptr %49, align 8, !tbaa !5
  %3207 = load ptr, ptr %32, align 8, !tbaa !5
  %3208 = getelementptr inbounds i32, ptr %3207, i64 1
  %3209 = load ptr, ptr %34, align 8, !tbaa !5
  %3210 = getelementptr inbounds %struct.doublecomplex, ptr %3209, i64 1
  %3211 = load ptr, ptr %40, align 8, !tbaa !5
  %3212 = getelementptr inbounds %struct.doublecomplex, ptr %3211, i64 1
  %3213 = load ptr, ptr %43, align 8, !tbaa !5
  %3214 = getelementptr inbounds %struct.doublecomplex, ptr %3213, i64 1
  %3215 = load ptr, ptr %55, align 8, !tbaa !5
  %3216 = getelementptr inbounds i32, ptr %3215, i64 1
  %3217 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %3203, ptr noundef %3204, ptr noundef %71, ptr noundef %72, ptr noundef %3205, ptr noundef %3206, ptr noundef %78, ptr noundef %3208, ptr noundef %3210, ptr noundef %87, ptr noundef %3212, ptr noundef %3214, ptr noundef %91, ptr noundef %3216, ptr noundef %3217)
  %3218 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3219 = load double, ptr %3218, align 8, !tbaa !11
  %3220 = load ptr, ptr %53, align 8, !tbaa !5
  %3221 = load i32, ptr %61, align 4, !tbaa !9
  %3222 = sext i32 %3221 to i64
  %3223 = getelementptr inbounds %struct.doublecomplex, ptr %3220, i64 %3222
  %3224 = getelementptr inbounds %struct.doublecomplex, ptr %3223, i32 0, i32 0
  store double %3219, ptr %3224, align 8, !tbaa !11
  %3225 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3226 = load double, ptr %3225, align 8, !tbaa !14
  %3227 = load ptr, ptr %53, align 8, !tbaa !5
  %3228 = load i32, ptr %61, align 4, !tbaa !9
  %3229 = sext i32 %3228 to i64
  %3230 = getelementptr inbounds %struct.doublecomplex, ptr %3227, i64 %3229
  %3231 = getelementptr inbounds %struct.doublecomplex, ptr %3230, i32 0, i32 1
  store double %3226, ptr %3231, align 8, !tbaa !14
  br label %3232

3232:                                             ; preds = %3197
  %3233 = load i32, ptr %71, align 4, !tbaa !9
  %3234 = add nsw i32 %3233, 1
  store i32 %3234, ptr %71, align 4, !tbaa !9
  br label %3183, !llvm.loop !58

3235:                                             ; preds = %3183
  br label %3236

3236:                                             ; preds = %3235
  %3237 = load i32, ptr %72, align 4, !tbaa !9
  %3238 = add nsw i32 %3237, 1
  store i32 %3238, ptr %72, align 4, !tbaa !9
  br label %3177, !llvm.loop !59

3239:                                             ; preds = %3177
  br label %3934

3240:                                             ; preds = %3171
  %3241 = load i32, ptr %74, align 4, !tbaa !9
  %3242 = icmp eq i32 %3241, 4
  br i1 %3242, label %3243, label %3456

3243:                                             ; preds = %3240
  %3244 = load i32, ptr %70, align 4, !tbaa !9
  %3245 = icmp eq i32 %3244, 0
  br i1 %3245, label %3249, label %3246

3246:                                             ; preds = %3243
  %3247 = load i32, ptr %70, align 4, !tbaa !9
  %3248 = icmp eq i32 %3247, 2
  br i1 %3248, label %3249, label %3387

3249:                                             ; preds = %3246, %3243
  %3250 = load ptr, ptr %30, align 8, !tbaa !5
  %3251 = load i32, ptr %3250, align 4, !tbaa !9
  store i32 %3251, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %3252

3252:                                             ; preds = %3383, %3249
  %3253 = load i32, ptr %72, align 4, !tbaa !9
  %3254 = load i32, ptr %59, align 4, !tbaa !9
  %3255 = icmp sle i32 %3253, %3254
  br i1 %3255, label %3256, label %3386

3256:                                             ; preds = %3252
  %3257 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3257, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %71, align 4, !tbaa !9
  br label %3258

3258:                                             ; preds = %3379, %3256
  %3259 = load i32, ptr %71, align 4, !tbaa !9
  %3260 = load i32, ptr %60, align 4, !tbaa !9
  %3261 = icmp sle i32 %3259, %3260
  br i1 %3261, label %3262, label %3382

3262:                                             ; preds = %3258
  %3263 = load i32, ptr %71, align 4, !tbaa !9
  %3264 = icmp eq i32 %3263, 1
  br i1 %3264, label %3265, label %3267

3265:                                             ; preds = %3262
  %3266 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3266, ptr %73, align 4, !tbaa !9
  br label %3293

3267:                                             ; preds = %3262
  %3268 = load ptr, ptr %30, align 8, !tbaa !5
  %3269 = load i32, ptr %3268, align 4, !tbaa !9
  %3270 = load ptr, ptr %30, align 8, !tbaa !5
  %3271 = load i32, ptr %3270, align 4, !tbaa !9
  %3272 = add nsw i32 %3271, 1
  %3273 = mul nsw i32 %3269, %3272
  %3274 = sdiv i32 %3273, 2
  %3275 = load ptr, ptr %30, align 8, !tbaa !5
  %3276 = load i32, ptr %3275, align 4, !tbaa !9
  %3277 = load i32, ptr %71, align 4, !tbaa !9
  %3278 = sub nsw i32 %3276, %3277
  %3279 = add nsw i32 %3278, 1
  %3280 = load ptr, ptr %30, align 8, !tbaa !5
  %3281 = load i32, ptr %3280, align 4, !tbaa !9
  %3282 = load i32, ptr %71, align 4, !tbaa !9
  %3283 = sub nsw i32 %3281, %3282
  %3284 = add nsw i32 %3283, 2
  %3285 = mul nsw i32 %3279, %3284
  %3286 = sdiv i32 %3285, 2
  %3287 = sub nsw i32 %3274, %3286
  %3288 = load i32, ptr %72, align 4, !tbaa !9
  %3289 = add nsw i32 %3287, %3288
  %3290 = load i32, ptr %71, align 4, !tbaa !9
  %3291 = sub nsw i32 %3289, %3290
  %3292 = add nsw i32 %3291, 1
  store i32 %3292, ptr %73, align 4, !tbaa !9
  br label %3293

3293:                                             ; preds = %3267, %3265
  %3294 = load i32, ptr %73, align 4, !tbaa !9
  %3295 = sub nsw i32 %3294, 1
  %3296 = load ptr, ptr %54, align 8, !tbaa !5
  %3297 = load i32, ptr %3296, align 4, !tbaa !9
  %3298 = sdiv i32 %3295, %3297
  %3299 = add nsw i32 %3298, 1
  store i32 %3299, ptr %68, align 4, !tbaa !9
  %3300 = load i32, ptr %73, align 4, !tbaa !9
  %3301 = load ptr, ptr %54, align 8, !tbaa !5
  %3302 = load i32, ptr %3301, align 4, !tbaa !9
  %3303 = load i32, ptr %68, align 4, !tbaa !9
  %3304 = sub nsw i32 %3303, 1
  %3305 = mul nsw i32 %3302, %3304
  %3306 = sub nsw i32 %3300, %3305
  store i32 %3306, ptr %67, align 4, !tbaa !9
  %3307 = load i32, ptr %67, align 4, !tbaa !9
  %3308 = load i32, ptr %68, align 4, !tbaa !9
  %3309 = load i32, ptr %57, align 4, !tbaa !9
  %3310 = mul nsw i32 %3308, %3309
  %3311 = add nsw i32 %3307, %3310
  store i32 %3311, ptr %61, align 4, !tbaa !9
  %3312 = load ptr, ptr %29, align 8, !tbaa !5
  %3313 = load ptr, ptr %30, align 8, !tbaa !5
  %3314 = load ptr, ptr %48, align 8, !tbaa !5
  %3315 = load ptr, ptr %49, align 8, !tbaa !5
  %3316 = load ptr, ptr %32, align 8, !tbaa !5
  %3317 = getelementptr inbounds i32, ptr %3316, i64 1
  %3318 = load ptr, ptr %34, align 8, !tbaa !5
  %3319 = getelementptr inbounds %struct.doublecomplex, ptr %3318, i64 1
  %3320 = load ptr, ptr %40, align 8, !tbaa !5
  %3321 = getelementptr inbounds %struct.doublecomplex, ptr %3320, i64 1
  %3322 = load ptr, ptr %43, align 8, !tbaa !5
  %3323 = getelementptr inbounds %struct.doublecomplex, ptr %3322, i64 1
  %3324 = load ptr, ptr %55, align 8, !tbaa !5
  %3325 = getelementptr inbounds i32, ptr %3324, i64 1
  %3326 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %3312, ptr noundef %3313, ptr noundef %71, ptr noundef %72, ptr noundef %3314, ptr noundef %3315, ptr noundef %78, ptr noundef %3317, ptr noundef %3319, ptr noundef %87, ptr noundef %3321, ptr noundef %3323, ptr noundef %91, ptr noundef %3325, ptr noundef %3326)
  %3327 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3328 = load double, ptr %3327, align 8, !tbaa !11
  %3329 = load ptr, ptr %53, align 8, !tbaa !5
  %3330 = load i32, ptr %61, align 4, !tbaa !9
  %3331 = sext i32 %3330 to i64
  %3332 = getelementptr inbounds %struct.doublecomplex, ptr %3329, i64 %3331
  %3333 = getelementptr inbounds %struct.doublecomplex, ptr %3332, i32 0, i32 0
  store double %3328, ptr %3333, align 8, !tbaa !11
  %3334 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3335 = load double, ptr %3334, align 8, !tbaa !14
  %3336 = load ptr, ptr %53, align 8, !tbaa !5
  %3337 = load i32, ptr %61, align 4, !tbaa !9
  %3338 = sext i32 %3337 to i64
  %3339 = getelementptr inbounds %struct.doublecomplex, ptr %3336, i64 %3338
  %3340 = getelementptr inbounds %struct.doublecomplex, ptr %3339, i32 0, i32 1
  store double %3335, ptr %3340, align 8, !tbaa !14
  %3341 = load i32, ptr %70, align 4, !tbaa !9
  %3342 = icmp eq i32 %3341, 0
  br i1 %3342, label %3343, label %3378

3343:                                             ; preds = %3293
  %3344 = load i32, ptr %67, align 4, !tbaa !9
  %3345 = load i32, ptr %68, align 4, !tbaa !9
  %3346 = load i32, ptr %57, align 4, !tbaa !9
  %3347 = mul nsw i32 %3345, %3346
  %3348 = add nsw i32 %3344, %3347
  store i32 %3348, ptr %61, align 4, !tbaa !9
  %3349 = load ptr, ptr %53, align 8, !tbaa !5
  %3350 = load i32, ptr %67, align 4, !tbaa !9
  %3351 = load i32, ptr %68, align 4, !tbaa !9
  %3352 = load i32, ptr %57, align 4, !tbaa !9
  %3353 = mul nsw i32 %3351, %3352
  %3354 = add nsw i32 %3350, %3353
  %3355 = sext i32 %3354 to i64
  %3356 = getelementptr inbounds %struct.doublecomplex, ptr %3349, i64 %3355
  %3357 = call { double, double } @Cd(ptr noundef %3356)
  %3358 = extractvalue { double, double } %3357, 0
  %3359 = extractvalue { double, double } %3357, 1
  %3360 = fneg double %3359
  %3361 = call ptr @_pCd(ptr noundef %65)
  %3362 = getelementptr inbounds { double, double }, ptr %3361, i32 0, i32 0
  %3363 = getelementptr inbounds { double, double }, ptr %3361, i32 0, i32 1
  store double %3358, ptr %3362, align 8
  store double %3360, ptr %3363, align 8
  %3364 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3365 = load double, ptr %3364, align 8, !tbaa !11
  %3366 = load ptr, ptr %53, align 8, !tbaa !5
  %3367 = load i32, ptr %61, align 4, !tbaa !9
  %3368 = sext i32 %3367 to i64
  %3369 = getelementptr inbounds %struct.doublecomplex, ptr %3366, i64 %3368
  %3370 = getelementptr inbounds %struct.doublecomplex, ptr %3369, i32 0, i32 0
  store double %3365, ptr %3370, align 8, !tbaa !11
  %3371 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3372 = load double, ptr %3371, align 8, !tbaa !14
  %3373 = load ptr, ptr %53, align 8, !tbaa !5
  %3374 = load i32, ptr %61, align 4, !tbaa !9
  %3375 = sext i32 %3374 to i64
  %3376 = getelementptr inbounds %struct.doublecomplex, ptr %3373, i64 %3375
  %3377 = getelementptr inbounds %struct.doublecomplex, ptr %3376, i32 0, i32 1
  store double %3372, ptr %3377, align 8, !tbaa !14
  br label %3378

3378:                                             ; preds = %3343, %3293
  br label %3379

3379:                                             ; preds = %3378
  %3380 = load i32, ptr %71, align 4, !tbaa !9
  %3381 = add nsw i32 %3380, 1
  store i32 %3381, ptr %71, align 4, !tbaa !9
  br label %3258, !llvm.loop !60

3382:                                             ; preds = %3258
  br label %3383

3383:                                             ; preds = %3382
  %3384 = load i32, ptr %72, align 4, !tbaa !9
  %3385 = add nsw i32 %3384, 1
  store i32 %3385, ptr %72, align 4, !tbaa !9
  br label %3252, !llvm.loop !61

3386:                                             ; preds = %3252
  br label %3455

3387:                                             ; preds = %3246
  store i32 0, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  %3388 = load ptr, ptr %30, align 8, !tbaa !5
  %3389 = load i32, ptr %3388, align 4, !tbaa !9
  store i32 %3389, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %3390

3390:                                             ; preds = %3451, %3387
  %3391 = load i32, ptr %72, align 4, !tbaa !9
  %3392 = load i32, ptr %59, align 4, !tbaa !9
  %3393 = icmp sle i32 %3391, %3392
  br i1 %3393, label %3394, label %3454

3394:                                             ; preds = %3390
  %3395 = load ptr, ptr %29, align 8, !tbaa !5
  %3396 = load i32, ptr %3395, align 4, !tbaa !9
  store i32 %3396, ptr %60, align 4, !tbaa !9
  %3397 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3397, ptr %71, align 4, !tbaa !9
  br label %3398

3398:                                             ; preds = %3447, %3394
  %3399 = load i32, ptr %71, align 4, !tbaa !9
  %3400 = load i32, ptr %60, align 4, !tbaa !9
  %3401 = icmp sle i32 %3399, %3400
  br i1 %3401, label %3402, label %3450

3402:                                             ; preds = %3398
  %3403 = load i32, ptr %67, align 4, !tbaa !9
  %3404 = add nsw i32 %3403, 1
  store i32 %3404, ptr %67, align 4, !tbaa !9
  %3405 = load i32, ptr %67, align 4, !tbaa !9
  %3406 = load ptr, ptr %54, align 8, !tbaa !5
  %3407 = load i32, ptr %3406, align 4, !tbaa !9
  %3408 = icmp sgt i32 %3405, %3407
  br i1 %3408, label %3409, label %3412

3409:                                             ; preds = %3402
  store i32 1, ptr %67, align 4, !tbaa !9
  %3410 = load i32, ptr %68, align 4, !tbaa !9
  %3411 = add nsw i32 %3410, 1
  store i32 %3411, ptr %68, align 4, !tbaa !9
  br label %3412

3412:                                             ; preds = %3409, %3402
  %3413 = load i32, ptr %67, align 4, !tbaa !9
  %3414 = load i32, ptr %68, align 4, !tbaa !9
  %3415 = load i32, ptr %57, align 4, !tbaa !9
  %3416 = mul nsw i32 %3414, %3415
  %3417 = add nsw i32 %3413, %3416
  store i32 %3417, ptr %61, align 4, !tbaa !9
  %3418 = load ptr, ptr %29, align 8, !tbaa !5
  %3419 = load ptr, ptr %30, align 8, !tbaa !5
  %3420 = load ptr, ptr %48, align 8, !tbaa !5
  %3421 = load ptr, ptr %49, align 8, !tbaa !5
  %3422 = load ptr, ptr %32, align 8, !tbaa !5
  %3423 = getelementptr inbounds i32, ptr %3422, i64 1
  %3424 = load ptr, ptr %34, align 8, !tbaa !5
  %3425 = getelementptr inbounds %struct.doublecomplex, ptr %3424, i64 1
  %3426 = load ptr, ptr %40, align 8, !tbaa !5
  %3427 = getelementptr inbounds %struct.doublecomplex, ptr %3426, i64 1
  %3428 = load ptr, ptr %43, align 8, !tbaa !5
  %3429 = getelementptr inbounds %struct.doublecomplex, ptr %3428, i64 1
  %3430 = load ptr, ptr %55, align 8, !tbaa !5
  %3431 = getelementptr inbounds i32, ptr %3430, i64 1
  %3432 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %3418, ptr noundef %3419, ptr noundef %71, ptr noundef %72, ptr noundef %3420, ptr noundef %3421, ptr noundef %78, ptr noundef %3423, ptr noundef %3425, ptr noundef %87, ptr noundef %3427, ptr noundef %3429, ptr noundef %91, ptr noundef %3431, ptr noundef %3432)
  %3433 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3434 = load double, ptr %3433, align 8, !tbaa !11
  %3435 = load ptr, ptr %53, align 8, !tbaa !5
  %3436 = load i32, ptr %61, align 4, !tbaa !9
  %3437 = sext i32 %3436 to i64
  %3438 = getelementptr inbounds %struct.doublecomplex, ptr %3435, i64 %3437
  %3439 = getelementptr inbounds %struct.doublecomplex, ptr %3438, i32 0, i32 0
  store double %3434, ptr %3439, align 8, !tbaa !11
  %3440 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3441 = load double, ptr %3440, align 8, !tbaa !14
  %3442 = load ptr, ptr %53, align 8, !tbaa !5
  %3443 = load i32, ptr %61, align 4, !tbaa !9
  %3444 = sext i32 %3443 to i64
  %3445 = getelementptr inbounds %struct.doublecomplex, ptr %3442, i64 %3444
  %3446 = getelementptr inbounds %struct.doublecomplex, ptr %3445, i32 0, i32 1
  store double %3441, ptr %3446, align 8, !tbaa !14
  br label %3447

3447:                                             ; preds = %3412
  %3448 = load i32, ptr %71, align 4, !tbaa !9
  %3449 = add nsw i32 %3448, 1
  store i32 %3449, ptr %71, align 4, !tbaa !9
  br label %3398, !llvm.loop !62

3450:                                             ; preds = %3398
  br label %3451

3451:                                             ; preds = %3450
  %3452 = load i32, ptr %72, align 4, !tbaa !9
  %3453 = add nsw i32 %3452, 1
  store i32 %3453, ptr %72, align 4, !tbaa !9
  br label %3390, !llvm.loop !63

3454:                                             ; preds = %3390
  br label %3455

3455:                                             ; preds = %3454, %3386
  br label %3933

3456:                                             ; preds = %3240
  %3457 = load i32, ptr %74, align 4, !tbaa !9
  %3458 = icmp eq i32 %3457, 5
  br i1 %3458, label %3459, label %3596

3459:                                             ; preds = %3456
  %3460 = load ptr, ptr %30, align 8, !tbaa !5
  %3461 = load i32, ptr %3460, align 4, !tbaa !9
  store i32 %3461, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %3462

3462:                                             ; preds = %3592, %3459
  %3463 = load i32, ptr %72, align 4, !tbaa !9
  %3464 = load i32, ptr %59, align 4, !tbaa !9
  %3465 = icmp sle i32 %3463, %3464
  br i1 %3465, label %3466, label %3595

3466:                                             ; preds = %3462
  %3467 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3467, ptr %60, align 4, !tbaa !9
  %3468 = load i32, ptr %72, align 4, !tbaa !9
  %3469 = load i32, ptr %93, align 4, !tbaa !9
  %3470 = sub nsw i32 %3468, %3469
  store i32 %3470, ptr %71, align 4, !tbaa !9
  br label %3471

3471:                                             ; preds = %3588, %3466
  %3472 = load i32, ptr %71, align 4, !tbaa !9
  %3473 = load i32, ptr %60, align 4, !tbaa !9
  %3474 = icmp sle i32 %3472, %3473
  br i1 %3474, label %3475, label %3591

3475:                                             ; preds = %3471
  %3476 = load i32, ptr %71, align 4, !tbaa !9
  %3477 = icmp slt i32 %3476, 1
  br i1 %3477, label %3478, label %3500

3478:                                             ; preds = %3475
  %3479 = load i32, ptr %72, align 4, !tbaa !9
  %3480 = load i32, ptr %71, align 4, !tbaa !9
  %3481 = sub nsw i32 %3479, %3480
  %3482 = add nsw i32 %3481, 1
  %3483 = load i32, ptr %71, align 4, !tbaa !9
  %3484 = load ptr, ptr %30, align 8, !tbaa !5
  %3485 = load i32, ptr %3484, align 4, !tbaa !9
  %3486 = add nsw i32 %3483, %3485
  %3487 = load i32, ptr %57, align 4, !tbaa !9
  %3488 = mul nsw i32 %3486, %3487
  %3489 = add nsw i32 %3482, %3488
  store i32 %3489, ptr %61, align 4, !tbaa !9
  %3490 = load ptr, ptr %53, align 8, !tbaa !5
  %3491 = load i32, ptr %61, align 4, !tbaa !9
  %3492 = sext i32 %3491 to i64
  %3493 = getelementptr inbounds %struct.doublecomplex, ptr %3490, i64 %3492
  %3494 = getelementptr inbounds %struct.doublecomplex, ptr %3493, i32 0, i32 0
  store double 0.000000e+00, ptr %3494, align 8, !tbaa !11
  %3495 = load ptr, ptr %53, align 8, !tbaa !5
  %3496 = load i32, ptr %61, align 4, !tbaa !9
  %3497 = sext i32 %3496 to i64
  %3498 = getelementptr inbounds %struct.doublecomplex, ptr %3495, i64 %3497
  %3499 = getelementptr inbounds %struct.doublecomplex, ptr %3498, i32 0, i32 1
  store double 0.000000e+00, ptr %3499, align 8, !tbaa !14
  br label %3587

3500:                                             ; preds = %3475
  %3501 = load i32, ptr %70, align 4, !tbaa !9
  %3502 = icmp eq i32 %3501, 0
  br i1 %3502, label %3503, label %3548

3503:                                             ; preds = %3500
  %3504 = load i32, ptr %72, align 4, !tbaa !9
  %3505 = load i32, ptr %71, align 4, !tbaa !9
  %3506 = sub nsw i32 %3504, %3505
  %3507 = add nsw i32 %3506, 1
  %3508 = load i32, ptr %71, align 4, !tbaa !9
  %3509 = load i32, ptr %57, align 4, !tbaa !9
  %3510 = mul nsw i32 %3508, %3509
  %3511 = add nsw i32 %3507, %3510
  store i32 %3511, ptr %61, align 4, !tbaa !9
  %3512 = load ptr, ptr %29, align 8, !tbaa !5
  %3513 = load ptr, ptr %30, align 8, !tbaa !5
  %3514 = load ptr, ptr %48, align 8, !tbaa !5
  %3515 = load ptr, ptr %49, align 8, !tbaa !5
  %3516 = load ptr, ptr %32, align 8, !tbaa !5
  %3517 = getelementptr inbounds i32, ptr %3516, i64 1
  %3518 = load ptr, ptr %34, align 8, !tbaa !5
  %3519 = getelementptr inbounds %struct.doublecomplex, ptr %3518, i64 1
  %3520 = load ptr, ptr %40, align 8, !tbaa !5
  %3521 = getelementptr inbounds %struct.doublecomplex, ptr %3520, i64 1
  %3522 = load ptr, ptr %43, align 8, !tbaa !5
  %3523 = getelementptr inbounds %struct.doublecomplex, ptr %3522, i64 1
  %3524 = load ptr, ptr %55, align 8, !tbaa !5
  %3525 = getelementptr inbounds i32, ptr %3524, i64 1
  %3526 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %66, ptr noundef %3512, ptr noundef %3513, ptr noundef %71, ptr noundef %72, ptr noundef %3514, ptr noundef %3515, ptr noundef %78, ptr noundef %3517, ptr noundef %3519, ptr noundef %87, ptr noundef %3521, ptr noundef %3523, ptr noundef %91, ptr noundef %3525, ptr noundef %3526)
  %3527 = call { double, double } @Cd(ptr noundef %66)
  %3528 = extractvalue { double, double } %3527, 0
  %3529 = extractvalue { double, double } %3527, 1
  %3530 = fneg double %3529
  %3531 = call ptr @_pCd(ptr noundef %65)
  %3532 = getelementptr inbounds { double, double }, ptr %3531, i32 0, i32 0
  %3533 = getelementptr inbounds { double, double }, ptr %3531, i32 0, i32 1
  store double %3528, ptr %3532, align 8
  store double %3530, ptr %3533, align 8
  %3534 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3535 = load double, ptr %3534, align 8, !tbaa !11
  %3536 = load ptr, ptr %53, align 8, !tbaa !5
  %3537 = load i32, ptr %61, align 4, !tbaa !9
  %3538 = sext i32 %3537 to i64
  %3539 = getelementptr inbounds %struct.doublecomplex, ptr %3536, i64 %3538
  %3540 = getelementptr inbounds %struct.doublecomplex, ptr %3539, i32 0, i32 0
  store double %3535, ptr %3540, align 8, !tbaa !11
  %3541 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3542 = load double, ptr %3541, align 8, !tbaa !14
  %3543 = load ptr, ptr %53, align 8, !tbaa !5
  %3544 = load i32, ptr %61, align 4, !tbaa !9
  %3545 = sext i32 %3544 to i64
  %3546 = getelementptr inbounds %struct.doublecomplex, ptr %3543, i64 %3545
  %3547 = getelementptr inbounds %struct.doublecomplex, ptr %3546, i32 0, i32 1
  store double %3542, ptr %3547, align 8, !tbaa !14
  br label %3586

3548:                                             ; preds = %3500
  %3549 = load i32, ptr %72, align 4, !tbaa !9
  %3550 = load i32, ptr %71, align 4, !tbaa !9
  %3551 = sub nsw i32 %3549, %3550
  %3552 = add nsw i32 %3551, 1
  %3553 = load i32, ptr %71, align 4, !tbaa !9
  %3554 = load i32, ptr %57, align 4, !tbaa !9
  %3555 = mul nsw i32 %3553, %3554
  %3556 = add nsw i32 %3552, %3555
  store i32 %3556, ptr %61, align 4, !tbaa !9
  %3557 = load ptr, ptr %29, align 8, !tbaa !5
  %3558 = load ptr, ptr %30, align 8, !tbaa !5
  %3559 = load ptr, ptr %48, align 8, !tbaa !5
  %3560 = load ptr, ptr %49, align 8, !tbaa !5
  %3561 = load ptr, ptr %32, align 8, !tbaa !5
  %3562 = getelementptr inbounds i32, ptr %3561, i64 1
  %3563 = load ptr, ptr %34, align 8, !tbaa !5
  %3564 = getelementptr inbounds %struct.doublecomplex, ptr %3563, i64 1
  %3565 = load ptr, ptr %40, align 8, !tbaa !5
  %3566 = getelementptr inbounds %struct.doublecomplex, ptr %3565, i64 1
  %3567 = load ptr, ptr %43, align 8, !tbaa !5
  %3568 = getelementptr inbounds %struct.doublecomplex, ptr %3567, i64 1
  %3569 = load ptr, ptr %55, align 8, !tbaa !5
  %3570 = getelementptr inbounds i32, ptr %3569, i64 1
  %3571 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %3557, ptr noundef %3558, ptr noundef %71, ptr noundef %72, ptr noundef %3559, ptr noundef %3560, ptr noundef %78, ptr noundef %3562, ptr noundef %3564, ptr noundef %87, ptr noundef %3566, ptr noundef %3568, ptr noundef %91, ptr noundef %3570, ptr noundef %3571)
  %3572 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3573 = load double, ptr %3572, align 8, !tbaa !11
  %3574 = load ptr, ptr %53, align 8, !tbaa !5
  %3575 = load i32, ptr %61, align 4, !tbaa !9
  %3576 = sext i32 %3575 to i64
  %3577 = getelementptr inbounds %struct.doublecomplex, ptr %3574, i64 %3576
  %3578 = getelementptr inbounds %struct.doublecomplex, ptr %3577, i32 0, i32 0
  store double %3573, ptr %3578, align 8, !tbaa !11
  %3579 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3580 = load double, ptr %3579, align 8, !tbaa !14
  %3581 = load ptr, ptr %53, align 8, !tbaa !5
  %3582 = load i32, ptr %61, align 4, !tbaa !9
  %3583 = sext i32 %3582 to i64
  %3584 = getelementptr inbounds %struct.doublecomplex, ptr %3581, i64 %3583
  %3585 = getelementptr inbounds %struct.doublecomplex, ptr %3584, i32 0, i32 1
  store double %3580, ptr %3585, align 8, !tbaa !14
  br label %3586

3586:                                             ; preds = %3548, %3503
  br label %3587

3587:                                             ; preds = %3586, %3478
  br label %3588

3588:                                             ; preds = %3587
  %3589 = load i32, ptr %71, align 4, !tbaa !9
  %3590 = add nsw i32 %3589, 1
  store i32 %3590, ptr %71, align 4, !tbaa !9
  br label %3471, !llvm.loop !64

3591:                                             ; preds = %3471
  br label %3592

3592:                                             ; preds = %3591
  %3593 = load i32, ptr %72, align 4, !tbaa !9
  %3594 = add nsw i32 %3593, 1
  store i32 %3594, ptr %72, align 4, !tbaa !9
  br label %3462, !llvm.loop !65

3595:                                             ; preds = %3462
  br label %3932

3596:                                             ; preds = %3456
  %3597 = load i32, ptr %74, align 4, !tbaa !9
  %3598 = icmp eq i32 %3597, 6
  br i1 %3598, label %3599, label %3663

3599:                                             ; preds = %3596
  %3600 = load ptr, ptr %30, align 8, !tbaa !5
  %3601 = load i32, ptr %3600, align 4, !tbaa !9
  store i32 %3601, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %3602

3602:                                             ; preds = %3659, %3599
  %3603 = load i32, ptr %72, align 4, !tbaa !9
  %3604 = load i32, ptr %59, align 4, !tbaa !9
  %3605 = icmp sle i32 %3603, %3604
  br i1 %3605, label %3606, label %3662

3606:                                             ; preds = %3602
  %3607 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3607, ptr %60, align 4, !tbaa !9
  %3608 = load i32, ptr %72, align 4, !tbaa !9
  %3609 = load i32, ptr %93, align 4, !tbaa !9
  %3610 = sub nsw i32 %3608, %3609
  store i32 %3610, ptr %71, align 4, !tbaa !9
  br label %3611

3611:                                             ; preds = %3655, %3606
  %3612 = load i32, ptr %71, align 4, !tbaa !9
  %3613 = load i32, ptr %60, align 4, !tbaa !9
  %3614 = icmp sle i32 %3612, %3613
  br i1 %3614, label %3615, label %3658

3615:                                             ; preds = %3611
  %3616 = load i32, ptr %71, align 4, !tbaa !9
  %3617 = load i32, ptr %72, align 4, !tbaa !9
  %3618 = sub nsw i32 %3616, %3617
  %3619 = load i32, ptr %93, align 4, !tbaa !9
  %3620 = add nsw i32 %3618, %3619
  %3621 = add nsw i32 %3620, 1
  %3622 = load i32, ptr %72, align 4, !tbaa !9
  %3623 = load i32, ptr %57, align 4, !tbaa !9
  %3624 = mul nsw i32 %3622, %3623
  %3625 = add nsw i32 %3621, %3624
  store i32 %3625, ptr %61, align 4, !tbaa !9
  %3626 = load ptr, ptr %29, align 8, !tbaa !5
  %3627 = load ptr, ptr %30, align 8, !tbaa !5
  %3628 = load ptr, ptr %48, align 8, !tbaa !5
  %3629 = load ptr, ptr %49, align 8, !tbaa !5
  %3630 = load ptr, ptr %32, align 8, !tbaa !5
  %3631 = getelementptr inbounds i32, ptr %3630, i64 1
  %3632 = load ptr, ptr %34, align 8, !tbaa !5
  %3633 = getelementptr inbounds %struct.doublecomplex, ptr %3632, i64 1
  %3634 = load ptr, ptr %40, align 8, !tbaa !5
  %3635 = getelementptr inbounds %struct.doublecomplex, ptr %3634, i64 1
  %3636 = load ptr, ptr %43, align 8, !tbaa !5
  %3637 = getelementptr inbounds %struct.doublecomplex, ptr %3636, i64 1
  %3638 = load ptr, ptr %55, align 8, !tbaa !5
  %3639 = getelementptr inbounds i32, ptr %3638, i64 1
  %3640 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %3626, ptr noundef %3627, ptr noundef %71, ptr noundef %72, ptr noundef %3628, ptr noundef %3629, ptr noundef %78, ptr noundef %3631, ptr noundef %3633, ptr noundef %87, ptr noundef %3635, ptr noundef %3637, ptr noundef %91, ptr noundef %3639, ptr noundef %3640)
  %3641 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3642 = load double, ptr %3641, align 8, !tbaa !11
  %3643 = load ptr, ptr %53, align 8, !tbaa !5
  %3644 = load i32, ptr %61, align 4, !tbaa !9
  %3645 = sext i32 %3644 to i64
  %3646 = getelementptr inbounds %struct.doublecomplex, ptr %3643, i64 %3645
  %3647 = getelementptr inbounds %struct.doublecomplex, ptr %3646, i32 0, i32 0
  store double %3642, ptr %3647, align 8, !tbaa !11
  %3648 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3649 = load double, ptr %3648, align 8, !tbaa !14
  %3650 = load ptr, ptr %53, align 8, !tbaa !5
  %3651 = load i32, ptr %61, align 4, !tbaa !9
  %3652 = sext i32 %3651 to i64
  %3653 = getelementptr inbounds %struct.doublecomplex, ptr %3650, i64 %3652
  %3654 = getelementptr inbounds %struct.doublecomplex, ptr %3653, i32 0, i32 1
  store double %3649, ptr %3654, align 8, !tbaa !14
  br label %3655

3655:                                             ; preds = %3615
  %3656 = load i32, ptr %71, align 4, !tbaa !9
  %3657 = add nsw i32 %3656, 1
  store i32 %3657, ptr %71, align 4, !tbaa !9
  br label %3611, !llvm.loop !66

3658:                                             ; preds = %3611
  br label %3659

3659:                                             ; preds = %3658
  %3660 = load i32, ptr %72, align 4, !tbaa !9
  %3661 = add nsw i32 %3660, 1
  store i32 %3661, ptr %72, align 4, !tbaa !9
  br label %3602, !llvm.loop !67

3662:                                             ; preds = %3602
  br label %3931

3663:                                             ; preds = %3596
  %3664 = load i32, ptr %74, align 4, !tbaa !9
  %3665 = icmp eq i32 %3664, 7
  br i1 %3665, label %3666, label %3930

3666:                                             ; preds = %3663
  %3667 = load i32, ptr %70, align 4, !tbaa !9
  %3668 = icmp ne i32 %3667, 1
  br i1 %3668, label %3669, label %3859

3669:                                             ; preds = %3666
  %3670 = load ptr, ptr %30, align 8, !tbaa !5
  %3671 = load i32, ptr %3670, align 4, !tbaa !9
  store i32 %3671, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %3672

3672:                                             ; preds = %3855, %3669
  %3673 = load i32, ptr %72, align 4, !tbaa !9
  %3674 = load i32, ptr %59, align 4, !tbaa !9
  %3675 = icmp sle i32 %3673, %3674
  br i1 %3675, label %3676, label %3858

3676:                                             ; preds = %3672
  %3677 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %3677, ptr %60, align 4, !tbaa !9
  %3678 = load i32, ptr %72, align 4, !tbaa !9
  %3679 = load i32, ptr %93, align 4, !tbaa !9
  %3680 = sub nsw i32 %3678, %3679
  store i32 %3680, ptr %71, align 4, !tbaa !9
  br label %3681

3681:                                             ; preds = %3851, %3676
  %3682 = load i32, ptr %71, align 4, !tbaa !9
  %3683 = load i32, ptr %60, align 4, !tbaa !9
  %3684 = icmp sle i32 %3682, %3683
  br i1 %3684, label %3685, label %3854

3685:                                             ; preds = %3681
  %3686 = load i32, ptr %71, align 4, !tbaa !9
  %3687 = load i32, ptr %72, align 4, !tbaa !9
  %3688 = sub nsw i32 %3686, %3687
  %3689 = load i32, ptr %93, align 4, !tbaa !9
  %3690 = add nsw i32 %3688, %3689
  %3691 = add nsw i32 %3690, 1
  %3692 = load i32, ptr %72, align 4, !tbaa !9
  %3693 = load i32, ptr %57, align 4, !tbaa !9
  %3694 = mul nsw i32 %3692, %3693
  %3695 = add nsw i32 %3691, %3694
  store i32 %3695, ptr %61, align 4, !tbaa !9
  %3696 = load ptr, ptr %29, align 8, !tbaa !5
  %3697 = load ptr, ptr %30, align 8, !tbaa !5
  %3698 = load ptr, ptr %48, align 8, !tbaa !5
  %3699 = load ptr, ptr %49, align 8, !tbaa !5
  %3700 = load ptr, ptr %32, align 8, !tbaa !5
  %3701 = getelementptr inbounds i32, ptr %3700, i64 1
  %3702 = load ptr, ptr %34, align 8, !tbaa !5
  %3703 = getelementptr inbounds %struct.doublecomplex, ptr %3702, i64 1
  %3704 = load ptr, ptr %40, align 8, !tbaa !5
  %3705 = getelementptr inbounds %struct.doublecomplex, ptr %3704, i64 1
  %3706 = load ptr, ptr %43, align 8, !tbaa !5
  %3707 = getelementptr inbounds %struct.doublecomplex, ptr %3706, i64 1
  %3708 = load ptr, ptr %55, align 8, !tbaa !5
  %3709 = getelementptr inbounds i32, ptr %3708, i64 1
  %3710 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %3696, ptr noundef %3697, ptr noundef %71, ptr noundef %72, ptr noundef %3698, ptr noundef %3699, ptr noundef %78, ptr noundef %3701, ptr noundef %3703, ptr noundef %87, ptr noundef %3705, ptr noundef %3707, ptr noundef %91, ptr noundef %3709, ptr noundef %3710)
  %3711 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3712 = load double, ptr %3711, align 8, !tbaa !11
  %3713 = load ptr, ptr %53, align 8, !tbaa !5
  %3714 = load i32, ptr %61, align 4, !tbaa !9
  %3715 = sext i32 %3714 to i64
  %3716 = getelementptr inbounds %struct.doublecomplex, ptr %3713, i64 %3715
  %3717 = getelementptr inbounds %struct.doublecomplex, ptr %3716, i32 0, i32 0
  store double %3712, ptr %3717, align 8, !tbaa !11
  %3718 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3719 = load double, ptr %3718, align 8, !tbaa !14
  %3720 = load ptr, ptr %53, align 8, !tbaa !5
  %3721 = load i32, ptr %61, align 4, !tbaa !9
  %3722 = sext i32 %3721 to i64
  %3723 = getelementptr inbounds %struct.doublecomplex, ptr %3720, i64 %3722
  %3724 = getelementptr inbounds %struct.doublecomplex, ptr %3723, i32 0, i32 1
  store double %3719, ptr %3724, align 8, !tbaa !14
  %3725 = load i32, ptr %71, align 4, !tbaa !9
  %3726 = icmp slt i32 %3725, 1
  br i1 %3726, label %3727, label %3751

3727:                                             ; preds = %3685
  %3728 = load i32, ptr %72, align 4, !tbaa !9
  %3729 = load i32, ptr %71, align 4, !tbaa !9
  %3730 = sub nsw i32 %3728, %3729
  %3731 = add nsw i32 %3730, 1
  %3732 = load i32, ptr %93, align 4, !tbaa !9
  %3733 = add nsw i32 %3731, %3732
  %3734 = load i32, ptr %71, align 4, !tbaa !9
  %3735 = load ptr, ptr %30, align 8, !tbaa !5
  %3736 = load i32, ptr %3735, align 4, !tbaa !9
  %3737 = add nsw i32 %3734, %3736
  %3738 = load i32, ptr %57, align 4, !tbaa !9
  %3739 = mul nsw i32 %3737, %3738
  %3740 = add nsw i32 %3733, %3739
  store i32 %3740, ptr %61, align 4, !tbaa !9
  %3741 = load ptr, ptr %53, align 8, !tbaa !5
  %3742 = load i32, ptr %61, align 4, !tbaa !9
  %3743 = sext i32 %3742 to i64
  %3744 = getelementptr inbounds %struct.doublecomplex, ptr %3741, i64 %3743
  %3745 = getelementptr inbounds %struct.doublecomplex, ptr %3744, i32 0, i32 0
  store double 0.000000e+00, ptr %3745, align 8, !tbaa !11
  %3746 = load ptr, ptr %53, align 8, !tbaa !5
  %3747 = load i32, ptr %61, align 4, !tbaa !9
  %3748 = sext i32 %3747 to i64
  %3749 = getelementptr inbounds %struct.doublecomplex, ptr %3746, i64 %3748
  %3750 = getelementptr inbounds %struct.doublecomplex, ptr %3749, i32 0, i32 1
  store double 0.000000e+00, ptr %3750, align 8, !tbaa !14
  br label %3751

3751:                                             ; preds = %3727, %3685
  %3752 = load i32, ptr %71, align 4, !tbaa !9
  %3753 = icmp sge i32 %3752, 1
  br i1 %3753, label %3754, label %3850

3754:                                             ; preds = %3751
  %3755 = load i32, ptr %71, align 4, !tbaa !9
  %3756 = load i32, ptr %72, align 4, !tbaa !9
  %3757 = icmp ne i32 %3755, %3756
  br i1 %3757, label %3758, label %3850

3758:                                             ; preds = %3754
  %3759 = load i32, ptr %70, align 4, !tbaa !9
  %3760 = icmp eq i32 %3759, 0
  br i1 %3760, label %3761, label %3806

3761:                                             ; preds = %3758
  %3762 = load i32, ptr %72, align 4, !tbaa !9
  %3763 = load i32, ptr %71, align 4, !tbaa !9
  %3764 = sub nsw i32 %3762, %3763
  %3765 = add nsw i32 %3764, 1
  %3766 = load i32, ptr %93, align 4, !tbaa !9
  %3767 = add nsw i32 %3765, %3766
  %3768 = load i32, ptr %71, align 4, !tbaa !9
  %3769 = load i32, ptr %57, align 4, !tbaa !9
  %3770 = mul nsw i32 %3768, %3769
  %3771 = add nsw i32 %3767, %3770
  store i32 %3771, ptr %61, align 4, !tbaa !9
  %3772 = load ptr, ptr %53, align 8, !tbaa !5
  %3773 = load i32, ptr %71, align 4, !tbaa !9
  %3774 = load i32, ptr %72, align 4, !tbaa !9
  %3775 = sub nsw i32 %3773, %3774
  %3776 = load i32, ptr %93, align 4, !tbaa !9
  %3777 = add nsw i32 %3775, %3776
  %3778 = add nsw i32 %3777, 1
  %3779 = load i32, ptr %72, align 4, !tbaa !9
  %3780 = load i32, ptr %57, align 4, !tbaa !9
  %3781 = mul nsw i32 %3779, %3780
  %3782 = add nsw i32 %3778, %3781
  %3783 = sext i32 %3782 to i64
  %3784 = getelementptr inbounds %struct.doublecomplex, ptr %3772, i64 %3783
  %3785 = call { double, double } @Cd(ptr noundef %3784)
  %3786 = extractvalue { double, double } %3785, 0
  %3787 = extractvalue { double, double } %3785, 1
  %3788 = fneg double %3787
  %3789 = call ptr @_pCd(ptr noundef %65)
  %3790 = getelementptr inbounds { double, double }, ptr %3789, i32 0, i32 0
  %3791 = getelementptr inbounds { double, double }, ptr %3789, i32 0, i32 1
  store double %3786, ptr %3790, align 8
  store double %3788, ptr %3791, align 8
  %3792 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3793 = load double, ptr %3792, align 8, !tbaa !11
  %3794 = load ptr, ptr %53, align 8, !tbaa !5
  %3795 = load i32, ptr %61, align 4, !tbaa !9
  %3796 = sext i32 %3795 to i64
  %3797 = getelementptr inbounds %struct.doublecomplex, ptr %3794, i64 %3796
  %3798 = getelementptr inbounds %struct.doublecomplex, ptr %3797, i32 0, i32 0
  store double %3793, ptr %3798, align 8, !tbaa !11
  %3799 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3800 = load double, ptr %3799, align 8, !tbaa !14
  %3801 = load ptr, ptr %53, align 8, !tbaa !5
  %3802 = load i32, ptr %61, align 4, !tbaa !9
  %3803 = sext i32 %3802 to i64
  %3804 = getelementptr inbounds %struct.doublecomplex, ptr %3801, i64 %3803
  %3805 = getelementptr inbounds %struct.doublecomplex, ptr %3804, i32 0, i32 1
  store double %3800, ptr %3805, align 8, !tbaa !14
  br label %3849

3806:                                             ; preds = %3758
  %3807 = load i32, ptr %72, align 4, !tbaa !9
  %3808 = load i32, ptr %71, align 4, !tbaa !9
  %3809 = sub nsw i32 %3807, %3808
  %3810 = add nsw i32 %3809, 1
  %3811 = load i32, ptr %93, align 4, !tbaa !9
  %3812 = add nsw i32 %3810, %3811
  %3813 = load i32, ptr %71, align 4, !tbaa !9
  %3814 = load i32, ptr %57, align 4, !tbaa !9
  %3815 = mul nsw i32 %3813, %3814
  %3816 = add nsw i32 %3812, %3815
  store i32 %3816, ptr %61, align 4, !tbaa !9
  %3817 = load i32, ptr %71, align 4, !tbaa !9
  %3818 = load i32, ptr %72, align 4, !tbaa !9
  %3819 = sub nsw i32 %3817, %3818
  %3820 = load i32, ptr %93, align 4, !tbaa !9
  %3821 = add nsw i32 %3819, %3820
  %3822 = add nsw i32 %3821, 1
  %3823 = load i32, ptr %72, align 4, !tbaa !9
  %3824 = load i32, ptr %57, align 4, !tbaa !9
  %3825 = mul nsw i32 %3823, %3824
  %3826 = add nsw i32 %3822, %3825
  store i32 %3826, ptr %62, align 4, !tbaa !9
  %3827 = load ptr, ptr %53, align 8, !tbaa !5
  %3828 = load i32, ptr %62, align 4, !tbaa !9
  %3829 = sext i32 %3828 to i64
  %3830 = getelementptr inbounds %struct.doublecomplex, ptr %3827, i64 %3829
  %3831 = getelementptr inbounds %struct.doublecomplex, ptr %3830, i32 0, i32 0
  %3832 = load double, ptr %3831, align 8, !tbaa !11
  %3833 = load ptr, ptr %53, align 8, !tbaa !5
  %3834 = load i32, ptr %61, align 4, !tbaa !9
  %3835 = sext i32 %3834 to i64
  %3836 = getelementptr inbounds %struct.doublecomplex, ptr %3833, i64 %3835
  %3837 = getelementptr inbounds %struct.doublecomplex, ptr %3836, i32 0, i32 0
  store double %3832, ptr %3837, align 8, !tbaa !11
  %3838 = load ptr, ptr %53, align 8, !tbaa !5
  %3839 = load i32, ptr %62, align 4, !tbaa !9
  %3840 = sext i32 %3839 to i64
  %3841 = getelementptr inbounds %struct.doublecomplex, ptr %3838, i64 %3840
  %3842 = getelementptr inbounds %struct.doublecomplex, ptr %3841, i32 0, i32 1
  %3843 = load double, ptr %3842, align 8, !tbaa !14
  %3844 = load ptr, ptr %53, align 8, !tbaa !5
  %3845 = load i32, ptr %61, align 4, !tbaa !9
  %3846 = sext i32 %3845 to i64
  %3847 = getelementptr inbounds %struct.doublecomplex, ptr %3844, i64 %3846
  %3848 = getelementptr inbounds %struct.doublecomplex, ptr %3847, i32 0, i32 1
  store double %3843, ptr %3848, align 8, !tbaa !14
  br label %3849

3849:                                             ; preds = %3806, %3761
  br label %3850

3850:                                             ; preds = %3849, %3754, %3751
  br label %3851

3851:                                             ; preds = %3850
  %3852 = load i32, ptr %71, align 4, !tbaa !9
  %3853 = add nsw i32 %3852, 1
  store i32 %3853, ptr %71, align 4, !tbaa !9
  br label %3681, !llvm.loop !68

3854:                                             ; preds = %3681
  br label %3855

3855:                                             ; preds = %3854
  %3856 = load i32, ptr %72, align 4, !tbaa !9
  %3857 = add nsw i32 %3856, 1
  store i32 %3857, ptr %72, align 4, !tbaa !9
  br label %3672, !llvm.loop !69

3858:                                             ; preds = %3672
  br label %3929

3859:                                             ; preds = %3666
  %3860 = load i32, ptr %70, align 4, !tbaa !9
  %3861 = icmp eq i32 %3860, 1
  br i1 %3861, label %3862, label %3928

3862:                                             ; preds = %3859
  %3863 = load ptr, ptr %30, align 8, !tbaa !5
  %3864 = load i32, ptr %3863, align 4, !tbaa !9
  store i32 %3864, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %3865

3865:                                             ; preds = %3924, %3862
  %3866 = load i32, ptr %72, align 4, !tbaa !9
  %3867 = load i32, ptr %59, align 4, !tbaa !9
  %3868 = icmp sle i32 %3866, %3867
  br i1 %3868, label %3869, label %3927

3869:                                             ; preds = %3865
  %3870 = load i32, ptr %72, align 4, !tbaa !9
  %3871 = load i32, ptr %92, align 4, !tbaa !9
  %3872 = add nsw i32 %3870, %3871
  store i32 %3872, ptr %60, align 4, !tbaa !9
  %3873 = load i32, ptr %72, align 4, !tbaa !9
  %3874 = load i32, ptr %93, align 4, !tbaa !9
  %3875 = sub nsw i32 %3873, %3874
  store i32 %3875, ptr %71, align 4, !tbaa !9
  br label %3876

3876:                                             ; preds = %3920, %3869
  %3877 = load i32, ptr %71, align 4, !tbaa !9
  %3878 = load i32, ptr %60, align 4, !tbaa !9
  %3879 = icmp sle i32 %3877, %3878
  br i1 %3879, label %3880, label %3923

3880:                                             ; preds = %3876
  %3881 = load i32, ptr %71, align 4, !tbaa !9
  %3882 = load i32, ptr %72, align 4, !tbaa !9
  %3883 = sub nsw i32 %3881, %3882
  %3884 = load i32, ptr %93, align 4, !tbaa !9
  %3885 = add nsw i32 %3883, %3884
  %3886 = add nsw i32 %3885, 1
  %3887 = load i32, ptr %72, align 4, !tbaa !9
  %3888 = load i32, ptr %57, align 4, !tbaa !9
  %3889 = mul nsw i32 %3887, %3888
  %3890 = add nsw i32 %3886, %3889
  store i32 %3890, ptr %61, align 4, !tbaa !9
  %3891 = load ptr, ptr %29, align 8, !tbaa !5
  %3892 = load ptr, ptr %30, align 8, !tbaa !5
  %3893 = load ptr, ptr %48, align 8, !tbaa !5
  %3894 = load ptr, ptr %49, align 8, !tbaa !5
  %3895 = load ptr, ptr %32, align 8, !tbaa !5
  %3896 = getelementptr inbounds i32, ptr %3895, i64 1
  %3897 = load ptr, ptr %34, align 8, !tbaa !5
  %3898 = getelementptr inbounds %struct.doublecomplex, ptr %3897, i64 1
  %3899 = load ptr, ptr %40, align 8, !tbaa !5
  %3900 = getelementptr inbounds %struct.doublecomplex, ptr %3899, i64 1
  %3901 = load ptr, ptr %43, align 8, !tbaa !5
  %3902 = getelementptr inbounds %struct.doublecomplex, ptr %3901, i64 1
  %3903 = load ptr, ptr %55, align 8, !tbaa !5
  %3904 = getelementptr inbounds i32, ptr %3903, i64 1
  %3905 = load ptr, ptr %50, align 8, !tbaa !5
  call void @zlatm2_(ptr noundef %65, ptr noundef %3891, ptr noundef %3892, ptr noundef %71, ptr noundef %72, ptr noundef %3893, ptr noundef %3894, ptr noundef %78, ptr noundef %3896, ptr noundef %3898, ptr noundef %87, ptr noundef %3900, ptr noundef %3902, ptr noundef %91, ptr noundef %3904, ptr noundef %3905)
  %3906 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 0
  %3907 = load double, ptr %3906, align 8, !tbaa !11
  %3908 = load ptr, ptr %53, align 8, !tbaa !5
  %3909 = load i32, ptr %61, align 4, !tbaa !9
  %3910 = sext i32 %3909 to i64
  %3911 = getelementptr inbounds %struct.doublecomplex, ptr %3908, i64 %3910
  %3912 = getelementptr inbounds %struct.doublecomplex, ptr %3911, i32 0, i32 0
  store double %3907, ptr %3912, align 8, !tbaa !11
  %3913 = getelementptr inbounds %struct.doublecomplex, ptr %65, i32 0, i32 1
  %3914 = load double, ptr %3913, align 8, !tbaa !14
  %3915 = load ptr, ptr %53, align 8, !tbaa !5
  %3916 = load i32, ptr %61, align 4, !tbaa !9
  %3917 = sext i32 %3916 to i64
  %3918 = getelementptr inbounds %struct.doublecomplex, ptr %3915, i64 %3917
  %3919 = getelementptr inbounds %struct.doublecomplex, ptr %3918, i32 0, i32 1
  store double %3914, ptr %3919, align 8, !tbaa !14
  br label %3920

3920:                                             ; preds = %3880
  %3921 = load i32, ptr %71, align 4, !tbaa !9
  %3922 = add nsw i32 %3921, 1
  store i32 %3922, ptr %71, align 4, !tbaa !9
  br label %3876, !llvm.loop !70

3923:                                             ; preds = %3876
  br label %3924

3924:                                             ; preds = %3923
  %3925 = load i32, ptr %72, align 4, !tbaa !9
  %3926 = add nsw i32 %3925, 1
  store i32 %3926, ptr %72, align 4, !tbaa !9
  br label %3865, !llvm.loop !71

3927:                                             ; preds = %3865
  br label %3928

3928:                                             ; preds = %3927, %3859
  br label %3929

3929:                                             ; preds = %3928, %3858
  br label %3930

3930:                                             ; preds = %3929, %3663
  br label %3931

3931:                                             ; preds = %3930, %3662
  br label %3932

3932:                                             ; preds = %3931, %3595
  br label %3933

3933:                                             ; preds = %3932, %3455
  br label %3934

3934:                                             ; preds = %3933, %3239
  br label %3935

3935:                                             ; preds = %3934, %3170
  br label %3936

3936:                                             ; preds = %3935, %3045
  br label %3937

3937:                                             ; preds = %3936, %2966
  br label %3938

3938:                                             ; preds = %3937, %2716
  %3939 = load i32, ptr %74, align 4, !tbaa !9
  %3940 = icmp eq i32 %3939, 0
  br i1 %3940, label %3941, label %3951

3941:                                             ; preds = %3938
  %3942 = load ptr, ptr %29, align 8, !tbaa !5
  %3943 = load ptr, ptr %30, align 8, !tbaa !5
  %3944 = load ptr, ptr %53, align 8, !tbaa !5
  %3945 = load i32, ptr %58, align 4, !tbaa !9
  %3946 = sext i32 %3945 to i64
  %3947 = getelementptr inbounds %struct.doublecomplex, ptr %3944, i64 %3946
  %3948 = load ptr, ptr %54, align 8, !tbaa !5
  %3949 = getelementptr inbounds [1 x double], ptr %75, i64 0, i64 0
  %3950 = call double @zlange_(ptr noundef @.str.16, ptr noundef %3942, ptr noundef %3943, ptr noundef %3947, ptr noundef %3948, ptr noundef %3949)
  store double %3950, ptr %83, align 8, !tbaa !18
  br label %4040

3951:                                             ; preds = %3938
  %3952 = load i32, ptr %74, align 4, !tbaa !9
  %3953 = icmp eq i32 %3952, 1
  br i1 %3953, label %3954, label %3963

3954:                                             ; preds = %3951
  %3955 = load ptr, ptr %30, align 8, !tbaa !5
  %3956 = load ptr, ptr %53, align 8, !tbaa !5
  %3957 = load i32, ptr %58, align 4, !tbaa !9
  %3958 = sext i32 %3957 to i64
  %3959 = getelementptr inbounds %struct.doublecomplex, ptr %3956, i64 %3958
  %3960 = load ptr, ptr %54, align 8, !tbaa !5
  %3961 = getelementptr inbounds [1 x double], ptr %75, i64 0, i64 0
  %3962 = call double @zlansy_(ptr noundef @.str.16, ptr noundef @.str, ptr noundef %3955, ptr noundef %3959, ptr noundef %3960, ptr noundef %3961)
  store double %3962, ptr %83, align 8, !tbaa !18
  br label %4039

3963:                                             ; preds = %3951
  %3964 = load i32, ptr %74, align 4, !tbaa !9
  %3965 = icmp eq i32 %3964, 2
  br i1 %3965, label %3966, label %3975

3966:                                             ; preds = %3963
  %3967 = load ptr, ptr %30, align 8, !tbaa !5
  %3968 = load ptr, ptr %53, align 8, !tbaa !5
  %3969 = load i32, ptr %58, align 4, !tbaa !9
  %3970 = sext i32 %3969 to i64
  %3971 = getelementptr inbounds %struct.doublecomplex, ptr %3968, i64 %3970
  %3972 = load ptr, ptr %54, align 8, !tbaa !5
  %3973 = getelementptr inbounds [1 x double], ptr %75, i64 0, i64 0
  %3974 = call double @zlansy_(ptr noundef @.str.16, ptr noundef @.str.8, ptr noundef %3967, ptr noundef %3971, ptr noundef %3972, ptr noundef %3973)
  store double %3974, ptr %83, align 8, !tbaa !18
  br label %4038

3975:                                             ; preds = %3963
  %3976 = load i32, ptr %74, align 4, !tbaa !9
  %3977 = icmp eq i32 %3976, 3
  br i1 %3977, label %3978, label %3986

3978:                                             ; preds = %3975
  %3979 = load ptr, ptr %30, align 8, !tbaa !5
  %3980 = load ptr, ptr %53, align 8, !tbaa !5
  %3981 = load i32, ptr %58, align 4, !tbaa !9
  %3982 = sext i32 %3981 to i64
  %3983 = getelementptr inbounds %struct.doublecomplex, ptr %3980, i64 %3982
  %3984 = getelementptr inbounds [1 x double], ptr %75, i64 0, i64 0
  %3985 = call double @zlansp_(ptr noundef @.str.16, ptr noundef @.str, ptr noundef %3979, ptr noundef %3983, ptr noundef %3984)
  store double %3985, ptr %83, align 8, !tbaa !18
  br label %4037

3986:                                             ; preds = %3975
  %3987 = load i32, ptr %74, align 4, !tbaa !9
  %3988 = icmp eq i32 %3987, 4
  br i1 %3988, label %3989, label %3997

3989:                                             ; preds = %3986
  %3990 = load ptr, ptr %30, align 8, !tbaa !5
  %3991 = load ptr, ptr %53, align 8, !tbaa !5
  %3992 = load i32, ptr %58, align 4, !tbaa !9
  %3993 = sext i32 %3992 to i64
  %3994 = getelementptr inbounds %struct.doublecomplex, ptr %3991, i64 %3993
  %3995 = getelementptr inbounds [1 x double], ptr %75, i64 0, i64 0
  %3996 = call double @zlansp_(ptr noundef @.str.16, ptr noundef @.str.8, ptr noundef %3990, ptr noundef %3994, ptr noundef %3995)
  store double %3996, ptr %83, align 8, !tbaa !18
  br label %4036

3997:                                             ; preds = %3986
  %3998 = load i32, ptr %74, align 4, !tbaa !9
  %3999 = icmp eq i32 %3998, 5
  br i1 %3999, label %4000, label %4009

4000:                                             ; preds = %3997
  %4001 = load ptr, ptr %30, align 8, !tbaa !5
  %4002 = load ptr, ptr %53, align 8, !tbaa !5
  %4003 = load i32, ptr %58, align 4, !tbaa !9
  %4004 = sext i32 %4003 to i64
  %4005 = getelementptr inbounds %struct.doublecomplex, ptr %4002, i64 %4004
  %4006 = load ptr, ptr %54, align 8, !tbaa !5
  %4007 = getelementptr inbounds [1 x double], ptr %75, i64 0, i64 0
  %4008 = call double @zlansb_(ptr noundef @.str.16, ptr noundef @.str.8, ptr noundef %4001, ptr noundef %92, ptr noundef %4005, ptr noundef %4006, ptr noundef %4007)
  store double %4008, ptr %83, align 8, !tbaa !18
  br label %4035

4009:                                             ; preds = %3997
  %4010 = load i32, ptr %74, align 4, !tbaa !9
  %4011 = icmp eq i32 %4010, 6
  br i1 %4011, label %4012, label %4021

4012:                                             ; preds = %4009
  %4013 = load ptr, ptr %30, align 8, !tbaa !5
  %4014 = load ptr, ptr %53, align 8, !tbaa !5
  %4015 = load i32, ptr %58, align 4, !tbaa !9
  %4016 = sext i32 %4015 to i64
  %4017 = getelementptr inbounds %struct.doublecomplex, ptr %4014, i64 %4016
  %4018 = load ptr, ptr %54, align 8, !tbaa !5
  %4019 = getelementptr inbounds [1 x double], ptr %75, i64 0, i64 0
  %4020 = call double @zlansb_(ptr noundef @.str.16, ptr noundef @.str, ptr noundef %4013, ptr noundef %93, ptr noundef %4017, ptr noundef %4018, ptr noundef %4019)
  store double %4020, ptr %83, align 8, !tbaa !18
  br label %4034

4021:                                             ; preds = %4009
  %4022 = load i32, ptr %74, align 4, !tbaa !9
  %4023 = icmp eq i32 %4022, 7
  br i1 %4023, label %4024, label %4033

4024:                                             ; preds = %4021
  %4025 = load ptr, ptr %30, align 8, !tbaa !5
  %4026 = load ptr, ptr %53, align 8, !tbaa !5
  %4027 = load i32, ptr %58, align 4, !tbaa !9
  %4028 = sext i32 %4027 to i64
  %4029 = getelementptr inbounds %struct.doublecomplex, ptr %4026, i64 %4028
  %4030 = load ptr, ptr %54, align 8, !tbaa !5
  %4031 = getelementptr inbounds [1 x double], ptr %75, i64 0, i64 0
  %4032 = call double @zlangb_(ptr noundef @.str.16, ptr noundef %4025, ptr noundef %92, ptr noundef %93, ptr noundef %4029, ptr noundef %4030, ptr noundef %4031)
  store double %4032, ptr %83, align 8, !tbaa !18
  br label %4033

4033:                                             ; preds = %4024, %4021
  br label %4034

4034:                                             ; preds = %4033, %4012
  br label %4035

4035:                                             ; preds = %4034, %4000
  br label %4036

4036:                                             ; preds = %4035, %3989
  br label %4037

4037:                                             ; preds = %4036, %3978
  br label %4038

4038:                                             ; preds = %4037, %3966
  br label %4039

4039:                                             ; preds = %4038, %3954
  br label %4040

4040:                                             ; preds = %4039, %3941
  %4041 = load ptr, ptr %51, align 8, !tbaa !5
  %4042 = load double, ptr %4041, align 8, !tbaa !18
  %4043 = fcmp oge double %4042, 0.000000e+00
  br i1 %4043, label %4044, label %4260

4044:                                             ; preds = %4040
  %4045 = load ptr, ptr %51, align 8, !tbaa !5
  %4046 = load double, ptr %4045, align 8, !tbaa !18
  %4047 = fcmp ogt double %4046, 0.000000e+00
  br i1 %4047, label %4048, label %4053

4048:                                             ; preds = %4044
  %4049 = load double, ptr %83, align 8, !tbaa !18
  %4050 = fcmp oeq double %4049, 0.000000e+00
  br i1 %4050, label %4051, label %4053

4051:                                             ; preds = %4048
  %4052 = load ptr, ptr %56, align 8, !tbaa !5
  store i32 5, ptr %4052, align 4, !tbaa !9
  store i32 1, ptr %94, align 4
  br label %4261

4053:                                             ; preds = %4048, %4044
  %4054 = load ptr, ptr %51, align 8, !tbaa !5
  %4055 = load double, ptr %4054, align 8, !tbaa !18
  %4056 = fcmp ogt double %4055, 1.000000e+00
  br i1 %4056, label %4057, label %4060

4057:                                             ; preds = %4053
  %4058 = load double, ptr %83, align 8, !tbaa !18
  %4059 = fcmp olt double %4058, 1.000000e+00
  br i1 %4059, label %4067, label %4060

4060:                                             ; preds = %4057, %4053
  %4061 = load ptr, ptr %51, align 8, !tbaa !5
  %4062 = load double, ptr %4061, align 8, !tbaa !18
  %4063 = fcmp olt double %4062, 1.000000e+00
  br i1 %4063, label %4064, label %4176

4064:                                             ; preds = %4060
  %4065 = load double, ptr %83, align 8, !tbaa !18
  %4066 = fcmp ogt double %4065, 1.000000e+00
  br i1 %4066, label %4067, label %4176

4067:                                             ; preds = %4064, %4057
  %4068 = load i32, ptr %74, align 4, !tbaa !9
  %4069 = icmp sle i32 %4068, 2
  br i1 %4069, label %4070, label %4101

4070:                                             ; preds = %4067
  %4071 = load ptr, ptr %30, align 8, !tbaa !5
  %4072 = load i32, ptr %4071, align 4, !tbaa !9
  store i32 %4072, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %4073

4073:                                             ; preds = %4097, %4070
  %4074 = load i32, ptr %72, align 4, !tbaa !9
  %4075 = load i32, ptr %59, align 4, !tbaa !9
  %4076 = icmp sle i32 %4074, %4075
  br i1 %4076, label %4077, label %4100

4077:                                             ; preds = %4073
  %4078 = load double, ptr %83, align 8, !tbaa !18
  %4079 = fdiv double 1.000000e+00, %4078
  store double %4079, ptr %63, align 8, !tbaa !18
  %4080 = load ptr, ptr %29, align 8, !tbaa !5
  %4081 = load ptr, ptr %53, align 8, !tbaa !5
  %4082 = load i32, ptr %72, align 4, !tbaa !9
  %4083 = load i32, ptr %57, align 4, !tbaa !9
  %4084 = mul nsw i32 %4082, %4083
  %4085 = add nsw i32 %4084, 1
  %4086 = sext i32 %4085 to i64
  %4087 = getelementptr inbounds %struct.doublecomplex, ptr %4081, i64 %4086
  call void @zdscal_(ptr noundef %4080, ptr noundef %63, ptr noundef %4087, ptr noundef @c__1)
  %4088 = load ptr, ptr %29, align 8, !tbaa !5
  %4089 = load ptr, ptr %51, align 8, !tbaa !5
  %4090 = load ptr, ptr %53, align 8, !tbaa !5
  %4091 = load i32, ptr %72, align 4, !tbaa !9
  %4092 = load i32, ptr %57, align 4, !tbaa !9
  %4093 = mul nsw i32 %4091, %4092
  %4094 = add nsw i32 %4093, 1
  %4095 = sext i32 %4094 to i64
  %4096 = getelementptr inbounds %struct.doublecomplex, ptr %4090, i64 %4095
  call void @zdscal_(ptr noundef %4088, ptr noundef %4089, ptr noundef %4096, ptr noundef @c__1)
  br label %4097

4097:                                             ; preds = %4077
  %4098 = load i32, ptr %72, align 4, !tbaa !9
  %4099 = add nsw i32 %4098, 1
  store i32 %4099, ptr %72, align 4, !tbaa !9
  br label %4073, !llvm.loop !72

4100:                                             ; preds = %4073
  br label %4175

4101:                                             ; preds = %4067
  %4102 = load i32, ptr %74, align 4, !tbaa !9
  %4103 = icmp eq i32 %4102, 3
  br i1 %4103, label %4107, label %4104

4104:                                             ; preds = %4101
  %4105 = load i32, ptr %74, align 4, !tbaa !9
  %4106 = icmp eq i32 %4105, 4
  br i1 %4106, label %4107, label %4133

4107:                                             ; preds = %4104, %4101
  %4108 = load ptr, ptr %30, align 8, !tbaa !5
  %4109 = load i32, ptr %4108, align 4, !tbaa !9
  %4110 = load ptr, ptr %30, align 8, !tbaa !5
  %4111 = load i32, ptr %4110, align 4, !tbaa !9
  %4112 = add nsw i32 %4111, 1
  %4113 = mul nsw i32 %4109, %4112
  %4114 = sdiv i32 %4113, 2
  store i32 %4114, ptr %59, align 4, !tbaa !9
  %4115 = load double, ptr %83, align 8, !tbaa !18
  %4116 = fdiv double 1.000000e+00, %4115
  store double %4116, ptr %63, align 8, !tbaa !18
  %4117 = load ptr, ptr %53, align 8, !tbaa !5
  %4118 = load i32, ptr %58, align 4, !tbaa !9
  %4119 = sext i32 %4118 to i64
  %4120 = getelementptr inbounds %struct.doublecomplex, ptr %4117, i64 %4119
  call void @zdscal_(ptr noundef %59, ptr noundef %63, ptr noundef %4120, ptr noundef @c__1)
  %4121 = load ptr, ptr %30, align 8, !tbaa !5
  %4122 = load i32, ptr %4121, align 4, !tbaa !9
  %4123 = load ptr, ptr %30, align 8, !tbaa !5
  %4124 = load i32, ptr %4123, align 4, !tbaa !9
  %4125 = add nsw i32 %4124, 1
  %4126 = mul nsw i32 %4122, %4125
  %4127 = sdiv i32 %4126, 2
  store i32 %4127, ptr %59, align 4, !tbaa !9
  %4128 = load ptr, ptr %51, align 8, !tbaa !5
  %4129 = load ptr, ptr %53, align 8, !tbaa !5
  %4130 = load i32, ptr %58, align 4, !tbaa !9
  %4131 = sext i32 %4130 to i64
  %4132 = getelementptr inbounds %struct.doublecomplex, ptr %4129, i64 %4131
  call void @zdscal_(ptr noundef %59, ptr noundef %4128, ptr noundef %4132, ptr noundef @c__1)
  br label %4174

4133:                                             ; preds = %4104
  %4134 = load i32, ptr %74, align 4, !tbaa !9
  %4135 = icmp sge i32 %4134, 5
  br i1 %4135, label %4136, label %4173

4136:                                             ; preds = %4133
  %4137 = load ptr, ptr %30, align 8, !tbaa !5
  %4138 = load i32, ptr %4137, align 4, !tbaa !9
  store i32 %4138, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %4139

4139:                                             ; preds = %4169, %4136
  %4140 = load i32, ptr %72, align 4, !tbaa !9
  %4141 = load i32, ptr %59, align 4, !tbaa !9
  %4142 = icmp sle i32 %4140, %4141
  br i1 %4142, label %4143, label %4172

4143:                                             ; preds = %4139
  %4144 = load i32, ptr %92, align 4, !tbaa !9
  %4145 = load i32, ptr %93, align 4, !tbaa !9
  %4146 = add nsw i32 %4144, %4145
  %4147 = add nsw i32 %4146, 1
  store i32 %4147, ptr %60, align 4, !tbaa !9
  %4148 = load double, ptr %83, align 8, !tbaa !18
  %4149 = fdiv double 1.000000e+00, %4148
  store double %4149, ptr %63, align 8, !tbaa !18
  %4150 = load ptr, ptr %53, align 8, !tbaa !5
  %4151 = load i32, ptr %72, align 4, !tbaa !9
  %4152 = load i32, ptr %57, align 4, !tbaa !9
  %4153 = mul nsw i32 %4151, %4152
  %4154 = add nsw i32 %4153, 1
  %4155 = sext i32 %4154 to i64
  %4156 = getelementptr inbounds %struct.doublecomplex, ptr %4150, i64 %4155
  call void @zdscal_(ptr noundef %60, ptr noundef %63, ptr noundef %4156, ptr noundef @c__1)
  %4157 = load i32, ptr %92, align 4, !tbaa !9
  %4158 = load i32, ptr %93, align 4, !tbaa !9
  %4159 = add nsw i32 %4157, %4158
  %4160 = add nsw i32 %4159, 1
  store i32 %4160, ptr %60, align 4, !tbaa !9
  %4161 = load ptr, ptr %51, align 8, !tbaa !5
  %4162 = load ptr, ptr %53, align 8, !tbaa !5
  %4163 = load i32, ptr %72, align 4, !tbaa !9
  %4164 = load i32, ptr %57, align 4, !tbaa !9
  %4165 = mul nsw i32 %4163, %4164
  %4166 = add nsw i32 %4165, 1
  %4167 = sext i32 %4166 to i64
  %4168 = getelementptr inbounds %struct.doublecomplex, ptr %4162, i64 %4167
  call void @zdscal_(ptr noundef %60, ptr noundef %4161, ptr noundef %4168, ptr noundef @c__1)
  br label %4169

4169:                                             ; preds = %4143
  %4170 = load i32, ptr %72, align 4, !tbaa !9
  %4171 = add nsw i32 %4170, 1
  store i32 %4171, ptr %72, align 4, !tbaa !9
  br label %4139, !llvm.loop !73

4172:                                             ; preds = %4139
  br label %4173

4173:                                             ; preds = %4172, %4133
  br label %4174

4174:                                             ; preds = %4173, %4107
  br label %4175

4175:                                             ; preds = %4174, %4100
  br label %4258

4176:                                             ; preds = %4064, %4060
  %4177 = load i32, ptr %74, align 4, !tbaa !9
  %4178 = icmp sle i32 %4177, 2
  br i1 %4178, label %4179, label %4203

4179:                                             ; preds = %4176
  %4180 = load ptr, ptr %30, align 8, !tbaa !5
  %4181 = load i32, ptr %4180, align 4, !tbaa !9
  store i32 %4181, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %4182

4182:                                             ; preds = %4199, %4179
  %4183 = load i32, ptr %72, align 4, !tbaa !9
  %4184 = load i32, ptr %59, align 4, !tbaa !9
  %4185 = icmp sle i32 %4183, %4184
  br i1 %4185, label %4186, label %4202

4186:                                             ; preds = %4182
  %4187 = load ptr, ptr %51, align 8, !tbaa !5
  %4188 = load double, ptr %4187, align 8, !tbaa !18
  %4189 = load double, ptr %83, align 8, !tbaa !18
  %4190 = fdiv double %4188, %4189
  store double %4190, ptr %63, align 8, !tbaa !18
  %4191 = load ptr, ptr %29, align 8, !tbaa !5
  %4192 = load ptr, ptr %53, align 8, !tbaa !5
  %4193 = load i32, ptr %72, align 4, !tbaa !9
  %4194 = load i32, ptr %57, align 4, !tbaa !9
  %4195 = mul nsw i32 %4193, %4194
  %4196 = add nsw i32 %4195, 1
  %4197 = sext i32 %4196 to i64
  %4198 = getelementptr inbounds %struct.doublecomplex, ptr %4192, i64 %4197
  call void @zdscal_(ptr noundef %4191, ptr noundef %63, ptr noundef %4198, ptr noundef @c__1)
  br label %4199

4199:                                             ; preds = %4186
  %4200 = load i32, ptr %72, align 4, !tbaa !9
  %4201 = add nsw i32 %4200, 1
  store i32 %4201, ptr %72, align 4, !tbaa !9
  br label %4182, !llvm.loop !74

4202:                                             ; preds = %4182
  br label %4257

4203:                                             ; preds = %4176
  %4204 = load i32, ptr %74, align 4, !tbaa !9
  %4205 = icmp eq i32 %4204, 3
  br i1 %4205, label %4209, label %4206

4206:                                             ; preds = %4203
  %4207 = load i32, ptr %74, align 4, !tbaa !9
  %4208 = icmp eq i32 %4207, 4
  br i1 %4208, label %4209, label %4225

4209:                                             ; preds = %4206, %4203
  %4210 = load ptr, ptr %30, align 8, !tbaa !5
  %4211 = load i32, ptr %4210, align 4, !tbaa !9
  %4212 = load ptr, ptr %30, align 8, !tbaa !5
  %4213 = load i32, ptr %4212, align 4, !tbaa !9
  %4214 = add nsw i32 %4213, 1
  %4215 = mul nsw i32 %4211, %4214
  %4216 = sdiv i32 %4215, 2
  store i32 %4216, ptr %59, align 4, !tbaa !9
  %4217 = load ptr, ptr %51, align 8, !tbaa !5
  %4218 = load double, ptr %4217, align 8, !tbaa !18
  %4219 = load double, ptr %83, align 8, !tbaa !18
  %4220 = fdiv double %4218, %4219
  store double %4220, ptr %63, align 8, !tbaa !18
  %4221 = load ptr, ptr %53, align 8, !tbaa !5
  %4222 = load i32, ptr %58, align 4, !tbaa !9
  %4223 = sext i32 %4222 to i64
  %4224 = getelementptr inbounds %struct.doublecomplex, ptr %4221, i64 %4223
  call void @zdscal_(ptr noundef %59, ptr noundef %63, ptr noundef %4224, ptr noundef @c__1)
  br label %4256

4225:                                             ; preds = %4206
  %4226 = load i32, ptr %74, align 4, !tbaa !9
  %4227 = icmp sge i32 %4226, 5
  br i1 %4227, label %4228, label %4255

4228:                                             ; preds = %4225
  %4229 = load ptr, ptr %30, align 8, !tbaa !5
  %4230 = load i32, ptr %4229, align 4, !tbaa !9
  store i32 %4230, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %4231

4231:                                             ; preds = %4251, %4228
  %4232 = load i32, ptr %72, align 4, !tbaa !9
  %4233 = load i32, ptr %59, align 4, !tbaa !9
  %4234 = icmp sle i32 %4232, %4233
  br i1 %4234, label %4235, label %4254

4235:                                             ; preds = %4231
  %4236 = load i32, ptr %92, align 4, !tbaa !9
  %4237 = load i32, ptr %93, align 4, !tbaa !9
  %4238 = add nsw i32 %4236, %4237
  %4239 = add nsw i32 %4238, 1
  store i32 %4239, ptr %60, align 4, !tbaa !9
  %4240 = load ptr, ptr %51, align 8, !tbaa !5
  %4241 = load double, ptr %4240, align 8, !tbaa !18
  %4242 = load double, ptr %83, align 8, !tbaa !18
  %4243 = fdiv double %4241, %4242
  store double %4243, ptr %63, align 8, !tbaa !18
  %4244 = load ptr, ptr %53, align 8, !tbaa !5
  %4245 = load i32, ptr %72, align 4, !tbaa !9
  %4246 = load i32, ptr %57, align 4, !tbaa !9
  %4247 = mul nsw i32 %4245, %4246
  %4248 = add nsw i32 %4247, 1
  %4249 = sext i32 %4248 to i64
  %4250 = getelementptr inbounds %struct.doublecomplex, ptr %4244, i64 %4249
  call void @zdscal_(ptr noundef %60, ptr noundef %63, ptr noundef %4250, ptr noundef @c__1)
  br label %4251

4251:                                             ; preds = %4235
  %4252 = load i32, ptr %72, align 4, !tbaa !9
  %4253 = add nsw i32 %4252, 1
  store i32 %4253, ptr %72, align 4, !tbaa !9
  br label %4231, !llvm.loop !75

4254:                                             ; preds = %4231
  br label %4255

4255:                                             ; preds = %4254, %4225
  br label %4256

4256:                                             ; preds = %4255, %4209
  br label %4257

4257:                                             ; preds = %4256, %4202
  br label %4258

4258:                                             ; preds = %4257, %4175
  br label %4259

4259:                                             ; preds = %4258
  br label %4260

4260:                                             ; preds = %4259, %4040
  store i32 1, ptr %94, align 4
  br label %4261

4261:                                             ; preds = %4260, %4051, %1195, %1174, %1021, %948, %884, %127
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %86) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %65) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #6
  ret void
}

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

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

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

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

; Function Attrs: nounwind
declare double @cabs(double noundef, double noundef) #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden { double, double } @Cd(ptr noundef) #4

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @_pCd(ptr noundef) #4

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

declare double @zlange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare double @zlansy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare double @zlansp_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare double @zlansb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare double @zlangb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !13, i64 0}
!12 = !{!"", !13, i64 0, !13, i64 8}
!13 = !{!"double", !7, i64 0}
!14 = !{!12, !13, i64 8}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = !{!13, !13, i64 0}
!19 = distinct !{!19, !16}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}
!22 = distinct !{!22, !16}
!23 = distinct !{!23, !16}
!24 = distinct !{!24, !16}
!25 = distinct !{!25, !16}
!26 = distinct !{!26, !16}
!27 = distinct !{!27, !16}
!28 = distinct !{!28, !16}
!29 = distinct !{!29, !16}
!30 = distinct !{!30, !16}
!31 = distinct !{!31, !16}
!32 = distinct !{!32, !16}
!33 = distinct !{!33, !16}
!34 = distinct !{!34, !16}
!35 = distinct !{!35, !16}
!36 = distinct !{!36, !16}
!37 = distinct !{!37, !16}
!38 = distinct !{!38, !16}
!39 = distinct !{!39, !16}
!40 = distinct !{!40, !16}
!41 = distinct !{!41, !16}
!42 = distinct !{!42, !16}
!43 = distinct !{!43, !16}
!44 = distinct !{!44, !16}
!45 = distinct !{!45, !16}
!46 = distinct !{!46, !16}
!47 = distinct !{!47, !16}
!48 = distinct !{!48, !16}
!49 = distinct !{!49, !16}
!50 = distinct !{!50, !16}
!51 = distinct !{!51, !16}
!52 = distinct !{!52, !16}
!53 = distinct !{!53, !16}
!54 = distinct !{!54, !16}
!55 = distinct !{!55, !16}
!56 = distinct !{!56, !16}
!57 = distinct !{!57, !16}
!58 = distinct !{!58, !16}
!59 = distinct !{!59, !16}
!60 = distinct !{!60, !16}
!61 = distinct !{!61, !16}
!62 = distinct !{!62, !16}
!63 = distinct !{!63, !16}
!64 = distinct !{!64, !16}
!65 = distinct !{!65, !16}
!66 = distinct !{!66, !16}
!67 = distinct !{!67, !16}
!68 = distinct !{!68, !16}
!69 = distinct !{!69, !16}
!70 = distinct !{!70, !16}
!71 = distinct !{!71, !16}
!72 = distinct !{!72, !16}
!73 = distinct !{!73, !16}
!74 = distinct !{!74, !16}
!75 = distinct !{!75, !16}


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

%struct.doublecomplex = type { double, double }

@.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 [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [7 x i8], align 1
@c__0 = external hidden global i32, align 4
@.str.16 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @zlatmr_(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 nocapture noundef readonly %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr nocapture noundef readonly %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27) local_unnamed_addr #0 {
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca double, align 8
  %32 = alloca %struct.doublecomplex, align 16
  %33 = alloca %struct.doublecomplex, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca [1 x double], align 8
  %39 = alloca %struct.doublecomplex, align 16
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #7
  %47 = getelementptr inbounds i8, ptr %5, i64 -16
  %48 = getelementptr inbounds i8, ptr %11, i64 -16
  %49 = getelementptr inbounds i8, ptr %18, i64 -4
  %50 = load i32, ptr %25, align 4, !tbaa !5
  %narrow = xor i32 %50, -1
  %51 = sext i32 %narrow to i64
  %52 = getelementptr inbounds %struct.doublecomplex, ptr %24, i64 %51
  %53 = getelementptr inbounds i8, ptr %26, i64 -4
  store i32 0, ptr %27, align 4, !tbaa !5
  %54 = load i32, ptr %0, align 4, !tbaa !5
  %55 = icmp eq i32 %54, 0
  br i1 %55, label %.loopexit, label %56

56:                                               ; preds = %28
  %57 = load i32, ptr %1, align 4, !tbaa !5
  %58 = icmp eq i32 %57, 0
  br i1 %58, label %.loopexit, label %59

59:                                               ; preds = %56
  %60 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #7
  %.not = icmp eq i32 %60, 0
  br i1 %.not, label %62, label %61

61:                                               ; preds = %59
  store i32 1, ptr %40, align 4, !tbaa !5
  br label %72

62:                                               ; preds = %59
  %63 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #7
  %.not1225 = icmp eq i32 %63, 0
  br i1 %.not1225, label %65, label %64

64:                                               ; preds = %62
  store i32 2, ptr %40, align 4, !tbaa !5
  br label %72

65:                                               ; preds = %62
  %66 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.2) #7
  %.not1226 = icmp eq i32 %66, 0
  br i1 %.not1226, label %68, label %67

67:                                               ; preds = %65
  store i32 3, ptr %40, align 4, !tbaa !5
  br label %72

68:                                               ; preds = %65
  %69 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.3) #7
  %.not1227 = icmp eq i32 %69, 0
  br i1 %.not1227, label %71, label %70

70:                                               ; preds = %68
  store i32 4, ptr %40, align 4, !tbaa !5
  br label %72

71:                                               ; preds = %68
  store i32 -1, ptr %40, align 4, !tbaa !5
  br label %72

72:                                               ; preds = %64, %70, %71, %67, %61
  %73 = phi i1 [ false, %64 ], [ false, %70 ], [ true, %71 ], [ false, %67 ], [ false, %61 ]
  %74 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.4) #7
  %.not1228 = icmp ne i32 %74, 0
  br i1 %.not1228, label %79, label %75

75:                                               ; preds = %72
  %76 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.2) #7
  %.not1229 = icmp eq i32 %76, 0
  br i1 %.not1229, label %77, label %79

77:                                               ; preds = %75
  %78 = tail call i32 @lsame_(ptr noundef %4, ptr noundef nonnull @.str.1) #7
  %.not1230 = icmp eq i32 %78, 0
  %not..not1230 = xor i1 %.not1230, true
  br label %79

79:                                               ; preds = %77, %75, %72
  %80 = phi i1 [ false, %72 ], [ false, %75 ], [ %not..not1230, %77 ]
  %81 = phi i1 [ false, %72 ], [ false, %75 ], [ %.not1230, %77 ]
  %82 = phi i1 [ false, %72 ], [ true, %75 ], [ false, %77 ]
  %83 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.5) #7
  %.not1231 = icmp eq i32 %83, 0
  br i1 %.not1231, label %85, label %84

84:                                               ; preds = %79
  store i32 0, ptr %43, align 4, !tbaa !5
  br label %89

85:                                               ; preds = %79
  %86 = tail call i32 @lsame_(ptr noundef %9, ptr noundef nonnull @.str.6) #7
  %.not1232 = icmp eq i32 %86, 0
  br i1 %.not1232, label %88, label %87

87:                                               ; preds = %85
  store i32 1, ptr %43, align 4, !tbaa !5
  br label %89

88:                                               ; preds = %85
  store i32 -1, ptr %43, align 4, !tbaa !5
  br label %89

89:                                               ; preds = %87, %88, %84
  %90 = phi i1 [ false, %87 ], [ true, %88 ], [ false, %84 ]
  %91 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.2) #7
  %.not1233 = icmp eq i32 %91, 0
  br i1 %.not1233, label %93, label %92

92:                                               ; preds = %89
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %115

93:                                               ; preds = %89
  %94 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.7) #7
  %.not1234 = icmp eq i32 %94, 0
  br i1 %.not1234, label %96, label %95

95:                                               ; preds = %93
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %115

96:                                               ; preds = %93
  %97 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.8) #7
  %.not1235 = icmp eq i32 %97, 0
  br i1 %.not1235, label %100, label %98

98:                                               ; preds = %96
  store i32 1, ptr %44, align 4, !tbaa !5
  %99 = load i32, ptr %0, align 4, !tbaa !5
  br label %115

100:                                              ; preds = %96
  %101 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.9) #7
  %.not1236 = icmp eq i32 %101, 0
  br i1 %.not1236, label %104, label %102

102:                                              ; preds = %100
  store i32 2, ptr %44, align 4, !tbaa !5
  %103 = load i32, ptr %1, align 4, !tbaa !5
  br label %115

104:                                              ; preds = %100
  %105 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.10) #7
  %.not1237 = icmp eq i32 %105, 0
  br i1 %.not1237, label %109, label %106

106:                                              ; preds = %104
  store i32 3, ptr %44, align 4, !tbaa !5
  %107 = load i32, ptr %1, align 4, !tbaa !5
  %108 = load i32, ptr %0, align 4, !tbaa !5
  %.1427 = tail call i32 @llvm.smin.i32(i32 %107, i32 %108)
  br label %115

109:                                              ; preds = %104
  %110 = tail call i32 @lsame_(ptr noundef %17, ptr noundef nonnull @.str.5) #7
  %.not1238 = icmp eq i32 %110, 0
  br i1 %.not1238, label %114, label %111

111:                                              ; preds = %109
  store i32 3, ptr %44, align 4, !tbaa !5
  %112 = load i32, ptr %1, align 4, !tbaa !5
  %113 = load i32, ptr %0, align 4, !tbaa !5
  %.1428 = tail call i32 @llvm.smin.i32(i32 %112, i32 %113)
  br label %115

114:                                              ; preds = %109
  store i32 -1, ptr %44, align 4, !tbaa !5
  br label %115

115:                                              ; preds = %95, %102, %111, %114, %106, %98, %92
  %116 = phi i1 [ false, %92 ], [ false, %95 ], [ true, %98 ], [ true, %102 ], [ true, %106 ], [ true, %111 ], [ false, %114 ]
  %117 = phi i1 [ false, %92 ], [ false, %95 ], [ true, %98 ], [ true, %102 ], [ true, %106 ], [ true, %111 ], [ true, %114 ]
  %118 = phi i32 [ 0, %92 ], [ 0, %95 ], [ 1, %98 ], [ 2, %102 ], [ 3, %106 ], [ 3, %111 ], [ -1, %114 ]
  %.01135 = phi i32 [ undef, %92 ], [ undef, %95 ], [ %99, %98 ], [ %103, %102 ], [ %.1427, %106 ], [ %.1428, %111 ], [ undef, %114 ]
  %119 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.2) #7
  %.not1241 = icmp eq i32 %119, 0
  br i1 %.not1241, label %121, label %120

120:                                              ; preds = %115
  store i32 0, ptr %42, align 4, !tbaa !5
  br label %140

121:                                              ; preds = %115
  %122 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.8) #7
  %.not1242 = icmp eq i32 %122, 0
  br i1 %.not1242, label %124, label %123

123:                                              ; preds = %121
  store i32 1, ptr %42, align 4, !tbaa !5
  br label %140

124:                                              ; preds = %121
  %125 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.9) #7
  %.not1243 = icmp eq i32 %125, 0
  br i1 %.not1243, label %127, label %126

126:                                              ; preds = %124
  store i32 2, ptr %42, align 4, !tbaa !5
  br label %140

127:                                              ; preds = %124
  %128 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.10) #7
  %.not1244 = icmp eq i32 %128, 0
  br i1 %.not1244, label %130, label %129

129:                                              ; preds = %127
  store i32 3, ptr %42, align 4, !tbaa !5
  br label %140

130:                                              ; preds = %127
  %131 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.11) #7
  %.not1245 = icmp eq i32 %131, 0
  br i1 %.not1245, label %133, label %132

132:                                              ; preds = %130
  store i32 4, ptr %42, align 4, !tbaa !5
  br label %140

133:                                              ; preds = %130
  %134 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.4) #7
  %.not1246 = icmp eq i32 %134, 0
  br i1 %.not1246, label %136, label %135

135:                                              ; preds = %133
  store i32 5, ptr %42, align 4, !tbaa !5
  br label %140

136:                                              ; preds = %133
  %137 = tail call i32 @lsame_(ptr noundef %10, ptr noundef nonnull @.str.1) #7
  %.not1247 = icmp eq i32 %137, 0
  br i1 %.not1247, label %139, label %138

138:                                              ; preds = %136
  store i32 6, ptr %42, align 4, !tbaa !5
  br label %140

139:                                              ; preds = %136
  store i32 -1, ptr %42, align 4, !tbaa !5
  br label %140

140:                                              ; preds = %123, %129, %135, %139, %138, %132, %126, %120
  %141 = phi i1 [ false, %123 ], [ false, %129 ], [ false, %135 ], [ false, %139 ], [ false, %138 ], [ true, %132 ], [ false, %126 ], [ false, %120 ]
  %142 = phi i1 [ false, %123 ], [ false, %129 ], [ false, %135 ], [ false, %139 ], [ true, %138 ], [ false, %132 ], [ false, %126 ], [ false, %120 ]
  %143 = phi i32 [ 1, %123 ], [ 3, %129 ], [ 5, %135 ], [ -1, %139 ], [ 6, %138 ], [ 4, %132 ], [ 2, %126 ], [ 0, %120 ]
  %144 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.2) #7
  %.not1248 = icmp ne i32 %144, 0
  br i1 %.not1248, label %159, label %145

145:                                              ; preds = %140
  %146 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str) #7
  %.not1249 = icmp eq i32 %146, 0
  br i1 %.not1249, label %147, label %159

147:                                              ; preds = %145
  %148 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.8) #7
  %.not1250 = icmp eq i32 %148, 0
  br i1 %.not1250, label %149, label %159

149:                                              ; preds = %147
  %150 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.12) #7
  %.not1251 = icmp eq i32 %150, 0
  br i1 %.not1251, label %151, label %159

151:                                              ; preds = %149
  %152 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.9) #7
  %.not1252 = icmp eq i32 %152, 0
  br i1 %.not1252, label %153, label %159

153:                                              ; preds = %151
  %154 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.10) #7
  %.not1253 = icmp eq i32 %154, 0
  br i1 %.not1253, label %155, label %159

155:                                              ; preds = %153
  %156 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.13) #7
  %.not1254 = icmp eq i32 %156, 0
  br i1 %.not1254, label %157, label %159

157:                                              ; preds = %155
  %158 = tail call i32 @lsame_(ptr noundef %23, ptr noundef nonnull @.str.14) #7
  %.not1255 = icmp eq i32 %158, 0
  %not..not1255 = xor i1 %.not1255, true
  br label %159

159:                                              ; preds = %157, %155, %153, %151, %149, %147, %145, %140
  %160 = phi i1 [ false, %140 ], [ false, %145 ], [ false, %147 ], [ false, %149 ], [ false, %151 ], [ false, %153 ], [ false, %155 ], [ %.not1255, %157 ]
  %161 = phi i1 [ false, %140 ], [ true, %145 ], [ false, %147 ], [ false, %149 ], [ false, %151 ], [ false, %153 ], [ false, %155 ], [ false, %157 ]
  %162 = phi i1 [ false, %140 ], [ false, %145 ], [ true, %147 ], [ false, %149 ], [ false, %151 ], [ false, %153 ], [ false, %155 ], [ false, %157 ]
  %163 = phi i1 [ false, %140 ], [ false, %145 ], [ false, %147 ], [ false, %149 ], [ false, %151 ], [ true, %153 ], [ false, %155 ], [ false, %157 ]
  %164 = phi i1 [ false, %140 ], [ false, %145 ], [ false, %147 ], [ false, %149 ], [ false, %151 ], [ false, %153 ], [ true, %155 ], [ false, %157 ]
  %165 = phi i1 [ false, %140 ], [ false, %145 ], [ false, %147 ], [ true, %149 ], [ false, %151 ], [ false, %153 ], [ false, %155 ], [ false, %157 ]
  %166 = phi i1 [ false, %140 ], [ false, %145 ], [ false, %147 ], [ false, %149 ], [ true, %151 ], [ false, %153 ], [ false, %155 ], [ false, %157 ]
  %167 = phi i1 [ false, %140 ], [ false, %145 ], [ false, %147 ], [ false, %149 ], [ false, %151 ], [ false, %153 ], [ false, %155 ], [ %not..not1255, %157 ]
  %168 = phi i1 [ true, %140 ], [ true, %145 ], [ true, %147 ], [ false, %149 ], [ false, %151 ], [ false, %153 ], [ false, %155 ], [ %.not1255, %157 ]
  %169 = load i32, ptr %0, align 4, !tbaa !5
  %170 = load i32, ptr %1, align 4, !tbaa !5
  %.1431 = tail call i32 @llvm.smin.i32(i32 %169, i32 %170)
  store i32 %.1431, ptr %41, align 4, !tbaa !5
  %171 = load i32, ptr %19, align 4, !tbaa !5
  store i32 %171, ptr %29, align 4, !tbaa !5
  %172 = add i32 %169, -1
  %173 = tail call i32 @llvm.smin.i32(i32 %171, i32 %172)
  store i32 %173, ptr %45, align 4, !tbaa !5
  %174 = load i32, ptr %20, align 4, !tbaa !5
  %175 = add nsw i32 %170, -1
  store i32 %175, ptr %30, align 4, !tbaa !5
  %176 = tail call i32 @llvm.smin.i32(i32 %174, i32 %175)
  store i32 %176, ptr %46, align 4, !tbaa !5
  br i1 %141, label %177, label %209

177:                                              ; preds = %159
  %178 = load i32, ptr %12, align 4, !tbaa !5
  %179 = icmp eq i32 %178, 0
  br i1 %179, label %180, label %209

180:                                              ; preds = %177
  store i32 %169, ptr %29, align 4, !tbaa !5
  %.not12591508 = icmp slt i32 %169, 1
  br i1 %.not12591508, label %.loopexit1506, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %180
  %181 = add nuw i32 %169, 1
  %182 = zext nneg i32 %169 to i64
  %xtraiter = and i64 %182, 1
  %183 = icmp eq i32 %169, 1
  br i1 %183, label %.loopexit1506.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %182, 2147483646
  br label %.lr.ph

.lr.ph:                                           ; preds = %200, %.lr.ph.preheader.new
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader.new ], [ %indvars.iv.next.1, %200 ]
  %.011371510 = phi i32 [ 0, %.lr.ph.preheader.new ], [ %.11138.1, %200 ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %200 ]
  %184 = getelementptr inbounds %struct.doublecomplex, ptr %48, i64 %indvars.iv
  %185 = load double, ptr %184, align 8, !tbaa !9
  %186 = fcmp oeq double %185, 0.000000e+00
  br i1 %186, label %187, label %.lr.ph.1

187:                                              ; preds = %.lr.ph
  %188 = getelementptr inbounds i8, ptr %184, i64 8
  %189 = load double, ptr %188, align 8, !tbaa !12
  %190 = fcmp oeq double %189, 0.000000e+00
  br i1 %190, label %191, label %.lr.ph.1

191:                                              ; preds = %187
  br label %.lr.ph.1

.lr.ph.1:                                         ; preds = %.lr.ph, %187, %191
  %.11138 = phi i32 [ 1, %191 ], [ %.011371510, %187 ], [ %.011371510, %.lr.ph ]
  %192 = getelementptr %struct.doublecomplex, ptr %11, i64 %indvars.iv
  %193 = load double, ptr %192, align 8, !tbaa !9
  %194 = fcmp oeq double %193, 0.000000e+00
  br i1 %194, label %195, label %200

195:                                              ; preds = %.lr.ph.1
  %196 = getelementptr inbounds i8, ptr %192, i64 8
  %197 = load double, ptr %196, align 8, !tbaa !12
  %198 = fcmp oeq double %197, 0.000000e+00
  br i1 %198, label %199, label %200

199:                                              ; preds = %195
  br label %200

200:                                              ; preds = %199, %195, %.lr.ph.1
  %.11138.1 = phi i32 [ 1, %199 ], [ %.11138, %195 ], [ %.11138, %.lr.ph.1 ]
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.loopexit1506.loopexit.unr-lcssa, label %.lr.ph, !llvm.loop !13

.loopexit1506.loopexit.unr-lcssa:                 ; preds = %200, %.lr.ph.preheader
  %.11138.lcssa.ph = phi i32 [ poison, %.lr.ph.preheader ], [ %.11138.1, %200 ]
  %indvars.iv.unr = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next.1, %200 ]
  %.011371510.unr = phi i32 [ 0, %.lr.ph.preheader ], [ %.11138.1, %200 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.loopexit1506, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %.loopexit1506.loopexit.unr-lcssa
  %201 = getelementptr inbounds %struct.doublecomplex, ptr %48, i64 %indvars.iv.unr
  %202 = load double, ptr %201, align 8, !tbaa !9
  %203 = fcmp oeq double %202, 0.000000e+00
  br i1 %203, label %204, label %.loopexit1506

204:                                              ; preds = %.lr.ph.epil
  %205 = getelementptr inbounds i8, ptr %201, i64 8
  %206 = load double, ptr %205, align 8, !tbaa !12
  %207 = fcmp oeq double %206, 0.000000e+00
  br i1 %207, label %208, label %.loopexit1506

208:                                              ; preds = %204
  br label %.loopexit1506

.loopexit1506:                                    ; preds = %.loopexit1506.loopexit.unr-lcssa, %208, %204, %.lr.ph.epil, %180
  %storemerge1507.lcssa = phi i32 [ %175, %180 ], [ %169, %.lr.ph.epil ], [ %169, %204 ], [ %169, %208 ], [ %169, %.loopexit1506.loopexit.unr-lcssa ]
  %storemerge.lcssa = phi i32 [ 1, %180 ], [ %181, %.lr.ph.epil ], [ %181, %204 ], [ %181, %208 ], [ %181, %.loopexit1506.loopexit.unr-lcssa ]
  %.01137.lcssa = phi i32 [ 0, %180 ], [ %.11138.lcssa.ph, %.loopexit1506.loopexit.unr-lcssa ], [ 1, %208 ], [ %.011371510.unr, %204 ], [ %.011371510.unr, %.lr.ph.epil ]
  store i32 %storemerge.lcssa, ptr %36, align 4, !tbaa !5
  store i32 %storemerge1507.lcssa, ptr %30, align 4, !tbaa !5
  br label %209

209:                                              ; preds = %.loopexit1506, %177, %159
  %.promoted1525 = phi i32 [ %175, %177 ], [ %175, %159 ], [ %storemerge1507.lcssa, %.loopexit1506 ]
  %.21139 = phi i32 [ 0, %177 ], [ 0, %159 ], [ %.01137.lcssa, %.loopexit1506 ]
  br i1 %116, label %210, label %238

210:                                              ; preds = %209
  %.not12611513 = icmp slt i32 %.01135, 1
  br i1 %.not12611513, label %.loopexit1505, label %.lr.ph1516.preheader

.lr.ph1516.preheader:                             ; preds = %210
  %211 = zext nneg i32 %.01135 to i64
  %xtraiter2095 = and i64 %211, 3
  %212 = icmp ult i32 %.01135, 4
  br i1 %212, label %.loopexit1505.loopexit.unr-lcssa, label %.lr.ph1516.preheader.new

.lr.ph1516.preheader.new:                         ; preds = %.lr.ph1516.preheader
  %unroll_iter2098 = and i64 %211, 2147483644
  %invariant.gep2126 = getelementptr inbounds i8, ptr %49, i64 8
  %invariant.gep2128 = getelementptr inbounds i8, ptr %49, i64 12
  br label %.lr.ph1516

.lr.ph1516:                                       ; preds = %.lr.ph1516, %.lr.ph1516.preheader.new
  %indvars.iv1838 = phi i64 [ 1, %.lr.ph1516.preheader.new ], [ %indvars.iv.next1839.3, %.lr.ph1516 ]
  %.01515 = phi i32 [ 0, %.lr.ph1516.preheader.new ], [ %.1.3, %.lr.ph1516 ]
  %niter2099 = phi i64 [ 0, %.lr.ph1516.preheader.new ], [ %niter2099.next.3, %.lr.ph1516 ]
  %213 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv1838
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = icmp slt i32 %214, 1
  %216 = icmp sgt i32 %214, %.01135
  %217 = getelementptr i32, ptr %18, i64 %indvars.iv1838
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = icmp slt i32 %218, 1
  %220 = icmp sgt i32 %218, %.01135
  %gep2127 = getelementptr inbounds i32, ptr %invariant.gep2126, i64 %indvars.iv1838
  %221 = load i32, ptr %gep2127, align 4, !tbaa !5
  %222 = icmp slt i32 %221, 1
  %223 = icmp sgt i32 %221, %.01135
  %gep2129 = getelementptr inbounds i32, ptr %invariant.gep2128, i64 %indvars.iv1838
  %224 = load i32, ptr %gep2129, align 4, !tbaa !5
  %225 = icmp slt i32 %224, 1
  %226 = icmp sgt i32 %224, %.01135
  %or.cond1432.3 = select i1 %225, i1 true, i1 %226
  %227 = select i1 %or.cond1432.3, i1 true, i1 %222
  %228 = select i1 %227, i1 true, i1 %223
  %229 = select i1 %228, i1 true, i1 %219
  %230 = select i1 %229, i1 true, i1 %220
  %231 = select i1 %230, i1 true, i1 %215
  %232 = select i1 %231, i1 true, i1 %216
  %.1.3 = select i1 %232, i32 1, i32 %.01515
  %indvars.iv.next1839.3 = add nuw nsw i64 %indvars.iv1838, 4
  %niter2099.next.3 = add i64 %niter2099, 4
  %niter2099.ncmp.3 = icmp eq i64 %niter2099.next.3, %unroll_iter2098
  br i1 %niter2099.ncmp.3, label %.loopexit1505.loopexit.unr-lcssa, label %.lr.ph1516, !llvm.loop !15

.loopexit1505.loopexit.unr-lcssa:                 ; preds = %.lr.ph1516, %.lr.ph1516.preheader
  %.1.lcssa.ph = phi i32 [ poison, %.lr.ph1516.preheader ], [ %.1.3, %.lr.ph1516 ]
  %indvars.iv1838.unr = phi i64 [ 1, %.lr.ph1516.preheader ], [ %indvars.iv.next1839.3, %.lr.ph1516 ]
  %.01515.unr = phi i32 [ 0, %.lr.ph1516.preheader ], [ %.1.3, %.lr.ph1516 ]
  %lcmp.mod2096.not = icmp eq i64 %xtraiter2095, 0
  br i1 %lcmp.mod2096.not, label %.loopexit1505.loopexit, label %.lr.ph1516.epil

.lr.ph1516.epil:                                  ; preds = %.loopexit1505.loopexit.unr-lcssa, %.lr.ph1516.epil
  %indvars.iv1838.epil = phi i64 [ %indvars.iv.next1839.epil, %.lr.ph1516.epil ], [ %indvars.iv1838.unr, %.loopexit1505.loopexit.unr-lcssa ]
  %.01515.epil = phi i32 [ %.1.epil, %.lr.ph1516.epil ], [ %.01515.unr, %.loopexit1505.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1516.epil ], [ 0, %.loopexit1505.loopexit.unr-lcssa ]
  %233 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv1838.epil
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = icmp slt i32 %234, 1
  %236 = icmp sgt i32 %234, %.01135
  %or.cond1432.epil = select i1 %235, i1 true, i1 %236
  %.1.epil = select i1 %or.cond1432.epil, i32 1, i32 %.01515.epil
  %indvars.iv.next1839.epil = add nuw nsw i64 %indvars.iv1838.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter2095
  br i1 %epil.iter.cmp.not, label %.loopexit1505.loopexit, label %.lr.ph1516.epil, !llvm.loop !16

.loopexit1505.loopexit:                           ; preds = %.lr.ph1516.epil, %.loopexit1505.loopexit.unr-lcssa
  %.1.lcssa = phi i32 [ %.1.lcssa.ph, %.loopexit1505.loopexit.unr-lcssa ], [ %.1.epil, %.lr.ph1516.epil ]
  %237 = add nuw i32 %.01135, 1
  br label %.loopexit1505

.loopexit1505:                                    ; preds = %.loopexit1505.loopexit, %210
  %storemerge1260.lcssa = phi i32 [ 1, %210 ], [ %237, %.loopexit1505.loopexit ]
  %.0.lcssa = phi i32 [ 0, %210 ], [ %.1.lcssa, %.loopexit1505.loopexit ]
  store i32 %storemerge1260.lcssa, ptr %37, align 4, !tbaa !5
  br label %238

238:                                              ; preds = %.loopexit1505, %209
  %.2 = phi i32 [ 0, %209 ], [ %.0.lcssa, %.loopexit1505 ]
  %239 = icmp slt i32 %169, 0
  br i1 %239, label %.thread1445.sink.split, label %240

240:                                              ; preds = %238
  %.not1262 = icmp ne i32 %169, %170
  %or.cond = or i1 %.not1228, %80
  %or.cond1433 = select i1 %.not1262, i1 %or.cond, i1 false
  br i1 %or.cond1433, label %.thread1445.sink.split, label %241

241:                                              ; preds = %240
  %242 = icmp slt i32 %170, 0
  %brmerge = or i1 %242, %73
  %brmerge1995 = select i1 %brmerge, i1 true, i1 %81
  %.mux = select i1 %73, i32 -3, i32 -5
  %.mux.mux = select i1 %242, i32 -2, i32 %.mux
  br i1 %brmerge1995, label %.thread1445.sink.split, label %243

243:                                              ; preds = %241
  %244 = load i32, ptr %6, align 4, !tbaa !5
  %245 = add i32 %244, -7
  %or.cond1434 = icmp ult i32 %245, -13
  br i1 %or.cond1434, label %.thread1445.sink.split, label %246

246:                                              ; preds = %243
  switch i32 %244, label %247 [
    i32 -6, label %.thread
    i32 0, label %.thread
    i32 6, label %.thread
  ]

247:                                              ; preds = %246
  %248 = load double, ptr %7, align 8, !tbaa !18
  %249 = fcmp olt double %248, 1.000000e+00
  br i1 %249, label %.thread1445.sink.split, label %250

250:                                              ; preds = %247
  switch i32 %244, label %251 [
    i32 -6, label %.thread
    i32 0, label %.thread
  ]

251:                                              ; preds = %250
  br i1 %90, label %.thread1445.sink.split, label %.thread

.thread:                                          ; preds = %246, %246, %246, %250, %250, %251
  switch i32 %143, label %253 [
    i32 -1, label %.thread1445.sink.split
    i32 4, label %252
  ]

252:                                              ; preds = %.thread
  %.not1268 = icmp eq i32 %169, %170
  br i1 %.not1268, label %253, label %.thread1445.sink.split

253:                                              ; preds = %.thread, %252
  %254 = add nsw i32 %143, -1
  %or.cond9 = icmp ult i32 %254, 4
  %or.cond11 = or i1 %142, %or.cond9
  %or.cond13 = and i1 %.not1228, %or.cond11
  %or.cond21 = icmp ult i32 %254, 5
  %or.cond23 = and i1 %80, %or.cond21
  %or.cond1459 = select i1 %or.cond13, i1 true, i1 %or.cond23
  br i1 %or.cond1459, label %.thread1445.sink.split, label %255

255:                                              ; preds = %253
  %256 = icmp ne i32 %.21139, 0
  %or.cond25 = select i1 %141, i1 %256, i1 false
  br i1 %or.cond25, label %.thread1445.sink.split, label %257

257:                                              ; preds = %255
  switch i32 %143, label %266 [
    i32 6, label %258
    i32 5, label %258
    i32 4, label %258
    i32 3, label %258
    i32 1, label %258
  ]

258:                                              ; preds = %257, %257, %257, %257, %257
  %259 = load i32, ptr %12, align 4, !tbaa !5
  %260 = add i32 %259, -7
  %or.cond1435 = icmp ult i32 %260, -13
  br i1 %or.cond1435, label %.thread1445.sink.split, label %261

261:                                              ; preds = %258
  switch i32 %143, label %266 [
    i32 6, label %262
    i32 5, label %262
    i32 4, label %262
    i32 3, label %262
    i32 1, label %262
  ]

262:                                              ; preds = %261, %261, %261, %261, %261
  switch i32 %259, label %263 [
    i32 -6, label %266
    i32 0, label %266
    i32 6, label %266
  ]

263:                                              ; preds = %262
  %264 = load double, ptr %13, align 8, !tbaa !18
  %265 = fcmp olt double %264, 1.000000e+00
  br i1 %265, label %.thread1445.sink.split, label %266

266:                                              ; preds = %257, %262, %262, %262, %261, %263
  %267 = and i32 %143, -2
  %or.cond43 = icmp eq i32 %267, 2
  br i1 %or.cond43, label %268, label %275

268:                                              ; preds = %266
  %269 = load i32, ptr %15, align 4, !tbaa !5
  %270 = add i32 %269, -7
  %or.cond1436 = icmp ult i32 %270, -13
  br i1 %or.cond1436, label %.thread1445.sink.split, label %271

271:                                              ; preds = %268
  switch i32 %269, label %272 [
    i32 -6, label %275
    i32 0, label %275
    i32 6, label %275
  ]

272:                                              ; preds = %271
  %273 = load double, ptr %16, align 8, !tbaa !18
  %274 = fcmp olt double %273, 1.000000e+00
  br i1 %274, label %.thread1445.sink.split, label %275

275:                                              ; preds = %266, %271, %271, %271, %272
  switch i32 %118, label %277 [
    i32 -1, label %.thread1445.sink.split
    i32 3, label %276
  ]

276:                                              ; preds = %275
  %.not1275 = icmp eq i32 %169, %170
  br i1 %.not1275, label %.thread1442, label %.thread1445.sink.split

277:                                              ; preds = %275
  %278 = add nsw i32 %118, -1
  %or.cond47 = icmp ult i32 %278, 2
  %or.cond1437 = select i1 %or.cond47, i1 %or.cond, i1 false
  br i1 %or.cond1437, label %.thread1445.sink.split, label %.thread1442

.thread1442:                                      ; preds = %276, %277
  %279 = icmp ne i32 %.2, 0
  %or.cond51 = select i1 %117, i1 %279, i1 false
  br i1 %or.cond51, label %.thread1445.sink.split, label %280

280:                                              ; preds = %.thread1442
  %281 = icmp slt i32 %171, 0
  br i1 %281, label %.thread1445.sink.split, label %282

282:                                              ; preds = %280
  %283 = icmp slt i32 %174, 0
  %.not1276 = icmp ne i32 %171, %174
  %or.cond1438.not = and i1 %or.cond, %.not1276
  %or.cond1462 = select i1 %283, i1 true, i1 %or.cond1438.not
  br i1 %or.cond1462, label %.thread1445.sink.split, label %284

284:                                              ; preds = %282
  %285 = load double, ptr %21, align 8, !tbaa !18
  %286 = fcmp olt double %285, 0.000000e+00
  %287 = fcmp ogt double %285, 1.000000e+00
  %or.cond1439 = or i1 %286, %287
  %brmerge1996 = select i1 %or.cond1439, i1 true, i1 %160
  %.mux1997 = select i1 %or.cond1439, i32 -22, i32 -24
  br i1 %brmerge1996, label %.thread1445.sink.split, label %288

288:                                              ; preds = %284
  %or.cond55 = or i1 %161, %162
  %or.cond57 = or i1 %or.cond55, %163
  %or.cond59 = or i1 %or.cond57, %164
  %or.cond61 = and i1 %82, %or.cond59
  br i1 %or.cond61, label %.thread1445.sink.split, label %289

289:                                              ; preds = %288
  %or.cond63 = and i1 %82, %165
  br i1 %or.cond63, label %290, label %291

290:                                              ; preds = %289
  %.not1277 = icmp eq i32 %171, 0
  %.not1278 = icmp eq i32 %169, %170
  %or.cond1460 = select i1 %.not1277, i1 %.not1278, i1 false
  br i1 %or.cond1460, label %291, label %.thread1445.sink.split

291:                                              ; preds = %290, %289
  %or.cond65 = and i1 %82, %166
  br i1 %or.cond65, label %292, label %293

292:                                              ; preds = %291
  %.not1279 = icmp eq i32 %174, 0
  %.not1280 = icmp eq i32 %169, %170
  %or.cond1461 = select i1 %.not1279, i1 %.not1280, i1 false
  br i1 %or.cond1461, label %293, label %.thread1445.sink.split

293:                                              ; preds = %292, %291
  %or.cond67 = or i1 %.not1248, %161
  %or.cond69 = or i1 %or.cond67, %162
  br i1 %or.cond69, label %294, label %297

294:                                              ; preds = %293
  %295 = load i32, ptr %25, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %169, i32 1)
  %296 = icmp slt i32 %295, %spec.select
  br i1 %296, label %.thread1445.sink.split, label %297

297:                                              ; preds = %293, %294
  %or.cond71 = or i1 %165, %166
  br i1 %or.cond71, label %298, label %301

298:                                              ; preds = %297
  %299 = load i32, ptr %25, align 4, !tbaa !5
  %300 = icmp slt i32 %299, 1
  br i1 %300, label %.thread1445.sink.split, label %301

301:                                              ; preds = %297, %298
  %or.cond73 = or i1 %163, %164
  br i1 %or.cond73, label %302, label %304

302:                                              ; preds = %301
  %303 = load i32, ptr %25, align 4, !tbaa !5
  %.not1281 = icmp sgt i32 %303, %176
  br i1 %.not1281, label %304, label %.thread1445.sink.split

304:                                              ; preds = %301, %302
  br i1 %167, label %305, label %308

305:                                              ; preds = %304
  %306 = load i32, ptr %25, align 4, !tbaa !5
  %307 = add nsw i32 %176, %173
  %.not1282 = icmp sgt i32 %306, %307
  br i1 %.not1282, label %308, label %.thread1445.sink.split

308:                                              ; preds = %305, %304
  %.pr = load i32, ptr %27, align 4, !tbaa !5
  %.not1283 = icmp eq i32 %.pr, 0
  br i1 %.not1283, label %312, label %.thread1445

.thread1445.sink.split:                           ; preds = %284, %241, %294, %298, %302, %305, %290, %292, %288, %282, %280, %.thread1442, %276, %275, %277, %272, %268, %263, %258, %255, %252, %253, %.thread, %251, %247, %243, %240, %238
  %.sink = phi i32 [ -1, %238 ], [ -1, %240 ], [ %.mux.mux, %241 ], [ -7, %243 ], [ -8, %247 ], [ -10, %251 ], [ -11, %.thread ], [ -11, %253 ], [ -11, %252 ], [ -12, %255 ], [ -13, %258 ], [ -14, %263 ], [ -16, %268 ], [ -17, %272 ], [ -18, %277 ], [ -18, %275 ], [ -18, %276 ], [ -19, %.thread1442 ], [ -20, %280 ], [ -21, %282 ], [ %.mux1997, %284 ], [ -24, %288 ], [ -24, %292 ], [ -24, %290 ], [ -26, %305 ], [ -26, %302 ], [ -26, %298 ], [ -26, %294 ]
  store i32 %.sink, ptr %27, align 4, !tbaa !5
  br label %.thread1445

.thread1445:                                      ; preds = %.thread1445.sink.split, %308
  %309 = phi i32 [ %.pr, %308 ], [ %.sink, %.thread1445.sink.split ]
  %310 = sub nsw i32 0, %309
  store i32 %310, ptr %29, align 4, !tbaa !5
  %311 = call i32 @xerbla_(ptr noundef nonnull @.str.15, ptr noundef nonnull %29, i32 noundef 6) #7
  br label %.loopexit

312:                                              ; preds = %308
  %.not1923 = icmp sgt i32 %175, %174
  %313 = icmp sgt i32 %172, %171
  %spec.select1979 = select i1 %.not1923, i1 true, i1 %313
  %314 = load <2 x i32>, ptr %3, align 4, !tbaa !5
  %315 = tail call <2 x i32> @llvm.abs.v2i32(<2 x i32> %314, i1 true)
  %316 = and <2 x i32> %315, <i32 4095, i32 4095>
  store <2 x i32> %316, ptr %3, align 4, !tbaa !5
  %317 = getelementptr inbounds i8, ptr %3, i64 8
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = tail call i32 @llvm.abs.i32(i32 %318, i1 true)
  %320 = and i32 %319, 4095
  store i32 %320, ptr %317, align 4, !tbaa !5
  %321 = getelementptr inbounds i8, ptr %3, i64 12
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %323 = tail call i32 @llvm.abs.i32(i32 %322, i1 true)
  store i32 5, ptr %36, align 4, !tbaa !5
  store i32 %322, ptr %29, align 4, !tbaa !5
  %324 = getelementptr inbounds i8, ptr %3, i64 12
  %325 = and i32 %323, 4094
  %326 = or disjoint i32 %325, 1
  store i32 %326, ptr %324, align 4, !tbaa !5
  call void @zlatm1_(ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %43, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %41, ptr noundef nonnull %27) #7
  %327 = load i32, ptr %27, align 4, !tbaa !5
  %.not1285 = icmp eq i32 %327, 0
  br i1 %.not1285, label %329, label %328

328:                                              ; preds = %312
  store i32 1, ptr %27, align 4, !tbaa !5
  br label %.loopexit

329:                                              ; preds = %312
  %330 = load i32, ptr %6, align 4, !tbaa !5
  switch i32 %330, label %331 [
    i32 0, label %389
    i32 -6, label %389
    i32 6, label %389
  ]

331:                                              ; preds = %329
  %332 = call { double, double } @Cd(ptr noundef %5)
  %333 = extractvalue { double, double } %332, 0
  %334 = extractvalue { double, double } %332, 1
  %335 = call double @cabs(double noundef %333, double noundef %334) #7
  %336 = load i32, ptr %41, align 4, !tbaa !5
  store i32 %336, ptr %29, align 4, !tbaa !5
  store i32 2, ptr %36, align 4, !tbaa !5
  %.not12901520 = icmp slt i32 %336, 2
  br i1 %.not12901520, label %._crit_edge, label %.lr.ph1523

.lr.ph1523:                                       ; preds = %331, %.lr.ph1523
  %.011441522 = phi double [ %344, %.lr.ph1523 ], [ %335, %331 ]
  %storemerge12891521 = phi i32 [ %346, %.lr.ph1523 ], [ 2, %331 ]
  store double %.011441522, ptr %31, align 8, !tbaa !18
  %337 = sext i32 %storemerge12891521 to i64
  %338 = getelementptr inbounds %struct.doublecomplex, ptr %47, i64 %337
  %339 = call { double, double } @Cd(ptr noundef nonnull %338)
  %340 = extractvalue { double, double } %339, 0
  %341 = extractvalue { double, double } %339, 1
  %342 = call double @cabs(double noundef %340, double noundef %341) #7
  %343 = fcmp oge double %.011441522, %342
  %344 = select i1 %343, double %.011441522, double %342
  %345 = load i32, ptr %36, align 4, !tbaa !5
  %346 = add nsw i32 %345, 1
  store i32 %346, ptr %36, align 4, !tbaa !5
  %347 = load i32, ptr %29, align 4, !tbaa !5
  %.not1290.not = icmp slt i32 %345, %347
  br i1 %.not1290.not, label %.lr.ph1523, label %._crit_edge, !llvm.loop !19

._crit_edge:                                      ; preds = %.lr.ph1523, %331
  %.promoted15371873 = phi double [ undef, %331 ], [ %.011441522, %.lr.ph1523 ]
  %.01144.lcssa = phi double [ %335, %331 ], [ %344, %.lr.ph1523 ]
  %348 = fcmp oeq double %.01144.lcssa, 0.000000e+00
  br i1 %348, label %349, label %357

349:                                              ; preds = %._crit_edge
  %350 = load double, ptr %8, align 8, !tbaa !9
  %351 = fcmp une double %350, 0.000000e+00
  br i1 %351, label %356, label %352

352:                                              ; preds = %349
  %353 = getelementptr inbounds i8, ptr %8, i64 8
  %354 = load double, ptr %353, align 8, !tbaa !12
  %355 = fcmp une double %354, 0.000000e+00
  br i1 %355, label %356, label %357

356:                                              ; preds = %352, %349
  store i32 2, ptr %27, align 4, !tbaa !5
  br label %.loopexit

357:                                              ; preds = %352, %._crit_edge
  %358 = fcmp une double %.01144.lcssa, 0.000000e+00
  br i1 %358, label %359, label %364

359:                                              ; preds = %357
  %360 = load <2 x double>, ptr %8, align 8, !tbaa !18
  %361 = insertelement <2 x double> poison, double %.01144.lcssa, i64 0
  %362 = shufflevector <2 x double> %361, <2 x double> poison, <2 x i32> zeroinitializer
  %363 = fdiv <2 x double> %360, %362
  store <2 x double> %363, ptr %32, align 16, !tbaa !18
  br label %364

364:                                              ; preds = %357, %359
  %365 = phi <2 x double> [ %363, %359 ], [ <double 1.000000e+00, double 0.000000e+00>, %357 ]
  %366 = load i32, ptr %41, align 4, !tbaa !5
  store i32 %366, ptr %29, align 4, !tbaa !5
  %.not12921527 = icmp slt i32 %366, 1
  br i1 %.not12921527, label %.loopexit1504, label %.lr.ph1530

.lr.ph1530:                                       ; preds = %364
  %367 = extractelement <2 x double> %365, i64 1
  %368 = fneg double %367
  %369 = add nuw i32 %366, 1
  %wide.trip.count1850 = zext i32 %369 to i64
  %370 = zext nneg i32 %366 to i64
  %min.iters.check = icmp eq i32 %366, 1
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph1530
  %n.vec = and i64 %370, 2147483646
  %ind.end = or i64 %370, 1
  %broadcast.splatinsert = insertelement <2 x double> poison, double %368, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splat2037 = shufflevector <2 x double> %365, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splat2039 = shufflevector <2 x double> %365, <2 x double> poison, <2 x i32> <i32 1, i32 1>
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %371 = getelementptr %struct.doublecomplex, ptr %5, i64 %index
  %wide.vec = load <4 x double>, ptr %371, align 8, !tbaa !18
  %strided.vec = shufflevector <4 x double> %wide.vec, <4 x double> poison, <2 x i32> <i32 0, i32 2>
  %strided.vec2035 = shufflevector <4 x double> %wide.vec, <4 x double> poison, <2 x i32> <i32 1, i32 3>
  %372 = fmul <2 x double> %strided.vec2035, %broadcast.splat
  %373 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2037, <2 x double> %strided.vec, <2 x double> %372)
  %374 = fmul <2 x double> %broadcast.splat2039, %strided.vec
  %375 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat2037, <2 x double> %strided.vec2035, <2 x double> %374)
  %376 = getelementptr %struct.doublecomplex, ptr %5, i64 %index
  %interleaved.vec = shufflevector <2 x double> %373, <2 x double> %375, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x double> %interleaved.vec, ptr %376, align 8, !tbaa !18
  %index.next = add nuw i64 %index, 2
  %377 = icmp eq i64 %index.next, %n.vec
  br i1 %377, label %middle.block, label %vector.body, !llvm.loop !20

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %370
  %378 = shufflevector <2 x double> %373, <2 x double> %375, <2 x i32> <i32 1, i32 3>
  br i1 %cmp.n, label %..loopexit1504_crit_edge, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph1530
  %indvars.iv1847.ph = phi i64 [ 1, %.lr.ph1530 ], [ %ind.end, %middle.block ]
  %379 = shufflevector <2 x double> %365, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %380 = insertelement <2 x double> %379, double %368, i64 1
  %381 = shufflevector <2 x double> %365, <2 x double> poison, <2 x i32> zeroinitializer
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv1847 = phi i64 [ %indvars.iv.next1848, %scalar.ph ], [ %indvars.iv1847.ph, %scalar.ph.preheader ]
  %382 = getelementptr inbounds %struct.doublecomplex, ptr %47, i64 %indvars.iv1847
  %383 = load <2 x double>, ptr %382, align 8, !tbaa !18
  %384 = fmul <2 x double> %383, %380
  %385 = shufflevector <2 x double> %384, <2 x double> poison, <2 x i32> <i32 1, i32 0>
  %386 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %381, <2 x double> %383, <2 x double> %385)
  store <2 x double> %386, ptr %382, align 8, !tbaa !18
  %indvars.iv.next1848 = add nuw nsw i64 %indvars.iv1847, 1
  %exitcond1851.not = icmp eq i64 %indvars.iv.next1848, %wide.trip.count1850
  br i1 %exitcond1851.not, label %..loopexit1504_crit_edge, label %scalar.ph, !llvm.loop !23

..loopexit1504_crit_edge:                         ; preds = %scalar.ph, %middle.block
  %indvars.iv1847.lcssa = phi i64 [ %n.vec, %middle.block ], [ %indvars.iv1847, %scalar.ph ]
  %387 = phi <2 x double> [ %378, %middle.block ], [ %386, %scalar.ph ]
  %388 = trunc nuw nsw i64 %indvars.iv1847.lcssa to i32
  store <2 x double> %387, ptr %32, align 16, !tbaa !18
  br label %.loopexit1504

.loopexit1504:                                    ; preds = %..loopexit1504_crit_edge, %364
  %storemerge12911526.lcssa = phi i32 [ %388, %..loopexit1504_crit_edge ], [ %.promoted1525, %364 ]
  %storemerge1291.lcssa = phi i32 [ %369, %..loopexit1504_crit_edge ], [ 1, %364 ]
  store i32 %storemerge1291.lcssa, ptr %36, align 4, !tbaa !5
  store i32 %storemerge12911526.lcssa, ptr %30, align 4, !tbaa !5
  br label %389

389:                                              ; preds = %.loopexit1504, %329, %329, %329
  %.promoted1537 = phi double [ %.promoted15371873, %.loopexit1504 ], [ undef, %329 ], [ undef, %329 ], [ undef, %329 ]
  %.promoted1535 = phi i32 [ %storemerge12911526.lcssa, %.loopexit1504 ], [ %.promoted1525, %329 ], [ %.promoted1525, %329 ], [ %.promoted1525, %329 ]
  br i1 %.not1228, label %390, label %405

390:                                              ; preds = %389
  %391 = load i32, ptr %41, align 4, !tbaa !5
  store i32 %391, ptr %29, align 4, !tbaa !5
  %.not12941539 = icmp slt i32 %391, 1
  br i1 %.not12941539, label %.loopexit1503, label %.lr.ph1542.preheader

.lr.ph1542.preheader:                             ; preds = %390
  %392 = add nuw i32 %391, 1
  %393 = zext nneg i32 %391 to i64
  %xtraiter2100 = and i64 %393, 3
  %394 = icmp ult i32 %391, 4
  br i1 %394, label %.loopexit1503.loopexit.unr-lcssa, label %.lr.ph1542.preheader.new

.lr.ph1542.preheader.new:                         ; preds = %.lr.ph1542.preheader
  %unroll_iter2105 = and i64 %393, 2147483644
  br label %.lr.ph1542

.lr.ph1542:                                       ; preds = %.lr.ph1542, %.lr.ph1542.preheader.new
  %indvars.iv1852 = phi i64 [ 1, %.lr.ph1542.preheader.new ], [ %indvars.iv.next1853.3, %.lr.ph1542 ]
  %niter2106 = phi i64 [ 0, %.lr.ph1542.preheader.new ], [ %niter2106.next.3, %.lr.ph1542 ]
  %395 = getelementptr inbounds %struct.doublecomplex, ptr %47, i64 %indvars.iv1852, i32 1
  store double 0.000000e+00, ptr %395, align 8, !tbaa !12
  %indvars.iv.next1853 = add nuw nsw i64 %indvars.iv1852, 1
  %396 = getelementptr inbounds %struct.doublecomplex, ptr %47, i64 %indvars.iv.next1853, i32 1
  store double 0.000000e+00, ptr %396, align 8, !tbaa !12
  %indvars.iv.next1853.1 = add nuw nsw i64 %indvars.iv1852, 2
  %397 = getelementptr inbounds %struct.doublecomplex, ptr %47, i64 %indvars.iv.next1853.1, i32 1
  store double 0.000000e+00, ptr %397, align 8, !tbaa !12
  %indvars.iv.next1853.2 = add nuw nsw i64 %indvars.iv1852, 3
  %398 = getelementptr inbounds %struct.doublecomplex, ptr %47, i64 %indvars.iv.next1853.2
  %399 = load double, ptr %398, align 8, !tbaa !9
  %400 = getelementptr inbounds %struct.doublecomplex, ptr %47, i64 %indvars.iv.next1853.2, i32 1
  store double 0.000000e+00, ptr %400, align 8, !tbaa !12
  %indvars.iv.next1853.3 = add nuw nsw i64 %indvars.iv1852, 4
  %niter2106.next.3 = add i64 %niter2106, 4
  %niter2106.ncmp.3 = icmp eq i64 %niter2106.next.3, %unroll_iter2105
  br i1 %niter2106.ncmp.3, label %.loopexit1503.loopexit.unr-lcssa, label %.lr.ph1542, !llvm.loop !24

.loopexit1503.loopexit.unr-lcssa:                 ; preds = %.lr.ph1542, %.lr.ph1542.preheader
  %indvars.iv1852.lcssa.ph = phi i64 [ poison, %.lr.ph1542.preheader ], [ %indvars.iv.next1853.2, %.lr.ph1542 ]
  %.lcssa2088.ph = phi double [ poison, %.lr.ph1542.preheader ], [ %399, %.lr.ph1542 ]
  %indvars.iv1852.unr = phi i64 [ 1, %.lr.ph1542.preheader ], [ %indvars.iv.next1853.3, %.lr.ph1542 ]
  %lcmp.mod2102.not = icmp eq i64 %xtraiter2100, 0
  br i1 %lcmp.mod2102.not, label %.loopexit1503.loopexit, label %.lr.ph1542.epil

.lr.ph1542.epil:                                  ; preds = %.loopexit1503.loopexit.unr-lcssa, %.lr.ph1542.epil
  %indvars.iv1852.epil = phi i64 [ %indvars.iv.next1853.epil, %.lr.ph1542.epil ], [ %indvars.iv1852.unr, %.loopexit1503.loopexit.unr-lcssa ]
  %epil.iter2101 = phi i64 [ %epil.iter2101.next, %.lr.ph1542.epil ], [ 0, %.loopexit1503.loopexit.unr-lcssa ]
  %401 = getelementptr inbounds %struct.doublecomplex, ptr %47, i64 %indvars.iv1852.epil
  %402 = load double, ptr %401, align 8, !tbaa !9
  %403 = getelementptr inbounds %struct.doublecomplex, ptr %47, i64 %indvars.iv1852.epil, i32 1
  store double 0.000000e+00, ptr %403, align 8, !tbaa !12
  %indvars.iv.next1853.epil = add nuw nsw i64 %indvars.iv1852.epil, 1
  %epil.iter2101.next = add i64 %epil.iter2101, 1
  %epil.iter2101.cmp.not = icmp eq i64 %epil.iter2101.next, %xtraiter2100
  br i1 %epil.iter2101.cmp.not, label %.loopexit1503.loopexit, label %.lr.ph1542.epil, !llvm.loop !25

.loopexit1503.loopexit:                           ; preds = %.lr.ph1542.epil, %.loopexit1503.loopexit.unr-lcssa
  %indvars.iv1852.lcssa = phi i64 [ %indvars.iv1852.lcssa.ph, %.loopexit1503.loopexit.unr-lcssa ], [ %indvars.iv1852.epil, %.lr.ph1542.epil ]
  %.lcssa2088 = phi double [ %.lcssa2088.ph, %.loopexit1503.loopexit.unr-lcssa ], [ %402, %.lr.ph1542.epil ]
  %404 = trunc nuw nsw i64 %indvars.iv1852.lcssa to i32
  br label %.loopexit1503

.loopexit1503:                                    ; preds = %.loopexit1503.loopexit, %390
  %.lcssa1538 = phi double [ %.promoted1537, %390 ], [ %.lcssa2088, %.loopexit1503.loopexit ]
  %storemerge12931536.lcssa = phi i32 [ %.promoted1535, %390 ], [ %404, %.loopexit1503.loopexit ]
  %storemerge1293.lcssa = phi i32 [ 1, %390 ], [ %392, %.loopexit1503.loopexit ]
  store i32 %storemerge1293.lcssa, ptr %36, align 4, !tbaa !5
  store i32 %storemerge12931536.lcssa, ptr %30, align 4, !tbaa !5
  store double %.lcssa1538, ptr %31, align 8, !tbaa !18
  br label %405

405:                                              ; preds = %.loopexit1503, %389
  %406 = load i32, ptr %42, align 4
  switch i32 %406, label %410 [
    i32 6, label %407
    i32 5, label %407
    i32 4, label %407
    i32 3, label %407
    i32 1, label %407
  ]

407:                                              ; preds = %405, %405, %405, %405, %405
  call void @zlatm1_(ptr noundef %12, ptr noundef %13, ptr noundef nonnull @c__0, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %11, ptr noundef nonnull %0, ptr noundef nonnull %27) #7
  %408 = load i32, ptr %27, align 4, !tbaa !5
  %.not1295 = icmp eq i32 %408, 0
  br i1 %.not1295, label %._crit_edge1874, label %409

._crit_edge1874:                                  ; preds = %407
  %.pre = load i32, ptr %42, align 4
  br label %410

409:                                              ; preds = %407
  store i32 3, ptr %27, align 4, !tbaa !5
  br label %.loopexit

410:                                              ; preds = %._crit_edge1874, %405
  %411 = phi i32 [ %.pre, %._crit_edge1874 ], [ %406, %405 ]
  %412 = and i32 %411, -2
  %or.cond83 = icmp eq i32 %412, 2
  br i1 %or.cond83, label %413, label %416

413:                                              ; preds = %410
  call void @zlatm1_(ptr noundef %15, ptr noundef %16, ptr noundef nonnull @c__0, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %14, ptr noundef nonnull %1, ptr noundef nonnull %27) #7
  %414 = load i32, ptr %27, align 4, !tbaa !5
  %.not1296 = icmp eq i32 %414, 0
  br i1 %.not1296, label %416, label %415

415:                                              ; preds = %413
  store i32 4, ptr %27, align 4, !tbaa !5
  br label %.loopexit

416:                                              ; preds = %413, %410
  %417 = load i32, ptr %44, align 4, !tbaa !5
  %418 = icmp sgt i32 %417, 0
  br i1 %418, label %419, label %461

419:                                              ; preds = %416
  store i32 %.01135, ptr %29, align 4, !tbaa !5
  %.not12981546 = icmp slt i32 %.01135, 1
  br i1 %.not12981546, label %._crit_edge1550.thread, label %.lr.ph1549.preheader

.lr.ph1549.preheader:                             ; preds = %419
  %420 = add nuw i32 %.01135, 1
  %wide.trip.count1860 = zext i32 %420 to i64
  %421 = zext nneg i32 %.01135 to i64
  %min.iters.check2042 = icmp ult i32 %.01135, 8
  br i1 %min.iters.check2042, label %.lr.ph1549.preheader2087, label %vector.ph2043

vector.ph2043:                                    ; preds = %.lr.ph1549.preheader
  %n.vec2045 = and i64 %421, 2147483640
  %ind.end2046 = or disjoint i64 %n.vec2045, 1
  br label %vector.body2048

vector.body2048:                                  ; preds = %vector.body2048, %vector.ph2043
  %index2049 = phi i64 [ 0, %vector.ph2043 ], [ %index.next2052, %vector.body2048 ]
  %vec.ind = phi <4 x i32> [ <i32 1, i32 2, i32 3, i32 4>, %vector.ph2043 ], [ %vec.ind.next, %vector.body2048 ]
  %step.add = add <4 x i32> %vec.ind, <i32 4, i32 4, i32 4, i32 4>
  %422 = getelementptr i32, ptr %26, i64 %index2049
  %423 = getelementptr inbounds i8, ptr %422, i64 16
  store <4 x i32> %vec.ind, ptr %422, align 4, !tbaa !5
  store <4 x i32> %step.add, ptr %423, align 4, !tbaa !5
  %index.next2052 = add nuw i64 %index2049, 8
  %vec.ind.next = add <4 x i32> %vec.ind, <i32 8, i32 8, i32 8, i32 8>
  %424 = icmp eq i64 %index.next2052, %n.vec2045
  br i1 %424, label %middle.block2040, label %vector.body2048, !llvm.loop !26

middle.block2040:                                 ; preds = %vector.body2048
  %cmp.n2053 = icmp eq i64 %n.vec2045, %421
  br i1 %cmp.n2053, label %._crit_edge1550, label %.lr.ph1549.preheader2087

.lr.ph1549.preheader2087:                         ; preds = %middle.block2040, %.lr.ph1549.preheader
  %indvars.iv1857.ph = phi i64 [ 1, %.lr.ph1549.preheader ], [ %ind.end2046, %middle.block2040 ]
  br label %.lr.ph1549

.lr.ph1549:                                       ; preds = %.lr.ph1549.preheader2087, %.lr.ph1549
  %indvars.iv1857 = phi i64 [ %indvars.iv.next1858, %.lr.ph1549 ], [ %indvars.iv1857.ph, %.lr.ph1549.preheader2087 ]
  %425 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv1857
  %426 = trunc nuw nsw i64 %indvars.iv1857 to i32
  store i32 %426, ptr %425, align 4, !tbaa !5
  %indvars.iv.next1858 = add nuw nsw i64 %indvars.iv1857, 1
  %exitcond1861.not = icmp eq i64 %indvars.iv.next1858, %wide.trip.count1860
  br i1 %exitcond1861.not, label %._crit_edge1550, label %.lr.ph1549, !llvm.loop !27

._crit_edge1550:                                  ; preds = %.lr.ph1549, %middle.block2040
  br i1 %spec.select1979, label %.lr.ph1559.preheader, label %428

._crit_edge1550.thread:                           ; preds = %419
  br i1 %spec.select1979, label %.loopexit1501, label %.loopexit1502

.lr.ph1559.preheader:                             ; preds = %._crit_edge1550
  %427 = zext nneg i32 %.01135 to i64
  br label %.lr.ph1559

428:                                              ; preds = %._crit_edge1550
  store i32 %.01135, ptr %29, align 4, !tbaa !5
  br i1 %.not12981546, label %.loopexit1502, label %.lr.ph1555.preheader

.lr.ph1555.preheader:                             ; preds = %428
  %429 = add nuw i32 %.01135, 1
  %430 = zext nneg i32 %.01135 to i64
  %xtraiter2107 = and i64 %430, 1
  %431 = icmp eq i32 %420, 2
  br i1 %431, label %..loopexit1502_crit_edge.unr-lcssa, label %.lr.ph1555.preheader.new

.lr.ph1555.preheader.new:                         ; preds = %.lr.ph1555.preheader
  %unroll_iter2111 = and i64 %430, 2147483646
  br label %.lr.ph1555

.lr.ph1555:                                       ; preds = %.lr.ph1555, %.lr.ph1555.preheader.new
  %indvars.iv1862 = phi i64 [ 1, %.lr.ph1555.preheader.new ], [ %indvars.iv.next1863.1, %.lr.ph1555 ]
  %niter2112 = phi i64 [ 0, %.lr.ph1555.preheader.new ], [ %niter2112.next.1, %.lr.ph1555 ]
  %432 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv1862
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv1862
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = sext i32 %433 to i64
  %437 = getelementptr inbounds i32, ptr %53, i64 %436
  %438 = load i32, ptr %437, align 4, !tbaa !5
  store i32 %438, ptr %434, align 4, !tbaa !5
  store i32 %435, ptr %437, align 4, !tbaa !5
  %439 = getelementptr i32, ptr %18, i64 %indvars.iv1862
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = getelementptr i32, ptr %26, i64 %indvars.iv1862
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = sext i32 %440 to i64
  %444 = getelementptr inbounds i32, ptr %53, i64 %443
  %445 = load i32, ptr %444, align 4, !tbaa !5
  store i32 %445, ptr %441, align 4, !tbaa !5
  store i32 %442, ptr %444, align 4, !tbaa !5
  %indvars.iv.next1863.1 = add nuw nsw i64 %indvars.iv1862, 2
  %niter2112.next.1 = add i64 %niter2112, 2
  %niter2112.ncmp.1 = icmp eq i64 %niter2112.next.1, %unroll_iter2111
  br i1 %niter2112.ncmp.1, label %..loopexit1502_crit_edge.unr-lcssa, label %.lr.ph1555, !llvm.loop !28

.lr.ph1559:                                       ; preds = %.lr.ph1559.preheader, %.lr.ph1559
  %indvars.iv1867 = phi i64 [ %427, %.lr.ph1559.preheader ], [ %indvars.iv.next1868, %.lr.ph1559 ]
  %446 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv1867
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv1867
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = sext i32 %447 to i64
  %451 = getelementptr inbounds i32, ptr %53, i64 %450
  %452 = load i32, ptr %451, align 4, !tbaa !5
  store i32 %452, ptr %448, align 4, !tbaa !5
  store i32 %449, ptr %451, align 4, !tbaa !5
  %indvars.iv.next1868 = add nsw i64 %indvars.iv1867, -1
  %453 = icmp ugt i64 %indvars.iv1867, 1
  br i1 %453, label %.lr.ph1559, label %..loopexit1501_crit_edge, !llvm.loop !29

..loopexit1501_crit_edge:                         ; preds = %.lr.ph1559
  store i32 %449, ptr %37, align 4, !tbaa !5
  br label %.loopexit1501

.loopexit1501:                                    ; preds = %._crit_edge1550.thread, %..loopexit1501_crit_edge
  %storemerge1300.lcssa = phi i32 [ 0, %..loopexit1501_crit_edge ], [ %.01135, %._crit_edge1550.thread ]
  store i32 %storemerge1300.lcssa, ptr %36, align 4, !tbaa !5
  br label %461

..loopexit1502_crit_edge.unr-lcssa:               ; preds = %.lr.ph1555, %.lr.ph1555.preheader
  %.lcssa2086.ph = phi i32 [ poison, %.lr.ph1555.preheader ], [ %442, %.lr.ph1555 ]
  %indvars.iv1862.unr = phi i64 [ 1, %.lr.ph1555.preheader ], [ %indvars.iv.next1863.1, %.lr.ph1555 ]
  %lcmp.mod2109.not = icmp eq i64 %xtraiter2107, 0
  br i1 %lcmp.mod2109.not, label %..loopexit1502_crit_edge, label %.lr.ph1555.epil

.lr.ph1555.epil:                                  ; preds = %..loopexit1502_crit_edge.unr-lcssa
  %454 = getelementptr inbounds i32, ptr %49, i64 %indvars.iv1862.unr
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = getelementptr inbounds i32, ptr %53, i64 %indvars.iv1862.unr
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = sext i32 %455 to i64
  %459 = getelementptr inbounds i32, ptr %53, i64 %458
  %460 = load i32, ptr %459, align 4, !tbaa !5
  store i32 %460, ptr %456, align 4, !tbaa !5
  store i32 %457, ptr %459, align 4, !tbaa !5
  br label %..loopexit1502_crit_edge

..loopexit1502_crit_edge:                         ; preds = %..loopexit1502_crit_edge.unr-lcssa, %.lr.ph1555.epil
  %.lcssa2086 = phi i32 [ %.lcssa2086.ph, %..loopexit1502_crit_edge.unr-lcssa ], [ %457, %.lr.ph1555.epil ]
  store i32 %.lcssa2086, ptr %37, align 4, !tbaa !5
  br label %.loopexit1502

.loopexit1502:                                    ; preds = %._crit_edge1550.thread, %..loopexit1502_crit_edge, %428
  %storemerge1301.lcssa = phi i32 [ %429, %..loopexit1502_crit_edge ], [ 1, %428 ], [ 1, %._crit_edge1550.thread ]
  store i32 %storemerge1301.lcssa, ptr %36, align 4, !tbaa !5
  br label %461

461:                                              ; preds = %.loopexit1502, %.loopexit1501, %416
  br i1 %spec.select1979, label %920, label %462

462:                                              ; preds = %461
  br i1 %.not1248, label %463, label %530

463:                                              ; preds = %462
  br i1 %.not1228, label %464, label %491

464:                                              ; preds = %463
  %465 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %465, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not14151646 = icmp slt i32 %465, 1
  br i1 %.not14151646, label %.thread1449, label %.lr.ph1649

.lr.ph1649:                                       ; preds = %464, %._crit_edge1645
  %466 = phi i32 [ %488, %._crit_edge1645 ], [ %465, %464 ]
  %467 = phi i32 [ %490, %._crit_edge1645 ], [ 1, %464 ]
  store i32 %467, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not14251642 = icmp slt i32 %467, 1
  br i1 %.not14251642, label %._crit_edge1645, label %.lr.ph1644

.lr.ph1644:                                       ; preds = %.lr.ph1649, %.lr.ph1644
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %468 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %468, ptr %39, align 16, !tbaa !18
  %469 = load i32, ptr %34, align 4, !tbaa !5
  %470 = load i32, ptr %35, align 4, !tbaa !5
  %471 = mul nsw i32 %470, %50
  %472 = add nsw i32 %471, %469
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %473
  store <2 x double> %468, ptr %474, align 8, !tbaa !18
  %475 = mul nsw i32 %469, %50
  %476 = add nsw i32 %470, %475
  %477 = call { double, double } @Cd(ptr noundef nonnull %39)
  %478 = extractvalue { double, double } %477, 0
  %479 = extractvalue { double, double } %477, 1
  %480 = fneg double %479
  %481 = call ptr @_pCd(ptr noundef nonnull %32)
  %482 = getelementptr inbounds i8, ptr %481, i64 8
  store double %478, ptr %481, align 8
  store double %480, ptr %482, align 8
  %483 = sext i32 %476 to i64
  %484 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %483
  %485 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %485, ptr %484, align 8, !tbaa !18
  %486 = load i32, ptr %36, align 4, !tbaa !5
  %487 = add nsw i32 %486, 1
  store i32 %487, ptr %36, align 4, !tbaa !5
  %.not1425.not = icmp slt i32 %486, %467
  br i1 %.not1425.not, label %.lr.ph1644, label %._crit_edge1645.loopexit, !llvm.loop !30

._crit_edge1645.loopexit:                         ; preds = %.lr.ph1644
  %.pre1898 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1899 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1645

._crit_edge1645:                                  ; preds = %._crit_edge1645.loopexit, %.lr.ph1649
  %488 = phi i32 [ %.pre1899, %._crit_edge1645.loopexit ], [ %466, %.lr.ph1649 ]
  %489 = phi i32 [ %.pre1898, %._crit_edge1645.loopexit ], [ %467, %.lr.ph1649 ]
  %490 = add nsw i32 %489, 1
  store i32 %490, ptr %37, align 4, !tbaa !5
  %.not1415.not = icmp slt i32 %489, %488
  br i1 %.not1415.not, label %.lr.ph1649, label %.loopexit1478, !llvm.loop !31

491:                                              ; preds = %463
  br i1 %82, label %492, label %509

492:                                              ; preds = %491
  %493 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %493, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not14111639 = icmp slt i32 %493, 1
  br i1 %.not14111639, label %.thread1449, label %.lr.ph1641

.lr.ph1641:                                       ; preds = %492, %._crit_edge1638
  %494 = phi i32 [ %506, %._crit_edge1638 ], [ %493, %492 ]
  %495 = phi i32 [ %508, %._crit_edge1638 ], [ 1, %492 ]
  %496 = load i32, ptr %0, align 4, !tbaa !5
  store i32 %496, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not14131635 = icmp slt i32 %496, 1
  br i1 %.not14131635, label %._crit_edge1638, label %.lr.ph1637

.lr.ph1637:                                       ; preds = %.lr.ph1641, %.lr.ph1637
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %497 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %497, ptr %39, align 16, !tbaa !18
  %498 = load i32, ptr %34, align 4, !tbaa !5
  %499 = load i32, ptr %35, align 4, !tbaa !5
  %500 = mul nsw i32 %499, %50
  %501 = add nsw i32 %500, %498
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %502
  store <2 x double> %497, ptr %503, align 8, !tbaa !18
  %504 = load i32, ptr %36, align 4, !tbaa !5
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr %36, align 4, !tbaa !5
  %.not1413.not = icmp slt i32 %504, %496
  br i1 %.not1413.not, label %.lr.ph1637, label %._crit_edge1638.loopexit, !llvm.loop !32

._crit_edge1638.loopexit:                         ; preds = %.lr.ph1637
  %.pre1896 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1897 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1638

._crit_edge1638:                                  ; preds = %._crit_edge1638.loopexit, %.lr.ph1641
  %506 = phi i32 [ %.pre1897, %._crit_edge1638.loopexit ], [ %494, %.lr.ph1641 ]
  %507 = phi i32 [ %.pre1896, %._crit_edge1638.loopexit ], [ %495, %.lr.ph1641 ]
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr %37, align 4, !tbaa !5
  %.not1411.not = icmp slt i32 %507, %506
  br i1 %.not1411.not, label %.lr.ph1641, label %.loopexit1478, !llvm.loop !33

509:                                              ; preds = %491
  br i1 %80, label %510, label %.thread1449

510:                                              ; preds = %509
  %511 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %511, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not14071631 = icmp slt i32 %511, 1
  br i1 %.not14071631, label %.thread1449, label %.lr.ph1634

.lr.ph1634:                                       ; preds = %510, %._crit_edge1630
  %512 = phi i32 [ %527, %._crit_edge1630 ], [ %511, %510 ]
  %513 = phi i32 [ %529, %._crit_edge1630 ], [ 1, %510 ]
  store i32 %513, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not14091627 = icmp slt i32 %513, 1
  br i1 %.not14091627, label %._crit_edge1630, label %.lr.ph1629

.lr.ph1629:                                       ; preds = %.lr.ph1634, %.lr.ph1629
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %514 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %514, ptr %39, align 16, !tbaa !18
  %515 = load i32, ptr %34, align 4, !tbaa !5
  %516 = load i32, ptr %35, align 4, !tbaa !5
  %517 = mul nsw i32 %516, %50
  %518 = add nsw i32 %517, %515
  %519 = sext i32 %518 to i64
  %520 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %519
  store <2 x double> %514, ptr %520, align 8, !tbaa !18
  %521 = mul nsw i32 %515, %50
  %522 = add nsw i32 %516, %521
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %523
  store <2 x double> %514, ptr %524, align 8, !tbaa !18
  %525 = load i32, ptr %36, align 4, !tbaa !5
  %526 = add nsw i32 %525, 1
  store i32 %526, ptr %36, align 4, !tbaa !5
  %.not1409.not = icmp slt i32 %525, %513
  br i1 %.not1409.not, label %.lr.ph1629, label %._crit_edge1630.loopexit, !llvm.loop !34

._crit_edge1630.loopexit:                         ; preds = %.lr.ph1629
  %.pre1894 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1895 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1630

._crit_edge1630:                                  ; preds = %._crit_edge1630.loopexit, %.lr.ph1634
  %527 = phi i32 [ %.pre1895, %._crit_edge1630.loopexit ], [ %512, %.lr.ph1634 ]
  %528 = phi i32 [ %.pre1894, %._crit_edge1630.loopexit ], [ %513, %.lr.ph1634 ]
  %529 = add nsw i32 %528, 1
  store i32 %529, ptr %37, align 4, !tbaa !5
  %.not1407.not = icmp slt i32 %528, %527
  br i1 %.not1407.not, label %.lr.ph1634, label %.loopexit1478, !llvm.loop !35

530:                                              ; preds = %462
  br i1 %161, label %531, label %575

531:                                              ; preds = %530
  %532 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %532, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not14011623 = icmp slt i32 %532, 1
  br i1 %.not14011623, label %.loopexit1478.thread.thread1930, label %.lr.ph1626

.lr.ph1626:                                       ; preds = %531
  %533 = getelementptr inbounds i8, ptr %32, i64 8
  br label %534

534:                                              ; preds = %.lr.ph1626, %._crit_edge1622
  %535 = phi i32 [ %532, %.lr.ph1626 ], [ %572, %._crit_edge1622 ]
  %536 = phi i32 [ 1, %.lr.ph1626 ], [ %574, %._crit_edge1622 ]
  store i32 %536, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not14031619 = icmp slt i32 %536, 1
  br i1 %.not14031619, label %._crit_edge1622, label %.lr.ph1621

.lr.ph1621:                                       ; preds = %534, %569
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %537 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %537, ptr %39, align 16, !tbaa !18
  %538 = load i32, ptr %34, align 4
  %539 = load i32, ptr %35, align 4
  %540 = call i32 @llvm.smin.i32(i32 %538, i32 %539)
  %541 = icmp sge i32 %538, %539
  %542 = call i32 @llvm.smax.i32(i32 %538, i32 %539)
  %or.cond85 = and i1 %.not1228, %541
  %543 = mul nsw i32 %542, %50
  %544 = add nsw i32 %543, %540
  br i1 %or.cond85, label %545, label %556

545:                                              ; preds = %.lr.ph1621
  %546 = call { double, double } @Cd(ptr noundef nonnull %39)
  %547 = extractvalue { double, double } %546, 0
  %548 = extractvalue { double, double } %546, 1
  %549 = fneg double %548
  %550 = call ptr @_pCd(ptr noundef nonnull %32)
  %551 = getelementptr inbounds i8, ptr %550, i64 8
  store double %547, ptr %550, align 8
  store double %549, ptr %551, align 8
  %552 = load double, ptr %32, align 16, !tbaa !9
  %553 = sext i32 %544 to i64
  %554 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %553
  store double %552, ptr %554, align 8, !tbaa !9
  %555 = load double, ptr %533, align 8, !tbaa !12
  br label %561

556:                                              ; preds = %.lr.ph1621
  %557 = sext i32 %544 to i64
  %558 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %557
  %559 = extractelement <2 x double> %537, i64 0
  store double %559, ptr %558, align 8, !tbaa !9
  %560 = extractelement <2 x double> %537, i64 1
  br label %561

561:                                              ; preds = %556, %545
  %562 = phi i64 [ %557, %556 ], [ %553, %545 ]
  %.sink1980 = phi double [ %560, %556 ], [ %555, %545 ]
  %563 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %562, i32 1
  store double %.sink1980, ptr %563, align 8, !tbaa !12
  %.not1405 = icmp eq i32 %538, %539
  br i1 %.not1405, label %569, label %564

564:                                              ; preds = %561
  %565 = mul nsw i32 %540, %50
  %566 = add nsw i32 %565, %542
  %567 = sext i32 %566 to i64
  %568 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %567
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %568, i8 0, i64 16, i1 false)
  br label %569

569:                                              ; preds = %561, %564
  %570 = load i32, ptr %36, align 4, !tbaa !5
  %571 = add nsw i32 %570, 1
  store i32 %571, ptr %36, align 4, !tbaa !5
  %.not1403.not = icmp slt i32 %570, %536
  br i1 %.not1403.not, label %.lr.ph1621, label %._crit_edge1622.loopexit, !llvm.loop !36

._crit_edge1622.loopexit:                         ; preds = %569
  %.pre1892 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1893 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1622

._crit_edge1622:                                  ; preds = %._crit_edge1622.loopexit, %534
  %572 = phi i32 [ %.pre1893, %._crit_edge1622.loopexit ], [ %535, %534 ]
  %573 = phi i32 [ %.pre1892, %._crit_edge1622.loopexit ], [ %536, %534 ]
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr %37, align 4, !tbaa !5
  %.not1401.not = icmp slt i32 %573, %572
  br i1 %.not1401.not, label %534, label %.loopexit1478, !llvm.loop !37

575:                                              ; preds = %530
  br i1 %162, label %576, label %620

576:                                              ; preds = %575
  %577 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %577, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13941615 = icmp slt i32 %577, 1
  br i1 %.not13941615, label %.loopexit1478.thread.thread.thread1932, label %.lr.ph1618

.lr.ph1618:                                       ; preds = %576
  %578 = getelementptr inbounds i8, ptr %32, i64 8
  br label %579

579:                                              ; preds = %.lr.ph1618, %._crit_edge1614
  %580 = phi i32 [ %577, %.lr.ph1618 ], [ %617, %._crit_edge1614 ]
  %581 = phi i32 [ 1, %.lr.ph1618 ], [ %619, %._crit_edge1614 ]
  store i32 %581, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13961611 = icmp slt i32 %581, 1
  br i1 %.not13961611, label %._crit_edge1614, label %.lr.ph1613

.lr.ph1613:                                       ; preds = %579, %614
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %582 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %582, ptr %39, align 16, !tbaa !18
  %583 = load i32, ptr %34, align 4
  %584 = load i32, ptr %35, align 4
  %585 = call i32 @llvm.smin.i32(i32 %583, i32 %584)
  %586 = call i32 @llvm.smax.i32(i32 %583, i32 %584)
  %587 = icmp sge i32 %584, %583
  %or.cond87 = and i1 %.not1228, %587
  %588 = mul nsw i32 %585, %50
  %589 = add nsw i32 %588, %586
  br i1 %or.cond87, label %590, label %601

590:                                              ; preds = %.lr.ph1613
  %591 = call { double, double } @Cd(ptr noundef nonnull %39)
  %592 = extractvalue { double, double } %591, 0
  %593 = extractvalue { double, double } %591, 1
  %594 = fneg double %593
  %595 = call ptr @_pCd(ptr noundef nonnull %32)
  %596 = getelementptr inbounds i8, ptr %595, i64 8
  store double %592, ptr %595, align 8
  store double %594, ptr %596, align 8
  %597 = load double, ptr %32, align 16, !tbaa !9
  %598 = sext i32 %589 to i64
  %599 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %598
  store double %597, ptr %599, align 8, !tbaa !9
  %600 = load double, ptr %578, align 8, !tbaa !12
  br label %606

601:                                              ; preds = %.lr.ph1613
  %602 = sext i32 %589 to i64
  %603 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %602
  %604 = extractelement <2 x double> %582, i64 0
  store double %604, ptr %603, align 8, !tbaa !9
  %605 = extractelement <2 x double> %582, i64 1
  br label %606

606:                                              ; preds = %601, %590
  %607 = phi i64 [ %602, %601 ], [ %598, %590 ]
  %.sink1983 = phi double [ %605, %601 ], [ %600, %590 ]
  %608 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %607, i32 1
  store double %.sink1983, ptr %608, align 8, !tbaa !12
  %.not1399 = icmp eq i32 %583, %584
  br i1 %.not1399, label %614, label %609

609:                                              ; preds = %606
  %610 = mul nsw i32 %586, %50
  %611 = add nsw i32 %610, %585
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %612
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %613, i8 0, i64 16, i1 false)
  br label %614

614:                                              ; preds = %606, %609
  %615 = load i32, ptr %36, align 4, !tbaa !5
  %616 = add nsw i32 %615, 1
  store i32 %616, ptr %36, align 4, !tbaa !5
  %.not1396.not = icmp slt i32 %615, %581
  br i1 %.not1396.not, label %.lr.ph1613, label %._crit_edge1614.loopexit, !llvm.loop !38

._crit_edge1614.loopexit:                         ; preds = %614
  %.pre1890 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1891 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1614

._crit_edge1614:                                  ; preds = %._crit_edge1614.loopexit, %579
  %617 = phi i32 [ %.pre1891, %._crit_edge1614.loopexit ], [ %580, %579 ]
  %618 = phi i32 [ %.pre1890, %._crit_edge1614.loopexit ], [ %581, %579 ]
  %619 = add nsw i32 %618, 1
  store i32 %619, ptr %37, align 4, !tbaa !5
  %.not1394.not = icmp slt i32 %618, %617
  br i1 %.not1394.not, label %579, label %.loopexit1478, !llvm.loop !39

620:                                              ; preds = %575
  br i1 %165, label %621, label %669

621:                                              ; preds = %620
  %622 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %622, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13891607 = icmp slt i32 %622, 1
  br i1 %.not13891607, label %.loopexit1478.thread.thread.thread.thread1934, label %.lr.ph1610

.lr.ph1610:                                       ; preds = %621
  %623 = getelementptr inbounds i8, ptr %32, i64 8
  br label %624

624:                                              ; preds = %.lr.ph1610, %._crit_edge1606
  %625 = phi i32 [ %622, %.lr.ph1610 ], [ %666, %._crit_edge1606 ]
  %626 = phi i32 [ 1, %.lr.ph1610 ], [ %668, %._crit_edge1606 ]
  store i32 %626, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13911603 = icmp slt i32 %626, 1
  br i1 %.not13911603, label %._crit_edge1606, label %.lr.ph1605

.lr.ph1605:                                       ; preds = %624, %661
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %627 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %627, ptr %39, align 16, !tbaa !18
  %628 = load i32, ptr %34, align 4
  %629 = load i32, ptr %35, align 4
  %630 = call i32 @llvm.smin.i32(i32 %628, i32 %629)
  %631 = icmp sge i32 %628, %629
  %632 = call i32 @llvm.smax.i32(i32 %628, i32 %629)
  %633 = add nsw i32 %632, -1
  %634 = mul nsw i32 %633, %632
  %635 = sdiv i32 %634, 2
  %636 = add nsw i32 %635, %630
  %637 = add nsw i32 %636, -1
  %638 = load i32, ptr %25, align 4, !tbaa !5
  %639 = sdiv i32 %637, %638
  %640 = add nsw i32 %639, 1
  %641 = mul nsw i32 %639, %638
  %642 = sub nsw i32 %636, %641
  %or.cond89 = and i1 %.not1228, %631
  %643 = mul nsw i32 %640, %50
  %644 = add nsw i32 %642, %643
  br i1 %or.cond89, label %645, label %656

645:                                              ; preds = %.lr.ph1605
  %646 = call { double, double } @Cd(ptr noundef nonnull %39)
  %647 = extractvalue { double, double } %646, 0
  %648 = extractvalue { double, double } %646, 1
  %649 = fneg double %648
  %650 = call ptr @_pCd(ptr noundef nonnull %32)
  %651 = getelementptr inbounds i8, ptr %650, i64 8
  store double %647, ptr %650, align 8
  store double %649, ptr %651, align 8
  %652 = load double, ptr %32, align 16, !tbaa !9
  %653 = sext i32 %644 to i64
  %654 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %653
  store double %652, ptr %654, align 8, !tbaa !9
  %655 = load double, ptr %623, align 8, !tbaa !12
  br label %661

656:                                              ; preds = %.lr.ph1605
  %657 = sext i32 %644 to i64
  %658 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %657
  %659 = extractelement <2 x double> %627, i64 0
  store double %659, ptr %658, align 8, !tbaa !9
  %660 = extractelement <2 x double> %627, i64 1
  br label %661

661:                                              ; preds = %645, %656
  %662 = phi i64 [ %653, %645 ], [ %657, %656 ]
  %.sink1986 = phi double [ %655, %645 ], [ %660, %656 ]
  %663 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %662, i32 1
  store double %.sink1986, ptr %663, align 8, !tbaa !12
  %664 = load i32, ptr %36, align 4, !tbaa !5
  %665 = add nsw i32 %664, 1
  store i32 %665, ptr %36, align 4, !tbaa !5
  %.not1391.not = icmp slt i32 %664, %626
  br i1 %.not1391.not, label %.lr.ph1605, label %._crit_edge1606.loopexit, !llvm.loop !40

._crit_edge1606.loopexit:                         ; preds = %661
  %.pre1888 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1889 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1606

._crit_edge1606:                                  ; preds = %._crit_edge1606.loopexit, %624
  %666 = phi i32 [ %.pre1889, %._crit_edge1606.loopexit ], [ %625, %624 ]
  %667 = phi i32 [ %.pre1888, %._crit_edge1606.loopexit ], [ %626, %624 ]
  %668 = add nsw i32 %667, 1
  store i32 %668, ptr %37, align 4, !tbaa !5
  %.not1389.not = icmp slt i32 %667, %666
  br i1 %.not1389.not, label %624, label %.loopexit1478, !llvm.loop !41

669:                                              ; preds = %620
  br i1 %166, label %670, label %729

670:                                              ; preds = %669
  %671 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %671, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13821599 = icmp slt i32 %671, 1
  br i1 %.not13821599, label %.loopexit1478.thread.thread.thread.thread.thread1936, label %.lr.ph1602

.lr.ph1602:                                       ; preds = %670
  %672 = getelementptr inbounds i8, ptr %32, i64 8
  br label %673

673:                                              ; preds = %.lr.ph1602, %._crit_edge1598
  %674 = phi i32 [ %671, %.lr.ph1602 ], [ %726, %._crit_edge1598 ]
  %675 = phi i32 [ 1, %.lr.ph1602 ], [ %728, %._crit_edge1598 ]
  store i32 %675, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13841595 = icmp slt i32 %675, 1
  br i1 %.not13841595, label %._crit_edge1598, label %.lr.ph1597

.lr.ph1597:                                       ; preds = %673, %721
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %676 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %676, ptr %39, align 16, !tbaa !18
  %677 = load i32, ptr %34, align 4
  %678 = load i32, ptr %35, align 4
  %679 = call i32 @llvm.smin.i32(i32 %677, i32 %678)
  %680 = call i32 @llvm.smax.i32(i32 %677, i32 %678)
  %681 = icmp eq i32 %679, 1
  br i1 %681, label %695, label %682

682:                                              ; preds = %.lr.ph1597
  %683 = load i32, ptr %1, align 4, !tbaa !5
  %684 = add nsw i32 %683, 1
  %685 = mul nsw i32 %684, %683
  %686 = sdiv i32 %685, 2
  %687 = sub nsw i32 %683, %679
  %688 = add nsw i32 %687, 1
  %689 = add nsw i32 %687, 2
  %690 = mul nsw i32 %688, %689
  %.neg1387 = sdiv i32 %690, -2
  %691 = add i32 %680, 1
  %692 = sub i32 %691, %679
  %693 = add i32 %692, %686
  %694 = add i32 %693, %.neg1387
  br label %695

695:                                              ; preds = %.lr.ph1597, %682
  %.01141 = phi i32 [ %694, %682 ], [ %680, %.lr.ph1597 ]
  %696 = add nsw i32 %.01141, -1
  %697 = load i32, ptr %25, align 4, !tbaa !5
  %698 = sdiv i32 %696, %697
  %699 = add nsw i32 %698, 1
  %700 = mul nsw i32 %698, %697
  %701 = sub nsw i32 %.01141, %700
  %702 = icmp sge i32 %678, %677
  %or.cond91 = and i1 %.not1228, %702
  %703 = mul nsw i32 %699, %50
  %704 = add nsw i32 %701, %703
  br i1 %or.cond91, label %705, label %716

705:                                              ; preds = %695
  %706 = call { double, double } @Cd(ptr noundef nonnull %39)
  %707 = extractvalue { double, double } %706, 0
  %708 = extractvalue { double, double } %706, 1
  %709 = fneg double %708
  %710 = call ptr @_pCd(ptr noundef nonnull %32)
  %711 = getelementptr inbounds i8, ptr %710, i64 8
  store double %707, ptr %710, align 8
  store double %709, ptr %711, align 8
  %712 = load double, ptr %32, align 16, !tbaa !9
  %713 = sext i32 %704 to i64
  %714 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %713
  store double %712, ptr %714, align 8, !tbaa !9
  %715 = load double, ptr %672, align 8, !tbaa !12
  br label %721

716:                                              ; preds = %695
  %717 = sext i32 %704 to i64
  %718 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %717
  %719 = extractelement <2 x double> %676, i64 0
  store double %719, ptr %718, align 8, !tbaa !9
  %720 = extractelement <2 x double> %676, i64 1
  br label %721

721:                                              ; preds = %705, %716
  %722 = phi i64 [ %713, %705 ], [ %717, %716 ]
  %.sink1989 = phi double [ %715, %705 ], [ %720, %716 ]
  %723 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %722, i32 1
  store double %.sink1989, ptr %723, align 8, !tbaa !12
  %724 = load i32, ptr %36, align 4, !tbaa !5
  %725 = add nsw i32 %724, 1
  store i32 %725, ptr %36, align 4, !tbaa !5
  %.not1384.not = icmp slt i32 %724, %675
  br i1 %.not1384.not, label %.lr.ph1597, label %._crit_edge1598.loopexit, !llvm.loop !42

._crit_edge1598.loopexit:                         ; preds = %721
  %.pre1886 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1887 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1598

._crit_edge1598:                                  ; preds = %._crit_edge1598.loopexit, %673
  %726 = phi i32 [ %.pre1887, %._crit_edge1598.loopexit ], [ %674, %673 ]
  %727 = phi i32 [ %.pre1886, %._crit_edge1598.loopexit ], [ %675, %673 ]
  %728 = add nsw i32 %727, 1
  store i32 %728, ptr %37, align 4, !tbaa !5
  %.not1382.not = icmp slt i32 %727, %726
  br i1 %.not1382.not, label %673, label %.loopexit1478, !llvm.loop !43

729:                                              ; preds = %669
  br i1 %163, label %730, label %775

730:                                              ; preds = %729
  %731 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %731, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13761591 = icmp slt i32 %731, 1
  br i1 %.not13761591, label %.loopexit1478.thread.thread.thread.thread.thread.thread1938, label %.lr.ph1594

.lr.ph1594:                                       ; preds = %730, %._crit_edge1590
  %732 = phi i32 [ %772, %._crit_edge1590 ], [ %731, %730 ]
  %733 = phi i32 [ %774, %._crit_edge1590 ], [ 1, %730 ]
  store i32 %733, ptr %30, align 4, !tbaa !5
  %734 = load i32, ptr %46, align 4, !tbaa !5
  %735 = sub nsw i32 %733, %734
  store i32 %735, ptr %36, align 4, !tbaa !5
  %.not13781586 = icmp slt i32 %734, 0
  br i1 %.not13781586, label %._crit_edge1590, label %.lr.ph1589

.lr.ph1589:                                       ; preds = %.lr.ph1594, %769
  %storemerge13771587 = phi i32 [ %771, %769 ], [ %735, %.lr.ph1594 ]
  %736 = icmp slt i32 %storemerge13771587, 1
  br i1 %736, label %737, label %746

737:                                              ; preds = %.lr.ph1589
  %738 = load i32, ptr %37, align 4, !tbaa !5
  %739 = load i32, ptr %1, align 4, !tbaa !5
  %740 = add nsw i32 %739, %storemerge13771587
  %741 = mul nsw i32 %740, %50
  %reass.sub1791 = sub i32 %738, %storemerge13771587
  %742 = add i32 %reass.sub1791, 1
  %743 = add nsw i32 %742, %741
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %744
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %745, i8 0, i64 16, i1 false)
  br label %769

746:                                              ; preds = %.lr.ph1589
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %747 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %747, ptr %39, align 16, !tbaa !18
  %748 = load i32, ptr %34, align 4
  %749 = load i32, ptr %35, align 4
  %750 = call i32 @llvm.smin.i32(i32 %748, i32 %749)
  %751 = call i32 @llvm.smax.i32(i32 %748, i32 %749)
  %752 = icmp sge i32 %749, %748
  %or.cond93 = and i1 %.not1228, %752
  %753 = mul nsw i32 %750, %50
  %reass.sub1790 = sub i32 %751, %750
  %754 = add i32 %reass.sub1790, 1
  %755 = add nsw i32 %754, %753
  br i1 %or.cond93, label %756, label %766

756:                                              ; preds = %746
  %757 = call { double, double } @Cd(ptr noundef nonnull %39)
  %758 = extractvalue { double, double } %757, 0
  %759 = extractvalue { double, double } %757, 1
  %760 = fneg double %759
  %761 = call ptr @_pCd(ptr noundef nonnull %32)
  %762 = getelementptr inbounds i8, ptr %761, i64 8
  store double %758, ptr %761, align 8
  store double %760, ptr %762, align 8
  %763 = sext i32 %755 to i64
  %764 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %763
  %765 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %765, ptr %764, align 8, !tbaa !18
  br label %769

766:                                              ; preds = %746
  %767 = sext i32 %755 to i64
  %768 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %767
  store <2 x double> %747, ptr %768, align 8, !tbaa !18
  br label %769

769:                                              ; preds = %737, %766, %756
  %770 = load i32, ptr %36, align 4, !tbaa !5
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr %36, align 4, !tbaa !5
  %.not1378.not = icmp slt i32 %770, %733
  br i1 %.not1378.not, label %.lr.ph1589, label %._crit_edge1590.loopexit, !llvm.loop !44

._crit_edge1590.loopexit:                         ; preds = %769
  %.pre1884 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1885 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1590

._crit_edge1590:                                  ; preds = %._crit_edge1590.loopexit, %.lr.ph1594
  %772 = phi i32 [ %.pre1885, %._crit_edge1590.loopexit ], [ %732, %.lr.ph1594 ]
  %773 = phi i32 [ %.pre1884, %._crit_edge1590.loopexit ], [ %733, %.lr.ph1594 ]
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr %37, align 4, !tbaa !5
  %.not1376.not = icmp slt i32 %773, %772
  br i1 %.not1376.not, label %.lr.ph1594, label %.loopexit1478, !llvm.loop !45

775:                                              ; preds = %729
  br i1 %164, label %776, label %819

776:                                              ; preds = %775
  %777 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %777, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13711582 = icmp slt i32 %777, 1
  br i1 %.not13711582, label %.loopexit1478.thread.thread.thread.thread.thread.thread.thread1940, label %.lr.ph1585

.lr.ph1585:                                       ; preds = %776
  %778 = getelementptr inbounds i8, ptr %32, i64 8
  br label %779

779:                                              ; preds = %.lr.ph1585, %._crit_edge1581
  %780 = phi i32 [ %777, %.lr.ph1585 ], [ %816, %._crit_edge1581 ]
  %781 = phi i32 [ 1, %.lr.ph1585 ], [ %818, %._crit_edge1581 ]
  store i32 %781, ptr %30, align 4, !tbaa !5
  %782 = load i32, ptr %46, align 4, !tbaa !5
  %783 = sub nsw i32 %781, %782
  store i32 %783, ptr %36, align 4, !tbaa !5
  %.not13731578 = icmp slt i32 %782, 0
  br i1 %.not13731578, label %._crit_edge1581, label %.lr.ph1580

.lr.ph1580:                                       ; preds = %779, %811
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %784 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %784, ptr %39, align 16, !tbaa !18
  %785 = load i32, ptr %34, align 4
  %786 = load i32, ptr %35, align 4
  %787 = call i32 @llvm.smin.i32(i32 %785, i32 %786)
  %788 = icmp sge i32 %785, %786
  %789 = call i32 @llvm.smax.i32(i32 %785, i32 %786)
  %or.cond95 = and i1 %.not1228, %788
  %790 = load i32, ptr %46, align 4, !tbaa !5
  %791 = mul nsw i32 %789, %50
  %reass.sub1788 = sub i32 %787, %789
  %792 = add i32 %reass.sub1788, 1
  %793 = add i32 %792, %791
  %794 = add i32 %793, %790
  br i1 %or.cond95, label %795, label %806

795:                                              ; preds = %.lr.ph1580
  %796 = call { double, double } @Cd(ptr noundef nonnull %39)
  %797 = extractvalue { double, double } %796, 0
  %798 = extractvalue { double, double } %796, 1
  %799 = fneg double %798
  %800 = call ptr @_pCd(ptr noundef nonnull %32)
  %801 = getelementptr inbounds i8, ptr %800, i64 8
  store double %797, ptr %800, align 8
  store double %799, ptr %801, align 8
  %802 = load double, ptr %32, align 16, !tbaa !9
  %803 = sext i32 %794 to i64
  %804 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %803
  store double %802, ptr %804, align 8, !tbaa !9
  %805 = load double, ptr %778, align 8, !tbaa !12
  br label %811

806:                                              ; preds = %.lr.ph1580
  %807 = sext i32 %794 to i64
  %808 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %807
  %809 = extractelement <2 x double> %784, i64 0
  store double %809, ptr %808, align 8, !tbaa !9
  %810 = extractelement <2 x double> %784, i64 1
  br label %811

811:                                              ; preds = %795, %806
  %812 = phi i64 [ %803, %795 ], [ %807, %806 ]
  %.sink1992 = phi double [ %805, %795 ], [ %810, %806 ]
  %813 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %812, i32 1
  store double %.sink1992, ptr %813, align 8, !tbaa !12
  %814 = load i32, ptr %36, align 4, !tbaa !5
  %815 = add nsw i32 %814, 1
  store i32 %815, ptr %36, align 4, !tbaa !5
  %.not1373.not = icmp slt i32 %814, %781
  br i1 %.not1373.not, label %.lr.ph1580, label %._crit_edge1581.loopexit, !llvm.loop !46

._crit_edge1581.loopexit:                         ; preds = %811
  %.pre1882 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1883 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1581

._crit_edge1581:                                  ; preds = %._crit_edge1581.loopexit, %779
  %816 = phi i32 [ %.pre1883, %._crit_edge1581.loopexit ], [ %780, %779 ]
  %817 = phi i32 [ %.pre1882, %._crit_edge1581.loopexit ], [ %781, %779 ]
  %818 = add nsw i32 %817, 1
  store i32 %818, ptr %37, align 4, !tbaa !5
  %.not1371.not = icmp slt i32 %817, %816
  br i1 %.not1371.not, label %779, label %.loopexit1478, !llvm.loop !47

819:                                              ; preds = %775
  br i1 %167, label %820, label %.thread1458

820:                                              ; preds = %819
  %821 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %821, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13601574 = icmp slt i32 %821, 1
  br i1 %82, label %896, label %822

822:                                              ; preds = %820
  br i1 %.not13601574, label %.thread1941, label %.lr.ph1569

.lr.ph1569:                                       ; preds = %822, %._crit_edge1565
  %823 = phi i32 [ %893, %._crit_edge1565 ], [ %821, %822 ]
  %824 = phi i32 [ %895, %._crit_edge1565 ], [ 1, %822 ]
  store i32 %824, ptr %30, align 4, !tbaa !5
  %825 = load i32, ptr %46, align 4, !tbaa !5
  %826 = sub nsw i32 %824, %825
  store i32 %826, ptr %36, align 4, !tbaa !5
  %.not13661562 = icmp slt i32 %825, 0
  br i1 %.not13661562, label %._crit_edge1565, label %.lr.ph1564

.lr.ph1564:                                       ; preds = %.lr.ph1569, %890
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %827 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %827, ptr %39, align 16, !tbaa !18
  %828 = load i32, ptr %34, align 4
  %829 = load i32, ptr %35, align 4
  %830 = call i32 @llvm.smin.i32(i32 %828, i32 %829)
  %831 = call i32 @llvm.smax.i32(i32 %828, i32 %829)
  %832 = load i32, ptr %36, align 4, !tbaa !5
  %833 = icmp slt i32 %832, 1
  br i1 %833, label %834, label %845

834:                                              ; preds = %.lr.ph1564
  %835 = load i32, ptr %37, align 4, !tbaa !5
  %836 = load i32, ptr %46, align 4, !tbaa !5
  %837 = load i32, ptr %1, align 4, !tbaa !5
  %838 = add nsw i32 %837, %832
  %839 = mul nsw i32 %838, %50
  %reass.sub = sub i32 %835, %832
  %840 = add i32 %reass.sub, 1
  %841 = add nsw i32 %840, %836
  %842 = add nsw i32 %841, %839
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %843
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %844, i8 0, i64 16, i1 false)
  br label %845

845:                                              ; preds = %834, %.lr.ph1564
  %846 = icmp sge i32 %828, %829
  %or.cond97 = and i1 %.not1228, %846
  %847 = load i32, ptr %46, align 4, !tbaa !5
  %848 = mul nsw i32 %831, %50
  %reass.sub1784 = sub i32 %830, %831
  %849 = add i32 %reass.sub1784, 1
  %850 = add i32 %849, %848
  %851 = add i32 %850, %847
  br i1 %or.cond97, label %852, label %862

852:                                              ; preds = %845
  %853 = call { double, double } @Cd(ptr noundef nonnull %39)
  %854 = extractvalue { double, double } %853, 0
  %855 = extractvalue { double, double } %853, 1
  %856 = fneg double %855
  %857 = call ptr @_pCd(ptr noundef nonnull %32)
  %858 = getelementptr inbounds i8, ptr %857, i64 8
  store double %854, ptr %857, align 8
  store double %856, ptr %858, align 8
  %859 = sext i32 %851 to i64
  %860 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %859
  %861 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %861, ptr %860, align 8, !tbaa !18
  %.pre1875 = load i32, ptr %36, align 4, !tbaa !5
  br label %865

862:                                              ; preds = %845
  %863 = sext i32 %851 to i64
  %864 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %863
  store <2 x double> %827, ptr %864, align 8, !tbaa !18
  br label %865

865:                                              ; preds = %862, %852
  %866 = phi i32 [ %832, %862 ], [ %.pre1875, %852 ]
  %867 = icmp slt i32 %866, 1
  %.not1369 = icmp eq i32 %828, %829
  %or.cond1441 = select i1 %867, i1 true, i1 %.not1369
  br i1 %or.cond1441, label %890, label %868

868:                                              ; preds = %865
  %869 = load i32, ptr %34, align 4, !tbaa !5
  %870 = icmp eq i32 %830, %869
  %or.cond99 = and i1 %.not1228, %870
  %871 = load i32, ptr %46, align 4, !tbaa !5
  %872 = mul nsw i32 %830, %50
  %reass.sub1786 = sub i32 %831, %830
  %873 = add i32 %reass.sub1786, 1
  %874 = add i32 %873, %872
  %875 = add i32 %874, %871
  br i1 %or.cond99, label %876, label %886

876:                                              ; preds = %868
  %877 = call { double, double } @Cd(ptr noundef nonnull %39)
  %878 = extractvalue { double, double } %877, 0
  %879 = extractvalue { double, double } %877, 1
  %880 = fneg double %879
  %881 = call ptr @_pCd(ptr noundef nonnull %32)
  %882 = getelementptr inbounds i8, ptr %881, i64 8
  store double %878, ptr %881, align 8
  store double %880, ptr %882, align 8
  %883 = sext i32 %875 to i64
  %884 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %883
  %885 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %885, ptr %884, align 8, !tbaa !18
  %.pre1876 = load i32, ptr %36, align 4, !tbaa !5
  br label %890

886:                                              ; preds = %868
  %887 = sext i32 %875 to i64
  %888 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %887
  %889 = load <2 x double>, ptr %39, align 16, !tbaa !18
  store <2 x double> %889, ptr %888, align 8, !tbaa !18
  br label %890

890:                                              ; preds = %865, %886, %876
  %891 = phi i32 [ %866, %865 ], [ %866, %886 ], [ %.pre1876, %876 ]
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr %36, align 4, !tbaa !5
  %.not1366.not = icmp slt i32 %891, %824
  br i1 %.not1366.not, label %.lr.ph1564, label %._crit_edge1565.loopexit, !llvm.loop !48

._crit_edge1565.loopexit:                         ; preds = %890
  %.pre1877 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1878 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1565

._crit_edge1565:                                  ; preds = %._crit_edge1565.loopexit, %.lr.ph1569
  %893 = phi i32 [ %.pre1878, %._crit_edge1565.loopexit ], [ %823, %.lr.ph1569 ]
  %894 = phi i32 [ %.pre1877, %._crit_edge1565.loopexit ], [ %824, %.lr.ph1569 ]
  %895 = add nsw i32 %894, 1
  store i32 %895, ptr %37, align 4, !tbaa !5
  %.not1364.not = icmp slt i32 %894, %893
  br i1 %.not1364.not, label %.lr.ph1569, label %.loopexit1478, !llvm.loop !49

896:                                              ; preds = %820
  br i1 %.not13601574, label %.thread1941, label %.lr.ph1577

.lr.ph1577:                                       ; preds = %896
  %.pre1879 = load i32, ptr %46, align 4, !tbaa !5
  br label %897

897:                                              ; preds = %.lr.ph1577, %._crit_edge1573
  %898 = phi i32 [ %821, %.lr.ph1577 ], [ %916, %._crit_edge1573 ]
  %899 = phi i32 [ %.pre1879, %.lr.ph1577 ], [ %918, %._crit_edge1573 ]
  %storemerge13591575 = phi i32 [ 1, %.lr.ph1577 ], [ %919, %._crit_edge1573 ]
  %900 = load i32, ptr %45, align 4, !tbaa !5
  %901 = add nsw i32 %900, %storemerge13591575
  store i32 %901, ptr %30, align 4, !tbaa !5
  %902 = sub nsw i32 %storemerge13591575, %899
  store i32 %902, ptr %36, align 4, !tbaa !5
  %.not13621570 = icmp sgt i32 %902, %901
  br i1 %.not13621570, label %._crit_edge1573, label %.lr.ph1572

.lr.ph1572:                                       ; preds = %897, %.lr.ph1572
  call void @zlatm3_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %903 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %903, ptr %39, align 16, !tbaa !18
  %904 = load i32, ptr %34, align 4, !tbaa !5
  %905 = load i32, ptr %35, align 4, !tbaa !5
  %906 = load i32, ptr %46, align 4, !tbaa !5
  %907 = mul nsw i32 %905, %50
  %908 = add i32 %904, 1
  %909 = sub i32 %908, %905
  %910 = add i32 %909, %906
  %911 = add nsw i32 %910, %907
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %912
  store <2 x double> %903, ptr %913, align 8, !tbaa !18
  %914 = load i32, ptr %36, align 4, !tbaa !5
  %915 = add nsw i32 %914, 1
  store i32 %915, ptr %36, align 4, !tbaa !5
  %.not1362.not = icmp slt i32 %914, %901
  br i1 %.not1362.not, label %.lr.ph1572, label %._crit_edge1573.loopexit, !llvm.loop !50

._crit_edge1573.loopexit:                         ; preds = %.lr.ph1572
  %.pre1880 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1881 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1573

._crit_edge1573:                                  ; preds = %._crit_edge1573.loopexit, %897
  %916 = phi i32 [ %.pre1881, %._crit_edge1573.loopexit ], [ %898, %897 ]
  %917 = phi i32 [ %.pre1880, %._crit_edge1573.loopexit ], [ %storemerge13591575, %897 ]
  %918 = phi i32 [ %906, %._crit_edge1573.loopexit ], [ %899, %897 ]
  %919 = add nsw i32 %917, 1
  store i32 %919, ptr %37, align 4, !tbaa !5
  %.not1360.not = icmp slt i32 %917, %916
  br i1 %.not1360.not, label %897, label %.loopexit1478, !llvm.loop !51

920:                                              ; preds = %461
  br i1 %.not1248, label %921, label %997

921:                                              ; preds = %920
  br i1 %.not1228, label %922, label %954

922:                                              ; preds = %921
  %923 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %923, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13551753 = icmp slt i32 %923, 1
  br i1 %.not13551753, label %.thread1449, label %.lr.ph1756

.lr.ph1756:                                       ; preds = %922, %._crit_edge1752
  %924 = phi i32 [ %951, %._crit_edge1752 ], [ %923, %922 ]
  %925 = phi i32 [ %953, %._crit_edge1752 ], [ 1, %922 ]
  store i32 %925, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13571748 = icmp slt i32 %925, 1
  br i1 %.not13571748, label %._crit_edge1752, label %.lr.ph1751

.lr.ph1751:                                       ; preds = %.lr.ph1756, %.lr.ph1751
  %storemerge13561749 = phi i32 [ %950, %.lr.ph1751 ], [ 1, %.lr.ph1756 ]
  %926 = load i32, ptr %37, align 4, !tbaa !5
  %927 = mul nsw i32 %926, %50
  %928 = add nsw i32 %927, %storemerge13561749
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %929 = sext i32 %928 to i64
  %930 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %929
  %931 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %931, ptr %930, align 8, !tbaa !18
  %932 = load i32, ptr %37, align 4, !tbaa !5
  %933 = load i32, ptr %36, align 4, !tbaa !5
  %934 = mul nsw i32 %933, %50
  %935 = add nsw i32 %934, %932
  %936 = mul nsw i32 %932, %50
  %937 = add nsw i32 %933, %936
  %938 = sext i32 %937 to i64
  %939 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %938
  %940 = call { double, double } @Cd(ptr noundef %939)
  %941 = extractvalue { double, double } %940, 0
  %942 = extractvalue { double, double } %940, 1
  %943 = fneg double %942
  %944 = call ptr @_pCd(ptr noundef nonnull %32)
  %945 = getelementptr inbounds i8, ptr %944, i64 8
  store double %941, ptr %944, align 8
  store double %943, ptr %945, align 8
  %946 = sext i32 %935 to i64
  %947 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %946
  %948 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %948, ptr %947, align 8, !tbaa !18
  %949 = load i32, ptr %36, align 4, !tbaa !5
  %950 = add nsw i32 %949, 1
  store i32 %950, ptr %36, align 4, !tbaa !5
  %.not1357.not = icmp slt i32 %949, %925
  br i1 %.not1357.not, label %.lr.ph1751, label %._crit_edge1752.loopexit, !llvm.loop !52

._crit_edge1752.loopexit:                         ; preds = %.lr.ph1751
  %.pre1921 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1922 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1752

._crit_edge1752:                                  ; preds = %._crit_edge1752.loopexit, %.lr.ph1756
  %951 = phi i32 [ %.pre1922, %._crit_edge1752.loopexit ], [ %924, %.lr.ph1756 ]
  %952 = phi i32 [ %.pre1921, %._crit_edge1752.loopexit ], [ %925, %.lr.ph1756 ]
  %953 = add nsw i32 %952, 1
  store i32 %953, ptr %37, align 4, !tbaa !5
  %.not1355.not = icmp slt i32 %952, %951
  br i1 %.not1355.not, label %.lr.ph1756, label %.loopexit1478, !llvm.loop !53

954:                                              ; preds = %921
  br i1 %82, label %955, label %971

955:                                              ; preds = %954
  %956 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %956, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13511745 = icmp slt i32 %956, 1
  br i1 %.not13511745, label %.thread1449, label %.lr.ph1747

.lr.ph1747:                                       ; preds = %955, %._crit_edge1744
  %957 = phi i32 [ %968, %._crit_edge1744 ], [ %956, %955 ]
  %958 = phi i32 [ %970, %._crit_edge1744 ], [ 1, %955 ]
  %959 = load i32, ptr %0, align 4, !tbaa !5
  store i32 %959, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13531740 = icmp slt i32 %959, 1
  br i1 %.not13531740, label %._crit_edge1744, label %.lr.ph1743

.lr.ph1743:                                       ; preds = %.lr.ph1747, %.lr.ph1743
  %storemerge13521741 = phi i32 [ %967, %.lr.ph1743 ], [ 1, %.lr.ph1747 ]
  %960 = load i32, ptr %37, align 4, !tbaa !5
  %961 = mul nsw i32 %960, %50
  %962 = add nsw i32 %961, %storemerge13521741
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %963
  %965 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %965, ptr %964, align 8, !tbaa !18
  %966 = load i32, ptr %36, align 4, !tbaa !5
  %967 = add nsw i32 %966, 1
  store i32 %967, ptr %36, align 4, !tbaa !5
  %.not1353.not = icmp slt i32 %966, %959
  br i1 %.not1353.not, label %.lr.ph1743, label %._crit_edge1744.loopexit, !llvm.loop !54

._crit_edge1744.loopexit:                         ; preds = %.lr.ph1743
  %.pre1919 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1920 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1744

._crit_edge1744:                                  ; preds = %._crit_edge1744.loopexit, %.lr.ph1747
  %968 = phi i32 [ %.pre1920, %._crit_edge1744.loopexit ], [ %957, %.lr.ph1747 ]
  %969 = phi i32 [ %.pre1919, %._crit_edge1744.loopexit ], [ %958, %.lr.ph1747 ]
  %970 = add nsw i32 %969, 1
  store i32 %970, ptr %37, align 4, !tbaa !5
  %.not1351.not = icmp slt i32 %969, %968
  br i1 %.not1351.not, label %.lr.ph1747, label %.loopexit1478, !llvm.loop !55

971:                                              ; preds = %954
  br i1 %80, label %972, label %.thread1449

972:                                              ; preds = %971
  %973 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %973, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13471736 = icmp slt i32 %973, 1
  br i1 %.not13471736, label %.thread1449, label %.lr.ph1739

.lr.ph1739:                                       ; preds = %972, %._crit_edge1735
  %974 = phi i32 [ %994, %._crit_edge1735 ], [ %973, %972 ]
  %975 = phi i32 [ %996, %._crit_edge1735 ], [ 1, %972 ]
  store i32 %975, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13491731 = icmp slt i32 %975, 1
  br i1 %.not13491731, label %._crit_edge1735, label %.lr.ph1734

.lr.ph1734:                                       ; preds = %.lr.ph1739, %.lr.ph1734
  %976 = phi i32 [ %982, %.lr.ph1734 ], [ %975, %.lr.ph1739 ]
  %storemerge13481732 = phi i32 [ %993, %.lr.ph1734 ], [ 1, %.lr.ph1739 ]
  %977 = mul nsw i32 %976, %50
  %978 = add nsw i32 %977, %storemerge13481732
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %979 = sext i32 %978 to i64
  %980 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %979
  %981 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %981, ptr %980, align 8, !tbaa !18
  %982 = load i32, ptr %37, align 4, !tbaa !5
  %983 = load i32, ptr %36, align 4, !tbaa !5
  %984 = mul nsw i32 %983, %50
  %985 = add nsw i32 %984, %982
  %986 = mul nsw i32 %982, %50
  %987 = add nsw i32 %983, %986
  %988 = sext i32 %987 to i64
  %989 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %988
  %990 = sext i32 %985 to i64
  %991 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %990
  %992 = load <2 x double>, ptr %989, align 8, !tbaa !18
  store <2 x double> %992, ptr %991, align 8, !tbaa !18
  %993 = add nsw i32 %983, 1
  store i32 %993, ptr %36, align 4, !tbaa !5
  %.not1349.not = icmp slt i32 %983, %975
  br i1 %.not1349.not, label %.lr.ph1734, label %._crit_edge1735.loopexit, !llvm.loop !56

._crit_edge1735.loopexit:                         ; preds = %.lr.ph1734
  %.pre1918 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1735

._crit_edge1735:                                  ; preds = %._crit_edge1735.loopexit, %.lr.ph1739
  %994 = phi i32 [ %.pre1918, %._crit_edge1735.loopexit ], [ %974, %.lr.ph1739 ]
  %995 = phi i32 [ %982, %._crit_edge1735.loopexit ], [ %975, %.lr.ph1739 ]
  %996 = add nsw i32 %995, 1
  store i32 %996, ptr %37, align 4, !tbaa !5
  %.not1347.not = icmp slt i32 %995, %994
  br i1 %.not1347.not, label %.lr.ph1739, label %.loopexit1478, !llvm.loop !57

997:                                              ; preds = %920
  br i1 %161, label %998, label %1020

998:                                              ; preds = %997
  %999 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %999, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13421727 = icmp slt i32 %999, 1
  br i1 %.not13421727, label %.loopexit1478.thread.thread1930, label %.lr.ph1730

.lr.ph1730:                                       ; preds = %998, %._crit_edge1726
  %1000 = phi i32 [ %1017, %._crit_edge1726 ], [ %999, %998 ]
  %1001 = phi i32 [ %1019, %._crit_edge1726 ], [ 1, %998 ]
  store i32 %1001, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13441722 = icmp slt i32 %1001, 1
  br i1 %.not13441722, label %._crit_edge1726, label %.lr.ph1725

.lr.ph1725:                                       ; preds = %.lr.ph1730, %1015
  %1002 = phi i32 [ %1009, %1015 ], [ %1001, %.lr.ph1730 ]
  %storemerge13431723 = phi i32 [ %1016, %1015 ], [ 1, %.lr.ph1730 ]
  %1003 = mul nsw i32 %1002, %50
  %1004 = add nsw i32 %1003, %storemerge13431723
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1005 = sext i32 %1004 to i64
  %1006 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1005
  %1007 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1007, ptr %1006, align 8, !tbaa !18
  %1008 = load i32, ptr %36, align 4, !tbaa !5
  %1009 = load i32, ptr %37, align 4, !tbaa !5
  %.not1345 = icmp eq i32 %1008, %1009
  br i1 %.not1345, label %1015, label %1010

1010:                                             ; preds = %.lr.ph1725
  %1011 = mul nsw i32 %1008, %50
  %1012 = add nsw i32 %1009, %1011
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1013
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1014, i8 0, i64 16, i1 false)
  br label %1015

1015:                                             ; preds = %.lr.ph1725, %1010
  %1016 = add nsw i32 %1008, 1
  store i32 %1016, ptr %36, align 4, !tbaa !5
  %.not1344.not = icmp slt i32 %1008, %1001
  br i1 %.not1344.not, label %.lr.ph1725, label %._crit_edge1726.loopexit, !llvm.loop !58

._crit_edge1726.loopexit:                         ; preds = %1015
  %.pre1917 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1726

._crit_edge1726:                                  ; preds = %._crit_edge1726.loopexit, %.lr.ph1730
  %1017 = phi i32 [ %.pre1917, %._crit_edge1726.loopexit ], [ %1000, %.lr.ph1730 ]
  %1018 = phi i32 [ %1009, %._crit_edge1726.loopexit ], [ %1001, %.lr.ph1730 ]
  %1019 = add nsw i32 %1018, 1
  store i32 %1019, ptr %37, align 4, !tbaa !5
  %.not1342.not = icmp slt i32 %1018, %1017
  br i1 %.not1342.not, label %.lr.ph1730, label %.loopexit1478, !llvm.loop !59

1020:                                             ; preds = %997
  br i1 %162, label %1021, label %1063

1021:                                             ; preds = %1020
  %1022 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %1022, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13371718 = icmp slt i32 %1022, 1
  br i1 %.not13371718, label %.loopexit1478.thread.thread.thread1932, label %.lr.ph1721

.lr.ph1721:                                       ; preds = %1021, %._crit_edge1717
  %1023 = phi i32 [ %1061, %._crit_edge1717 ], [ 1, %1021 ]
  store i32 %1023, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13391713 = icmp slt i32 %1023, 1
  br i1 %.not13391713, label %._crit_edge1717, label %.lr.ph1716

.lr.ph1716:                                       ; preds = %.lr.ph1721
  br i1 %.not1228, label %.lr.ph1716.split.us, label %.lr.ph1716.split

.lr.ph1716.split.us:                              ; preds = %.lr.ph1716, %1043
  %1024 = phi i32 [ %1037, %1043 ], [ %1023, %.lr.ph1716 ]
  %storemerge13381714.us = phi i32 [ %1044, %1043 ], [ 1, %.lr.ph1716 ]
  %1025 = mul nsw i32 %storemerge13381714.us, %50
  %1026 = add nsw i32 %1024, %1025
  call void @zlatm2_(ptr noundef nonnull %33, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1027 = call { double, double } @Cd(ptr noundef nonnull %33)
  %1028 = extractvalue { double, double } %1027, 0
  %1029 = extractvalue { double, double } %1027, 1
  %1030 = fneg double %1029
  %1031 = call ptr @_pCd(ptr noundef nonnull %32)
  %1032 = getelementptr inbounds i8, ptr %1031, i64 8
  store double %1028, ptr %1031, align 8
  store double %1030, ptr %1032, align 8
  %1033 = sext i32 %1026 to i64
  %1034 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1033
  %1035 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1035, ptr %1034, align 8, !tbaa !18
  %1036 = load i32, ptr %36, align 4, !tbaa !5
  %1037 = load i32, ptr %37, align 4, !tbaa !5
  %.not1340.us = icmp eq i32 %1036, %1037
  br i1 %.not1340.us, label %1043, label %1038

1038:                                             ; preds = %.lr.ph1716.split.us
  %1039 = mul nsw i32 %1037, %50
  %1040 = add nsw i32 %1039, %1036
  %1041 = sext i32 %1040 to i64
  %1042 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1041
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1042, i8 0, i64 16, i1 false)
  br label %1043

1043:                                             ; preds = %1038, %.lr.ph1716.split.us
  %1044 = add nsw i32 %1036, 1
  store i32 %1044, ptr %36, align 4, !tbaa !5
  %.not1339.us.not = icmp slt i32 %1036, %1023
  br i1 %.not1339.us.not, label %.lr.ph1716.split.us, label %._crit_edge1717, !llvm.loop !60

.lr.ph1716.split:                                 ; preds = %.lr.ph1716, %1058
  %1045 = phi i32 [ %1052, %1058 ], [ %1023, %.lr.ph1716 ]
  %storemerge13381714 = phi i32 [ %1059, %1058 ], [ 1, %.lr.ph1716 ]
  %1046 = mul nsw i32 %storemerge13381714, %50
  %1047 = add nsw i32 %1045, %1046
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1048 = sext i32 %1047 to i64
  %1049 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1048
  %1050 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1050, ptr %1049, align 8, !tbaa !18
  %1051 = load i32, ptr %36, align 4, !tbaa !5
  %1052 = load i32, ptr %37, align 4, !tbaa !5
  %.not1340 = icmp eq i32 %1051, %1052
  br i1 %.not1340, label %1058, label %1053

1053:                                             ; preds = %.lr.ph1716.split
  %1054 = mul nsw i32 %1052, %50
  %1055 = add nsw i32 %1054, %1051
  %1056 = sext i32 %1055 to i64
  %1057 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1056
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1057, i8 0, i64 16, i1 false)
  br label %1058

1058:                                             ; preds = %.lr.ph1716.split, %1053
  %1059 = add nsw i32 %1051, 1
  store i32 %1059, ptr %36, align 4, !tbaa !5
  %.not1339.not = icmp slt i32 %1051, %1023
  br i1 %.not1339.not, label %.lr.ph1716.split, label %._crit_edge1717, !llvm.loop !60

._crit_edge1717:                                  ; preds = %1058, %1043, %.lr.ph1721
  %1060 = phi i32 [ %1023, %.lr.ph1721 ], [ %1037, %1043 ], [ %1052, %1058 ]
  %1061 = add nsw i32 %1060, 1
  store i32 %1061, ptr %37, align 4, !tbaa !5
  %1062 = load i32, ptr %29, align 4, !tbaa !5
  %.not1337.not = icmp slt i32 %1060, %1062
  br i1 %.not1337.not, label %.lr.ph1721, label %.loopexit1478, !llvm.loop !61

1063:                                             ; preds = %1020
  br i1 %165, label %1064, label %1086

1064:                                             ; preds = %1063
  store i32 0, ptr %34, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %1065 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %1065, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13321709 = icmp slt i32 %1065, 1
  br i1 %.not13321709, label %.loopexit1478.thread.thread.thread.thread1934, label %.lr.ph1712

.lr.ph1712:                                       ; preds = %1064, %._crit_edge1708
  %1066 = phi i32 [ %1083, %._crit_edge1708 ], [ %1065, %1064 ]
  %1067 = phi i32 [ %1085, %._crit_edge1708 ], [ 1, %1064 ]
  store i32 %1067, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13341705 = icmp slt i32 %1067, 1
  br i1 %.not13341705, label %._crit_edge1708, label %.lr.ph1707

.lr.ph1707:                                       ; preds = %.lr.ph1712, %1073
  %1068 = load i32, ptr %34, align 4, !tbaa !5
  %1069 = add nsw i32 %1068, 1
  store i32 %1069, ptr %34, align 4, !tbaa !5
  %1070 = load i32, ptr %25, align 4, !tbaa !5
  %.not1335 = icmp slt i32 %1068, %1070
  %.pre1914 = load i32, ptr %35, align 4, !tbaa !5
  br i1 %.not1335, label %1073, label %1071

1071:                                             ; preds = %.lr.ph1707
  store i32 1, ptr %34, align 4, !tbaa !5
  %1072 = add nsw i32 %.pre1914, 1
  store i32 %1072, ptr %35, align 4, !tbaa !5
  br label %1073

1073:                                             ; preds = %1071, %.lr.ph1707
  %1074 = phi i32 [ %1072, %1071 ], [ %.pre1914, %.lr.ph1707 ]
  %1075 = phi i32 [ 1, %1071 ], [ %1069, %.lr.ph1707 ]
  %1076 = mul nsw i32 %1074, %50
  %1077 = add nsw i32 %1076, %1075
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1078 = sext i32 %1077 to i64
  %1079 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1078
  %1080 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1080, ptr %1079, align 8, !tbaa !18
  %1081 = load i32, ptr %36, align 4, !tbaa !5
  %1082 = add nsw i32 %1081, 1
  store i32 %1082, ptr %36, align 4, !tbaa !5
  %.not1334.not = icmp slt i32 %1081, %1067
  br i1 %.not1334.not, label %.lr.ph1707, label %._crit_edge1708.loopexit, !llvm.loop !62

._crit_edge1708.loopexit:                         ; preds = %1073
  %.pre1915 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1916 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1708

._crit_edge1708:                                  ; preds = %._crit_edge1708.loopexit, %.lr.ph1712
  %1083 = phi i32 [ %.pre1916, %._crit_edge1708.loopexit ], [ %1066, %.lr.ph1712 ]
  %1084 = phi i32 [ %.pre1915, %._crit_edge1708.loopexit ], [ %1067, %.lr.ph1712 ]
  %1085 = add nsw i32 %1084, 1
  store i32 %1085, ptr %37, align 4, !tbaa !5
  %.not1332.not = icmp slt i32 %1084, %1083
  br i1 %.not1332.not, label %.lr.ph1712, label %.loopexit1478, !llvm.loop !63

1086:                                             ; preds = %1063
  br i1 %166, label %1087, label %1162

1087:                                             ; preds = %1086
  br i1 %or.cond, label %1088, label %1140

1088:                                             ; preds = %1087
  %1089 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %1089, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13281701 = icmp slt i32 %1089, 1
  br i1 %.not13281701, label %.loopexit1478.thread.thread.thread.thread.thread1936, label %.lr.ph1704

.lr.ph1704:                                       ; preds = %1088, %._crit_edge1700
  %1090 = phi i32 [ %1137, %._crit_edge1700 ], [ %1089, %1088 ]
  %1091 = phi i32 [ %1139, %._crit_edge1700 ], [ 1, %1088 ]
  store i32 %1091, ptr %30, align 4, !tbaa !5
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13301696 = icmp slt i32 %1091, 1
  br i1 %.not13301696, label %._crit_edge1700, label %.lr.ph1699

.lr.ph1699:                                       ; preds = %.lr.ph1704, %1134
  %storemerge13291697 = phi i32 [ %1136, %1134 ], [ 1, %.lr.ph1704 ]
  %1092 = icmp eq i32 %storemerge13291697, 1
  br i1 %1092, label %1093, label %1095

1093:                                             ; preds = %.lr.ph1699
  %1094 = load i32, ptr %37, align 4, !tbaa !5
  br label %1108

1095:                                             ; preds = %.lr.ph1699
  %1096 = load i32, ptr %1, align 4, !tbaa !5
  %1097 = add nsw i32 %1096, 1
  %1098 = mul nsw i32 %1097, %1096
  %1099 = sdiv i32 %1098, 2
  %1100 = sub nsw i32 %1096, %storemerge13291697
  %1101 = add nsw i32 %1100, 1
  %1102 = add nsw i32 %1100, 2
  %1103 = mul nsw i32 %1101, %1102
  %.neg = sdiv i32 %1103, -2
  %1104 = load i32, ptr %37, align 4, !tbaa !5
  %reass.sub1795 = sub i32 %1104, %storemerge13291697
  %1105 = add i32 %reass.sub1795, 1
  %1106 = add i32 %1105, %1099
  %1107 = add i32 %1106, %.neg
  br label %1108

1108:                                             ; preds = %1095, %1093
  %.11142 = phi i32 [ %1094, %1093 ], [ %1107, %1095 ]
  %1109 = add nsw i32 %.11142, -1
  %1110 = load i32, ptr %25, align 4, !tbaa !5
  %1111 = sdiv i32 %1109, %1110
  %1112 = add nsw i32 %1111, 1
  store i32 %1112, ptr %35, align 4, !tbaa !5
  %1113 = mul nsw i32 %1111, %1110
  %1114 = sub nsw i32 %.11142, %1113
  store i32 %1114, ptr %34, align 4, !tbaa !5
  %1115 = mul nsw i32 %1112, %50
  %1116 = add nsw i32 %1114, %1115
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1117
  %1119 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1119, ptr %1118, align 8, !tbaa !18
  br i1 %.not1228, label %1120, label %1134

1120:                                             ; preds = %1108
  %1121 = load i32, ptr %34, align 4, !tbaa !5
  %1122 = load i32, ptr %35, align 4, !tbaa !5
  %1123 = mul nsw i32 %1122, %50
  %1124 = add nsw i32 %1123, %1121
  %1125 = sext i32 %1124 to i64
  %1126 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1125
  %1127 = call { double, double } @Cd(ptr noundef %1126)
  %1128 = extractvalue { double, double } %1127, 0
  %1129 = extractvalue { double, double } %1127, 1
  %1130 = fneg double %1129
  %1131 = call ptr @_pCd(ptr noundef nonnull %32)
  %1132 = getelementptr inbounds i8, ptr %1131, i64 8
  store double %1128, ptr %1131, align 8
  store double %1130, ptr %1132, align 8
  %1133 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1133, ptr %1126, align 8, !tbaa !18
  br label %1134

1134:                                             ; preds = %1108, %1120
  %1135 = load i32, ptr %36, align 4, !tbaa !5
  %1136 = add nsw i32 %1135, 1
  store i32 %1136, ptr %36, align 4, !tbaa !5
  %.not1330.not = icmp slt i32 %1135, %1091
  br i1 %.not1330.not, label %.lr.ph1699, label %._crit_edge1700.loopexit, !llvm.loop !64

._crit_edge1700.loopexit:                         ; preds = %1134
  %.pre1912 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1913 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1700

._crit_edge1700:                                  ; preds = %._crit_edge1700.loopexit, %.lr.ph1704
  %1137 = phi i32 [ %.pre1913, %._crit_edge1700.loopexit ], [ %1090, %.lr.ph1704 ]
  %1138 = phi i32 [ %.pre1912, %._crit_edge1700.loopexit ], [ %1091, %.lr.ph1704 ]
  %1139 = add nsw i32 %1138, 1
  store i32 %1139, ptr %37, align 4, !tbaa !5
  %.not1328.not = icmp slt i32 %1138, %1137
  br i1 %.not1328.not, label %.lr.ph1704, label %.loopexit1478, !llvm.loop !65

1140:                                             ; preds = %1087
  store i32 0, ptr %34, align 4, !tbaa !5
  store i32 1, ptr %35, align 4, !tbaa !5
  %1141 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %1141, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13231692 = icmp slt i32 %1141, 1
  br i1 %.not13231692, label %.loopexit1478.thread.thread.thread.thread.thread1936, label %.lr.ph1695

.lr.ph1695:                                       ; preds = %1140, %._crit_edge1691
  %1142 = phi i32 [ %1159, %._crit_edge1691 ], [ %1141, %1140 ]
  %storemerge13221693 = phi i32 [ %1161, %._crit_edge1691 ], [ 1, %1140 ]
  %1143 = load i32, ptr %0, align 4, !tbaa !5
  store i32 %1143, ptr %30, align 4, !tbaa !5
  store i32 %storemerge13221693, ptr %36, align 4, !tbaa !5
  %.not13251688 = icmp sgt i32 %storemerge13221693, %1143
  br i1 %.not13251688, label %._crit_edge1691, label %.lr.ph1690

.lr.ph1690:                                       ; preds = %.lr.ph1695, %1149
  %1144 = load i32, ptr %34, align 4, !tbaa !5
  %1145 = add nsw i32 %1144, 1
  store i32 %1145, ptr %34, align 4, !tbaa !5
  %1146 = load i32, ptr %25, align 4, !tbaa !5
  %.not1326 = icmp slt i32 %1144, %1146
  %.pre1909 = load i32, ptr %35, align 4, !tbaa !5
  br i1 %.not1326, label %1149, label %1147

1147:                                             ; preds = %.lr.ph1690
  store i32 1, ptr %34, align 4, !tbaa !5
  %1148 = add nsw i32 %.pre1909, 1
  store i32 %1148, ptr %35, align 4, !tbaa !5
  br label %1149

1149:                                             ; preds = %1147, %.lr.ph1690
  %1150 = phi i32 [ %1148, %1147 ], [ %.pre1909, %.lr.ph1690 ]
  %1151 = phi i32 [ 1, %1147 ], [ %1145, %.lr.ph1690 ]
  %1152 = mul nsw i32 %1150, %50
  %1153 = add nsw i32 %1152, %1151
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1154 = sext i32 %1153 to i64
  %1155 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1154
  %1156 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1156, ptr %1155, align 8, !tbaa !18
  %1157 = load i32, ptr %36, align 4, !tbaa !5
  %1158 = add nsw i32 %1157, 1
  store i32 %1158, ptr %36, align 4, !tbaa !5
  %.not1325.not = icmp slt i32 %1157, %1143
  br i1 %.not1325.not, label %.lr.ph1690, label %._crit_edge1691.loopexit, !llvm.loop !66

._crit_edge1691.loopexit:                         ; preds = %1149
  %.pre1910 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1911 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1691

._crit_edge1691:                                  ; preds = %._crit_edge1691.loopexit, %.lr.ph1695
  %1159 = phi i32 [ %.pre1911, %._crit_edge1691.loopexit ], [ %1142, %.lr.ph1695 ]
  %1160 = phi i32 [ %.pre1910, %._crit_edge1691.loopexit ], [ %storemerge13221693, %.lr.ph1695 ]
  %1161 = add nsw i32 %1160, 1
  store i32 %1161, ptr %37, align 4, !tbaa !5
  %.not1323.not = icmp slt i32 %1160, %1159
  br i1 %.not1323.not, label %.lr.ph1695, label %.loopexit1478, !llvm.loop !67

1162:                                             ; preds = %1086
  br i1 %163, label %1163, label %1221

1163:                                             ; preds = %1162
  %1164 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %1164, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13191684 = icmp slt i32 %1164, 1
  br i1 %.not13191684, label %.loopexit1478.thread.thread.thread.thread.thread.thread1938, label %.lr.ph1687

.lr.ph1687:                                       ; preds = %1163, %._crit_edge1683
  %1165 = phi i32 [ %1219, %._crit_edge1683 ], [ 1, %1163 ]
  store i32 %1165, ptr %30, align 4, !tbaa !5
  %1166 = load i32, ptr %46, align 4, !tbaa !5
  %1167 = sub nsw i32 %1165, %1166
  store i32 %1167, ptr %36, align 4, !tbaa !5
  %.not13211678 = icmp slt i32 %1166, 0
  br i1 %.not13211678, label %._crit_edge1683, label %.lr.ph1682

.lr.ph1682:                                       ; preds = %.lr.ph1687
  %storemerge1320.neg1677 = sub i32 0, %1167
  br i1 %.not1228, label %.lr.ph1682.split.us, label %.lr.ph1682.split

.lr.ph1682.split.us:                              ; preds = %.lr.ph1682, %1193
  %storemerge1320.neg1680.us = phi i32 [ %storemerge1320.neg.us, %1193 ], [ %storemerge1320.neg1677, %.lr.ph1682 ]
  %storemerge13201679.us = phi i32 [ %1195, %1193 ], [ %1167, %.lr.ph1682 ]
  %1168 = icmp slt i32 %storemerge13201679.us, 1
  %1169 = load i32, ptr %37, align 4, !tbaa !5
  br i1 %1168, label %1184, label %1170

1170:                                             ; preds = %.lr.ph1682.split.us
  %1171 = mul nsw i32 %storemerge13201679.us, %50
  %1172 = add i32 %storemerge1320.neg1680.us, 1
  %1173 = add i32 %1172, %1171
  %1174 = add i32 %1173, %1169
  call void @zlatm2_(ptr noundef nonnull %33, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1175 = call { double, double } @Cd(ptr noundef nonnull %33)
  %1176 = extractvalue { double, double } %1175, 0
  %1177 = extractvalue { double, double } %1175, 1
  %1178 = fneg double %1177
  %1179 = call ptr @_pCd(ptr noundef nonnull %32)
  %1180 = getelementptr inbounds i8, ptr %1179, i64 8
  store double %1176, ptr %1179, align 8
  store double %1178, ptr %1180, align 8
  %1181 = sext i32 %1174 to i64
  %1182 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1181
  %1183 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1183, ptr %1182, align 8, !tbaa !18
  %.pre1908 = load i32, ptr %36, align 4, !tbaa !5
  br label %1193

1184:                                             ; preds = %.lr.ph1682.split.us
  %1185 = load i32, ptr %1, align 4, !tbaa !5
  %1186 = add nsw i32 %1185, %storemerge13201679.us
  %1187 = mul nsw i32 %1186, %50
  %1188 = add i32 %storemerge1320.neg1680.us, 1
  %1189 = add i32 %1188, %1169
  %1190 = add nsw i32 %1189, %1187
  %1191 = sext i32 %1190 to i64
  %1192 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1191
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1192, i8 0, i64 16, i1 false)
  br label %1193

1193:                                             ; preds = %1184, %1170
  %1194 = phi i32 [ %storemerge13201679.us, %1184 ], [ %.pre1908, %1170 ]
  %1195 = add nsw i32 %1194, 1
  %storemerge1320.neg.us = xor i32 %1194, -1
  store i32 %1195, ptr %36, align 4, !tbaa !5
  %.not1321.us.not = icmp slt i32 %1194, %1165
  br i1 %.not1321.us.not, label %.lr.ph1682.split.us, label %._crit_edge1683, !llvm.loop !68

.lr.ph1682.split:                                 ; preds = %.lr.ph1682, %1215
  %storemerge1320.neg1680 = phi i32 [ %storemerge1320.neg, %1215 ], [ %storemerge1320.neg1677, %.lr.ph1682 ]
  %storemerge13201679 = phi i32 [ %1217, %1215 ], [ %1167, %.lr.ph1682 ]
  %1196 = icmp slt i32 %storemerge13201679, 1
  %1197 = load i32, ptr %37, align 4, !tbaa !5
  br i1 %1196, label %1198, label %1207

1198:                                             ; preds = %.lr.ph1682.split
  %1199 = load i32, ptr %1, align 4, !tbaa !5
  %1200 = add nsw i32 %1199, %storemerge13201679
  %1201 = mul nsw i32 %1200, %50
  %1202 = add i32 %storemerge1320.neg1680, 1
  %1203 = add i32 %1202, %1197
  %1204 = add nsw i32 %1203, %1201
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1205
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1206, i8 0, i64 16, i1 false)
  br label %1215

1207:                                             ; preds = %.lr.ph1682.split
  %1208 = mul nsw i32 %storemerge13201679, %50
  %1209 = add i32 %storemerge1320.neg1680, 1
  %1210 = add i32 %1209, %1208
  %1211 = add i32 %1210, %1197
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1212
  %1214 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1214, ptr %1213, align 8, !tbaa !18
  %.pre1907 = load i32, ptr %36, align 4, !tbaa !5
  br label %1215

1215:                                             ; preds = %1198, %1207
  %1216 = phi i32 [ %storemerge13201679, %1198 ], [ %.pre1907, %1207 ]
  %1217 = add nsw i32 %1216, 1
  %storemerge1320.neg = xor i32 %1216, -1
  store i32 %1217, ptr %36, align 4, !tbaa !5
  %.not1321.not = icmp slt i32 %1216, %1165
  br i1 %.not1321.not, label %.lr.ph1682.split, label %._crit_edge1683, !llvm.loop !68

._crit_edge1683:                                  ; preds = %1215, %1193, %.lr.ph1687
  %1218 = load i32, ptr %37, align 4, !tbaa !5
  %1219 = add nsw i32 %1218, 1
  store i32 %1219, ptr %37, align 4, !tbaa !5
  %1220 = load i32, ptr %29, align 4, !tbaa !5
  %.not1319.not = icmp slt i32 %1218, %1220
  br i1 %.not1319.not, label %.lr.ph1687, label %.loopexit1478, !llvm.loop !69

1221:                                             ; preds = %1162
  br i1 %164, label %1222, label %1243

1222:                                             ; preds = %1221
  %1223 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %1223, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13151673 = icmp slt i32 %1223, 1
  br i1 %.not13151673, label %.loopexit1478.thread.thread.thread.thread.thread.thread.thread1940, label %.lr.ph1676

.lr.ph1676:                                       ; preds = %1222, %._crit_edge1672
  %1224 = phi i32 [ %1240, %._crit_edge1672 ], [ %1223, %1222 ]
  %1225 = phi i32 [ %1242, %._crit_edge1672 ], [ 1, %1222 ]
  store i32 %1225, ptr %30, align 4, !tbaa !5
  %1226 = load i32, ptr %46, align 4, !tbaa !5
  %1227 = sub nsw i32 %1225, %1226
  store i32 %1227, ptr %36, align 4, !tbaa !5
  %.not13171668 = icmp slt i32 %1226, 0
  br i1 %.not13171668, label %._crit_edge1672, label %.lr.ph1671

.lr.ph1671:                                       ; preds = %.lr.ph1676, %.lr.ph1671
  %storemerge13161669 = phi i32 [ %1239, %.lr.ph1671 ], [ %1227, %.lr.ph1676 ]
  %1228 = load i32, ptr %37, align 4, !tbaa !5
  %1229 = load i32, ptr %46, align 4, !tbaa !5
  %1230 = mul nsw i32 %1228, %50
  %1231 = add i32 %storemerge13161669, 1
  %1232 = sub i32 %1231, %1228
  %1233 = add i32 %1232, %1229
  %1234 = add nsw i32 %1233, %1230
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1235
  %1237 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1237, ptr %1236, align 8, !tbaa !18
  %1238 = load i32, ptr %36, align 4, !tbaa !5
  %1239 = add nsw i32 %1238, 1
  store i32 %1239, ptr %36, align 4, !tbaa !5
  %.not1317.not = icmp slt i32 %1238, %1225
  br i1 %.not1317.not, label %.lr.ph1671, label %._crit_edge1672.loopexit, !llvm.loop !70

._crit_edge1672.loopexit:                         ; preds = %.lr.ph1671
  %.pre1905 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1906 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1672

._crit_edge1672:                                  ; preds = %._crit_edge1672.loopexit, %.lr.ph1676
  %1240 = phi i32 [ %.pre1906, %._crit_edge1672.loopexit ], [ %1224, %.lr.ph1676 ]
  %1241 = phi i32 [ %.pre1905, %._crit_edge1672.loopexit ], [ %1225, %.lr.ph1676 ]
  %1242 = add nsw i32 %1241, 1
  store i32 %1242, ptr %37, align 4, !tbaa !5
  %.not1315.not = icmp slt i32 %1241, %1240
  br i1 %.not1315.not, label %.lr.ph1676, label %.loopexit1478, !llvm.loop !71

1243:                                             ; preds = %1221
  br i1 %167, label %1244, label %.thread1458

1244:                                             ; preds = %1243
  %1245 = load i32, ptr %1, align 4, !tbaa !5
  store i32 %1245, ptr %29, align 4, !tbaa !5
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not13061664 = icmp slt i32 %1245, 1
  br i1 %82, label %1313, label %1246

1246:                                             ; preds = %1244
  br i1 %.not13061664, label %.thread1941, label %.lr.ph1658

.lr.ph1658:                                       ; preds = %1246
  %1247 = add i32 %50, -1
  %1248 = add i32 %50, -1
  br label %1249

1249:                                             ; preds = %.lr.ph1658, %._crit_edge1654
  %1250 = phi i32 [ %1245, %.lr.ph1658 ], [ %1310, %._crit_edge1654 ]
  %1251 = phi i32 [ 1, %.lr.ph1658 ], [ %1312, %._crit_edge1654 ]
  store i32 %1251, ptr %30, align 4, !tbaa !5
  %1252 = load i32, ptr %46, align 4, !tbaa !5
  %1253 = sub nsw i32 %1251, %1252
  store i32 %1253, ptr %36, align 4, !tbaa !5
  %.not13121650 = icmp slt i32 %1252, 0
  br i1 %.not13121650, label %._crit_edge1654, label %.lr.ph1653

.lr.ph1653:                                       ; preds = %1249, %1307
  %storemerge13111651 = phi i32 [ %1309, %1307 ], [ %1253, %1249 ]
  %1254 = load i32, ptr %37, align 4, !tbaa !5
  %1255 = load i32, ptr %46, align 4, !tbaa !5
  %1256 = mul nsw i32 %1254, %50
  %1257 = add i32 %storemerge13111651, 1
  %1258 = sub i32 %1257, %1254
  %1259 = add i32 %1258, %1255
  %1260 = add nsw i32 %1259, %1256
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1261
  %1263 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1263, ptr %1262, align 8, !tbaa !18
  %1264 = load i32, ptr %36, align 4, !tbaa !5
  %1265 = icmp slt i32 %1264, 1
  %1266 = load i32, ptr %37, align 4, !tbaa !5
  br i1 %1265, label %1267, label %1277

1267:                                             ; preds = %.lr.ph1653
  %1268 = load i32, ptr %46, align 4, !tbaa !5
  %1269 = load i32, ptr %1, align 4, !tbaa !5
  %1270 = add nsw i32 %1269, %1264
  %1271 = mul nsw i32 %1270, %50
  %reass.sub1794 = sub i32 %1266, %1264
  %1272 = add i32 %reass.sub1794, 1
  %1273 = add nsw i32 %1272, %1268
  %1274 = add nsw i32 %1273, %1271
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1275
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1276, i8 0, i64 16, i1 false)
  br label %1307

1277:                                             ; preds = %.lr.ph1653
  %.not1313 = icmp eq i32 %1264, %1266
  br i1 %.not1313, label %1307, label %1278

1278:                                             ; preds = %1277
  %1279 = load i32, ptr %46, align 4, !tbaa !5
  %1280 = mul nsw i32 %1266, %50
  %1281 = add nuw i32 %1264, 1
  %1282 = sub i32 %1281, %1266
  %1283 = add i32 %1282, %1280
  %1284 = add i32 %1283, %1279
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1285
  br i1 %.not1228, label %1287, label %1300

1287:                                             ; preds = %1278
  %reass.sub1793 = mul i32 %1264, %1248
  %1288 = add i32 %reass.sub1793, 1
  %1289 = add i32 %1288, %1266
  %1290 = add i32 %1289, %1279
  %1291 = call { double, double } @Cd(ptr noundef %1286)
  %1292 = extractvalue { double, double } %1291, 0
  %1293 = extractvalue { double, double } %1291, 1
  %1294 = fneg double %1293
  %1295 = call ptr @_pCd(ptr noundef nonnull %32)
  %1296 = getelementptr inbounds i8, ptr %1295, i64 8
  store double %1292, ptr %1295, align 8
  store double %1294, ptr %1296, align 8
  %1297 = sext i32 %1290 to i64
  %1298 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1297
  %1299 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1299, ptr %1298, align 8, !tbaa !18
  %.pre1900 = load i32, ptr %36, align 4, !tbaa !5
  br label %1307

1300:                                             ; preds = %1278
  %reass.sub1792 = mul i32 %1264, %1247
  %1301 = add i32 %reass.sub1792, 1
  %1302 = add i32 %1301, %1266
  %1303 = add i32 %1302, %1279
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1304
  %1306 = load <2 x double>, ptr %1286, align 8, !tbaa !18
  store <2 x double> %1306, ptr %1305, align 8, !tbaa !18
  br label %1307

1307:                                             ; preds = %1267, %1277, %1300, %1287
  %1308 = phi i32 [ %1264, %1267 ], [ %1264, %1277 ], [ %1264, %1300 ], [ %.pre1900, %1287 ]
  %1309 = add nsw i32 %1308, 1
  store i32 %1309, ptr %36, align 4, !tbaa !5
  %.not1312.not = icmp slt i32 %1308, %1251
  br i1 %.not1312.not, label %.lr.ph1653, label %._crit_edge1654.loopexit, !llvm.loop !72

._crit_edge1654.loopexit:                         ; preds = %1307
  %.pre1901 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1902 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1654

._crit_edge1654:                                  ; preds = %._crit_edge1654.loopexit, %1249
  %1310 = phi i32 [ %.pre1902, %._crit_edge1654.loopexit ], [ %1250, %1249 ]
  %1311 = phi i32 [ %.pre1901, %._crit_edge1654.loopexit ], [ %1251, %1249 ]
  %1312 = add nsw i32 %1311, 1
  store i32 %1312, ptr %37, align 4, !tbaa !5
  %.not1310.not = icmp slt i32 %1311, %1310
  br i1 %.not1310.not, label %1249, label %.loopexit1478, !llvm.loop !73

1313:                                             ; preds = %1244
  br i1 %.not13061664, label %.thread1941, label %.lr.ph1667

.lr.ph1667:                                       ; preds = %1313, %._crit_edge1663
  %1314 = phi i32 [ %1331, %._crit_edge1663 ], [ %1245, %1313 ]
  %storemerge13051665 = phi i32 [ %1333, %._crit_edge1663 ], [ 1, %1313 ]
  %1315 = load i32, ptr %45, align 4, !tbaa !5
  %1316 = add nsw i32 %1315, %storemerge13051665
  store i32 %1316, ptr %30, align 4, !tbaa !5
  %1317 = load i32, ptr %46, align 4, !tbaa !5
  %1318 = sub nsw i32 %storemerge13051665, %1317
  store i32 %1318, ptr %36, align 4, !tbaa !5
  %.not13081659 = icmp sgt i32 %1318, %1316
  br i1 %.not13081659, label %._crit_edge1663, label %.lr.ph1662

.lr.ph1662:                                       ; preds = %.lr.ph1667, %.lr.ph1662
  %storemerge13071660 = phi i32 [ %1330, %.lr.ph1662 ], [ %1318, %.lr.ph1667 ]
  %1319 = load i32, ptr %37, align 4, !tbaa !5
  %1320 = load i32, ptr %46, align 4, !tbaa !5
  %1321 = mul nsw i32 %1319, %50
  %1322 = add i32 %storemerge13071660, 1
  %1323 = sub i32 %1322, %1319
  %1324 = add i32 %1323, %1320
  %1325 = add nsw i32 %1324, %1321
  call void @zlatm2_(ptr noundef nonnull %32, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %40, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %42, ptr noundef %11, ptr noundef %14, ptr noundef nonnull %44, ptr noundef %26, ptr noundef nonnull %21) #7
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds %struct.doublecomplex, ptr %52, i64 %1326
  %1328 = load <2 x double>, ptr %32, align 16, !tbaa !18
  store <2 x double> %1328, ptr %1327, align 8, !tbaa !18
  %1329 = load i32, ptr %36, align 4, !tbaa !5
  %1330 = add nsw i32 %1329, 1
  store i32 %1330, ptr %36, align 4, !tbaa !5
  %.not1308.not = icmp slt i32 %1329, %1316
  br i1 %.not1308.not, label %.lr.ph1662, label %._crit_edge1663.loopexit, !llvm.loop !74

._crit_edge1663.loopexit:                         ; preds = %.lr.ph1662
  %.pre1903 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1904 = load i32, ptr %29, align 4, !tbaa !5
  br label %._crit_edge1663

._crit_edge1663:                                  ; preds = %._crit_edge1663.loopexit, %.lr.ph1667
  %1331 = phi i32 [ %.pre1904, %._crit_edge1663.loopexit ], [ %1314, %.lr.ph1667 ]
  %1332 = phi i32 [ %.pre1903, %._crit_edge1663.loopexit ], [ %storemerge13051665, %.lr.ph1667 ]
  %1333 = add nsw i32 %1332, 1
  store i32 %1333, ptr %37, align 4, !tbaa !5
  %.not1306.not = icmp slt i32 %1332, %1331
  br i1 %.not1306.not, label %.lr.ph1667, label %.loopexit1478, !llvm.loop !75

.loopexit1478:                                    ; preds = %._crit_edge1565, %._crit_edge1573, %._crit_edge1581, %._crit_edge1590, %._crit_edge1598, %._crit_edge1606, %._crit_edge1614, %._crit_edge1622, %._crit_edge1630, %._crit_edge1638, %._crit_edge1645, %._crit_edge1654, %._crit_edge1663, %._crit_edge1672, %._crit_edge1683, %._crit_edge1691, %._crit_edge1700, %._crit_edge1708, %._crit_edge1717, %._crit_edge1726, %._crit_edge1735, %._crit_edge1744, %._crit_edge1752
  br i1 %.not1248, label %.thread1449, label %.loopexit1478.thread

.thread1449:                                      ; preds = %922, %955, %972, %464, %492, %510, %509, %971, %.loopexit1478
  %1334 = call double @zlange_(ptr noundef nonnull @.str.16, ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %38) #7
  br label %.thread1458

.loopexit1478.thread:                             ; preds = %.loopexit1478
  br i1 %161, label %.loopexit1478.thread.thread1930, label %.loopexit1478.thread.thread

.loopexit1478.thread.thread1930:                  ; preds = %531, %998, %.loopexit1478.thread
  %1335 = call double @zlansy_(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str, ptr noundef nonnull %1, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %38) #7
  br label %.thread1458

.loopexit1478.thread.thread:                      ; preds = %.loopexit1478.thread
  br i1 %162, label %.loopexit1478.thread.thread.thread1932, label %.loopexit1478.thread.thread.thread

.loopexit1478.thread.thread.thread1932:           ; preds = %1021, %576, %.loopexit1478.thread.thread
  %1336 = call double @zlansy_(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.8, ptr noundef nonnull %1, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %38) #7
  br label %.thread1458

.loopexit1478.thread.thread.thread:               ; preds = %.loopexit1478.thread.thread
  br i1 %165, label %.loopexit1478.thread.thread.thread.thread1934, label %.loopexit1478.thread.thread.thread.thread

.loopexit1478.thread.thread.thread.thread1934:    ; preds = %621, %1064, %.loopexit1478.thread.thread.thread
  %1337 = call double @zlansp_(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str, ptr noundef nonnull %1, ptr noundef %24, ptr noundef nonnull %38) #7
  br label %.thread1458

.loopexit1478.thread.thread.thread.thread:        ; preds = %.loopexit1478.thread.thread.thread
  br i1 %166, label %.loopexit1478.thread.thread.thread.thread.thread1936, label %.loopexit1478.thread.thread.thread.thread.thread

.loopexit1478.thread.thread.thread.thread.thread1936: ; preds = %1088, %1140, %670, %.loopexit1478.thread.thread.thread.thread
  %1338 = call double @zlansp_(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.8, ptr noundef nonnull %1, ptr noundef %24, ptr noundef nonnull %38) #7
  br label %.thread1458

.loopexit1478.thread.thread.thread.thread.thread: ; preds = %.loopexit1478.thread.thread.thread.thread
  br i1 %163, label %.loopexit1478.thread.thread.thread.thread.thread.thread1938, label %.loopexit1478.thread.thread.thread.thread.thread.thread

.loopexit1478.thread.thread.thread.thread.thread.thread1938: ; preds = %730, %1163, %.loopexit1478.thread.thread.thread.thread.thread
  %1339 = call double @zlansb_(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.8, ptr noundef nonnull %1, ptr noundef nonnull %45, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %38) #7
  br label %.thread1458

.loopexit1478.thread.thread.thread.thread.thread.thread: ; preds = %.loopexit1478.thread.thread.thread.thread.thread
  br i1 %164, label %.loopexit1478.thread.thread.thread.thread.thread.thread.thread1940, label %1341

.loopexit1478.thread.thread.thread.thread.thread.thread.thread1940: ; preds = %1222, %776, %.loopexit1478.thread.thread.thread.thread.thread.thread
  %1340 = call double @zlansb_(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str, ptr noundef nonnull %1, ptr noundef nonnull %46, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %38) #7
  br label %.thread1458

1341:                                             ; preds = %.loopexit1478.thread.thread.thread.thread.thread.thread
  br i1 %167, label %.thread1941, label %.thread1458

.thread1941:                                      ; preds = %822, %896, %1246, %1313, %1341
  %1342 = call double @zlangb_(ptr noundef nonnull @.str.16, ptr noundef nonnull %1, ptr noundef nonnull %45, ptr noundef nonnull %46, ptr noundef %24, ptr noundef nonnull %25, ptr noundef nonnull %38) #7
  br label %.thread1458

.thread1458:                                      ; preds = %1243, %819, %.loopexit1478.thread.thread1930, %.loopexit1478.thread.thread.thread.thread1934, %.loopexit1478.thread.thread.thread.thread.thread.thread1938, %1341, %.thread1941, %.loopexit1478.thread.thread.thread.thread.thread.thread.thread1940, %.loopexit1478.thread.thread.thread.thread.thread1936, %.loopexit1478.thread.thread.thread1932, %.thread1449
  %.01136 = phi double [ %1334, %.thread1449 ], [ %1335, %.loopexit1478.thread.thread1930 ], [ %1336, %.loopexit1478.thread.thread.thread1932 ], [ %1337, %.loopexit1478.thread.thread.thread.thread1934 ], [ %1338, %.loopexit1478.thread.thread.thread.thread.thread1936 ], [ %1339, %.loopexit1478.thread.thread.thread.thread.thread.thread1938 ], [ %1340, %.loopexit1478.thread.thread.thread.thread.thread.thread.thread1940 ], [ %1342, %.thread1941 ], [ undef, %1341 ], [ undef, %819 ], [ undef, %1243 ]
  %1343 = load double, ptr %22, align 8, !tbaa !18
  %1344 = fcmp ult double %1343, 0.000000e+00
  br i1 %1344, label %.loopexit, label %1345

1345:                                             ; preds = %.thread1458
  %1346 = fcmp ogt double %1343, 0.000000e+00
  %1347 = fcmp oeq double %.01136, 0.000000e+00
  %or.cond103 = select i1 %1346, i1 %1347, i1 false
  br i1 %or.cond103, label %1348, label %1349

1348:                                             ; preds = %1345
  store i32 5, ptr %27, align 4, !tbaa !5
  br label %.loopexit

1349:                                             ; preds = %1345
  %1350 = fcmp ogt double %1343, 1.000000e+00
  %1351 = fcmp olt double %.01136, 1.000000e+00
  %or.cond105 = select i1 %1350, i1 %1351, i1 false
  br i1 %or.cond105, label %1355, label %1352

1352:                                             ; preds = %1349
  %1353 = fcmp olt double %1343, 1.000000e+00
  %1354 = fcmp ogt double %.01136, 1.000000e+00
  %or.cond107 = select i1 %1353, i1 %1354, i1 false
  br i1 %or.cond107, label %1355, label %1397

1355:                                             ; preds = %1352, %1349
  %1356 = load i32, ptr %1, align 4, !tbaa !5
  br i1 %168, label %1357, label %1368

1357:                                             ; preds = %1355
  store i32 %1356, ptr %29, align 4, !tbaa !5
  %invariant.gep1775 = getelementptr i8, ptr %52, i64 16
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not14231779 = icmp slt i32 %1356, 1
  br i1 %.not14231779, label %.loopexit, label %.lr.ph1782

.lr.ph1782:                                       ; preds = %1357
  %1358 = fdiv double 1.000000e+00, %.01136
  br label %1359

1359:                                             ; preds = %.lr.ph1782, %1359
  %storemerge14221780 = phi i32 [ 1, %.lr.ph1782 ], [ %1366, %1359 ]
  store double %1358, ptr %31, align 8, !tbaa !18
  %1360 = mul nsw i32 %storemerge14221780, %50
  %1361 = sext i32 %1360 to i64
  %gep1776 = getelementptr %struct.doublecomplex, ptr %invariant.gep1775, i64 %1361
  call void @zdscal_(ptr noundef nonnull %0, ptr noundef nonnull %31, ptr noundef %gep1776, ptr noundef nonnull @c__1) #7
  %1362 = load i32, ptr %37, align 4, !tbaa !5
  %1363 = mul nsw i32 %1362, %50
  %1364 = sext i32 %1363 to i64
  %gep1778 = getelementptr %struct.doublecomplex, ptr %invariant.gep1775, i64 %1364
  call void @zdscal_(ptr noundef nonnull %0, ptr noundef nonnull %22, ptr noundef %gep1778, ptr noundef nonnull @c__1) #7
  %1365 = load i32, ptr %37, align 4, !tbaa !5
  %1366 = add nsw i32 %1365, 1
  store i32 %1366, ptr %37, align 4, !tbaa !5
  %1367 = load i32, ptr %29, align 4, !tbaa !5
  %.not1423.not = icmp slt i32 %1365, %1367
  br i1 %.not1423.not, label %1359, label %.loopexit, !llvm.loop !76

1368:                                             ; preds = %1355
  br i1 %or.cond71, label %1369, label %1378

1369:                                             ; preds = %1368
  %1370 = add nsw i32 %1356, 1
  %1371 = mul nsw i32 %1370, %1356
  %1372 = sdiv i32 %1371, 2
  store i32 %1372, ptr %29, align 4, !tbaa !5
  %1373 = fdiv double 1.000000e+00, %.01136
  store double %1373, ptr %31, align 8, !tbaa !18
  call void @zdscal_(ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef %24, ptr noundef nonnull @c__1) #7
  %1374 = load i32, ptr %1, align 4, !tbaa !5
  %1375 = add nsw i32 %1374, 1
  %1376 = mul nsw i32 %1375, %1374
  %1377 = sdiv i32 %1376, 2
  store i32 %1377, ptr %29, align 4, !tbaa !5
  call void @zdscal_(ptr noundef nonnull %29, ptr noundef nonnull %22, ptr noundef %24, ptr noundef nonnull @c__1) #7
  br label %.loopexit

1378:                                             ; preds = %1368
  store i32 %1356, ptr %29, align 4, !tbaa !5
  %invariant.gep1767 = getelementptr i8, ptr %52, i64 16
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not14211771 = icmp slt i32 %1356, 1
  br i1 %.not14211771, label %.loopexit, label %.lr.ph1774

.lr.ph1774:                                       ; preds = %1378
  %1379 = fdiv double 1.000000e+00, %.01136
  br label %1380

1380:                                             ; preds = %.lr.ph1774, %1380
  %storemerge14201772 = phi i32 [ 1, %.lr.ph1774 ], [ %1395, %1380 ]
  %1381 = load i32, ptr %45, align 4, !tbaa !5
  %1382 = load i32, ptr %46, align 4, !tbaa !5
  %1383 = add i32 %1381, 1
  %1384 = add i32 %1383, %1382
  store i32 %1384, ptr %30, align 4, !tbaa !5
  store double %1379, ptr %31, align 8, !tbaa !18
  %1385 = mul nsw i32 %storemerge14201772, %50
  %1386 = sext i32 %1385 to i64
  %gep1768 = getelementptr %struct.doublecomplex, ptr %invariant.gep1767, i64 %1386
  call void @zdscal_(ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %gep1768, ptr noundef nonnull @c__1) #7
  %1387 = load i32, ptr %45, align 4, !tbaa !5
  %1388 = load i32, ptr %46, align 4, !tbaa !5
  %1389 = add i32 %1387, 1
  %1390 = add i32 %1389, %1388
  store i32 %1390, ptr %30, align 4, !tbaa !5
  %1391 = load i32, ptr %37, align 4, !tbaa !5
  %1392 = mul nsw i32 %1391, %50
  %1393 = sext i32 %1392 to i64
  %gep1770 = getelementptr %struct.doublecomplex, ptr %invariant.gep1767, i64 %1393
  call void @zdscal_(ptr noundef nonnull %30, ptr noundef nonnull %22, ptr noundef %gep1770, ptr noundef nonnull @c__1) #7
  %1394 = load i32, ptr %37, align 4, !tbaa !5
  %1395 = add nsw i32 %1394, 1
  store i32 %1395, ptr %37, align 4, !tbaa !5
  %1396 = load i32, ptr %29, align 4, !tbaa !5
  %.not1421.not = icmp slt i32 %1394, %1396
  br i1 %.not1421.not, label %1380, label %.loopexit, !llvm.loop !77

1397:                                             ; preds = %1352
  %1398 = load i32, ptr %1, align 4, !tbaa !5
  br i1 %168, label %1399, label %1407

1399:                                             ; preds = %1397
  store i32 %1398, ptr %29, align 4, !tbaa !5
  %invariant.gep1761 = getelementptr i8, ptr %52, i64 16
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not14191763 = icmp slt i32 %1398, 1
  br i1 %.not14191763, label %.loopexit, label %.lr.ph1766

.lr.ph1766:                                       ; preds = %1399, %.lr.ph1766
  %storemerge14181764 = phi i32 [ %1405, %.lr.ph1766 ], [ 1, %1399 ]
  %1400 = load double, ptr %22, align 8, !tbaa !18
  %1401 = fdiv double %1400, %.01136
  store double %1401, ptr %31, align 8, !tbaa !18
  %1402 = mul nsw i32 %storemerge14181764, %50
  %1403 = sext i32 %1402 to i64
  %gep1762 = getelementptr %struct.doublecomplex, ptr %invariant.gep1761, i64 %1403
  call void @zdscal_(ptr noundef nonnull %0, ptr noundef nonnull %31, ptr noundef %gep1762, ptr noundef nonnull @c__1) #7
  %1404 = load i32, ptr %37, align 4, !tbaa !5
  %1405 = add nsw i32 %1404, 1
  store i32 %1405, ptr %37, align 4, !tbaa !5
  %1406 = load i32, ptr %29, align 4, !tbaa !5
  %.not1419.not = icmp slt i32 %1404, %1406
  br i1 %.not1419.not, label %.lr.ph1766, label %.loopexit, !llvm.loop !78

1407:                                             ; preds = %1397
  br i1 %or.cond71, label %1408, label %1413

1408:                                             ; preds = %1407
  %1409 = add nsw i32 %1398, 1
  %1410 = mul nsw i32 %1409, %1398
  %1411 = sdiv i32 %1410, 2
  store i32 %1411, ptr %29, align 4, !tbaa !5
  %1412 = fdiv double %1343, %.01136
  store double %1412, ptr %31, align 8, !tbaa !18
  call void @zdscal_(ptr noundef nonnull %29, ptr noundef nonnull %31, ptr noundef %24, ptr noundef nonnull @c__1) #7
  br label %.loopexit

1413:                                             ; preds = %1407
  store i32 %1398, ptr %29, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %52, i64 16
  store i32 1, ptr %37, align 4, !tbaa !5
  %.not14171757 = icmp slt i32 %1398, 1
  br i1 %.not14171757, label %.loopexit, label %.lr.ph1760

.lr.ph1760:                                       ; preds = %1413, %.lr.ph1760
  %storemerge14161758 = phi i32 [ %1423, %.lr.ph1760 ], [ 1, %1413 ]
  %1414 = load i32, ptr %45, align 4, !tbaa !5
  %1415 = load i32, ptr %46, align 4, !tbaa !5
  %1416 = add i32 %1414, 1
  %1417 = add i32 %1416, %1415
  store i32 %1417, ptr %30, align 4, !tbaa !5
  %1418 = load double, ptr %22, align 8, !tbaa !18
  %1419 = fdiv double %1418, %.01136
  store double %1419, ptr %31, align 8, !tbaa !18
  %1420 = mul nsw i32 %storemerge14161758, %50
  %1421 = sext i32 %1420 to i64
  %gep = getelementptr %struct.doublecomplex, ptr %invariant.gep, i64 %1421
  call void @zdscal_(ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef %gep, ptr noundef nonnull @c__1) #7
  %1422 = load i32, ptr %37, align 4, !tbaa !5
  %1423 = add nsw i32 %1422, 1
  store i32 %1423, ptr %37, align 4, !tbaa !5
  %1424 = load i32, ptr %29, align 4, !tbaa !5
  %.not1417.not = icmp slt i32 %1422, %1424
  br i1 %.not1417.not, label %.lr.ph1760, label %.loopexit, !llvm.loop !79

.loopexit:                                        ; preds = %.lr.ph1760, %.lr.ph1766, %1380, %1359, %1413, %1399, %1378, %1357, %.thread1458, %1369, %1408, %28, %56, %1348, %415, %409, %356, %328, %.thread1445
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #7
  ret void
}

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

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

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

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

; Function Attrs: nofree nounwind
declare double @cabs(double noundef, double noundef) local_unnamed_addr #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden { double, double } @Cd(ptr noundef) local_unnamed_addr #4

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @_pCd(ptr noundef) local_unnamed_addr #4

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

declare double @zlange_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @zlansy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @zlansp_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @zlansb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @zlangb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @zdscal_(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 i32 @llvm.smin.i32(i32, i32) #5

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #5

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x i32> @llvm.abs.v2i32(<2 x i32>, i1 immarg) #5

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

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

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


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