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

; 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"

@.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 [7 x i8], align 1
@c__9 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c_b15 = external hidden global float, align 4
@c__1 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b29 = external hidden global float, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1

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

108:                                              ; preds = %14
  store i32 1, ptr %49, align 4, !tbaa !9
  br label %109

109:                                              ; preds = %108, %14
  %110 = load ptr, ptr %15, align 8, !tbaa !5
  %111 = call i32 @lsame_(ptr noundef %110, ptr noundef @.str.1)
  %112 = icmp ne i32 %111, 0
  br i1 %112, label %113, label %114

113:                                              ; preds = %109
  store i32 2, ptr %49, align 4, !tbaa !9
  br label %114

114:                                              ; preds = %113, %109
  %115 = load ptr, ptr %16, align 8, !tbaa !5
  %116 = call i32 @lsame_(ptr noundef %115, ptr noundef @.str.2)
  %117 = icmp ne i32 %116, 0
  br i1 %117, label %118, label %119

118:                                              ; preds = %114
  store i32 0, ptr %60, align 4, !tbaa !9
  br label %132

119:                                              ; preds = %114
  %120 = load ptr, ptr %16, align 8, !tbaa !5
  %121 = call i32 @lsame_(ptr noundef %120, ptr noundef @.str.3)
  %122 = icmp ne i32 %121, 0
  br i1 %122, label %123, label %124

123:                                              ; preds = %119
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %131

124:                                              ; preds = %119
  %125 = load ptr, ptr %16, align 8, !tbaa !5
  %126 = call i32 @lsame_(ptr noundef %125, ptr noundef @.str.4)
  %127 = icmp ne i32 %126, 0
  br i1 %127, label %128, label %129

128:                                              ; preds = %124
  store i32 2, ptr %60, align 4, !tbaa !9
  br label %130

129:                                              ; preds = %124
  store i32 -1, ptr %60, align 4, !tbaa !9
  br label %130

130:                                              ; preds = %129, %128
  br label %131

131:                                              ; preds = %130, %123
  br label %132

132:                                              ; preds = %131, %118
  %133 = load i32, ptr %49, align 4, !tbaa !9
  %134 = icmp eq i32 %133, 0
  br i1 %134, label %135, label %137

135:                                              ; preds = %132
  %136 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -1, ptr %136, align 4, !tbaa !9
  br label %182

137:                                              ; preds = %132
  %138 = load i32, ptr %60, align 4, !tbaa !9
  %139 = icmp slt i32 %138, 0
  br i1 %139, label %140, label %142

140:                                              ; preds = %137
  %141 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -2, ptr %141, align 4, !tbaa !9
  br label %181

142:                                              ; preds = %137
  %143 = load ptr, ptr %17, align 8, !tbaa !5
  %144 = load i32, ptr %143, align 4, !tbaa !9
  %145 = icmp slt i32 %144, 0
  br i1 %145, label %146, label %148

146:                                              ; preds = %142
  %147 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -3, ptr %147, align 4, !tbaa !9
  br label %180

148:                                              ; preds = %142
  %149 = load ptr, ptr %21, align 8, !tbaa !5
  %150 = load i32, ptr %149, align 4, !tbaa !9
  %151 = icmp slt i32 %150, 1
  br i1 %151, label %161, label %152

152:                                              ; preds = %148
  %153 = load i32, ptr %60, align 4, !tbaa !9
  %154 = icmp eq i32 %153, 2
  br i1 %154, label %155, label %163

155:                                              ; preds = %152
  %156 = load ptr, ptr %21, align 8, !tbaa !5
  %157 = load i32, ptr %156, align 4, !tbaa !9
  %158 = load ptr, ptr %17, align 8, !tbaa !5
  %159 = load i32, ptr %158, align 4, !tbaa !9
  %160 = icmp slt i32 %157, %159
  br i1 %160, label %161, label %163

161:                                              ; preds = %155, %148
  %162 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -7, ptr %162, align 4, !tbaa !9
  br label %179

163:                                              ; preds = %155, %152
  %164 = load ptr, ptr %23, align 8, !tbaa !5
  %165 = load i32, ptr %164, align 4, !tbaa !9
  %166 = icmp slt i32 %165, 1
  br i1 %166, label %176, label %167

167:                                              ; preds = %163
  %168 = load i32, ptr %60, align 4, !tbaa !9
  %169 = icmp eq i32 %168, 2
  br i1 %169, label %170, label %178

170:                                              ; preds = %167
  %171 = load ptr, ptr %23, align 8, !tbaa !5
  %172 = load i32, ptr %171, align 4, !tbaa !9
  %173 = load ptr, ptr %17, align 8, !tbaa !5
  %174 = load i32, ptr %173, align 4, !tbaa !9
  %175 = icmp slt i32 %172, %174
  br i1 %175, label %176, label %178

176:                                              ; preds = %170, %163
  %177 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -9, ptr %177, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %176, %170, %167
  br label %179

179:                                              ; preds = %178, %161
  br label %180

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

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

182:                                              ; preds = %181, %135
  %183 = load ptr, ptr %28, align 8, !tbaa !5
  %184 = load i32, ptr %183, align 4, !tbaa !9
  %185 = icmp ne i32 %184, 0
  br i1 %185, label %186, label %191

186:                                              ; preds = %182
  %187 = load ptr, ptr %28, align 8, !tbaa !5
  %188 = load i32, ptr %187, align 4, !tbaa !9
  %189 = sub nsw i32 0, %188
  store i32 %189, ptr %33, align 4, !tbaa !9
  %190 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %33, i32 noundef 6)
  store i32 1, ptr %71, align 4
  br label %1301

191:                                              ; preds = %182
  %192 = load ptr, ptr %17, align 8, !tbaa !5
  %193 = load i32, ptr %192, align 4, !tbaa !9
  %194 = icmp eq i32 %193, 0
  br i1 %194, label %195, label %196

195:                                              ; preds = %191
  store i32 1, ptr %71, align 4
  br label %1301

196:                                              ; preds = %191
  %197 = call i32 @ilaenv_(ptr noundef @c__9, ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c__0, i32 noundef 6, i32 noundef 1)
  store i32 %197, ptr %66, align 4, !tbaa !9
  %198 = load ptr, ptr %17, align 8, !tbaa !5
  %199 = load i32, ptr %198, align 4, !tbaa !9
  %200 = icmp eq i32 %199, 1
  br i1 %200, label %201, label %302

201:                                              ; preds = %196
  %202 = load i32, ptr %60, align 4, !tbaa !9
  %203 = icmp eq i32 %202, 1
  br i1 %203, label %204, label %242

204:                                              ; preds = %201
  %205 = load ptr, ptr %18, align 8, !tbaa !5
  %206 = getelementptr inbounds float, ptr %205, i64 1
  %207 = load float, ptr %206, align 4, !tbaa !11
  %208 = fcmp oge float %207, 0.000000e+00
  br i1 %208, label %209, label %219

209:                                              ; preds = %204
  %210 = load float, ptr @c_b15, align 4, !tbaa !11
  %211 = fcmp oge float %210, 0.000000e+00
  br i1 %211, label %212, label %214

212:                                              ; preds = %209
  %213 = load float, ptr @c_b15, align 4, !tbaa !11
  br label %217

214:                                              ; preds = %209
  %215 = load float, ptr @c_b15, align 4, !tbaa !11
  %216 = fneg float %215
  br label %217

217:                                              ; preds = %214, %212
  %218 = phi float [ %213, %212 ], [ %216, %214 ]
  br label %230

219:                                              ; preds = %204
  %220 = load float, ptr @c_b15, align 4, !tbaa !11
  %221 = fcmp oge float %220, 0.000000e+00
  br i1 %221, label %222, label %224

222:                                              ; preds = %219
  %223 = load float, ptr @c_b15, align 4, !tbaa !11
  br label %227

224:                                              ; preds = %219
  %225 = load float, ptr @c_b15, align 4, !tbaa !11
  %226 = fneg float %225
  br label %227

227:                                              ; preds = %224, %222
  %228 = phi float [ %223, %222 ], [ %226, %224 ]
  %229 = fneg float %228
  br label %230

230:                                              ; preds = %227, %217
  %231 = phi float [ %218, %217 ], [ %229, %227 ]
  %232 = load ptr, ptr %24, align 8, !tbaa !5
  %233 = getelementptr inbounds float, ptr %232, i64 1
  store float %231, ptr %233, align 4, !tbaa !11
  %234 = load ptr, ptr %24, align 8, !tbaa !5
  %235 = load i32, ptr %66, align 4, !tbaa !9
  %236 = load ptr, ptr %17, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = mul nsw i32 %235, %237
  %239 = add nsw i32 %238, 1
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds float, ptr %234, i64 %240
  store float 1.000000e+00, ptr %241, align 4, !tbaa !11
  br label %284

242:                                              ; preds = %201
  %243 = load i32, ptr %60, align 4, !tbaa !9
  %244 = icmp eq i32 %243, 2
  br i1 %244, label %245, label %283

245:                                              ; preds = %242
  %246 = load ptr, ptr %18, align 8, !tbaa !5
  %247 = getelementptr inbounds float, ptr %246, i64 1
  %248 = load float, ptr %247, align 4, !tbaa !11
  %249 = fcmp oge float %248, 0.000000e+00
  br i1 %249, label %250, label %260

250:                                              ; preds = %245
  %251 = load float, ptr @c_b15, align 4, !tbaa !11
  %252 = fcmp oge float %251, 0.000000e+00
  br i1 %252, label %253, label %255

253:                                              ; preds = %250
  %254 = load float, ptr @c_b15, align 4, !tbaa !11
  br label %258

255:                                              ; preds = %250
  %256 = load float, ptr @c_b15, align 4, !tbaa !11
  %257 = fneg float %256
  br label %258

258:                                              ; preds = %255, %253
  %259 = phi float [ %254, %253 ], [ %257, %255 ]
  br label %271

260:                                              ; preds = %245
  %261 = load float, ptr @c_b15, align 4, !tbaa !11
  %262 = fcmp oge float %261, 0.000000e+00
  br i1 %262, label %263, label %265

263:                                              ; preds = %260
  %264 = load float, ptr @c_b15, align 4, !tbaa !11
  br label %268

265:                                              ; preds = %260
  %266 = load float, ptr @c_b15, align 4, !tbaa !11
  %267 = fneg float %266
  br label %268

268:                                              ; preds = %265, %263
  %269 = phi float [ %264, %263 ], [ %267, %265 ]
  %270 = fneg float %269
  br label %271

271:                                              ; preds = %268, %258
  %272 = phi float [ %259, %258 ], [ %270, %268 ]
  %273 = load ptr, ptr %20, align 8, !tbaa !5
  %274 = load i32, ptr %29, align 4, !tbaa !9
  %275 = add nsw i32 %274, 1
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds float, ptr %273, i64 %276
  store float %272, ptr %277, align 4, !tbaa !11
  %278 = load ptr, ptr %22, align 8, !tbaa !5
  %279 = load i32, ptr %31, align 4, !tbaa !9
  %280 = add nsw i32 %279, 1
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds float, ptr %278, i64 %281
  store float 1.000000e+00, ptr %282, align 4, !tbaa !11
  br label %283

283:                                              ; preds = %271, %242
  br label %284

284:                                              ; preds = %283, %230
  %285 = load ptr, ptr %18, align 8, !tbaa !5
  %286 = getelementptr inbounds float, ptr %285, i64 1
  %287 = load float, ptr %286, align 4, !tbaa !11
  %288 = fcmp oge float %287, 0.000000e+00
  br i1 %288, label %289, label %293

289:                                              ; preds = %284
  %290 = load ptr, ptr %18, align 8, !tbaa !5
  %291 = getelementptr inbounds float, ptr %290, i64 1
  %292 = load float, ptr %291, align 4, !tbaa !11
  br label %298

293:                                              ; preds = %284
  %294 = load ptr, ptr %18, align 8, !tbaa !5
  %295 = getelementptr inbounds float, ptr %294, i64 1
  %296 = load float, ptr %295, align 4, !tbaa !11
  %297 = fneg float %296
  br label %298

298:                                              ; preds = %293, %289
  %299 = phi float [ %292, %289 ], [ %297, %293 ]
  %300 = load ptr, ptr %18, align 8, !tbaa !5
  %301 = getelementptr inbounds float, ptr %300, i64 1
  store float %299, ptr %301, align 4, !tbaa !11
  store i32 1, ptr %71, align 4
  br label %1301

302:                                              ; preds = %196
  %303 = load ptr, ptr %17, align 8, !tbaa !5
  %304 = load i32, ptr %303, align 4, !tbaa !9
  %305 = sub nsw i32 %304, 1
  store i32 %305, ptr %64, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  store i32 3, ptr %65, align 4, !tbaa !9
  %306 = load i32, ptr %60, align 4, !tbaa !9
  %307 = icmp eq i32 %306, 1
  br i1 %307, label %308, label %325

308:                                              ; preds = %302
  %309 = load ptr, ptr %17, align 8, !tbaa !5
  %310 = load ptr, ptr %18, align 8, !tbaa !5
  %311 = getelementptr inbounds float, ptr %310, i64 1
  %312 = load ptr, ptr %24, align 8, !tbaa !5
  %313 = getelementptr inbounds float, ptr %312, i64 1
  call void @scopy_(ptr noundef %309, ptr noundef %311, ptr noundef @c__1, ptr noundef %313, ptr noundef @c__1)
  %314 = load ptr, ptr %17, align 8, !tbaa !5
  %315 = load i32, ptr %314, align 4, !tbaa !9
  %316 = sub nsw i32 %315, 1
  store i32 %316, ptr %33, align 4, !tbaa !9
  %317 = load ptr, ptr %19, align 8, !tbaa !5
  %318 = getelementptr inbounds float, ptr %317, i64 1
  %319 = load ptr, ptr %24, align 8, !tbaa !5
  %320 = load ptr, ptr %17, align 8, !tbaa !5
  %321 = load i32, ptr %320, align 4, !tbaa !9
  %322 = add nsw i32 %321, 1
  %323 = sext i32 %322 to i64
  %324 = getelementptr inbounds float, ptr %319, i64 %323
  call void @scopy_(ptr noundef %33, ptr noundef %318, ptr noundef @c__1, ptr noundef %324, ptr noundef @c__1)
  br label %325

325:                                              ; preds = %308, %302
  %326 = load i32, ptr %49, align 4, !tbaa !9
  %327 = icmp eq i32 %326, 2
  br i1 %327, label %328, label %427

328:                                              ; preds = %325
  store i32 5, ptr %65, align 4, !tbaa !9
  %329 = load i32, ptr %60, align 4, !tbaa !9
  %330 = icmp eq i32 %329, 2
  br i1 %330, label %331, label %336

331:                                              ; preds = %328
  %332 = load ptr, ptr %17, align 8, !tbaa !5
  %333 = load i32, ptr %332, align 4, !tbaa !9
  %334 = shl i32 %333, 1
  %335 = sub nsw i32 %334, 1
  store i32 %335, ptr %67, align 4, !tbaa !9
  br label %336

336:                                              ; preds = %331, %328
  %337 = load ptr, ptr %17, align 8, !tbaa !5
  %338 = load i32, ptr %337, align 4, !tbaa !9
  %339 = sub nsw i32 %338, 1
  store i32 %339, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %340

340:                                              ; preds = %423, %336
  %341 = load i32, ptr %42, align 4, !tbaa !9
  %342 = load i32, ptr %33, align 4, !tbaa !9
  %343 = icmp sle i32 %341, %342
  br i1 %343, label %344, label %426

344:                                              ; preds = %340
  %345 = load ptr, ptr %18, align 8, !tbaa !5
  %346 = load i32, ptr %42, align 4, !tbaa !9
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds float, ptr %345, i64 %347
  %349 = load ptr, ptr %19, align 8, !tbaa !5
  %350 = load i32, ptr %42, align 4, !tbaa !9
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds float, ptr %349, i64 %351
  call void @slartg_(ptr noundef %348, ptr noundef %352, ptr noundef %55, ptr noundef %58, ptr noundef %46)
  %353 = load float, ptr %46, align 4, !tbaa !11
  %354 = load ptr, ptr %18, align 8, !tbaa !5
  %355 = load i32, ptr %42, align 4, !tbaa !9
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds float, ptr %354, i64 %356
  store float %353, ptr %357, align 4, !tbaa !11
  %358 = load float, ptr %58, align 4, !tbaa !11
  %359 = load ptr, ptr %18, align 8, !tbaa !5
  %360 = load i32, ptr %42, align 4, !tbaa !9
  %361 = add nsw i32 %360, 1
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds float, ptr %359, i64 %362
  %364 = load float, ptr %363, align 4, !tbaa !11
  %365 = fmul float %358, %364
  %366 = load ptr, ptr %19, align 8, !tbaa !5
  %367 = load i32, ptr %42, align 4, !tbaa !9
  %368 = sext i32 %367 to i64
  %369 = getelementptr inbounds float, ptr %366, i64 %368
  store float %365, ptr %369, align 4, !tbaa !11
  %370 = load float, ptr %55, align 4, !tbaa !11
  %371 = load ptr, ptr %18, align 8, !tbaa !5
  %372 = load i32, ptr %42, align 4, !tbaa !9
  %373 = add nsw i32 %372, 1
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds float, ptr %371, i64 %374
  %376 = load float, ptr %375, align 4, !tbaa !11
  %377 = fmul float %370, %376
  %378 = load ptr, ptr %18, align 8, !tbaa !5
  %379 = load i32, ptr %42, align 4, !tbaa !9
  %380 = add nsw i32 %379, 1
  %381 = sext i32 %380 to i64
  %382 = getelementptr inbounds float, ptr %378, i64 %381
  store float %377, ptr %382, align 4, !tbaa !11
  %383 = load i32, ptr %60, align 4, !tbaa !9
  %384 = icmp eq i32 %383, 1
  br i1 %384, label %385, label %404

385:                                              ; preds = %344
  %386 = load float, ptr %55, align 4, !tbaa !11
  %387 = load ptr, ptr %24, align 8, !tbaa !5
  %388 = load i32, ptr %42, align 4, !tbaa !9
  %389 = load ptr, ptr %17, align 8, !tbaa !5
  %390 = load i32, ptr %389, align 4, !tbaa !9
  %391 = shl i32 %390, 1
  %392 = add nsw i32 %388, %391
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds float, ptr %387, i64 %393
  store float %386, ptr %394, align 4, !tbaa !11
  %395 = load float, ptr %58, align 4, !tbaa !11
  %396 = load ptr, ptr %24, align 8, !tbaa !5
  %397 = load i32, ptr %42, align 4, !tbaa !9
  %398 = load ptr, ptr %17, align 8, !tbaa !5
  %399 = load i32, ptr %398, align 4, !tbaa !9
  %400 = mul nsw i32 %399, 3
  %401 = add nsw i32 %397, %400
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds float, ptr %396, i64 %402
  store float %395, ptr %403, align 4, !tbaa !11
  br label %422

404:                                              ; preds = %344
  %405 = load i32, ptr %60, align 4, !tbaa !9
  %406 = icmp eq i32 %405, 2
  br i1 %406, label %407, label %421

407:                                              ; preds = %404
  %408 = load float, ptr %55, align 4, !tbaa !11
  %409 = load ptr, ptr %26, align 8, !tbaa !5
  %410 = load i32, ptr %42, align 4, !tbaa !9
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds float, ptr %409, i64 %411
  store float %408, ptr %412, align 4, !tbaa !11
  %413 = load float, ptr %58, align 4, !tbaa !11
  %414 = fneg float %413
  %415 = load ptr, ptr %26, align 8, !tbaa !5
  %416 = load i32, ptr %64, align 4, !tbaa !9
  %417 = load i32, ptr %42, align 4, !tbaa !9
  %418 = add nsw i32 %416, %417
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %415, i64 %419
  store float %414, ptr %420, align 4, !tbaa !11
  br label %421

421:                                              ; preds = %407, %404
  br label %422

422:                                              ; preds = %421, %385
  br label %423

423:                                              ; preds = %422
  %424 = load i32, ptr %42, align 4, !tbaa !9
  %425 = add nsw i32 %424, 1
  store i32 %425, ptr %42, align 4, !tbaa !9
  br label %340, !llvm.loop !13

426:                                              ; preds = %340
  br label %427

427:                                              ; preds = %426, %325
  %428 = load i32, ptr %60, align 4, !tbaa !9
  %429 = icmp eq i32 %428, 0
  br i1 %429, label %430, label %454

430:                                              ; preds = %427
  %431 = load ptr, ptr %17, align 8, !tbaa !5
  %432 = load ptr, ptr %18, align 8, !tbaa !5
  %433 = getelementptr inbounds float, ptr %432, i64 1
  %434 = load ptr, ptr %19, align 8, !tbaa !5
  %435 = getelementptr inbounds float, ptr %434, i64 1
  %436 = load ptr, ptr %22, align 8, !tbaa !5
  %437 = load i32, ptr %32, align 4, !tbaa !9
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds float, ptr %436, i64 %438
  %440 = load ptr, ptr %23, align 8, !tbaa !5
  %441 = load ptr, ptr %20, align 8, !tbaa !5
  %442 = load i32, ptr %30, align 4, !tbaa !9
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds float, ptr %441, i64 %443
  %445 = load ptr, ptr %21, align 8, !tbaa !5
  %446 = load ptr, ptr %20, align 8, !tbaa !5
  %447 = load i32, ptr %30, align 4, !tbaa !9
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds float, ptr %446, i64 %448
  %450 = load ptr, ptr %21, align 8, !tbaa !5
  %451 = load ptr, ptr %26, align 8, !tbaa !5
  %452 = getelementptr inbounds float, ptr %451, i64 1
  %453 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasdq_(ptr noundef @.str, ptr noundef @c__0, ptr noundef %431, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %433, ptr noundef %435, ptr noundef %439, ptr noundef %440, ptr noundef %444, ptr noundef %445, ptr noundef %449, ptr noundef %450, ptr noundef %452, ptr noundef %453)
  br label %1141

454:                                              ; preds = %427
  %455 = load ptr, ptr %17, align 8, !tbaa !5
  %456 = load i32, ptr %455, align 4, !tbaa !9
  %457 = load i32, ptr %66, align 4, !tbaa !9
  %458 = icmp sle i32 %456, %457
  br i1 %458, label %459, label %585

459:                                              ; preds = %454
  %460 = load i32, ptr %60, align 4, !tbaa !9
  %461 = icmp eq i32 %460, 2
  br i1 %461, label %462, label %504

462:                                              ; preds = %459
  %463 = load ptr, ptr %17, align 8, !tbaa !5
  %464 = load ptr, ptr %17, align 8, !tbaa !5
  %465 = load ptr, ptr %20, align 8, !tbaa !5
  %466 = load i32, ptr %30, align 4, !tbaa !9
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds float, ptr %465, i64 %467
  %469 = load ptr, ptr %21, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.7, ptr noundef %463, ptr noundef %464, ptr noundef @c_b29, ptr noundef @c_b15, ptr noundef %468, ptr noundef %469)
  %470 = load ptr, ptr %17, align 8, !tbaa !5
  %471 = load ptr, ptr %17, align 8, !tbaa !5
  %472 = load ptr, ptr %22, align 8, !tbaa !5
  %473 = load i32, ptr %32, align 4, !tbaa !9
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds float, ptr %472, i64 %474
  %476 = load ptr, ptr %23, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.7, ptr noundef %470, ptr noundef %471, ptr noundef @c_b29, ptr noundef @c_b15, ptr noundef %475, ptr noundef %476)
  %477 = load ptr, ptr %17, align 8, !tbaa !5
  %478 = load ptr, ptr %17, align 8, !tbaa !5
  %479 = load ptr, ptr %17, align 8, !tbaa !5
  %480 = load ptr, ptr %18, align 8, !tbaa !5
  %481 = getelementptr inbounds float, ptr %480, i64 1
  %482 = load ptr, ptr %19, align 8, !tbaa !5
  %483 = getelementptr inbounds float, ptr %482, i64 1
  %484 = load ptr, ptr %22, align 8, !tbaa !5
  %485 = load i32, ptr %32, align 4, !tbaa !9
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds float, ptr %484, i64 %486
  %488 = load ptr, ptr %23, align 8, !tbaa !5
  %489 = load ptr, ptr %20, align 8, !tbaa !5
  %490 = load i32, ptr %30, align 4, !tbaa !9
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds float, ptr %489, i64 %491
  %493 = load ptr, ptr %21, align 8, !tbaa !5
  %494 = load ptr, ptr %20, align 8, !tbaa !5
  %495 = load i32, ptr %30, align 4, !tbaa !9
  %496 = sext i32 %495 to i64
  %497 = getelementptr inbounds float, ptr %494, i64 %496
  %498 = load ptr, ptr %21, align 8, !tbaa !5
  %499 = load ptr, ptr %26, align 8, !tbaa !5
  %500 = load i32, ptr %67, align 4, !tbaa !9
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds float, ptr %499, i64 %501
  %503 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasdq_(ptr noundef @.str, ptr noundef @c__0, ptr noundef %477, ptr noundef %478, ptr noundef %479, ptr noundef @c__0, ptr noundef %481, ptr noundef %483, ptr noundef %487, ptr noundef %488, ptr noundef %492, ptr noundef %493, ptr noundef %497, ptr noundef %498, ptr noundef %502, ptr noundef %503)
  br label %584

504:                                              ; preds = %459
  %505 = load i32, ptr %60, align 4, !tbaa !9
  %506 = icmp eq i32 %505, 1
  br i1 %506, label %507, label %583

507:                                              ; preds = %504
  store i32 1, ptr %57, align 4, !tbaa !9
  %508 = load i32, ptr %57, align 4, !tbaa !9
  %509 = load ptr, ptr %17, align 8, !tbaa !5
  %510 = load i32, ptr %509, align 4, !tbaa !9
  %511 = add nsw i32 %508, %510
  store i32 %511, ptr %70, align 4, !tbaa !9
  %512 = load ptr, ptr %17, align 8, !tbaa !5
  %513 = load ptr, ptr %17, align 8, !tbaa !5
  %514 = load ptr, ptr %24, align 8, !tbaa !5
  %515 = load i32, ptr %57, align 4, !tbaa !9
  %516 = load i32, ptr %65, align 4, !tbaa !9
  %517 = sub nsw i32 %516, 1
  %518 = load ptr, ptr %17, align 8, !tbaa !5
  %519 = load i32, ptr %518, align 4, !tbaa !9
  %520 = mul nsw i32 %517, %519
  %521 = add nsw i32 %515, %520
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds float, ptr %514, i64 %522
  %524 = load ptr, ptr %17, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.7, ptr noundef %512, ptr noundef %513, ptr noundef @c_b29, ptr noundef @c_b15, ptr noundef %523, ptr noundef %524)
  %525 = load ptr, ptr %17, align 8, !tbaa !5
  %526 = load ptr, ptr %17, align 8, !tbaa !5
  %527 = load ptr, ptr %24, align 8, !tbaa !5
  %528 = load i32, ptr %70, align 4, !tbaa !9
  %529 = load i32, ptr %65, align 4, !tbaa !9
  %530 = sub nsw i32 %529, 1
  %531 = load ptr, ptr %17, align 8, !tbaa !5
  %532 = load i32, ptr %531, align 4, !tbaa !9
  %533 = mul nsw i32 %530, %532
  %534 = add nsw i32 %528, %533
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds float, ptr %527, i64 %535
  %537 = load ptr, ptr %17, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.7, ptr noundef %525, ptr noundef %526, ptr noundef @c_b29, ptr noundef @c_b15, ptr noundef %536, ptr noundef %537)
  %538 = load ptr, ptr %17, align 8, !tbaa !5
  %539 = load ptr, ptr %17, align 8, !tbaa !5
  %540 = load ptr, ptr %17, align 8, !tbaa !5
  %541 = load ptr, ptr %18, align 8, !tbaa !5
  %542 = getelementptr inbounds float, ptr %541, i64 1
  %543 = load ptr, ptr %19, align 8, !tbaa !5
  %544 = getelementptr inbounds float, ptr %543, i64 1
  %545 = load ptr, ptr %24, align 8, !tbaa !5
  %546 = load i32, ptr %70, align 4, !tbaa !9
  %547 = load i32, ptr %65, align 4, !tbaa !9
  %548 = sub nsw i32 %547, 1
  %549 = load ptr, ptr %17, align 8, !tbaa !5
  %550 = load i32, ptr %549, align 4, !tbaa !9
  %551 = mul nsw i32 %548, %550
  %552 = add nsw i32 %546, %551
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds float, ptr %545, i64 %553
  %555 = load ptr, ptr %17, align 8, !tbaa !5
  %556 = load ptr, ptr %24, align 8, !tbaa !5
  %557 = load i32, ptr %57, align 4, !tbaa !9
  %558 = load i32, ptr %65, align 4, !tbaa !9
  %559 = sub nsw i32 %558, 1
  %560 = load ptr, ptr %17, align 8, !tbaa !5
  %561 = load i32, ptr %560, align 4, !tbaa !9
  %562 = mul nsw i32 %559, %561
  %563 = add nsw i32 %557, %562
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds float, ptr %556, i64 %564
  %566 = load ptr, ptr %17, align 8, !tbaa !5
  %567 = load ptr, ptr %24, align 8, !tbaa !5
  %568 = load i32, ptr %57, align 4, !tbaa !9
  %569 = load i32, ptr %65, align 4, !tbaa !9
  %570 = sub nsw i32 %569, 1
  %571 = load ptr, ptr %17, align 8, !tbaa !5
  %572 = load i32, ptr %571, align 4, !tbaa !9
  %573 = mul nsw i32 %570, %572
  %574 = add nsw i32 %568, %573
  %575 = sext i32 %574 to i64
  %576 = getelementptr inbounds float, ptr %567, i64 %575
  %577 = load ptr, ptr %17, align 8, !tbaa !5
  %578 = load ptr, ptr %26, align 8, !tbaa !5
  %579 = load i32, ptr %67, align 4, !tbaa !9
  %580 = sext i32 %579 to i64
  %581 = getelementptr inbounds float, ptr %578, i64 %580
  %582 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasdq_(ptr noundef @.str, ptr noundef @c__0, ptr noundef %538, ptr noundef %539, ptr noundef %540, ptr noundef @c__0, ptr noundef %542, ptr noundef %544, ptr noundef %554, ptr noundef %555, ptr noundef %565, ptr noundef %566, ptr noundef %576, ptr noundef %577, ptr noundef %581, ptr noundef %582)
  br label %583

583:                                              ; preds = %507, %504
  br label %584

584:                                              ; preds = %583, %462
  br label %1141

585:                                              ; preds = %454
  %586 = load i32, ptr %60, align 4, !tbaa !9
  %587 = icmp eq i32 %586, 2
  br i1 %587, label %588, label %603

588:                                              ; preds = %585
  %589 = load ptr, ptr %17, align 8, !tbaa !5
  %590 = load ptr, ptr %17, align 8, !tbaa !5
  %591 = load ptr, ptr %20, align 8, !tbaa !5
  %592 = load i32, ptr %30, align 4, !tbaa !9
  %593 = sext i32 %592 to i64
  %594 = getelementptr inbounds float, ptr %591, i64 %593
  %595 = load ptr, ptr %21, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.7, ptr noundef %589, ptr noundef %590, ptr noundef @c_b29, ptr noundef @c_b15, ptr noundef %594, ptr noundef %595)
  %596 = load ptr, ptr %17, align 8, !tbaa !5
  %597 = load ptr, ptr %17, align 8, !tbaa !5
  %598 = load ptr, ptr %22, align 8, !tbaa !5
  %599 = load i32, ptr %32, align 4, !tbaa !9
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds float, ptr %598, i64 %600
  %602 = load ptr, ptr %23, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.7, ptr noundef %596, ptr noundef %597, ptr noundef @c_b29, ptr noundef @c_b15, ptr noundef %601, ptr noundef %602)
  br label %603

603:                                              ; preds = %588, %585
  %604 = load ptr, ptr %17, align 8, !tbaa !5
  %605 = load ptr, ptr %18, align 8, !tbaa !5
  %606 = getelementptr inbounds float, ptr %605, i64 1
  %607 = load ptr, ptr %19, align 8, !tbaa !5
  %608 = getelementptr inbounds float, ptr %607, i64 1
  %609 = call float @slanst_(ptr noundef @.str.8, ptr noundef %604, ptr noundef %606, ptr noundef %608)
  store float %609, ptr %61, align 4, !tbaa !11
  %610 = load float, ptr %61, align 4, !tbaa !11
  %611 = fcmp oeq float %610, 0.000000e+00
  br i1 %611, label %612, label %613

612:                                              ; preds = %603
  store i32 1, ptr %71, align 4
  br label %1301

613:                                              ; preds = %603
  %614 = load ptr, ptr %17, align 8, !tbaa !5
  %615 = load ptr, ptr %18, align 8, !tbaa !5
  %616 = getelementptr inbounds float, ptr %615, i64 1
  %617 = load ptr, ptr %17, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %61, ptr noundef @c_b15, ptr noundef %614, ptr noundef @c__1, ptr noundef %616, ptr noundef %617, ptr noundef %38)
  %618 = load ptr, ptr %19, align 8, !tbaa !5
  %619 = getelementptr inbounds float, ptr %618, i64 1
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %61, ptr noundef @c_b15, ptr noundef %64, ptr noundef @c__1, ptr noundef %619, ptr noundef %64, ptr noundef %38)
  %620 = call float @slamch_(ptr noundef @.str.10)
  store float %620, ptr %69, align 4, !tbaa !11
  %621 = load ptr, ptr %17, align 8, !tbaa !5
  %622 = load i32, ptr %621, align 4, !tbaa !9
  %623 = sitofp i32 %622 to float
  %624 = load i32, ptr %66, align 4, !tbaa !9
  %625 = add nsw i32 %624, 1
  %626 = sitofp i32 %625 to float
  %627 = fdiv float %623, %626
  %628 = fpext float %627 to double
  %629 = call double @log(double noundef %628) #4
  %630 = call double @log(double noundef 2.000000e+00) #4
  %631 = fdiv double %629, %630
  %632 = fptosi double %631 to i32
  %633 = add nsw i32 %632, 1
  store i32 %633, ptr %40, align 4, !tbaa !9
  %634 = load i32, ptr %66, align 4, !tbaa !9
  %635 = add nsw i32 %634, 1
  store i32 %635, ptr %68, align 4, !tbaa !9
  %636 = load i32, ptr %60, align 4, !tbaa !9
  %637 = icmp eq i32 %636, 1
  br i1 %637, label %638, label %665

638:                                              ; preds = %613
  store i32 1, ptr %57, align 4, !tbaa !9
  %639 = load i32, ptr %66, align 4, !tbaa !9
  %640 = add nsw i32 %639, 1
  store i32 %640, ptr %70, align 4, !tbaa !9
  %641 = load i32, ptr %70, align 4, !tbaa !9
  %642 = load i32, ptr %68, align 4, !tbaa !9
  %643 = add nsw i32 %641, %642
  store i32 %643, ptr %36, align 4, !tbaa !9
  %644 = load i32, ptr %36, align 4, !tbaa !9
  %645 = load i32, ptr %40, align 4, !tbaa !9
  %646 = add nsw i32 %644, %645
  store i32 %646, ptr %37, align 4, !tbaa !9
  %647 = load i32, ptr %37, align 4, !tbaa !9
  %648 = load i32, ptr %40, align 4, !tbaa !9
  %649 = shl i32 %648, 1
  %650 = add nsw i32 %647, %649
  store i32 %650, ptr %47, align 4, !tbaa !9
  %651 = load i32, ptr %47, align 4, !tbaa !9
  %652 = load i32, ptr %40, align 4, !tbaa !9
  %653 = add nsw i32 %651, %652
  store i32 %653, ptr %52, align 4, !tbaa !9
  %654 = load i32, ptr %52, align 4, !tbaa !9
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr %56, align 4, !tbaa !9
  %656 = load i32, ptr %56, align 4, !tbaa !9
  %657 = add nsw i32 %656, 1
  store i32 %657, ptr %48, align 4, !tbaa !9
  %658 = load i32, ptr %48, align 4, !tbaa !9
  %659 = load i32, ptr %40, align 4, !tbaa !9
  %660 = shl i32 %659, 1
  %661 = add nsw i32 %658, %660
  store i32 %661, ptr %62, align 4, !tbaa !9
  store i32 1, ptr %44, align 4, !tbaa !9
  store i32 2, ptr %63, align 4, !tbaa !9
  store i32 3, ptr %39, align 4, !tbaa !9
  %662 = load i32, ptr %39, align 4, !tbaa !9
  %663 = load i32, ptr %40, align 4, !tbaa !9
  %664 = add nsw i32 %662, %663
  store i32 %664, ptr %59, align 4, !tbaa !9
  br label %665

665:                                              ; preds = %638, %613
  %666 = load ptr, ptr %17, align 8, !tbaa !5
  %667 = load i32, ptr %666, align 4, !tbaa !9
  store i32 %667, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %668

668:                                              ; preds = %724, %665
  %669 = load i32, ptr %42, align 4, !tbaa !9
  %670 = load i32, ptr %33, align 4, !tbaa !9
  %671 = icmp sle i32 %669, %670
  br i1 %671, label %672, label %727

672:                                              ; preds = %668
  %673 = load ptr, ptr %18, align 8, !tbaa !5
  %674 = load i32, ptr %42, align 4, !tbaa !9
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds float, ptr %673, i64 %675
  %677 = load float, ptr %676, align 4, !tbaa !11
  store float %677, ptr %35, align 4, !tbaa !11
  %678 = load float, ptr %35, align 4, !tbaa !11
  %679 = fcmp oge float %678, 0.000000e+00
  br i1 %679, label %680, label %682

680:                                              ; preds = %672
  %681 = load float, ptr %35, align 4, !tbaa !11
  br label %685

682:                                              ; preds = %672
  %683 = load float, ptr %35, align 4, !tbaa !11
  %684 = fneg float %683
  br label %685

685:                                              ; preds = %682, %680
  %686 = phi float [ %681, %680 ], [ %684, %682 ]
  %687 = load float, ptr %69, align 4, !tbaa !11
  %688 = fcmp olt float %686, %687
  br i1 %688, label %689, label %723

689:                                              ; preds = %685
  %690 = load ptr, ptr %18, align 8, !tbaa !5
  %691 = load i32, ptr %42, align 4, !tbaa !9
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds float, ptr %690, i64 %692
  %694 = load float, ptr %693, align 4, !tbaa !11
  %695 = fcmp oge float %694, 0.000000e+00
  br i1 %695, label %696, label %706

696:                                              ; preds = %689
  %697 = load float, ptr %69, align 4, !tbaa !11
  %698 = fcmp oge float %697, 0.000000e+00
  br i1 %698, label %699, label %701

699:                                              ; preds = %696
  %700 = load float, ptr %69, align 4, !tbaa !11
  br label %704

701:                                              ; preds = %696
  %702 = load float, ptr %69, align 4, !tbaa !11
  %703 = fneg float %702
  br label %704

704:                                              ; preds = %701, %699
  %705 = phi float [ %700, %699 ], [ %703, %701 ]
  br label %717

706:                                              ; preds = %689
  %707 = load float, ptr %69, align 4, !tbaa !11
  %708 = fcmp oge float %707, 0.000000e+00
  br i1 %708, label %709, label %711

709:                                              ; preds = %706
  %710 = load float, ptr %69, align 4, !tbaa !11
  br label %714

711:                                              ; preds = %706
  %712 = load float, ptr %69, align 4, !tbaa !11
  %713 = fneg float %712
  br label %714

714:                                              ; preds = %711, %709
  %715 = phi float [ %710, %709 ], [ %713, %711 ]
  %716 = fneg float %715
  br label %717

717:                                              ; preds = %714, %704
  %718 = phi float [ %705, %704 ], [ %716, %714 ]
  %719 = load ptr, ptr %18, align 8, !tbaa !5
  %720 = load i32, ptr %42, align 4, !tbaa !9
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds float, ptr %719, i64 %721
  store float %718, ptr %722, align 4, !tbaa !11
  br label %723

723:                                              ; preds = %717, %685
  br label %724

724:                                              ; preds = %723
  %725 = load i32, ptr %42, align 4, !tbaa !9
  %726 = add nsw i32 %725, 1
  store i32 %726, ptr %42, align 4, !tbaa !9
  br label %668, !llvm.loop !15

727:                                              ; preds = %668
  store i32 1, ptr %51, align 4, !tbaa !9
  store i32 0, ptr %41, align 4, !tbaa !9
  %728 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %728, ptr %33, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %729

729:                                              ; preds = %1133, %727
  %730 = load i32, ptr %42, align 4, !tbaa !9
  %731 = load i32, ptr %33, align 4, !tbaa !9
  %732 = icmp sle i32 %730, %731
  br i1 %732, label %733, label %1136

733:                                              ; preds = %729
  %734 = load ptr, ptr %19, align 8, !tbaa !5
  %735 = load i32, ptr %42, align 4, !tbaa !9
  %736 = sext i32 %735 to i64
  %737 = getelementptr inbounds float, ptr %734, i64 %736
  %738 = load float, ptr %737, align 4, !tbaa !11
  store float %738, ptr %35, align 4, !tbaa !11
  %739 = load float, ptr %35, align 4, !tbaa !11
  %740 = fcmp oge float %739, 0.000000e+00
  br i1 %740, label %741, label %743

741:                                              ; preds = %733
  %742 = load float, ptr %35, align 4, !tbaa !11
  br label %746

743:                                              ; preds = %733
  %744 = load float, ptr %35, align 4, !tbaa !11
  %745 = fneg float %744
  br label %746

746:                                              ; preds = %743, %741
  %747 = phi float [ %742, %741 ], [ %745, %743 ]
  %748 = load float, ptr %69, align 4, !tbaa !11
  %749 = fcmp olt float %747, %748
  br i1 %749, label %754, label %750

750:                                              ; preds = %746
  %751 = load i32, ptr %42, align 4, !tbaa !9
  %752 = load i32, ptr %64, align 4, !tbaa !9
  %753 = icmp eq i32 %751, %752
  br i1 %753, label %754, label %1132

754:                                              ; preds = %750, %746
  %755 = load i32, ptr %42, align 4, !tbaa !9
  %756 = load i32, ptr %64, align 4, !tbaa !9
  %757 = icmp slt i32 %755, %756
  br i1 %757, label %758, label %763

758:                                              ; preds = %754
  %759 = load i32, ptr %42, align 4, !tbaa !9
  %760 = load i32, ptr %51, align 4, !tbaa !9
  %761 = sub nsw i32 %759, %760
  %762 = add nsw i32 %761, 1
  store i32 %762, ptr %50, align 4, !tbaa !9
  br label %925

763:                                              ; preds = %754
  %764 = load ptr, ptr %19, align 8, !tbaa !5
  %765 = load i32, ptr %42, align 4, !tbaa !9
  %766 = sext i32 %765 to i64
  %767 = getelementptr inbounds float, ptr %764, i64 %766
  %768 = load float, ptr %767, align 4, !tbaa !11
  store float %768, ptr %35, align 4, !tbaa !11
  %769 = load float, ptr %35, align 4, !tbaa !11
  %770 = fcmp oge float %769, 0.000000e+00
  br i1 %770, label %771, label %773

771:                                              ; preds = %763
  %772 = load float, ptr %35, align 4, !tbaa !11
  br label %776

773:                                              ; preds = %763
  %774 = load float, ptr %35, align 4, !tbaa !11
  %775 = fneg float %774
  br label %776

776:                                              ; preds = %773, %771
  %777 = phi float [ %772, %771 ], [ %775, %773 ]
  %778 = load float, ptr %69, align 4, !tbaa !11
  %779 = fcmp oge float %777, %778
  br i1 %779, label %780, label %786

780:                                              ; preds = %776
  %781 = load ptr, ptr %17, align 8, !tbaa !5
  %782 = load i32, ptr %781, align 4, !tbaa !9
  %783 = load i32, ptr %51, align 4, !tbaa !9
  %784 = sub nsw i32 %782, %783
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr %50, align 4, !tbaa !9
  br label %924

786:                                              ; preds = %776
  %787 = load i32, ptr %42, align 4, !tbaa !9
  %788 = load i32, ptr %51, align 4, !tbaa !9
  %789 = sub nsw i32 %787, %788
  %790 = add nsw i32 %789, 1
  store i32 %790, ptr %50, align 4, !tbaa !9
  %791 = load i32, ptr %60, align 4, !tbaa !9
  %792 = icmp eq i32 %791, 2
  br i1 %792, label %793, label %844

793:                                              ; preds = %786
  %794 = load ptr, ptr %18, align 8, !tbaa !5
  %795 = load ptr, ptr %17, align 8, !tbaa !5
  %796 = load i32, ptr %795, align 4, !tbaa !9
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds float, ptr %794, i64 %797
  %799 = load float, ptr %798, align 4, !tbaa !11
  %800 = fcmp oge float %799, 0.000000e+00
  br i1 %800, label %801, label %811

801:                                              ; preds = %793
  %802 = load float, ptr @c_b15, align 4, !tbaa !11
  %803 = fcmp oge float %802, 0.000000e+00
  br i1 %803, label %804, label %806

804:                                              ; preds = %801
  %805 = load float, ptr @c_b15, align 4, !tbaa !11
  br label %809

806:                                              ; preds = %801
  %807 = load float, ptr @c_b15, align 4, !tbaa !11
  %808 = fneg float %807
  br label %809

809:                                              ; preds = %806, %804
  %810 = phi float [ %805, %804 ], [ %808, %806 ]
  br label %822

811:                                              ; preds = %793
  %812 = load float, ptr @c_b15, align 4, !tbaa !11
  %813 = fcmp oge float %812, 0.000000e+00
  br i1 %813, label %814, label %816

814:                                              ; preds = %811
  %815 = load float, ptr @c_b15, align 4, !tbaa !11
  br label %819

816:                                              ; preds = %811
  %817 = load float, ptr @c_b15, align 4, !tbaa !11
  %818 = fneg float %817
  br label %819

819:                                              ; preds = %816, %814
  %820 = phi float [ %815, %814 ], [ %818, %816 ]
  %821 = fneg float %820
  br label %822

822:                                              ; preds = %819, %809
  %823 = phi float [ %810, %809 ], [ %821, %819 ]
  %824 = load ptr, ptr %20, align 8, !tbaa !5
  %825 = load ptr, ptr %17, align 8, !tbaa !5
  %826 = load i32, ptr %825, align 4, !tbaa !9
  %827 = load ptr, ptr %17, align 8, !tbaa !5
  %828 = load i32, ptr %827, align 4, !tbaa !9
  %829 = load i32, ptr %29, align 4, !tbaa !9
  %830 = mul nsw i32 %828, %829
  %831 = add nsw i32 %826, %830
  %832 = sext i32 %831 to i64
  %833 = getelementptr inbounds float, ptr %824, i64 %832
  store float %823, ptr %833, align 4, !tbaa !11
  %834 = load ptr, ptr %22, align 8, !tbaa !5
  %835 = load ptr, ptr %17, align 8, !tbaa !5
  %836 = load i32, ptr %835, align 4, !tbaa !9
  %837 = load ptr, ptr %17, align 8, !tbaa !5
  %838 = load i32, ptr %837, align 4, !tbaa !9
  %839 = load i32, ptr %31, align 4, !tbaa !9
  %840 = mul nsw i32 %838, %839
  %841 = add nsw i32 %836, %840
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds float, ptr %834, i64 %842
  store float 1.000000e+00, ptr %843, align 4, !tbaa !11
  br label %903

844:                                              ; preds = %786
  %845 = load i32, ptr %60, align 4, !tbaa !9
  %846 = icmp eq i32 %845, 1
  br i1 %846, label %847, label %902

847:                                              ; preds = %844
  %848 = load ptr, ptr %18, align 8, !tbaa !5
  %849 = load ptr, ptr %17, align 8, !tbaa !5
  %850 = load i32, ptr %849, align 4, !tbaa !9
  %851 = sext i32 %850 to i64
  %852 = getelementptr inbounds float, ptr %848, i64 %851
  %853 = load float, ptr %852, align 4, !tbaa !11
  %854 = fcmp oge float %853, 0.000000e+00
  br i1 %854, label %855, label %865

855:                                              ; preds = %847
  %856 = load float, ptr @c_b15, align 4, !tbaa !11
  %857 = fcmp oge float %856, 0.000000e+00
  br i1 %857, label %858, label %860

858:                                              ; preds = %855
  %859 = load float, ptr @c_b15, align 4, !tbaa !11
  br label %863

860:                                              ; preds = %855
  %861 = load float, ptr @c_b15, align 4, !tbaa !11
  %862 = fneg float %861
  br label %863

863:                                              ; preds = %860, %858
  %864 = phi float [ %859, %858 ], [ %862, %860 ]
  br label %876

865:                                              ; preds = %847
  %866 = load float, ptr @c_b15, align 4, !tbaa !11
  %867 = fcmp oge float %866, 0.000000e+00
  br i1 %867, label %868, label %870

868:                                              ; preds = %865
  %869 = load float, ptr @c_b15, align 4, !tbaa !11
  br label %873

870:                                              ; preds = %865
  %871 = load float, ptr @c_b15, align 4, !tbaa !11
  %872 = fneg float %871
  br label %873

873:                                              ; preds = %870, %868
  %874 = phi float [ %869, %868 ], [ %872, %870 ]
  %875 = fneg float %874
  br label %876

876:                                              ; preds = %873, %863
  %877 = phi float [ %864, %863 ], [ %875, %873 ]
  %878 = load ptr, ptr %24, align 8, !tbaa !5
  %879 = load ptr, ptr %17, align 8, !tbaa !5
  %880 = load i32, ptr %879, align 4, !tbaa !9
  %881 = load i32, ptr %65, align 4, !tbaa !9
  %882 = sub nsw i32 %881, 1
  %883 = load ptr, ptr %17, align 8, !tbaa !5
  %884 = load i32, ptr %883, align 4, !tbaa !9
  %885 = mul nsw i32 %882, %884
  %886 = add nsw i32 %880, %885
  %887 = sext i32 %886 to i64
  %888 = getelementptr inbounds float, ptr %878, i64 %887
  store float %877, ptr %888, align 4, !tbaa !11
  %889 = load ptr, ptr %24, align 8, !tbaa !5
  %890 = load ptr, ptr %17, align 8, !tbaa !5
  %891 = load i32, ptr %890, align 4, !tbaa !9
  %892 = load i32, ptr %66, align 4, !tbaa !9
  %893 = load i32, ptr %65, align 4, !tbaa !9
  %894 = add nsw i32 %892, %893
  %895 = sub nsw i32 %894, 1
  %896 = load ptr, ptr %17, align 8, !tbaa !5
  %897 = load i32, ptr %896, align 4, !tbaa !9
  %898 = mul nsw i32 %895, %897
  %899 = add nsw i32 %891, %898
  %900 = sext i32 %899 to i64
  %901 = getelementptr inbounds float, ptr %889, i64 %900
  store float 1.000000e+00, ptr %901, align 4, !tbaa !11
  br label %902

902:                                              ; preds = %876, %844
  br label %903

903:                                              ; preds = %902, %822
  %904 = load ptr, ptr %18, align 8, !tbaa !5
  %905 = load ptr, ptr %17, align 8, !tbaa !5
  %906 = load i32, ptr %905, align 4, !tbaa !9
  %907 = sext i32 %906 to i64
  %908 = getelementptr inbounds float, ptr %904, i64 %907
  %909 = load float, ptr %908, align 4, !tbaa !11
  store float %909, ptr %35, align 4, !tbaa !11
  %910 = load float, ptr %35, align 4, !tbaa !11
  %911 = fcmp oge float %910, 0.000000e+00
  br i1 %911, label %912, label %914

912:                                              ; preds = %903
  %913 = load float, ptr %35, align 4, !tbaa !11
  br label %917

914:                                              ; preds = %903
  %915 = load float, ptr %35, align 4, !tbaa !11
  %916 = fneg float %915
  br label %917

917:                                              ; preds = %914, %912
  %918 = phi float [ %913, %912 ], [ %916, %914 ]
  %919 = load ptr, ptr %18, align 8, !tbaa !5
  %920 = load ptr, ptr %17, align 8, !tbaa !5
  %921 = load i32, ptr %920, align 4, !tbaa !9
  %922 = sext i32 %921 to i64
  %923 = getelementptr inbounds float, ptr %919, i64 %922
  store float %918, ptr %923, align 4, !tbaa !11
  br label %924

924:                                              ; preds = %917, %780
  br label %925

925:                                              ; preds = %924, %758
  %926 = load i32, ptr %60, align 4, !tbaa !9
  %927 = icmp eq i32 %926, 2
  br i1 %927, label %928, label %962

928:                                              ; preds = %925
  %929 = load ptr, ptr %18, align 8, !tbaa !5
  %930 = load i32, ptr %51, align 4, !tbaa !9
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds float, ptr %929, i64 %931
  %933 = load ptr, ptr %19, align 8, !tbaa !5
  %934 = load i32, ptr %51, align 4, !tbaa !9
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds float, ptr %933, i64 %935
  %937 = load ptr, ptr %20, align 8, !tbaa !5
  %938 = load i32, ptr %51, align 4, !tbaa !9
  %939 = load i32, ptr %51, align 4, !tbaa !9
  %940 = load i32, ptr %29, align 4, !tbaa !9
  %941 = mul nsw i32 %939, %940
  %942 = add nsw i32 %938, %941
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds float, ptr %937, i64 %943
  %945 = load ptr, ptr %21, align 8, !tbaa !5
  %946 = load ptr, ptr %22, align 8, !tbaa !5
  %947 = load i32, ptr %51, align 4, !tbaa !9
  %948 = load i32, ptr %51, align 4, !tbaa !9
  %949 = load i32, ptr %31, align 4, !tbaa !9
  %950 = mul nsw i32 %948, %949
  %951 = add nsw i32 %947, %950
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds float, ptr %946, i64 %952
  %954 = load ptr, ptr %23, align 8, !tbaa !5
  %955 = load ptr, ptr %27, align 8, !tbaa !5
  %956 = getelementptr inbounds i32, ptr %955, i64 1
  %957 = load ptr, ptr %26, align 8, !tbaa !5
  %958 = load i32, ptr %67, align 4, !tbaa !9
  %959 = sext i32 %958 to i64
  %960 = getelementptr inbounds float, ptr %957, i64 %959
  %961 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasd0_(ptr noundef %50, ptr noundef %41, ptr noundef %932, ptr noundef %936, ptr noundef %944, ptr noundef %945, ptr noundef %953, ptr noundef %954, ptr noundef %66, ptr noundef %956, ptr noundef %960, ptr noundef %961)
  br label %1124

962:                                              ; preds = %925
  %963 = load ptr, ptr %18, align 8, !tbaa !5
  %964 = load i32, ptr %51, align 4, !tbaa !9
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds float, ptr %963, i64 %965
  %967 = load ptr, ptr %19, align 8, !tbaa !5
  %968 = load i32, ptr %51, align 4, !tbaa !9
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds float, ptr %967, i64 %969
  %971 = load ptr, ptr %24, align 8, !tbaa !5
  %972 = load i32, ptr %51, align 4, !tbaa !9
  %973 = load i32, ptr %57, align 4, !tbaa !9
  %974 = load i32, ptr %65, align 4, !tbaa !9
  %975 = add nsw i32 %973, %974
  %976 = sub nsw i32 %975, 2
  %977 = load ptr, ptr %17, align 8, !tbaa !5
  %978 = load i32, ptr %977, align 4, !tbaa !9
  %979 = mul nsw i32 %976, %978
  %980 = add nsw i32 %972, %979
  %981 = sext i32 %980 to i64
  %982 = getelementptr inbounds float, ptr %971, i64 %981
  %983 = load ptr, ptr %17, align 8, !tbaa !5
  %984 = load ptr, ptr %24, align 8, !tbaa !5
  %985 = load i32, ptr %51, align 4, !tbaa !9
  %986 = load i32, ptr %70, align 4, !tbaa !9
  %987 = load i32, ptr %65, align 4, !tbaa !9
  %988 = add nsw i32 %986, %987
  %989 = sub nsw i32 %988, 2
  %990 = load ptr, ptr %17, align 8, !tbaa !5
  %991 = load i32, ptr %990, align 4, !tbaa !9
  %992 = mul nsw i32 %989, %991
  %993 = add nsw i32 %985, %992
  %994 = sext i32 %993 to i64
  %995 = getelementptr inbounds float, ptr %984, i64 %994
  %996 = load ptr, ptr %25, align 8, !tbaa !5
  %997 = load i32, ptr %51, align 4, !tbaa !9
  %998 = load i32, ptr %44, align 4, !tbaa !9
  %999 = load ptr, ptr %17, align 8, !tbaa !5
  %1000 = load i32, ptr %999, align 4, !tbaa !9
  %1001 = mul nsw i32 %998, %1000
  %1002 = add nsw i32 %997, %1001
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds i32, ptr %996, i64 %1003
  %1005 = load ptr, ptr %24, align 8, !tbaa !5
  %1006 = load i32, ptr %51, align 4, !tbaa !9
  %1007 = load i32, ptr %36, align 4, !tbaa !9
  %1008 = load i32, ptr %65, align 4, !tbaa !9
  %1009 = add nsw i32 %1007, %1008
  %1010 = sub nsw i32 %1009, 2
  %1011 = load ptr, ptr %17, align 8, !tbaa !5
  %1012 = load i32, ptr %1011, align 4, !tbaa !9
  %1013 = mul nsw i32 %1010, %1012
  %1014 = add nsw i32 %1006, %1013
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds float, ptr %1005, i64 %1015
  %1017 = load ptr, ptr %24, align 8, !tbaa !5
  %1018 = load i32, ptr %51, align 4, !tbaa !9
  %1019 = load i32, ptr %37, align 4, !tbaa !9
  %1020 = load i32, ptr %65, align 4, !tbaa !9
  %1021 = add nsw i32 %1019, %1020
  %1022 = sub nsw i32 %1021, 2
  %1023 = load ptr, ptr %17, align 8, !tbaa !5
  %1024 = load i32, ptr %1023, align 4, !tbaa !9
  %1025 = mul nsw i32 %1022, %1024
  %1026 = add nsw i32 %1018, %1025
  %1027 = sext i32 %1026 to i64
  %1028 = getelementptr inbounds float, ptr %1017, i64 %1027
  %1029 = load ptr, ptr %24, align 8, !tbaa !5
  %1030 = load i32, ptr %51, align 4, !tbaa !9
  %1031 = load i32, ptr %47, align 4, !tbaa !9
  %1032 = load i32, ptr %65, align 4, !tbaa !9
  %1033 = add nsw i32 %1031, %1032
  %1034 = sub nsw i32 %1033, 2
  %1035 = load ptr, ptr %17, align 8, !tbaa !5
  %1036 = load i32, ptr %1035, align 4, !tbaa !9
  %1037 = mul nsw i32 %1034, %1036
  %1038 = add nsw i32 %1030, %1037
  %1039 = sext i32 %1038 to i64
  %1040 = getelementptr inbounds float, ptr %1029, i64 %1039
  %1041 = load ptr, ptr %24, align 8, !tbaa !5
  %1042 = load i32, ptr %51, align 4, !tbaa !9
  %1043 = load i32, ptr %48, align 4, !tbaa !9
  %1044 = load i32, ptr %65, align 4, !tbaa !9
  %1045 = add nsw i32 %1043, %1044
  %1046 = sub nsw i32 %1045, 2
  %1047 = load ptr, ptr %17, align 8, !tbaa !5
  %1048 = load i32, ptr %1047, align 4, !tbaa !9
  %1049 = mul nsw i32 %1046, %1048
  %1050 = add nsw i32 %1042, %1049
  %1051 = sext i32 %1050 to i64
  %1052 = getelementptr inbounds float, ptr %1041, i64 %1051
  %1053 = load ptr, ptr %25, align 8, !tbaa !5
  %1054 = load i32, ptr %51, align 4, !tbaa !9
  %1055 = load i32, ptr %63, align 4, !tbaa !9
  %1056 = load ptr, ptr %17, align 8, !tbaa !5
  %1057 = load i32, ptr %1056, align 4, !tbaa !9
  %1058 = mul nsw i32 %1055, %1057
  %1059 = add nsw i32 %1054, %1058
  %1060 = sext i32 %1059 to i64
  %1061 = getelementptr inbounds i32, ptr %1053, i64 %1060
  %1062 = load ptr, ptr %25, align 8, !tbaa !5
  %1063 = load i32, ptr %51, align 4, !tbaa !9
  %1064 = load i32, ptr %59, align 4, !tbaa !9
  %1065 = load ptr, ptr %17, align 8, !tbaa !5
  %1066 = load i32, ptr %1065, align 4, !tbaa !9
  %1067 = mul nsw i32 %1064, %1066
  %1068 = add nsw i32 %1063, %1067
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds i32, ptr %1062, i64 %1069
  %1071 = load ptr, ptr %17, align 8, !tbaa !5
  %1072 = load ptr, ptr %25, align 8, !tbaa !5
  %1073 = load i32, ptr %51, align 4, !tbaa !9
  %1074 = load i32, ptr %39, align 4, !tbaa !9
  %1075 = load ptr, ptr %17, align 8, !tbaa !5
  %1076 = load i32, ptr %1075, align 4, !tbaa !9
  %1077 = mul nsw i32 %1074, %1076
  %1078 = add nsw i32 %1073, %1077
  %1079 = sext i32 %1078 to i64
  %1080 = getelementptr inbounds i32, ptr %1072, i64 %1079
  %1081 = load ptr, ptr %24, align 8, !tbaa !5
  %1082 = load i32, ptr %51, align 4, !tbaa !9
  %1083 = load i32, ptr %62, align 4, !tbaa !9
  %1084 = load i32, ptr %65, align 4, !tbaa !9
  %1085 = add nsw i32 %1083, %1084
  %1086 = sub nsw i32 %1085, 2
  %1087 = load ptr, ptr %17, align 8, !tbaa !5
  %1088 = load i32, ptr %1087, align 4, !tbaa !9
  %1089 = mul nsw i32 %1086, %1088
  %1090 = add nsw i32 %1082, %1089
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds float, ptr %1081, i64 %1091
  %1093 = load ptr, ptr %24, align 8, !tbaa !5
  %1094 = load i32, ptr %51, align 4, !tbaa !9
  %1095 = load i32, ptr %52, align 4, !tbaa !9
  %1096 = load i32, ptr %65, align 4, !tbaa !9
  %1097 = add nsw i32 %1095, %1096
  %1098 = sub nsw i32 %1097, 2
  %1099 = load ptr, ptr %17, align 8, !tbaa !5
  %1100 = load i32, ptr %1099, align 4, !tbaa !9
  %1101 = mul nsw i32 %1098, %1100
  %1102 = add nsw i32 %1094, %1101
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds float, ptr %1093, i64 %1103
  %1105 = load ptr, ptr %24, align 8, !tbaa !5
  %1106 = load i32, ptr %51, align 4, !tbaa !9
  %1107 = load i32, ptr %56, align 4, !tbaa !9
  %1108 = load i32, ptr %65, align 4, !tbaa !9
  %1109 = add nsw i32 %1107, %1108
  %1110 = sub nsw i32 %1109, 2
  %1111 = load ptr, ptr %17, align 8, !tbaa !5
  %1112 = load i32, ptr %1111, align 4, !tbaa !9
  %1113 = mul nsw i32 %1110, %1112
  %1114 = add nsw i32 %1106, %1113
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds float, ptr %1105, i64 %1115
  %1117 = load ptr, ptr %26, align 8, !tbaa !5
  %1118 = load i32, ptr %67, align 4, !tbaa !9
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds float, ptr %1117, i64 %1119
  %1121 = load ptr, ptr %27, align 8, !tbaa !5
  %1122 = getelementptr inbounds i32, ptr %1121, i64 1
  %1123 = load ptr, ptr %28, align 8, !tbaa !5
  call void @slasda_(ptr noundef %60, ptr noundef %66, ptr noundef %50, ptr noundef %41, ptr noundef %966, ptr noundef %970, ptr noundef %982, ptr noundef %983, ptr noundef %995, ptr noundef %1004, ptr noundef %1016, ptr noundef %1028, ptr noundef %1040, ptr noundef %1052, ptr noundef %1061, ptr noundef %1070, ptr noundef %1071, ptr noundef %1080, ptr noundef %1092, ptr noundef %1104, ptr noundef %1116, ptr noundef %1120, ptr noundef %1122, ptr noundef %1123)
  br label %1124

1124:                                             ; preds = %962, %928
  %1125 = load ptr, ptr %28, align 8, !tbaa !5
  %1126 = load i32, ptr %1125, align 4, !tbaa !9
  %1127 = icmp ne i32 %1126, 0
  br i1 %1127, label %1128, label %1129

1128:                                             ; preds = %1124
  store i32 1, ptr %71, align 4
  br label %1301

1129:                                             ; preds = %1124
  %1130 = load i32, ptr %42, align 4, !tbaa !9
  %1131 = add nsw i32 %1130, 1
  store i32 %1131, ptr %51, align 4, !tbaa !9
  br label %1132

1132:                                             ; preds = %1129, %750
  br label %1133

1133:                                             ; preds = %1132
  %1134 = load i32, ptr %42, align 4, !tbaa !9
  %1135 = add nsw i32 %1134, 1
  store i32 %1135, ptr %42, align 4, !tbaa !9
  br label %729, !llvm.loop !16

1136:                                             ; preds = %729
  %1137 = load ptr, ptr %17, align 8, !tbaa !5
  %1138 = load ptr, ptr %18, align 8, !tbaa !5
  %1139 = getelementptr inbounds float, ptr %1138, i64 1
  %1140 = load ptr, ptr %17, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.9, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b15, ptr noundef %61, ptr noundef %1137, ptr noundef @c__1, ptr noundef %1139, ptr noundef %1140, ptr noundef %38)
  br label %1141

1141:                                             ; preds = %1136, %584, %430
  %1142 = load ptr, ptr %17, align 8, !tbaa !5
  %1143 = load i32, ptr %1142, align 4, !tbaa !9
  store i32 %1143, ptr %33, align 4, !tbaa !9
  store i32 2, ptr %53, align 4, !tbaa !9
  br label %1144

1144:                                             ; preds = %1257, %1141
  %1145 = load i32, ptr %53, align 4, !tbaa !9
  %1146 = load i32, ptr %33, align 4, !tbaa !9
  %1147 = icmp sle i32 %1145, %1146
  br i1 %1147, label %1148, label %1260

1148:                                             ; preds = %1144
  %1149 = load i32, ptr %53, align 4, !tbaa !9
  %1150 = sub nsw i32 %1149, 1
  store i32 %1150, ptr %42, align 4, !tbaa !9
  %1151 = load i32, ptr %42, align 4, !tbaa !9
  store i32 %1151, ptr %54, align 4, !tbaa !9
  %1152 = load ptr, ptr %18, align 8, !tbaa !5
  %1153 = load i32, ptr %42, align 4, !tbaa !9
  %1154 = sext i32 %1153 to i64
  %1155 = getelementptr inbounds float, ptr %1152, i64 %1154
  %1156 = load float, ptr %1155, align 4, !tbaa !11
  store float %1156, ptr %45, align 4, !tbaa !11
  %1157 = load ptr, ptr %17, align 8, !tbaa !5
  %1158 = load i32, ptr %1157, align 4, !tbaa !9
  store i32 %1158, ptr %34, align 4, !tbaa !9
  %1159 = load i32, ptr %53, align 4, !tbaa !9
  store i32 %1159, ptr %43, align 4, !tbaa !9
  br label %1160

1160:                                             ; preds = %1180, %1148
  %1161 = load i32, ptr %43, align 4, !tbaa !9
  %1162 = load i32, ptr %34, align 4, !tbaa !9
  %1163 = icmp sle i32 %1161, %1162
  br i1 %1163, label %1164, label %1183

1164:                                             ; preds = %1160
  %1165 = load ptr, ptr %18, align 8, !tbaa !5
  %1166 = load i32, ptr %43, align 4, !tbaa !9
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds float, ptr %1165, i64 %1167
  %1169 = load float, ptr %1168, align 4, !tbaa !11
  %1170 = load float, ptr %45, align 4, !tbaa !11
  %1171 = fcmp ogt float %1169, %1170
  br i1 %1171, label %1172, label %1179

1172:                                             ; preds = %1164
  %1173 = load i32, ptr %43, align 4, !tbaa !9
  store i32 %1173, ptr %54, align 4, !tbaa !9
  %1174 = load ptr, ptr %18, align 8, !tbaa !5
  %1175 = load i32, ptr %43, align 4, !tbaa !9
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds float, ptr %1174, i64 %1176
  %1178 = load float, ptr %1177, align 4, !tbaa !11
  store float %1178, ptr %45, align 4, !tbaa !11
  br label %1179

1179:                                             ; preds = %1172, %1164
  br label %1180

1180:                                             ; preds = %1179
  %1181 = load i32, ptr %43, align 4, !tbaa !9
  %1182 = add nsw i32 %1181, 1
  store i32 %1182, ptr %43, align 4, !tbaa !9
  br label %1160, !llvm.loop !17

1183:                                             ; preds = %1160
  %1184 = load i32, ptr %54, align 4, !tbaa !9
  %1185 = load i32, ptr %42, align 4, !tbaa !9
  %1186 = icmp ne i32 %1184, %1185
  br i1 %1186, label %1187, label %1246

1187:                                             ; preds = %1183
  %1188 = load ptr, ptr %18, align 8, !tbaa !5
  %1189 = load i32, ptr %42, align 4, !tbaa !9
  %1190 = sext i32 %1189 to i64
  %1191 = getelementptr inbounds float, ptr %1188, i64 %1190
  %1192 = load float, ptr %1191, align 4, !tbaa !11
  %1193 = load ptr, ptr %18, align 8, !tbaa !5
  %1194 = load i32, ptr %54, align 4, !tbaa !9
  %1195 = sext i32 %1194 to i64
  %1196 = getelementptr inbounds float, ptr %1193, i64 %1195
  store float %1192, ptr %1196, align 4, !tbaa !11
  %1197 = load float, ptr %45, align 4, !tbaa !11
  %1198 = load ptr, ptr %18, align 8, !tbaa !5
  %1199 = load i32, ptr %42, align 4, !tbaa !9
  %1200 = sext i32 %1199 to i64
  %1201 = getelementptr inbounds float, ptr %1198, i64 %1200
  store float %1197, ptr %1201, align 4, !tbaa !11
  %1202 = load i32, ptr %60, align 4, !tbaa !9
  %1203 = icmp eq i32 %1202, 1
  br i1 %1203, label %1204, label %1210

1204:                                             ; preds = %1187
  %1205 = load i32, ptr %54, align 4, !tbaa !9
  %1206 = load ptr, ptr %25, align 8, !tbaa !5
  %1207 = load i32, ptr %42, align 4, !tbaa !9
  %1208 = sext i32 %1207 to i64
  %1209 = getelementptr inbounds i32, ptr %1206, i64 %1208
  store i32 %1205, ptr %1209, align 4, !tbaa !9
  br label %1245

1210:                                             ; preds = %1187
  %1211 = load i32, ptr %60, align 4, !tbaa !9
  %1212 = icmp eq i32 %1211, 2
  br i1 %1212, label %1213, label %1244

1213:                                             ; preds = %1210
  %1214 = load ptr, ptr %17, align 8, !tbaa !5
  %1215 = load ptr, ptr %20, align 8, !tbaa !5
  %1216 = load i32, ptr %42, align 4, !tbaa !9
  %1217 = load i32, ptr %29, align 4, !tbaa !9
  %1218 = mul nsw i32 %1216, %1217
  %1219 = add nsw i32 %1218, 1
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds float, ptr %1215, i64 %1220
  %1222 = load ptr, ptr %20, align 8, !tbaa !5
  %1223 = load i32, ptr %54, align 4, !tbaa !9
  %1224 = load i32, ptr %29, align 4, !tbaa !9
  %1225 = mul nsw i32 %1223, %1224
  %1226 = add nsw i32 %1225, 1
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds float, ptr %1222, i64 %1227
  call void @sswap_(ptr noundef %1214, ptr noundef %1221, ptr noundef @c__1, ptr noundef %1228, ptr noundef @c__1)
  %1229 = load ptr, ptr %17, align 8, !tbaa !5
  %1230 = load ptr, ptr %22, align 8, !tbaa !5
  %1231 = load i32, ptr %42, align 4, !tbaa !9
  %1232 = load i32, ptr %31, align 4, !tbaa !9
  %1233 = add nsw i32 %1231, %1232
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds float, ptr %1230, i64 %1234
  %1236 = load ptr, ptr %23, align 8, !tbaa !5
  %1237 = load ptr, ptr %22, align 8, !tbaa !5
  %1238 = load i32, ptr %54, align 4, !tbaa !9
  %1239 = load i32, ptr %31, align 4, !tbaa !9
  %1240 = add nsw i32 %1238, %1239
  %1241 = sext i32 %1240 to i64
  %1242 = getelementptr inbounds float, ptr %1237, i64 %1241
  %1243 = load ptr, ptr %23, align 8, !tbaa !5
  call void @sswap_(ptr noundef %1229, ptr noundef %1235, ptr noundef %1236, ptr noundef %1242, ptr noundef %1243)
  br label %1244

1244:                                             ; preds = %1213, %1210
  br label %1245

1245:                                             ; preds = %1244, %1204
  br label %1256

1246:                                             ; preds = %1183
  %1247 = load i32, ptr %60, align 4, !tbaa !9
  %1248 = icmp eq i32 %1247, 1
  br i1 %1248, label %1249, label %1255

1249:                                             ; preds = %1246
  %1250 = load i32, ptr %42, align 4, !tbaa !9
  %1251 = load ptr, ptr %25, align 8, !tbaa !5
  %1252 = load i32, ptr %42, align 4, !tbaa !9
  %1253 = sext i32 %1252 to i64
  %1254 = getelementptr inbounds i32, ptr %1251, i64 %1253
  store i32 %1250, ptr %1254, align 4, !tbaa !9
  br label %1255

1255:                                             ; preds = %1249, %1246
  br label %1256

1256:                                             ; preds = %1255, %1245
  br label %1257

1257:                                             ; preds = %1256
  %1258 = load i32, ptr %53, align 4, !tbaa !9
  %1259 = add nsw i32 %1258, 1
  store i32 %1259, ptr %53, align 4, !tbaa !9
  br label %1144, !llvm.loop !18

1260:                                             ; preds = %1144
  %1261 = load i32, ptr %60, align 4, !tbaa !9
  %1262 = icmp eq i32 %1261, 1
  br i1 %1262, label %1263, label %1279

1263:                                             ; preds = %1260
  %1264 = load i32, ptr %49, align 4, !tbaa !9
  %1265 = icmp eq i32 %1264, 1
  br i1 %1265, label %1266, label %1272

1266:                                             ; preds = %1263
  %1267 = load ptr, ptr %25, align 8, !tbaa !5
  %1268 = load ptr, ptr %17, align 8, !tbaa !5
  %1269 = load i32, ptr %1268, align 4, !tbaa !9
  %1270 = sext i32 %1269 to i64
  %1271 = getelementptr inbounds i32, ptr %1267, i64 %1270
  store i32 1, ptr %1271, align 4, !tbaa !9
  br label %1278

1272:                                             ; preds = %1263
  %1273 = load ptr, ptr %25, align 8, !tbaa !5
  %1274 = load ptr, ptr %17, align 8, !tbaa !5
  %1275 = load i32, ptr %1274, align 4, !tbaa !9
  %1276 = sext i32 %1275 to i64
  %1277 = getelementptr inbounds i32, ptr %1273, i64 %1276
  store i32 0, ptr %1277, align 4, !tbaa !9
  br label %1278

1278:                                             ; preds = %1272, %1266
  br label %1279

1279:                                             ; preds = %1278, %1260
  %1280 = load i32, ptr %49, align 4, !tbaa !9
  %1281 = icmp eq i32 %1280, 2
  br i1 %1281, label %1282, label %1300

1282:                                             ; preds = %1279
  %1283 = load i32, ptr %60, align 4, !tbaa !9
  %1284 = icmp eq i32 %1283, 2
  br i1 %1284, label %1285, label %1300

1285:                                             ; preds = %1282
  %1286 = load ptr, ptr %17, align 8, !tbaa !5
  %1287 = load ptr, ptr %17, align 8, !tbaa !5
  %1288 = load ptr, ptr %26, align 8, !tbaa !5
  %1289 = getelementptr inbounds float, ptr %1288, i64 1
  %1290 = load ptr, ptr %26, align 8, !tbaa !5
  %1291 = load ptr, ptr %17, align 8, !tbaa !5
  %1292 = load i32, ptr %1291, align 4, !tbaa !9
  %1293 = sext i32 %1292 to i64
  %1294 = getelementptr inbounds float, ptr %1290, i64 %1293
  %1295 = load ptr, ptr %20, align 8, !tbaa !5
  %1296 = load i32, ptr %30, align 4, !tbaa !9
  %1297 = sext i32 %1296 to i64
  %1298 = getelementptr inbounds float, ptr %1295, i64 %1297
  %1299 = load ptr, ptr %21, align 8, !tbaa !5
  call void @slasr_(ptr noundef @.str.1, ptr noundef @.str.11, ptr noundef @.str.12, ptr noundef %1286, ptr noundef %1287, ptr noundef %1289, ptr noundef %1294, ptr noundef %1298, ptr noundef %1299)
  br label %1300

1300:                                             ; preds = %1285, %1282, %1279
  store i32 1, ptr %71, align 4
  br label %1301

1301:                                             ; preds = %1300, %1128, %612, %298, %195, %186
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  ret void
}

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

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

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

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

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

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

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

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

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

!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 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}


; 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"

@.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 [7 x i8], align 1
@c__9 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c_b15 = external hidden global float, align 4
@c__1 = external hidden global i32, align 4
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b29 = external hidden global float, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @sbdsdc_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13) local_unnamed_addr #0 {
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca float, align 4
  %19 = alloca i32, align 4
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  %22 = alloca i32, align 4
  %23 = alloca float, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #4
  %26 = getelementptr inbounds i8, ptr %3, i64 -4
  %27 = getelementptr inbounds i8, ptr %4, i64 -4
  %28 = load i32, ptr %6, align 4, !tbaa !5
  %narrow = xor i32 %28, -1
  %29 = sext i32 %narrow to i64
  %30 = getelementptr inbounds float, ptr %5, i64 %29
  %31 = load i32, ptr %8, align 4, !tbaa !5
  %narrow481 = xor i32 %31, -1
  %32 = sext i32 %narrow481 to i64
  %33 = getelementptr inbounds float, ptr %7, i64 %32
  %34 = getelementptr inbounds i8, ptr %9, i64 -4
  %35 = getelementptr inbounds i8, ptr %10, i64 -4
  %36 = getelementptr inbounds i8, ptr %11, i64 -4
  store i32 0, ptr %13, align 4, !tbaa !5
  %37 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #4
  %.not = icmp ne i32 %37, 0
  %38 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #4
  %.not465 = icmp ne i32 %38, 0
  %39 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #4
  %.not466 = icmp eq i32 %39, 0
  br i1 %.not466, label %41, label %40

40:                                               ; preds = %14
  store i32 0, ptr %22, align 4, !tbaa !5
  br label %47

41:                                               ; preds = %14
  %42 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #4
  %.not467 = icmp eq i32 %42, 0
  br i1 %.not467, label %44, label %43

43:                                               ; preds = %41
  store i32 1, ptr %22, align 4, !tbaa !5
  br label %47

44:                                               ; preds = %41
  %45 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #4
  %.not468 = icmp eq i32 %45, 0
  br i1 %.not468, label %.thread543, label %46

46:                                               ; preds = %44
  store i32 2, ptr %22, align 4, !tbaa !5
  br label %47

47:                                               ; preds = %43, %46, %40
  %48 = phi i1 [ false, %43 ], [ true, %46 ], [ false, %40 ]
  %49 = phi i1 [ true, %43 ], [ false, %46 ], [ false, %40 ]
  %50 = phi i32 [ 1, %43 ], [ 2, %46 ], [ 0, %40 ]
  %51 = select i1 %.not465, i1 true, i1 %.not
  br i1 %51, label %53, label %.thread.sink.split

.thread543:                                       ; preds = %44
  %52 = select i1 %.not465, i1 true, i1 %.not
  %spec.select = select i1 %52, i32 -2, i32 -1
  br label %.thread.sink.split

53:                                               ; preds = %47
  %54 = load i32, ptr %2, align 4, !tbaa !5
  %55 = icmp slt i32 %54, 0
  br i1 %55, label %.thread.sink.split, label %56

56:                                               ; preds = %53
  %57 = load i32, ptr %6, align 4, !tbaa !5
  %58 = icmp slt i32 %57, 1
  %59 = icmp ult i32 %57, %54
  %or.cond483 = and i1 %48, %59
  %or.cond548 = or i1 %58, %or.cond483
  br i1 %or.cond548, label %.thread.sink.split, label %60

60:                                               ; preds = %56
  %61 = load i32, ptr %8, align 4, !tbaa !5
  %62 = icmp slt i32 %61, 1
  %63 = icmp ult i32 %61, %54
  %or.cond490 = and i1 %48, %63
  %or.cond491 = or i1 %62, %or.cond490
  br i1 %or.cond491, label %.thread.sink.split, label %64

64:                                               ; preds = %60
  %.pr = load i32, ptr %13, align 4, !tbaa !5
  %.not469 = icmp eq i32 %.pr, 0
  br i1 %.not469, label %68, label %.thread

.thread.sink.split:                               ; preds = %.thread543, %60, %56, %53, %47
  %.sink = phi i32 [ -1, %47 ], [ -3, %53 ], [ -7, %56 ], [ -9, %60 ], [ %spec.select, %.thread543 ]
  store i32 %.sink, ptr %13, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %64
  %65 = phi i32 [ %.pr, %64 ], [ %.sink, %.thread.sink.split ]
  %66 = sub nsw i32 0, %65
  store i32 %66, ptr %15, align 4, !tbaa !5
  %67 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %15, i32 noundef 6) #4
  br label %.thread488

68:                                               ; preds = %64
  %69 = icmp eq i32 %54, 0
  br i1 %69, label %.thread488, label %70

70:                                               ; preds = %68
  %71 = tail call i32 @ilaenv_(ptr noundef nonnull @c__9, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, i32 noundef 6, i32 noundef 1) #4
  store i32 %71, ptr %25, align 4, !tbaa !5
  %72 = load i32, ptr %2, align 4, !tbaa !5
  %73 = icmp eq i32 %72, 1
  br i1 %73, label %74, label %105

74:                                               ; preds = %70
  switch i32 %50, label %100 [
    i32 1, label %75
    i32 2, label %89
  ]

75:                                               ; preds = %74
  %76 = load float, ptr %3, align 4, !tbaa !9
  %77 = fcmp ult float %76, 0.000000e+00
  %78 = load float, ptr @c_b15, align 4
  %79 = fcmp oge float %78, 0.000000e+00
  %.neg482 = fneg float %78
  br i1 %77, label %82, label %80

80:                                               ; preds = %75
  %81 = select i1 %79, float %78, float %.neg482
  br label %84

82:                                               ; preds = %75
  %83 = select i1 %79, float %.neg482, float %78
  br label %84

84:                                               ; preds = %82, %80
  %85 = phi float [ %81, %80 ], [ %83, %82 ]
  store float %85, ptr %9, align 4, !tbaa !9
  %86 = sext i32 %71 to i64
  %87 = getelementptr float, ptr %34, i64 %86
  %88 = getelementptr i8, ptr %87, i64 4
  br label %.sink.split

89:                                               ; preds = %74
  %90 = load float, ptr %3, align 4, !tbaa !9
  %91 = fcmp ult float %90, 0.000000e+00
  %92 = load float, ptr @c_b15, align 4
  %93 = fcmp oge float %92, 0.000000e+00
  %.neg480 = fneg float %92
  br i1 %91, label %96, label %94

94:                                               ; preds = %89
  %95 = select i1 %93, float %92, float %.neg480
  br label %98

96:                                               ; preds = %89
  %97 = select i1 %93, float %.neg480, float %92
  br label %98

98:                                               ; preds = %96, %94
  %99 = phi float [ %95, %94 ], [ %97, %96 ]
  store float %99, ptr %5, align 4, !tbaa !9
  br label %.sink.split

.sink.split:                                      ; preds = %84, %98
  %.sink549 = phi ptr [ %7, %98 ], [ %88, %84 ]
  store float 1.000000e+00, ptr %.sink549, align 4, !tbaa !9
  br label %100

100:                                              ; preds = %.sink.split, %74
  %101 = load float, ptr %3, align 4, !tbaa !9
  %102 = fcmp ult float %101, 0.000000e+00
  %103 = fneg float %101
  %104 = select i1 %102, float %103, float %101
  store float %104, ptr %3, align 4, !tbaa !9
  br label %.thread488

105:                                              ; preds = %70
  %106 = add nsw i32 %72, -1
  store i32 %106, ptr %24, align 4, !tbaa !5
  br i1 %49, label %107, label %113

107:                                              ; preds = %105
  tail call void @scopy_(ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull @c__1, ptr noundef %9, ptr noundef nonnull @c__1) #4
  %108 = load i32, ptr %2, align 4, !tbaa !5
  %109 = add nsw i32 %108, -1
  store i32 %109, ptr %15, align 4, !tbaa !5
  %110 = sext i32 %108 to i64
  %111 = getelementptr float, ptr %34, i64 %110
  %112 = getelementptr i8, ptr %111, i64 4
  call void @scopy_(ptr noundef nonnull %15, ptr noundef %4, ptr noundef nonnull @c__1, ptr noundef %112, ptr noundef nonnull @c__1) #4
  %.pre534.pre = load i32, ptr %22, align 4, !tbaa !5
  br label %113

113:                                              ; preds = %107, %105
  %.pre534 = phi i32 [ %.pre534.pre, %107 ], [ %50, %105 ]
  br i1 %.not465, label %114, label %.loopexit

114:                                              ; preds = %113
  %115 = icmp eq i32 %.pre534, 2
  %.pre = load i32, ptr %2, align 4, !tbaa !5
  %116 = shl i32 %.pre, 1
  %117 = add nsw i32 %116, -1
  %.0425 = select i1 %115, i32 %117, i32 1
  %118 = add nsw i32 %.pre, -1
  store i32 %118, ptr %15, align 4, !tbaa !5
  %.not470492 = icmp slt i32 %.pre, 2
  br i1 %.not470492, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %114, %149
  %indvars.iv = phi i64 [ %indvars.iv.next, %149 ], [ 1, %114 ]
  %119 = getelementptr inbounds float, ptr %26, i64 %indvars.iv
  %120 = getelementptr inbounds float, ptr %27, i64 %indvars.iv
  call void @slartg_(ptr noundef nonnull %119, ptr noundef nonnull %120, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %18) #4
  %121 = load float, ptr %18, align 4, !tbaa !9
  store float %121, ptr %119, align 4, !tbaa !9
  %122 = load float, ptr %21, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %123 = getelementptr float, ptr %3, i64 %indvars.iv
  %124 = load float, ptr %123, align 4, !tbaa !9
  %125 = fmul float %122, %124
  store float %125, ptr %120, align 4, !tbaa !9
  %126 = load float, ptr %20, align 4, !tbaa !9
  %127 = load float, ptr %123, align 4, !tbaa !9
  %128 = fmul float %126, %127
  store float %128, ptr %123, align 4, !tbaa !9
  %129 = load i32, ptr %22, align 4, !tbaa !5
  switch i32 %129, label %149 [
    i32 1, label %130
    i32 2, label %139
  ]

130:                                              ; preds = %.lr.ph
  %131 = load i32, ptr %2, align 4, !tbaa !5
  %132 = shl i32 %131, 1
  %133 = trunc nuw nsw i64 %indvars.iv to i32
  %134 = add nsw i32 %132, %133
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds float, ptr %34, i64 %135
  store float %126, ptr %136, align 4, !tbaa !9
  %137 = mul nsw i32 %131, 3
  %138 = add nsw i32 %137, %133
  br label %.sink.split550

139:                                              ; preds = %.lr.ph
  %140 = getelementptr inbounds float, ptr %36, i64 %indvars.iv
  store float %126, ptr %140, align 4, !tbaa !9
  %141 = fneg float %122
  %142 = load i32, ptr %24, align 4, !tbaa !5
  %143 = trunc nuw nsw i64 %indvars.iv to i32
  %144 = add nsw i32 %142, %143
  br label %.sink.split550

.sink.split550:                                   ; preds = %139, %130
  %.sink555 = phi i32 [ %138, %130 ], [ %144, %139 ]
  %145 = phi ptr [ %9, %130 ], [ %11, %139 ]
  %.sink551 = phi float [ %122, %130 ], [ %141, %139 ]
  %146 = getelementptr inbounds i8, ptr %145, i64 -4
  %147 = sext i32 %.sink555 to i64
  %148 = getelementptr inbounds float, ptr %146, i64 %147
  store float %.sink551, ptr %148, align 4, !tbaa !9
  br label %149

149:                                              ; preds = %.sink.split550, %.lr.ph
  %150 = load i32, ptr %15, align 4, !tbaa !5
  %151 = sext i32 %150 to i64
  %.not470.not = icmp slt i64 %indvars.iv, %151
  br i1 %.not470.not, label %.lr.ph, label %.loopexit, !llvm.loop !11

.loopexit:                                        ; preds = %149, %114, %113
  %152 = phi i32 [ %.pre534, %113 ], [ %.pre534, %114 ], [ %129, %149 ]
  %.0426 = phi i32 [ 3, %113 ], [ 5, %114 ], [ 5, %149 ]
  %.1 = phi i32 [ 1, %113 ], [ %.0425, %114 ], [ %.0425, %149 ]
  %153 = icmp eq i32 %152, 0
  br i1 %153, label %154, label %155

154:                                              ; preds = %.loopexit
  call void @slasdq_(ptr noundef nonnull @.str, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef %3, ptr noundef %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %11, ptr noundef nonnull %13) #4
  br label %thread-pre-split

155:                                              ; preds = %.loopexit
  %156 = load i32, ptr %2, align 4, !tbaa !5
  %157 = load i32, ptr %25, align 4, !tbaa !5
  %.not471 = icmp sgt i32 %156, %157
  br i1 %.not471, label %184, label %158

158:                                              ; preds = %155
  switch i32 %152, label %446 [
    i32 2, label %159
    i32 1, label %162
  ]

159:                                              ; preds = %158
  call void @slaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b15, ptr noundef %5, ptr noundef nonnull %6) #4
  call void @slaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b15, ptr noundef %7, ptr noundef nonnull %8) #4
  %160 = sext i32 %.1 to i64
  %161 = getelementptr inbounds float, ptr %36, i64 %160
  call void @slasdq_(ptr noundef nonnull @.str, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c__0, ptr noundef %3, ptr noundef %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %161, ptr noundef nonnull %13) #4
  br label %thread-pre-split

162:                                              ; preds = %158
  %163 = add nsw i32 %156, 1
  %164 = add nsw i32 %.0426, -1
  %165 = mul nsw i32 %156, %164
  %166 = or disjoint i32 %165, 1
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds float, ptr %34, i64 %167
  call void @slaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b15, ptr noundef nonnull %168, ptr noundef nonnull %2) #4
  %169 = load i32, ptr %2, align 4, !tbaa !5
  %170 = mul nsw i32 %169, %164
  %171 = add nsw i32 %170, %163
  %172 = sext i32 %171 to i64
  %173 = getelementptr inbounds float, ptr %34, i64 %172
  call void @slaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b15, ptr noundef nonnull %173, ptr noundef nonnull %2) #4
  %174 = load i32, ptr %2, align 4, !tbaa !5
  %175 = mul nsw i32 %174, %164
  %176 = add nsw i32 %175, %163
  %177 = sext i32 %176 to i64
  %178 = getelementptr inbounds float, ptr %34, i64 %177
  %179 = or disjoint i32 %175, 1
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds float, ptr %34, i64 %180
  %182 = sext i32 %.1 to i64
  %183 = getelementptr inbounds float, ptr %36, i64 %182
  call void @slasdq_(ptr noundef nonnull @.str, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c__0, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %178, ptr noundef nonnull %2, ptr noundef nonnull %181, ptr noundef nonnull %2, ptr noundef nonnull %181, ptr noundef nonnull %2, ptr noundef nonnull %183, ptr noundef nonnull %13) #4
  br label %thread-pre-split

184:                                              ; preds = %155
  %185 = icmp eq i32 %152, 2
  br i1 %185, label %186, label %187

186:                                              ; preds = %184
  call void @slaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b15, ptr noundef %5, ptr noundef nonnull %6) #4
  call void @slaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b15, ptr noundef %7, ptr noundef nonnull %8) #4
  br label %187

187:                                              ; preds = %186, %184
  %188 = call float @slanst_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4) #4
  store float %188, ptr %23, align 4, !tbaa !9
  %189 = fcmp oeq float %188, 0.000000e+00
  br i1 %189, label %.thread488, label %190

190:                                              ; preds = %187
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull @c_b15, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %3, ptr noundef nonnull %2, ptr noundef nonnull %16) #4
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull @c_b15, ptr noundef nonnull %24, ptr noundef nonnull @c__1, ptr noundef %4, ptr noundef nonnull %24, ptr noundef nonnull %16) #4
  %191 = call float @slamch_(ptr noundef nonnull @.str.10) #4
  %192 = load i32, ptr %2, align 4, !tbaa !5
  %193 = sitofp i32 %192 to float
  %194 = load i32, ptr %25, align 4, !tbaa !5
  %195 = add nsw i32 %194, 1
  %196 = sitofp i32 %195 to float
  %197 = fdiv float %193, %196
  %198 = fpext float %197 to double
  %199 = call double @log(double noundef %198) #4
  %200 = load i32, ptr %25, align 4, !tbaa !5
  %201 = add nsw i32 %200, 1
  %202 = load i32, ptr %22, align 4, !tbaa !5
  %203 = icmp eq i32 %202, 1
  br i1 %203, label %204, label %217

204:                                              ; preds = %190
  %205 = fdiv double %199, 0x3FE62E42FEFA39EF
  %206 = fptosi double %205 to i32
  %207 = add nsw i32 %206, 1
  %208 = shl nsw i32 %201, 1
  %209 = add nsw i32 %208, %207
  %210 = shl i32 %207, 1
  %211 = add nsw i32 %209, %210
  %212 = add nsw i32 %211, %207
  %213 = add nsw i32 %212, 1
  %214 = add nsw i32 %212, 2
  %215 = add nsw i32 %214, %210
  %216 = add nsw i32 %206, 4
  br label %217

217:                                              ; preds = %204, %190
  %.0447 = phi i32 [ %208, %204 ], [ undef, %190 ]
  %.0446 = phi i32 [ %209, %204 ], [ undef, %190 ]
  %.0440 = phi i32 [ %211, %204 ], [ undef, %190 ]
  %.0439 = phi i32 [ %214, %204 ], [ undef, %190 ]
  %.0434 = phi i32 [ %212, %204 ], [ undef, %190 ]
  %.0430 = phi i32 [ %213, %204 ], [ undef, %190 ]
  %.0428 = phi i32 [ %216, %204 ], [ undef, %190 ]
  %.0427 = phi i32 [ %215, %204 ], [ undef, %190 ]
  %218 = load i32, ptr %2, align 4, !tbaa !5
  %.not472494 = icmp slt i32 %218, 1
  br i1 %.not472494, label %._crit_edge, label %.lr.ph496

.lr.ph496:                                        ; preds = %217
  %219 = fcmp oge float %191, 0.000000e+00
  %.neg476 = fneg float %191
  %220 = add nuw i32 %218, 1
  %wide.trip.count = zext i32 %220 to i64
  %221 = zext nneg i32 %218 to i64
  %min.iters.check = icmp ult i32 %218, 8
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph496
  %n.vec = and i64 %221, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %191, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %invariant.gep575 = getelementptr i8, ptr %26, i64 32
  br label %vector.body

vector.body:                                      ; preds = %pred.store.continue574, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue574 ]
  %222 = or disjoint i64 %index, 5
  %223 = getelementptr float, ptr %3, i64 %index
  %224 = getelementptr inbounds i8, ptr %223, i64 16
  %wide.load = load <4 x float>, ptr %223, align 4, !tbaa !9
  %wide.load560 = load <4 x float>, ptr %224, align 4, !tbaa !9
  %225 = fcmp oge <4 x float> %wide.load, zeroinitializer
  %226 = fcmp oge <4 x float> %wide.load560, zeroinitializer
  %227 = fneg <4 x float> %wide.load
  %228 = fneg <4 x float> %wide.load560
  %229 = select <4 x i1> %225, <4 x float> %wide.load, <4 x float> %227
  %230 = select <4 x i1> %226, <4 x float> %wide.load560, <4 x float> %228
  %231 = fcmp olt <4 x float> %229, %broadcast.splat
  %232 = fcmp olt <4 x float> %230, %broadcast.splat
  %233 = extractelement <4 x i1> %231, i64 0
  br i1 %233, label %pred.store.if, label %pred.store.continue

pred.store.if:                                    ; preds = %vector.body
  %234 = extractelement <4 x i1> %225, i64 0
  %235 = xor i1 %219, %234
  %236 = getelementptr float, ptr %3, i64 %index
  %237 = select i1 %235, float %.neg476, float %191
  store float %237, ptr %236, align 4, !tbaa !9
  br label %pred.store.continue

pred.store.continue:                              ; preds = %pred.store.if, %vector.body
  %238 = extractelement <4 x i1> %231, i64 1
  br i1 %238, label %pred.store.if561, label %pred.store.continue562

pred.store.if561:                                 ; preds = %pred.store.continue
  %239 = or disjoint i64 %index, 2
  %240 = extractelement <4 x i1> %225, i64 1
  %241 = xor i1 %219, %240
  %242 = getelementptr inbounds float, ptr %26, i64 %239
  %243 = select i1 %241, float %.neg476, float %191
  store float %243, ptr %242, align 4, !tbaa !9
  br label %pred.store.continue562

pred.store.continue562:                           ; preds = %pred.store.if561, %pred.store.continue
  %244 = extractelement <4 x i1> %231, i64 2
  br i1 %244, label %pred.store.if563, label %pred.store.continue564

pred.store.if563:                                 ; preds = %pred.store.continue562
  %245 = or disjoint i64 %index, 3
  %246 = extractelement <4 x i1> %225, i64 2
  %247 = xor i1 %219, %246
  %248 = getelementptr inbounds float, ptr %26, i64 %245
  %249 = select i1 %247, float %.neg476, float %191
  store float %249, ptr %248, align 4, !tbaa !9
  br label %pred.store.continue564

pred.store.continue564:                           ; preds = %pred.store.if563, %pred.store.continue562
  %250 = extractelement <4 x i1> %231, i64 3
  br i1 %250, label %pred.store.if565, label %pred.store.continue566

pred.store.if565:                                 ; preds = %pred.store.continue564
  %251 = or disjoint i64 %index, 4
  %252 = extractelement <4 x i1> %225, i64 3
  %253 = xor i1 %219, %252
  %254 = getelementptr inbounds float, ptr %26, i64 %251
  %255 = select i1 %253, float %.neg476, float %191
  store float %255, ptr %254, align 4, !tbaa !9
  br label %pred.store.continue566

pred.store.continue566:                           ; preds = %pred.store.if565, %pred.store.continue564
  %256 = extractelement <4 x i1> %232, i64 0
  br i1 %256, label %pred.store.if567, label %pred.store.continue568

pred.store.if567:                                 ; preds = %pred.store.continue566
  %257 = extractelement <4 x i1> %226, i64 0
  %258 = xor i1 %219, %257
  %259 = getelementptr inbounds float, ptr %26, i64 %222
  %260 = select i1 %258, float %.neg476, float %191
  store float %260, ptr %259, align 4, !tbaa !9
  br label %pred.store.continue568

pred.store.continue568:                           ; preds = %pred.store.if567, %pred.store.continue566
  %261 = extractelement <4 x i1> %232, i64 1
  br i1 %261, label %pred.store.if569, label %pred.store.continue570

pred.store.if569:                                 ; preds = %pred.store.continue568
  %262 = or disjoint i64 %index, 6
  %263 = extractelement <4 x i1> %226, i64 1
  %264 = xor i1 %219, %263
  %265 = getelementptr inbounds float, ptr %26, i64 %262
  %266 = select i1 %264, float %.neg476, float %191
  store float %266, ptr %265, align 4, !tbaa !9
  br label %pred.store.continue570

pred.store.continue570:                           ; preds = %pred.store.if569, %pred.store.continue568
  %267 = extractelement <4 x i1> %232, i64 2
  br i1 %267, label %pred.store.if571, label %pred.store.continue572

pred.store.if571:                                 ; preds = %pred.store.continue570
  %268 = or disjoint i64 %index, 7
  %269 = extractelement <4 x i1> %226, i64 2
  %270 = xor i1 %219, %269
  %271 = getelementptr inbounds float, ptr %26, i64 %268
  %272 = select i1 %270, float %.neg476, float %191
  store float %272, ptr %271, align 4, !tbaa !9
  br label %pred.store.continue572

pred.store.continue572:                           ; preds = %pred.store.if571, %pred.store.continue570
  %273 = extractelement <4 x i1> %232, i64 3
  br i1 %273, label %pred.store.if573, label %pred.store.continue574

pred.store.if573:                                 ; preds = %pred.store.continue572
  %274 = extractelement <4 x i1> %226, i64 3
  %275 = xor i1 %219, %274
  %gep576 = getelementptr float, ptr %invariant.gep575, i64 %index
  %276 = select i1 %275, float %.neg476, float %191
  store float %276, ptr %gep576, align 4, !tbaa !9
  br label %pred.store.continue574

pred.store.continue574:                           ; preds = %pred.store.if573, %pred.store.continue572
  %index.next = add nuw i64 %index, 8
  %277 = icmp eq i64 %index.next, %n.vec
  br i1 %277, label %middle.block, label %vector.body, !llvm.loop !13

middle.block:                                     ; preds = %pred.store.continue574
  %cmp.n = icmp eq i64 %n.vec, %221
  br i1 %cmp.n, label %._crit_edge, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph496
  %indvars.iv520.ph = phi i64 [ 1, %.lr.ph496 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %286
  %indvars.iv520 = phi i64 [ %indvars.iv.next521, %286 ], [ %indvars.iv520.ph, %scalar.ph.preheader ]
  %278 = getelementptr inbounds float, ptr %26, i64 %indvars.iv520
  %279 = load float, ptr %278, align 4, !tbaa !9
  %280 = fcmp oge float %279, 0.000000e+00
  %281 = fneg float %279
  %282 = select i1 %280, float %279, float %281
  %283 = fcmp olt float %282, %191
  br i1 %283, label %284, label %286

284:                                              ; preds = %scalar.ph
  %285 = xor i1 %219, %280
  %. = select i1 %285, float %.neg476, float %191
  store float %., ptr %278, align 4, !tbaa !9
  br label %286

286:                                              ; preds = %scalar.ph, %284
  %indvars.iv.next521 = add nuw nsw i64 %indvars.iv520, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next521, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %scalar.ph, !llvm.loop !16

._crit_edge:                                      ; preds = %286, %middle.block, %217
  store i32 0, ptr %17, align 4, !tbaa !5
  %287 = load i32, ptr %24, align 4, !tbaa !5
  store i32 %287, ptr %15, align 4, !tbaa !5
  %.not473497 = icmp slt i32 %287, 1
  br i1 %.not473497, label %._crit_edge503, label %.lr.ph502

.lr.ph502:                                        ; preds = %._crit_edge
  %288 = add i32 %28, 1
  %289 = add i32 %31, 1
  %290 = add nsw i32 %.0426, -1
  %291 = add nsw i32 %.0426, -2
  %292 = add i32 %291, %201
  %293 = add i32 %291, %.0447
  %294 = add i32 %291, %.0446
  %295 = add i32 %291, %.0440
  %296 = add i32 %291, %.0439
  %297 = add i32 %291, %.0427
  %298 = add i32 %291, %.0434
  %299 = add i32 %291, %.0430
  %300 = sext i32 %.1 to i64
  %301 = getelementptr inbounds float, ptr %36, i64 %300
  br label %302

302:                                              ; preds = %.lr.ph502, %443
  %303 = phi i32 [ %287, %.lr.ph502 ], [ %444, %443 ]
  %indvars.iv523 = phi i64 [ 1, %.lr.ph502 ], [ %indvars.iv.next524.pre-phi, %443 ]
  %.0435.neg500 = phi i32 [ -1, %.lr.ph502 ], [ %.0435.neg, %443 ]
  %.0435499 = phi i32 [ 1, %.lr.ph502 ], [ %.1436, %443 ]
  %304 = getelementptr inbounds float, ptr %27, i64 %indvars.iv523
  %305 = load float, ptr %304, align 4, !tbaa !9
  %306 = fcmp oge float %305, 0.000000e+00
  %307 = fneg float %305
  %308 = select i1 %306, float %305, float %307
  %309 = fcmp olt float %308, %191
  %310 = load i32, ptr %24, align 4
  %311 = zext i32 %310 to i64
  %312 = icmp eq i64 %indvars.iv523, %311
  %or.cond485 = select i1 %309, i1 true, i1 %312
  br i1 %or.cond485, label %313, label %._crit_edge541

._crit_edge541:                                   ; preds = %302
  %.pre542 = add nuw nsw i64 %indvars.iv523, 1
  br label %443

313:                                              ; preds = %302
  %314 = sext i32 %310 to i64
  %315 = icmp slt i64 %indvars.iv523, %314
  br i1 %315, label %316, label %320

316:                                              ; preds = %313
  %317 = trunc i64 %indvars.iv523 to i32
  %318 = add i32 %317, 1
  %319 = add i32 %318, %.0435.neg500
  store i32 %319, ptr %19, align 4, !tbaa !5
  br label %372

320:                                              ; preds = %313
  %321 = fcmp ult float %308, %191
  br i1 %321, label %326, label %322

322:                                              ; preds = %320
  %323 = load i32, ptr %2, align 4, !tbaa !5
  %324 = add i32 %.0435.neg500, 1
  %325 = add i32 %324, %323
  store i32 %325, ptr %19, align 4, !tbaa !5
  br label %372

326:                                              ; preds = %320
  %327 = trunc i64 %indvars.iv523 to i32
  %328 = add i32 %327, 1
  %329 = add i32 %328, %.0435.neg500
  store i32 %329, ptr %19, align 4, !tbaa !5
  %330 = load i32, ptr %22, align 4, !tbaa !5
  %.pre536 = load i32, ptr %2, align 4, !tbaa !5
  %.pre540 = sext i32 %.pre536 to i64
  switch i32 %330, label %._crit_edge535 [
    i32 2, label %331
    i32 1, label %347
  ]

331:                                              ; preds = %326
  %332 = getelementptr inbounds float, ptr %26, i64 %.pre540
  %333 = load float, ptr %332, align 4, !tbaa !9
  %334 = fcmp ult float %333, 0.000000e+00
  %335 = load float, ptr @c_b15, align 4
  %336 = fcmp oge float %335, 0.000000e+00
  %.neg474 = fneg float %335
  br i1 %334, label %339, label %337

337:                                              ; preds = %331
  %338 = select i1 %336, float %335, float %.neg474
  br label %341

339:                                              ; preds = %331
  %340 = select i1 %336, float %.neg474, float %335
  br label %341

341:                                              ; preds = %339, %337
  %342 = phi float [ %338, %337 ], [ %340, %339 ]
  %343 = mul i32 %.pre536, %288
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds float, ptr %30, i64 %344
  store float %342, ptr %345, align 4, !tbaa !9
  %346 = mul i32 %.pre536, %289
  br label %._crit_edge535.sink.split

347:                                              ; preds = %326
  %348 = getelementptr inbounds float, ptr %26, i64 %.pre540
  %349 = load float, ptr %348, align 4, !tbaa !9
  %350 = fcmp ult float %349, 0.000000e+00
  %351 = load float, ptr @c_b15, align 4
  %352 = fcmp oge float %351, 0.000000e+00
  %.neg = fneg float %351
  br i1 %350, label %355, label %353

353:                                              ; preds = %347
  %354 = select i1 %352, float %351, float %.neg
  br label %357

355:                                              ; preds = %347
  %356 = select i1 %352, float %.neg, float %351
  br label %357

357:                                              ; preds = %355, %353
  %358 = phi float [ %354, %353 ], [ %356, %355 ]
  %359 = mul i32 %.pre536, %.0426
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds float, ptr %34, i64 %360
  store float %358, ptr %361, align 4, !tbaa !9
  %362 = load i32, ptr %25, align 4, !tbaa !5
  %363 = add nsw i32 %362, %.0426
  %364 = mul i32 %363, %.pre536
  br label %._crit_edge535.sink.split

._crit_edge535.sink.split:                        ; preds = %341, %357
  %.sink559 = phi i32 [ %364, %357 ], [ %346, %341 ]
  %.sink557 = phi ptr [ %34, %357 ], [ %33, %341 ]
  %365 = sext i32 %.sink559 to i64
  %366 = getelementptr inbounds float, ptr %.sink557, i64 %365
  store float 1.000000e+00, ptr %366, align 4, !tbaa !9
  br label %._crit_edge535

._crit_edge535:                                   ; preds = %._crit_edge535.sink.split, %326
  %367 = getelementptr inbounds float, ptr %26, i64 %.pre540
  %368 = load float, ptr %367, align 4, !tbaa !9
  %369 = fcmp oge float %368, 0.000000e+00
  %370 = fneg float %368
  %371 = select i1 %369, float %368, float %370
  store float %371, ptr %367, align 4, !tbaa !9
  br label %372

372:                                              ; preds = %322, %._crit_edge535, %316
  %373 = load i32, ptr %22, align 4, !tbaa !5
  %374 = icmp eq i32 %373, 2
  %375 = sext i32 %.0435499 to i64
  %376 = getelementptr inbounds float, ptr %26, i64 %375
  %377 = getelementptr inbounds float, ptr %27, i64 %375
  br i1 %374, label %378, label %385

378:                                              ; preds = %372
  %379 = mul i32 %.0435499, %288
  %380 = sext i32 %379 to i64
  %381 = getelementptr inbounds float, ptr %30, i64 %380
  %382 = mul i32 %.0435499, %289
  %383 = sext i32 %382 to i64
  %384 = getelementptr inbounds float, ptr %33, i64 %383
  call void @slasd0_(ptr noundef nonnull %19, ptr noundef nonnull %17, ptr noundef nonnull %376, ptr noundef nonnull %377, ptr noundef %381, ptr noundef nonnull %6, ptr noundef %384, ptr noundef nonnull %8, ptr noundef nonnull %25, ptr noundef %12, ptr noundef nonnull %301, ptr noundef nonnull %13) #4
  br label %438

385:                                              ; preds = %372
  %386 = load i32, ptr %2, align 4, !tbaa !5
  %387 = mul nsw i32 %386, %290
  %388 = add nsw i32 %387, %.0435499
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds float, ptr %34, i64 %389
  %391 = mul nsw i32 %386, %292
  %392 = add nsw i32 %391, %.0435499
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds float, ptr %34, i64 %393
  %395 = add nsw i32 %386, %.0435499
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds i32, ptr %35, i64 %396
  %398 = mul nsw i32 %386, %293
  %399 = add nsw i32 %398, %.0435499
  %400 = sext i32 %399 to i64
  %401 = getelementptr inbounds float, ptr %34, i64 %400
  %402 = mul nsw i32 %386, %294
  %403 = add nsw i32 %402, %.0435499
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds float, ptr %34, i64 %404
  %406 = mul nsw i32 %386, %295
  %407 = add nsw i32 %406, %.0435499
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds float, ptr %34, i64 %408
  %410 = mul nsw i32 %386, %296
  %411 = add nsw i32 %410, %.0435499
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds float, ptr %34, i64 %412
  %414 = shl nsw i32 %386, 1
  %415 = add nsw i32 %414, %.0435499
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds i32, ptr %35, i64 %416
  %418 = mul nsw i32 %386, %.0428
  %419 = add nsw i32 %418, %.0435499
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds i32, ptr %35, i64 %420
  %422 = mul nsw i32 %386, 3
  %423 = add nsw i32 %422, %.0435499
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds i32, ptr %35, i64 %424
  %426 = mul nsw i32 %386, %297
  %427 = add nsw i32 %426, %.0435499
  %428 = sext i32 %427 to i64
  %429 = getelementptr inbounds float, ptr %34, i64 %428
  %430 = mul nsw i32 %386, %298
  %431 = add nsw i32 %430, %.0435499
  %432 = sext i32 %431 to i64
  %433 = getelementptr inbounds float, ptr %34, i64 %432
  %434 = mul nsw i32 %386, %299
  %435 = add nsw i32 %434, %.0435499
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds float, ptr %34, i64 %436
  call void @slasda_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef nonnull %19, ptr noundef nonnull %17, ptr noundef nonnull %376, ptr noundef nonnull %377, ptr noundef nonnull %390, ptr noundef nonnull %2, ptr noundef nonnull %394, ptr noundef nonnull %397, ptr noundef nonnull %401, ptr noundef nonnull %405, ptr noundef nonnull %409, ptr noundef nonnull %413, ptr noundef nonnull %417, ptr noundef nonnull %421, ptr noundef nonnull %2, ptr noundef nonnull %425, ptr noundef nonnull %429, ptr noundef nonnull %433, ptr noundef nonnull %437, ptr noundef nonnull %301, ptr noundef %12, ptr noundef nonnull %13) #4
  br label %438

438:                                              ; preds = %385, %378
  %439 = load i32, ptr %13, align 4, !tbaa !5
  %.not475 = icmp eq i32 %439, 0
  br i1 %.not475, label %440, label %.thread488

440:                                              ; preds = %438
  %441 = add nuw nsw i64 %indvars.iv523, 1
  %442 = trunc nuw i64 %441 to i32
  %.pre537 = load i32, ptr %15, align 4, !tbaa !5
  br label %443

443:                                              ; preds = %._crit_edge541, %440
  %indvars.iv.next524.pre-phi = phi i64 [ %.pre542, %._crit_edge541 ], [ %441, %440 ]
  %444 = phi i32 [ %303, %._crit_edge541 ], [ %.pre537, %440 ]
  %.1436 = phi i32 [ %.0435499, %._crit_edge541 ], [ %442, %440 ]
  %.0435.neg = sub i32 0, %.1436
  %445 = sext i32 %444 to i64
  %.not473.not = icmp slt i64 %indvars.iv523, %445
  br i1 %.not473.not, label %302, label %._crit_edge503, !llvm.loop !17

._crit_edge503:                                   ; preds = %443, %._crit_edge
  call void @slascl_(ptr noundef nonnull @.str.9, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b15, ptr noundef nonnull %23, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %3, ptr noundef nonnull %2, ptr noundef nonnull %16) #4
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %154, %._crit_edge503, %162, %159
  %.pr545 = load i32, ptr %2, align 4, !tbaa !5
  br label %446

446:                                              ; preds = %thread-pre-split, %158
  %447 = phi i32 [ %.pr545, %thread-pre-split ], [ %156, %158 ]
  store i32 %447, ptr %15, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %30, i64 4
  %.not477514 = icmp slt i32 %447, 2
  br i1 %.not477514, label %._crit_edge518, label %.lr.ph517.preheader

.lr.ph517.preheader:                              ; preds = %446
  %448 = sext i32 %28 to i64
  %449 = sext i32 %31 to i64
  %invariant.gep546 = getelementptr float, ptr %33, i64 %449
  br label %.lr.ph517

.lr.ph517:                                        ; preds = %.lr.ph517.preheader, %481
  %450 = phi i32 [ %447, %.lr.ph517.preheader ], [ %482, %481 ]
  %indvars.iv526 = phi i64 [ 2, %.lr.ph517.preheader ], [ %indvars.iv.next527, %481 ]
  %451 = add nsw i64 %indvars.iv526, -1
  %452 = getelementptr inbounds float, ptr %26, i64 %451
  %453 = load float, ptr %452, align 4, !tbaa !9
  %454 = load i32, ptr %2, align 4, !tbaa !5
  %455 = sext i32 %454 to i64
  %.not478504 = icmp sgt i64 %indvars.iv526, %455
  %456 = trunc nuw nsw i64 %451 to i32
  br i1 %.not478504, label %._crit_edge510, label %.lr.ph509.preheader

.lr.ph509.preheader:                              ; preds = %.lr.ph517
  %457 = add i32 %454, 1
  %wide.trip.count531 = zext i32 %457 to i64
  br label %.lr.ph509

.lr.ph509:                                        ; preds = %.lr.ph509.preheader, %.lr.ph509
  %indvars.iv528 = phi i64 [ %indvars.iv526, %.lr.ph509.preheader ], [ %indvars.iv.next529, %.lr.ph509 ]
  %.0431507 = phi i32 [ %456, %.lr.ph509.preheader ], [ %.1432, %.lr.ph509 ]
  %.0441506 = phi float [ %453, %.lr.ph509.preheader ], [ %.1442, %.lr.ph509 ]
  %458 = getelementptr inbounds float, ptr %26, i64 %indvars.iv528
  %459 = load float, ptr %458, align 4, !tbaa !9
  %460 = fcmp ogt float %459, %.0441506
  %.1442 = select i1 %460, float %459, float %.0441506
  %461 = trunc nuw nsw i64 %indvars.iv528 to i32
  %.1432 = select i1 %460, i32 %461, i32 %.0431507
  %indvars.iv.next529 = add nuw nsw i64 %indvars.iv528, 1
  %exitcond532.not = icmp eq i64 %indvars.iv.next529, %wide.trip.count531
  br i1 %exitcond532.not, label %._crit_edge510, label %.lr.ph509, !llvm.loop !18

._crit_edge510:                                   ; preds = %.lr.ph509, %.lr.ph517
  %.0441.lcssa = phi float [ %453, %.lr.ph517 ], [ %.1442, %.lr.ph509 ]
  %.0431.lcssa = phi i32 [ %456, %.lr.ph517 ], [ %.1432, %.lr.ph509 ]
  %462 = zext i32 %.0431.lcssa to i64
  %.not479 = icmp eq i64 %451, %462
  br i1 %.not479, label %476, label %463

463:                                              ; preds = %._crit_edge510
  %464 = sext i32 %.0431.lcssa to i64
  %465 = getelementptr inbounds float, ptr %26, i64 %464
  store float %453, ptr %465, align 4, !tbaa !9
  store float %.0441.lcssa, ptr %452, align 4, !tbaa !9
  %466 = load i32, ptr %22, align 4, !tbaa !5
  switch i32 %466, label %481 [
    i32 1, label %467
    i32 2, label %469
  ]

467:                                              ; preds = %463
  %468 = getelementptr inbounds i32, ptr %35, i64 %451
  store i32 %.0431.lcssa, ptr %468, align 4, !tbaa !5
  br label %481

469:                                              ; preds = %463
  %470 = mul nsw i64 %451, %448
  %gep = getelementptr float, ptr %invariant.gep, i64 %470
  %471 = mul nsw i32 %.0431.lcssa, %28
  %472 = sext i32 %471 to i64
  %gep513 = getelementptr float, ptr %invariant.gep, i64 %472
  call void @sswap_(ptr noundef nonnull %2, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep513, ptr noundef nonnull @c__1) #4
  %gep547 = getelementptr float, ptr %invariant.gep546, i64 %451
  %473 = add nsw i32 %.0431.lcssa, %31
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds float, ptr %33, i64 %474
  call void @sswap_(ptr noundef nonnull %2, ptr noundef %gep547, ptr noundef nonnull %8, ptr noundef %475, ptr noundef nonnull %8) #4
  %.pre538 = load i32, ptr %15, align 4, !tbaa !5
  br label %481

476:                                              ; preds = %._crit_edge510
  %477 = load i32, ptr %22, align 4, !tbaa !5
  %478 = icmp eq i32 %477, 1
  br i1 %478, label %479, label %481

479:                                              ; preds = %476
  %480 = getelementptr inbounds i32, ptr %35, i64 %451
  store i32 %456, ptr %480, align 4, !tbaa !5
  br label %481

481:                                              ; preds = %463, %469, %467, %479, %476
  %482 = phi i32 [ %450, %463 ], [ %.pre538, %469 ], [ %450, %467 ], [ %450, %479 ], [ %450, %476 ]
  %indvars.iv.next527 = add nuw nsw i64 %indvars.iv526, 1
  %483 = sext i32 %482 to i64
  %.not477.not = icmp slt i64 %indvars.iv526, %483
  br i1 %.not477.not, label %.lr.ph517, label %._crit_edge518, !llvm.loop !19

._crit_edge518:                                   ; preds = %481, %446
  %484 = load i32, ptr %22, align 4
  %485 = icmp eq i32 %484, 1
  br i1 %485, label %486, label %493

486:                                              ; preds = %._crit_edge518
  %not..not465 = xor i1 %.not465, true
  %487 = select i1 %not..not465, i1 %.not, i1 false
  %488 = load i32, ptr %2, align 4, !tbaa !5
  %489 = sext i32 %488 to i64
  %490 = getelementptr inbounds i32, ptr %35, i64 %489
  br i1 %487, label %491, label %492

491:                                              ; preds = %486
  store i32 1, ptr %490, align 4, !tbaa !5
  br label %.thread488

492:                                              ; preds = %486
  store i32 0, ptr %490, align 4, !tbaa !5
  br label %.thread488

493:                                              ; preds = %._crit_edge518
  %494 = icmp eq i32 %484, 2
  %or.cond = and i1 %.not465, %494
  br i1 %or.cond, label %495, label %.thread488

495:                                              ; preds = %493
  %496 = load i32, ptr %2, align 4, !tbaa !5
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds float, ptr %36, i64 %497
  call void @slasr_(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %11, ptr noundef nonnull %498, ptr noundef %5, ptr noundef nonnull %6) #4
  br label %.thread488

.thread488:                                       ; preds = %438, %492, %491, %493, %495, %187, %68, %100, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #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

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

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

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

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

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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, !15}
!14 = !{!"llvm.loop.isvectorized", i32 1}
!15 = !{!"llvm.loop.unroll.runtime.disable"}
!16 = distinct !{!16, !12, !15, !14}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}


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