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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1

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

52:                                               ; preds = %9
  %53 = load ptr, ptr %10, align 8, !tbaa !5
  %54 = call i32 @lsame_(ptr noundef %53, ptr noundef @.str.1)
  %55 = icmp ne i32 %54, 0
  br i1 %55, label %57, label %56

56:                                               ; preds = %52
  store i32 1, ptr %28, align 4, !tbaa !9
  br label %108

57:                                               ; preds = %52, %9
  %58 = load ptr, ptr %11, align 8, !tbaa !5
  %59 = call i32 @lsame_(ptr noundef %58, ptr noundef @.str.2)
  %60 = icmp ne i32 %59, 0
  br i1 %60, label %70, label %61

61:                                               ; preds = %57
  %62 = load ptr, ptr %11, align 8, !tbaa !5
  %63 = call i32 @lsame_(ptr noundef %62, ptr noundef @.str.3)
  %64 = icmp ne i32 %63, 0
  br i1 %64, label %70, label %65

65:                                               ; preds = %61
  %66 = load ptr, ptr %11, align 8, !tbaa !5
  %67 = call i32 @lsame_(ptr noundef %66, ptr noundef @.str.4)
  %68 = icmp ne i32 %67, 0
  br i1 %68, label %70, label %69

69:                                               ; preds = %65
  store i32 2, ptr %28, align 4, !tbaa !9
  br label %107

70:                                               ; preds = %65, %61, %57
  %71 = load ptr, ptr %12, align 8, !tbaa !5
  %72 = call i32 @lsame_(ptr noundef %71, ptr noundef @.str.5)
  %73 = icmp ne i32 %72, 0
  br i1 %73, label %79, label %74

74:                                               ; preds = %70
  %75 = load ptr, ptr %12, align 8, !tbaa !5
  %76 = call i32 @lsame_(ptr noundef %75, ptr noundef @.str.4)
  %77 = icmp ne i32 %76, 0
  br i1 %77, label %79, label %78

78:                                               ; preds = %74
  store i32 3, ptr %28, align 4, !tbaa !9
  br label %106

79:                                               ; preds = %74, %70
  %80 = load ptr, ptr %13, align 8, !tbaa !5
  %81 = load i32, ptr %80, align 4, !tbaa !9
  %82 = icmp slt i32 %81, 0
  br i1 %82, label %83, label %84

83:                                               ; preds = %79
  store i32 4, ptr %28, align 4, !tbaa !9
  br label %105

84:                                               ; preds = %79
  %85 = load ptr, ptr %14, align 8, !tbaa !5
  %86 = load i32, ptr %85, align 4, !tbaa !9
  %87 = icmp slt i32 %86, 0
  br i1 %87, label %88, label %89

88:                                               ; preds = %84
  store i32 5, ptr %28, align 4, !tbaa !9
  br label %104

89:                                               ; preds = %84
  %90 = load ptr, ptr %18, align 8, !tbaa !5
  %91 = load i32, ptr %90, align 4, !tbaa !9
  %92 = load ptr, ptr %13, align 8, !tbaa !5
  %93 = load i32, ptr %92, align 4, !tbaa !9
  %94 = icmp sge i32 1, %93
  br i1 %94, label %95, label %96

95:                                               ; preds = %89
  br label %99

96:                                               ; preds = %89
  %97 = load ptr, ptr %13, align 8, !tbaa !5
  %98 = load i32, ptr %97, align 4, !tbaa !9
  br label %99

99:                                               ; preds = %96, %95
  %100 = phi i32 [ 1, %95 ], [ %98, %96 ]
  %101 = icmp slt i32 %91, %100
  br i1 %101, label %102, label %103

102:                                              ; preds = %99
  store i32 9, ptr %28, align 4, !tbaa !9
  br label %103

103:                                              ; preds = %102, %99
  br label %104

104:                                              ; preds = %103, %88
  br label %105

105:                                              ; preds = %104, %83
  br label %106

106:                                              ; preds = %105, %78
  br label %107

107:                                              ; preds = %106, %69
  br label %108

108:                                              ; preds = %107, %56
  %109 = load i32, ptr %28, align 4, !tbaa !9
  %110 = icmp ne i32 %109, 0
  br i1 %110, label %111, label %113

111:                                              ; preds = %108
  %112 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %28, i32 noundef 6)
  store i32 1, ptr %34, align 4
  br label %2478

113:                                              ; preds = %108
  %114 = load ptr, ptr %13, align 8, !tbaa !5
  %115 = load i32, ptr %114, align 4, !tbaa !9
  %116 = icmp eq i32 %115, 0
  br i1 %116, label %121, label %117

117:                                              ; preds = %113
  %118 = load ptr, ptr %14, align 8, !tbaa !5
  %119 = load i32, ptr %118, align 4, !tbaa !9
  %120 = icmp eq i32 %119, 0
  br i1 %120, label %121, label %122

121:                                              ; preds = %117, %113
  store i32 1, ptr %34, align 4
  br label %2478

122:                                              ; preds = %117
  %123 = load ptr, ptr %10, align 8, !tbaa !5
  %124 = call i32 @lsame_(ptr noundef %123, ptr noundef @.str)
  %125 = icmp ne i32 %124, 0
  br i1 %125, label %126, label %1302

126:                                              ; preds = %122
  %127 = load ptr, ptr %11, align 8, !tbaa !5
  %128 = call i32 @lsame_(ptr noundef %127, ptr noundef @.str.2)
  %129 = icmp ne i32 %128, 0
  br i1 %129, label %130, label %519

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

134:                                              ; preds = %130
  %135 = load ptr, ptr %13, align 8, !tbaa !5
  %136 = load i32, ptr %135, align 4, !tbaa !9
  %137 = sub nsw i32 %136, 1
  store i32 %137, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %138

138:                                              ; preds = %320, %134
  %139 = load i32, ptr %31, align 4, !tbaa !9
  %140 = load i32, ptr %21, align 4, !tbaa !9
  %141 = icmp sle i32 %139, %140
  br i1 %141, label %142, label %323

142:                                              ; preds = %138
  %143 = load ptr, ptr %15, align 8, !tbaa !5
  %144 = load i32, ptr %31, align 4, !tbaa !9
  %145 = sext i32 %144 to i64
  %146 = getelementptr inbounds float, ptr %143, i64 %145
  %147 = load float, ptr %146, align 4, !tbaa !11
  store float %147, ptr %32, align 4, !tbaa !11
  %148 = load ptr, ptr %16, align 8, !tbaa !5
  %149 = load i32, ptr %31, align 4, !tbaa !9
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds float, ptr %148, i64 %150
  %152 = load float, ptr %151, align 4, !tbaa !11
  store float %152, ptr %33, align 4, !tbaa !11
  %153 = load float, ptr %32, align 4, !tbaa !11
  %154 = fcmp une float %153, 1.000000e+00
  br i1 %154, label %158, label %155

155:                                              ; preds = %142
  %156 = load float, ptr %33, align 4, !tbaa !11
  %157 = fcmp une float %156, 0.000000e+00
  br i1 %157, label %158, label %319

158:                                              ; preds = %155, %142
  %159 = load ptr, ptr %14, align 8, !tbaa !5
  %160 = load i32, ptr %159, align 4, !tbaa !9
  store i32 %160, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %161

161:                                              ; preds = %315, %158
  %162 = load i32, ptr %30, align 4, !tbaa !9
  %163 = load i32, ptr %22, align 4, !tbaa !9
  %164 = icmp sle i32 %162, %163
  br i1 %164, label %165, label %318

165:                                              ; preds = %161
  %166 = load i32, ptr %31, align 4, !tbaa !9
  %167 = add nsw i32 %166, 1
  %168 = load i32, ptr %30, align 4, !tbaa !9
  %169 = load i32, ptr %19, align 4, !tbaa !9
  %170 = mul nsw i32 %168, %169
  %171 = add nsw i32 %167, %170
  store i32 %171, ptr %23, align 4, !tbaa !9
  %172 = load ptr, ptr %17, align 8, !tbaa !5
  %173 = load i32, ptr %23, align 4, !tbaa !9
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds %struct.complex, ptr %172, i64 %174
  %176 = getelementptr inbounds %struct.complex, ptr %175, i32 0, i32 0
  %177 = load float, ptr %176, align 4, !tbaa !13
  %178 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %177, ptr %178, align 4, !tbaa !13
  %179 = load ptr, ptr %17, align 8, !tbaa !5
  %180 = load i32, ptr %23, align 4, !tbaa !9
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds %struct.complex, ptr %179, i64 %181
  %183 = getelementptr inbounds %struct.complex, ptr %182, i32 0, i32 1
  %184 = load float, ptr %183, align 4, !tbaa !15
  %185 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %184, ptr %185, align 4, !tbaa !15
  %186 = load i32, ptr %31, align 4, !tbaa !9
  %187 = add nsw i32 %186, 1
  %188 = load i32, ptr %30, align 4, !tbaa !9
  %189 = load i32, ptr %19, align 4, !tbaa !9
  %190 = mul nsw i32 %188, %189
  %191 = add nsw i32 %187, %190
  store i32 %191, ptr %23, align 4, !tbaa !9
  %192 = load float, ptr %32, align 4, !tbaa !11
  %193 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %194 = load float, ptr %193, align 4, !tbaa !13
  %195 = fmul float %192, %194
  %196 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %195, ptr %196, align 4, !tbaa !13
  %197 = load float, ptr %32, align 4, !tbaa !11
  %198 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %199 = load float, ptr %198, align 4, !tbaa !15
  %200 = fmul float %197, %199
  %201 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %200, ptr %201, align 4, !tbaa !15
  %202 = load i32, ptr %31, align 4, !tbaa !9
  %203 = load i32, ptr %30, align 4, !tbaa !9
  %204 = load i32, ptr %19, align 4, !tbaa !9
  %205 = mul nsw i32 %203, %204
  %206 = add nsw i32 %202, %205
  store i32 %206, ptr %24, align 4, !tbaa !9
  %207 = load float, ptr %33, align 4, !tbaa !11
  %208 = load ptr, ptr %17, align 8, !tbaa !5
  %209 = load i32, ptr %24, align 4, !tbaa !9
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds %struct.complex, ptr %208, i64 %210
  %212 = getelementptr inbounds %struct.complex, ptr %211, i32 0, i32 0
  %213 = load float, ptr %212, align 4, !tbaa !13
  %214 = fmul float %207, %213
  %215 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %214, ptr %215, align 4, !tbaa !13
  %216 = load float, ptr %33, align 4, !tbaa !11
  %217 = load ptr, ptr %17, align 8, !tbaa !5
  %218 = load i32, ptr %24, align 4, !tbaa !9
  %219 = sext i32 %218 to i64
  %220 = getelementptr inbounds %struct.complex, ptr %217, i64 %219
  %221 = getelementptr inbounds %struct.complex, ptr %220, i32 0, i32 1
  %222 = load float, ptr %221, align 4, !tbaa !15
  %223 = fmul float %216, %222
  %224 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %223, ptr %224, align 4, !tbaa !15
  %225 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %226 = load float, ptr %225, align 4, !tbaa !13
  %227 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %228 = load float, ptr %227, align 4, !tbaa !13
  %229 = fsub float %226, %228
  %230 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %229, ptr %230, align 4, !tbaa !13
  %231 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %232 = load float, ptr %231, align 4, !tbaa !15
  %233 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %234 = load float, ptr %233, align 4, !tbaa !15
  %235 = fsub float %232, %234
  %236 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %235, ptr %236, align 4, !tbaa !15
  %237 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %238 = load float, ptr %237, align 4, !tbaa !13
  %239 = load ptr, ptr %17, align 8, !tbaa !5
  %240 = load i32, ptr %23, align 4, !tbaa !9
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds %struct.complex, ptr %239, i64 %241
  %243 = getelementptr inbounds %struct.complex, ptr %242, i32 0, i32 0
  store float %238, ptr %243, align 4, !tbaa !13
  %244 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %245 = load float, ptr %244, align 4, !tbaa !15
  %246 = load ptr, ptr %17, align 8, !tbaa !5
  %247 = load i32, ptr %23, align 4, !tbaa !9
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds %struct.complex, ptr %246, i64 %248
  %250 = getelementptr inbounds %struct.complex, ptr %249, i32 0, i32 1
  store float %245, ptr %250, align 4, !tbaa !15
  %251 = load i32, ptr %31, align 4, !tbaa !9
  %252 = load i32, ptr %30, align 4, !tbaa !9
  %253 = load i32, ptr %19, align 4, !tbaa !9
  %254 = mul nsw i32 %252, %253
  %255 = add nsw i32 %251, %254
  store i32 %255, ptr %23, align 4, !tbaa !9
  %256 = load float, ptr %33, align 4, !tbaa !11
  %257 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %258 = load float, ptr %257, align 4, !tbaa !13
  %259 = fmul float %256, %258
  %260 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %259, ptr %260, align 4, !tbaa !13
  %261 = load float, ptr %33, align 4, !tbaa !11
  %262 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %263 = load float, ptr %262, align 4, !tbaa !15
  %264 = fmul float %261, %263
  %265 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %264, ptr %265, align 4, !tbaa !15
  %266 = load i32, ptr %31, align 4, !tbaa !9
  %267 = load i32, ptr %30, align 4, !tbaa !9
  %268 = load i32, ptr %19, align 4, !tbaa !9
  %269 = mul nsw i32 %267, %268
  %270 = add nsw i32 %266, %269
  store i32 %270, ptr %24, align 4, !tbaa !9
  %271 = load float, ptr %32, align 4, !tbaa !11
  %272 = load ptr, ptr %17, align 8, !tbaa !5
  %273 = load i32, ptr %24, align 4, !tbaa !9
  %274 = sext i32 %273 to i64
  %275 = getelementptr inbounds %struct.complex, ptr %272, i64 %274
  %276 = getelementptr inbounds %struct.complex, ptr %275, i32 0, i32 0
  %277 = load float, ptr %276, align 4, !tbaa !13
  %278 = fmul float %271, %277
  %279 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %278, ptr %279, align 4, !tbaa !13
  %280 = load float, ptr %32, align 4, !tbaa !11
  %281 = load ptr, ptr %17, align 8, !tbaa !5
  %282 = load i32, ptr %24, align 4, !tbaa !9
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds %struct.complex, ptr %281, i64 %283
  %285 = getelementptr inbounds %struct.complex, ptr %284, i32 0, i32 1
  %286 = load float, ptr %285, align 4, !tbaa !15
  %287 = fmul float %280, %286
  %288 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %287, ptr %288, align 4, !tbaa !15
  %289 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %290 = load float, ptr %289, align 4, !tbaa !13
  %291 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %292 = load float, ptr %291, align 4, !tbaa !13
  %293 = fadd float %290, %292
  %294 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %293, ptr %294, align 4, !tbaa !13
  %295 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %296 = load float, ptr %295, align 4, !tbaa !15
  %297 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %298 = load float, ptr %297, align 4, !tbaa !15
  %299 = fadd float %296, %298
  %300 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %299, ptr %300, align 4, !tbaa !15
  %301 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %302 = load float, ptr %301, align 4, !tbaa !13
  %303 = load ptr, ptr %17, align 8, !tbaa !5
  %304 = load i32, ptr %23, align 4, !tbaa !9
  %305 = sext i32 %304 to i64
  %306 = getelementptr inbounds %struct.complex, ptr %303, i64 %305
  %307 = getelementptr inbounds %struct.complex, ptr %306, i32 0, i32 0
  store float %302, ptr %307, align 4, !tbaa !13
  %308 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %309 = load float, ptr %308, align 4, !tbaa !15
  %310 = load ptr, ptr %17, align 8, !tbaa !5
  %311 = load i32, ptr %23, align 4, !tbaa !9
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds %struct.complex, ptr %310, i64 %312
  %314 = getelementptr inbounds %struct.complex, ptr %313, i32 0, i32 1
  store float %309, ptr %314, align 4, !tbaa !15
  br label %315

315:                                              ; preds = %165
  %316 = load i32, ptr %30, align 4, !tbaa !9
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr %30, align 4, !tbaa !9
  br label %161, !llvm.loop !16

318:                                              ; preds = %161
  br label %319

319:                                              ; preds = %318, %155
  br label %320

320:                                              ; preds = %319
  %321 = load i32, ptr %31, align 4, !tbaa !9
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr %31, align 4, !tbaa !9
  br label %138, !llvm.loop !18

323:                                              ; preds = %138
  br label %518

324:                                              ; preds = %130
  %325 = load ptr, ptr %12, align 8, !tbaa !5
  %326 = call i32 @lsame_(ptr noundef %325, ptr noundef @.str.4)
  %327 = icmp ne i32 %326, 0
  br i1 %327, label %328, label %517

328:                                              ; preds = %324
  %329 = load ptr, ptr %13, align 8, !tbaa !5
  %330 = load i32, ptr %329, align 4, !tbaa !9
  %331 = sub nsw i32 %330, 1
  store i32 %331, ptr %31, align 4, !tbaa !9
  br label %332

332:                                              ; preds = %513, %328
  %333 = load i32, ptr %31, align 4, !tbaa !9
  %334 = icmp sge i32 %333, 1
  br i1 %334, label %335, label %516

335:                                              ; preds = %332
  %336 = load ptr, ptr %15, align 8, !tbaa !5
  %337 = load i32, ptr %31, align 4, !tbaa !9
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds float, ptr %336, i64 %338
  %340 = load float, ptr %339, align 4, !tbaa !11
  store float %340, ptr %32, align 4, !tbaa !11
  %341 = load ptr, ptr %16, align 8, !tbaa !5
  %342 = load i32, ptr %31, align 4, !tbaa !9
  %343 = sext i32 %342 to i64
  %344 = getelementptr inbounds float, ptr %341, i64 %343
  %345 = load float, ptr %344, align 4, !tbaa !11
  store float %345, ptr %33, align 4, !tbaa !11
  %346 = load float, ptr %32, align 4, !tbaa !11
  %347 = fcmp une float %346, 1.000000e+00
  br i1 %347, label %351, label %348

348:                                              ; preds = %335
  %349 = load float, ptr %33, align 4, !tbaa !11
  %350 = fcmp une float %349, 0.000000e+00
  br i1 %350, label %351, label %512

351:                                              ; preds = %348, %335
  %352 = load ptr, ptr %14, align 8, !tbaa !5
  %353 = load i32, ptr %352, align 4, !tbaa !9
  store i32 %353, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %354

354:                                              ; preds = %508, %351
  %355 = load i32, ptr %30, align 4, !tbaa !9
  %356 = load i32, ptr %21, align 4, !tbaa !9
  %357 = icmp sle i32 %355, %356
  br i1 %357, label %358, label %511

358:                                              ; preds = %354
  %359 = load i32, ptr %31, align 4, !tbaa !9
  %360 = add nsw i32 %359, 1
  %361 = load i32, ptr %30, align 4, !tbaa !9
  %362 = load i32, ptr %19, align 4, !tbaa !9
  %363 = mul nsw i32 %361, %362
  %364 = add nsw i32 %360, %363
  store i32 %364, ptr %22, align 4, !tbaa !9
  %365 = load ptr, ptr %17, align 8, !tbaa !5
  %366 = load i32, ptr %22, align 4, !tbaa !9
  %367 = sext i32 %366 to i64
  %368 = getelementptr inbounds %struct.complex, ptr %365, i64 %367
  %369 = getelementptr inbounds %struct.complex, ptr %368, i32 0, i32 0
  %370 = load float, ptr %369, align 4, !tbaa !13
  %371 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %370, ptr %371, align 4, !tbaa !13
  %372 = load ptr, ptr %17, align 8, !tbaa !5
  %373 = load i32, ptr %22, align 4, !tbaa !9
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds %struct.complex, ptr %372, i64 %374
  %376 = getelementptr inbounds %struct.complex, ptr %375, i32 0, i32 1
  %377 = load float, ptr %376, align 4, !tbaa !15
  %378 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %377, ptr %378, align 4, !tbaa !15
  %379 = load i32, ptr %31, align 4, !tbaa !9
  %380 = add nsw i32 %379, 1
  %381 = load i32, ptr %30, align 4, !tbaa !9
  %382 = load i32, ptr %19, align 4, !tbaa !9
  %383 = mul nsw i32 %381, %382
  %384 = add nsw i32 %380, %383
  store i32 %384, ptr %22, align 4, !tbaa !9
  %385 = load float, ptr %32, align 4, !tbaa !11
  %386 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %387 = load float, ptr %386, align 4, !tbaa !13
  %388 = fmul float %385, %387
  %389 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %388, ptr %389, align 4, !tbaa !13
  %390 = load float, ptr %32, align 4, !tbaa !11
  %391 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %392 = load float, ptr %391, align 4, !tbaa !15
  %393 = fmul float %390, %392
  %394 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %393, ptr %394, align 4, !tbaa !15
  %395 = load i32, ptr %31, align 4, !tbaa !9
  %396 = load i32, ptr %30, align 4, !tbaa !9
  %397 = load i32, ptr %19, align 4, !tbaa !9
  %398 = mul nsw i32 %396, %397
  %399 = add nsw i32 %395, %398
  store i32 %399, ptr %23, align 4, !tbaa !9
  %400 = load float, ptr %33, align 4, !tbaa !11
  %401 = load ptr, ptr %17, align 8, !tbaa !5
  %402 = load i32, ptr %23, align 4, !tbaa !9
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds %struct.complex, ptr %401, i64 %403
  %405 = getelementptr inbounds %struct.complex, ptr %404, i32 0, i32 0
  %406 = load float, ptr %405, align 4, !tbaa !13
  %407 = fmul float %400, %406
  %408 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %407, ptr %408, align 4, !tbaa !13
  %409 = load float, ptr %33, align 4, !tbaa !11
  %410 = load ptr, ptr %17, align 8, !tbaa !5
  %411 = load i32, ptr %23, align 4, !tbaa !9
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds %struct.complex, ptr %410, i64 %412
  %414 = getelementptr inbounds %struct.complex, ptr %413, i32 0, i32 1
  %415 = load float, ptr %414, align 4, !tbaa !15
  %416 = fmul float %409, %415
  %417 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %416, ptr %417, align 4, !tbaa !15
  %418 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %419 = load float, ptr %418, align 4, !tbaa !13
  %420 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %421 = load float, ptr %420, align 4, !tbaa !13
  %422 = fsub float %419, %421
  %423 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %422, ptr %423, align 4, !tbaa !13
  %424 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %425 = load float, ptr %424, align 4, !tbaa !15
  %426 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %427 = load float, ptr %426, align 4, !tbaa !15
  %428 = fsub float %425, %427
  %429 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %428, ptr %429, align 4, !tbaa !15
  %430 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %431 = load float, ptr %430, align 4, !tbaa !13
  %432 = load ptr, ptr %17, align 8, !tbaa !5
  %433 = load i32, ptr %22, align 4, !tbaa !9
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds %struct.complex, ptr %432, i64 %434
  %436 = getelementptr inbounds %struct.complex, ptr %435, i32 0, i32 0
  store float %431, ptr %436, align 4, !tbaa !13
  %437 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %438 = load float, ptr %437, align 4, !tbaa !15
  %439 = load ptr, ptr %17, align 8, !tbaa !5
  %440 = load i32, ptr %22, align 4, !tbaa !9
  %441 = sext i32 %440 to i64
  %442 = getelementptr inbounds %struct.complex, ptr %439, i64 %441
  %443 = getelementptr inbounds %struct.complex, ptr %442, i32 0, i32 1
  store float %438, ptr %443, align 4, !tbaa !15
  %444 = load i32, ptr %31, align 4, !tbaa !9
  %445 = load i32, ptr %30, align 4, !tbaa !9
  %446 = load i32, ptr %19, align 4, !tbaa !9
  %447 = mul nsw i32 %445, %446
  %448 = add nsw i32 %444, %447
  store i32 %448, ptr %22, align 4, !tbaa !9
  %449 = load float, ptr %33, align 4, !tbaa !11
  %450 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %451 = load float, ptr %450, align 4, !tbaa !13
  %452 = fmul float %449, %451
  %453 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %452, ptr %453, align 4, !tbaa !13
  %454 = load float, ptr %33, align 4, !tbaa !11
  %455 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %456 = load float, ptr %455, align 4, !tbaa !15
  %457 = fmul float %454, %456
  %458 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %457, ptr %458, align 4, !tbaa !15
  %459 = load i32, ptr %31, align 4, !tbaa !9
  %460 = load i32, ptr %30, align 4, !tbaa !9
  %461 = load i32, ptr %19, align 4, !tbaa !9
  %462 = mul nsw i32 %460, %461
  %463 = add nsw i32 %459, %462
  store i32 %463, ptr %23, align 4, !tbaa !9
  %464 = load float, ptr %32, align 4, !tbaa !11
  %465 = load ptr, ptr %17, align 8, !tbaa !5
  %466 = load i32, ptr %23, align 4, !tbaa !9
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds %struct.complex, ptr %465, i64 %467
  %469 = getelementptr inbounds %struct.complex, ptr %468, i32 0, i32 0
  %470 = load float, ptr %469, align 4, !tbaa !13
  %471 = fmul float %464, %470
  %472 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %471, ptr %472, align 4, !tbaa !13
  %473 = load float, ptr %32, align 4, !tbaa !11
  %474 = load ptr, ptr %17, align 8, !tbaa !5
  %475 = load i32, ptr %23, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds %struct.complex, ptr %474, i64 %476
  %478 = getelementptr inbounds %struct.complex, ptr %477, i32 0, i32 1
  %479 = load float, ptr %478, align 4, !tbaa !15
  %480 = fmul float %473, %479
  %481 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %480, ptr %481, align 4, !tbaa !15
  %482 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %483 = load float, ptr %482, align 4, !tbaa !13
  %484 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %485 = load float, ptr %484, align 4, !tbaa !13
  %486 = fadd float %483, %485
  %487 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %486, ptr %487, align 4, !tbaa !13
  %488 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %489 = load float, ptr %488, align 4, !tbaa !15
  %490 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %491 = load float, ptr %490, align 4, !tbaa !15
  %492 = fadd float %489, %491
  %493 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %492, ptr %493, align 4, !tbaa !15
  %494 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %495 = load float, ptr %494, align 4, !tbaa !13
  %496 = load ptr, ptr %17, align 8, !tbaa !5
  %497 = load i32, ptr %22, align 4, !tbaa !9
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds %struct.complex, ptr %496, i64 %498
  %500 = getelementptr inbounds %struct.complex, ptr %499, i32 0, i32 0
  store float %495, ptr %500, align 4, !tbaa !13
  %501 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %502 = load float, ptr %501, align 4, !tbaa !15
  %503 = load ptr, ptr %17, align 8, !tbaa !5
  %504 = load i32, ptr %22, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds %struct.complex, ptr %503, i64 %505
  %507 = getelementptr inbounds %struct.complex, ptr %506, i32 0, i32 1
  store float %502, ptr %507, align 4, !tbaa !15
  br label %508

508:                                              ; preds = %358
  %509 = load i32, ptr %30, align 4, !tbaa !9
  %510 = add nsw i32 %509, 1
  store i32 %510, ptr %30, align 4, !tbaa !9
  br label %354, !llvm.loop !19

511:                                              ; preds = %354
  br label %512

512:                                              ; preds = %511, %348
  br label %513

513:                                              ; preds = %512
  %514 = load i32, ptr %31, align 4, !tbaa !9
  %515 = add nsw i32 %514, -1
  store i32 %515, ptr %31, align 4, !tbaa !9
  br label %332, !llvm.loop !20

516:                                              ; preds = %332
  br label %517

517:                                              ; preds = %516, %324
  br label %518

518:                                              ; preds = %517, %323
  br label %1301

519:                                              ; preds = %126
  %520 = load ptr, ptr %11, align 8, !tbaa !5
  %521 = call i32 @lsame_(ptr noundef %520, ptr noundef @.str.3)
  %522 = icmp ne i32 %521, 0
  br i1 %522, label %523, label %904

523:                                              ; preds = %519
  %524 = load ptr, ptr %12, align 8, !tbaa !5
  %525 = call i32 @lsame_(ptr noundef %524, ptr noundef @.str.5)
  %526 = icmp ne i32 %525, 0
  br i1 %526, label %527, label %713

527:                                              ; preds = %523
  %528 = load ptr, ptr %13, align 8, !tbaa !5
  %529 = load i32, ptr %528, align 4, !tbaa !9
  store i32 %529, ptr %21, align 4, !tbaa !9
  store i32 2, ptr %31, align 4, !tbaa !9
  br label %530

530:                                              ; preds = %709, %527
  %531 = load i32, ptr %31, align 4, !tbaa !9
  %532 = load i32, ptr %21, align 4, !tbaa !9
  %533 = icmp sle i32 %531, %532
  br i1 %533, label %534, label %712

534:                                              ; preds = %530
  %535 = load ptr, ptr %15, align 8, !tbaa !5
  %536 = load i32, ptr %31, align 4, !tbaa !9
  %537 = sub nsw i32 %536, 1
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds float, ptr %535, i64 %538
  %540 = load float, ptr %539, align 4, !tbaa !11
  store float %540, ptr %32, align 4, !tbaa !11
  %541 = load ptr, ptr %16, align 8, !tbaa !5
  %542 = load i32, ptr %31, align 4, !tbaa !9
  %543 = sub nsw i32 %542, 1
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds float, ptr %541, i64 %544
  %546 = load float, ptr %545, align 4, !tbaa !11
  store float %546, ptr %33, align 4, !tbaa !11
  %547 = load float, ptr %32, align 4, !tbaa !11
  %548 = fcmp une float %547, 1.000000e+00
  br i1 %548, label %552, label %549

549:                                              ; preds = %534
  %550 = load float, ptr %33, align 4, !tbaa !11
  %551 = fcmp une float %550, 0.000000e+00
  br i1 %551, label %552, label %708

552:                                              ; preds = %549, %534
  %553 = load ptr, ptr %14, align 8, !tbaa !5
  %554 = load i32, ptr %553, align 4, !tbaa !9
  store i32 %554, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %555

555:                                              ; preds = %704, %552
  %556 = load i32, ptr %30, align 4, !tbaa !9
  %557 = load i32, ptr %22, align 4, !tbaa !9
  %558 = icmp sle i32 %556, %557
  br i1 %558, label %559, label %707

559:                                              ; preds = %555
  %560 = load i32, ptr %31, align 4, !tbaa !9
  %561 = load i32, ptr %30, align 4, !tbaa !9
  %562 = load i32, ptr %19, align 4, !tbaa !9
  %563 = mul nsw i32 %561, %562
  %564 = add nsw i32 %560, %563
  store i32 %564, ptr %23, align 4, !tbaa !9
  %565 = load ptr, ptr %17, align 8, !tbaa !5
  %566 = load i32, ptr %23, align 4, !tbaa !9
  %567 = sext i32 %566 to i64
  %568 = getelementptr inbounds %struct.complex, ptr %565, i64 %567
  %569 = getelementptr inbounds %struct.complex, ptr %568, i32 0, i32 0
  %570 = load float, ptr %569, align 4, !tbaa !13
  %571 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %570, ptr %571, align 4, !tbaa !13
  %572 = load ptr, ptr %17, align 8, !tbaa !5
  %573 = load i32, ptr %23, align 4, !tbaa !9
  %574 = sext i32 %573 to i64
  %575 = getelementptr inbounds %struct.complex, ptr %572, i64 %574
  %576 = getelementptr inbounds %struct.complex, ptr %575, i32 0, i32 1
  %577 = load float, ptr %576, align 4, !tbaa !15
  %578 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %577, ptr %578, align 4, !tbaa !15
  %579 = load i32, ptr %31, align 4, !tbaa !9
  %580 = load i32, ptr %30, align 4, !tbaa !9
  %581 = load i32, ptr %19, align 4, !tbaa !9
  %582 = mul nsw i32 %580, %581
  %583 = add nsw i32 %579, %582
  store i32 %583, ptr %23, align 4, !tbaa !9
  %584 = load float, ptr %32, align 4, !tbaa !11
  %585 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %586 = load float, ptr %585, align 4, !tbaa !13
  %587 = fmul float %584, %586
  %588 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %587, ptr %588, align 4, !tbaa !13
  %589 = load float, ptr %32, align 4, !tbaa !11
  %590 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %591 = load float, ptr %590, align 4, !tbaa !15
  %592 = fmul float %589, %591
  %593 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %592, ptr %593, align 4, !tbaa !15
  %594 = load i32, ptr %30, align 4, !tbaa !9
  %595 = load i32, ptr %19, align 4, !tbaa !9
  %596 = mul nsw i32 %594, %595
  %597 = add nsw i32 %596, 1
  store i32 %597, ptr %24, align 4, !tbaa !9
  %598 = load float, ptr %33, align 4, !tbaa !11
  %599 = load ptr, ptr %17, align 8, !tbaa !5
  %600 = load i32, ptr %24, align 4, !tbaa !9
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds %struct.complex, ptr %599, i64 %601
  %603 = getelementptr inbounds %struct.complex, ptr %602, i32 0, i32 0
  %604 = load float, ptr %603, align 4, !tbaa !13
  %605 = fmul float %598, %604
  %606 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %605, ptr %606, align 4, !tbaa !13
  %607 = load float, ptr %33, align 4, !tbaa !11
  %608 = load ptr, ptr %17, align 8, !tbaa !5
  %609 = load i32, ptr %24, align 4, !tbaa !9
  %610 = sext i32 %609 to i64
  %611 = getelementptr inbounds %struct.complex, ptr %608, i64 %610
  %612 = getelementptr inbounds %struct.complex, ptr %611, i32 0, i32 1
  %613 = load float, ptr %612, align 4, !tbaa !15
  %614 = fmul float %607, %613
  %615 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %614, ptr %615, align 4, !tbaa !15
  %616 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %617 = load float, ptr %616, align 4, !tbaa !13
  %618 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %619 = load float, ptr %618, align 4, !tbaa !13
  %620 = fsub float %617, %619
  %621 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %620, ptr %621, align 4, !tbaa !13
  %622 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %623 = load float, ptr %622, align 4, !tbaa !15
  %624 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %625 = load float, ptr %624, align 4, !tbaa !15
  %626 = fsub float %623, %625
  %627 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %626, ptr %627, align 4, !tbaa !15
  %628 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %629 = load float, ptr %628, align 4, !tbaa !13
  %630 = load ptr, ptr %17, align 8, !tbaa !5
  %631 = load i32, ptr %23, align 4, !tbaa !9
  %632 = sext i32 %631 to i64
  %633 = getelementptr inbounds %struct.complex, ptr %630, i64 %632
  %634 = getelementptr inbounds %struct.complex, ptr %633, i32 0, i32 0
  store float %629, ptr %634, align 4, !tbaa !13
  %635 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %636 = load float, ptr %635, align 4, !tbaa !15
  %637 = load ptr, ptr %17, align 8, !tbaa !5
  %638 = load i32, ptr %23, align 4, !tbaa !9
  %639 = sext i32 %638 to i64
  %640 = getelementptr inbounds %struct.complex, ptr %637, i64 %639
  %641 = getelementptr inbounds %struct.complex, ptr %640, i32 0, i32 1
  store float %636, ptr %641, align 4, !tbaa !15
  %642 = load i32, ptr %30, align 4, !tbaa !9
  %643 = load i32, ptr %19, align 4, !tbaa !9
  %644 = mul nsw i32 %642, %643
  %645 = add nsw i32 %644, 1
  store i32 %645, ptr %23, align 4, !tbaa !9
  %646 = load float, ptr %33, align 4, !tbaa !11
  %647 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %648 = load float, ptr %647, align 4, !tbaa !13
  %649 = fmul float %646, %648
  %650 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %649, ptr %650, align 4, !tbaa !13
  %651 = load float, ptr %33, align 4, !tbaa !11
  %652 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %653 = load float, ptr %652, align 4, !tbaa !15
  %654 = fmul float %651, %653
  %655 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %654, ptr %655, align 4, !tbaa !15
  %656 = load i32, ptr %30, align 4, !tbaa !9
  %657 = load i32, ptr %19, align 4, !tbaa !9
  %658 = mul nsw i32 %656, %657
  %659 = add nsw i32 %658, 1
  store i32 %659, ptr %24, align 4, !tbaa !9
  %660 = load float, ptr %32, align 4, !tbaa !11
  %661 = load ptr, ptr %17, align 8, !tbaa !5
  %662 = load i32, ptr %24, align 4, !tbaa !9
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds %struct.complex, ptr %661, i64 %663
  %665 = getelementptr inbounds %struct.complex, ptr %664, i32 0, i32 0
  %666 = load float, ptr %665, align 4, !tbaa !13
  %667 = fmul float %660, %666
  %668 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %667, ptr %668, align 4, !tbaa !13
  %669 = load float, ptr %32, align 4, !tbaa !11
  %670 = load ptr, ptr %17, align 8, !tbaa !5
  %671 = load i32, ptr %24, align 4, !tbaa !9
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds %struct.complex, ptr %670, i64 %672
  %674 = getelementptr inbounds %struct.complex, ptr %673, i32 0, i32 1
  %675 = load float, ptr %674, align 4, !tbaa !15
  %676 = fmul float %669, %675
  %677 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %676, ptr %677, align 4, !tbaa !15
  %678 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %679 = load float, ptr %678, align 4, !tbaa !13
  %680 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %681 = load float, ptr %680, align 4, !tbaa !13
  %682 = fadd float %679, %681
  %683 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %682, ptr %683, align 4, !tbaa !13
  %684 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %685 = load float, ptr %684, align 4, !tbaa !15
  %686 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %687 = load float, ptr %686, align 4, !tbaa !15
  %688 = fadd float %685, %687
  %689 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %688, ptr %689, align 4, !tbaa !15
  %690 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %691 = load float, ptr %690, align 4, !tbaa !13
  %692 = load ptr, ptr %17, align 8, !tbaa !5
  %693 = load i32, ptr %23, align 4, !tbaa !9
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds %struct.complex, ptr %692, i64 %694
  %696 = getelementptr inbounds %struct.complex, ptr %695, i32 0, i32 0
  store float %691, ptr %696, align 4, !tbaa !13
  %697 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %698 = load float, ptr %697, align 4, !tbaa !15
  %699 = load ptr, ptr %17, align 8, !tbaa !5
  %700 = load i32, ptr %23, align 4, !tbaa !9
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds %struct.complex, ptr %699, i64 %701
  %703 = getelementptr inbounds %struct.complex, ptr %702, i32 0, i32 1
  store float %698, ptr %703, align 4, !tbaa !15
  br label %704

704:                                              ; preds = %559
  %705 = load i32, ptr %30, align 4, !tbaa !9
  %706 = add nsw i32 %705, 1
  store i32 %706, ptr %30, align 4, !tbaa !9
  br label %555, !llvm.loop !21

707:                                              ; preds = %555
  br label %708

708:                                              ; preds = %707, %549
  br label %709

709:                                              ; preds = %708
  %710 = load i32, ptr %31, align 4, !tbaa !9
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr %31, align 4, !tbaa !9
  br label %530, !llvm.loop !22

712:                                              ; preds = %530
  br label %903

713:                                              ; preds = %523
  %714 = load ptr, ptr %12, align 8, !tbaa !5
  %715 = call i32 @lsame_(ptr noundef %714, ptr noundef @.str.4)
  %716 = icmp ne i32 %715, 0
  br i1 %716, label %717, label %902

717:                                              ; preds = %713
  %718 = load ptr, ptr %13, align 8, !tbaa !5
  %719 = load i32, ptr %718, align 4, !tbaa !9
  store i32 %719, ptr %31, align 4, !tbaa !9
  br label %720

720:                                              ; preds = %898, %717
  %721 = load i32, ptr %31, align 4, !tbaa !9
  %722 = icmp sge i32 %721, 2
  br i1 %722, label %723, label %901

723:                                              ; preds = %720
  %724 = load ptr, ptr %15, align 8, !tbaa !5
  %725 = load i32, ptr %31, align 4, !tbaa !9
  %726 = sub nsw i32 %725, 1
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds float, ptr %724, i64 %727
  %729 = load float, ptr %728, align 4, !tbaa !11
  store float %729, ptr %32, align 4, !tbaa !11
  %730 = load ptr, ptr %16, align 8, !tbaa !5
  %731 = load i32, ptr %31, align 4, !tbaa !9
  %732 = sub nsw i32 %731, 1
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds float, ptr %730, i64 %733
  %735 = load float, ptr %734, align 4, !tbaa !11
  store float %735, ptr %33, align 4, !tbaa !11
  %736 = load float, ptr %32, align 4, !tbaa !11
  %737 = fcmp une float %736, 1.000000e+00
  br i1 %737, label %741, label %738

738:                                              ; preds = %723
  %739 = load float, ptr %33, align 4, !tbaa !11
  %740 = fcmp une float %739, 0.000000e+00
  br i1 %740, label %741, label %897

741:                                              ; preds = %738, %723
  %742 = load ptr, ptr %14, align 8, !tbaa !5
  %743 = load i32, ptr %742, align 4, !tbaa !9
  store i32 %743, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %744

744:                                              ; preds = %893, %741
  %745 = load i32, ptr %30, align 4, !tbaa !9
  %746 = load i32, ptr %21, align 4, !tbaa !9
  %747 = icmp sle i32 %745, %746
  br i1 %747, label %748, label %896

748:                                              ; preds = %744
  %749 = load i32, ptr %31, align 4, !tbaa !9
  %750 = load i32, ptr %30, align 4, !tbaa !9
  %751 = load i32, ptr %19, align 4, !tbaa !9
  %752 = mul nsw i32 %750, %751
  %753 = add nsw i32 %749, %752
  store i32 %753, ptr %22, align 4, !tbaa !9
  %754 = load ptr, ptr %17, align 8, !tbaa !5
  %755 = load i32, ptr %22, align 4, !tbaa !9
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds %struct.complex, ptr %754, i64 %756
  %758 = getelementptr inbounds %struct.complex, ptr %757, i32 0, i32 0
  %759 = load float, ptr %758, align 4, !tbaa !13
  %760 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %759, ptr %760, align 4, !tbaa !13
  %761 = load ptr, ptr %17, align 8, !tbaa !5
  %762 = load i32, ptr %22, align 4, !tbaa !9
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds %struct.complex, ptr %761, i64 %763
  %765 = getelementptr inbounds %struct.complex, ptr %764, i32 0, i32 1
  %766 = load float, ptr %765, align 4, !tbaa !15
  %767 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %766, ptr %767, align 4, !tbaa !15
  %768 = load i32, ptr %31, align 4, !tbaa !9
  %769 = load i32, ptr %30, align 4, !tbaa !9
  %770 = load i32, ptr %19, align 4, !tbaa !9
  %771 = mul nsw i32 %769, %770
  %772 = add nsw i32 %768, %771
  store i32 %772, ptr %22, align 4, !tbaa !9
  %773 = load float, ptr %32, align 4, !tbaa !11
  %774 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %775 = load float, ptr %774, align 4, !tbaa !13
  %776 = fmul float %773, %775
  %777 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %776, ptr %777, align 4, !tbaa !13
  %778 = load float, ptr %32, align 4, !tbaa !11
  %779 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %780 = load float, ptr %779, align 4, !tbaa !15
  %781 = fmul float %778, %780
  %782 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %781, ptr %782, align 4, !tbaa !15
  %783 = load i32, ptr %30, align 4, !tbaa !9
  %784 = load i32, ptr %19, align 4, !tbaa !9
  %785 = mul nsw i32 %783, %784
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr %23, align 4, !tbaa !9
  %787 = load float, ptr %33, align 4, !tbaa !11
  %788 = load ptr, ptr %17, align 8, !tbaa !5
  %789 = load i32, ptr %23, align 4, !tbaa !9
  %790 = sext i32 %789 to i64
  %791 = getelementptr inbounds %struct.complex, ptr %788, i64 %790
  %792 = getelementptr inbounds %struct.complex, ptr %791, i32 0, i32 0
  %793 = load float, ptr %792, align 4, !tbaa !13
  %794 = fmul float %787, %793
  %795 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %794, ptr %795, align 4, !tbaa !13
  %796 = load float, ptr %33, align 4, !tbaa !11
  %797 = load ptr, ptr %17, align 8, !tbaa !5
  %798 = load i32, ptr %23, align 4, !tbaa !9
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds %struct.complex, ptr %797, i64 %799
  %801 = getelementptr inbounds %struct.complex, ptr %800, i32 0, i32 1
  %802 = load float, ptr %801, align 4, !tbaa !15
  %803 = fmul float %796, %802
  %804 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %803, ptr %804, align 4, !tbaa !15
  %805 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %806 = load float, ptr %805, align 4, !tbaa !13
  %807 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %808 = load float, ptr %807, align 4, !tbaa !13
  %809 = fsub float %806, %808
  %810 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %809, ptr %810, align 4, !tbaa !13
  %811 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %812 = load float, ptr %811, align 4, !tbaa !15
  %813 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %814 = load float, ptr %813, align 4, !tbaa !15
  %815 = fsub float %812, %814
  %816 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %815, ptr %816, align 4, !tbaa !15
  %817 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %818 = load float, ptr %817, align 4, !tbaa !13
  %819 = load ptr, ptr %17, align 8, !tbaa !5
  %820 = load i32, ptr %22, align 4, !tbaa !9
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds %struct.complex, ptr %819, i64 %821
  %823 = getelementptr inbounds %struct.complex, ptr %822, i32 0, i32 0
  store float %818, ptr %823, align 4, !tbaa !13
  %824 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %825 = load float, ptr %824, align 4, !tbaa !15
  %826 = load ptr, ptr %17, align 8, !tbaa !5
  %827 = load i32, ptr %22, align 4, !tbaa !9
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds %struct.complex, ptr %826, i64 %828
  %830 = getelementptr inbounds %struct.complex, ptr %829, i32 0, i32 1
  store float %825, ptr %830, align 4, !tbaa !15
  %831 = load i32, ptr %30, align 4, !tbaa !9
  %832 = load i32, ptr %19, align 4, !tbaa !9
  %833 = mul nsw i32 %831, %832
  %834 = add nsw i32 %833, 1
  store i32 %834, ptr %22, align 4, !tbaa !9
  %835 = load float, ptr %33, align 4, !tbaa !11
  %836 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %837 = load float, ptr %836, align 4, !tbaa !13
  %838 = fmul float %835, %837
  %839 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %838, ptr %839, align 4, !tbaa !13
  %840 = load float, ptr %33, align 4, !tbaa !11
  %841 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %842 = load float, ptr %841, align 4, !tbaa !15
  %843 = fmul float %840, %842
  %844 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %843, ptr %844, align 4, !tbaa !15
  %845 = load i32, ptr %30, align 4, !tbaa !9
  %846 = load i32, ptr %19, align 4, !tbaa !9
  %847 = mul nsw i32 %845, %846
  %848 = add nsw i32 %847, 1
  store i32 %848, ptr %23, align 4, !tbaa !9
  %849 = load float, ptr %32, align 4, !tbaa !11
  %850 = load ptr, ptr %17, align 8, !tbaa !5
  %851 = load i32, ptr %23, align 4, !tbaa !9
  %852 = sext i32 %851 to i64
  %853 = getelementptr inbounds %struct.complex, ptr %850, i64 %852
  %854 = getelementptr inbounds %struct.complex, ptr %853, i32 0, i32 0
  %855 = load float, ptr %854, align 4, !tbaa !13
  %856 = fmul float %849, %855
  %857 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %856, ptr %857, align 4, !tbaa !13
  %858 = load float, ptr %32, align 4, !tbaa !11
  %859 = load ptr, ptr %17, align 8, !tbaa !5
  %860 = load i32, ptr %23, align 4, !tbaa !9
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds %struct.complex, ptr %859, i64 %861
  %863 = getelementptr inbounds %struct.complex, ptr %862, i32 0, i32 1
  %864 = load float, ptr %863, align 4, !tbaa !15
  %865 = fmul float %858, %864
  %866 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %865, ptr %866, align 4, !tbaa !15
  %867 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %868 = load float, ptr %867, align 4, !tbaa !13
  %869 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %870 = load float, ptr %869, align 4, !tbaa !13
  %871 = fadd float %868, %870
  %872 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %871, ptr %872, align 4, !tbaa !13
  %873 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %874 = load float, ptr %873, align 4, !tbaa !15
  %875 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %876 = load float, ptr %875, align 4, !tbaa !15
  %877 = fadd float %874, %876
  %878 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %877, ptr %878, align 4, !tbaa !15
  %879 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %880 = load float, ptr %879, align 4, !tbaa !13
  %881 = load ptr, ptr %17, align 8, !tbaa !5
  %882 = load i32, ptr %22, align 4, !tbaa !9
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds %struct.complex, ptr %881, i64 %883
  %885 = getelementptr inbounds %struct.complex, ptr %884, i32 0, i32 0
  store float %880, ptr %885, align 4, !tbaa !13
  %886 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %887 = load float, ptr %886, align 4, !tbaa !15
  %888 = load ptr, ptr %17, align 8, !tbaa !5
  %889 = load i32, ptr %22, align 4, !tbaa !9
  %890 = sext i32 %889 to i64
  %891 = getelementptr inbounds %struct.complex, ptr %888, i64 %890
  %892 = getelementptr inbounds %struct.complex, ptr %891, i32 0, i32 1
  store float %887, ptr %892, align 4, !tbaa !15
  br label %893

893:                                              ; preds = %748
  %894 = load i32, ptr %30, align 4, !tbaa !9
  %895 = add nsw i32 %894, 1
  store i32 %895, ptr %30, align 4, !tbaa !9
  br label %744, !llvm.loop !23

896:                                              ; preds = %744
  br label %897

897:                                              ; preds = %896, %738
  br label %898

898:                                              ; preds = %897
  %899 = load i32, ptr %31, align 4, !tbaa !9
  %900 = add nsw i32 %899, -1
  store i32 %900, ptr %31, align 4, !tbaa !9
  br label %720, !llvm.loop !24

901:                                              ; preds = %720
  br label %902

902:                                              ; preds = %901, %713
  br label %903

903:                                              ; preds = %902, %712
  br label %1300

904:                                              ; preds = %519
  %905 = load ptr, ptr %11, align 8, !tbaa !5
  %906 = call i32 @lsame_(ptr noundef %905, ptr noundef @.str.4)
  %907 = icmp ne i32 %906, 0
  br i1 %907, label %908, label %1299

908:                                              ; preds = %904
  %909 = load ptr, ptr %12, align 8, !tbaa !5
  %910 = call i32 @lsame_(ptr noundef %909, ptr noundef @.str.5)
  %911 = icmp ne i32 %910, 0
  br i1 %911, label %912, label %1103

912:                                              ; preds = %908
  %913 = load ptr, ptr %13, align 8, !tbaa !5
  %914 = load i32, ptr %913, align 4, !tbaa !9
  %915 = sub nsw i32 %914, 1
  store i32 %915, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %916

916:                                              ; preds = %1099, %912
  %917 = load i32, ptr %31, align 4, !tbaa !9
  %918 = load i32, ptr %21, align 4, !tbaa !9
  %919 = icmp sle i32 %917, %918
  br i1 %919, label %920, label %1102

920:                                              ; preds = %916
  %921 = load ptr, ptr %15, align 8, !tbaa !5
  %922 = load i32, ptr %31, align 4, !tbaa !9
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds float, ptr %921, i64 %923
  %925 = load float, ptr %924, align 4, !tbaa !11
  store float %925, ptr %32, align 4, !tbaa !11
  %926 = load ptr, ptr %16, align 8, !tbaa !5
  %927 = load i32, ptr %31, align 4, !tbaa !9
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds float, ptr %926, i64 %928
  %930 = load float, ptr %929, align 4, !tbaa !11
  store float %930, ptr %33, align 4, !tbaa !11
  %931 = load float, ptr %32, align 4, !tbaa !11
  %932 = fcmp une float %931, 1.000000e+00
  br i1 %932, label %936, label %933

933:                                              ; preds = %920
  %934 = load float, ptr %33, align 4, !tbaa !11
  %935 = fcmp une float %934, 0.000000e+00
  br i1 %935, label %936, label %1098

936:                                              ; preds = %933, %920
  %937 = load ptr, ptr %14, align 8, !tbaa !5
  %938 = load i32, ptr %937, align 4, !tbaa !9
  store i32 %938, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %939

939:                                              ; preds = %1094, %936
  %940 = load i32, ptr %30, align 4, !tbaa !9
  %941 = load i32, ptr %22, align 4, !tbaa !9
  %942 = icmp sle i32 %940, %941
  br i1 %942, label %943, label %1097

943:                                              ; preds = %939
  %944 = load i32, ptr %31, align 4, !tbaa !9
  %945 = load i32, ptr %30, align 4, !tbaa !9
  %946 = load i32, ptr %19, align 4, !tbaa !9
  %947 = mul nsw i32 %945, %946
  %948 = add nsw i32 %944, %947
  store i32 %948, ptr %23, align 4, !tbaa !9
  %949 = load ptr, ptr %17, align 8, !tbaa !5
  %950 = load i32, ptr %23, align 4, !tbaa !9
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds %struct.complex, ptr %949, i64 %951
  %953 = getelementptr inbounds %struct.complex, ptr %952, i32 0, i32 0
  %954 = load float, ptr %953, align 4, !tbaa !13
  %955 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %954, ptr %955, align 4, !tbaa !13
  %956 = load ptr, ptr %17, align 8, !tbaa !5
  %957 = load i32, ptr %23, align 4, !tbaa !9
  %958 = sext i32 %957 to i64
  %959 = getelementptr inbounds %struct.complex, ptr %956, i64 %958
  %960 = getelementptr inbounds %struct.complex, ptr %959, i32 0, i32 1
  %961 = load float, ptr %960, align 4, !tbaa !15
  %962 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %961, ptr %962, align 4, !tbaa !15
  %963 = load i32, ptr %31, align 4, !tbaa !9
  %964 = load i32, ptr %30, align 4, !tbaa !9
  %965 = load i32, ptr %19, align 4, !tbaa !9
  %966 = mul nsw i32 %964, %965
  %967 = add nsw i32 %963, %966
  store i32 %967, ptr %23, align 4, !tbaa !9
  %968 = load ptr, ptr %13, align 8, !tbaa !5
  %969 = load i32, ptr %968, align 4, !tbaa !9
  %970 = load i32, ptr %30, align 4, !tbaa !9
  %971 = load i32, ptr %19, align 4, !tbaa !9
  %972 = mul nsw i32 %970, %971
  %973 = add nsw i32 %969, %972
  store i32 %973, ptr %24, align 4, !tbaa !9
  %974 = load float, ptr %33, align 4, !tbaa !11
  %975 = load ptr, ptr %17, align 8, !tbaa !5
  %976 = load i32, ptr %24, align 4, !tbaa !9
  %977 = sext i32 %976 to i64
  %978 = getelementptr inbounds %struct.complex, ptr %975, i64 %977
  %979 = getelementptr inbounds %struct.complex, ptr %978, i32 0, i32 0
  %980 = load float, ptr %979, align 4, !tbaa !13
  %981 = fmul float %974, %980
  %982 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %981, ptr %982, align 4, !tbaa !13
  %983 = load float, ptr %33, align 4, !tbaa !11
  %984 = load ptr, ptr %17, align 8, !tbaa !5
  %985 = load i32, ptr %24, align 4, !tbaa !9
  %986 = sext i32 %985 to i64
  %987 = getelementptr inbounds %struct.complex, ptr %984, i64 %986
  %988 = getelementptr inbounds %struct.complex, ptr %987, i32 0, i32 1
  %989 = load float, ptr %988, align 4, !tbaa !15
  %990 = fmul float %983, %989
  %991 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %990, ptr %991, align 4, !tbaa !15
  %992 = load float, ptr %32, align 4, !tbaa !11
  %993 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %994 = load float, ptr %993, align 4, !tbaa !13
  %995 = fmul float %992, %994
  %996 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %995, ptr %996, align 4, !tbaa !13
  %997 = load float, ptr %32, align 4, !tbaa !11
  %998 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %999 = load float, ptr %998, align 4, !tbaa !15
  %1000 = fmul float %997, %999
  %1001 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1000, ptr %1001, align 4, !tbaa !15
  %1002 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1003 = load float, ptr %1002, align 4, !tbaa !13
  %1004 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1005 = load float, ptr %1004, align 4, !tbaa !13
  %1006 = fadd float %1003, %1005
  %1007 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1006, ptr %1007, align 4, !tbaa !13
  %1008 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1009 = load float, ptr %1008, align 4, !tbaa !15
  %1010 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1011 = load float, ptr %1010, align 4, !tbaa !15
  %1012 = fadd float %1009, %1011
  %1013 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1012, ptr %1013, align 4, !tbaa !15
  %1014 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1015 = load float, ptr %1014, align 4, !tbaa !13
  %1016 = load ptr, ptr %17, align 8, !tbaa !5
  %1017 = load i32, ptr %23, align 4, !tbaa !9
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds %struct.complex, ptr %1016, i64 %1018
  %1020 = getelementptr inbounds %struct.complex, ptr %1019, i32 0, i32 0
  store float %1015, ptr %1020, align 4, !tbaa !13
  %1021 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1022 = load float, ptr %1021, align 4, !tbaa !15
  %1023 = load ptr, ptr %17, align 8, !tbaa !5
  %1024 = load i32, ptr %23, align 4, !tbaa !9
  %1025 = sext i32 %1024 to i64
  %1026 = getelementptr inbounds %struct.complex, ptr %1023, i64 %1025
  %1027 = getelementptr inbounds %struct.complex, ptr %1026, i32 0, i32 1
  store float %1022, ptr %1027, align 4, !tbaa !15
  %1028 = load ptr, ptr %13, align 8, !tbaa !5
  %1029 = load i32, ptr %1028, align 4, !tbaa !9
  %1030 = load i32, ptr %30, align 4, !tbaa !9
  %1031 = load i32, ptr %19, align 4, !tbaa !9
  %1032 = mul nsw i32 %1030, %1031
  %1033 = add nsw i32 %1029, %1032
  store i32 %1033, ptr %23, align 4, !tbaa !9
  %1034 = load ptr, ptr %13, align 8, !tbaa !5
  %1035 = load i32, ptr %1034, align 4, !tbaa !9
  %1036 = load i32, ptr %30, align 4, !tbaa !9
  %1037 = load i32, ptr %19, align 4, !tbaa !9
  %1038 = mul nsw i32 %1036, %1037
  %1039 = add nsw i32 %1035, %1038
  store i32 %1039, ptr %24, align 4, !tbaa !9
  %1040 = load float, ptr %32, align 4, !tbaa !11
  %1041 = load ptr, ptr %17, align 8, !tbaa !5
  %1042 = load i32, ptr %24, align 4, !tbaa !9
  %1043 = sext i32 %1042 to i64
  %1044 = getelementptr inbounds %struct.complex, ptr %1041, i64 %1043
  %1045 = getelementptr inbounds %struct.complex, ptr %1044, i32 0, i32 0
  %1046 = load float, ptr %1045, align 4, !tbaa !13
  %1047 = fmul float %1040, %1046
  %1048 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1047, ptr %1048, align 4, !tbaa !13
  %1049 = load float, ptr %32, align 4, !tbaa !11
  %1050 = load ptr, ptr %17, align 8, !tbaa !5
  %1051 = load i32, ptr %24, align 4, !tbaa !9
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds %struct.complex, ptr %1050, i64 %1052
  %1054 = getelementptr inbounds %struct.complex, ptr %1053, i32 0, i32 1
  %1055 = load float, ptr %1054, align 4, !tbaa !15
  %1056 = fmul float %1049, %1055
  %1057 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1056, ptr %1057, align 4, !tbaa !15
  %1058 = load float, ptr %33, align 4, !tbaa !11
  %1059 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1060 = load float, ptr %1059, align 4, !tbaa !13
  %1061 = fmul float %1058, %1060
  %1062 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1061, ptr %1062, align 4, !tbaa !13
  %1063 = load float, ptr %33, align 4, !tbaa !11
  %1064 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1065 = load float, ptr %1064, align 4, !tbaa !15
  %1066 = fmul float %1063, %1065
  %1067 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1066, ptr %1067, align 4, !tbaa !15
  %1068 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1069 = load float, ptr %1068, align 4, !tbaa !13
  %1070 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1071 = load float, ptr %1070, align 4, !tbaa !13
  %1072 = fsub float %1069, %1071
  %1073 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1072, ptr %1073, align 4, !tbaa !13
  %1074 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1075 = load float, ptr %1074, align 4, !tbaa !15
  %1076 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1077 = load float, ptr %1076, align 4, !tbaa !15
  %1078 = fsub float %1075, %1077
  %1079 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1078, ptr %1079, align 4, !tbaa !15
  %1080 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1081 = load float, ptr %1080, align 4, !tbaa !13
  %1082 = load ptr, ptr %17, align 8, !tbaa !5
  %1083 = load i32, ptr %23, align 4, !tbaa !9
  %1084 = sext i32 %1083 to i64
  %1085 = getelementptr inbounds %struct.complex, ptr %1082, i64 %1084
  %1086 = getelementptr inbounds %struct.complex, ptr %1085, i32 0, i32 0
  store float %1081, ptr %1086, align 4, !tbaa !13
  %1087 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1088 = load float, ptr %1087, align 4, !tbaa !15
  %1089 = load ptr, ptr %17, align 8, !tbaa !5
  %1090 = load i32, ptr %23, align 4, !tbaa !9
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds %struct.complex, ptr %1089, i64 %1091
  %1093 = getelementptr inbounds %struct.complex, ptr %1092, i32 0, i32 1
  store float %1088, ptr %1093, align 4, !tbaa !15
  br label %1094

1094:                                             ; preds = %943
  %1095 = load i32, ptr %30, align 4, !tbaa !9
  %1096 = add nsw i32 %1095, 1
  store i32 %1096, ptr %30, align 4, !tbaa !9
  br label %939, !llvm.loop !25

1097:                                             ; preds = %939
  br label %1098

1098:                                             ; preds = %1097, %933
  br label %1099

1099:                                             ; preds = %1098
  %1100 = load i32, ptr %31, align 4, !tbaa !9
  %1101 = add nsw i32 %1100, 1
  store i32 %1101, ptr %31, align 4, !tbaa !9
  br label %916, !llvm.loop !26

1102:                                             ; preds = %916
  br label %1298

1103:                                             ; preds = %908
  %1104 = load ptr, ptr %12, align 8, !tbaa !5
  %1105 = call i32 @lsame_(ptr noundef %1104, ptr noundef @.str.4)
  %1106 = icmp ne i32 %1105, 0
  br i1 %1106, label %1107, label %1297

1107:                                             ; preds = %1103
  %1108 = load ptr, ptr %13, align 8, !tbaa !5
  %1109 = load i32, ptr %1108, align 4, !tbaa !9
  %1110 = sub nsw i32 %1109, 1
  store i32 %1110, ptr %31, align 4, !tbaa !9
  br label %1111

1111:                                             ; preds = %1293, %1107
  %1112 = load i32, ptr %31, align 4, !tbaa !9
  %1113 = icmp sge i32 %1112, 1
  br i1 %1113, label %1114, label %1296

1114:                                             ; preds = %1111
  %1115 = load ptr, ptr %15, align 8, !tbaa !5
  %1116 = load i32, ptr %31, align 4, !tbaa !9
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds float, ptr %1115, i64 %1117
  %1119 = load float, ptr %1118, align 4, !tbaa !11
  store float %1119, ptr %32, align 4, !tbaa !11
  %1120 = load ptr, ptr %16, align 8, !tbaa !5
  %1121 = load i32, ptr %31, align 4, !tbaa !9
  %1122 = sext i32 %1121 to i64
  %1123 = getelementptr inbounds float, ptr %1120, i64 %1122
  %1124 = load float, ptr %1123, align 4, !tbaa !11
  store float %1124, ptr %33, align 4, !tbaa !11
  %1125 = load float, ptr %32, align 4, !tbaa !11
  %1126 = fcmp une float %1125, 1.000000e+00
  br i1 %1126, label %1130, label %1127

1127:                                             ; preds = %1114
  %1128 = load float, ptr %33, align 4, !tbaa !11
  %1129 = fcmp une float %1128, 0.000000e+00
  br i1 %1129, label %1130, label %1292

1130:                                             ; preds = %1127, %1114
  %1131 = load ptr, ptr %14, align 8, !tbaa !5
  %1132 = load i32, ptr %1131, align 4, !tbaa !9
  store i32 %1132, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %1133

1133:                                             ; preds = %1288, %1130
  %1134 = load i32, ptr %30, align 4, !tbaa !9
  %1135 = load i32, ptr %21, align 4, !tbaa !9
  %1136 = icmp sle i32 %1134, %1135
  br i1 %1136, label %1137, label %1291

1137:                                             ; preds = %1133
  %1138 = load i32, ptr %31, align 4, !tbaa !9
  %1139 = load i32, ptr %30, align 4, !tbaa !9
  %1140 = load i32, ptr %19, align 4, !tbaa !9
  %1141 = mul nsw i32 %1139, %1140
  %1142 = add nsw i32 %1138, %1141
  store i32 %1142, ptr %22, align 4, !tbaa !9
  %1143 = load ptr, ptr %17, align 8, !tbaa !5
  %1144 = load i32, ptr %22, align 4, !tbaa !9
  %1145 = sext i32 %1144 to i64
  %1146 = getelementptr inbounds %struct.complex, ptr %1143, i64 %1145
  %1147 = getelementptr inbounds %struct.complex, ptr %1146, i32 0, i32 0
  %1148 = load float, ptr %1147, align 4, !tbaa !13
  %1149 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %1148, ptr %1149, align 4, !tbaa !13
  %1150 = load ptr, ptr %17, align 8, !tbaa !5
  %1151 = load i32, ptr %22, align 4, !tbaa !9
  %1152 = sext i32 %1151 to i64
  %1153 = getelementptr inbounds %struct.complex, ptr %1150, i64 %1152
  %1154 = getelementptr inbounds %struct.complex, ptr %1153, i32 0, i32 1
  %1155 = load float, ptr %1154, align 4, !tbaa !15
  %1156 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %1155, ptr %1156, align 4, !tbaa !15
  %1157 = load i32, ptr %31, align 4, !tbaa !9
  %1158 = load i32, ptr %30, align 4, !tbaa !9
  %1159 = load i32, ptr %19, align 4, !tbaa !9
  %1160 = mul nsw i32 %1158, %1159
  %1161 = add nsw i32 %1157, %1160
  store i32 %1161, ptr %22, align 4, !tbaa !9
  %1162 = load ptr, ptr %13, align 8, !tbaa !5
  %1163 = load i32, ptr %1162, align 4, !tbaa !9
  %1164 = load i32, ptr %30, align 4, !tbaa !9
  %1165 = load i32, ptr %19, align 4, !tbaa !9
  %1166 = mul nsw i32 %1164, %1165
  %1167 = add nsw i32 %1163, %1166
  store i32 %1167, ptr %23, align 4, !tbaa !9
  %1168 = load float, ptr %33, align 4, !tbaa !11
  %1169 = load ptr, ptr %17, align 8, !tbaa !5
  %1170 = load i32, ptr %23, align 4, !tbaa !9
  %1171 = sext i32 %1170 to i64
  %1172 = getelementptr inbounds %struct.complex, ptr %1169, i64 %1171
  %1173 = getelementptr inbounds %struct.complex, ptr %1172, i32 0, i32 0
  %1174 = load float, ptr %1173, align 4, !tbaa !13
  %1175 = fmul float %1168, %1174
  %1176 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1175, ptr %1176, align 4, !tbaa !13
  %1177 = load float, ptr %33, align 4, !tbaa !11
  %1178 = load ptr, ptr %17, align 8, !tbaa !5
  %1179 = load i32, ptr %23, align 4, !tbaa !9
  %1180 = sext i32 %1179 to i64
  %1181 = getelementptr inbounds %struct.complex, ptr %1178, i64 %1180
  %1182 = getelementptr inbounds %struct.complex, ptr %1181, i32 0, i32 1
  %1183 = load float, ptr %1182, align 4, !tbaa !15
  %1184 = fmul float %1177, %1183
  %1185 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1184, ptr %1185, align 4, !tbaa !15
  %1186 = load float, ptr %32, align 4, !tbaa !11
  %1187 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1188 = load float, ptr %1187, align 4, !tbaa !13
  %1189 = fmul float %1186, %1188
  %1190 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1189, ptr %1190, align 4, !tbaa !13
  %1191 = load float, ptr %32, align 4, !tbaa !11
  %1192 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1193 = load float, ptr %1192, align 4, !tbaa !15
  %1194 = fmul float %1191, %1193
  %1195 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1194, ptr %1195, align 4, !tbaa !15
  %1196 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1197 = load float, ptr %1196, align 4, !tbaa !13
  %1198 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1199 = load float, ptr %1198, align 4, !tbaa !13
  %1200 = fadd float %1197, %1199
  %1201 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1200, ptr %1201, align 4, !tbaa !13
  %1202 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1203 = load float, ptr %1202, align 4, !tbaa !15
  %1204 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1205 = load float, ptr %1204, align 4, !tbaa !15
  %1206 = fadd float %1203, %1205
  %1207 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1206, ptr %1207, align 4, !tbaa !15
  %1208 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1209 = load float, ptr %1208, align 4, !tbaa !13
  %1210 = load ptr, ptr %17, align 8, !tbaa !5
  %1211 = load i32, ptr %22, align 4, !tbaa !9
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds %struct.complex, ptr %1210, i64 %1212
  %1214 = getelementptr inbounds %struct.complex, ptr %1213, i32 0, i32 0
  store float %1209, ptr %1214, align 4, !tbaa !13
  %1215 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1216 = load float, ptr %1215, align 4, !tbaa !15
  %1217 = load ptr, ptr %17, align 8, !tbaa !5
  %1218 = load i32, ptr %22, align 4, !tbaa !9
  %1219 = sext i32 %1218 to i64
  %1220 = getelementptr inbounds %struct.complex, ptr %1217, i64 %1219
  %1221 = getelementptr inbounds %struct.complex, ptr %1220, i32 0, i32 1
  store float %1216, ptr %1221, align 4, !tbaa !15
  %1222 = load ptr, ptr %13, align 8, !tbaa !5
  %1223 = load i32, ptr %1222, align 4, !tbaa !9
  %1224 = load i32, ptr %30, align 4, !tbaa !9
  %1225 = load i32, ptr %19, align 4, !tbaa !9
  %1226 = mul nsw i32 %1224, %1225
  %1227 = add nsw i32 %1223, %1226
  store i32 %1227, ptr %22, align 4, !tbaa !9
  %1228 = load ptr, ptr %13, align 8, !tbaa !5
  %1229 = load i32, ptr %1228, align 4, !tbaa !9
  %1230 = load i32, ptr %30, align 4, !tbaa !9
  %1231 = load i32, ptr %19, align 4, !tbaa !9
  %1232 = mul nsw i32 %1230, %1231
  %1233 = add nsw i32 %1229, %1232
  store i32 %1233, ptr %23, align 4, !tbaa !9
  %1234 = load float, ptr %32, align 4, !tbaa !11
  %1235 = load ptr, ptr %17, align 8, !tbaa !5
  %1236 = load i32, ptr %23, align 4, !tbaa !9
  %1237 = sext i32 %1236 to i64
  %1238 = getelementptr inbounds %struct.complex, ptr %1235, i64 %1237
  %1239 = getelementptr inbounds %struct.complex, ptr %1238, i32 0, i32 0
  %1240 = load float, ptr %1239, align 4, !tbaa !13
  %1241 = fmul float %1234, %1240
  %1242 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1241, ptr %1242, align 4, !tbaa !13
  %1243 = load float, ptr %32, align 4, !tbaa !11
  %1244 = load ptr, ptr %17, align 8, !tbaa !5
  %1245 = load i32, ptr %23, align 4, !tbaa !9
  %1246 = sext i32 %1245 to i64
  %1247 = getelementptr inbounds %struct.complex, ptr %1244, i64 %1246
  %1248 = getelementptr inbounds %struct.complex, ptr %1247, i32 0, i32 1
  %1249 = load float, ptr %1248, align 4, !tbaa !15
  %1250 = fmul float %1243, %1249
  %1251 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1250, ptr %1251, align 4, !tbaa !15
  %1252 = load float, ptr %33, align 4, !tbaa !11
  %1253 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1254 = load float, ptr %1253, align 4, !tbaa !13
  %1255 = fmul float %1252, %1254
  %1256 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1255, ptr %1256, align 4, !tbaa !13
  %1257 = load float, ptr %33, align 4, !tbaa !11
  %1258 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1259 = load float, ptr %1258, align 4, !tbaa !15
  %1260 = fmul float %1257, %1259
  %1261 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1260, ptr %1261, align 4, !tbaa !15
  %1262 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1263 = load float, ptr %1262, align 4, !tbaa !13
  %1264 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1265 = load float, ptr %1264, align 4, !tbaa !13
  %1266 = fsub float %1263, %1265
  %1267 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1266, ptr %1267, align 4, !tbaa !13
  %1268 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1269 = load float, ptr %1268, align 4, !tbaa !15
  %1270 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1271 = load float, ptr %1270, align 4, !tbaa !15
  %1272 = fsub float %1269, %1271
  %1273 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1272, ptr %1273, align 4, !tbaa !15
  %1274 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1275 = load float, ptr %1274, align 4, !tbaa !13
  %1276 = load ptr, ptr %17, align 8, !tbaa !5
  %1277 = load i32, ptr %22, align 4, !tbaa !9
  %1278 = sext i32 %1277 to i64
  %1279 = getelementptr inbounds %struct.complex, ptr %1276, i64 %1278
  %1280 = getelementptr inbounds %struct.complex, ptr %1279, i32 0, i32 0
  store float %1275, ptr %1280, align 4, !tbaa !13
  %1281 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1282 = load float, ptr %1281, align 4, !tbaa !15
  %1283 = load ptr, ptr %17, align 8, !tbaa !5
  %1284 = load i32, ptr %22, align 4, !tbaa !9
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds %struct.complex, ptr %1283, i64 %1285
  %1287 = getelementptr inbounds %struct.complex, ptr %1286, i32 0, i32 1
  store float %1282, ptr %1287, align 4, !tbaa !15
  br label %1288

1288:                                             ; preds = %1137
  %1289 = load i32, ptr %30, align 4, !tbaa !9
  %1290 = add nsw i32 %1289, 1
  store i32 %1290, ptr %30, align 4, !tbaa !9
  br label %1133, !llvm.loop !27

1291:                                             ; preds = %1133
  br label %1292

1292:                                             ; preds = %1291, %1127
  br label %1293

1293:                                             ; preds = %1292
  %1294 = load i32, ptr %31, align 4, !tbaa !9
  %1295 = add nsw i32 %1294, -1
  store i32 %1295, ptr %31, align 4, !tbaa !9
  br label %1111, !llvm.loop !28

1296:                                             ; preds = %1111
  br label %1297

1297:                                             ; preds = %1296, %1103
  br label %1298

1298:                                             ; preds = %1297, %1102
  br label %1299

1299:                                             ; preds = %1298, %904
  br label %1300

1300:                                             ; preds = %1299, %903
  br label %1301

1301:                                             ; preds = %1300, %518
  br label %2477

1302:                                             ; preds = %122
  %1303 = load ptr, ptr %10, align 8, !tbaa !5
  %1304 = call i32 @lsame_(ptr noundef %1303, ptr noundef @.str.1)
  %1305 = icmp ne i32 %1304, 0
  br i1 %1305, label %1306, label %2476

1306:                                             ; preds = %1302
  %1307 = load ptr, ptr %11, align 8, !tbaa !5
  %1308 = call i32 @lsame_(ptr noundef %1307, ptr noundef @.str.2)
  %1309 = icmp ne i32 %1308, 0
  br i1 %1309, label %1310, label %1699

1310:                                             ; preds = %1306
  %1311 = load ptr, ptr %12, align 8, !tbaa !5
  %1312 = call i32 @lsame_(ptr noundef %1311, ptr noundef @.str.5)
  %1313 = icmp ne i32 %1312, 0
  br i1 %1313, label %1314, label %1504

1314:                                             ; preds = %1310
  %1315 = load ptr, ptr %14, align 8, !tbaa !5
  %1316 = load i32, ptr %1315, align 4, !tbaa !9
  %1317 = sub nsw i32 %1316, 1
  store i32 %1317, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %1318

1318:                                             ; preds = %1500, %1314
  %1319 = load i32, ptr %31, align 4, !tbaa !9
  %1320 = load i32, ptr %21, align 4, !tbaa !9
  %1321 = icmp sle i32 %1319, %1320
  br i1 %1321, label %1322, label %1503

1322:                                             ; preds = %1318
  %1323 = load ptr, ptr %15, align 8, !tbaa !5
  %1324 = load i32, ptr %31, align 4, !tbaa !9
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds float, ptr %1323, i64 %1325
  %1327 = load float, ptr %1326, align 4, !tbaa !11
  store float %1327, ptr %32, align 4, !tbaa !11
  %1328 = load ptr, ptr %16, align 8, !tbaa !5
  %1329 = load i32, ptr %31, align 4, !tbaa !9
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds float, ptr %1328, i64 %1330
  %1332 = load float, ptr %1331, align 4, !tbaa !11
  store float %1332, ptr %33, align 4, !tbaa !11
  %1333 = load float, ptr %32, align 4, !tbaa !11
  %1334 = fcmp une float %1333, 1.000000e+00
  br i1 %1334, label %1338, label %1335

1335:                                             ; preds = %1322
  %1336 = load float, ptr %33, align 4, !tbaa !11
  %1337 = fcmp une float %1336, 0.000000e+00
  br i1 %1337, label %1338, label %1499

1338:                                             ; preds = %1335, %1322
  %1339 = load ptr, ptr %13, align 8, !tbaa !5
  %1340 = load i32, ptr %1339, align 4, !tbaa !9
  store i32 %1340, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %1341

1341:                                             ; preds = %1495, %1338
  %1342 = load i32, ptr %30, align 4, !tbaa !9
  %1343 = load i32, ptr %22, align 4, !tbaa !9
  %1344 = icmp sle i32 %1342, %1343
  br i1 %1344, label %1345, label %1498

1345:                                             ; preds = %1341
  %1346 = load i32, ptr %30, align 4, !tbaa !9
  %1347 = load i32, ptr %31, align 4, !tbaa !9
  %1348 = add nsw i32 %1347, 1
  %1349 = load i32, ptr %19, align 4, !tbaa !9
  %1350 = mul nsw i32 %1348, %1349
  %1351 = add nsw i32 %1346, %1350
  store i32 %1351, ptr %23, align 4, !tbaa !9
  %1352 = load ptr, ptr %17, align 8, !tbaa !5
  %1353 = load i32, ptr %23, align 4, !tbaa !9
  %1354 = sext i32 %1353 to i64
  %1355 = getelementptr inbounds %struct.complex, ptr %1352, i64 %1354
  %1356 = getelementptr inbounds %struct.complex, ptr %1355, i32 0, i32 0
  %1357 = load float, ptr %1356, align 4, !tbaa !13
  %1358 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %1357, ptr %1358, align 4, !tbaa !13
  %1359 = load ptr, ptr %17, align 8, !tbaa !5
  %1360 = load i32, ptr %23, align 4, !tbaa !9
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds %struct.complex, ptr %1359, i64 %1361
  %1363 = getelementptr inbounds %struct.complex, ptr %1362, i32 0, i32 1
  %1364 = load float, ptr %1363, align 4, !tbaa !15
  %1365 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %1364, ptr %1365, align 4, !tbaa !15
  %1366 = load i32, ptr %30, align 4, !tbaa !9
  %1367 = load i32, ptr %31, align 4, !tbaa !9
  %1368 = add nsw i32 %1367, 1
  %1369 = load i32, ptr %19, align 4, !tbaa !9
  %1370 = mul nsw i32 %1368, %1369
  %1371 = add nsw i32 %1366, %1370
  store i32 %1371, ptr %23, align 4, !tbaa !9
  %1372 = load float, ptr %32, align 4, !tbaa !11
  %1373 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1374 = load float, ptr %1373, align 4, !tbaa !13
  %1375 = fmul float %1372, %1374
  %1376 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1375, ptr %1376, align 4, !tbaa !13
  %1377 = load float, ptr %32, align 4, !tbaa !11
  %1378 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1379 = load float, ptr %1378, align 4, !tbaa !15
  %1380 = fmul float %1377, %1379
  %1381 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1380, ptr %1381, align 4, !tbaa !15
  %1382 = load i32, ptr %30, align 4, !tbaa !9
  %1383 = load i32, ptr %31, align 4, !tbaa !9
  %1384 = load i32, ptr %19, align 4, !tbaa !9
  %1385 = mul nsw i32 %1383, %1384
  %1386 = add nsw i32 %1382, %1385
  store i32 %1386, ptr %24, align 4, !tbaa !9
  %1387 = load float, ptr %33, align 4, !tbaa !11
  %1388 = load ptr, ptr %17, align 8, !tbaa !5
  %1389 = load i32, ptr %24, align 4, !tbaa !9
  %1390 = sext i32 %1389 to i64
  %1391 = getelementptr inbounds %struct.complex, ptr %1388, i64 %1390
  %1392 = getelementptr inbounds %struct.complex, ptr %1391, i32 0, i32 0
  %1393 = load float, ptr %1392, align 4, !tbaa !13
  %1394 = fmul float %1387, %1393
  %1395 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1394, ptr %1395, align 4, !tbaa !13
  %1396 = load float, ptr %33, align 4, !tbaa !11
  %1397 = load ptr, ptr %17, align 8, !tbaa !5
  %1398 = load i32, ptr %24, align 4, !tbaa !9
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds %struct.complex, ptr %1397, i64 %1399
  %1401 = getelementptr inbounds %struct.complex, ptr %1400, i32 0, i32 1
  %1402 = load float, ptr %1401, align 4, !tbaa !15
  %1403 = fmul float %1396, %1402
  %1404 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1403, ptr %1404, align 4, !tbaa !15
  %1405 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1406 = load float, ptr %1405, align 4, !tbaa !13
  %1407 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1408 = load float, ptr %1407, align 4, !tbaa !13
  %1409 = fsub float %1406, %1408
  %1410 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1409, ptr %1410, align 4, !tbaa !13
  %1411 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1412 = load float, ptr %1411, align 4, !tbaa !15
  %1413 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1414 = load float, ptr %1413, align 4, !tbaa !15
  %1415 = fsub float %1412, %1414
  %1416 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1415, ptr %1416, align 4, !tbaa !15
  %1417 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1418 = load float, ptr %1417, align 4, !tbaa !13
  %1419 = load ptr, ptr %17, align 8, !tbaa !5
  %1420 = load i32, ptr %23, align 4, !tbaa !9
  %1421 = sext i32 %1420 to i64
  %1422 = getelementptr inbounds %struct.complex, ptr %1419, i64 %1421
  %1423 = getelementptr inbounds %struct.complex, ptr %1422, i32 0, i32 0
  store float %1418, ptr %1423, align 4, !tbaa !13
  %1424 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1425 = load float, ptr %1424, align 4, !tbaa !15
  %1426 = load ptr, ptr %17, align 8, !tbaa !5
  %1427 = load i32, ptr %23, align 4, !tbaa !9
  %1428 = sext i32 %1427 to i64
  %1429 = getelementptr inbounds %struct.complex, ptr %1426, i64 %1428
  %1430 = getelementptr inbounds %struct.complex, ptr %1429, i32 0, i32 1
  store float %1425, ptr %1430, align 4, !tbaa !15
  %1431 = load i32, ptr %30, align 4, !tbaa !9
  %1432 = load i32, ptr %31, align 4, !tbaa !9
  %1433 = load i32, ptr %19, align 4, !tbaa !9
  %1434 = mul nsw i32 %1432, %1433
  %1435 = add nsw i32 %1431, %1434
  store i32 %1435, ptr %23, align 4, !tbaa !9
  %1436 = load float, ptr %33, align 4, !tbaa !11
  %1437 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1438 = load float, ptr %1437, align 4, !tbaa !13
  %1439 = fmul float %1436, %1438
  %1440 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1439, ptr %1440, align 4, !tbaa !13
  %1441 = load float, ptr %33, align 4, !tbaa !11
  %1442 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1443 = load float, ptr %1442, align 4, !tbaa !15
  %1444 = fmul float %1441, %1443
  %1445 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1444, ptr %1445, align 4, !tbaa !15
  %1446 = load i32, ptr %30, align 4, !tbaa !9
  %1447 = load i32, ptr %31, align 4, !tbaa !9
  %1448 = load i32, ptr %19, align 4, !tbaa !9
  %1449 = mul nsw i32 %1447, %1448
  %1450 = add nsw i32 %1446, %1449
  store i32 %1450, ptr %24, align 4, !tbaa !9
  %1451 = load float, ptr %32, align 4, !tbaa !11
  %1452 = load ptr, ptr %17, align 8, !tbaa !5
  %1453 = load i32, ptr %24, align 4, !tbaa !9
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds %struct.complex, ptr %1452, i64 %1454
  %1456 = getelementptr inbounds %struct.complex, ptr %1455, i32 0, i32 0
  %1457 = load float, ptr %1456, align 4, !tbaa !13
  %1458 = fmul float %1451, %1457
  %1459 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1458, ptr %1459, align 4, !tbaa !13
  %1460 = load float, ptr %32, align 4, !tbaa !11
  %1461 = load ptr, ptr %17, align 8, !tbaa !5
  %1462 = load i32, ptr %24, align 4, !tbaa !9
  %1463 = sext i32 %1462 to i64
  %1464 = getelementptr inbounds %struct.complex, ptr %1461, i64 %1463
  %1465 = getelementptr inbounds %struct.complex, ptr %1464, i32 0, i32 1
  %1466 = load float, ptr %1465, align 4, !tbaa !15
  %1467 = fmul float %1460, %1466
  %1468 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1467, ptr %1468, align 4, !tbaa !15
  %1469 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1470 = load float, ptr %1469, align 4, !tbaa !13
  %1471 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1472 = load float, ptr %1471, align 4, !tbaa !13
  %1473 = fadd float %1470, %1472
  %1474 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1473, ptr %1474, align 4, !tbaa !13
  %1475 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1476 = load float, ptr %1475, align 4, !tbaa !15
  %1477 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1478 = load float, ptr %1477, align 4, !tbaa !15
  %1479 = fadd float %1476, %1478
  %1480 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1479, ptr %1480, align 4, !tbaa !15
  %1481 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1482 = load float, ptr %1481, align 4, !tbaa !13
  %1483 = load ptr, ptr %17, align 8, !tbaa !5
  %1484 = load i32, ptr %23, align 4, !tbaa !9
  %1485 = sext i32 %1484 to i64
  %1486 = getelementptr inbounds %struct.complex, ptr %1483, i64 %1485
  %1487 = getelementptr inbounds %struct.complex, ptr %1486, i32 0, i32 0
  store float %1482, ptr %1487, align 4, !tbaa !13
  %1488 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1489 = load float, ptr %1488, align 4, !tbaa !15
  %1490 = load ptr, ptr %17, align 8, !tbaa !5
  %1491 = load i32, ptr %23, align 4, !tbaa !9
  %1492 = sext i32 %1491 to i64
  %1493 = getelementptr inbounds %struct.complex, ptr %1490, i64 %1492
  %1494 = getelementptr inbounds %struct.complex, ptr %1493, i32 0, i32 1
  store float %1489, ptr %1494, align 4, !tbaa !15
  br label %1495

1495:                                             ; preds = %1345
  %1496 = load i32, ptr %30, align 4, !tbaa !9
  %1497 = add nsw i32 %1496, 1
  store i32 %1497, ptr %30, align 4, !tbaa !9
  br label %1341, !llvm.loop !29

1498:                                             ; preds = %1341
  br label %1499

1499:                                             ; preds = %1498, %1335
  br label %1500

1500:                                             ; preds = %1499
  %1501 = load i32, ptr %31, align 4, !tbaa !9
  %1502 = add nsw i32 %1501, 1
  store i32 %1502, ptr %31, align 4, !tbaa !9
  br label %1318, !llvm.loop !30

1503:                                             ; preds = %1318
  br label %1698

1504:                                             ; preds = %1310
  %1505 = load ptr, ptr %12, align 8, !tbaa !5
  %1506 = call i32 @lsame_(ptr noundef %1505, ptr noundef @.str.4)
  %1507 = icmp ne i32 %1506, 0
  br i1 %1507, label %1508, label %1697

1508:                                             ; preds = %1504
  %1509 = load ptr, ptr %14, align 8, !tbaa !5
  %1510 = load i32, ptr %1509, align 4, !tbaa !9
  %1511 = sub nsw i32 %1510, 1
  store i32 %1511, ptr %31, align 4, !tbaa !9
  br label %1512

1512:                                             ; preds = %1693, %1508
  %1513 = load i32, ptr %31, align 4, !tbaa !9
  %1514 = icmp sge i32 %1513, 1
  br i1 %1514, label %1515, label %1696

1515:                                             ; preds = %1512
  %1516 = load ptr, ptr %15, align 8, !tbaa !5
  %1517 = load i32, ptr %31, align 4, !tbaa !9
  %1518 = sext i32 %1517 to i64
  %1519 = getelementptr inbounds float, ptr %1516, i64 %1518
  %1520 = load float, ptr %1519, align 4, !tbaa !11
  store float %1520, ptr %32, align 4, !tbaa !11
  %1521 = load ptr, ptr %16, align 8, !tbaa !5
  %1522 = load i32, ptr %31, align 4, !tbaa !9
  %1523 = sext i32 %1522 to i64
  %1524 = getelementptr inbounds float, ptr %1521, i64 %1523
  %1525 = load float, ptr %1524, align 4, !tbaa !11
  store float %1525, ptr %33, align 4, !tbaa !11
  %1526 = load float, ptr %32, align 4, !tbaa !11
  %1527 = fcmp une float %1526, 1.000000e+00
  br i1 %1527, label %1531, label %1528

1528:                                             ; preds = %1515
  %1529 = load float, ptr %33, align 4, !tbaa !11
  %1530 = fcmp une float %1529, 0.000000e+00
  br i1 %1530, label %1531, label %1692

1531:                                             ; preds = %1528, %1515
  %1532 = load ptr, ptr %13, align 8, !tbaa !5
  %1533 = load i32, ptr %1532, align 4, !tbaa !9
  store i32 %1533, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %1534

1534:                                             ; preds = %1688, %1531
  %1535 = load i32, ptr %30, align 4, !tbaa !9
  %1536 = load i32, ptr %21, align 4, !tbaa !9
  %1537 = icmp sle i32 %1535, %1536
  br i1 %1537, label %1538, label %1691

1538:                                             ; preds = %1534
  %1539 = load i32, ptr %30, align 4, !tbaa !9
  %1540 = load i32, ptr %31, align 4, !tbaa !9
  %1541 = add nsw i32 %1540, 1
  %1542 = load i32, ptr %19, align 4, !tbaa !9
  %1543 = mul nsw i32 %1541, %1542
  %1544 = add nsw i32 %1539, %1543
  store i32 %1544, ptr %22, align 4, !tbaa !9
  %1545 = load ptr, ptr %17, align 8, !tbaa !5
  %1546 = load i32, ptr %22, align 4, !tbaa !9
  %1547 = sext i32 %1546 to i64
  %1548 = getelementptr inbounds %struct.complex, ptr %1545, i64 %1547
  %1549 = getelementptr inbounds %struct.complex, ptr %1548, i32 0, i32 0
  %1550 = load float, ptr %1549, align 4, !tbaa !13
  %1551 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %1550, ptr %1551, align 4, !tbaa !13
  %1552 = load ptr, ptr %17, align 8, !tbaa !5
  %1553 = load i32, ptr %22, align 4, !tbaa !9
  %1554 = sext i32 %1553 to i64
  %1555 = getelementptr inbounds %struct.complex, ptr %1552, i64 %1554
  %1556 = getelementptr inbounds %struct.complex, ptr %1555, i32 0, i32 1
  %1557 = load float, ptr %1556, align 4, !tbaa !15
  %1558 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %1557, ptr %1558, align 4, !tbaa !15
  %1559 = load i32, ptr %30, align 4, !tbaa !9
  %1560 = load i32, ptr %31, align 4, !tbaa !9
  %1561 = add nsw i32 %1560, 1
  %1562 = load i32, ptr %19, align 4, !tbaa !9
  %1563 = mul nsw i32 %1561, %1562
  %1564 = add nsw i32 %1559, %1563
  store i32 %1564, ptr %22, align 4, !tbaa !9
  %1565 = load float, ptr %32, align 4, !tbaa !11
  %1566 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1567 = load float, ptr %1566, align 4, !tbaa !13
  %1568 = fmul float %1565, %1567
  %1569 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1568, ptr %1569, align 4, !tbaa !13
  %1570 = load float, ptr %32, align 4, !tbaa !11
  %1571 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1572 = load float, ptr %1571, align 4, !tbaa !15
  %1573 = fmul float %1570, %1572
  %1574 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1573, ptr %1574, align 4, !tbaa !15
  %1575 = load i32, ptr %30, align 4, !tbaa !9
  %1576 = load i32, ptr %31, align 4, !tbaa !9
  %1577 = load i32, ptr %19, align 4, !tbaa !9
  %1578 = mul nsw i32 %1576, %1577
  %1579 = add nsw i32 %1575, %1578
  store i32 %1579, ptr %23, align 4, !tbaa !9
  %1580 = load float, ptr %33, align 4, !tbaa !11
  %1581 = load ptr, ptr %17, align 8, !tbaa !5
  %1582 = load i32, ptr %23, align 4, !tbaa !9
  %1583 = sext i32 %1582 to i64
  %1584 = getelementptr inbounds %struct.complex, ptr %1581, i64 %1583
  %1585 = getelementptr inbounds %struct.complex, ptr %1584, i32 0, i32 0
  %1586 = load float, ptr %1585, align 4, !tbaa !13
  %1587 = fmul float %1580, %1586
  %1588 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1587, ptr %1588, align 4, !tbaa !13
  %1589 = load float, ptr %33, align 4, !tbaa !11
  %1590 = load ptr, ptr %17, align 8, !tbaa !5
  %1591 = load i32, ptr %23, align 4, !tbaa !9
  %1592 = sext i32 %1591 to i64
  %1593 = getelementptr inbounds %struct.complex, ptr %1590, i64 %1592
  %1594 = getelementptr inbounds %struct.complex, ptr %1593, i32 0, i32 1
  %1595 = load float, ptr %1594, align 4, !tbaa !15
  %1596 = fmul float %1589, %1595
  %1597 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1596, ptr %1597, align 4, !tbaa !15
  %1598 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1599 = load float, ptr %1598, align 4, !tbaa !13
  %1600 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1601 = load float, ptr %1600, align 4, !tbaa !13
  %1602 = fsub float %1599, %1601
  %1603 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1602, ptr %1603, align 4, !tbaa !13
  %1604 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1605 = load float, ptr %1604, align 4, !tbaa !15
  %1606 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1607 = load float, ptr %1606, align 4, !tbaa !15
  %1608 = fsub float %1605, %1607
  %1609 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1608, ptr %1609, align 4, !tbaa !15
  %1610 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1611 = load float, ptr %1610, align 4, !tbaa !13
  %1612 = load ptr, ptr %17, align 8, !tbaa !5
  %1613 = load i32, ptr %22, align 4, !tbaa !9
  %1614 = sext i32 %1613 to i64
  %1615 = getelementptr inbounds %struct.complex, ptr %1612, i64 %1614
  %1616 = getelementptr inbounds %struct.complex, ptr %1615, i32 0, i32 0
  store float %1611, ptr %1616, align 4, !tbaa !13
  %1617 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1618 = load float, ptr %1617, align 4, !tbaa !15
  %1619 = load ptr, ptr %17, align 8, !tbaa !5
  %1620 = load i32, ptr %22, align 4, !tbaa !9
  %1621 = sext i32 %1620 to i64
  %1622 = getelementptr inbounds %struct.complex, ptr %1619, i64 %1621
  %1623 = getelementptr inbounds %struct.complex, ptr %1622, i32 0, i32 1
  store float %1618, ptr %1623, align 4, !tbaa !15
  %1624 = load i32, ptr %30, align 4, !tbaa !9
  %1625 = load i32, ptr %31, align 4, !tbaa !9
  %1626 = load i32, ptr %19, align 4, !tbaa !9
  %1627 = mul nsw i32 %1625, %1626
  %1628 = add nsw i32 %1624, %1627
  store i32 %1628, ptr %22, align 4, !tbaa !9
  %1629 = load float, ptr %33, align 4, !tbaa !11
  %1630 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1631 = load float, ptr %1630, align 4, !tbaa !13
  %1632 = fmul float %1629, %1631
  %1633 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1632, ptr %1633, align 4, !tbaa !13
  %1634 = load float, ptr %33, align 4, !tbaa !11
  %1635 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1636 = load float, ptr %1635, align 4, !tbaa !15
  %1637 = fmul float %1634, %1636
  %1638 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1637, ptr %1638, align 4, !tbaa !15
  %1639 = load i32, ptr %30, align 4, !tbaa !9
  %1640 = load i32, ptr %31, align 4, !tbaa !9
  %1641 = load i32, ptr %19, align 4, !tbaa !9
  %1642 = mul nsw i32 %1640, %1641
  %1643 = add nsw i32 %1639, %1642
  store i32 %1643, ptr %23, align 4, !tbaa !9
  %1644 = load float, ptr %32, align 4, !tbaa !11
  %1645 = load ptr, ptr %17, align 8, !tbaa !5
  %1646 = load i32, ptr %23, align 4, !tbaa !9
  %1647 = sext i32 %1646 to i64
  %1648 = getelementptr inbounds %struct.complex, ptr %1645, i64 %1647
  %1649 = getelementptr inbounds %struct.complex, ptr %1648, i32 0, i32 0
  %1650 = load float, ptr %1649, align 4, !tbaa !13
  %1651 = fmul float %1644, %1650
  %1652 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1651, ptr %1652, align 4, !tbaa !13
  %1653 = load float, ptr %32, align 4, !tbaa !11
  %1654 = load ptr, ptr %17, align 8, !tbaa !5
  %1655 = load i32, ptr %23, align 4, !tbaa !9
  %1656 = sext i32 %1655 to i64
  %1657 = getelementptr inbounds %struct.complex, ptr %1654, i64 %1656
  %1658 = getelementptr inbounds %struct.complex, ptr %1657, i32 0, i32 1
  %1659 = load float, ptr %1658, align 4, !tbaa !15
  %1660 = fmul float %1653, %1659
  %1661 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1660, ptr %1661, align 4, !tbaa !15
  %1662 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1663 = load float, ptr %1662, align 4, !tbaa !13
  %1664 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1665 = load float, ptr %1664, align 4, !tbaa !13
  %1666 = fadd float %1663, %1665
  %1667 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1666, ptr %1667, align 4, !tbaa !13
  %1668 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1669 = load float, ptr %1668, align 4, !tbaa !15
  %1670 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1671 = load float, ptr %1670, align 4, !tbaa !15
  %1672 = fadd float %1669, %1671
  %1673 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1672, ptr %1673, align 4, !tbaa !15
  %1674 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1675 = load float, ptr %1674, align 4, !tbaa !13
  %1676 = load ptr, ptr %17, align 8, !tbaa !5
  %1677 = load i32, ptr %22, align 4, !tbaa !9
  %1678 = sext i32 %1677 to i64
  %1679 = getelementptr inbounds %struct.complex, ptr %1676, i64 %1678
  %1680 = getelementptr inbounds %struct.complex, ptr %1679, i32 0, i32 0
  store float %1675, ptr %1680, align 4, !tbaa !13
  %1681 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1682 = load float, ptr %1681, align 4, !tbaa !15
  %1683 = load ptr, ptr %17, align 8, !tbaa !5
  %1684 = load i32, ptr %22, align 4, !tbaa !9
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds %struct.complex, ptr %1683, i64 %1685
  %1687 = getelementptr inbounds %struct.complex, ptr %1686, i32 0, i32 1
  store float %1682, ptr %1687, align 4, !tbaa !15
  br label %1688

1688:                                             ; preds = %1538
  %1689 = load i32, ptr %30, align 4, !tbaa !9
  %1690 = add nsw i32 %1689, 1
  store i32 %1690, ptr %30, align 4, !tbaa !9
  br label %1534, !llvm.loop !31

1691:                                             ; preds = %1534
  br label %1692

1692:                                             ; preds = %1691, %1528
  br label %1693

1693:                                             ; preds = %1692
  %1694 = load i32, ptr %31, align 4, !tbaa !9
  %1695 = add nsw i32 %1694, -1
  store i32 %1695, ptr %31, align 4, !tbaa !9
  br label %1512, !llvm.loop !32

1696:                                             ; preds = %1512
  br label %1697

1697:                                             ; preds = %1696, %1504
  br label %1698

1698:                                             ; preds = %1697, %1503
  br label %2475

1699:                                             ; preds = %1306
  %1700 = load ptr, ptr %11, align 8, !tbaa !5
  %1701 = call i32 @lsame_(ptr noundef %1700, ptr noundef @.str.3)
  %1702 = icmp ne i32 %1701, 0
  br i1 %1702, label %1703, label %2078

1703:                                             ; preds = %1699
  %1704 = load ptr, ptr %12, align 8, !tbaa !5
  %1705 = call i32 @lsame_(ptr noundef %1704, ptr noundef @.str.5)
  %1706 = icmp ne i32 %1705, 0
  br i1 %1706, label %1707, label %1890

1707:                                             ; preds = %1703
  %1708 = load ptr, ptr %14, align 8, !tbaa !5
  %1709 = load i32, ptr %1708, align 4, !tbaa !9
  store i32 %1709, ptr %21, align 4, !tbaa !9
  store i32 2, ptr %31, align 4, !tbaa !9
  br label %1710

1710:                                             ; preds = %1886, %1707
  %1711 = load i32, ptr %31, align 4, !tbaa !9
  %1712 = load i32, ptr %21, align 4, !tbaa !9
  %1713 = icmp sle i32 %1711, %1712
  br i1 %1713, label %1714, label %1889

1714:                                             ; preds = %1710
  %1715 = load ptr, ptr %15, align 8, !tbaa !5
  %1716 = load i32, ptr %31, align 4, !tbaa !9
  %1717 = sub nsw i32 %1716, 1
  %1718 = sext i32 %1717 to i64
  %1719 = getelementptr inbounds float, ptr %1715, i64 %1718
  %1720 = load float, ptr %1719, align 4, !tbaa !11
  store float %1720, ptr %32, align 4, !tbaa !11
  %1721 = load ptr, ptr %16, align 8, !tbaa !5
  %1722 = load i32, ptr %31, align 4, !tbaa !9
  %1723 = sub nsw i32 %1722, 1
  %1724 = sext i32 %1723 to i64
  %1725 = getelementptr inbounds float, ptr %1721, i64 %1724
  %1726 = load float, ptr %1725, align 4, !tbaa !11
  store float %1726, ptr %33, align 4, !tbaa !11
  %1727 = load float, ptr %32, align 4, !tbaa !11
  %1728 = fcmp une float %1727, 1.000000e+00
  br i1 %1728, label %1732, label %1729

1729:                                             ; preds = %1714
  %1730 = load float, ptr %33, align 4, !tbaa !11
  %1731 = fcmp une float %1730, 0.000000e+00
  br i1 %1731, label %1732, label %1885

1732:                                             ; preds = %1729, %1714
  %1733 = load ptr, ptr %13, align 8, !tbaa !5
  %1734 = load i32, ptr %1733, align 4, !tbaa !9
  store i32 %1734, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %1735

1735:                                             ; preds = %1881, %1732
  %1736 = load i32, ptr %30, align 4, !tbaa !9
  %1737 = load i32, ptr %22, align 4, !tbaa !9
  %1738 = icmp sle i32 %1736, %1737
  br i1 %1738, label %1739, label %1884

1739:                                             ; preds = %1735
  %1740 = load i32, ptr %30, align 4, !tbaa !9
  %1741 = load i32, ptr %31, align 4, !tbaa !9
  %1742 = load i32, ptr %19, align 4, !tbaa !9
  %1743 = mul nsw i32 %1741, %1742
  %1744 = add nsw i32 %1740, %1743
  store i32 %1744, ptr %23, align 4, !tbaa !9
  %1745 = load ptr, ptr %17, align 8, !tbaa !5
  %1746 = load i32, ptr %23, align 4, !tbaa !9
  %1747 = sext i32 %1746 to i64
  %1748 = getelementptr inbounds %struct.complex, ptr %1745, i64 %1747
  %1749 = getelementptr inbounds %struct.complex, ptr %1748, i32 0, i32 0
  %1750 = load float, ptr %1749, align 4, !tbaa !13
  %1751 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %1750, ptr %1751, align 4, !tbaa !13
  %1752 = load ptr, ptr %17, align 8, !tbaa !5
  %1753 = load i32, ptr %23, align 4, !tbaa !9
  %1754 = sext i32 %1753 to i64
  %1755 = getelementptr inbounds %struct.complex, ptr %1752, i64 %1754
  %1756 = getelementptr inbounds %struct.complex, ptr %1755, i32 0, i32 1
  %1757 = load float, ptr %1756, align 4, !tbaa !15
  %1758 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %1757, ptr %1758, align 4, !tbaa !15
  %1759 = load i32, ptr %30, align 4, !tbaa !9
  %1760 = load i32, ptr %31, align 4, !tbaa !9
  %1761 = load i32, ptr %19, align 4, !tbaa !9
  %1762 = mul nsw i32 %1760, %1761
  %1763 = add nsw i32 %1759, %1762
  store i32 %1763, ptr %23, align 4, !tbaa !9
  %1764 = load float, ptr %32, align 4, !tbaa !11
  %1765 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1766 = load float, ptr %1765, align 4, !tbaa !13
  %1767 = fmul float %1764, %1766
  %1768 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1767, ptr %1768, align 4, !tbaa !13
  %1769 = load float, ptr %32, align 4, !tbaa !11
  %1770 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1771 = load float, ptr %1770, align 4, !tbaa !15
  %1772 = fmul float %1769, %1771
  %1773 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1772, ptr %1773, align 4, !tbaa !15
  %1774 = load i32, ptr %30, align 4, !tbaa !9
  %1775 = load i32, ptr %19, align 4, !tbaa !9
  %1776 = add nsw i32 %1774, %1775
  store i32 %1776, ptr %24, align 4, !tbaa !9
  %1777 = load float, ptr %33, align 4, !tbaa !11
  %1778 = load ptr, ptr %17, align 8, !tbaa !5
  %1779 = load i32, ptr %24, align 4, !tbaa !9
  %1780 = sext i32 %1779 to i64
  %1781 = getelementptr inbounds %struct.complex, ptr %1778, i64 %1780
  %1782 = getelementptr inbounds %struct.complex, ptr %1781, i32 0, i32 0
  %1783 = load float, ptr %1782, align 4, !tbaa !13
  %1784 = fmul float %1777, %1783
  %1785 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1784, ptr %1785, align 4, !tbaa !13
  %1786 = load float, ptr %33, align 4, !tbaa !11
  %1787 = load ptr, ptr %17, align 8, !tbaa !5
  %1788 = load i32, ptr %24, align 4, !tbaa !9
  %1789 = sext i32 %1788 to i64
  %1790 = getelementptr inbounds %struct.complex, ptr %1787, i64 %1789
  %1791 = getelementptr inbounds %struct.complex, ptr %1790, i32 0, i32 1
  %1792 = load float, ptr %1791, align 4, !tbaa !15
  %1793 = fmul float %1786, %1792
  %1794 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1793, ptr %1794, align 4, !tbaa !15
  %1795 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1796 = load float, ptr %1795, align 4, !tbaa !13
  %1797 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1798 = load float, ptr %1797, align 4, !tbaa !13
  %1799 = fsub float %1796, %1798
  %1800 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1799, ptr %1800, align 4, !tbaa !13
  %1801 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1802 = load float, ptr %1801, align 4, !tbaa !15
  %1803 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1804 = load float, ptr %1803, align 4, !tbaa !15
  %1805 = fsub float %1802, %1804
  %1806 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1805, ptr %1806, align 4, !tbaa !15
  %1807 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1808 = load float, ptr %1807, align 4, !tbaa !13
  %1809 = load ptr, ptr %17, align 8, !tbaa !5
  %1810 = load i32, ptr %23, align 4, !tbaa !9
  %1811 = sext i32 %1810 to i64
  %1812 = getelementptr inbounds %struct.complex, ptr %1809, i64 %1811
  %1813 = getelementptr inbounds %struct.complex, ptr %1812, i32 0, i32 0
  store float %1808, ptr %1813, align 4, !tbaa !13
  %1814 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1815 = load float, ptr %1814, align 4, !tbaa !15
  %1816 = load ptr, ptr %17, align 8, !tbaa !5
  %1817 = load i32, ptr %23, align 4, !tbaa !9
  %1818 = sext i32 %1817 to i64
  %1819 = getelementptr inbounds %struct.complex, ptr %1816, i64 %1818
  %1820 = getelementptr inbounds %struct.complex, ptr %1819, i32 0, i32 1
  store float %1815, ptr %1820, align 4, !tbaa !15
  %1821 = load i32, ptr %30, align 4, !tbaa !9
  %1822 = load i32, ptr %19, align 4, !tbaa !9
  %1823 = add nsw i32 %1821, %1822
  store i32 %1823, ptr %23, align 4, !tbaa !9
  %1824 = load float, ptr %33, align 4, !tbaa !11
  %1825 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1826 = load float, ptr %1825, align 4, !tbaa !13
  %1827 = fmul float %1824, %1826
  %1828 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1827, ptr %1828, align 4, !tbaa !13
  %1829 = load float, ptr %33, align 4, !tbaa !11
  %1830 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1831 = load float, ptr %1830, align 4, !tbaa !15
  %1832 = fmul float %1829, %1831
  %1833 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1832, ptr %1833, align 4, !tbaa !15
  %1834 = load i32, ptr %30, align 4, !tbaa !9
  %1835 = load i32, ptr %19, align 4, !tbaa !9
  %1836 = add nsw i32 %1834, %1835
  store i32 %1836, ptr %24, align 4, !tbaa !9
  %1837 = load float, ptr %32, align 4, !tbaa !11
  %1838 = load ptr, ptr %17, align 8, !tbaa !5
  %1839 = load i32, ptr %24, align 4, !tbaa !9
  %1840 = sext i32 %1839 to i64
  %1841 = getelementptr inbounds %struct.complex, ptr %1838, i64 %1840
  %1842 = getelementptr inbounds %struct.complex, ptr %1841, i32 0, i32 0
  %1843 = load float, ptr %1842, align 4, !tbaa !13
  %1844 = fmul float %1837, %1843
  %1845 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1844, ptr %1845, align 4, !tbaa !13
  %1846 = load float, ptr %32, align 4, !tbaa !11
  %1847 = load ptr, ptr %17, align 8, !tbaa !5
  %1848 = load i32, ptr %24, align 4, !tbaa !9
  %1849 = sext i32 %1848 to i64
  %1850 = getelementptr inbounds %struct.complex, ptr %1847, i64 %1849
  %1851 = getelementptr inbounds %struct.complex, ptr %1850, i32 0, i32 1
  %1852 = load float, ptr %1851, align 4, !tbaa !15
  %1853 = fmul float %1846, %1852
  %1854 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1853, ptr %1854, align 4, !tbaa !15
  %1855 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1856 = load float, ptr %1855, align 4, !tbaa !13
  %1857 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1858 = load float, ptr %1857, align 4, !tbaa !13
  %1859 = fadd float %1856, %1858
  %1860 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1859, ptr %1860, align 4, !tbaa !13
  %1861 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1862 = load float, ptr %1861, align 4, !tbaa !15
  %1863 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1864 = load float, ptr %1863, align 4, !tbaa !15
  %1865 = fadd float %1862, %1864
  %1866 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1865, ptr %1866, align 4, !tbaa !15
  %1867 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1868 = load float, ptr %1867, align 4, !tbaa !13
  %1869 = load ptr, ptr %17, align 8, !tbaa !5
  %1870 = load i32, ptr %23, align 4, !tbaa !9
  %1871 = sext i32 %1870 to i64
  %1872 = getelementptr inbounds %struct.complex, ptr %1869, i64 %1871
  %1873 = getelementptr inbounds %struct.complex, ptr %1872, i32 0, i32 0
  store float %1868, ptr %1873, align 4, !tbaa !13
  %1874 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %1875 = load float, ptr %1874, align 4, !tbaa !15
  %1876 = load ptr, ptr %17, align 8, !tbaa !5
  %1877 = load i32, ptr %23, align 4, !tbaa !9
  %1878 = sext i32 %1877 to i64
  %1879 = getelementptr inbounds %struct.complex, ptr %1876, i64 %1878
  %1880 = getelementptr inbounds %struct.complex, ptr %1879, i32 0, i32 1
  store float %1875, ptr %1880, align 4, !tbaa !15
  br label %1881

1881:                                             ; preds = %1739
  %1882 = load i32, ptr %30, align 4, !tbaa !9
  %1883 = add nsw i32 %1882, 1
  store i32 %1883, ptr %30, align 4, !tbaa !9
  br label %1735, !llvm.loop !33

1884:                                             ; preds = %1735
  br label %1885

1885:                                             ; preds = %1884, %1729
  br label %1886

1886:                                             ; preds = %1885
  %1887 = load i32, ptr %31, align 4, !tbaa !9
  %1888 = add nsw i32 %1887, 1
  store i32 %1888, ptr %31, align 4, !tbaa !9
  br label %1710, !llvm.loop !34

1889:                                             ; preds = %1710
  br label %2077

1890:                                             ; preds = %1703
  %1891 = load ptr, ptr %12, align 8, !tbaa !5
  %1892 = call i32 @lsame_(ptr noundef %1891, ptr noundef @.str.4)
  %1893 = icmp ne i32 %1892, 0
  br i1 %1893, label %1894, label %2076

1894:                                             ; preds = %1890
  %1895 = load ptr, ptr %14, align 8, !tbaa !5
  %1896 = load i32, ptr %1895, align 4, !tbaa !9
  store i32 %1896, ptr %31, align 4, !tbaa !9
  br label %1897

1897:                                             ; preds = %2072, %1894
  %1898 = load i32, ptr %31, align 4, !tbaa !9
  %1899 = icmp sge i32 %1898, 2
  br i1 %1899, label %1900, label %2075

1900:                                             ; preds = %1897
  %1901 = load ptr, ptr %15, align 8, !tbaa !5
  %1902 = load i32, ptr %31, align 4, !tbaa !9
  %1903 = sub nsw i32 %1902, 1
  %1904 = sext i32 %1903 to i64
  %1905 = getelementptr inbounds float, ptr %1901, i64 %1904
  %1906 = load float, ptr %1905, align 4, !tbaa !11
  store float %1906, ptr %32, align 4, !tbaa !11
  %1907 = load ptr, ptr %16, align 8, !tbaa !5
  %1908 = load i32, ptr %31, align 4, !tbaa !9
  %1909 = sub nsw i32 %1908, 1
  %1910 = sext i32 %1909 to i64
  %1911 = getelementptr inbounds float, ptr %1907, i64 %1910
  %1912 = load float, ptr %1911, align 4, !tbaa !11
  store float %1912, ptr %33, align 4, !tbaa !11
  %1913 = load float, ptr %32, align 4, !tbaa !11
  %1914 = fcmp une float %1913, 1.000000e+00
  br i1 %1914, label %1918, label %1915

1915:                                             ; preds = %1900
  %1916 = load float, ptr %33, align 4, !tbaa !11
  %1917 = fcmp une float %1916, 0.000000e+00
  br i1 %1917, label %1918, label %2071

1918:                                             ; preds = %1915, %1900
  %1919 = load ptr, ptr %13, align 8, !tbaa !5
  %1920 = load i32, ptr %1919, align 4, !tbaa !9
  store i32 %1920, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %1921

1921:                                             ; preds = %2067, %1918
  %1922 = load i32, ptr %30, align 4, !tbaa !9
  %1923 = load i32, ptr %21, align 4, !tbaa !9
  %1924 = icmp sle i32 %1922, %1923
  br i1 %1924, label %1925, label %2070

1925:                                             ; preds = %1921
  %1926 = load i32, ptr %30, align 4, !tbaa !9
  %1927 = load i32, ptr %31, align 4, !tbaa !9
  %1928 = load i32, ptr %19, align 4, !tbaa !9
  %1929 = mul nsw i32 %1927, %1928
  %1930 = add nsw i32 %1926, %1929
  store i32 %1930, ptr %22, align 4, !tbaa !9
  %1931 = load ptr, ptr %17, align 8, !tbaa !5
  %1932 = load i32, ptr %22, align 4, !tbaa !9
  %1933 = sext i32 %1932 to i64
  %1934 = getelementptr inbounds %struct.complex, ptr %1931, i64 %1933
  %1935 = getelementptr inbounds %struct.complex, ptr %1934, i32 0, i32 0
  %1936 = load float, ptr %1935, align 4, !tbaa !13
  %1937 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %1936, ptr %1937, align 4, !tbaa !13
  %1938 = load ptr, ptr %17, align 8, !tbaa !5
  %1939 = load i32, ptr %22, align 4, !tbaa !9
  %1940 = sext i32 %1939 to i64
  %1941 = getelementptr inbounds %struct.complex, ptr %1938, i64 %1940
  %1942 = getelementptr inbounds %struct.complex, ptr %1941, i32 0, i32 1
  %1943 = load float, ptr %1942, align 4, !tbaa !15
  %1944 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %1943, ptr %1944, align 4, !tbaa !15
  %1945 = load i32, ptr %30, align 4, !tbaa !9
  %1946 = load i32, ptr %31, align 4, !tbaa !9
  %1947 = load i32, ptr %19, align 4, !tbaa !9
  %1948 = mul nsw i32 %1946, %1947
  %1949 = add nsw i32 %1945, %1948
  store i32 %1949, ptr %22, align 4, !tbaa !9
  %1950 = load float, ptr %32, align 4, !tbaa !11
  %1951 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %1952 = load float, ptr %1951, align 4, !tbaa !13
  %1953 = fmul float %1950, %1952
  %1954 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %1953, ptr %1954, align 4, !tbaa !13
  %1955 = load float, ptr %32, align 4, !tbaa !11
  %1956 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %1957 = load float, ptr %1956, align 4, !tbaa !15
  %1958 = fmul float %1955, %1957
  %1959 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %1958, ptr %1959, align 4, !tbaa !15
  %1960 = load i32, ptr %30, align 4, !tbaa !9
  %1961 = load i32, ptr %19, align 4, !tbaa !9
  %1962 = add nsw i32 %1960, %1961
  store i32 %1962, ptr %23, align 4, !tbaa !9
  %1963 = load float, ptr %33, align 4, !tbaa !11
  %1964 = load ptr, ptr %17, align 8, !tbaa !5
  %1965 = load i32, ptr %23, align 4, !tbaa !9
  %1966 = sext i32 %1965 to i64
  %1967 = getelementptr inbounds %struct.complex, ptr %1964, i64 %1966
  %1968 = getelementptr inbounds %struct.complex, ptr %1967, i32 0, i32 0
  %1969 = load float, ptr %1968, align 4, !tbaa !13
  %1970 = fmul float %1963, %1969
  %1971 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %1970, ptr %1971, align 4, !tbaa !13
  %1972 = load float, ptr %33, align 4, !tbaa !11
  %1973 = load ptr, ptr %17, align 8, !tbaa !5
  %1974 = load i32, ptr %23, align 4, !tbaa !9
  %1975 = sext i32 %1974 to i64
  %1976 = getelementptr inbounds %struct.complex, ptr %1973, i64 %1975
  %1977 = getelementptr inbounds %struct.complex, ptr %1976, i32 0, i32 1
  %1978 = load float, ptr %1977, align 4, !tbaa !15
  %1979 = fmul float %1972, %1978
  %1980 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %1979, ptr %1980, align 4, !tbaa !15
  %1981 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %1982 = load float, ptr %1981, align 4, !tbaa !13
  %1983 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %1984 = load float, ptr %1983, align 4, !tbaa !13
  %1985 = fsub float %1982, %1984
  %1986 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %1985, ptr %1986, align 4, !tbaa !13
  %1987 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %1988 = load float, ptr %1987, align 4, !tbaa !15
  %1989 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %1990 = load float, ptr %1989, align 4, !tbaa !15
  %1991 = fsub float %1988, %1990
  %1992 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %1991, ptr %1992, align 4, !tbaa !15
  %1993 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %1994 = load float, ptr %1993, align 4, !tbaa !13
  %1995 = load ptr, ptr %17, align 8, !tbaa !5
  %1996 = load i32, ptr %22, align 4, !tbaa !9
  %1997 = sext i32 %1996 to i64
  %1998 = getelementptr inbounds %struct.complex, ptr %1995, i64 %1997
  %1999 = getelementptr inbounds %struct.complex, ptr %1998, i32 0, i32 0
  store float %1994, ptr %1999, align 4, !tbaa !13
  %2000 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2001 = load float, ptr %2000, align 4, !tbaa !15
  %2002 = load ptr, ptr %17, align 8, !tbaa !5
  %2003 = load i32, ptr %22, align 4, !tbaa !9
  %2004 = sext i32 %2003 to i64
  %2005 = getelementptr inbounds %struct.complex, ptr %2002, i64 %2004
  %2006 = getelementptr inbounds %struct.complex, ptr %2005, i32 0, i32 1
  store float %2001, ptr %2006, align 4, !tbaa !15
  %2007 = load i32, ptr %30, align 4, !tbaa !9
  %2008 = load i32, ptr %19, align 4, !tbaa !9
  %2009 = add nsw i32 %2007, %2008
  store i32 %2009, ptr %22, align 4, !tbaa !9
  %2010 = load float, ptr %33, align 4, !tbaa !11
  %2011 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %2012 = load float, ptr %2011, align 4, !tbaa !13
  %2013 = fmul float %2010, %2012
  %2014 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %2013, ptr %2014, align 4, !tbaa !13
  %2015 = load float, ptr %33, align 4, !tbaa !11
  %2016 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %2017 = load float, ptr %2016, align 4, !tbaa !15
  %2018 = fmul float %2015, %2017
  %2019 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %2018, ptr %2019, align 4, !tbaa !15
  %2020 = load i32, ptr %30, align 4, !tbaa !9
  %2021 = load i32, ptr %19, align 4, !tbaa !9
  %2022 = add nsw i32 %2020, %2021
  store i32 %2022, ptr %23, align 4, !tbaa !9
  %2023 = load float, ptr %32, align 4, !tbaa !11
  %2024 = load ptr, ptr %17, align 8, !tbaa !5
  %2025 = load i32, ptr %23, align 4, !tbaa !9
  %2026 = sext i32 %2025 to i64
  %2027 = getelementptr inbounds %struct.complex, ptr %2024, i64 %2026
  %2028 = getelementptr inbounds %struct.complex, ptr %2027, i32 0, i32 0
  %2029 = load float, ptr %2028, align 4, !tbaa !13
  %2030 = fmul float %2023, %2029
  %2031 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %2030, ptr %2031, align 4, !tbaa !13
  %2032 = load float, ptr %32, align 4, !tbaa !11
  %2033 = load ptr, ptr %17, align 8, !tbaa !5
  %2034 = load i32, ptr %23, align 4, !tbaa !9
  %2035 = sext i32 %2034 to i64
  %2036 = getelementptr inbounds %struct.complex, ptr %2033, i64 %2035
  %2037 = getelementptr inbounds %struct.complex, ptr %2036, i32 0, i32 1
  %2038 = load float, ptr %2037, align 4, !tbaa !15
  %2039 = fmul float %2032, %2038
  %2040 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %2039, ptr %2040, align 4, !tbaa !15
  %2041 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %2042 = load float, ptr %2041, align 4, !tbaa !13
  %2043 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %2044 = load float, ptr %2043, align 4, !tbaa !13
  %2045 = fadd float %2042, %2044
  %2046 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %2045, ptr %2046, align 4, !tbaa !13
  %2047 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %2048 = load float, ptr %2047, align 4, !tbaa !15
  %2049 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %2050 = load float, ptr %2049, align 4, !tbaa !15
  %2051 = fadd float %2048, %2050
  %2052 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %2051, ptr %2052, align 4, !tbaa !15
  %2053 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %2054 = load float, ptr %2053, align 4, !tbaa !13
  %2055 = load ptr, ptr %17, align 8, !tbaa !5
  %2056 = load i32, ptr %22, align 4, !tbaa !9
  %2057 = sext i32 %2056 to i64
  %2058 = getelementptr inbounds %struct.complex, ptr %2055, i64 %2057
  %2059 = getelementptr inbounds %struct.complex, ptr %2058, i32 0, i32 0
  store float %2054, ptr %2059, align 4, !tbaa !13
  %2060 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2061 = load float, ptr %2060, align 4, !tbaa !15
  %2062 = load ptr, ptr %17, align 8, !tbaa !5
  %2063 = load i32, ptr %22, align 4, !tbaa !9
  %2064 = sext i32 %2063 to i64
  %2065 = getelementptr inbounds %struct.complex, ptr %2062, i64 %2064
  %2066 = getelementptr inbounds %struct.complex, ptr %2065, i32 0, i32 1
  store float %2061, ptr %2066, align 4, !tbaa !15
  br label %2067

2067:                                             ; preds = %1925
  %2068 = load i32, ptr %30, align 4, !tbaa !9
  %2069 = add nsw i32 %2068, 1
  store i32 %2069, ptr %30, align 4, !tbaa !9
  br label %1921, !llvm.loop !35

2070:                                             ; preds = %1921
  br label %2071

2071:                                             ; preds = %2070, %1915
  br label %2072

2072:                                             ; preds = %2071
  %2073 = load i32, ptr %31, align 4, !tbaa !9
  %2074 = add nsw i32 %2073, -1
  store i32 %2074, ptr %31, align 4, !tbaa !9
  br label %1897, !llvm.loop !36

2075:                                             ; preds = %1897
  br label %2076

2076:                                             ; preds = %2075, %1890
  br label %2077

2077:                                             ; preds = %2076, %1889
  br label %2474

2078:                                             ; preds = %1699
  %2079 = load ptr, ptr %11, align 8, !tbaa !5
  %2080 = call i32 @lsame_(ptr noundef %2079, ptr noundef @.str.4)
  %2081 = icmp ne i32 %2080, 0
  br i1 %2081, label %2082, label %2473

2082:                                             ; preds = %2078
  %2083 = load ptr, ptr %12, align 8, !tbaa !5
  %2084 = call i32 @lsame_(ptr noundef %2083, ptr noundef @.str.5)
  %2085 = icmp ne i32 %2084, 0
  br i1 %2085, label %2086, label %2277

2086:                                             ; preds = %2082
  %2087 = load ptr, ptr %14, align 8, !tbaa !5
  %2088 = load i32, ptr %2087, align 4, !tbaa !9
  %2089 = sub nsw i32 %2088, 1
  store i32 %2089, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %2090

2090:                                             ; preds = %2273, %2086
  %2091 = load i32, ptr %31, align 4, !tbaa !9
  %2092 = load i32, ptr %21, align 4, !tbaa !9
  %2093 = icmp sle i32 %2091, %2092
  br i1 %2093, label %2094, label %2276

2094:                                             ; preds = %2090
  %2095 = load ptr, ptr %15, align 8, !tbaa !5
  %2096 = load i32, ptr %31, align 4, !tbaa !9
  %2097 = sext i32 %2096 to i64
  %2098 = getelementptr inbounds float, ptr %2095, i64 %2097
  %2099 = load float, ptr %2098, align 4, !tbaa !11
  store float %2099, ptr %32, align 4, !tbaa !11
  %2100 = load ptr, ptr %16, align 8, !tbaa !5
  %2101 = load i32, ptr %31, align 4, !tbaa !9
  %2102 = sext i32 %2101 to i64
  %2103 = getelementptr inbounds float, ptr %2100, i64 %2102
  %2104 = load float, ptr %2103, align 4, !tbaa !11
  store float %2104, ptr %33, align 4, !tbaa !11
  %2105 = load float, ptr %32, align 4, !tbaa !11
  %2106 = fcmp une float %2105, 1.000000e+00
  br i1 %2106, label %2110, label %2107

2107:                                             ; preds = %2094
  %2108 = load float, ptr %33, align 4, !tbaa !11
  %2109 = fcmp une float %2108, 0.000000e+00
  br i1 %2109, label %2110, label %2272

2110:                                             ; preds = %2107, %2094
  %2111 = load ptr, ptr %13, align 8, !tbaa !5
  %2112 = load i32, ptr %2111, align 4, !tbaa !9
  store i32 %2112, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %2113

2113:                                             ; preds = %2268, %2110
  %2114 = load i32, ptr %30, align 4, !tbaa !9
  %2115 = load i32, ptr %22, align 4, !tbaa !9
  %2116 = icmp sle i32 %2114, %2115
  br i1 %2116, label %2117, label %2271

2117:                                             ; preds = %2113
  %2118 = load i32, ptr %30, align 4, !tbaa !9
  %2119 = load i32, ptr %31, align 4, !tbaa !9
  %2120 = load i32, ptr %19, align 4, !tbaa !9
  %2121 = mul nsw i32 %2119, %2120
  %2122 = add nsw i32 %2118, %2121
  store i32 %2122, ptr %23, align 4, !tbaa !9
  %2123 = load ptr, ptr %17, align 8, !tbaa !5
  %2124 = load i32, ptr %23, align 4, !tbaa !9
  %2125 = sext i32 %2124 to i64
  %2126 = getelementptr inbounds %struct.complex, ptr %2123, i64 %2125
  %2127 = getelementptr inbounds %struct.complex, ptr %2126, i32 0, i32 0
  %2128 = load float, ptr %2127, align 4, !tbaa !13
  %2129 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %2128, ptr %2129, align 4, !tbaa !13
  %2130 = load ptr, ptr %17, align 8, !tbaa !5
  %2131 = load i32, ptr %23, align 4, !tbaa !9
  %2132 = sext i32 %2131 to i64
  %2133 = getelementptr inbounds %struct.complex, ptr %2130, i64 %2132
  %2134 = getelementptr inbounds %struct.complex, ptr %2133, i32 0, i32 1
  %2135 = load float, ptr %2134, align 4, !tbaa !15
  %2136 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %2135, ptr %2136, align 4, !tbaa !15
  %2137 = load i32, ptr %30, align 4, !tbaa !9
  %2138 = load i32, ptr %31, align 4, !tbaa !9
  %2139 = load i32, ptr %19, align 4, !tbaa !9
  %2140 = mul nsw i32 %2138, %2139
  %2141 = add nsw i32 %2137, %2140
  store i32 %2141, ptr %23, align 4, !tbaa !9
  %2142 = load i32, ptr %30, align 4, !tbaa !9
  %2143 = load ptr, ptr %14, align 8, !tbaa !5
  %2144 = load i32, ptr %2143, align 4, !tbaa !9
  %2145 = load i32, ptr %19, align 4, !tbaa !9
  %2146 = mul nsw i32 %2144, %2145
  %2147 = add nsw i32 %2142, %2146
  store i32 %2147, ptr %24, align 4, !tbaa !9
  %2148 = load float, ptr %33, align 4, !tbaa !11
  %2149 = load ptr, ptr %17, align 8, !tbaa !5
  %2150 = load i32, ptr %24, align 4, !tbaa !9
  %2151 = sext i32 %2150 to i64
  %2152 = getelementptr inbounds %struct.complex, ptr %2149, i64 %2151
  %2153 = getelementptr inbounds %struct.complex, ptr %2152, i32 0, i32 0
  %2154 = load float, ptr %2153, align 4, !tbaa !13
  %2155 = fmul float %2148, %2154
  %2156 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %2155, ptr %2156, align 4, !tbaa !13
  %2157 = load float, ptr %33, align 4, !tbaa !11
  %2158 = load ptr, ptr %17, align 8, !tbaa !5
  %2159 = load i32, ptr %24, align 4, !tbaa !9
  %2160 = sext i32 %2159 to i64
  %2161 = getelementptr inbounds %struct.complex, ptr %2158, i64 %2160
  %2162 = getelementptr inbounds %struct.complex, ptr %2161, i32 0, i32 1
  %2163 = load float, ptr %2162, align 4, !tbaa !15
  %2164 = fmul float %2157, %2163
  %2165 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %2164, ptr %2165, align 4, !tbaa !15
  %2166 = load float, ptr %32, align 4, !tbaa !11
  %2167 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %2168 = load float, ptr %2167, align 4, !tbaa !13
  %2169 = fmul float %2166, %2168
  %2170 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %2169, ptr %2170, align 4, !tbaa !13
  %2171 = load float, ptr %32, align 4, !tbaa !11
  %2172 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %2173 = load float, ptr %2172, align 4, !tbaa !15
  %2174 = fmul float %2171, %2173
  %2175 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %2174, ptr %2175, align 4, !tbaa !15
  %2176 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %2177 = load float, ptr %2176, align 4, !tbaa !13
  %2178 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %2179 = load float, ptr %2178, align 4, !tbaa !13
  %2180 = fadd float %2177, %2179
  %2181 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %2180, ptr %2181, align 4, !tbaa !13
  %2182 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %2183 = load float, ptr %2182, align 4, !tbaa !15
  %2184 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %2185 = load float, ptr %2184, align 4, !tbaa !15
  %2186 = fadd float %2183, %2185
  %2187 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %2186, ptr %2187, align 4, !tbaa !15
  %2188 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %2189 = load float, ptr %2188, align 4, !tbaa !13
  %2190 = load ptr, ptr %17, align 8, !tbaa !5
  %2191 = load i32, ptr %23, align 4, !tbaa !9
  %2192 = sext i32 %2191 to i64
  %2193 = getelementptr inbounds %struct.complex, ptr %2190, i64 %2192
  %2194 = getelementptr inbounds %struct.complex, ptr %2193, i32 0, i32 0
  store float %2189, ptr %2194, align 4, !tbaa !13
  %2195 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2196 = load float, ptr %2195, align 4, !tbaa !15
  %2197 = load ptr, ptr %17, align 8, !tbaa !5
  %2198 = load i32, ptr %23, align 4, !tbaa !9
  %2199 = sext i32 %2198 to i64
  %2200 = getelementptr inbounds %struct.complex, ptr %2197, i64 %2199
  %2201 = getelementptr inbounds %struct.complex, ptr %2200, i32 0, i32 1
  store float %2196, ptr %2201, align 4, !tbaa !15
  %2202 = load i32, ptr %30, align 4, !tbaa !9
  %2203 = load ptr, ptr %14, align 8, !tbaa !5
  %2204 = load i32, ptr %2203, align 4, !tbaa !9
  %2205 = load i32, ptr %19, align 4, !tbaa !9
  %2206 = mul nsw i32 %2204, %2205
  %2207 = add nsw i32 %2202, %2206
  store i32 %2207, ptr %23, align 4, !tbaa !9
  %2208 = load i32, ptr %30, align 4, !tbaa !9
  %2209 = load ptr, ptr %14, align 8, !tbaa !5
  %2210 = load i32, ptr %2209, align 4, !tbaa !9
  %2211 = load i32, ptr %19, align 4, !tbaa !9
  %2212 = mul nsw i32 %2210, %2211
  %2213 = add nsw i32 %2208, %2212
  store i32 %2213, ptr %24, align 4, !tbaa !9
  %2214 = load float, ptr %32, align 4, !tbaa !11
  %2215 = load ptr, ptr %17, align 8, !tbaa !5
  %2216 = load i32, ptr %24, align 4, !tbaa !9
  %2217 = sext i32 %2216 to i64
  %2218 = getelementptr inbounds %struct.complex, ptr %2215, i64 %2217
  %2219 = getelementptr inbounds %struct.complex, ptr %2218, i32 0, i32 0
  %2220 = load float, ptr %2219, align 4, !tbaa !13
  %2221 = fmul float %2214, %2220
  %2222 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %2221, ptr %2222, align 4, !tbaa !13
  %2223 = load float, ptr %32, align 4, !tbaa !11
  %2224 = load ptr, ptr %17, align 8, !tbaa !5
  %2225 = load i32, ptr %24, align 4, !tbaa !9
  %2226 = sext i32 %2225 to i64
  %2227 = getelementptr inbounds %struct.complex, ptr %2224, i64 %2226
  %2228 = getelementptr inbounds %struct.complex, ptr %2227, i32 0, i32 1
  %2229 = load float, ptr %2228, align 4, !tbaa !15
  %2230 = fmul float %2223, %2229
  %2231 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %2230, ptr %2231, align 4, !tbaa !15
  %2232 = load float, ptr %33, align 4, !tbaa !11
  %2233 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %2234 = load float, ptr %2233, align 4, !tbaa !13
  %2235 = fmul float %2232, %2234
  %2236 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %2235, ptr %2236, align 4, !tbaa !13
  %2237 = load float, ptr %33, align 4, !tbaa !11
  %2238 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %2239 = load float, ptr %2238, align 4, !tbaa !15
  %2240 = fmul float %2237, %2239
  %2241 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %2240, ptr %2241, align 4, !tbaa !15
  %2242 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %2243 = load float, ptr %2242, align 4, !tbaa !13
  %2244 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %2245 = load float, ptr %2244, align 4, !tbaa !13
  %2246 = fsub float %2243, %2245
  %2247 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %2246, ptr %2247, align 4, !tbaa !13
  %2248 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %2249 = load float, ptr %2248, align 4, !tbaa !15
  %2250 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %2251 = load float, ptr %2250, align 4, !tbaa !15
  %2252 = fsub float %2249, %2251
  %2253 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %2252, ptr %2253, align 4, !tbaa !15
  %2254 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %2255 = load float, ptr %2254, align 4, !tbaa !13
  %2256 = load ptr, ptr %17, align 8, !tbaa !5
  %2257 = load i32, ptr %23, align 4, !tbaa !9
  %2258 = sext i32 %2257 to i64
  %2259 = getelementptr inbounds %struct.complex, ptr %2256, i64 %2258
  %2260 = getelementptr inbounds %struct.complex, ptr %2259, i32 0, i32 0
  store float %2255, ptr %2260, align 4, !tbaa !13
  %2261 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2262 = load float, ptr %2261, align 4, !tbaa !15
  %2263 = load ptr, ptr %17, align 8, !tbaa !5
  %2264 = load i32, ptr %23, align 4, !tbaa !9
  %2265 = sext i32 %2264 to i64
  %2266 = getelementptr inbounds %struct.complex, ptr %2263, i64 %2265
  %2267 = getelementptr inbounds %struct.complex, ptr %2266, i32 0, i32 1
  store float %2262, ptr %2267, align 4, !tbaa !15
  br label %2268

2268:                                             ; preds = %2117
  %2269 = load i32, ptr %30, align 4, !tbaa !9
  %2270 = add nsw i32 %2269, 1
  store i32 %2270, ptr %30, align 4, !tbaa !9
  br label %2113, !llvm.loop !37

2271:                                             ; preds = %2113
  br label %2272

2272:                                             ; preds = %2271, %2107
  br label %2273

2273:                                             ; preds = %2272
  %2274 = load i32, ptr %31, align 4, !tbaa !9
  %2275 = add nsw i32 %2274, 1
  store i32 %2275, ptr %31, align 4, !tbaa !9
  br label %2090, !llvm.loop !38

2276:                                             ; preds = %2090
  br label %2472

2277:                                             ; preds = %2082
  %2278 = load ptr, ptr %12, align 8, !tbaa !5
  %2279 = call i32 @lsame_(ptr noundef %2278, ptr noundef @.str.4)
  %2280 = icmp ne i32 %2279, 0
  br i1 %2280, label %2281, label %2471

2281:                                             ; preds = %2277
  %2282 = load ptr, ptr %14, align 8, !tbaa !5
  %2283 = load i32, ptr %2282, align 4, !tbaa !9
  %2284 = sub nsw i32 %2283, 1
  store i32 %2284, ptr %31, align 4, !tbaa !9
  br label %2285

2285:                                             ; preds = %2467, %2281
  %2286 = load i32, ptr %31, align 4, !tbaa !9
  %2287 = icmp sge i32 %2286, 1
  br i1 %2287, label %2288, label %2470

2288:                                             ; preds = %2285
  %2289 = load ptr, ptr %15, align 8, !tbaa !5
  %2290 = load i32, ptr %31, align 4, !tbaa !9
  %2291 = sext i32 %2290 to i64
  %2292 = getelementptr inbounds float, ptr %2289, i64 %2291
  %2293 = load float, ptr %2292, align 4, !tbaa !11
  store float %2293, ptr %32, align 4, !tbaa !11
  %2294 = load ptr, ptr %16, align 8, !tbaa !5
  %2295 = load i32, ptr %31, align 4, !tbaa !9
  %2296 = sext i32 %2295 to i64
  %2297 = getelementptr inbounds float, ptr %2294, i64 %2296
  %2298 = load float, ptr %2297, align 4, !tbaa !11
  store float %2298, ptr %33, align 4, !tbaa !11
  %2299 = load float, ptr %32, align 4, !tbaa !11
  %2300 = fcmp une float %2299, 1.000000e+00
  br i1 %2300, label %2304, label %2301

2301:                                             ; preds = %2288
  %2302 = load float, ptr %33, align 4, !tbaa !11
  %2303 = fcmp une float %2302, 0.000000e+00
  br i1 %2303, label %2304, label %2466

2304:                                             ; preds = %2301, %2288
  %2305 = load ptr, ptr %13, align 8, !tbaa !5
  %2306 = load i32, ptr %2305, align 4, !tbaa !9
  store i32 %2306, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %30, align 4, !tbaa !9
  br label %2307

2307:                                             ; preds = %2462, %2304
  %2308 = load i32, ptr %30, align 4, !tbaa !9
  %2309 = load i32, ptr %21, align 4, !tbaa !9
  %2310 = icmp sle i32 %2308, %2309
  br i1 %2310, label %2311, label %2465

2311:                                             ; preds = %2307
  %2312 = load i32, ptr %30, align 4, !tbaa !9
  %2313 = load i32, ptr %31, align 4, !tbaa !9
  %2314 = load i32, ptr %19, align 4, !tbaa !9
  %2315 = mul nsw i32 %2313, %2314
  %2316 = add nsw i32 %2312, %2315
  store i32 %2316, ptr %22, align 4, !tbaa !9
  %2317 = load ptr, ptr %17, align 8, !tbaa !5
  %2318 = load i32, ptr %22, align 4, !tbaa !9
  %2319 = sext i32 %2318 to i64
  %2320 = getelementptr inbounds %struct.complex, ptr %2317, i64 %2319
  %2321 = getelementptr inbounds %struct.complex, ptr %2320, i32 0, i32 0
  %2322 = load float, ptr %2321, align 4, !tbaa !13
  %2323 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  store float %2322, ptr %2323, align 4, !tbaa !13
  %2324 = load ptr, ptr %17, align 8, !tbaa !5
  %2325 = load i32, ptr %22, align 4, !tbaa !9
  %2326 = sext i32 %2325 to i64
  %2327 = getelementptr inbounds %struct.complex, ptr %2324, i64 %2326
  %2328 = getelementptr inbounds %struct.complex, ptr %2327, i32 0, i32 1
  %2329 = load float, ptr %2328, align 4, !tbaa !15
  %2330 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  store float %2329, ptr %2330, align 4, !tbaa !15
  %2331 = load i32, ptr %30, align 4, !tbaa !9
  %2332 = load i32, ptr %31, align 4, !tbaa !9
  %2333 = load i32, ptr %19, align 4, !tbaa !9
  %2334 = mul nsw i32 %2332, %2333
  %2335 = add nsw i32 %2331, %2334
  store i32 %2335, ptr %22, align 4, !tbaa !9
  %2336 = load i32, ptr %30, align 4, !tbaa !9
  %2337 = load ptr, ptr %14, align 8, !tbaa !5
  %2338 = load i32, ptr %2337, align 4, !tbaa !9
  %2339 = load i32, ptr %19, align 4, !tbaa !9
  %2340 = mul nsw i32 %2338, %2339
  %2341 = add nsw i32 %2336, %2340
  store i32 %2341, ptr %23, align 4, !tbaa !9
  %2342 = load float, ptr %33, align 4, !tbaa !11
  %2343 = load ptr, ptr %17, align 8, !tbaa !5
  %2344 = load i32, ptr %23, align 4, !tbaa !9
  %2345 = sext i32 %2344 to i64
  %2346 = getelementptr inbounds %struct.complex, ptr %2343, i64 %2345
  %2347 = getelementptr inbounds %struct.complex, ptr %2346, i32 0, i32 0
  %2348 = load float, ptr %2347, align 4, !tbaa !13
  %2349 = fmul float %2342, %2348
  %2350 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %2349, ptr %2350, align 4, !tbaa !13
  %2351 = load float, ptr %33, align 4, !tbaa !11
  %2352 = load ptr, ptr %17, align 8, !tbaa !5
  %2353 = load i32, ptr %23, align 4, !tbaa !9
  %2354 = sext i32 %2353 to i64
  %2355 = getelementptr inbounds %struct.complex, ptr %2352, i64 %2354
  %2356 = getelementptr inbounds %struct.complex, ptr %2355, i32 0, i32 1
  %2357 = load float, ptr %2356, align 4, !tbaa !15
  %2358 = fmul float %2351, %2357
  %2359 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %2358, ptr %2359, align 4, !tbaa !15
  %2360 = load float, ptr %32, align 4, !tbaa !11
  %2361 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %2362 = load float, ptr %2361, align 4, !tbaa !13
  %2363 = fmul float %2360, %2362
  %2364 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %2363, ptr %2364, align 4, !tbaa !13
  %2365 = load float, ptr %32, align 4, !tbaa !11
  %2366 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %2367 = load float, ptr %2366, align 4, !tbaa !15
  %2368 = fmul float %2365, %2367
  %2369 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %2368, ptr %2369, align 4, !tbaa !15
  %2370 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %2371 = load float, ptr %2370, align 4, !tbaa !13
  %2372 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %2373 = load float, ptr %2372, align 4, !tbaa !13
  %2374 = fadd float %2371, %2373
  %2375 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %2374, ptr %2375, align 4, !tbaa !13
  %2376 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %2377 = load float, ptr %2376, align 4, !tbaa !15
  %2378 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %2379 = load float, ptr %2378, align 4, !tbaa !15
  %2380 = fadd float %2377, %2379
  %2381 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %2380, ptr %2381, align 4, !tbaa !15
  %2382 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %2383 = load float, ptr %2382, align 4, !tbaa !13
  %2384 = load ptr, ptr %17, align 8, !tbaa !5
  %2385 = load i32, ptr %22, align 4, !tbaa !9
  %2386 = sext i32 %2385 to i64
  %2387 = getelementptr inbounds %struct.complex, ptr %2384, i64 %2386
  %2388 = getelementptr inbounds %struct.complex, ptr %2387, i32 0, i32 0
  store float %2383, ptr %2388, align 4, !tbaa !13
  %2389 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2390 = load float, ptr %2389, align 4, !tbaa !15
  %2391 = load ptr, ptr %17, align 8, !tbaa !5
  %2392 = load i32, ptr %22, align 4, !tbaa !9
  %2393 = sext i32 %2392 to i64
  %2394 = getelementptr inbounds %struct.complex, ptr %2391, i64 %2393
  %2395 = getelementptr inbounds %struct.complex, ptr %2394, i32 0, i32 1
  store float %2390, ptr %2395, align 4, !tbaa !15
  %2396 = load i32, ptr %30, align 4, !tbaa !9
  %2397 = load ptr, ptr %14, align 8, !tbaa !5
  %2398 = load i32, ptr %2397, align 4, !tbaa !9
  %2399 = load i32, ptr %19, align 4, !tbaa !9
  %2400 = mul nsw i32 %2398, %2399
  %2401 = add nsw i32 %2396, %2400
  store i32 %2401, ptr %22, align 4, !tbaa !9
  %2402 = load i32, ptr %30, align 4, !tbaa !9
  %2403 = load ptr, ptr %14, align 8, !tbaa !5
  %2404 = load i32, ptr %2403, align 4, !tbaa !9
  %2405 = load i32, ptr %19, align 4, !tbaa !9
  %2406 = mul nsw i32 %2404, %2405
  %2407 = add nsw i32 %2402, %2406
  store i32 %2407, ptr %23, align 4, !tbaa !9
  %2408 = load float, ptr %32, align 4, !tbaa !11
  %2409 = load ptr, ptr %17, align 8, !tbaa !5
  %2410 = load i32, ptr %23, align 4, !tbaa !9
  %2411 = sext i32 %2410 to i64
  %2412 = getelementptr inbounds %struct.complex, ptr %2409, i64 %2411
  %2413 = getelementptr inbounds %struct.complex, ptr %2412, i32 0, i32 0
  %2414 = load float, ptr %2413, align 4, !tbaa !13
  %2415 = fmul float %2408, %2414
  %2416 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  store float %2415, ptr %2416, align 4, !tbaa !13
  %2417 = load float, ptr %32, align 4, !tbaa !11
  %2418 = load ptr, ptr %17, align 8, !tbaa !5
  %2419 = load i32, ptr %23, align 4, !tbaa !9
  %2420 = sext i32 %2419 to i64
  %2421 = getelementptr inbounds %struct.complex, ptr %2418, i64 %2420
  %2422 = getelementptr inbounds %struct.complex, ptr %2421, i32 0, i32 1
  %2423 = load float, ptr %2422, align 4, !tbaa !15
  %2424 = fmul float %2417, %2423
  %2425 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  store float %2424, ptr %2425, align 4, !tbaa !15
  %2426 = load float, ptr %33, align 4, !tbaa !11
  %2427 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 0
  %2428 = load float, ptr %2427, align 4, !tbaa !13
  %2429 = fmul float %2426, %2428
  %2430 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  store float %2429, ptr %2430, align 4, !tbaa !13
  %2431 = load float, ptr %33, align 4, !tbaa !11
  %2432 = getelementptr inbounds %struct.complex, ptr %29, i32 0, i32 1
  %2433 = load float, ptr %2432, align 4, !tbaa !15
  %2434 = fmul float %2431, %2433
  %2435 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  store float %2434, ptr %2435, align 4, !tbaa !15
  %2436 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 0
  %2437 = load float, ptr %2436, align 4, !tbaa !13
  %2438 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 0
  %2439 = load float, ptr %2438, align 4, !tbaa !13
  %2440 = fsub float %2437, %2439
  %2441 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  store float %2440, ptr %2441, align 4, !tbaa !13
  %2442 = getelementptr inbounds %struct.complex, ptr %26, i32 0, i32 1
  %2443 = load float, ptr %2442, align 4, !tbaa !15
  %2444 = getelementptr inbounds %struct.complex, ptr %27, i32 0, i32 1
  %2445 = load float, ptr %2444, align 4, !tbaa !15
  %2446 = fsub float %2443, %2445
  %2447 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  store float %2446, ptr %2447, align 4, !tbaa !15
  %2448 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 0
  %2449 = load float, ptr %2448, align 4, !tbaa !13
  %2450 = load ptr, ptr %17, align 8, !tbaa !5
  %2451 = load i32, ptr %22, align 4, !tbaa !9
  %2452 = sext i32 %2451 to i64
  %2453 = getelementptr inbounds %struct.complex, ptr %2450, i64 %2452
  %2454 = getelementptr inbounds %struct.complex, ptr %2453, i32 0, i32 0
  store float %2449, ptr %2454, align 4, !tbaa !13
  %2455 = getelementptr inbounds %struct.complex, ptr %25, i32 0, i32 1
  %2456 = load float, ptr %2455, align 4, !tbaa !15
  %2457 = load ptr, ptr %17, align 8, !tbaa !5
  %2458 = load i32, ptr %22, align 4, !tbaa !9
  %2459 = sext i32 %2458 to i64
  %2460 = getelementptr inbounds %struct.complex, ptr %2457, i64 %2459
  %2461 = getelementptr inbounds %struct.complex, ptr %2460, i32 0, i32 1
  store float %2456, ptr %2461, align 4, !tbaa !15
  br label %2462

2462:                                             ; preds = %2311
  %2463 = load i32, ptr %30, align 4, !tbaa !9
  %2464 = add nsw i32 %2463, 1
  store i32 %2464, ptr %30, align 4, !tbaa !9
  br label %2307, !llvm.loop !39

2465:                                             ; preds = %2307
  br label %2466

2466:                                             ; preds = %2465, %2301
  br label %2467

2467:                                             ; preds = %2466
  %2468 = load i32, ptr %31, align 4, !tbaa !9
  %2469 = add nsw i32 %2468, -1
  store i32 %2469, ptr %31, align 4, !tbaa !9
  br label %2285, !llvm.loop !40

2470:                                             ; preds = %2285
  br label %2471

2471:                                             ; preds = %2470, %2277
  br label %2472

2472:                                             ; preds = %2471, %2276
  br label %2473

2473:                                             ; preds = %2472, %2078
  br label %2474

2474:                                             ; preds = %2473, %2077
  br label %2475

2475:                                             ; preds = %2474, %1698
  br label %2476

2476:                                             ; preds = %2475, %1302
  br label %2477

2477:                                             ; preds = %2476, %1301
  store i32 1, ptr %34, align 4
  br label %2478

2478:                                             ; preds = %2477, %121, %111
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #3
  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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

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

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


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

%struct.complex = type { float, float }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @clasr_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr noundef %7, ptr nocapture noundef readonly %8) local_unnamed_addr #0 {
  %10 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #4
  %11 = getelementptr inbounds i8, ptr %5, i64 -4
  %12 = getelementptr inbounds i8, ptr %6, i64 -4
  %13 = load i32, ptr %8, align 4, !tbaa !5
  %narrow = xor i32 %13, -1
  %14 = sext i32 %narrow to i64
  %15 = getelementptr inbounds %struct.complex, ptr %7, i64 %14
  store i32 0, ptr %10, align 4, !tbaa !5
  %16 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %.not = icmp eq i32 %16, 0
  br i1 %.not, label %17, label %20

17:                                               ; preds = %9
  %18 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %.not930 = icmp eq i32 %18, 0
  br i1 %.not930, label %19, label %20

19:                                               ; preds = %17
  store i32 1, ptr %10, align 4, !tbaa !5
  br label %.thread

20:                                               ; preds = %17, %9
  %21 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #4
  %.not931 = icmp eq i32 %21, 0
  br i1 %.not931, label %22, label %27

22:                                               ; preds = %20
  %23 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #4
  %.not932 = icmp eq i32 %23, 0
  br i1 %.not932, label %24, label %27

24:                                               ; preds = %22
  %25 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #4
  %.not933 = icmp eq i32 %25, 0
  br i1 %.not933, label %26, label %27

26:                                               ; preds = %24
  store i32 2, ptr %10, align 4, !tbaa !5
  br label %.thread

27:                                               ; preds = %24, %22, %20
  %28 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #4
  %.not934 = icmp eq i32 %28, 0
  br i1 %.not934, label %29, label %32

29:                                               ; preds = %27
  %30 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.4) #4
  %.not935 = icmp eq i32 %30, 0
  br i1 %.not935, label %31, label %32

31:                                               ; preds = %29
  store i32 3, ptr %10, align 4, !tbaa !5
  br label %.thread

32:                                               ; preds = %29, %27
  %33 = load i32, ptr %3, align 4, !tbaa !5
  %34 = icmp slt i32 %33, 0
  br i1 %34, label %35, label %36

35:                                               ; preds = %32
  store i32 4, ptr %10, align 4, !tbaa !5
  br label %.thread

36:                                               ; preds = %32
  %37 = load i32, ptr %4, align 4, !tbaa !5
  %38 = icmp slt i32 %37, 0
  br i1 %38, label %39, label %40

39:                                               ; preds = %36
  store i32 5, ptr %10, align 4, !tbaa !5
  br label %.thread

40:                                               ; preds = %36
  %41 = load i32, ptr %8, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %33, i32 1)
  %42 = icmp slt i32 %41, %spec.select
  br i1 %42, label %43, label %45

43:                                               ; preds = %40
  store i32 9, ptr %10, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %19, %31, %39, %43, %35, %26
  %44 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %10, i32 noundef 6) #4
  br label %.loopexit976

45:                                               ; preds = %40
  %46 = icmp eq i32 %33, 0
  %47 = icmp eq i32 %37, 0
  %or.cond1244 = or i1 %46, %47
  br i1 %or.cond1244, label %.loopexit976, label %48

48:                                               ; preds = %45
  %49 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %.not937 = icmp eq i32 %49, 0
  br i1 %.not937, label %430, label %50

50:                                               ; preds = %48
  %51 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #4
  %.not957 = icmp eq i32 %51, 0
  br i1 %.not957, label %142, label %52

52:                                               ; preds = %50
  %53 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #4
  %.not970 = icmp eq i32 %53, 0
  br i1 %.not970, label %96, label %54

54:                                               ; preds = %52
  %55 = load i32, ptr %3, align 4, !tbaa !5
  %.not973.not1001 = icmp sgt i32 %55, 1
  br i1 %.not973.not1001, label %.lr.ph1004.preheader, label %.loopexit976

.lr.ph1004.preheader:                             ; preds = %54
  %56 = sext i32 %13 to i64
  %wide.trip.count1091 = zext nneg i32 %55 to i64
  br label %.lr.ph1004

.lr.ph1004:                                       ; preds = %.lr.ph1004.preheader, %.loopexit997
  %indvars.iv1088 = phi i64 [ 1, %.lr.ph1004.preheader ], [ %indvars.iv.next1089, %.loopexit997 ]
  %57 = getelementptr inbounds float, ptr %11, i64 %indvars.iv1088
  %58 = load float, ptr %57, align 4, !tbaa !9
  %59 = getelementptr inbounds float, ptr %12, i64 %indvars.iv1088
  %60 = load float, ptr %59, align 4, !tbaa !9
  %61 = fcmp une float %58, 1.000000e+00
  %62 = fcmp une float %60, 0.000000e+00
  %or.cond = select i1 %61, i1 true, i1 %62
  br i1 %or.cond, label %63, label %.loopexit997

63:                                               ; preds = %.lr.ph1004
  %64 = load i32, ptr %4, align 4, !tbaa !5
  %.not974999 = icmp slt i32 %64, 1
  br i1 %.not974999, label %.loopexit997, label %.lr.ph

.lr.ph:                                           ; preds = %63
  %invariant.gep = getelementptr %struct.complex, ptr %15, i64 %indvars.iv1088
  %65 = insertelement <4 x float> poison, float %58, i64 0
  %66 = shufflevector <4 x float> %65, <4 x float> poison, <4 x i32> zeroinitializer
  %67 = insertelement <4 x float> poison, float %60, i64 0
  %68 = shufflevector <4 x float> %67, <4 x float> poison, <4 x i32> zeroinitializer
  %69 = zext nneg i32 %64 to i64
  %xtraiter = and i64 %69, 1
  %70 = icmp eq i32 %64, 1
  br i1 %70, label %.loopexit997.loopexit.unr-lcssa, label %.lr.ph.new

.lr.ph.new:                                       ; preds = %.lr.ph
  %unroll_iter = and i64 %69, 2147483646
  br label %71

71:                                               ; preds = %71, %.lr.ph.new
  %indvars.iv = phi i64 [ 1, %.lr.ph.new ], [ %indvars.iv.next.1, %71 ]
  %niter = phi i64 [ 0, %.lr.ph.new ], [ %niter.next.1, %71 ]
  %72 = mul nsw i64 %indvars.iv, %56
  %gep = getelementptr %struct.complex, ptr %invariant.gep, i64 %72
  %73 = load <4 x float>, ptr %gep, align 4, !tbaa !9
  %74 = fmul <4 x float> %68, %73
  %75 = shufflevector <4 x float> %74, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %76 = fmul <4 x float> %66, %73
  %77 = fadd <4 x float> %76, %75
  %78 = fsub <4 x float> %76, %75
  %79 = shufflevector <4 x float> %77, <4 x float> %78, <4 x i32> <i32 0, i32 1, i32 6, i32 7>
  store <4 x float> %79, ptr %gep, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %80 = mul nsw i64 %indvars.iv.next, %56
  %gep.1 = getelementptr %struct.complex, ptr %invariant.gep, i64 %80
  %81 = load <4 x float>, ptr %gep.1, align 4, !tbaa !9
  %82 = fmul <4 x float> %68, %81
  %83 = shufflevector <4 x float> %82, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %84 = fmul <4 x float> %66, %81
  %85 = fadd <4 x float> %84, %83
  %86 = fsub <4 x float> %84, %83
  %87 = shufflevector <4 x float> %85, <4 x float> %86, <4 x i32> <i32 0, i32 1, i32 6, i32 7>
  store <4 x float> %87, ptr %gep.1, align 4, !tbaa !9
  %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 %.loopexit997.loopexit.unr-lcssa, label %71, !llvm.loop !11

.loopexit997.loopexit.unr-lcssa:                  ; preds = %71, %.lr.ph
  %indvars.iv.unr = phi i64 [ 1, %.lr.ph ], [ %indvars.iv.next.1, %71 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.loopexit997, label %.loopexit997.loopexit.epilog-lcssa

.loopexit997.loopexit.epilog-lcssa:               ; preds = %.loopexit997.loopexit.unr-lcssa
  %88 = mul nsw i64 %indvars.iv.unr, %56
  %gep.epil = getelementptr %struct.complex, ptr %invariant.gep, i64 %88
  %89 = load <4 x float>, ptr %gep.epil, align 4, !tbaa !9
  %90 = fmul <4 x float> %68, %89
  %91 = shufflevector <4 x float> %90, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %92 = fmul <4 x float> %66, %89
  %93 = fadd <4 x float> %92, %91
  %94 = fsub <4 x float> %92, %91
  %95 = shufflevector <4 x float> %93, <4 x float> %94, <4 x i32> <i32 0, i32 1, i32 6, i32 7>
  store <4 x float> %95, ptr %gep.epil, align 4, !tbaa !9
  br label %.loopexit997

.loopexit997:                                     ; preds = %.loopexit997.loopexit.epilog-lcssa, %.loopexit997.loopexit.unr-lcssa, %63, %.lr.ph1004
  %indvars.iv.next1089 = add nuw nsw i64 %indvars.iv1088, 1
  %exitcond1092.not = icmp eq i64 %indvars.iv.next1089, %wide.trip.count1091
  br i1 %exitcond1092.not, label %.loopexit976, label %.lr.ph1004, !llvm.loop !13

96:                                               ; preds = %52
  %97 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.4) #4
  %.not971 = icmp eq i32 %97, 0
  br i1 %.not971, label %.loopexit976, label %98

98:                                               ; preds = %96
  %99 = load i32, ptr %3, align 4, !tbaa !5
  %100 = icmp sgt i32 %99, 1
  br i1 %100, label %.lr.ph1011.preheader, label %.loopexit976

.lr.ph1011.preheader:                             ; preds = %98
  %101 = sext i32 %13 to i64
  %102 = zext nneg i32 %99 to i64
  br label %.lr.ph1011

.lr.ph1011:                                       ; preds = %.lr.ph1011.preheader, %.loopexit995
  %indvars.iv1098 = phi i64 [ %102, %.lr.ph1011.preheader ], [ %indvars.iv.next1099, %.loopexit995 ]
  %indvars.iv.next1099 = add nsw i64 %indvars.iv1098, -1
  %103 = getelementptr inbounds float, ptr %11, i64 %indvars.iv.next1099
  %104 = load float, ptr %103, align 4, !tbaa !9
  %105 = getelementptr inbounds float, ptr %12, i64 %indvars.iv.next1099
  %106 = load float, ptr %105, align 4, !tbaa !9
  %107 = fcmp une float %104, 1.000000e+00
  %108 = fcmp une float %106, 0.000000e+00
  %or.cond3 = select i1 %107, i1 true, i1 %108
  br i1 %or.cond3, label %109, label %.loopexit995

109:                                              ; preds = %.lr.ph1011
  %110 = load i32, ptr %4, align 4, !tbaa !5
  %.not9721005 = icmp slt i32 %110, 1
  br i1 %.not9721005, label %.loopexit995, label %.lr.ph1007.preheader

.lr.ph1007.preheader:                             ; preds = %109
  %invariant.gep1206 = getelementptr %struct.complex, ptr %15, i64 %indvars.iv.next1099
  %111 = insertelement <4 x float> poison, float %104, i64 0
  %112 = shufflevector <4 x float> %111, <4 x float> poison, <4 x i32> zeroinitializer
  %113 = insertelement <4 x float> poison, float %106, i64 0
  %114 = shufflevector <4 x float> %113, <4 x float> poison, <4 x i32> zeroinitializer
  %115 = zext nneg i32 %110 to i64
  %xtraiter1909 = and i64 %115, 1
  %116 = icmp eq i32 %110, 1
  br i1 %116, label %.loopexit995.loopexit.unr-lcssa, label %.lr.ph1007.preheader.new

.lr.ph1007.preheader.new:                         ; preds = %.lr.ph1007.preheader
  %unroll_iter1911 = and i64 %115, 2147483646
  br label %.lr.ph1007

.lr.ph1007:                                       ; preds = %.lr.ph1007, %.lr.ph1007.preheader.new
  %indvars.iv1093 = phi i64 [ 1, %.lr.ph1007.preheader.new ], [ %indvars.iv.next1094.1, %.lr.ph1007 ]
  %niter1912 = phi i64 [ 0, %.lr.ph1007.preheader.new ], [ %niter1912.next.1, %.lr.ph1007 ]
  %117 = mul nsw i64 %indvars.iv1093, %101
  %gep1207 = getelementptr %struct.complex, ptr %invariant.gep1206, i64 %117
  %118 = load <4 x float>, ptr %gep1207, align 4, !tbaa !9
  %119 = fmul <4 x float> %114, %118
  %120 = shufflevector <4 x float> %119, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %121 = fmul <4 x float> %112, %118
  %122 = fadd <4 x float> %121, %120
  %123 = fsub <4 x float> %121, %120
  %124 = shufflevector <4 x float> %122, <4 x float> %123, <4 x i32> <i32 0, i32 1, i32 6, i32 7>
  store <4 x float> %124, ptr %gep1207, align 4, !tbaa !9
  %indvars.iv.next1094 = add nuw nsw i64 %indvars.iv1093, 1
  %125 = mul nsw i64 %indvars.iv.next1094, %101
  %gep1207.1 = getelementptr %struct.complex, ptr %invariant.gep1206, i64 %125
  %126 = load <4 x float>, ptr %gep1207.1, align 4, !tbaa !9
  %127 = fmul <4 x float> %114, %126
  %128 = shufflevector <4 x float> %127, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %129 = fmul <4 x float> %112, %126
  %130 = fadd <4 x float> %129, %128
  %131 = fsub <4 x float> %129, %128
  %132 = shufflevector <4 x float> %130, <4 x float> %131, <4 x i32> <i32 0, i32 1, i32 6, i32 7>
  store <4 x float> %132, ptr %gep1207.1, align 4, !tbaa !9
  %indvars.iv.next1094.1 = add nuw nsw i64 %indvars.iv1093, 2
  %niter1912.next.1 = add i64 %niter1912, 2
  %niter1912.ncmp.1 = icmp eq i64 %niter1912.next.1, %unroll_iter1911
  br i1 %niter1912.ncmp.1, label %.loopexit995.loopexit.unr-lcssa, label %.lr.ph1007, !llvm.loop !14

.loopexit995.loopexit.unr-lcssa:                  ; preds = %.lr.ph1007, %.lr.ph1007.preheader
  %indvars.iv1093.unr = phi i64 [ 1, %.lr.ph1007.preheader ], [ %indvars.iv.next1094.1, %.lr.ph1007 ]
  %lcmp.mod1910.not = icmp eq i64 %xtraiter1909, 0
  br i1 %lcmp.mod1910.not, label %.loopexit995, label %.lr.ph1007.epil

.lr.ph1007.epil:                                  ; preds = %.loopexit995.loopexit.unr-lcssa
  %133 = mul nsw i64 %indvars.iv1093.unr, %101
  %gep1207.epil = getelementptr %struct.complex, ptr %invariant.gep1206, i64 %133
  %134 = load <4 x float>, ptr %gep1207.epil, align 4, !tbaa !9
  %135 = fmul <4 x float> %114, %134
  %136 = shufflevector <4 x float> %135, <4 x float> poison, <4 x i32> <i32 2, i32 3, i32 0, i32 1>
  %137 = fmul <4 x float> %112, %134
  %138 = fadd <4 x float> %137, %136
  %139 = fsub <4 x float> %137, %136
  %140 = shufflevector <4 x float> %138, <4 x float> %139, <4 x i32> <i32 0, i32 1, i32 6, i32 7>
  store <4 x float> %140, ptr %gep1207.epil, align 4, !tbaa !9
  br label %.loopexit995

.loopexit995:                                     ; preds = %.lr.ph1007.epil, %.loopexit995.loopexit.unr-lcssa, %109, %.lr.ph1011
  %141 = icmp sgt i64 %indvars.iv1098, 2
  br i1 %141, label %.lr.ph1011, label %.loopexit976, !llvm.loop !15

142:                                              ; preds = %50
  %143 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #4
  %.not958 = icmp eq i32 %143, 0
  br i1 %.not958, label %281, label %144

144:                                              ; preds = %142
  %145 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #4
  %.not965 = icmp eq i32 %145, 0
  br i1 %.not965, label %205, label %146

146:                                              ; preds = %144
  %147 = load i32, ptr %3, align 4, !tbaa !5
  %.not9681015 = icmp slt i32 %147, 2
  br i1 %.not9681015, label %.loopexit976, label %.lr.ph1018.preheader

.lr.ph1018.preheader:                             ; preds = %146
  %148 = sext i32 %13 to i64
  %149 = add nuw i32 %147, 1
  %wide.trip.count1109 = zext i32 %149 to i64
  %scevgep1259 = getelementptr i8, ptr %7, i64 4
  %scevgep1270 = getelementptr i8, ptr %7, i64 -12
  %scevgep1275 = getelementptr i8, ptr %7, i64 -8
  %invariant.gep1915 = getelementptr i8, ptr %7, i64 8
  %invariant.gep1917 = getelementptr i8, ptr %7, i64 -4
  %invariant.gep1919 = getelementptr i8, ptr %7, i64 12
  %invariant.gep1921 = getelementptr i8, ptr %7, i64 8
  %invariant.gep1923 = getelementptr i8, ptr %7, i64 12
  %ident.check = icmp ne i32 %13, 1
  %invariant.gep1913 = getelementptr i8, ptr %15, i64 8
  br label %.lr.ph1018

.lr.ph1018:                                       ; preds = %.lr.ph1018.preheader, %.loopexit993
  %indvar = phi i64 [ 0, %.lr.ph1018.preheader ], [ %indvar.next, %.loopexit993 ]
  %indvars.iv1106 = phi i64 [ 2, %.lr.ph1018.preheader ], [ %indvars.iv.next1107, %.loopexit993 ]
  %150 = shl nuw nsw i64 %indvar, 3
  %gep1916 = getelementptr i8, ptr %invariant.gep1915, i64 %150
  %gep1918 = getelementptr i8, ptr %invariant.gep1917, i64 %150
  %gep1920 = getelementptr i8, ptr %invariant.gep1919, i64 %150
  %scevgep1273 = getelementptr i8, ptr %7, i64 %150
  %151 = shl nuw nsw i64 %indvar, 3
  %gep1922 = getelementptr i8, ptr %invariant.gep1921, i64 %151
  %gep1924 = getelementptr i8, ptr %invariant.gep1923, i64 %151
  %152 = add nsw i64 %indvars.iv1106, -1
  %153 = getelementptr inbounds float, ptr %11, i64 %152
  %154 = load float, ptr %153, align 4, !tbaa !9
  %155 = getelementptr inbounds float, ptr %12, i64 %152
  %156 = load float, ptr %155, align 4, !tbaa !9
  %157 = fcmp une float %154, 1.000000e+00
  %158 = fcmp une float %156, 0.000000e+00
  %or.cond5 = select i1 %157, i1 true, i1 %158
  br i1 %or.cond5, label %159, label %.loopexit993

159:                                              ; preds = %.lr.ph1018
  %160 = load i32, ptr %4, align 4, !tbaa !5
  %.not9691012 = icmp slt i32 %160, 1
  br i1 %.not9691012, label %.loopexit993, label %.lr.ph1014.preheader

.lr.ph1014.preheader:                             ; preds = %159
  %161 = add nuw i32 %160, 1
  %wide.trip.count1104 = zext i32 %161 to i64
  %invariant.gep1208 = getelementptr %struct.complex, ptr %15, i64 %indvars.iv1106
  %162 = zext nneg i32 %160 to i64
  %min.iters.check = icmp ult i32 %160, 12
  br i1 %min.iters.check, label %.lr.ph1014.preheader1905, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph1014.preheader
  %163 = add nsw i64 %wide.trip.count1104, -2
  %mul.result = shl nsw i64 %163, 3
  %mul.overflow = icmp ugt i64 %163, 2305843009213693951
  %164 = getelementptr i8, ptr %7, i64 %mul.result
  %165 = icmp ult ptr %164, %7
  %166 = or i1 %165, %mul.overflow
  %mul.result1257 = shl nsw i64 %163, 3
  %167 = getelementptr i8, ptr %gep1922, i64 %mul.result1257
  %168 = icmp ult ptr %167, %gep1922
  %mul.result1261 = shl nsw i64 %163, 3
  %169 = getelementptr i8, ptr %scevgep1259, i64 %mul.result1261
  %170 = icmp ult ptr %169, %scevgep1259
  %mul.result1265 = shl nsw i64 %163, 3
  %171 = getelementptr i8, ptr %gep1924, i64 %mul.result1265
  %172 = icmp ult ptr %171, %gep1924
  %173 = or i1 %ident.check, %166
  %174 = or i1 %168, %173
  %175 = or i1 %170, %174
  %176 = or i1 %172, %175
  br i1 %176, label %.lr.ph1014.preheader1905, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %177 = shl nuw nsw i64 %wide.trip.count1104, 3
  %scevgep1269 = getelementptr i8, ptr %gep1918, i64 %177
  %scevgep1271 = getelementptr i8, ptr %scevgep1270, i64 %177
  %scevgep1274 = getelementptr i8, ptr %scevgep1273, i64 %177
  %scevgep1276 = getelementptr i8, ptr %scevgep1275, i64 %177
  %bound0 = icmp ult ptr %gep1916, %scevgep1271
  %bound1 = icmp ugt ptr %scevgep1269, %7
  %found.conflict = and i1 %bound0, %bound1
  %bound01277 = icmp ult ptr %gep1920, %scevgep1276
  %bound11278 = icmp ult ptr %scevgep1259, %scevgep1274
  %found.conflict1279 = and i1 %bound01277, %bound11278
  %conflict.rdx = or i1 %found.conflict, %found.conflict1279
  br i1 %conflict.rdx, label %.lr.ph1014.preheader1905, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %162, 2147483644
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %154, i64 0
  %broadcast.splatinsert1284 = insertelement <4 x float> poison, float %156, i64 0
  %178 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <8 x i32> zeroinitializer
  %179 = shufflevector <4 x float> %broadcast.splatinsert1284, <4 x float> poison, <8 x i32> zeroinitializer
  %180 = shufflevector <4 x float> %broadcast.splatinsert1284, <4 x float> poison, <8 x i32> zeroinitializer
  %181 = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <8 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %182 = getelementptr %struct.complex, ptr %invariant.gep1208, i64 %offset.idx
  %wide.vec = load <8 x float>, ptr %182, align 4, !tbaa !9
  %183 = getelementptr %struct.complex, ptr %15, i64 %offset.idx
  %184 = getelementptr i8, ptr %183, i64 8
  %wide.vec1281 = load <8 x float>, ptr %184, align 4, !tbaa !9
  %185 = fmul <8 x float> %178, %wide.vec
  %186 = fmul <8 x float> %179, %wide.vec1281
  %interleaved.vec = fsub <8 x float> %185, %186
  store <8 x float> %interleaved.vec, ptr %182, align 4, !tbaa !9
  %wide.vec1286 = load <8 x float>, ptr %184, align 4, !tbaa !9
  %187 = getelementptr i8, ptr %183, i64 8
  %188 = fmul <8 x float> %180, %wide.vec
  %189 = fmul <8 x float> %181, %wide.vec1286
  %interleaved.vec1289 = fadd <8 x float> %188, %189
  store <8 x float> %interleaved.vec1289, ptr %187, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %190 = icmp eq i64 %index.next, %n.vec
  br i1 %190, label %middle.block, label %vector.body, !llvm.loop !16

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %162
  br i1 %cmp.n, label %.loopexit993, label %.lr.ph1014.preheader1905

.lr.ph1014.preheader1905:                         ; preds = %middle.block, %vector.memcheck, %vector.scevcheck, %.lr.ph1014.preheader
  %indvars.iv1101.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %vector.scevcheck ], [ 1, %.lr.ph1014.preheader ], [ %ind.end, %middle.block ]
  %191 = insertelement <2 x float> poison, float %156, i64 0
  %192 = shufflevector <2 x float> %191, <2 x float> poison, <2 x i32> zeroinitializer
  %193 = insertelement <2 x float> poison, float %154, i64 0
  %194 = shufflevector <2 x float> %193, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph1014

.lr.ph1014:                                       ; preds = %.lr.ph1014.preheader1905, %.lr.ph1014
  %indvars.iv1101 = phi i64 [ %indvars.iv.next1102, %.lr.ph1014 ], [ %indvars.iv1101.ph, %.lr.ph1014.preheader1905 ]
  %195 = mul nsw i64 %indvars.iv1101, %148
  %gep1209 = getelementptr %struct.complex, ptr %invariant.gep1208, i64 %195
  %gep1914 = getelementptr %struct.complex, ptr %invariant.gep1913, i64 %195
  %196 = load <2 x float>, ptr %gep1209, align 4, !tbaa !9
  %197 = load <2 x float>, ptr %gep1914, align 4, !tbaa !9
  %198 = fmul <2 x float> %192, %197
  %199 = fmul <2 x float> %194, %196
  %200 = fsub <2 x float> %199, %198
  store <2 x float> %200, ptr %gep1209, align 4, !tbaa !9
  %201 = fmul <2 x float> %192, %196
  %202 = load <2 x float>, ptr %gep1914, align 4, !tbaa !9
  %203 = fmul <2 x float> %194, %202
  %204 = fadd <2 x float> %201, %203
  store <2 x float> %204, ptr %gep1914, align 4, !tbaa !9
  %indvars.iv.next1102 = add nuw nsw i64 %indvars.iv1101, 1
  %exitcond1105.not = icmp eq i64 %indvars.iv.next1102, %wide.trip.count1104
  br i1 %exitcond1105.not, label %.loopexit993, label %.lr.ph1014, !llvm.loop !19

.loopexit993:                                     ; preds = %.lr.ph1014, %middle.block, %159, %.lr.ph1018
  %indvars.iv.next1107 = add nuw nsw i64 %indvars.iv1106, 1
  %exitcond1110.not = icmp eq i64 %indvars.iv.next1107, %wide.trip.count1109
  %indvar.next = add i64 %indvar, 1
  br i1 %exitcond1110.not, label %.loopexit976, label %.lr.ph1018, !llvm.loop !20

205:                                              ; preds = %144
  %206 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.4) #4
  %.not966 = icmp eq i32 %206, 0
  br i1 %.not966, label %.loopexit976, label %207

207:                                              ; preds = %205
  %208 = load i32, ptr %3, align 4, !tbaa !5
  %209 = icmp sgt i32 %208, 1
  br i1 %209, label %.lr.ph1023.preheader, label %.loopexit976

.lr.ph1023.preheader:                             ; preds = %207
  %210 = sext i32 %13 to i64
  %211 = zext nneg i32 %208 to i64
  %212 = shl nuw nsw i64 %211, 3
  %scevgep1301 = getelementptr i8, ptr %7, i64 4
  %213 = shl nuw nsw i64 %211, 3
  %scevgep1313 = getelementptr i8, ptr %7, i64 -12
  %scevgep1318 = getelementptr i8, ptr %7, i64 4
  %scevgep1319 = getelementptr i8, ptr %7, i64 -8
  %214 = getelementptr i8, ptr %7, i64 %213
  %215 = getelementptr i8, ptr %214, i64 -8
  %216 = getelementptr i8, ptr %7, i64 %213
  %217 = getelementptr i8, ptr %216, i64 -20
  %218 = getelementptr i8, ptr %7, i64 %213
  %219 = getelementptr i8, ptr %218, i64 -4
  %220 = getelementptr i8, ptr %7, i64 %213
  %221 = getelementptr i8, ptr %220, i64 -16
  %222 = getelementptr i8, ptr %7, i64 %212
  %223 = getelementptr i8, ptr %222, i64 -8
  %224 = getelementptr i8, ptr %7, i64 %212
  %225 = getelementptr i8, ptr %224, i64 -4
  %ident.check1291 = icmp ne i32 %13, 1
  %invariant.gep1925 = getelementptr i8, ptr %15, i64 8
  br label %.lr.ph1023

.lr.ph1023:                                       ; preds = %.lr.ph1023.preheader, %.loopexit991
  %indvar1295 = phi i64 [ 0, %.lr.ph1023.preheader ], [ %indvar.next1296, %.loopexit991 ]
  %indvars.iv1116 = phi i64 [ %211, %.lr.ph1023.preheader ], [ %indvars.iv.next1117, %.loopexit991 ]
  %226 = mul nsw i64 %indvar1295, -8
  %scevgep1310 = getelementptr i8, ptr %215, i64 %226
  %scevgep1311 = getelementptr i8, ptr %217, i64 %226
  %scevgep1315 = getelementptr i8, ptr %219, i64 %226
  %scevgep1316 = getelementptr i8, ptr %221, i64 %226
  %227 = mul nsw i64 %indvar1295, -8
  %scevgep1297 = getelementptr i8, ptr %223, i64 %227
  %scevgep1305 = getelementptr i8, ptr %225, i64 %227
  %indvars.iv.next1117 = add nsw i64 %indvars.iv1116, -1
  %228 = getelementptr inbounds float, ptr %11, i64 %indvars.iv.next1117
  %229 = load float, ptr %228, align 4, !tbaa !9
  %230 = getelementptr inbounds float, ptr %12, i64 %indvars.iv.next1117
  %231 = load float, ptr %230, align 4, !tbaa !9
  %232 = fcmp une float %229, 1.000000e+00
  %233 = fcmp une float %231, 0.000000e+00
  %or.cond7 = select i1 %232, i1 true, i1 %233
  br i1 %or.cond7, label %234, label %.loopexit991

234:                                              ; preds = %.lr.ph1023
  %235 = load i32, ptr %4, align 4, !tbaa !5
  %.not9671019 = icmp slt i32 %235, 1
  br i1 %.not9671019, label %.loopexit991, label %.lr.ph1021.preheader

.lr.ph1021.preheader:                             ; preds = %234
  %236 = add nuw i32 %235, 1
  %wide.trip.count1114 = zext i32 %236 to i64
  %invariant.gep1210 = getelementptr %struct.complex, ptr %15, i64 %indvars.iv1116
  %237 = zext nneg i32 %235 to i64
  %min.iters.check1330 = icmp ult i32 %235, 12
  br i1 %min.iters.check1330, label %.lr.ph1021.preheader1903, label %vector.scevcheck1290

vector.scevcheck1290:                             ; preds = %.lr.ph1021.preheader
  %238 = add nsw i64 %wide.trip.count1114, -2
  %mul.result1293 = shl nsw i64 %238, 3
  %mul.overflow1294 = icmp ugt i64 %238, 2305843009213693951
  %239 = getelementptr i8, ptr %7, i64 %mul.result1293
  %240 = icmp ult ptr %239, %7
  %241 = or i1 %240, %mul.overflow1294
  %mul.result1299 = shl nsw i64 %238, 3
  %242 = getelementptr i8, ptr %scevgep1297, i64 %mul.result1299
  %243 = icmp ult ptr %242, %scevgep1297
  %mul.result1303 = shl nsw i64 %238, 3
  %244 = getelementptr i8, ptr %scevgep1301, i64 %mul.result1303
  %245 = icmp ult ptr %244, %scevgep1301
  %mul.result1307 = shl nsw i64 %238, 3
  %246 = getelementptr i8, ptr %scevgep1305, i64 %mul.result1307
  %247 = icmp ult ptr %246, %scevgep1305
  %248 = or i1 %ident.check1291, %241
  %249 = or i1 %243, %248
  %250 = or i1 %245, %249
  %251 = or i1 %247, %250
  br i1 %251, label %.lr.ph1021.preheader1903, label %vector.memcheck1309

vector.memcheck1309:                              ; preds = %vector.scevcheck1290
  %252 = shl nuw nsw i64 %wide.trip.count1114, 3
  %scevgep1312 = getelementptr i8, ptr %scevgep1311, i64 %252
  %scevgep1314 = getelementptr i8, ptr %scevgep1313, i64 %252
  %scevgep1317 = getelementptr i8, ptr %scevgep1316, i64 %252
  %scevgep1320 = getelementptr i8, ptr %scevgep1319, i64 %252
  %bound01321 = icmp ult ptr %scevgep1310, %scevgep1314
  %bound11322 = icmp ugt ptr %scevgep1312, %7
  %found.conflict1323 = and i1 %bound01321, %bound11322
  %bound01324 = icmp ult ptr %scevgep1315, %scevgep1320
  %bound11325 = icmp ult ptr %scevgep1318, %scevgep1317
  %found.conflict1326 = and i1 %bound01324, %bound11325
  %conflict.rdx1327 = or i1 %found.conflict1323, %found.conflict1326
  br i1 %conflict.rdx1327, label %.lr.ph1021.preheader1903, label %vector.ph1331

vector.ph1331:                                    ; preds = %vector.memcheck1309
  %n.vec1333 = and i64 %237, 2147483644
  %ind.end1334 = or disjoint i64 %n.vec1333, 1
  %broadcast.splatinsert1342 = insertelement <4 x float> poison, float %229, i64 0
  %broadcast.splatinsert1347 = insertelement <4 x float> poison, float %231, i64 0
  %253 = shufflevector <4 x float> %broadcast.splatinsert1342, <4 x float> poison, <8 x i32> zeroinitializer
  %254 = shufflevector <4 x float> %broadcast.splatinsert1347, <4 x float> poison, <8 x i32> zeroinitializer
  %255 = shufflevector <4 x float> %broadcast.splatinsert1347, <4 x float> poison, <8 x i32> zeroinitializer
  %256 = shufflevector <4 x float> %broadcast.splatinsert1342, <4 x float> poison, <8 x i32> zeroinitializer
  br label %vector.body1336

vector.body1336:                                  ; preds = %vector.body1336, %vector.ph1331
  %index1337 = phi i64 [ 0, %vector.ph1331 ], [ %index.next1354, %vector.body1336 ]
  %offset.idx1338 = or disjoint i64 %index1337, 1
  %257 = getelementptr %struct.complex, ptr %invariant.gep1210, i64 %offset.idx1338
  %wide.vec1339 = load <8 x float>, ptr %257, align 4, !tbaa !9
  %258 = getelementptr %struct.complex, ptr %15, i64 %offset.idx1338
  %259 = getelementptr i8, ptr %258, i64 8
  %wide.vec1344 = load <8 x float>, ptr %259, align 4, !tbaa !9
  %260 = fmul <8 x float> %253, %wide.vec1339
  %261 = fmul <8 x float> %254, %wide.vec1344
  %interleaved.vec1349 = fsub <8 x float> %260, %261
  store <8 x float> %interleaved.vec1349, ptr %257, align 4, !tbaa !9
  %wide.vec1350 = load <8 x float>, ptr %259, align 4, !tbaa !9
  %262 = getelementptr i8, ptr %258, i64 8
  %263 = fmul <8 x float> %255, %wide.vec1339
  %264 = fmul <8 x float> %256, %wide.vec1350
  %interleaved.vec1353 = fadd <8 x float> %263, %264
  store <8 x float> %interleaved.vec1353, ptr %262, align 4, !tbaa !9
  %index.next1354 = add nuw i64 %index1337, 4
  %265 = icmp eq i64 %index.next1354, %n.vec1333
  br i1 %265, label %middle.block1328, label %vector.body1336, !llvm.loop !21

middle.block1328:                                 ; preds = %vector.body1336
  %cmp.n1355 = icmp eq i64 %n.vec1333, %237
  br i1 %cmp.n1355, label %.loopexit991, label %.lr.ph1021.preheader1903

.lr.ph1021.preheader1903:                         ; preds = %middle.block1328, %vector.memcheck1309, %vector.scevcheck1290, %.lr.ph1021.preheader
  %indvars.iv1111.ph = phi i64 [ 1, %vector.memcheck1309 ], [ 1, %vector.scevcheck1290 ], [ 1, %.lr.ph1021.preheader ], [ %ind.end1334, %middle.block1328 ]
  %266 = insertelement <2 x float> poison, float %231, i64 0
  %267 = shufflevector <2 x float> %266, <2 x float> poison, <2 x i32> zeroinitializer
  %268 = insertelement <2 x float> poison, float %229, i64 0
  %269 = shufflevector <2 x float> %268, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph1021

.lr.ph1021:                                       ; preds = %.lr.ph1021.preheader1903, %.lr.ph1021
  %indvars.iv1111 = phi i64 [ %indvars.iv.next1112, %.lr.ph1021 ], [ %indvars.iv1111.ph, %.lr.ph1021.preheader1903 ]
  %270 = mul nsw i64 %indvars.iv1111, %210
  %gep1211 = getelementptr %struct.complex, ptr %invariant.gep1210, i64 %270
  %gep1926 = getelementptr %struct.complex, ptr %invariant.gep1925, i64 %270
  %271 = load <2 x float>, ptr %gep1211, align 4, !tbaa !9
  %272 = load <2 x float>, ptr %gep1926, align 4, !tbaa !9
  %273 = fmul <2 x float> %267, %272
  %274 = fmul <2 x float> %269, %271
  %275 = fsub <2 x float> %274, %273
  store <2 x float> %275, ptr %gep1211, align 4, !tbaa !9
  %276 = fmul <2 x float> %267, %271
  %277 = load <2 x float>, ptr %gep1926, align 4, !tbaa !9
  %278 = fmul <2 x float> %269, %277
  %279 = fadd <2 x float> %276, %278
  store <2 x float> %279, ptr %gep1926, align 4, !tbaa !9
  %indvars.iv.next1112 = add nuw nsw i64 %indvars.iv1111, 1
  %exitcond1115.not = icmp eq i64 %indvars.iv.next1112, %wide.trip.count1114
  br i1 %exitcond1115.not, label %.loopexit991, label %.lr.ph1021, !llvm.loop !22

.loopexit991:                                     ; preds = %.lr.ph1021, %middle.block1328, %234, %.lr.ph1023
  %280 = icmp sgt i64 %indvars.iv1116, 2
  %indvar.next1296 = add i64 %indvar1295, 1
  br i1 %280, label %.lr.ph1023, label %.loopexit976, !llvm.loop !23

281:                                              ; preds = %142
  %282 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #4
  %.not959 = icmp eq i32 %282, 0
  br i1 %.not959, label %.loopexit976, label %283

283:                                              ; preds = %281
  %284 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #4
  %.not960 = icmp eq i32 %284, 0
  br i1 %.not960, label %351, label %285

285:                                              ; preds = %283
  %286 = load i32, ptr %3, align 4, !tbaa !5
  %.not963.not1027 = icmp sgt i32 %286, 1
  br i1 %.not963.not1027, label %.lr.ph1030.preheader, label %.loopexit976

.lr.ph1030.preheader:                             ; preds = %285
  %287 = sext i32 %13 to i64
  %288 = zext nneg i32 %286 to i64
  %wide.trip.count1127 = zext nneg i32 %286 to i64
  %invariant.gep1214 = getelementptr %struct.complex, ptr %15, i64 %288
  %289 = shl nuw nsw i64 %wide.trip.count1127, 3
  %290 = getelementptr i8, ptr %7, i64 %289
  %scevgep1358 = getelementptr i8, ptr %290, i64 -8
  %291 = getelementptr i8, ptr %7, i64 %289
  %scevgep1368 = getelementptr i8, ptr %291, i64 -4
  %292 = shl nuw nsw i64 %wide.trip.count1127, 3
  %293 = getelementptr i8, ptr %7, i64 %292
  %scevgep1380 = getelementptr i8, ptr %293, i64 -8
  %294 = getelementptr i8, ptr %7, i64 %292
  %scevgep1381 = getelementptr i8, ptr %294, i64 -20
  %295 = getelementptr i8, ptr %7, i64 %292
  %scevgep1386 = getelementptr i8, ptr %295, i64 -4
  %296 = getelementptr i8, ptr %7, i64 %292
  %scevgep1387 = getelementptr i8, ptr %296, i64 -16
  %invariant.gep1927 = getelementptr i8, ptr %7, i64 -12
  %invariant.gep1929 = getelementptr i8, ptr %7, i64 -8
  %ident.check1357 = icmp ne i32 %13, 1
  br label %.lr.ph1030

.lr.ph1030:                                       ; preds = %.lr.ph1030.preheader, %.loopexit989
  %indvar1362 = phi i64 [ 0, %.lr.ph1030.preheader ], [ %indvar.next1363, %.loopexit989 ]
  %indvars.iv1124 = phi i64 [ 1, %.lr.ph1030.preheader ], [ %indvars.iv.next1125, %.loopexit989 ]
  %297 = shl nuw nsw i64 %indvar1362, 3
  %scevgep1377 = getelementptr i8, ptr %7, i64 %297
  %gep1928 = getelementptr i8, ptr %invariant.gep1927, i64 %297
  %298 = or disjoint i64 %297, 4
  %scevgep1383 = getelementptr i8, ptr %7, i64 %298
  %gep1930 = getelementptr i8, ptr %invariant.gep1929, i64 %297
  %299 = shl nuw nsw i64 %indvar1362, 3
  %scevgep1364 = getelementptr i8, ptr %7, i64 %299
  %300 = or disjoint i64 %299, 4
  %scevgep1372 = getelementptr i8, ptr %7, i64 %300
  %301 = getelementptr inbounds float, ptr %11, i64 %indvars.iv1124
  %302 = load float, ptr %301, align 4, !tbaa !9
  %303 = getelementptr inbounds float, ptr %12, i64 %indvars.iv1124
  %304 = load float, ptr %303, align 4, !tbaa !9
  %305 = fcmp une float %302, 1.000000e+00
  %306 = fcmp une float %304, 0.000000e+00
  %or.cond9 = select i1 %305, i1 true, i1 %306
  br i1 %or.cond9, label %307, label %.loopexit989

307:                                              ; preds = %.lr.ph1030
  %308 = load i32, ptr %4, align 4, !tbaa !5
  %.not9641024 = icmp slt i32 %308, 1
  br i1 %.not9641024, label %.loopexit989, label %.lr.ph1026.preheader

.lr.ph1026.preheader:                             ; preds = %307
  %309 = add nuw i32 %308, 1
  %wide.trip.count1122 = zext i32 %309 to i64
  %invariant.gep1212 = getelementptr %struct.complex, ptr %15, i64 %indvars.iv1124
  %310 = zext nneg i32 %308 to i64
  %min.iters.check1398 = icmp ult i32 %308, 12
  br i1 %min.iters.check1398, label %.lr.ph1026.preheader1901, label %vector.scevcheck1356

vector.scevcheck1356:                             ; preds = %.lr.ph1026.preheader
  %311 = add nsw i64 %wide.trip.count1122, -2
  %mul.result1360 = shl nsw i64 %311, 3
  %mul.overflow1361 = icmp ugt i64 %311, 2305843009213693951
  %312 = getelementptr i8, ptr %scevgep1358, i64 %mul.result1360
  %313 = icmp ult ptr %312, %scevgep1358
  %314 = or i1 %313, %mul.overflow1361
  %mul.result1366 = shl nsw i64 %311, 3
  %315 = getelementptr i8, ptr %scevgep1364, i64 %mul.result1366
  %316 = icmp ult ptr %315, %scevgep1364
  %mul.result1370 = shl nsw i64 %311, 3
  %317 = getelementptr i8, ptr %scevgep1368, i64 %mul.result1370
  %318 = icmp ult ptr %317, %scevgep1368
  %mul.result1374 = shl nsw i64 %311, 3
  %319 = getelementptr i8, ptr %scevgep1372, i64 %mul.result1374
  %320 = icmp ult ptr %319, %scevgep1372
  %321 = or i1 %ident.check1357, %314
  %322 = or i1 %316, %321
  %323 = or i1 %318, %322
  %324 = or i1 %320, %323
  br i1 %324, label %.lr.ph1026.preheader1901, label %vector.memcheck1376

vector.memcheck1376:                              ; preds = %vector.scevcheck1356
  %325 = shl nuw nsw i64 %wide.trip.count1122, 3
  %scevgep1379 = getelementptr i8, ptr %gep1928, i64 %325
  %scevgep1382 = getelementptr i8, ptr %scevgep1381, i64 %325
  %scevgep1385 = getelementptr i8, ptr %gep1930, i64 %325
  %scevgep1388 = getelementptr i8, ptr %scevgep1387, i64 %325
  %bound01389 = icmp ult ptr %scevgep1377, %scevgep1382
  %bound11390 = icmp ult ptr %scevgep1380, %scevgep1379
  %found.conflict1391 = and i1 %bound01389, %bound11390
  %bound01392 = icmp ult ptr %scevgep1383, %scevgep1388
  %bound11393 = icmp ult ptr %scevgep1386, %scevgep1385
  %found.conflict1394 = and i1 %bound01392, %bound11393
  %conflict.rdx1395 = or i1 %found.conflict1391, %found.conflict1394
  br i1 %conflict.rdx1395, label %.lr.ph1026.preheader1901, label %vector.ph1399

vector.ph1399:                                    ; preds = %vector.memcheck1376
  %n.vec1401 = and i64 %310, 2147483644
  %ind.end1402 = or disjoint i64 %n.vec1401, 1
  %broadcast.splatinsert1413 = insertelement <4 x float> poison, float %304, i64 0
  %broadcast.splatinsert1415 = insertelement <4 x float> poison, float %302, i64 0
  %326 = shufflevector <4 x float> %broadcast.splatinsert1415, <4 x float> poison, <8 x i32> zeroinitializer
  %327 = shufflevector <4 x float> %broadcast.splatinsert1413, <4 x float> poison, <8 x i32> zeroinitializer
  %328 = shufflevector <4 x float> %broadcast.splatinsert1415, <4 x float> poison, <8 x i32> zeroinitializer
  %329 = shufflevector <4 x float> %broadcast.splatinsert1413, <4 x float> poison, <8 x i32> zeroinitializer
  br label %vector.body1404

vector.body1404:                                  ; preds = %vector.body1404, %vector.ph1399
  %index1405 = phi i64 [ 0, %vector.ph1399 ], [ %index.next1422, %vector.body1404 ]
  %offset.idx1406 = or disjoint i64 %index1405, 1
  %330 = getelementptr %struct.complex, ptr %invariant.gep1212, i64 %offset.idx1406
  %wide.vec1407 = load <8 x float>, ptr %330, align 4, !tbaa !9
  %331 = getelementptr %struct.complex, ptr %invariant.gep1214, i64 %offset.idx1406
  %wide.vec1410 = load <8 x float>, ptr %331, align 4, !tbaa !9
  %332 = fmul <8 x float> %326, %wide.vec1407
  %333 = fmul <8 x float> %327, %wide.vec1410
  %interleaved.vec1417 = fadd <8 x float> %332, %333
  store <8 x float> %interleaved.vec1417, ptr %330, align 4, !tbaa !9
  %wide.vec1418 = load <8 x float>, ptr %331, align 4, !tbaa !9
  %334 = fmul <8 x float> %328, %wide.vec1418
  %335 = fmul <8 x float> %329, %wide.vec1407
  %interleaved.vec1421 = fsub <8 x float> %334, %335
  store <8 x float> %interleaved.vec1421, ptr %331, align 4, !tbaa !9
  %index.next1422 = add nuw i64 %index1405, 4
  %336 = icmp eq i64 %index.next1422, %n.vec1401
  br i1 %336, label %middle.block1396, label %vector.body1404, !llvm.loop !24

middle.block1396:                                 ; preds = %vector.body1404
  %cmp.n1423 = icmp eq i64 %n.vec1401, %310
  br i1 %cmp.n1423, label %.loopexit989, label %.lr.ph1026.preheader1901

.lr.ph1026.preheader1901:                         ; preds = %middle.block1396, %vector.memcheck1376, %vector.scevcheck1356, %.lr.ph1026.preheader
  %indvars.iv1119.ph = phi i64 [ 1, %vector.memcheck1376 ], [ 1, %vector.scevcheck1356 ], [ 1, %.lr.ph1026.preheader ], [ %ind.end1402, %middle.block1396 ]
  %337 = insertelement <2 x float> poison, float %304, i64 0
  %338 = shufflevector <2 x float> %337, <2 x float> poison, <2 x i32> zeroinitializer
  %339 = insertelement <2 x float> poison, float %302, i64 0
  %340 = shufflevector <2 x float> %339, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph1026

.lr.ph1026:                                       ; preds = %.lr.ph1026.preheader1901, %.lr.ph1026
  %indvars.iv1119 = phi i64 [ %indvars.iv.next1120, %.lr.ph1026 ], [ %indvars.iv1119.ph, %.lr.ph1026.preheader1901 ]
  %341 = mul nsw i64 %indvars.iv1119, %287
  %gep1213 = getelementptr %struct.complex, ptr %invariant.gep1212, i64 %341
  %gep1215 = getelementptr %struct.complex, ptr %invariant.gep1214, i64 %341
  %342 = load <2 x float>, ptr %gep1213, align 4, !tbaa !9
  %343 = load <2 x float>, ptr %gep1215, align 4, !tbaa !9
  %344 = fmul <2 x float> %338, %343
  %345 = fmul <2 x float> %340, %342
  %346 = fadd <2 x float> %345, %344
  store <2 x float> %346, ptr %gep1213, align 4, !tbaa !9
  %347 = load <2 x float>, ptr %gep1215, align 4, !tbaa !9
  %348 = fmul <2 x float> %340, %347
  %349 = fmul <2 x float> %338, %342
  %350 = fsub <2 x float> %348, %349
  store <2 x float> %350, ptr %gep1215, align 4, !tbaa !9
  %indvars.iv.next1120 = add nuw nsw i64 %indvars.iv1119, 1
  %exitcond1123.not = icmp eq i64 %indvars.iv.next1120, %wide.trip.count1122
  br i1 %exitcond1123.not, label %.loopexit989, label %.lr.ph1026, !llvm.loop !25

.loopexit989:                                     ; preds = %.lr.ph1026, %middle.block1396, %307, %.lr.ph1030
  %indvars.iv.next1125 = add nuw nsw i64 %indvars.iv1124, 1
  %exitcond1128.not = icmp eq i64 %indvars.iv.next1125, %wide.trip.count1127
  %indvar.next1363 = add i64 %indvar1362, 1
  br i1 %exitcond1128.not, label %.loopexit976, label %.lr.ph1030, !llvm.loop !26

351:                                              ; preds = %283
  %352 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.4) #4
  %.not961 = icmp eq i32 %352, 0
  br i1 %.not961, label %.loopexit976, label %353

353:                                              ; preds = %351
  %354 = load i32, ptr %3, align 4, !tbaa !5
  %355 = icmp sgt i32 %354, 1
  br i1 %355, label %.lr.ph1036.preheader, label %.loopexit976

.lr.ph1036.preheader:                             ; preds = %353
  %356 = sext i32 %13 to i64
  %357 = zext nneg i32 %354 to i64
  %invariant.gep1218 = getelementptr %struct.complex, ptr %15, i64 %357
  %358 = shl nuw nsw i64 %357, 3
  %359 = getelementptr i8, ptr %7, i64 %358
  %scevgep1426 = getelementptr i8, ptr %359, i64 -8
  %360 = getelementptr i8, ptr %7, i64 %358
  %scevgep1436 = getelementptr i8, ptr %360, i64 -4
  %361 = shl nuw nsw i64 %357, 3
  %362 = add nsw i64 %361, -16
  %363 = getelementptr i8, ptr %7, i64 %361
  %scevgep1448 = getelementptr i8, ptr %363, i64 -8
  %364 = getelementptr i8, ptr %7, i64 %361
  %scevgep1449 = getelementptr i8, ptr %364, i64 -20
  %365 = getelementptr i8, ptr %7, i64 %361
  %scevgep1454 = getelementptr i8, ptr %365, i64 -4
  %scevgep1455 = getelementptr i8, ptr %7, i64 %362
  %366 = getelementptr i8, ptr %7, i64 %362
  %367 = getelementptr i8, ptr %7, i64 %361
  %368 = getelementptr i8, ptr %367, i64 -28
  %369 = getelementptr i8, ptr %7, i64 %361
  %370 = getelementptr i8, ptr %369, i64 -12
  %371 = getelementptr i8, ptr %7, i64 %361
  %372 = getelementptr i8, ptr %371, i64 -24
  %373 = getelementptr i8, ptr %7, i64 %358
  %374 = getelementptr i8, ptr %373, i64 -16
  %375 = getelementptr i8, ptr %7, i64 %358
  %376 = getelementptr i8, ptr %375, i64 -12
  %ident.check1425 = icmp ne i32 %13, 1
  br label %.lr.ph1036

.lr.ph1036:                                       ; preds = %.lr.ph1036.preheader, %.loopexit987
  %indvar1430 = phi i64 [ 0, %.lr.ph1036.preheader ], [ %indvar.next1431, %.loopexit987 ]
  %indvars.iv1134 = phi i64 [ %357, %.lr.ph1036.preheader ], [ %indvars.iv.next1135, %.loopexit987 ]
  %377 = mul nsw i64 %indvar1430, -8
  %scevgep1445 = getelementptr i8, ptr %366, i64 %377
  %scevgep1446 = getelementptr i8, ptr %368, i64 %377
  %scevgep1451 = getelementptr i8, ptr %370, i64 %377
  %scevgep1452 = getelementptr i8, ptr %372, i64 %377
  %378 = mul nsw i64 %indvar1430, -8
  %scevgep1432 = getelementptr i8, ptr %374, i64 %378
  %scevgep1440 = getelementptr i8, ptr %376, i64 %378
  %indvars.iv.next1135 = add nsw i64 %indvars.iv1134, -1
  %379 = getelementptr inbounds float, ptr %11, i64 %indvars.iv.next1135
  %380 = load float, ptr %379, align 4, !tbaa !9
  %381 = getelementptr inbounds float, ptr %12, i64 %indvars.iv.next1135
  %382 = load float, ptr %381, align 4, !tbaa !9
  %383 = fcmp une float %380, 1.000000e+00
  %384 = fcmp une float %382, 0.000000e+00
  %or.cond11 = select i1 %383, i1 true, i1 %384
  br i1 %or.cond11, label %385, label %.loopexit987

385:                                              ; preds = %.lr.ph1036
  %386 = load i32, ptr %4, align 4, !tbaa !5
  %.not9621031 = icmp slt i32 %386, 1
  br i1 %.not9621031, label %.loopexit987, label %.lr.ph1033.preheader

.lr.ph1033.preheader:                             ; preds = %385
  %387 = add nuw i32 %386, 1
  %wide.trip.count1132 = zext i32 %387 to i64
  %invariant.gep1216 = getelementptr %struct.complex, ptr %15, i64 %indvars.iv.next1135
  %388 = zext nneg i32 %386 to i64
  %min.iters.check1466 = icmp ult i32 %386, 12
  br i1 %min.iters.check1466, label %.lr.ph1033.preheader1899, label %vector.scevcheck1424

vector.scevcheck1424:                             ; preds = %.lr.ph1033.preheader
  %389 = add nsw i64 %wide.trip.count1132, -2
  %mul.result1428 = shl nsw i64 %389, 3
  %mul.overflow1429 = icmp ugt i64 %389, 2305843009213693951
  %390 = getelementptr i8, ptr %scevgep1426, i64 %mul.result1428
  %391 = icmp ult ptr %390, %scevgep1426
  %392 = or i1 %391, %mul.overflow1429
  %mul.result1434 = shl nsw i64 %389, 3
  %393 = getelementptr i8, ptr %scevgep1432, i64 %mul.result1434
  %394 = icmp ult ptr %393, %scevgep1432
  %mul.result1438 = shl nsw i64 %389, 3
  %395 = getelementptr i8, ptr %scevgep1436, i64 %mul.result1438
  %396 = icmp ult ptr %395, %scevgep1436
  %mul.result1442 = shl nsw i64 %389, 3
  %397 = getelementptr i8, ptr %scevgep1440, i64 %mul.result1442
  %398 = icmp ult ptr %397, %scevgep1440
  %399 = or i1 %ident.check1425, %392
  %400 = or i1 %394, %399
  %401 = or i1 %396, %400
  %402 = or i1 %398, %401
  br i1 %402, label %.lr.ph1033.preheader1899, label %vector.memcheck1444

vector.memcheck1444:                              ; preds = %vector.scevcheck1424
  %403 = shl nuw nsw i64 %wide.trip.count1132, 3
  %scevgep1447 = getelementptr i8, ptr %scevgep1446, i64 %403
  %scevgep1450 = getelementptr i8, ptr %scevgep1449, i64 %403
  %scevgep1453 = getelementptr i8, ptr %scevgep1452, i64 %403
  %scevgep1456 = getelementptr i8, ptr %scevgep1455, i64 %403
  %bound01457 = icmp ult ptr %scevgep1445, %scevgep1450
  %bound11458 = icmp ult ptr %scevgep1448, %scevgep1447
  %found.conflict1459 = and i1 %bound01457, %bound11458
  %bound01460 = icmp ult ptr %scevgep1451, %scevgep1456
  %bound11461 = icmp ult ptr %scevgep1454, %scevgep1453
  %found.conflict1462 = and i1 %bound01460, %bound11461
  %conflict.rdx1463 = or i1 %found.conflict1459, %found.conflict1462
  br i1 %conflict.rdx1463, label %.lr.ph1033.preheader1899, label %vector.ph1467

vector.ph1467:                                    ; preds = %vector.memcheck1444
  %n.vec1469 = and i64 %388, 2147483644
  %ind.end1470 = or disjoint i64 %n.vec1469, 1
  %broadcast.splatinsert1481 = insertelement <4 x float> poison, float %382, i64 0
  %broadcast.splatinsert1483 = insertelement <4 x float> poison, float %380, i64 0
  %404 = shufflevector <4 x float> %broadcast.splatinsert1483, <4 x float> poison, <8 x i32> zeroinitializer
  %405 = shufflevector <4 x float> %broadcast.splatinsert1481, <4 x float> poison, <8 x i32> zeroinitializer
  %406 = shufflevector <4 x float> %broadcast.splatinsert1483, <4 x float> poison, <8 x i32> zeroinitializer
  %407 = shufflevector <4 x float> %broadcast.splatinsert1481, <4 x float> poison, <8 x i32> zeroinitializer
  br label %vector.body1472

vector.body1472:                                  ; preds = %vector.body1472, %vector.ph1467
  %index1473 = phi i64 [ 0, %vector.ph1467 ], [ %index.next1490, %vector.body1472 ]
  %offset.idx1474 = or disjoint i64 %index1473, 1
  %408 = getelementptr %struct.complex, ptr %invariant.gep1216, i64 %offset.idx1474
  %wide.vec1475 = load <8 x float>, ptr %408, align 4, !tbaa !9
  %409 = getelementptr %struct.complex, ptr %invariant.gep1218, i64 %offset.idx1474
  %wide.vec1478 = load <8 x float>, ptr %409, align 4, !tbaa !9
  %410 = fmul <8 x float> %404, %wide.vec1475
  %411 = fmul <8 x float> %405, %wide.vec1478
  %interleaved.vec1485 = fadd <8 x float> %410, %411
  store <8 x float> %interleaved.vec1485, ptr %408, align 4, !tbaa !9
  %wide.vec1486 = load <8 x float>, ptr %409, align 4, !tbaa !9
  %412 = fmul <8 x float> %406, %wide.vec1486
  %413 = fmul <8 x float> %407, %wide.vec1475
  %interleaved.vec1489 = fsub <8 x float> %412, %413
  store <8 x float> %interleaved.vec1489, ptr %409, align 4, !tbaa !9
  %index.next1490 = add nuw i64 %index1473, 4
  %414 = icmp eq i64 %index.next1490, %n.vec1469
  br i1 %414, label %middle.block1464, label %vector.body1472, !llvm.loop !27

middle.block1464:                                 ; preds = %vector.body1472
  %cmp.n1491 = icmp eq i64 %n.vec1469, %388
  br i1 %cmp.n1491, label %.loopexit987, label %.lr.ph1033.preheader1899

.lr.ph1033.preheader1899:                         ; preds = %middle.block1464, %vector.memcheck1444, %vector.scevcheck1424, %.lr.ph1033.preheader
  %indvars.iv1129.ph = phi i64 [ 1, %vector.memcheck1444 ], [ 1, %vector.scevcheck1424 ], [ 1, %.lr.ph1033.preheader ], [ %ind.end1470, %middle.block1464 ]
  %415 = insertelement <2 x float> poison, float %382, i64 0
  %416 = shufflevector <2 x float> %415, <2 x float> poison, <2 x i32> zeroinitializer
  %417 = insertelement <2 x float> poison, float %380, i64 0
  %418 = shufflevector <2 x float> %417, <2 x float> poison, <2 x i32> zeroinitializer
  br label %.lr.ph1033

.lr.ph1033:                                       ; preds = %.lr.ph1033.preheader1899, %.lr.ph1033
  %indvars.iv1129 = phi i64 [ %indvars.iv.next1130, %.lr.ph1033 ], [ %indvars.iv1129.ph, %.lr.ph1033.preheader1899 ]
  %419 = mul nsw i64 %indvars.iv1129, %356
  %gep1217 = getelementptr %struct.complex, ptr %invariant.gep1216, i64 %419
  %gep1219 = getelementptr %struct.complex, ptr %invariant.gep1218, i64 %419
  %420 = load <2 x float>, ptr %gep1217, align 4, !tbaa !9
  %421 = load <2 x float>, ptr %gep1219, align 4, !tbaa !9
  %422 = fmul <2 x float> %416, %421
  %423 = fmul <2 x float> %418, %420
  %424 = fadd <2 x float> %423, %422
  store <2 x float> %424, ptr %gep1217, align 4, !tbaa !9
  %425 = load <2 x float>, ptr %gep1219, align 4, !tbaa !9
  %426 = fmul <2 x float> %418, %425
  %427 = fmul <2 x float> %416, %420
  %428 = fsub <2 x float> %426, %427
  store <2 x float> %428, ptr %gep1219, align 4, !tbaa !9
  %indvars.iv.next1130 = add nuw nsw i64 %indvars.iv1129, 1
  %exitcond1133.not = icmp eq i64 %indvars.iv.next1130, %wide.trip.count1132
  br i1 %exitcond1133.not, label %.loopexit987, label %.lr.ph1033, !llvm.loop !28

.loopexit987:                                     ; preds = %.lr.ph1033, %middle.block1464, %385, %.lr.ph1036
  %429 = icmp sgt i64 %indvars.iv1134, 2
  %indvar.next1431 = add i64 %indvar1430, 1
  br i1 %429, label %.lr.ph1036, label %.loopexit976, !llvm.loop !29

430:                                              ; preds = %48
  %431 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %.not938 = icmp eq i32 %431, 0
  br i1 %.not938, label %.loopexit976, label %432

432:                                              ; preds = %430
  %433 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #4
  %.not939 = icmp eq i32 %433, 0
  br i1 %.not939, label %629, label %434

434:                                              ; preds = %432
  %435 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #4
  %.not952 = icmp eq i32 %435, 0
  br i1 %.not952, label %527, label %436

436:                                              ; preds = %434
  %437 = load i32, ptr %4, align 4, !tbaa !5
  %.not955.not1040 = icmp sgt i32 %437, 1
  br i1 %.not955.not1040, label %.lr.ph1043.preheader, label %.loopexit976

.lr.ph1043.preheader:                             ; preds = %436
  %438 = sext i32 %13 to i64
  %wide.trip.count1145 = zext nneg i32 %437 to i64
  %439 = shl nsw i64 %438, 4
  %440 = shl nsw i64 %14, 3
  %441 = add nsw i64 %439, %440
  %442 = shl nsw i64 %438, 3
  %443 = add nsw i64 %438, %14
  %444 = shl nsw i64 %443, 3
  %445 = shl nsw i64 %438, 4
  %446 = shl nsw i64 %14, 3
  %447 = add nsw i64 %445, %446
  %448 = shl nsw i64 %438, 3
  %449 = add nsw i64 %438, %14
  %450 = shl nsw i64 %449, 3
  %451 = add nsw i64 %445, %446
  %452 = getelementptr i8, ptr %7, i64 %447
  %453 = getelementptr i8, ptr %452, i64 8
  %454 = getelementptr i8, ptr %7, i64 %447
  %455 = getelementptr i8, ptr %454, i64 -4
  %456 = getelementptr i8, ptr %7, i64 %450
  %457 = getelementptr i8, ptr %456, i64 8
  %458 = getelementptr i8, ptr %7, i64 %450
  %459 = getelementptr i8, ptr %458, i64 -4
  %460 = getelementptr i8, ptr %7, i64 %451
  %461 = getelementptr i8, ptr %460, i64 12
  %462 = getelementptr i8, ptr %7, i64 %451
  %463 = getelementptr i8, ptr %7, i64 %450
  %464 = getelementptr i8, ptr %463, i64 12
  %465 = getelementptr i8, ptr %7, i64 %450
  %466 = getelementptr i8, ptr %7, i64 %441
  %467 = getelementptr i8, ptr %466, i64 8
  %468 = getelementptr i8, ptr %7, i64 %444
  %469 = getelementptr i8, ptr %468, i64 8
  %470 = getelementptr i8, ptr %7, i64 %441
  %471 = getelementptr i8, ptr %470, i64 12
  %472 = getelementptr i8, ptr %7, i64 %444
  %473 = getelementptr i8, ptr %472, i64 12
  br label %.lr.ph1043

.lr.ph1043:                                       ; preds = %.lr.ph1043.preheader, %.loopexit985
  %indvar1493 = phi i64 [ 0, %.lr.ph1043.preheader ], [ %indvar.next1494, %.loopexit985 ]
  %indvars.iv1142 = phi i64 [ 1, %.lr.ph1043.preheader ], [ %indvars.iv.next1143, %.loopexit985 ]
  %474 = mul i64 %448, %indvar1493
  %scevgep1512 = getelementptr i8, ptr %453, i64 %474
  %scevgep1513 = getelementptr i8, ptr %455, i64 %474
  %scevgep1515 = getelementptr i8, ptr %457, i64 %474
  %scevgep1516 = getelementptr i8, ptr %459, i64 %474
  %scevgep1518 = getelementptr i8, ptr %461, i64 %474
  %scevgep1519 = getelementptr i8, ptr %462, i64 %474
  %scevgep1521 = getelementptr i8, ptr %464, i64 %474
  %scevgep1522 = getelementptr i8, ptr %465, i64 %474
  %475 = mul i64 %442, %indvar1493
  %scevgep1495 = getelementptr i8, ptr %467, i64 %475
  %scevgep1499 = getelementptr i8, ptr %469, i64 %475
  %scevgep1503 = getelementptr i8, ptr %471, i64 %475
  %scevgep1507 = getelementptr i8, ptr %473, i64 %475
  %476 = getelementptr inbounds float, ptr %11, i64 %indvars.iv1142
  %477 = load float, ptr %476, align 4, !tbaa !9
  %478 = getelementptr inbounds float, ptr %12, i64 %indvars.iv1142
  %479 = load float, ptr %478, align 4, !tbaa !9
  %480 = fcmp une float %477, 1.000000e+00
  %481 = fcmp une float %479, 0.000000e+00
  %or.cond13 = select i1 %480, i1 true, i1 %481
  br i1 %or.cond13, label %482, label %.loopexit985

482:                                              ; preds = %.lr.ph1043
  %483 = load i32, ptr %3, align 4, !tbaa !5
  %.not9561037 = icmp slt i32 %483, 1
  br i1 %.not9561037, label %.loopexit985, label %.lr.ph1039

.lr.ph1039:                                       ; preds = %482
  %484 = add nuw nsw i64 %indvars.iv1142, 1
  %485 = mul nsw i64 %484, %438
  %486 = mul nsw i64 %indvars.iv1142, %438
  %487 = add nuw i32 %483, 1
  %wide.trip.count1140 = zext i32 %487 to i64
  %invariant.gep1220 = getelementptr %struct.complex, ptr %15, i64 %485
  %invariant.gep1222 = getelementptr %struct.complex, ptr %15, i64 %486
  %488 = zext nneg i32 %483 to i64
  %min.iters.check1533 = icmp ult i32 %483, 8
  br i1 %min.iters.check1533, label %scalar.ph1532.preheader, label %vector.scevcheck1492

vector.scevcheck1492:                             ; preds = %.lr.ph1039
  %489 = add nsw i64 %wide.trip.count1140, -2
  %mul.result1497 = shl nsw i64 %489, 3
  %490 = getelementptr i8, ptr %scevgep1495, i64 %mul.result1497
  %491 = icmp ult ptr %490, %scevgep1495
  %mul.result1501 = shl nsw i64 %489, 3
  %mul.overflow1502 = icmp ugt i64 %489, 2305843009213693951
  %492 = getelementptr i8, ptr %scevgep1499, i64 %mul.result1501
  %493 = icmp ult ptr %492, %scevgep1499
  %494 = or i1 %493, %mul.overflow1502
  %mul.result1505 = shl nsw i64 %489, 3
  %495 = getelementptr i8, ptr %scevgep1503, i64 %mul.result1505
  %496 = icmp ult ptr %495, %scevgep1503
  %mul.result1509 = shl nsw i64 %489, 3
  %497 = getelementptr i8, ptr %scevgep1507, i64 %mul.result1509
  %498 = icmp ult ptr %497, %scevgep1507
  %499 = or i1 %491, %494
  %500 = or i1 %496, %499
  %501 = or i1 %498, %500
  br i1 %501, label %scalar.ph1532.preheader, label %vector.memcheck1511

vector.memcheck1511:                              ; preds = %vector.scevcheck1492
  %502 = shl nuw nsw i64 %wide.trip.count1140, 3
  %scevgep1514 = getelementptr i8, ptr %scevgep1513, i64 %502
  %scevgep1517 = getelementptr i8, ptr %scevgep1516, i64 %502
  %scevgep1520 = getelementptr i8, ptr %scevgep1519, i64 %502
  %scevgep1523 = getelementptr i8, ptr %scevgep1522, i64 %502
  %bound01524 = icmp ult ptr %scevgep1512, %scevgep1517
  %bound11525 = icmp ult ptr %scevgep1515, %scevgep1514
  %found.conflict1526 = and i1 %bound01524, %bound11525
  %bound01527 = icmp ult ptr %scevgep1518, %scevgep1523
  %bound11528 = icmp ult ptr %scevgep1521, %scevgep1520
  %found.conflict1529 = and i1 %bound01527, %bound11528
  %conflict.rdx1530 = or i1 %found.conflict1526, %found.conflict1529
  br i1 %conflict.rdx1530, label %scalar.ph1532.preheader, label %vector.ph1534

vector.ph1534:                                    ; preds = %vector.memcheck1511
  %n.vec1536 = and i64 %488, 2147483644
  %ind.end1537 = or disjoint i64 %n.vec1536, 1
  %broadcast.splatinsert1545 = insertelement <4 x float> poison, float %477, i64 0
  %broadcast.splatinsert1550 = insertelement <4 x float> poison, float %479, i64 0
  %503 = shufflevector <4 x float> %broadcast.splatinsert1545, <4 x float> poison, <8 x i32> zeroinitializer
  %504 = shufflevector <4 x float> %broadcast.splatinsert1550, <4 x float> poison, <8 x i32> zeroinitializer
  %505 = shufflevector <4 x float> %broadcast.splatinsert1550, <4 x float> poison, <8 x i32> zeroinitializer
  %506 = shufflevector <4 x float> %broadcast.splatinsert1545, <4 x float> poison, <8 x i32> zeroinitializer
  br label %vector.body1539

vector.body1539:                                  ; preds = %vector.body1539, %vector.ph1534
  %index1540 = phi i64 [ 0, %vector.ph1534 ], [ %index.next1557, %vector.body1539 ]
  %offset.idx1541 = or disjoint i64 %index1540, 1
  %507 = getelementptr %struct.complex, ptr %invariant.gep1220, i64 %offset.idx1541
  %wide.vec1542 = load <8 x float>, ptr %507, align 4, !tbaa !9
  %508 = getelementptr %struct.complex, ptr %invariant.gep1222, i64 %offset.idx1541
  %wide.vec1547 = load <8 x float>, ptr %508, align 4, !tbaa !9
  %509 = fmul <8 x float> %503, %wide.vec1542
  %510 = fmul <8 x float> %504, %wide.vec1547
  %interleaved.vec1552 = fsub <8 x float> %509, %510
  store <8 x float> %interleaved.vec1552, ptr %507, align 4, !tbaa !9
  %wide.vec1553 = load <8 x float>, ptr %508, align 4, !tbaa !9
  %511 = fmul <8 x float> %505, %wide.vec1542
  %512 = fmul <8 x float> %506, %wide.vec1553
  %interleaved.vec1556 = fadd <8 x float> %511, %512
  store <8 x float> %interleaved.vec1556, ptr %508, align 4, !tbaa !9
  %index.next1557 = add nuw i64 %index1540, 4
  %513 = icmp eq i64 %index.next1557, %n.vec1536
  br i1 %513, label %middle.block1531, label %vector.body1539, !llvm.loop !30

middle.block1531:                                 ; preds = %vector.body1539
  %cmp.n1558 = icmp eq i64 %n.vec1536, %488
  br i1 %cmp.n1558, label %.loopexit985, label %scalar.ph1532.preheader

scalar.ph1532.preheader:                          ; preds = %middle.block1531, %vector.memcheck1511, %vector.scevcheck1492, %.lr.ph1039
  %indvars.iv1137.ph = phi i64 [ 1, %vector.memcheck1511 ], [ 1, %vector.scevcheck1492 ], [ 1, %.lr.ph1039 ], [ %ind.end1537, %middle.block1531 ]
  %514 = insertelement <2 x float> poison, float %479, i64 0
  %515 = shufflevector <2 x float> %514, <2 x float> poison, <2 x i32> zeroinitializer
  %516 = insertelement <2 x float> poison, float %477, i64 0
  %517 = shufflevector <2 x float> %516, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph1532

scalar.ph1532:                                    ; preds = %scalar.ph1532.preheader, %scalar.ph1532
  %indvars.iv1137 = phi i64 [ %indvars.iv.next1138, %scalar.ph1532 ], [ %indvars.iv1137.ph, %scalar.ph1532.preheader ]
  %gep1221 = getelementptr %struct.complex, ptr %invariant.gep1220, i64 %indvars.iv1137
  %gep1223 = getelementptr %struct.complex, ptr %invariant.gep1222, i64 %indvars.iv1137
  %518 = load <2 x float>, ptr %gep1221, align 4, !tbaa !9
  %519 = load <2 x float>, ptr %gep1223, align 4, !tbaa !9
  %520 = fmul <2 x float> %515, %519
  %521 = fmul <2 x float> %517, %518
  %522 = fsub <2 x float> %521, %520
  store <2 x float> %522, ptr %gep1221, align 4, !tbaa !9
  %523 = fmul <2 x float> %515, %518
  %524 = load <2 x float>, ptr %gep1223, align 4, !tbaa !9
  %525 = fmul <2 x float> %517, %524
  %526 = fadd <2 x float> %523, %525
  store <2 x float> %526, ptr %gep1223, align 4, !tbaa !9
  %indvars.iv.next1138 = add nuw nsw i64 %indvars.iv1137, 1
  %exitcond1141.not = icmp eq i64 %indvars.iv.next1138, %wide.trip.count1140
  br i1 %exitcond1141.not, label %.loopexit985, label %scalar.ph1532, !llvm.loop !31

.loopexit985:                                     ; preds = %scalar.ph1532, %middle.block1531, %482, %.lr.ph1043
  %indvars.iv.next1143 = add nuw nsw i64 %indvars.iv1142, 1
  %exitcond1146.not = icmp eq i64 %indvars.iv.next1143, %wide.trip.count1145
  %indvar.next1494 = add i64 %indvar1493, 1
  br i1 %exitcond1146.not, label %.loopexit976, label %.lr.ph1043, !llvm.loop !32

527:                                              ; preds = %434
  %528 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.4) #4
  %.not953 = icmp eq i32 %528, 0
  br i1 %.not953, label %.loopexit976, label %529

529:                                              ; preds = %527
  %530 = load i32, ptr %4, align 4, !tbaa !5
  %531 = icmp sgt i32 %530, 1
  br i1 %531, label %.lr.ph1050.preheader, label %.loopexit976

.lr.ph1050.preheader:                             ; preds = %529
  %532 = zext nneg i32 %530 to i64
  %533 = sext i32 %13 to i64
  %534 = mul nsw i64 %533, %532
  %535 = shl i64 %534, 3
  %536 = shl nsw i64 %14, 3
  %537 = mul nsw i64 %533, -8
  %538 = add nuw nsw i64 %532, 2305843009213693951
  %539 = mul i64 %538, %533
  %540 = add i64 %539, %14
  %541 = shl i64 %540, 3
  %542 = mul nsw i64 %533, %532
  %543 = shl i64 %542, 3
  %544 = shl nsw i64 %14, 3
  %545 = add i64 %543, %544
  %546 = mul nsw i64 %533, -8
  %547 = add nuw nsw i64 %532, 2305843009213693951
  %548 = mul i64 %547, %533
  %549 = add i64 %548, %14
  %550 = shl i64 %549, 3
  %551 = add i64 %543, %544
  %552 = getelementptr i8, ptr %7, i64 %545
  %553 = getelementptr i8, ptr %552, i64 8
  %554 = getelementptr i8, ptr %7, i64 %545
  %555 = getelementptr i8, ptr %554, i64 -4
  %556 = getelementptr i8, ptr %7, i64 %550
  %557 = getelementptr i8, ptr %556, i64 8
  %558 = getelementptr i8, ptr %7, i64 %550
  %559 = getelementptr i8, ptr %558, i64 -4
  %560 = getelementptr i8, ptr %7, i64 %551
  %561 = getelementptr i8, ptr %560, i64 12
  %562 = getelementptr i8, ptr %7, i64 %551
  %563 = getelementptr i8, ptr %7, i64 %550
  %564 = getelementptr i8, ptr %563, i64 12
  %565 = getelementptr i8, ptr %7, i64 %550
  %566 = getelementptr i8, ptr %7, i64 %535
  %567 = getelementptr i8, ptr %566, i64 %536
  %568 = getelementptr i8, ptr %567, i64 8
  %569 = getelementptr i8, ptr %7, i64 %541
  %570 = getelementptr i8, ptr %569, i64 8
  %571 = getelementptr i8, ptr %7, i64 %535
  %572 = getelementptr i8, ptr %571, i64 %536
  %573 = getelementptr i8, ptr %572, i64 12
  %574 = getelementptr i8, ptr %7, i64 %541
  %575 = getelementptr i8, ptr %574, i64 12
  br label %.lr.ph1050

.lr.ph1050:                                       ; preds = %.lr.ph1050.preheader, %.loopexit983
  %indvar1560 = phi i64 [ 0, %.lr.ph1050.preheader ], [ %indvar.next1561, %.loopexit983 ]
  %indvars.iv1152 = phi i64 [ %532, %.lr.ph1050.preheader ], [ %indvars.iv.next1153, %.loopexit983 ]
  %576 = mul i64 %546, %indvar1560
  %scevgep1579 = getelementptr i8, ptr %553, i64 %576
  %scevgep1580 = getelementptr i8, ptr %555, i64 %576
  %scevgep1582 = getelementptr i8, ptr %557, i64 %576
  %scevgep1583 = getelementptr i8, ptr %559, i64 %576
  %scevgep1585 = getelementptr i8, ptr %561, i64 %576
  %scevgep1586 = getelementptr i8, ptr %562, i64 %576
  %scevgep1588 = getelementptr i8, ptr %564, i64 %576
  %scevgep1589 = getelementptr i8, ptr %565, i64 %576
  %577 = mul i64 %537, %indvar1560
  %scevgep1562 = getelementptr i8, ptr %568, i64 %577
  %scevgep1566 = getelementptr i8, ptr %570, i64 %577
  %scevgep1570 = getelementptr i8, ptr %573, i64 %577
  %scevgep1574 = getelementptr i8, ptr %575, i64 %577
  %indvars.iv.next1153 = add nsw i64 %indvars.iv1152, -1
  %578 = getelementptr inbounds float, ptr %11, i64 %indvars.iv.next1153
  %579 = load float, ptr %578, align 4, !tbaa !9
  %580 = getelementptr inbounds float, ptr %12, i64 %indvars.iv.next1153
  %581 = load float, ptr %580, align 4, !tbaa !9
  %582 = fcmp une float %579, 1.000000e+00
  %583 = fcmp une float %581, 0.000000e+00
  %or.cond15 = select i1 %582, i1 true, i1 %583
  br i1 %or.cond15, label %584, label %.loopexit983

584:                                              ; preds = %.lr.ph1050
  %585 = load i32, ptr %3, align 4, !tbaa !5
  %.not9541044 = icmp slt i32 %585, 1
  br i1 %.not9541044, label %.loopexit983, label %.lr.ph1046

.lr.ph1046:                                       ; preds = %584
  %586 = mul nsw i64 %indvars.iv1152, %533
  %587 = mul nsw i64 %indvars.iv.next1153, %533
  %588 = add nuw i32 %585, 1
  %wide.trip.count1150 = zext i32 %588 to i64
  %invariant.gep1224 = getelementptr %struct.complex, ptr %15, i64 %586
  %invariant.gep1226 = getelementptr %struct.complex, ptr %15, i64 %587
  %589 = zext nneg i32 %585 to i64
  %min.iters.check1600 = icmp ult i32 %585, 8
  br i1 %min.iters.check1600, label %scalar.ph1599.preheader, label %vector.scevcheck1559

vector.scevcheck1559:                             ; preds = %.lr.ph1046
  %590 = add nsw i64 %wide.trip.count1150, -2
  %mul.result1564 = shl nsw i64 %590, 3
  %591 = getelementptr i8, ptr %scevgep1562, i64 %mul.result1564
  %592 = icmp ult ptr %591, %scevgep1562
  %mul.result1568 = shl nsw i64 %590, 3
  %mul.overflow1569 = icmp ugt i64 %590, 2305843009213693951
  %593 = getelementptr i8, ptr %scevgep1566, i64 %mul.result1568
  %594 = icmp ult ptr %593, %scevgep1566
  %595 = or i1 %594, %mul.overflow1569
  %mul.result1572 = shl nsw i64 %590, 3
  %596 = getelementptr i8, ptr %scevgep1570, i64 %mul.result1572
  %597 = icmp ult ptr %596, %scevgep1570
  %mul.result1576 = shl nsw i64 %590, 3
  %598 = getelementptr i8, ptr %scevgep1574, i64 %mul.result1576
  %599 = icmp ult ptr %598, %scevgep1574
  %600 = or i1 %592, %595
  %601 = or i1 %597, %600
  %602 = or i1 %599, %601
  br i1 %602, label %scalar.ph1599.preheader, label %vector.memcheck1578

vector.memcheck1578:                              ; preds = %vector.scevcheck1559
  %603 = shl nuw nsw i64 %wide.trip.count1150, 3
  %scevgep1581 = getelementptr i8, ptr %scevgep1580, i64 %603
  %scevgep1584 = getelementptr i8, ptr %scevgep1583, i64 %603
  %scevgep1587 = getelementptr i8, ptr %scevgep1586, i64 %603
  %scevgep1590 = getelementptr i8, ptr %scevgep1589, i64 %603
  %bound01591 = icmp ult ptr %scevgep1579, %scevgep1584
  %bound11592 = icmp ult ptr %scevgep1582, %scevgep1581
  %found.conflict1593 = and i1 %bound01591, %bound11592
  %bound01594 = icmp ult ptr %scevgep1585, %scevgep1590
  %bound11595 = icmp ult ptr %scevgep1588, %scevgep1587
  %found.conflict1596 = and i1 %bound01594, %bound11595
  %conflict.rdx1597 = or i1 %found.conflict1593, %found.conflict1596
  br i1 %conflict.rdx1597, label %scalar.ph1599.preheader, label %vector.ph1601

vector.ph1601:                                    ; preds = %vector.memcheck1578
  %n.vec1603 = and i64 %589, 2147483644
  %ind.end1604 = or disjoint i64 %n.vec1603, 1
  %broadcast.splatinsert1612 = insertelement <4 x float> poison, float %579, i64 0
  %broadcast.splatinsert1617 = insertelement <4 x float> poison, float %581, i64 0
  %604 = shufflevector <4 x float> %broadcast.splatinsert1612, <4 x float> poison, <8 x i32> zeroinitializer
  %605 = shufflevector <4 x float> %broadcast.splatinsert1617, <4 x float> poison, <8 x i32> zeroinitializer
  %606 = shufflevector <4 x float> %broadcast.splatinsert1617, <4 x float> poison, <8 x i32> zeroinitializer
  %607 = shufflevector <4 x float> %broadcast.splatinsert1612, <4 x float> poison, <8 x i32> zeroinitializer
  br label %vector.body1606

vector.body1606:                                  ; preds = %vector.body1606, %vector.ph1601
  %index1607 = phi i64 [ 0, %vector.ph1601 ], [ %index.next1624, %vector.body1606 ]
  %offset.idx1608 = or disjoint i64 %index1607, 1
  %608 = getelementptr %struct.complex, ptr %invariant.gep1224, i64 %offset.idx1608
  %wide.vec1609 = load <8 x float>, ptr %608, align 4, !tbaa !9
  %609 = getelementptr %struct.complex, ptr %invariant.gep1226, i64 %offset.idx1608
  %wide.vec1614 = load <8 x float>, ptr %609, align 4, !tbaa !9
  %610 = fmul <8 x float> %604, %wide.vec1609
  %611 = fmul <8 x float> %605, %wide.vec1614
  %interleaved.vec1619 = fsub <8 x float> %610, %611
  store <8 x float> %interleaved.vec1619, ptr %608, align 4, !tbaa !9
  %wide.vec1620 = load <8 x float>, ptr %609, align 4, !tbaa !9
  %612 = fmul <8 x float> %606, %wide.vec1609
  %613 = fmul <8 x float> %607, %wide.vec1620
  %interleaved.vec1623 = fadd <8 x float> %612, %613
  store <8 x float> %interleaved.vec1623, ptr %609, align 4, !tbaa !9
  %index.next1624 = add nuw i64 %index1607, 4
  %614 = icmp eq i64 %index.next1624, %n.vec1603
  br i1 %614, label %middle.block1598, label %vector.body1606, !llvm.loop !33

middle.block1598:                                 ; preds = %vector.body1606
  %cmp.n1625 = icmp eq i64 %n.vec1603, %589
  br i1 %cmp.n1625, label %.loopexit983, label %scalar.ph1599.preheader

scalar.ph1599.preheader:                          ; preds = %middle.block1598, %vector.memcheck1578, %vector.scevcheck1559, %.lr.ph1046
  %indvars.iv1147.ph = phi i64 [ 1, %vector.memcheck1578 ], [ 1, %vector.scevcheck1559 ], [ 1, %.lr.ph1046 ], [ %ind.end1604, %middle.block1598 ]
  %615 = insertelement <2 x float> poison, float %581, i64 0
  %616 = shufflevector <2 x float> %615, <2 x float> poison, <2 x i32> zeroinitializer
  %617 = insertelement <2 x float> poison, float %579, i64 0
  %618 = shufflevector <2 x float> %617, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph1599

scalar.ph1599:                                    ; preds = %scalar.ph1599.preheader, %scalar.ph1599
  %indvars.iv1147 = phi i64 [ %indvars.iv.next1148, %scalar.ph1599 ], [ %indvars.iv1147.ph, %scalar.ph1599.preheader ]
  %gep1225 = getelementptr %struct.complex, ptr %invariant.gep1224, i64 %indvars.iv1147
  %gep1227 = getelementptr %struct.complex, ptr %invariant.gep1226, i64 %indvars.iv1147
  %619 = load <2 x float>, ptr %gep1225, align 4, !tbaa !9
  %620 = load <2 x float>, ptr %gep1227, align 4, !tbaa !9
  %621 = fmul <2 x float> %616, %620
  %622 = fmul <2 x float> %618, %619
  %623 = fsub <2 x float> %622, %621
  store <2 x float> %623, ptr %gep1225, align 4, !tbaa !9
  %624 = fmul <2 x float> %616, %619
  %625 = load <2 x float>, ptr %gep1227, align 4, !tbaa !9
  %626 = fmul <2 x float> %618, %625
  %627 = fadd <2 x float> %624, %626
  store <2 x float> %627, ptr %gep1227, align 4, !tbaa !9
  %indvars.iv.next1148 = add nuw nsw i64 %indvars.iv1147, 1
  %exitcond1151.not = icmp eq i64 %indvars.iv.next1148, %wide.trip.count1150
  br i1 %exitcond1151.not, label %.loopexit983, label %scalar.ph1599, !llvm.loop !34

.loopexit983:                                     ; preds = %scalar.ph1599, %middle.block1598, %584, %.lr.ph1050
  %628 = icmp sgt i64 %indvars.iv1152, 2
  %indvar.next1561 = add i64 %indvar1560, 1
  br i1 %628, label %.lr.ph1050, label %.loopexit976, !llvm.loop !35

629:                                              ; preds = %432
  %630 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #4
  %.not940 = icmp eq i32 %630, 0
  br i1 %.not940, label %812, label %631

631:                                              ; preds = %629
  %632 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #4
  %.not947 = icmp eq i32 %632, 0
  br i1 %.not947, label %720, label %633

633:                                              ; preds = %631
  %634 = load i32, ptr %4, align 4, !tbaa !5
  %.not9501054 = icmp slt i32 %634, 2
  br i1 %.not9501054, label %.loopexit976, label %.lr.ph1057.preheader

.lr.ph1057.preheader:                             ; preds = %633
  %635 = sext i32 %13 to i64
  %636 = add nuw i32 %634, 1
  %wide.trip.count1163 = zext i32 %636 to i64
  %invariant.gep1230 = getelementptr %struct.complex, ptr %15, i64 %635
  %637 = shl nsw i64 %635, 4
  %638 = shl nsw i64 %14, 3
  %639 = shl nsw i64 %635, 3
  %640 = add nsw i64 %635, %14
  %641 = shl nsw i64 %640, 3
  %642 = getelementptr i8, ptr %7, i64 %641
  %scevgep1633 = getelementptr i8, ptr %642, i64 8
  %643 = getelementptr i8, ptr %7, i64 %641
  %scevgep1641 = getelementptr i8, ptr %643, i64 12
  %644 = shl nsw i64 %635, 4
  %645 = shl nsw i64 %14, 3
  %646 = add nsw i64 %644, %645
  %647 = shl nsw i64 %635, 3
  %648 = shl nsw i64 %635, 3
  %649 = add nsw i64 %648, %645
  %650 = getelementptr i8, ptr %7, i64 %649
  %scevgep1649 = getelementptr i8, ptr %650, i64 8
  %651 = getelementptr i8, ptr %7, i64 %649
  %scevgep1650 = getelementptr i8, ptr %651, i64 -4
  %652 = add nsw i64 %644, %645
  %653 = add nsw i64 %648, %645
  %654 = getelementptr i8, ptr %7, i64 %653
  %scevgep1655 = getelementptr i8, ptr %654, i64 12
  %scevgep1656 = getelementptr i8, ptr %7, i64 %653
  %655 = getelementptr i8, ptr %7, i64 %646
  %656 = getelementptr i8, ptr %655, i64 8
  %657 = getelementptr i8, ptr %7, i64 %646
  %658 = getelementptr i8, ptr %657, i64 -4
  %659 = getelementptr i8, ptr %7, i64 %652
  %660 = getelementptr i8, ptr %659, i64 12
  %661 = getelementptr i8, ptr %7, i64 %652
  %662 = getelementptr i8, ptr %7, i64 %637
  %663 = getelementptr i8, ptr %662, i64 %638
  %664 = getelementptr i8, ptr %663, i64 8
  %665 = getelementptr i8, ptr %7, i64 %637
  %666 = getelementptr i8, ptr %665, i64 %638
  %667 = getelementptr i8, ptr %666, i64 12
  br label %.lr.ph1057

.lr.ph1057:                                       ; preds = %.lr.ph1057.preheader, %.loopexit981
  %indvar1627 = phi i64 [ 0, %.lr.ph1057.preheader ], [ %indvar.next1628, %.loopexit981 ]
  %indvars.iv1160 = phi i64 [ 2, %.lr.ph1057.preheader ], [ %indvars.iv.next1161, %.loopexit981 ]
  %668 = mul i64 %647, %indvar1627
  %scevgep1646 = getelementptr i8, ptr %656, i64 %668
  %scevgep1647 = getelementptr i8, ptr %658, i64 %668
  %scevgep1652 = getelementptr i8, ptr %660, i64 %668
  %scevgep1653 = getelementptr i8, ptr %661, i64 %668
  %669 = mul i64 %639, %indvar1627
  %scevgep1629 = getelementptr i8, ptr %664, i64 %669
  %scevgep1637 = getelementptr i8, ptr %667, i64 %669
  %670 = add nsw i64 %indvars.iv1160, -1
  %671 = getelementptr inbounds float, ptr %11, i64 %670
  %672 = load float, ptr %671, align 4, !tbaa !9
  %673 = getelementptr inbounds float, ptr %12, i64 %670
  %674 = load float, ptr %673, align 4, !tbaa !9
  %675 = fcmp une float %672, 1.000000e+00
  %676 = fcmp une float %674, 0.000000e+00
  %or.cond17 = select i1 %675, i1 true, i1 %676
  br i1 %or.cond17, label %677, label %.loopexit981

677:                                              ; preds = %.lr.ph1057
  %678 = load i32, ptr %3, align 4, !tbaa !5
  %.not9511051 = icmp slt i32 %678, 1
  br i1 %.not9511051, label %.loopexit981, label %.lr.ph1053

.lr.ph1053:                                       ; preds = %677
  %679 = mul nsw i64 %indvars.iv1160, %635
  %680 = add nuw i32 %678, 1
  %wide.trip.count1158 = zext i32 %680 to i64
  %invariant.gep1228 = getelementptr %struct.complex, ptr %15, i64 %679
  %681 = zext nneg i32 %678 to i64
  %min.iters.check1667 = icmp ult i32 %678, 8
  br i1 %min.iters.check1667, label %scalar.ph1666.preheader, label %vector.scevcheck1626

vector.scevcheck1626:                             ; preds = %.lr.ph1053
  %682 = add nsw i64 %wide.trip.count1158, -2
  %mul.result1631 = shl nsw i64 %682, 3
  %683 = getelementptr i8, ptr %scevgep1629, i64 %mul.result1631
  %684 = icmp ult ptr %683, %scevgep1629
  %mul.result1635 = shl nsw i64 %682, 3
  %mul.overflow1636 = icmp ugt i64 %682, 2305843009213693951
  %685 = getelementptr i8, ptr %scevgep1633, i64 %mul.result1635
  %686 = icmp ult ptr %685, %scevgep1633
  %687 = or i1 %686, %mul.overflow1636
  %mul.result1639 = shl nsw i64 %682, 3
  %688 = getelementptr i8, ptr %scevgep1637, i64 %mul.result1639
  %689 = icmp ult ptr %688, %scevgep1637
  %mul.result1643 = shl nsw i64 %682, 3
  %690 = getelementptr i8, ptr %scevgep1641, i64 %mul.result1643
  %691 = icmp ult ptr %690, %scevgep1641
  %692 = or i1 %684, %687
  %693 = or i1 %689, %692
  %694 = or i1 %691, %693
  br i1 %694, label %scalar.ph1666.preheader, label %vector.memcheck1645

vector.memcheck1645:                              ; preds = %vector.scevcheck1626
  %695 = shl nuw nsw i64 %wide.trip.count1158, 3
  %scevgep1648 = getelementptr i8, ptr %scevgep1647, i64 %695
  %scevgep1651 = getelementptr i8, ptr %scevgep1650, i64 %695
  %scevgep1654 = getelementptr i8, ptr %scevgep1653, i64 %695
  %scevgep1657 = getelementptr i8, ptr %scevgep1656, i64 %695
  %bound01658 = icmp ult ptr %scevgep1646, %scevgep1651
  %bound11659 = icmp ult ptr %scevgep1649, %scevgep1648
  %found.conflict1660 = and i1 %bound01658, %bound11659
  %bound01661 = icmp ult ptr %scevgep1652, %scevgep1657
  %bound11662 = icmp ult ptr %scevgep1655, %scevgep1654
  %found.conflict1663 = and i1 %bound01661, %bound11662
  %conflict.rdx1664 = or i1 %found.conflict1660, %found.conflict1663
  br i1 %conflict.rdx1664, label %scalar.ph1666.preheader, label %vector.ph1668

vector.ph1668:                                    ; preds = %vector.memcheck1645
  %n.vec1670 = and i64 %681, 2147483644
  %ind.end1671 = or disjoint i64 %n.vec1670, 1
  %broadcast.splatinsert1679 = insertelement <4 x float> poison, float %672, i64 0
  %broadcast.splatinsert1684 = insertelement <4 x float> poison, float %674, i64 0
  %696 = shufflevector <4 x float> %broadcast.splatinsert1679, <4 x float> poison, <8 x i32> zeroinitializer
  %697 = shufflevector <4 x float> %broadcast.splatinsert1684, <4 x float> poison, <8 x i32> zeroinitializer
  %698 = shufflevector <4 x float> %broadcast.splatinsert1684, <4 x float> poison, <8 x i32> zeroinitializer
  %699 = shufflevector <4 x float> %broadcast.splatinsert1679, <4 x float> poison, <8 x i32> zeroinitializer
  br label %vector.body1673

vector.body1673:                                  ; preds = %vector.body1673, %vector.ph1668
  %index1674 = phi i64 [ 0, %vector.ph1668 ], [ %index.next1691, %vector.body1673 ]
  %offset.idx1675 = or disjoint i64 %index1674, 1
  %700 = getelementptr %struct.complex, ptr %invariant.gep1228, i64 %offset.idx1675
  %wide.vec1676 = load <8 x float>, ptr %700, align 4, !tbaa !9
  %701 = getelementptr %struct.complex, ptr %invariant.gep1230, i64 %offset.idx1675
  %wide.vec1681 = load <8 x float>, ptr %701, align 4, !tbaa !9
  %702 = fmul <8 x float> %696, %wide.vec1676
  %703 = fmul <8 x float> %697, %wide.vec1681
  %interleaved.vec1686 = fsub <8 x float> %702, %703
  store <8 x float> %interleaved.vec1686, ptr %700, align 4, !tbaa !9
  %wide.vec1687 = load <8 x float>, ptr %701, align 4, !tbaa !9
  %704 = fmul <8 x float> %698, %wide.vec1676
  %705 = fmul <8 x float> %699, %wide.vec1687
  %interleaved.vec1690 = fadd <8 x float> %704, %705
  store <8 x float> %interleaved.vec1690, ptr %701, align 4, !tbaa !9
  %index.next1691 = add nuw i64 %index1674, 4
  %706 = icmp eq i64 %index.next1691, %n.vec1670
  br i1 %706, label %middle.block1665, label %vector.body1673, !llvm.loop !36

middle.block1665:                                 ; preds = %vector.body1673
  %cmp.n1692 = icmp eq i64 %n.vec1670, %681
  br i1 %cmp.n1692, label %.loopexit981, label %scalar.ph1666.preheader

scalar.ph1666.preheader:                          ; preds = %middle.block1665, %vector.memcheck1645, %vector.scevcheck1626, %.lr.ph1053
  %indvars.iv1155.ph = phi i64 [ 1, %vector.memcheck1645 ], [ 1, %vector.scevcheck1626 ], [ 1, %.lr.ph1053 ], [ %ind.end1671, %middle.block1665 ]
  %707 = insertelement <2 x float> poison, float %674, i64 0
  %708 = shufflevector <2 x float> %707, <2 x float> poison, <2 x i32> zeroinitializer
  %709 = insertelement <2 x float> poison, float %672, i64 0
  %710 = shufflevector <2 x float> %709, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph1666

scalar.ph1666:                                    ; preds = %scalar.ph1666.preheader, %scalar.ph1666
  %indvars.iv1155 = phi i64 [ %indvars.iv.next1156, %scalar.ph1666 ], [ %indvars.iv1155.ph, %scalar.ph1666.preheader ]
  %gep1229 = getelementptr %struct.complex, ptr %invariant.gep1228, i64 %indvars.iv1155
  %gep1231 = getelementptr %struct.complex, ptr %invariant.gep1230, i64 %indvars.iv1155
  %711 = load <2 x float>, ptr %gep1229, align 4, !tbaa !9
  %712 = load <2 x float>, ptr %gep1231, align 4, !tbaa !9
  %713 = fmul <2 x float> %708, %712
  %714 = fmul <2 x float> %710, %711
  %715 = fsub <2 x float> %714, %713
  store <2 x float> %715, ptr %gep1229, align 4, !tbaa !9
  %716 = fmul <2 x float> %708, %711
  %717 = load <2 x float>, ptr %gep1231, align 4, !tbaa !9
  %718 = fmul <2 x float> %710, %717
  %719 = fadd <2 x float> %716, %718
  store <2 x float> %719, ptr %gep1231, align 4, !tbaa !9
  %indvars.iv.next1156 = add nuw nsw i64 %indvars.iv1155, 1
  %exitcond1159.not = icmp eq i64 %indvars.iv.next1156, %wide.trip.count1158
  br i1 %exitcond1159.not, label %.loopexit981, label %scalar.ph1666, !llvm.loop !37

.loopexit981:                                     ; preds = %scalar.ph1666, %middle.block1665, %677, %.lr.ph1057
  %indvars.iv.next1161 = add nuw nsw i64 %indvars.iv1160, 1
  %exitcond1164.not = icmp eq i64 %indvars.iv.next1161, %wide.trip.count1163
  %indvar.next1628 = add i64 %indvar1627, 1
  br i1 %exitcond1164.not, label %.loopexit976, label %.lr.ph1057, !llvm.loop !38

720:                                              ; preds = %631
  %721 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.4) #4
  %.not948 = icmp eq i32 %721, 0
  br i1 %.not948, label %.loopexit976, label %722

722:                                              ; preds = %720
  %723 = load i32, ptr %4, align 4, !tbaa !5
  %724 = icmp sgt i32 %723, 1
  br i1 %724, label %.lr.ph1062.preheader, label %.loopexit976

.lr.ph1062.preheader:                             ; preds = %722
  %725 = sext i32 %13 to i64
  %726 = zext nneg i32 %723 to i64
  %invariant.gep1234 = getelementptr %struct.complex, ptr %15, i64 %725
  %727 = mul nsw i64 %725, %726
  %728 = shl i64 %727, 3
  %729 = shl nsw i64 %14, 3
  %730 = mul nsw i64 %725, -8
  %731 = add nsw i64 %725, %14
  %732 = shl nsw i64 %731, 3
  %733 = getelementptr i8, ptr %7, i64 %732
  %scevgep1700 = getelementptr i8, ptr %733, i64 8
  %734 = getelementptr i8, ptr %7, i64 %732
  %scevgep1708 = getelementptr i8, ptr %734, i64 12
  %735 = mul nsw i64 %725, %726
  %736 = shl i64 %735, 3
  %737 = shl nsw i64 %14, 3
  %738 = add i64 %736, %737
  %739 = mul nsw i64 %725, -8
  %740 = shl nsw i64 %725, 3
  %741 = add nsw i64 %740, %737
  %742 = getelementptr i8, ptr %7, i64 %741
  %scevgep1716 = getelementptr i8, ptr %742, i64 8
  %743 = getelementptr i8, ptr %7, i64 %741
  %scevgep1717 = getelementptr i8, ptr %743, i64 -4
  %744 = add i64 %736, %737
  %745 = add nsw i64 %740, %737
  %746 = getelementptr i8, ptr %7, i64 %745
  %scevgep1722 = getelementptr i8, ptr %746, i64 12
  %scevgep1723 = getelementptr i8, ptr %7, i64 %745
  %747 = getelementptr i8, ptr %7, i64 %738
  %748 = getelementptr i8, ptr %747, i64 8
  %749 = getelementptr i8, ptr %7, i64 %738
  %750 = getelementptr i8, ptr %749, i64 -4
  %751 = getelementptr i8, ptr %7, i64 %744
  %752 = getelementptr i8, ptr %751, i64 12
  %753 = getelementptr i8, ptr %7, i64 %744
  %754 = getelementptr i8, ptr %7, i64 %728
  %755 = getelementptr i8, ptr %754, i64 %729
  %756 = getelementptr i8, ptr %755, i64 8
  %757 = getelementptr i8, ptr %7, i64 %728
  %758 = getelementptr i8, ptr %757, i64 %729
  %759 = getelementptr i8, ptr %758, i64 12
  br label %.lr.ph1062

.lr.ph1062:                                       ; preds = %.lr.ph1062.preheader, %.loopexit979
  %indvar1694 = phi i64 [ 0, %.lr.ph1062.preheader ], [ %indvar.next1695, %.loopexit979 ]
  %indvars.iv1170 = phi i64 [ %726, %.lr.ph1062.preheader ], [ %indvars.iv.next1171, %.loopexit979 ]
  %760 = mul i64 %739, %indvar1694
  %scevgep1713 = getelementptr i8, ptr %748, i64 %760
  %scevgep1714 = getelementptr i8, ptr %750, i64 %760
  %scevgep1719 = getelementptr i8, ptr %752, i64 %760
  %scevgep1720 = getelementptr i8, ptr %753, i64 %760
  %761 = mul i64 %730, %indvar1694
  %scevgep1696 = getelementptr i8, ptr %756, i64 %761
  %scevgep1704 = getelementptr i8, ptr %759, i64 %761
  %indvars.iv.next1171 = add nsw i64 %indvars.iv1170, -1
  %762 = getelementptr inbounds float, ptr %11, i64 %indvars.iv.next1171
  %763 = load float, ptr %762, align 4, !tbaa !9
  %764 = getelementptr inbounds float, ptr %12, i64 %indvars.iv.next1171
  %765 = load float, ptr %764, align 4, !tbaa !9
  %766 = fcmp une float %763, 1.000000e+00
  %767 = fcmp une float %765, 0.000000e+00
  %or.cond19 = select i1 %766, i1 true, i1 %767
  br i1 %or.cond19, label %768, label %.loopexit979

768:                                              ; preds = %.lr.ph1062
  %769 = load i32, ptr %3, align 4, !tbaa !5
  %.not9491058 = icmp slt i32 %769, 1
  br i1 %.not9491058, label %.loopexit979, label %.lr.ph1060

.lr.ph1060:                                       ; preds = %768
  %770 = mul nsw i64 %indvars.iv1170, %725
  %771 = add nuw i32 %769, 1
  %wide.trip.count1168 = zext i32 %771 to i64
  %invariant.gep1232 = getelementptr %struct.complex, ptr %15, i64 %770
  %772 = zext nneg i32 %769 to i64
  %min.iters.check1734 = icmp ult i32 %769, 8
  br i1 %min.iters.check1734, label %scalar.ph1733.preheader, label %vector.scevcheck1693

vector.scevcheck1693:                             ; preds = %.lr.ph1060
  %773 = add nsw i64 %wide.trip.count1168, -2
  %mul.result1698 = shl nsw i64 %773, 3
  %774 = getelementptr i8, ptr %scevgep1696, i64 %mul.result1698
  %775 = icmp ult ptr %774, %scevgep1696
  %mul.result1702 = shl nsw i64 %773, 3
  %mul.overflow1703 = icmp ugt i64 %773, 2305843009213693951
  %776 = getelementptr i8, ptr %scevgep1700, i64 %mul.result1702
  %777 = icmp ult ptr %776, %scevgep1700
  %778 = or i1 %777, %mul.overflow1703
  %mul.result1706 = shl nsw i64 %773, 3
  %779 = getelementptr i8, ptr %scevgep1704, i64 %mul.result1706
  %780 = icmp ult ptr %779, %scevgep1704
  %mul.result1710 = shl nsw i64 %773, 3
  %781 = getelementptr i8, ptr %scevgep1708, i64 %mul.result1710
  %782 = icmp ult ptr %781, %scevgep1708
  %783 = or i1 %775, %778
  %784 = or i1 %780, %783
  %785 = or i1 %782, %784
  br i1 %785, label %scalar.ph1733.preheader, label %vector.memcheck1712

vector.memcheck1712:                              ; preds = %vector.scevcheck1693
  %786 = shl nuw nsw i64 %wide.trip.count1168, 3
  %scevgep1715 = getelementptr i8, ptr %scevgep1714, i64 %786
  %scevgep1718 = getelementptr i8, ptr %scevgep1717, i64 %786
  %scevgep1721 = getelementptr i8, ptr %scevgep1720, i64 %786
  %scevgep1724 = getelementptr i8, ptr %scevgep1723, i64 %786
  %bound01725 = icmp ult ptr %scevgep1713, %scevgep1718
  %bound11726 = icmp ult ptr %scevgep1716, %scevgep1715
  %found.conflict1727 = and i1 %bound01725, %bound11726
  %bound01728 = icmp ult ptr %scevgep1719, %scevgep1724
  %bound11729 = icmp ult ptr %scevgep1722, %scevgep1721
  %found.conflict1730 = and i1 %bound01728, %bound11729
  %conflict.rdx1731 = or i1 %found.conflict1727, %found.conflict1730
  br i1 %conflict.rdx1731, label %scalar.ph1733.preheader, label %vector.ph1735

vector.ph1735:                                    ; preds = %vector.memcheck1712
  %n.vec1737 = and i64 %772, 2147483644
  %ind.end1738 = or disjoint i64 %n.vec1737, 1
  %broadcast.splatinsert1746 = insertelement <4 x float> poison, float %763, i64 0
  %broadcast.splatinsert1751 = insertelement <4 x float> poison, float %765, i64 0
  %787 = shufflevector <4 x float> %broadcast.splatinsert1746, <4 x float> poison, <8 x i32> zeroinitializer
  %788 = shufflevector <4 x float> %broadcast.splatinsert1751, <4 x float> poison, <8 x i32> zeroinitializer
  %789 = shufflevector <4 x float> %broadcast.splatinsert1751, <4 x float> poison, <8 x i32> zeroinitializer
  %790 = shufflevector <4 x float> %broadcast.splatinsert1746, <4 x float> poison, <8 x i32> zeroinitializer
  br label %vector.body1740

vector.body1740:                                  ; preds = %vector.body1740, %vector.ph1735
  %index1741 = phi i64 [ 0, %vector.ph1735 ], [ %index.next1758, %vector.body1740 ]
  %offset.idx1742 = or disjoint i64 %index1741, 1
  %791 = getelementptr %struct.complex, ptr %invariant.gep1232, i64 %offset.idx1742
  %wide.vec1743 = load <8 x float>, ptr %791, align 4, !tbaa !9
  %792 = getelementptr %struct.complex, ptr %invariant.gep1234, i64 %offset.idx1742
  %wide.vec1748 = load <8 x float>, ptr %792, align 4, !tbaa !9
  %793 = fmul <8 x float> %787, %wide.vec1743
  %794 = fmul <8 x float> %788, %wide.vec1748
  %interleaved.vec1753 = fsub <8 x float> %793, %794
  store <8 x float> %interleaved.vec1753, ptr %791, align 4, !tbaa !9
  %wide.vec1754 = load <8 x float>, ptr %792, align 4, !tbaa !9
  %795 = fmul <8 x float> %789, %wide.vec1743
  %796 = fmul <8 x float> %790, %wide.vec1754
  %interleaved.vec1757 = fadd <8 x float> %795, %796
  store <8 x float> %interleaved.vec1757, ptr %792, align 4, !tbaa !9
  %index.next1758 = add nuw i64 %index1741, 4
  %797 = icmp eq i64 %index.next1758, %n.vec1737
  br i1 %797, label %middle.block1732, label %vector.body1740, !llvm.loop !39

middle.block1732:                                 ; preds = %vector.body1740
  %cmp.n1759 = icmp eq i64 %n.vec1737, %772
  br i1 %cmp.n1759, label %.loopexit979, label %scalar.ph1733.preheader

scalar.ph1733.preheader:                          ; preds = %middle.block1732, %vector.memcheck1712, %vector.scevcheck1693, %.lr.ph1060
  %indvars.iv1165.ph = phi i64 [ 1, %vector.memcheck1712 ], [ 1, %vector.scevcheck1693 ], [ 1, %.lr.ph1060 ], [ %ind.end1738, %middle.block1732 ]
  %798 = insertelement <2 x float> poison, float %765, i64 0
  %799 = shufflevector <2 x float> %798, <2 x float> poison, <2 x i32> zeroinitializer
  %800 = insertelement <2 x float> poison, float %763, i64 0
  %801 = shufflevector <2 x float> %800, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph1733

scalar.ph1733:                                    ; preds = %scalar.ph1733.preheader, %scalar.ph1733
  %indvars.iv1165 = phi i64 [ %indvars.iv.next1166, %scalar.ph1733 ], [ %indvars.iv1165.ph, %scalar.ph1733.preheader ]
  %gep1233 = getelementptr %struct.complex, ptr %invariant.gep1232, i64 %indvars.iv1165
  %gep1235 = getelementptr %struct.complex, ptr %invariant.gep1234, i64 %indvars.iv1165
  %802 = load <2 x float>, ptr %gep1233, align 4, !tbaa !9
  %803 = load <2 x float>, ptr %gep1235, align 4, !tbaa !9
  %804 = fmul <2 x float> %799, %803
  %805 = fmul <2 x float> %801, %802
  %806 = fsub <2 x float> %805, %804
  store <2 x float> %806, ptr %gep1233, align 4, !tbaa !9
  %807 = fmul <2 x float> %799, %802
  %808 = load <2 x float>, ptr %gep1235, align 4, !tbaa !9
  %809 = fmul <2 x float> %801, %808
  %810 = fadd <2 x float> %807, %809
  store <2 x float> %810, ptr %gep1235, align 4, !tbaa !9
  %indvars.iv.next1166 = add nuw nsw i64 %indvars.iv1165, 1
  %exitcond1169.not = icmp eq i64 %indvars.iv.next1166, %wide.trip.count1168
  br i1 %exitcond1169.not, label %.loopexit979, label %scalar.ph1733, !llvm.loop !40

.loopexit979:                                     ; preds = %scalar.ph1733, %middle.block1732, %768, %.lr.ph1062
  %811 = icmp sgt i64 %indvars.iv1170, 2
  %indvar.next1695 = add i64 %indvar1694, 1
  br i1 %811, label %.lr.ph1062, label %.loopexit976, !llvm.loop !41

812:                                              ; preds = %629
  %813 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #4
  %.not941 = icmp eq i32 %813, 0
  br i1 %.not941, label %.loopexit976, label %814

814:                                              ; preds = %812
  %815 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.5) #4
  %.not942 = icmp eq i32 %815, 0
  br i1 %.not942, label %904, label %816

816:                                              ; preds = %814
  %817 = load i32, ptr %4, align 4, !tbaa !5
  %.not945.not1066 = icmp sgt i32 %817, 1
  br i1 %.not945.not1066, label %.lr.ph1069, label %.loopexit976

.lr.ph1069:                                       ; preds = %816
  %818 = mul i32 %817, %13
  %819 = sext i32 %818 to i64
  %820 = sext i32 %13 to i64
  %wide.trip.count1181 = zext nneg i32 %817 to i64
  %invariant.gep1238 = getelementptr %struct.complex, ptr %15, i64 %819
  %821 = shl nsw i64 %820, 3
  %822 = shl nsw i64 %14, 3
  %823 = shl nsw i64 %820, 3
  %824 = add nsw i64 %819, %14
  %825 = shl nsw i64 %824, 3
  %826 = getelementptr i8, ptr %7, i64 %825
  %scevgep1767 = getelementptr i8, ptr %826, i64 8
  %827 = getelementptr i8, ptr %7, i64 %825
  %scevgep1775 = getelementptr i8, ptr %827, i64 12
  %828 = shl nsw i64 %820, 3
  %829 = shl nsw i64 %14, 3
  %830 = add nsw i64 %828, %829
  %831 = shl nsw i64 %820, 3
  %832 = shl nsw i64 %819, 3
  %833 = add nsw i64 %832, %829
  %834 = getelementptr i8, ptr %7, i64 %833
  %scevgep1783 = getelementptr i8, ptr %834, i64 8
  %835 = getelementptr i8, ptr %7, i64 %833
  %scevgep1784 = getelementptr i8, ptr %835, i64 -4
  %836 = add nsw i64 %828, %829
  %837 = add nsw i64 %832, %829
  %838 = getelementptr i8, ptr %7, i64 %837
  %scevgep1789 = getelementptr i8, ptr %838, i64 12
  %scevgep1790 = getelementptr i8, ptr %7, i64 %837
  %839 = getelementptr i8, ptr %7, i64 %830
  %840 = getelementptr i8, ptr %839, i64 8
  %841 = getelementptr i8, ptr %7, i64 %830
  %842 = getelementptr i8, ptr %841, i64 -4
  %843 = getelementptr i8, ptr %7, i64 %836
  %844 = getelementptr i8, ptr %843, i64 12
  %845 = getelementptr i8, ptr %7, i64 %836
  %846 = getelementptr i8, ptr %7, i64 %821
  %847 = getelementptr i8, ptr %846, i64 %822
  %848 = getelementptr i8, ptr %847, i64 8
  %849 = getelementptr i8, ptr %7, i64 %821
  %850 = getelementptr i8, ptr %849, i64 %822
  %851 = getelementptr i8, ptr %850, i64 12
  br label %852

852:                                              ; preds = %.lr.ph1069, %.loopexit977
  %indvar1761 = phi i64 [ 0, %.lr.ph1069 ], [ %indvar.next1762, %.loopexit977 ]
  %indvars.iv1178 = phi i64 [ 1, %.lr.ph1069 ], [ %indvars.iv.next1179, %.loopexit977 ]
  %853 = mul i64 %831, %indvar1761
  %scevgep1780 = getelementptr i8, ptr %840, i64 %853
  %scevgep1781 = getelementptr i8, ptr %842, i64 %853
  %scevgep1786 = getelementptr i8, ptr %844, i64 %853
  %scevgep1787 = getelementptr i8, ptr %845, i64 %853
  %854 = mul i64 %823, %indvar1761
  %scevgep1763 = getelementptr i8, ptr %848, i64 %854
  %scevgep1771 = getelementptr i8, ptr %851, i64 %854
  %855 = getelementptr inbounds float, ptr %11, i64 %indvars.iv1178
  %856 = load float, ptr %855, align 4, !tbaa !9
  %857 = getelementptr inbounds float, ptr %12, i64 %indvars.iv1178
  %858 = load float, ptr %857, align 4, !tbaa !9
  %859 = fcmp une float %856, 1.000000e+00
  %860 = fcmp une float %858, 0.000000e+00
  %or.cond21 = select i1 %859, i1 true, i1 %860
  br i1 %or.cond21, label %861, label %.loopexit977

861:                                              ; preds = %852
  %862 = load i32, ptr %3, align 4, !tbaa !5
  %.not9461063 = icmp slt i32 %862, 1
  br i1 %.not9461063, label %.loopexit977, label %.lr.ph1065

.lr.ph1065:                                       ; preds = %861
  %863 = mul nsw i64 %indvars.iv1178, %820
  %864 = add nuw i32 %862, 1
  %wide.trip.count1176 = zext i32 %864 to i64
  %invariant.gep1236 = getelementptr %struct.complex, ptr %15, i64 %863
  %865 = zext nneg i32 %862 to i64
  %min.iters.check1801 = icmp ult i32 %862, 8
  br i1 %min.iters.check1801, label %scalar.ph1800.preheader, label %vector.scevcheck1760

vector.scevcheck1760:                             ; preds = %.lr.ph1065
  %866 = add nsw i64 %wide.trip.count1176, -2
  %mul.result1765 = shl nsw i64 %866, 3
  %867 = getelementptr i8, ptr %scevgep1763, i64 %mul.result1765
  %868 = icmp ult ptr %867, %scevgep1763
  %mul.result1769 = shl nsw i64 %866, 3
  %mul.overflow1770 = icmp ugt i64 %866, 2305843009213693951
  %869 = getelementptr i8, ptr %scevgep1767, i64 %mul.result1769
  %870 = icmp ult ptr %869, %scevgep1767
  %871 = or i1 %870, %mul.overflow1770
  %mul.result1773 = shl nsw i64 %866, 3
  %872 = getelementptr i8, ptr %scevgep1771, i64 %mul.result1773
  %873 = icmp ult ptr %872, %scevgep1771
  %mul.result1777 = shl nsw i64 %866, 3
  %874 = getelementptr i8, ptr %scevgep1775, i64 %mul.result1777
  %875 = icmp ult ptr %874, %scevgep1775
  %876 = or i1 %868, %871
  %877 = or i1 %873, %876
  %878 = or i1 %875, %877
  br i1 %878, label %scalar.ph1800.preheader, label %vector.memcheck1779

vector.memcheck1779:                              ; preds = %vector.scevcheck1760
  %879 = shl nuw nsw i64 %wide.trip.count1176, 3
  %scevgep1782 = getelementptr i8, ptr %scevgep1781, i64 %879
  %scevgep1785 = getelementptr i8, ptr %scevgep1784, i64 %879
  %scevgep1788 = getelementptr i8, ptr %scevgep1787, i64 %879
  %scevgep1791 = getelementptr i8, ptr %scevgep1790, i64 %879
  %bound01792 = icmp ult ptr %scevgep1780, %scevgep1785
  %bound11793 = icmp ult ptr %scevgep1783, %scevgep1782
  %found.conflict1794 = and i1 %bound01792, %bound11793
  %bound01795 = icmp ult ptr %scevgep1786, %scevgep1791
  %bound11796 = icmp ult ptr %scevgep1789, %scevgep1788
  %found.conflict1797 = and i1 %bound01795, %bound11796
  %conflict.rdx1798 = or i1 %found.conflict1794, %found.conflict1797
  br i1 %conflict.rdx1798, label %scalar.ph1800.preheader, label %vector.ph1802

vector.ph1802:                                    ; preds = %vector.memcheck1779
  %n.vec1804 = and i64 %865, 2147483644
  %ind.end1805 = or disjoint i64 %n.vec1804, 1
  %broadcast.splatinsert1816 = insertelement <4 x float> poison, float %858, i64 0
  %broadcast.splatinsert1818 = insertelement <4 x float> poison, float %856, i64 0
  %880 = shufflevector <4 x float> %broadcast.splatinsert1818, <4 x float> poison, <8 x i32> zeroinitializer
  %881 = shufflevector <4 x float> %broadcast.splatinsert1816, <4 x float> poison, <8 x i32> zeroinitializer
  %882 = shufflevector <4 x float> %broadcast.splatinsert1818, <4 x float> poison, <8 x i32> zeroinitializer
  %883 = shufflevector <4 x float> %broadcast.splatinsert1816, <4 x float> poison, <8 x i32> zeroinitializer
  br label %vector.body1807

vector.body1807:                                  ; preds = %vector.body1807, %vector.ph1802
  %index1808 = phi i64 [ 0, %vector.ph1802 ], [ %index.next1825, %vector.body1807 ]
  %offset.idx1809 = or disjoint i64 %index1808, 1
  %884 = getelementptr %struct.complex, ptr %invariant.gep1236, i64 %offset.idx1809
  %wide.vec1810 = load <8 x float>, ptr %884, align 4, !tbaa !9
  %885 = getelementptr %struct.complex, ptr %invariant.gep1238, i64 %offset.idx1809
  %wide.vec1813 = load <8 x float>, ptr %885, align 4, !tbaa !9
  %886 = fmul <8 x float> %880, %wide.vec1810
  %887 = fmul <8 x float> %881, %wide.vec1813
  %interleaved.vec1820 = fadd <8 x float> %886, %887
  store <8 x float> %interleaved.vec1820, ptr %884, align 4, !tbaa !9
  %wide.vec1821 = load <8 x float>, ptr %885, align 4, !tbaa !9
  %888 = fmul <8 x float> %882, %wide.vec1821
  %889 = fmul <8 x float> %883, %wide.vec1810
  %interleaved.vec1824 = fsub <8 x float> %888, %889
  store <8 x float> %interleaved.vec1824, ptr %885, align 4, !tbaa !9
  %index.next1825 = add nuw i64 %index1808, 4
  %890 = icmp eq i64 %index.next1825, %n.vec1804
  br i1 %890, label %middle.block1799, label %vector.body1807, !llvm.loop !42

middle.block1799:                                 ; preds = %vector.body1807
  %cmp.n1826 = icmp eq i64 %n.vec1804, %865
  br i1 %cmp.n1826, label %.loopexit977, label %scalar.ph1800.preheader

scalar.ph1800.preheader:                          ; preds = %middle.block1799, %vector.memcheck1779, %vector.scevcheck1760, %.lr.ph1065
  %indvars.iv1173.ph = phi i64 [ 1, %vector.memcheck1779 ], [ 1, %vector.scevcheck1760 ], [ 1, %.lr.ph1065 ], [ %ind.end1805, %middle.block1799 ]
  %891 = insertelement <2 x float> poison, float %858, i64 0
  %892 = shufflevector <2 x float> %891, <2 x float> poison, <2 x i32> zeroinitializer
  %893 = insertelement <2 x float> poison, float %856, i64 0
  %894 = shufflevector <2 x float> %893, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph1800

scalar.ph1800:                                    ; preds = %scalar.ph1800.preheader, %scalar.ph1800
  %indvars.iv1173 = phi i64 [ %indvars.iv.next1174, %scalar.ph1800 ], [ %indvars.iv1173.ph, %scalar.ph1800.preheader ]
  %gep1237 = getelementptr %struct.complex, ptr %invariant.gep1236, i64 %indvars.iv1173
  %gep1239 = getelementptr %struct.complex, ptr %invariant.gep1238, i64 %indvars.iv1173
  %895 = load <2 x float>, ptr %gep1237, align 4, !tbaa !9
  %896 = load <2 x float>, ptr %gep1239, align 4, !tbaa !9
  %897 = fmul <2 x float> %892, %896
  %898 = fmul <2 x float> %894, %895
  %899 = fadd <2 x float> %898, %897
  store <2 x float> %899, ptr %gep1237, align 4, !tbaa !9
  %900 = load <2 x float>, ptr %gep1239, align 4, !tbaa !9
  %901 = fmul <2 x float> %894, %900
  %902 = fmul <2 x float> %892, %895
  %903 = fsub <2 x float> %901, %902
  store <2 x float> %903, ptr %gep1239, align 4, !tbaa !9
  %indvars.iv.next1174 = add nuw nsw i64 %indvars.iv1173, 1
  %exitcond1177.not = icmp eq i64 %indvars.iv.next1174, %wide.trip.count1176
  br i1 %exitcond1177.not, label %.loopexit977, label %scalar.ph1800, !llvm.loop !43

.loopexit977:                                     ; preds = %scalar.ph1800, %middle.block1799, %861, %852
  %indvars.iv.next1179 = add nuw nsw i64 %indvars.iv1178, 1
  %exitcond1182.not = icmp eq i64 %indvars.iv.next1179, %wide.trip.count1181
  %indvar.next1762 = add i64 %indvar1761, 1
  br i1 %exitcond1182.not, label %.loopexit976, label %852, !llvm.loop !44

904:                                              ; preds = %814
  %905 = tail call i32 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.4) #4
  %.not943 = icmp eq i32 %905, 0
  br i1 %.not943, label %.loopexit976, label %906

906:                                              ; preds = %904
  %907 = load i32, ptr %4, align 4, !tbaa !5
  %908 = icmp sgt i32 %907, 1
  br i1 %908, label %.lr.ph1075, label %.loopexit976

.lr.ph1075:                                       ; preds = %906
  %909 = mul i32 %907, %13
  %910 = sext i32 %909 to i64
  %911 = zext nneg i32 %907 to i64
  %912 = sext i32 %13 to i64
  %invariant.gep1242 = getelementptr %struct.complex, ptr %15, i64 %910
  %913 = add nuw nsw i64 %911, 2305843009213693951
  %914 = mul i64 %913, %912
  %915 = shl i64 %914, 3
  %916 = shl nsw i64 %14, 3
  %917 = mul nsw i64 %912, -8
  %918 = add nsw i64 %910, %14
  %919 = shl nsw i64 %918, 3
  %920 = getelementptr i8, ptr %7, i64 %919
  %scevgep1834 = getelementptr i8, ptr %920, i64 8
  %921 = getelementptr i8, ptr %7, i64 %919
  %scevgep1842 = getelementptr i8, ptr %921, i64 12
  %922 = add nuw nsw i64 %911, 2305843009213693951
  %923 = mul i64 %922, %912
  %924 = shl i64 %923, 3
  %925 = shl nsw i64 %14, 3
  %926 = add i64 %924, %925
  %927 = mul nsw i64 %912, -8
  %928 = shl nsw i64 %910, 3
  %929 = add nsw i64 %928, %925
  %930 = getelementptr i8, ptr %7, i64 %929
  %scevgep1850 = getelementptr i8, ptr %930, i64 8
  %931 = getelementptr i8, ptr %7, i64 %929
  %scevgep1851 = getelementptr i8, ptr %931, i64 -4
  %932 = add i64 %924, %925
  %933 = add nsw i64 %928, %925
  %934 = getelementptr i8, ptr %7, i64 %933
  %scevgep1856 = getelementptr i8, ptr %934, i64 12
  %scevgep1857 = getelementptr i8, ptr %7, i64 %933
  %935 = getelementptr i8, ptr %7, i64 %926
  %936 = getelementptr i8, ptr %935, i64 8
  %937 = getelementptr i8, ptr %7, i64 %926
  %938 = getelementptr i8, ptr %937, i64 -4
  %939 = getelementptr i8, ptr %7, i64 %932
  %940 = getelementptr i8, ptr %939, i64 12
  %941 = getelementptr i8, ptr %7, i64 %932
  %942 = getelementptr i8, ptr %7, i64 %915
  %943 = getelementptr i8, ptr %942, i64 %916
  %944 = getelementptr i8, ptr %943, i64 8
  %945 = getelementptr i8, ptr %7, i64 %915
  %946 = getelementptr i8, ptr %945, i64 %916
  %947 = getelementptr i8, ptr %946, i64 12
  br label %948

948:                                              ; preds = %.lr.ph1075, %.loopexit
  %indvar1828 = phi i64 [ 0, %.lr.ph1075 ], [ %indvar.next1829, %.loopexit ]
  %indvars.iv1188 = phi i64 [ %911, %.lr.ph1075 ], [ %indvars.iv.next1189, %.loopexit ]
  %949 = mul i64 %927, %indvar1828
  %scevgep1847 = getelementptr i8, ptr %936, i64 %949
  %scevgep1848 = getelementptr i8, ptr %938, i64 %949
  %scevgep1853 = getelementptr i8, ptr %940, i64 %949
  %scevgep1854 = getelementptr i8, ptr %941, i64 %949
  %950 = mul i64 %917, %indvar1828
  %scevgep1830 = getelementptr i8, ptr %944, i64 %950
  %scevgep1838 = getelementptr i8, ptr %947, i64 %950
  %indvars.iv.next1189 = add nsw i64 %indvars.iv1188, -1
  %951 = getelementptr inbounds float, ptr %11, i64 %indvars.iv.next1189
  %952 = load float, ptr %951, align 4, !tbaa !9
  %953 = getelementptr inbounds float, ptr %12, i64 %indvars.iv.next1189
  %954 = load float, ptr %953, align 4, !tbaa !9
  %955 = fcmp une float %952, 1.000000e+00
  %956 = fcmp une float %954, 0.000000e+00
  %or.cond23 = select i1 %955, i1 true, i1 %956
  br i1 %or.cond23, label %957, label %.loopexit

957:                                              ; preds = %948
  %958 = load i32, ptr %3, align 4, !tbaa !5
  %.not9441070 = icmp slt i32 %958, 1
  br i1 %.not9441070, label %.loopexit, label %.lr.ph1072

.lr.ph1072:                                       ; preds = %957
  %959 = mul nsw i64 %indvars.iv.next1189, %912
  %960 = add nuw i32 %958, 1
  %wide.trip.count1186 = zext i32 %960 to i64
  %invariant.gep1240 = getelementptr %struct.complex, ptr %15, i64 %959
  %961 = zext nneg i32 %958 to i64
  %min.iters.check1868 = icmp ult i32 %958, 8
  br i1 %min.iters.check1868, label %scalar.ph1867.preheader, label %vector.scevcheck1827

vector.scevcheck1827:                             ; preds = %.lr.ph1072
  %962 = add nsw i64 %wide.trip.count1186, -2
  %mul.result1832 = shl nsw i64 %962, 3
  %963 = getelementptr i8, ptr %scevgep1830, i64 %mul.result1832
  %964 = icmp ult ptr %963, %scevgep1830
  %mul.result1836 = shl nsw i64 %962, 3
  %mul.overflow1837 = icmp ugt i64 %962, 2305843009213693951
  %965 = getelementptr i8, ptr %scevgep1834, i64 %mul.result1836
  %966 = icmp ult ptr %965, %scevgep1834
  %967 = or i1 %966, %mul.overflow1837
  %mul.result1840 = shl nsw i64 %962, 3
  %968 = getelementptr i8, ptr %scevgep1838, i64 %mul.result1840
  %969 = icmp ult ptr %968, %scevgep1838
  %mul.result1844 = shl nsw i64 %962, 3
  %970 = getelementptr i8, ptr %scevgep1842, i64 %mul.result1844
  %971 = icmp ult ptr %970, %scevgep1842
  %972 = or i1 %964, %967
  %973 = or i1 %969, %972
  %974 = or i1 %971, %973
  br i1 %974, label %scalar.ph1867.preheader, label %vector.memcheck1846

vector.memcheck1846:                              ; preds = %vector.scevcheck1827
  %975 = shl nuw nsw i64 %wide.trip.count1186, 3
  %scevgep1849 = getelementptr i8, ptr %scevgep1848, i64 %975
  %scevgep1852 = getelementptr i8, ptr %scevgep1851, i64 %975
  %scevgep1855 = getelementptr i8, ptr %scevgep1854, i64 %975
  %scevgep1858 = getelementptr i8, ptr %scevgep1857, i64 %975
  %bound01859 = icmp ult ptr %scevgep1847, %scevgep1852
  %bound11860 = icmp ult ptr %scevgep1850, %scevgep1849
  %found.conflict1861 = and i1 %bound01859, %bound11860
  %bound01862 = icmp ult ptr %scevgep1853, %scevgep1858
  %bound11863 = icmp ult ptr %scevgep1856, %scevgep1855
  %found.conflict1864 = and i1 %bound01862, %bound11863
  %conflict.rdx1865 = or i1 %found.conflict1861, %found.conflict1864
  br i1 %conflict.rdx1865, label %scalar.ph1867.preheader, label %vector.ph1869

vector.ph1869:                                    ; preds = %vector.memcheck1846
  %n.vec1871 = and i64 %961, 2147483644
  %ind.end1872 = or disjoint i64 %n.vec1871, 1
  %broadcast.splatinsert1883 = insertelement <4 x float> poison, float %954, i64 0
  %broadcast.splatinsert1885 = insertelement <4 x float> poison, float %952, i64 0
  %976 = shufflevector <4 x float> %broadcast.splatinsert1885, <4 x float> poison, <8 x i32> zeroinitializer
  %977 = shufflevector <4 x float> %broadcast.splatinsert1883, <4 x float> poison, <8 x i32> zeroinitializer
  %978 = shufflevector <4 x float> %broadcast.splatinsert1885, <4 x float> poison, <8 x i32> zeroinitializer
  %979 = shufflevector <4 x float> %broadcast.splatinsert1883, <4 x float> poison, <8 x i32> zeroinitializer
  br label %vector.body1874

vector.body1874:                                  ; preds = %vector.body1874, %vector.ph1869
  %index1875 = phi i64 [ 0, %vector.ph1869 ], [ %index.next1892, %vector.body1874 ]
  %offset.idx1876 = or disjoint i64 %index1875, 1
  %980 = getelementptr %struct.complex, ptr %invariant.gep1240, i64 %offset.idx1876
  %wide.vec1877 = load <8 x float>, ptr %980, align 4, !tbaa !9
  %981 = getelementptr %struct.complex, ptr %invariant.gep1242, i64 %offset.idx1876
  %wide.vec1880 = load <8 x float>, ptr %981, align 4, !tbaa !9
  %982 = fmul <8 x float> %976, %wide.vec1877
  %983 = fmul <8 x float> %977, %wide.vec1880
  %interleaved.vec1887 = fadd <8 x float> %982, %983
  store <8 x float> %interleaved.vec1887, ptr %980, align 4, !tbaa !9
  %wide.vec1888 = load <8 x float>, ptr %981, align 4, !tbaa !9
  %984 = fmul <8 x float> %978, %wide.vec1888
  %985 = fmul <8 x float> %979, %wide.vec1877
  %interleaved.vec1891 = fsub <8 x float> %984, %985
  store <8 x float> %interleaved.vec1891, ptr %981, align 4, !tbaa !9
  %index.next1892 = add nuw i64 %index1875, 4
  %986 = icmp eq i64 %index.next1892, %n.vec1871
  br i1 %986, label %middle.block1866, label %vector.body1874, !llvm.loop !45

middle.block1866:                                 ; preds = %vector.body1874
  %cmp.n1893 = icmp eq i64 %n.vec1871, %961
  br i1 %cmp.n1893, label %.loopexit, label %scalar.ph1867.preheader

scalar.ph1867.preheader:                          ; preds = %middle.block1866, %vector.memcheck1846, %vector.scevcheck1827, %.lr.ph1072
  %indvars.iv1183.ph = phi i64 [ 1, %vector.memcheck1846 ], [ 1, %vector.scevcheck1827 ], [ 1, %.lr.ph1072 ], [ %ind.end1872, %middle.block1866 ]
  %987 = insertelement <2 x float> poison, float %954, i64 0
  %988 = shufflevector <2 x float> %987, <2 x float> poison, <2 x i32> zeroinitializer
  %989 = insertelement <2 x float> poison, float %952, i64 0
  %990 = shufflevector <2 x float> %989, <2 x float> poison, <2 x i32> zeroinitializer
  br label %scalar.ph1867

scalar.ph1867:                                    ; preds = %scalar.ph1867.preheader, %scalar.ph1867
  %indvars.iv1183 = phi i64 [ %indvars.iv.next1184, %scalar.ph1867 ], [ %indvars.iv1183.ph, %scalar.ph1867.preheader ]
  %gep1241 = getelementptr %struct.complex, ptr %invariant.gep1240, i64 %indvars.iv1183
  %gep1243 = getelementptr %struct.complex, ptr %invariant.gep1242, i64 %indvars.iv1183
  %991 = load <2 x float>, ptr %gep1241, align 4, !tbaa !9
  %992 = load <2 x float>, ptr %gep1243, align 4, !tbaa !9
  %993 = fmul <2 x float> %988, %992
  %994 = fmul <2 x float> %990, %991
  %995 = fadd <2 x float> %994, %993
  store <2 x float> %995, ptr %gep1241, align 4, !tbaa !9
  %996 = load <2 x float>, ptr %gep1243, align 4, !tbaa !9
  %997 = fmul <2 x float> %990, %996
  %998 = fmul <2 x float> %988, %991
  %999 = fsub <2 x float> %997, %998
  store <2 x float> %999, ptr %gep1243, align 4, !tbaa !9
  %indvars.iv.next1184 = add nuw nsw i64 %indvars.iv1183, 1
  %exitcond1187.not = icmp eq i64 %indvars.iv.next1184, %wide.trip.count1186
  br i1 %exitcond1187.not, label %.loopexit, label %scalar.ph1867, !llvm.loop !46

.loopexit:                                        ; preds = %scalar.ph1867, %middle.block1866, %957, %948
  %1000 = icmp sgt i64 %indvars.iv1188, 2
  %indvar.next1829 = add i64 %indvar1828, 1
  br i1 %1000, label %948, label %.loopexit976, !llvm.loop !47

.loopexit976:                                     ; preds = %.loopexit997, %.loopexit995, %.loopexit993, %.loopexit991, %.loopexit989, %.loopexit987, %.loopexit985, %.loopexit983, %.loopexit981, %.loopexit979, %.loopexit977, %.loopexit, %54, %98, %146, %207, %285, %353, %436, %529, %633, %722, %816, %906, %205, %351, %281, %96, %527, %812, %904, %720, %430, %45, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #4
  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

; 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.umax.i32(i32, i32) #3

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind }

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

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


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