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

; 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 [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_b6 = external hidden global float, align 4
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i64, align 8
@c_b11 = external hidden global float, align 4
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @slalsd_(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) #0 {
  %14 = alloca i32, align 4
  %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 i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca float, align 4
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca float, align 4
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca float, align 4
  %42 = alloca i64, align 8
  %43 = alloca float, align 4
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca float, align 4
  %49 = alloca i64, align 8
  %50 = alloca float, align 4
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca float, align 4
  %54 = alloca i64, align 8
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca float, align 4
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = 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
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #4
  %71 = load ptr, ptr %19, align 8, !tbaa !5
  %72 = getelementptr inbounds float, ptr %71, i32 -1
  store ptr %72, ptr %19, align 8, !tbaa !5
  %73 = load ptr, ptr %20, align 8, !tbaa !5
  %74 = getelementptr inbounds float, ptr %73, i32 -1
  store ptr %74, ptr %20, align 8, !tbaa !5
  %75 = load ptr, ptr %22, align 8, !tbaa !5
  %76 = load i64, ptr %75, align 8, !tbaa !9
  store i64 %76, ptr %28, align 8, !tbaa !9
  %77 = load i64, ptr %28, align 8, !tbaa !9
  %78 = add nsw i64 1, %77
  store i64 %78, ptr %29, align 8, !tbaa !9
  %79 = load i64, ptr %29, align 8, !tbaa !9
  %80 = load ptr, ptr %21, align 8, !tbaa !5
  %81 = sub i64 0, %79
  %82 = getelementptr inbounds float, ptr %80, i64 %81
  store ptr %82, ptr %21, align 8, !tbaa !5
  %83 = load ptr, ptr %25, align 8, !tbaa !5
  %84 = getelementptr inbounds float, ptr %83, i32 -1
  store ptr %84, ptr %25, align 8, !tbaa !5
  %85 = load ptr, ptr %26, align 8, !tbaa !5
  %86 = getelementptr inbounds i64, ptr %85, i32 -1
  store ptr %86, ptr %26, align 8, !tbaa !5
  %87 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 0, ptr %87, align 8, !tbaa !9
  %88 = load ptr, ptr %17, align 8, !tbaa !5
  %89 = load i64, ptr %88, align 8, !tbaa !9
  %90 = icmp slt i64 %89, 0
  br i1 %90, label %91, label %93

91:                                               ; preds = %13
  %92 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -3, ptr %92, align 8, !tbaa !9
  br label %113

93:                                               ; preds = %13
  %94 = load ptr, ptr %18, align 8, !tbaa !5
  %95 = load i64, ptr %94, align 8, !tbaa !9
  %96 = icmp slt i64 %95, 1
  br i1 %96, label %97, label %99

97:                                               ; preds = %93
  %98 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -4, ptr %98, align 8, !tbaa !9
  br label %112

99:                                               ; preds = %93
  %100 = load ptr, ptr %22, align 8, !tbaa !5
  %101 = load i64, ptr %100, align 8, !tbaa !9
  %102 = icmp slt i64 %101, 1
  br i1 %102, label %109, label %103

103:                                              ; preds = %99
  %104 = load ptr, ptr %22, align 8, !tbaa !5
  %105 = load i64, ptr %104, align 8, !tbaa !9
  %106 = load ptr, ptr %17, align 8, !tbaa !5
  %107 = load i64, ptr %106, align 8, !tbaa !9
  %108 = icmp slt i64 %105, %107
  br i1 %108, label %109, label %111

109:                                              ; preds = %103, %99
  %110 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -8, ptr %110, align 8, !tbaa !9
  br label %111

111:                                              ; preds = %109, %103
  br label %112

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

113:                                              ; preds = %112, %91
  %114 = load ptr, ptr %27, align 8, !tbaa !5
  %115 = load i64, ptr %114, align 8, !tbaa !9
  %116 = icmp ne i64 %115, 0
  br i1 %116, label %117, label %122

117:                                              ; preds = %113
  %118 = load ptr, ptr %27, align 8, !tbaa !5
  %119 = load i64, ptr %118, align 8, !tbaa !9
  %120 = sub nsw i64 0, %119
  store i64 %120, ptr %30, align 8, !tbaa !9
  %121 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %30)
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

122:                                              ; preds = %113
  %123 = call double @slamch_(ptr noundef @.str.1)
  %124 = fptrunc double %123 to float
  store float %124, ptr %48, align 4, !tbaa !11
  %125 = load ptr, ptr %23, align 8, !tbaa !5
  %126 = load float, ptr %125, align 4, !tbaa !11
  %127 = fcmp ole float %126, 0.000000e+00
  br i1 %127, label %132, label %128

128:                                              ; preds = %122
  %129 = load ptr, ptr %23, align 8, !tbaa !5
  %130 = load float, ptr %129, align 4, !tbaa !11
  %131 = fcmp oge float %130, 1.000000e+00
  br i1 %131, label %132, label %134

132:                                              ; preds = %128, %122
  %133 = load float, ptr %48, align 4, !tbaa !11
  store float %133, ptr %53, align 4, !tbaa !11
  br label %137

134:                                              ; preds = %128
  %135 = load ptr, ptr %23, align 8, !tbaa !5
  %136 = load float, ptr %135, align 4, !tbaa !11
  store float %136, ptr %53, align 4, !tbaa !11
  br label %137

137:                                              ; preds = %134, %132
  %138 = load ptr, ptr %24, align 8, !tbaa !5
  store i64 0, ptr %138, align 8, !tbaa !9
  %139 = load ptr, ptr %17, align 8, !tbaa !5
  %140 = load i64, ptr %139, align 8, !tbaa !9
  %141 = icmp eq i64 %140, 0
  br i1 %141, label %142, label %143

142:                                              ; preds = %137
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

143:                                              ; preds = %137
  %144 = load ptr, ptr %17, align 8, !tbaa !5
  %145 = load i64, ptr %144, align 8, !tbaa !9
  %146 = icmp eq i64 %145, 1
  br i1 %146, label %147, label %190

147:                                              ; preds = %143
  %148 = load ptr, ptr %19, align 8, !tbaa !5
  %149 = getelementptr inbounds float, ptr %148, i64 1
  %150 = load float, ptr %149, align 4, !tbaa !11
  %151 = fcmp oeq float %150, 0.000000e+00
  br i1 %151, label %152, label %159

152:                                              ; preds = %147
  %153 = load ptr, ptr %18, align 8, !tbaa !5
  %154 = load ptr, ptr %21, align 8, !tbaa !5
  %155 = load i64, ptr %29, align 8, !tbaa !9
  %156 = getelementptr inbounds float, ptr %154, i64 %155
  %157 = load ptr, ptr %22, align 8, !tbaa !5
  %158 = call i32 @slaset_(ptr noundef @.str.2, ptr noundef @c__1, ptr noundef %153, ptr noundef @c_b6, ptr noundef @c_b6, ptr noundef %156, ptr noundef %157)
  br label %189

159:                                              ; preds = %147
  %160 = load ptr, ptr %24, align 8, !tbaa !5
  store i64 1, ptr %160, align 8, !tbaa !9
  %161 = load ptr, ptr %19, align 8, !tbaa !5
  %162 = getelementptr inbounds float, ptr %161, i64 1
  %163 = load ptr, ptr %18, align 8, !tbaa !5
  %164 = load ptr, ptr %21, align 8, !tbaa !5
  %165 = load i64, ptr %29, align 8, !tbaa !9
  %166 = getelementptr inbounds float, ptr %164, i64 %165
  %167 = load ptr, ptr %22, align 8, !tbaa !5
  %168 = load ptr, ptr %27, align 8, !tbaa !5
  %169 = call i32 @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %162, ptr noundef @c_b11, ptr noundef @c__1, ptr noundef %163, ptr noundef %166, ptr noundef %167, ptr noundef %168)
  %170 = load ptr, ptr %19, align 8, !tbaa !5
  %171 = getelementptr inbounds float, ptr %170, i64 1
  %172 = load float, ptr %171, align 4, !tbaa !11
  %173 = fcmp oge float %172, 0.000000e+00
  br i1 %173, label %174, label %178

174:                                              ; preds = %159
  %175 = load ptr, ptr %19, align 8, !tbaa !5
  %176 = getelementptr inbounds float, ptr %175, i64 1
  %177 = load float, ptr %176, align 4, !tbaa !11
  br label %183

178:                                              ; preds = %159
  %179 = load ptr, ptr %19, align 8, !tbaa !5
  %180 = getelementptr inbounds float, ptr %179, i64 1
  %181 = load float, ptr %180, align 4, !tbaa !11
  %182 = fneg float %181
  br label %183

183:                                              ; preds = %178, %174
  %184 = phi float [ %177, %174 ], [ %182, %178 ]
  %185 = fpext float %184 to double
  %186 = fptrunc double %185 to float
  %187 = load ptr, ptr %19, align 8, !tbaa !5
  %188 = getelementptr inbounds float, ptr %187, i64 1
  store float %186, ptr %188, align 4, !tbaa !11
  br label %189

189:                                              ; preds = %183, %152
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

190:                                              ; preds = %143
  br label %191

191:                                              ; preds = %190
  %192 = load ptr, ptr %15, align 8, !tbaa !5
  %193 = load i8, ptr %192, align 1, !tbaa !13
  %194 = zext i8 %193 to i32
  %195 = icmp eq i32 %194, 76
  br i1 %195, label %196, label %325

196:                                              ; preds = %191
  %197 = load ptr, ptr %17, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !9
  %199 = sub nsw i64 %198, 1
  store i64 %199, ptr %30, align 8, !tbaa !9
  store i64 1, ptr %34, align 8, !tbaa !9
  br label %200

200:                                              ; preds = %266, %196
  %201 = load i64, ptr %34, align 8, !tbaa !9
  %202 = load i64, ptr %30, align 8, !tbaa !9
  %203 = icmp sle i64 %201, %202
  br i1 %203, label %204, label %269

204:                                              ; preds = %200
  %205 = load ptr, ptr %19, align 8, !tbaa !5
  %206 = load i64, ptr %34, align 8, !tbaa !9
  %207 = getelementptr inbounds float, ptr %205, i64 %206
  %208 = load ptr, ptr %20, align 8, !tbaa !5
  %209 = load i64, ptr %34, align 8, !tbaa !9
  %210 = getelementptr inbounds float, ptr %208, i64 %209
  %211 = call i32 @slartg_(ptr noundef %207, ptr noundef %210, ptr noundef %41, ptr noundef %43, ptr noundef %37)
  %212 = load float, ptr %37, align 4, !tbaa !11
  %213 = load ptr, ptr %19, align 8, !tbaa !5
  %214 = load i64, ptr %34, align 8, !tbaa !9
  %215 = getelementptr inbounds float, ptr %213, i64 %214
  store float %212, ptr %215, align 4, !tbaa !11
  %216 = load float, ptr %43, align 4, !tbaa !11
  %217 = load ptr, ptr %19, align 8, !tbaa !5
  %218 = load i64, ptr %34, align 8, !tbaa !9
  %219 = add nsw i64 %218, 1
  %220 = getelementptr inbounds float, ptr %217, i64 %219
  %221 = load float, ptr %220, align 4, !tbaa !11
  %222 = fmul float %216, %221
  %223 = load ptr, ptr %20, align 8, !tbaa !5
  %224 = load i64, ptr %34, align 8, !tbaa !9
  %225 = getelementptr inbounds float, ptr %223, i64 %224
  store float %222, ptr %225, align 4, !tbaa !11
  %226 = load float, ptr %41, align 4, !tbaa !11
  %227 = load ptr, ptr %19, align 8, !tbaa !5
  %228 = load i64, ptr %34, align 8, !tbaa !9
  %229 = add nsw i64 %228, 1
  %230 = getelementptr inbounds float, ptr %227, i64 %229
  %231 = load float, ptr %230, align 4, !tbaa !11
  %232 = fmul float %226, %231
  %233 = load ptr, ptr %19, align 8, !tbaa !5
  %234 = load i64, ptr %34, align 8, !tbaa !9
  %235 = add nsw i64 %234, 1
  %236 = getelementptr inbounds float, ptr %233, i64 %235
  store float %232, ptr %236, align 4, !tbaa !11
  %237 = load ptr, ptr %18, align 8, !tbaa !5
  %238 = load i64, ptr %237, align 8, !tbaa !9
  %239 = icmp eq i64 %238, 1
  br i1 %239, label %240, label %253

240:                                              ; preds = %204
  %241 = load ptr, ptr %21, align 8, !tbaa !5
  %242 = load i64, ptr %34, align 8, !tbaa !9
  %243 = load i64, ptr %28, align 8, !tbaa !9
  %244 = add nsw i64 %242, %243
  %245 = getelementptr inbounds float, ptr %241, i64 %244
  %246 = load ptr, ptr %21, align 8, !tbaa !5
  %247 = load i64, ptr %34, align 8, !tbaa !9
  %248 = add nsw i64 %247, 1
  %249 = load i64, ptr %28, align 8, !tbaa !9
  %250 = add nsw i64 %248, %249
  %251 = getelementptr inbounds float, ptr %246, i64 %250
  %252 = call i32 @f2c_srot(ptr noundef @c__1, ptr noundef %245, ptr noundef @c__1, ptr noundef %251, ptr noundef @c__1, ptr noundef %41, ptr noundef %43)
  br label %265

253:                                              ; preds = %204
  %254 = load float, ptr %41, align 4, !tbaa !11
  %255 = load ptr, ptr %25, align 8, !tbaa !5
  %256 = load i64, ptr %34, align 8, !tbaa !9
  %257 = shl i64 %256, 1
  %258 = sub nsw i64 %257, 1
  %259 = getelementptr inbounds float, ptr %255, i64 %258
  store float %254, ptr %259, align 4, !tbaa !11
  %260 = load float, ptr %43, align 4, !tbaa !11
  %261 = load ptr, ptr %25, align 8, !tbaa !5
  %262 = load i64, ptr %34, align 8, !tbaa !9
  %263 = mul nsw i64 %262, 2
  %264 = getelementptr inbounds float, ptr %261, i64 %263
  store float %260, ptr %264, align 4, !tbaa !11
  br label %265

265:                                              ; preds = %253, %240
  br label %266

266:                                              ; preds = %265
  %267 = load i64, ptr %34, align 8, !tbaa !9
  %268 = add nsw i64 %267, 1
  store i64 %268, ptr %34, align 8, !tbaa !9
  br label %200, !llvm.loop !14

269:                                              ; preds = %200
  %270 = load ptr, ptr %18, align 8, !tbaa !5
  %271 = load i64, ptr %270, align 8, !tbaa !9
  %272 = icmp sgt i64 %271, 1
  br i1 %272, label %273, label %324

273:                                              ; preds = %269
  %274 = load ptr, ptr %18, align 8, !tbaa !5
  %275 = load i64, ptr %274, align 8, !tbaa !9
  store i64 %275, ptr %30, align 8, !tbaa !9
  store i64 1, ptr %34, align 8, !tbaa !9
  br label %276

276:                                              ; preds = %320, %273
  %277 = load i64, ptr %34, align 8, !tbaa !9
  %278 = load i64, ptr %30, align 8, !tbaa !9
  %279 = icmp sle i64 %277, %278
  br i1 %279, label %280, label %323

280:                                              ; preds = %276
  %281 = load ptr, ptr %17, align 8, !tbaa !5
  %282 = load i64, ptr %281, align 8, !tbaa !9
  %283 = sub nsw i64 %282, 1
  store i64 %283, ptr %31, align 8, !tbaa !9
  store i64 1, ptr %35, align 8, !tbaa !9
  br label %284

284:                                              ; preds = %316, %280
  %285 = load i64, ptr %35, align 8, !tbaa !9
  %286 = load i64, ptr %31, align 8, !tbaa !9
  %287 = icmp sle i64 %285, %286
  br i1 %287, label %288, label %319

288:                                              ; preds = %284
  %289 = load ptr, ptr %25, align 8, !tbaa !5
  %290 = load i64, ptr %35, align 8, !tbaa !9
  %291 = shl i64 %290, 1
  %292 = sub nsw i64 %291, 1
  %293 = getelementptr inbounds float, ptr %289, i64 %292
  %294 = load float, ptr %293, align 4, !tbaa !11
  store float %294, ptr %41, align 4, !tbaa !11
  %295 = load ptr, ptr %25, align 8, !tbaa !5
  %296 = load i64, ptr %35, align 8, !tbaa !9
  %297 = mul nsw i64 %296, 2
  %298 = getelementptr inbounds float, ptr %295, i64 %297
  %299 = load float, ptr %298, align 4, !tbaa !11
  store float %299, ptr %43, align 4, !tbaa !11
  %300 = load ptr, ptr %21, align 8, !tbaa !5
  %301 = load i64, ptr %35, align 8, !tbaa !9
  %302 = load i64, ptr %34, align 8, !tbaa !9
  %303 = load i64, ptr %28, align 8, !tbaa !9
  %304 = mul nsw i64 %302, %303
  %305 = add nsw i64 %301, %304
  %306 = getelementptr inbounds float, ptr %300, i64 %305
  %307 = load ptr, ptr %21, align 8, !tbaa !5
  %308 = load i64, ptr %35, align 8, !tbaa !9
  %309 = add nsw i64 %308, 1
  %310 = load i64, ptr %34, align 8, !tbaa !9
  %311 = load i64, ptr %28, align 8, !tbaa !9
  %312 = mul nsw i64 %310, %311
  %313 = add nsw i64 %309, %312
  %314 = getelementptr inbounds float, ptr %307, i64 %313
  %315 = call i32 @f2c_srot(ptr noundef @c__1, ptr noundef %306, ptr noundef @c__1, ptr noundef %314, ptr noundef @c__1, ptr noundef %41, ptr noundef %43)
  br label %316

316:                                              ; preds = %288
  %317 = load i64, ptr %35, align 8, !tbaa !9
  %318 = add nsw i64 %317, 1
  store i64 %318, ptr %35, align 8, !tbaa !9
  br label %284, !llvm.loop !16

319:                                              ; preds = %284
  br label %320

320:                                              ; preds = %319
  %321 = load i64, ptr %34, align 8, !tbaa !9
  %322 = add nsw i64 %321, 1
  store i64 %322, ptr %34, align 8, !tbaa !9
  br label %276, !llvm.loop !17

323:                                              ; preds = %276
  br label %324

324:                                              ; preds = %323, %269
  br label %325

325:                                              ; preds = %324, %191
  %326 = load ptr, ptr %17, align 8, !tbaa !5
  %327 = load i64, ptr %326, align 8, !tbaa !9
  %328 = sub nsw i64 %327, 1
  store i64 %328, ptr %46, align 8, !tbaa !9
  %329 = load ptr, ptr %17, align 8, !tbaa !5
  %330 = load ptr, ptr %19, align 8, !tbaa !5
  %331 = getelementptr inbounds float, ptr %330, i64 1
  %332 = load ptr, ptr %20, align 8, !tbaa !5
  %333 = getelementptr inbounds float, ptr %332, i64 1
  %334 = call double @slanst_(ptr noundef @.str.4, ptr noundef %329, ptr noundef %331, ptr noundef %333)
  %335 = fptrunc double %334 to float
  store float %335, ptr %66, align 4, !tbaa !11
  %336 = load float, ptr %66, align 4, !tbaa !11
  %337 = fcmp oeq float %336, 0.000000e+00
  br i1 %337, label %338, label %346

338:                                              ; preds = %325
  %339 = load ptr, ptr %17, align 8, !tbaa !5
  %340 = load ptr, ptr %18, align 8, !tbaa !5
  %341 = load ptr, ptr %21, align 8, !tbaa !5
  %342 = load i64, ptr %29, align 8, !tbaa !9
  %343 = getelementptr inbounds float, ptr %341, i64 %342
  %344 = load ptr, ptr %22, align 8, !tbaa !5
  %345 = call i32 @slaset_(ptr noundef @.str.2, ptr noundef %339, ptr noundef %340, ptr noundef @c_b6, ptr noundef @c_b6, ptr noundef %343, ptr noundef %344)
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

346:                                              ; preds = %325
  %347 = load ptr, ptr %17, align 8, !tbaa !5
  %348 = load ptr, ptr %19, align 8, !tbaa !5
  %349 = getelementptr inbounds float, ptr %348, i64 1
  %350 = load ptr, ptr %17, align 8, !tbaa !5
  %351 = load ptr, ptr %27, align 8, !tbaa !5
  %352 = call i32 @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %66, ptr noundef @c_b11, ptr noundef %347, ptr noundef @c__1, ptr noundef %349, ptr noundef %350, ptr noundef %351)
  %353 = load ptr, ptr %20, align 8, !tbaa !5
  %354 = getelementptr inbounds float, ptr %353, i64 1
  %355 = load ptr, ptr %27, align 8, !tbaa !5
  %356 = call i32 @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %66, ptr noundef @c_b11, ptr noundef %46, ptr noundef @c__1, ptr noundef %354, ptr noundef %46, ptr noundef %355)
  %357 = load ptr, ptr %17, align 8, !tbaa !5
  %358 = load i64, ptr %357, align 8, !tbaa !9
  %359 = load ptr, ptr %16, align 8, !tbaa !5
  %360 = load i64, ptr %359, align 8, !tbaa !9
  %361 = icmp sle i64 %358, %360
  br i1 %361, label %362, label %511

362:                                              ; preds = %346
  %363 = load ptr, ptr %17, align 8, !tbaa !5
  %364 = load i64, ptr %363, align 8, !tbaa !9
  %365 = load ptr, ptr %17, align 8, !tbaa !5
  %366 = load i64, ptr %365, align 8, !tbaa !9
  %367 = mul nsw i64 %364, %366
  %368 = add nsw i64 %367, 1
  store i64 %368, ptr %62, align 8, !tbaa !9
  %369 = load ptr, ptr %17, align 8, !tbaa !5
  %370 = load ptr, ptr %17, align 8, !tbaa !5
  %371 = load ptr, ptr %25, align 8, !tbaa !5
  %372 = getelementptr inbounds float, ptr %371, i64 1
  %373 = load ptr, ptr %17, align 8, !tbaa !5
  %374 = call i32 @slaset_(ptr noundef @.str.2, ptr noundef %369, ptr noundef %370, ptr noundef @c_b6, ptr noundef @c_b11, ptr noundef %372, ptr noundef %373)
  %375 = load ptr, ptr %17, align 8, !tbaa !5
  %376 = load ptr, ptr %17, align 8, !tbaa !5
  %377 = load ptr, ptr %18, align 8, !tbaa !5
  %378 = load ptr, ptr %19, align 8, !tbaa !5
  %379 = getelementptr inbounds float, ptr %378, i64 1
  %380 = load ptr, ptr %20, align 8, !tbaa !5
  %381 = getelementptr inbounds float, ptr %380, i64 1
  %382 = load ptr, ptr %25, align 8, !tbaa !5
  %383 = getelementptr inbounds float, ptr %382, i64 1
  %384 = load ptr, ptr %17, align 8, !tbaa !5
  %385 = load ptr, ptr %25, align 8, !tbaa !5
  %386 = getelementptr inbounds float, ptr %385, i64 1
  %387 = load ptr, ptr %17, align 8, !tbaa !5
  %388 = load ptr, ptr %21, align 8, !tbaa !5
  %389 = load i64, ptr %29, align 8, !tbaa !9
  %390 = getelementptr inbounds float, ptr %388, i64 %389
  %391 = load ptr, ptr %22, align 8, !tbaa !5
  %392 = load ptr, ptr %25, align 8, !tbaa !5
  %393 = load i64, ptr %62, align 8, !tbaa !9
  %394 = getelementptr inbounds float, ptr %392, i64 %393
  %395 = load ptr, ptr %27, align 8, !tbaa !5
  %396 = call i32 @slasdq_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef %375, ptr noundef %376, ptr noundef @c__0, ptr noundef %377, ptr noundef %379, ptr noundef %381, ptr noundef %383, ptr noundef %384, ptr noundef %386, ptr noundef %387, ptr noundef %390, ptr noundef %391, ptr noundef %394, ptr noundef %395)
  %397 = load ptr, ptr %27, align 8, !tbaa !5
  %398 = load i64, ptr %397, align 8, !tbaa !9
  %399 = icmp ne i64 %398, 0
  br i1 %399, label %400, label %401

400:                                              ; preds = %362
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

401:                                              ; preds = %362
  %402 = load float, ptr %53, align 4, !tbaa !11
  %403 = fpext float %402 to double
  %404 = load ptr, ptr %19, align 8, !tbaa !5
  %405 = load ptr, ptr %17, align 8, !tbaa !5
  %406 = load ptr, ptr %19, align 8, !tbaa !5
  %407 = getelementptr inbounds float, ptr %406, i64 1
  %408 = call i64 @f2c_isamax(ptr noundef %405, ptr noundef %407, ptr noundef @c__1)
  %409 = getelementptr inbounds float, ptr %404, i64 %408
  %410 = load float, ptr %409, align 4, !tbaa !11
  store float %410, ptr %32, align 4, !tbaa !11
  %411 = load float, ptr %32, align 4, !tbaa !11
  %412 = fcmp oge float %411, 0.000000e+00
  br i1 %412, label %413, label %415

413:                                              ; preds = %401
  %414 = load float, ptr %32, align 4, !tbaa !11
  br label %418

415:                                              ; preds = %401
  %416 = load float, ptr %32, align 4, !tbaa !11
  %417 = fneg float %416
  br label %418

418:                                              ; preds = %415, %413
  %419 = phi float [ %414, %413 ], [ %417, %415 ]
  %420 = fpext float %419 to double
  %421 = fmul double %403, %420
  %422 = fptrunc double %421 to float
  store float %422, ptr %50, align 4, !tbaa !11
  %423 = load ptr, ptr %17, align 8, !tbaa !5
  %424 = load i64, ptr %423, align 8, !tbaa !9
  store i64 %424, ptr %30, align 8, !tbaa !9
  store i64 1, ptr %34, align 8, !tbaa !9
  br label %425

425:                                              ; preds = %462, %418
  %426 = load i64, ptr %34, align 8, !tbaa !9
  %427 = load i64, ptr %30, align 8, !tbaa !9
  %428 = icmp sle i64 %426, %427
  br i1 %428, label %429, label %465

429:                                              ; preds = %425
  %430 = load ptr, ptr %19, align 8, !tbaa !5
  %431 = load i64, ptr %34, align 8, !tbaa !9
  %432 = getelementptr inbounds float, ptr %430, i64 %431
  %433 = load float, ptr %432, align 4, !tbaa !11
  %434 = load float, ptr %50, align 4, !tbaa !11
  %435 = fcmp ole float %433, %434
  br i1 %435, label %436, label %445

436:                                              ; preds = %429
  %437 = load ptr, ptr %18, align 8, !tbaa !5
  %438 = load ptr, ptr %21, align 8, !tbaa !5
  %439 = load i64, ptr %34, align 8, !tbaa !9
  %440 = load i64, ptr %28, align 8, !tbaa !9
  %441 = add nsw i64 %439, %440
  %442 = getelementptr inbounds float, ptr %438, i64 %441
  %443 = load ptr, ptr %22, align 8, !tbaa !5
  %444 = call i32 @slaset_(ptr noundef @.str.2, ptr noundef @c__1, ptr noundef %437, ptr noundef @c_b6, ptr noundef @c_b6, ptr noundef %442, ptr noundef %443)
  br label %461

445:                                              ; preds = %429
  %446 = load ptr, ptr %19, align 8, !tbaa !5
  %447 = load i64, ptr %34, align 8, !tbaa !9
  %448 = getelementptr inbounds float, ptr %446, i64 %447
  %449 = load ptr, ptr %18, align 8, !tbaa !5
  %450 = load ptr, ptr %21, align 8, !tbaa !5
  %451 = load i64, ptr %34, align 8, !tbaa !9
  %452 = load i64, ptr %28, align 8, !tbaa !9
  %453 = add nsw i64 %451, %452
  %454 = getelementptr inbounds float, ptr %450, i64 %453
  %455 = load ptr, ptr %22, align 8, !tbaa !5
  %456 = load ptr, ptr %27, align 8, !tbaa !5
  %457 = call i32 @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %448, ptr noundef @c_b11, ptr noundef @c__1, ptr noundef %449, ptr noundef %454, ptr noundef %455, ptr noundef %456)
  %458 = load ptr, ptr %24, align 8, !tbaa !5
  %459 = load i64, ptr %458, align 8, !tbaa !9
  %460 = add nsw i64 %459, 1
  store i64 %460, ptr %458, align 8, !tbaa !9
  br label %461

461:                                              ; preds = %445, %436
  br label %462

462:                                              ; preds = %461
  %463 = load i64, ptr %34, align 8, !tbaa !9
  %464 = add nsw i64 %463, 1
  store i64 %464, ptr %34, align 8, !tbaa !9
  br label %425, !llvm.loop !18

465:                                              ; preds = %425
  %466 = load ptr, ptr %17, align 8, !tbaa !5
  %467 = load ptr, ptr %18, align 8, !tbaa !5
  %468 = load ptr, ptr %17, align 8, !tbaa !5
  %469 = load ptr, ptr %25, align 8, !tbaa !5
  %470 = getelementptr inbounds float, ptr %469, i64 1
  %471 = load ptr, ptr %17, align 8, !tbaa !5
  %472 = load ptr, ptr %21, align 8, !tbaa !5
  %473 = load i64, ptr %29, align 8, !tbaa !9
  %474 = getelementptr inbounds float, ptr %472, i64 %473
  %475 = load ptr, ptr %22, align 8, !tbaa !5
  %476 = load ptr, ptr %25, align 8, !tbaa !5
  %477 = load i64, ptr %62, align 8, !tbaa !9
  %478 = getelementptr inbounds float, ptr %476, i64 %477
  %479 = load ptr, ptr %17, align 8, !tbaa !5
  %480 = call i32 @f2c_sgemm(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %466, ptr noundef %467, ptr noundef %468, ptr noundef @c_b11, ptr noundef %470, ptr noundef %471, ptr noundef %474, ptr noundef %475, ptr noundef @c_b6, ptr noundef %478, ptr noundef %479)
  %481 = load ptr, ptr %17, align 8, !tbaa !5
  %482 = load ptr, ptr %18, align 8, !tbaa !5
  %483 = load ptr, ptr %25, align 8, !tbaa !5
  %484 = load i64, ptr %62, align 8, !tbaa !9
  %485 = getelementptr inbounds float, ptr %483, i64 %484
  %486 = load ptr, ptr %17, align 8, !tbaa !5
  %487 = load ptr, ptr %21, align 8, !tbaa !5
  %488 = load i64, ptr %29, align 8, !tbaa !9
  %489 = getelementptr inbounds float, ptr %487, i64 %488
  %490 = load ptr, ptr %22, align 8, !tbaa !5
  %491 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %481, ptr noundef %482, ptr noundef %485, ptr noundef %486, ptr noundef %489, ptr noundef %490)
  %492 = load ptr, ptr %17, align 8, !tbaa !5
  %493 = load ptr, ptr %19, align 8, !tbaa !5
  %494 = getelementptr inbounds float, ptr %493, i64 1
  %495 = load ptr, ptr %17, align 8, !tbaa !5
  %496 = load ptr, ptr %27, align 8, !tbaa !5
  %497 = call i32 @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b11, ptr noundef %66, ptr noundef %492, ptr noundef @c__1, ptr noundef %494, ptr noundef %495, ptr noundef %496)
  %498 = load ptr, ptr %17, align 8, !tbaa !5
  %499 = load ptr, ptr %19, align 8, !tbaa !5
  %500 = getelementptr inbounds float, ptr %499, i64 1
  %501 = load ptr, ptr %27, align 8, !tbaa !5
  %502 = call i32 @slasrt_(ptr noundef @.str.8, ptr noundef %498, ptr noundef %500, ptr noundef %501)
  %503 = load ptr, ptr %17, align 8, !tbaa !5
  %504 = load ptr, ptr %18, align 8, !tbaa !5
  %505 = load ptr, ptr %21, align 8, !tbaa !5
  %506 = load i64, ptr %29, align 8, !tbaa !9
  %507 = getelementptr inbounds float, ptr %505, i64 %506
  %508 = load ptr, ptr %22, align 8, !tbaa !5
  %509 = load ptr, ptr %27, align 8, !tbaa !5
  %510 = call i32 @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %66, ptr noundef @c_b11, ptr noundef %503, ptr noundef %504, ptr noundef %507, ptr noundef %508, ptr noundef %509)
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

511:                                              ; preds = %346
  %512 = load ptr, ptr %17, align 8, !tbaa !5
  %513 = load i64, ptr %512, align 8, !tbaa !9
  %514 = sitofp i64 %513 to float
  %515 = load ptr, ptr %16, align 8, !tbaa !5
  %516 = load i64, ptr %515, align 8, !tbaa !9
  %517 = add nsw i64 %516, 1
  %518 = sitofp i64 %517 to float
  %519 = fdiv float %514, %518
  %520 = fpext float %519 to double
  %521 = call double @log(double noundef %520) #4
  %522 = call double @log(double noundef 2.000000e+00) #4
  %523 = fdiv double %521, %522
  %524 = fptosi double %523 to i64
  %525 = add nsw i64 %524, 1
  store i64 %525, ptr %56, align 8, !tbaa !9
  %526 = load ptr, ptr %16, align 8, !tbaa !5
  %527 = load i64, ptr %526, align 8, !tbaa !9
  %528 = add nsw i64 %527, 1
  store i64 %528, ptr %69, align 8, !tbaa !9
  store i64 1, ptr %39, align 8, !tbaa !9
  %529 = load ptr, ptr %16, align 8, !tbaa !5
  %530 = load i64, ptr %529, align 8, !tbaa !9
  %531 = load ptr, ptr %17, align 8, !tbaa !5
  %532 = load i64, ptr %531, align 8, !tbaa !9
  %533 = mul nsw i64 %530, %532
  %534 = add nsw i64 %533, 1
  store i64 %534, ptr %45, align 8, !tbaa !9
  %535 = load i64, ptr %45, align 8, !tbaa !9
  %536 = load i64, ptr %69, align 8, !tbaa !9
  %537 = load ptr, ptr %17, align 8, !tbaa !5
  %538 = load i64, ptr %537, align 8, !tbaa !9
  %539 = mul nsw i64 %536, %538
  %540 = add nsw i64 %535, %539
  store i64 %540, ptr %51, align 8, !tbaa !9
  %541 = load i64, ptr %51, align 8, !tbaa !9
  %542 = load i64, ptr %56, align 8, !tbaa !9
  %543 = load ptr, ptr %17, align 8, !tbaa !5
  %544 = load i64, ptr %543, align 8, !tbaa !9
  %545 = mul nsw i64 %542, %544
  %546 = add nsw i64 %541, %545
  store i64 %546, ptr %52, align 8, !tbaa !9
  %547 = load i64, ptr %52, align 8, !tbaa !9
  %548 = load i64, ptr %56, align 8, !tbaa !9
  %549 = load ptr, ptr %17, align 8, !tbaa !5
  %550 = load i64, ptr %549, align 8, !tbaa !9
  %551 = mul nsw i64 %548, %550
  %552 = shl i64 %551, 1
  %553 = add nsw i64 %547, %552
  store i64 %553, ptr %40, align 8, !tbaa !9
  %554 = load i64, ptr %40, align 8, !tbaa !9
  %555 = load i64, ptr %56, align 8, !tbaa !9
  %556 = load ptr, ptr %17, align 8, !tbaa !5
  %557 = load i64, ptr %556, align 8, !tbaa !9
  %558 = mul nsw i64 %555, %557
  %559 = add nsw i64 %554, %558
  store i64 %559, ptr %33, align 8, !tbaa !9
  %560 = load i64, ptr %33, align 8, !tbaa !9
  %561 = load ptr, ptr %17, align 8, !tbaa !5
  %562 = load i64, ptr %561, align 8, !tbaa !9
  %563 = add nsw i64 %560, %562
  store i64 %563, ptr %38, align 8, !tbaa !9
  %564 = load i64, ptr %38, align 8, !tbaa !9
  %565 = load ptr, ptr %17, align 8, !tbaa !5
  %566 = load i64, ptr %565, align 8, !tbaa !9
  %567 = add nsw i64 %564, %566
  store i64 %567, ptr %59, align 8, !tbaa !9
  %568 = load i64, ptr %59, align 8, !tbaa !9
  %569 = load i64, ptr %56, align 8, !tbaa !9
  %570 = shl i64 %569, 1
  %571 = load ptr, ptr %17, align 8, !tbaa !5
  %572 = load i64, ptr %571, align 8, !tbaa !9
  %573 = mul nsw i64 %570, %572
  %574 = add nsw i64 %568, %573
  store i64 %574, ptr %67, align 8, !tbaa !9
  %575 = load i64, ptr %67, align 8, !tbaa !9
  %576 = load i64, ptr %56, align 8, !tbaa !9
  %577 = shl i64 %576, 1
  %578 = load ptr, ptr %17, align 8, !tbaa !5
  %579 = load i64, ptr %578, align 8, !tbaa !9
  %580 = mul nsw i64 %577, %579
  %581 = add nsw i64 %575, %580
  store i64 %581, ptr %42, align 8, !tbaa !9
  %582 = load i64, ptr %42, align 8, !tbaa !9
  %583 = load ptr, ptr %17, align 8, !tbaa !5
  %584 = load i64, ptr %583, align 8, !tbaa !9
  %585 = load ptr, ptr %18, align 8, !tbaa !5
  %586 = load i64, ptr %585, align 8, !tbaa !9
  %587 = mul nsw i64 %584, %586
  %588 = add nsw i64 %582, %587
  store i64 %588, ptr %62, align 8, !tbaa !9
  %589 = load ptr, ptr %17, align 8, !tbaa !5
  %590 = load i64, ptr %589, align 8, !tbaa !9
  %591 = add nsw i64 %590, 1
  store i64 %591, ptr %60, align 8, !tbaa !9
  %592 = load i64, ptr %60, align 8, !tbaa !9
  %593 = load ptr, ptr %17, align 8, !tbaa !5
  %594 = load i64, ptr %593, align 8, !tbaa !9
  %595 = add nsw i64 %592, %594
  store i64 %595, ptr %36, align 8, !tbaa !9
  %596 = load i64, ptr %36, align 8, !tbaa !9
  %597 = load ptr, ptr %17, align 8, !tbaa !5
  %598 = load i64, ptr %597, align 8, !tbaa !9
  %599 = add nsw i64 %596, %598
  store i64 %599, ptr %68, align 8, !tbaa !9
  %600 = load i64, ptr %68, align 8, !tbaa !9
  %601 = load ptr, ptr %17, align 8, !tbaa !5
  %602 = load i64, ptr %601, align 8, !tbaa !9
  %603 = add nsw i64 %600, %602
  store i64 %603, ptr %54, align 8, !tbaa !9
  %604 = load i64, ptr %54, align 8, !tbaa !9
  %605 = load i64, ptr %56, align 8, !tbaa !9
  %606 = load ptr, ptr %17, align 8, !tbaa !5
  %607 = load i64, ptr %606, align 8, !tbaa !9
  %608 = mul nsw i64 %605, %607
  %609 = add nsw i64 %604, %608
  store i64 %609, ptr %65, align 8, !tbaa !9
  %610 = load i64, ptr %65, align 8, !tbaa !9
  %611 = load i64, ptr %56, align 8, !tbaa !9
  %612 = load ptr, ptr %17, align 8, !tbaa !5
  %613 = load i64, ptr %612, align 8, !tbaa !9
  %614 = mul nsw i64 %611, %613
  %615 = shl i64 %614, 1
  %616 = add nsw i64 %610, %615
  store i64 %616, ptr %49, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  store i64 0, ptr %57, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  store i64 0, ptr %64, align 8, !tbaa !9
  store i64 0, ptr %55, align 8, !tbaa !9
  %617 = load ptr, ptr %17, align 8, !tbaa !5
  %618 = load i64, ptr %617, align 8, !tbaa !9
  store i64 %618, ptr %30, align 8, !tbaa !9
  store i64 1, ptr %34, align 8, !tbaa !9
  br label %619

619:                                              ; preds = %651, %511
  %620 = load i64, ptr %34, align 8, !tbaa !9
  %621 = load i64, ptr %30, align 8, !tbaa !9
  %622 = icmp sle i64 %620, %621
  br i1 %622, label %623, label %654

623:                                              ; preds = %619
  %624 = load ptr, ptr %19, align 8, !tbaa !5
  %625 = load i64, ptr %34, align 8, !tbaa !9
  %626 = getelementptr inbounds float, ptr %624, i64 %625
  %627 = load float, ptr %626, align 4, !tbaa !11
  store float %627, ptr %32, align 4, !tbaa !11
  %628 = load float, ptr %32, align 4, !tbaa !11
  %629 = fcmp oge float %628, 0.000000e+00
  br i1 %629, label %630, label %632

630:                                              ; preds = %623
  %631 = load float, ptr %32, align 4, !tbaa !11
  br label %635

632:                                              ; preds = %623
  %633 = load float, ptr %32, align 4, !tbaa !11
  %634 = fneg float %633
  br label %635

635:                                              ; preds = %632, %630
  %636 = phi float [ %631, %630 ], [ %634, %632 ]
  %637 = fpext float %636 to double
  %638 = load float, ptr %48, align 4, !tbaa !11
  %639 = fpext float %638 to double
  %640 = fcmp olt double %637, %639
  br i1 %640, label %641, label %650

641:                                              ; preds = %635
  %642 = load ptr, ptr %19, align 8, !tbaa !5
  %643 = load i64, ptr %34, align 8, !tbaa !9
  %644 = getelementptr inbounds float, ptr %642, i64 %643
  %645 = call double @r_sign(ptr noundef %48, ptr noundef %644)
  %646 = fptrunc double %645 to float
  %647 = load ptr, ptr %19, align 8, !tbaa !5
  %648 = load i64, ptr %34, align 8, !tbaa !9
  %649 = getelementptr inbounds float, ptr %647, i64 %648
  store float %646, ptr %649, align 4, !tbaa !11
  br label %650

650:                                              ; preds = %641, %635
  br label %651

651:                                              ; preds = %650
  %652 = load i64, ptr %34, align 8, !tbaa !9
  %653 = add nsw i64 %652, 1
  store i64 %653, ptr %34, align 8, !tbaa !9
  br label %619, !llvm.loop !19

654:                                              ; preds = %619
  %655 = load i64, ptr %46, align 8, !tbaa !9
  store i64 %655, ptr %30, align 8, !tbaa !9
  store i64 1, ptr %34, align 8, !tbaa !9
  br label %656

656:                                              ; preds = %1044, %654
  %657 = load i64, ptr %34, align 8, !tbaa !9
  %658 = load i64, ptr %30, align 8, !tbaa !9
  %659 = icmp sle i64 %657, %658
  br i1 %659, label %660, label %1047

660:                                              ; preds = %656
  %661 = load ptr, ptr %20, align 8, !tbaa !5
  %662 = load i64, ptr %34, align 8, !tbaa !9
  %663 = getelementptr inbounds float, ptr %661, i64 %662
  %664 = load float, ptr %663, align 4, !tbaa !11
  store float %664, ptr %32, align 4, !tbaa !11
  %665 = load float, ptr %32, align 4, !tbaa !11
  %666 = fcmp oge float %665, 0.000000e+00
  br i1 %666, label %667, label %669

667:                                              ; preds = %660
  %668 = load float, ptr %32, align 4, !tbaa !11
  br label %672

669:                                              ; preds = %660
  %670 = load float, ptr %32, align 4, !tbaa !11
  %671 = fneg float %670
  br label %672

672:                                              ; preds = %669, %667
  %673 = phi float [ %668, %667 ], [ %671, %669 ]
  %674 = fpext float %673 to double
  %675 = load float, ptr %48, align 4, !tbaa !11
  %676 = fpext float %675 to double
  %677 = fcmp olt double %674, %676
  br i1 %677, label %682, label %678

678:                                              ; preds = %672
  %679 = load i64, ptr %34, align 8, !tbaa !9
  %680 = load i64, ptr %46, align 8, !tbaa !9
  %681 = icmp eq i64 %679, %680
  br i1 %681, label %682, label %1043

682:                                              ; preds = %678, %672
  %683 = load i64, ptr %55, align 8, !tbaa !9
  %684 = add nsw i64 %683, 1
  store i64 %684, ptr %55, align 8, !tbaa !9
  %685 = load i64, ptr %44, align 8, !tbaa !9
  %686 = load ptr, ptr %26, align 8, !tbaa !5
  %687 = load i64, ptr %55, align 8, !tbaa !9
  %688 = getelementptr inbounds i64, ptr %686, i64 %687
  store i64 %685, ptr %688, align 8, !tbaa !9
  %689 = load i64, ptr %34, align 8, !tbaa !9
  %690 = load i64, ptr %46, align 8, !tbaa !9
  %691 = icmp slt i64 %689, %690
  br i1 %691, label %692, label %704

692:                                              ; preds = %682
  %693 = load i64, ptr %34, align 8, !tbaa !9
  %694 = load i64, ptr %44, align 8, !tbaa !9
  %695 = sub nsw i64 %693, %694
  %696 = add nsw i64 %695, 1
  store i64 %696, ptr %61, align 8, !tbaa !9
  %697 = load i64, ptr %61, align 8, !tbaa !9
  %698 = load ptr, ptr %26, align 8, !tbaa !5
  %699 = load i64, ptr %60, align 8, !tbaa !9
  %700 = load i64, ptr %55, align 8, !tbaa !9
  %701 = add nsw i64 %699, %700
  %702 = sub nsw i64 %701, 1
  %703 = getelementptr inbounds i64, ptr %698, i64 %702
  store i64 %697, ptr %703, align 8, !tbaa !9
  br label %776

704:                                              ; preds = %682
  %705 = load ptr, ptr %20, align 8, !tbaa !5
  %706 = load i64, ptr %34, align 8, !tbaa !9
  %707 = getelementptr inbounds float, ptr %705, i64 %706
  %708 = load float, ptr %707, align 4, !tbaa !11
  store float %708, ptr %32, align 4, !tbaa !11
  %709 = load float, ptr %32, align 4, !tbaa !11
  %710 = fcmp oge float %709, 0.000000e+00
  br i1 %710, label %711, label %713

711:                                              ; preds = %704
  %712 = load float, ptr %32, align 4, !tbaa !11
  br label %716

713:                                              ; preds = %704
  %714 = load float, ptr %32, align 4, !tbaa !11
  %715 = fneg float %714
  br label %716

716:                                              ; preds = %713, %711
  %717 = phi float [ %712, %711 ], [ %715, %713 ]
  %718 = fpext float %717 to double
  %719 = load float, ptr %48, align 4, !tbaa !11
  %720 = fpext float %719 to double
  %721 = fcmp oge double %718, %720
  br i1 %721, label %722, label %735

722:                                              ; preds = %716
  %723 = load ptr, ptr %17, align 8, !tbaa !5
  %724 = load i64, ptr %723, align 8, !tbaa !9
  %725 = load i64, ptr %44, align 8, !tbaa !9
  %726 = sub nsw i64 %724, %725
  %727 = add nsw i64 %726, 1
  store i64 %727, ptr %61, align 8, !tbaa !9
  %728 = load i64, ptr %61, align 8, !tbaa !9
  %729 = load ptr, ptr %26, align 8, !tbaa !5
  %730 = load i64, ptr %60, align 8, !tbaa !9
  %731 = load i64, ptr %55, align 8, !tbaa !9
  %732 = add nsw i64 %730, %731
  %733 = sub nsw i64 %732, 1
  %734 = getelementptr inbounds i64, ptr %729, i64 %733
  store i64 %728, ptr %734, align 8, !tbaa !9
  br label %775

735:                                              ; preds = %716
  %736 = load i64, ptr %34, align 8, !tbaa !9
  %737 = load i64, ptr %44, align 8, !tbaa !9
  %738 = sub nsw i64 %736, %737
  %739 = add nsw i64 %738, 1
  store i64 %739, ptr %61, align 8, !tbaa !9
  %740 = load i64, ptr %61, align 8, !tbaa !9
  %741 = load ptr, ptr %26, align 8, !tbaa !5
  %742 = load i64, ptr %60, align 8, !tbaa !9
  %743 = load i64, ptr %55, align 8, !tbaa !9
  %744 = add nsw i64 %742, %743
  %745 = sub nsw i64 %744, 1
  %746 = getelementptr inbounds i64, ptr %741, i64 %745
  store i64 %740, ptr %746, align 8, !tbaa !9
  %747 = load i64, ptr %55, align 8, !tbaa !9
  %748 = add nsw i64 %747, 1
  store i64 %748, ptr %55, align 8, !tbaa !9
  %749 = load ptr, ptr %17, align 8, !tbaa !5
  %750 = load i64, ptr %749, align 8, !tbaa !9
  %751 = load ptr, ptr %26, align 8, !tbaa !5
  %752 = load i64, ptr %55, align 8, !tbaa !9
  %753 = getelementptr inbounds i64, ptr %751, i64 %752
  store i64 %750, ptr %753, align 8, !tbaa !9
  %754 = load ptr, ptr %26, align 8, !tbaa !5
  %755 = load i64, ptr %60, align 8, !tbaa !9
  %756 = load i64, ptr %55, align 8, !tbaa !9
  %757 = add nsw i64 %755, %756
  %758 = sub nsw i64 %757, 1
  %759 = getelementptr inbounds i64, ptr %754, i64 %758
  store i64 1, ptr %759, align 8, !tbaa !9
  %760 = load ptr, ptr %18, align 8, !tbaa !5
  %761 = load ptr, ptr %21, align 8, !tbaa !5
  %762 = load ptr, ptr %17, align 8, !tbaa !5
  %763 = load i64, ptr %762, align 8, !tbaa !9
  %764 = load i64, ptr %28, align 8, !tbaa !9
  %765 = add nsw i64 %763, %764
  %766 = getelementptr inbounds float, ptr %761, i64 %765
  %767 = load ptr, ptr %22, align 8, !tbaa !5
  %768 = load ptr, ptr %25, align 8, !tbaa !5
  %769 = load i64, ptr %42, align 8, !tbaa !9
  %770 = load i64, ptr %46, align 8, !tbaa !9
  %771 = add nsw i64 %769, %770
  %772 = getelementptr inbounds float, ptr %768, i64 %771
  %773 = load ptr, ptr %17, align 8, !tbaa !5
  %774 = call i32 @f2c_scopy(ptr noundef %760, ptr noundef %766, ptr noundef %767, ptr noundef %772, ptr noundef %773)
  br label %775

775:                                              ; preds = %735, %722
  br label %776

776:                                              ; preds = %775, %692
  %777 = load i64, ptr %44, align 8, !tbaa !9
  %778 = sub nsw i64 %777, 1
  store i64 %778, ptr %47, align 8, !tbaa !9
  %779 = load i64, ptr %61, align 8, !tbaa !9
  %780 = icmp eq i64 %779, 1
  br i1 %780, label %781, label %796

781:                                              ; preds = %776
  %782 = load ptr, ptr %18, align 8, !tbaa !5
  %783 = load ptr, ptr %21, align 8, !tbaa !5
  %784 = load i64, ptr %44, align 8, !tbaa !9
  %785 = load i64, ptr %28, align 8, !tbaa !9
  %786 = add nsw i64 %784, %785
  %787 = getelementptr inbounds float, ptr %783, i64 %786
  %788 = load ptr, ptr %22, align 8, !tbaa !5
  %789 = load ptr, ptr %25, align 8, !tbaa !5
  %790 = load i64, ptr %42, align 8, !tbaa !9
  %791 = load i64, ptr %47, align 8, !tbaa !9
  %792 = add nsw i64 %790, %791
  %793 = getelementptr inbounds float, ptr %789, i64 %792
  %794 = load ptr, ptr %17, align 8, !tbaa !5
  %795 = call i32 @f2c_scopy(ptr noundef %782, ptr noundef %787, ptr noundef %788, ptr noundef %793, ptr noundef %794)
  br label %1040

796:                                              ; preds = %776
  %797 = load i64, ptr %61, align 8, !tbaa !9
  %798 = load ptr, ptr %16, align 8, !tbaa !5
  %799 = load i64, ptr %798, align 8, !tbaa !9
  %800 = icmp sle i64 %797, %799
  br i1 %800, label %801, label %856

801:                                              ; preds = %796
  %802 = load ptr, ptr %25, align 8, !tbaa !5
  %803 = load i64, ptr %45, align 8, !tbaa !9
  %804 = load i64, ptr %47, align 8, !tbaa !9
  %805 = add nsw i64 %803, %804
  %806 = getelementptr inbounds float, ptr %802, i64 %805
  %807 = load ptr, ptr %17, align 8, !tbaa !5
  %808 = call i32 @slaset_(ptr noundef @.str.2, ptr noundef %61, ptr noundef %61, ptr noundef @c_b6, ptr noundef @c_b11, ptr noundef %806, ptr noundef %807)
  %809 = load ptr, ptr %18, align 8, !tbaa !5
  %810 = load ptr, ptr %19, align 8, !tbaa !5
  %811 = load i64, ptr %44, align 8, !tbaa !9
  %812 = getelementptr inbounds float, ptr %810, i64 %811
  %813 = load ptr, ptr %20, align 8, !tbaa !5
  %814 = load i64, ptr %44, align 8, !tbaa !9
  %815 = getelementptr inbounds float, ptr %813, i64 %814
  %816 = load ptr, ptr %25, align 8, !tbaa !5
  %817 = load i64, ptr %45, align 8, !tbaa !9
  %818 = load i64, ptr %47, align 8, !tbaa !9
  %819 = add nsw i64 %817, %818
  %820 = getelementptr inbounds float, ptr %816, i64 %819
  %821 = load ptr, ptr %17, align 8, !tbaa !5
  %822 = load ptr, ptr %25, align 8, !tbaa !5
  %823 = load i64, ptr %62, align 8, !tbaa !9
  %824 = getelementptr inbounds float, ptr %822, i64 %823
  %825 = load ptr, ptr %17, align 8, !tbaa !5
  %826 = load ptr, ptr %21, align 8, !tbaa !5
  %827 = load i64, ptr %44, align 8, !tbaa !9
  %828 = load i64, ptr %28, align 8, !tbaa !9
  %829 = add nsw i64 %827, %828
  %830 = getelementptr inbounds float, ptr %826, i64 %829
  %831 = load ptr, ptr %22, align 8, !tbaa !5
  %832 = load ptr, ptr %25, align 8, !tbaa !5
  %833 = load i64, ptr %62, align 8, !tbaa !9
  %834 = getelementptr inbounds float, ptr %832, i64 %833
  %835 = load ptr, ptr %27, align 8, !tbaa !5
  %836 = call i32 @slasdq_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef %61, ptr noundef %61, ptr noundef @c__0, ptr noundef %809, ptr noundef %812, ptr noundef %815, ptr noundef %820, ptr noundef %821, ptr noundef %824, ptr noundef %825, ptr noundef %830, ptr noundef %831, ptr noundef %834, ptr noundef %835)
  %837 = load ptr, ptr %27, align 8, !tbaa !5
  %838 = load i64, ptr %837, align 8, !tbaa !9
  %839 = icmp ne i64 %838, 0
  br i1 %839, label %840, label %841

840:                                              ; preds = %801
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

841:                                              ; preds = %801
  %842 = load ptr, ptr %18, align 8, !tbaa !5
  %843 = load ptr, ptr %21, align 8, !tbaa !5
  %844 = load i64, ptr %44, align 8, !tbaa !9
  %845 = load i64, ptr %28, align 8, !tbaa !9
  %846 = add nsw i64 %844, %845
  %847 = getelementptr inbounds float, ptr %843, i64 %846
  %848 = load ptr, ptr %22, align 8, !tbaa !5
  %849 = load ptr, ptr %25, align 8, !tbaa !5
  %850 = load i64, ptr %42, align 8, !tbaa !9
  %851 = load i64, ptr %47, align 8, !tbaa !9
  %852 = add nsw i64 %850, %851
  %853 = getelementptr inbounds float, ptr %849, i64 %852
  %854 = load ptr, ptr %17, align 8, !tbaa !5
  %855 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %61, ptr noundef %842, ptr noundef %847, ptr noundef %848, ptr noundef %853, ptr noundef %854)
  br label %1039

856:                                              ; preds = %796
  %857 = load ptr, ptr %16, align 8, !tbaa !5
  %858 = load ptr, ptr %19, align 8, !tbaa !5
  %859 = load i64, ptr %44, align 8, !tbaa !9
  %860 = getelementptr inbounds float, ptr %858, i64 %859
  %861 = load ptr, ptr %20, align 8, !tbaa !5
  %862 = load i64, ptr %44, align 8, !tbaa !9
  %863 = getelementptr inbounds float, ptr %861, i64 %862
  %864 = load ptr, ptr %25, align 8, !tbaa !5
  %865 = load i64, ptr %39, align 8, !tbaa !9
  %866 = load i64, ptr %47, align 8, !tbaa !9
  %867 = add nsw i64 %865, %866
  %868 = getelementptr inbounds float, ptr %864, i64 %867
  %869 = load ptr, ptr %17, align 8, !tbaa !5
  %870 = load ptr, ptr %25, align 8, !tbaa !5
  %871 = load i64, ptr %45, align 8, !tbaa !9
  %872 = load i64, ptr %47, align 8, !tbaa !9
  %873 = add nsw i64 %871, %872
  %874 = getelementptr inbounds float, ptr %870, i64 %873
  %875 = load ptr, ptr %26, align 8, !tbaa !5
  %876 = load i64, ptr %36, align 8, !tbaa !9
  %877 = load i64, ptr %47, align 8, !tbaa !9
  %878 = add nsw i64 %876, %877
  %879 = getelementptr inbounds i64, ptr %875, i64 %878
  %880 = load ptr, ptr %25, align 8, !tbaa !5
  %881 = load i64, ptr %51, align 8, !tbaa !9
  %882 = load i64, ptr %47, align 8, !tbaa !9
  %883 = add nsw i64 %881, %882
  %884 = getelementptr inbounds float, ptr %880, i64 %883
  %885 = load ptr, ptr %25, align 8, !tbaa !5
  %886 = load i64, ptr %52, align 8, !tbaa !9
  %887 = load i64, ptr %47, align 8, !tbaa !9
  %888 = add nsw i64 %886, %887
  %889 = getelementptr inbounds float, ptr %885, i64 %888
  %890 = load ptr, ptr %25, align 8, !tbaa !5
  %891 = load i64, ptr %40, align 8, !tbaa !9
  %892 = load i64, ptr %47, align 8, !tbaa !9
  %893 = add nsw i64 %891, %892
  %894 = getelementptr inbounds float, ptr %890, i64 %893
  %895 = load ptr, ptr %25, align 8, !tbaa !5
  %896 = load i64, ptr %59, align 8, !tbaa !9
  %897 = load i64, ptr %47, align 8, !tbaa !9
  %898 = add nsw i64 %896, %897
  %899 = getelementptr inbounds float, ptr %895, i64 %898
  %900 = load ptr, ptr %26, align 8, !tbaa !5
  %901 = load i64, ptr %68, align 8, !tbaa !9
  %902 = load i64, ptr %47, align 8, !tbaa !9
  %903 = add nsw i64 %901, %902
  %904 = getelementptr inbounds i64, ptr %900, i64 %903
  %905 = load ptr, ptr %26, align 8, !tbaa !5
  %906 = load i64, ptr %65, align 8, !tbaa !9
  %907 = load i64, ptr %47, align 8, !tbaa !9
  %908 = add nsw i64 %906, %907
  %909 = getelementptr inbounds i64, ptr %905, i64 %908
  %910 = load ptr, ptr %17, align 8, !tbaa !5
  %911 = load ptr, ptr %26, align 8, !tbaa !5
  %912 = load i64, ptr %54, align 8, !tbaa !9
  %913 = load i64, ptr %47, align 8, !tbaa !9
  %914 = add nsw i64 %912, %913
  %915 = getelementptr inbounds i64, ptr %911, i64 %914
  %916 = load ptr, ptr %25, align 8, !tbaa !5
  %917 = load i64, ptr %67, align 8, !tbaa !9
  %918 = load i64, ptr %47, align 8, !tbaa !9
  %919 = add nsw i64 %917, %918
  %920 = getelementptr inbounds float, ptr %916, i64 %919
  %921 = load ptr, ptr %25, align 8, !tbaa !5
  %922 = load i64, ptr %33, align 8, !tbaa !9
  %923 = load i64, ptr %47, align 8, !tbaa !9
  %924 = add nsw i64 %922, %923
  %925 = getelementptr inbounds float, ptr %921, i64 %924
  %926 = load ptr, ptr %25, align 8, !tbaa !5
  %927 = load i64, ptr %38, align 8, !tbaa !9
  %928 = load i64, ptr %47, align 8, !tbaa !9
  %929 = add nsw i64 %927, %928
  %930 = getelementptr inbounds float, ptr %926, i64 %929
  %931 = load ptr, ptr %25, align 8, !tbaa !5
  %932 = load i64, ptr %62, align 8, !tbaa !9
  %933 = getelementptr inbounds float, ptr %931, i64 %932
  %934 = load ptr, ptr %26, align 8, !tbaa !5
  %935 = load i64, ptr %49, align 8, !tbaa !9
  %936 = getelementptr inbounds i64, ptr %934, i64 %935
  %937 = load ptr, ptr %27, align 8, !tbaa !5
  %938 = call i32 @slasda_(ptr noundef %63, ptr noundef %857, ptr noundef %61, ptr noundef %57, ptr noundef %860, ptr noundef %863, ptr noundef %868, ptr noundef %869, ptr noundef %874, ptr noundef %879, ptr noundef %884, ptr noundef %889, ptr noundef %894, ptr noundef %899, ptr noundef %904, ptr noundef %909, ptr noundef %910, ptr noundef %915, ptr noundef %920, ptr noundef %925, ptr noundef %930, ptr noundef %933, ptr noundef %936, ptr noundef %937)
  %939 = load ptr, ptr %27, align 8, !tbaa !5
  %940 = load i64, ptr %939, align 8, !tbaa !9
  %941 = icmp ne i64 %940, 0
  br i1 %941, label %942, label %943

942:                                              ; preds = %856
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

943:                                              ; preds = %856
  %944 = load i64, ptr %42, align 8, !tbaa !9
  %945 = load i64, ptr %47, align 8, !tbaa !9
  %946 = add nsw i64 %944, %945
  store i64 %946, ptr %58, align 8, !tbaa !9
  %947 = load ptr, ptr %16, align 8, !tbaa !5
  %948 = load ptr, ptr %18, align 8, !tbaa !5
  %949 = load ptr, ptr %21, align 8, !tbaa !5
  %950 = load i64, ptr %44, align 8, !tbaa !9
  %951 = load i64, ptr %28, align 8, !tbaa !9
  %952 = add nsw i64 %950, %951
  %953 = getelementptr inbounds float, ptr %949, i64 %952
  %954 = load ptr, ptr %22, align 8, !tbaa !5
  %955 = load ptr, ptr %25, align 8, !tbaa !5
  %956 = load i64, ptr %58, align 8, !tbaa !9
  %957 = getelementptr inbounds float, ptr %955, i64 %956
  %958 = load ptr, ptr %17, align 8, !tbaa !5
  %959 = load ptr, ptr %25, align 8, !tbaa !5
  %960 = load i64, ptr %39, align 8, !tbaa !9
  %961 = load i64, ptr %47, align 8, !tbaa !9
  %962 = add nsw i64 %960, %961
  %963 = getelementptr inbounds float, ptr %959, i64 %962
  %964 = load ptr, ptr %17, align 8, !tbaa !5
  %965 = load ptr, ptr %25, align 8, !tbaa !5
  %966 = load i64, ptr %45, align 8, !tbaa !9
  %967 = load i64, ptr %47, align 8, !tbaa !9
  %968 = add nsw i64 %966, %967
  %969 = getelementptr inbounds float, ptr %965, i64 %968
  %970 = load ptr, ptr %26, align 8, !tbaa !5
  %971 = load i64, ptr %36, align 8, !tbaa !9
  %972 = load i64, ptr %47, align 8, !tbaa !9
  %973 = add nsw i64 %971, %972
  %974 = getelementptr inbounds i64, ptr %970, i64 %973
  %975 = load ptr, ptr %25, align 8, !tbaa !5
  %976 = load i64, ptr %51, align 8, !tbaa !9
  %977 = load i64, ptr %47, align 8, !tbaa !9
  %978 = add nsw i64 %976, %977
  %979 = getelementptr inbounds float, ptr %975, i64 %978
  %980 = load ptr, ptr %25, align 8, !tbaa !5
  %981 = load i64, ptr %52, align 8, !tbaa !9
  %982 = load i64, ptr %47, align 8, !tbaa !9
  %983 = add nsw i64 %981, %982
  %984 = getelementptr inbounds float, ptr %980, i64 %983
  %985 = load ptr, ptr %25, align 8, !tbaa !5
  %986 = load i64, ptr %40, align 8, !tbaa !9
  %987 = load i64, ptr %47, align 8, !tbaa !9
  %988 = add nsw i64 %986, %987
  %989 = getelementptr inbounds float, ptr %985, i64 %988
  %990 = load ptr, ptr %25, align 8, !tbaa !5
  %991 = load i64, ptr %59, align 8, !tbaa !9
  %992 = load i64, ptr %47, align 8, !tbaa !9
  %993 = add nsw i64 %991, %992
  %994 = getelementptr inbounds float, ptr %990, i64 %993
  %995 = load ptr, ptr %26, align 8, !tbaa !5
  %996 = load i64, ptr %68, align 8, !tbaa !9
  %997 = load i64, ptr %47, align 8, !tbaa !9
  %998 = add nsw i64 %996, %997
  %999 = getelementptr inbounds i64, ptr %995, i64 %998
  %1000 = load ptr, ptr %26, align 8, !tbaa !5
  %1001 = load i64, ptr %65, align 8, !tbaa !9
  %1002 = load i64, ptr %47, align 8, !tbaa !9
  %1003 = add nsw i64 %1001, %1002
  %1004 = getelementptr inbounds i64, ptr %1000, i64 %1003
  %1005 = load ptr, ptr %17, align 8, !tbaa !5
  %1006 = load ptr, ptr %26, align 8, !tbaa !5
  %1007 = load i64, ptr %54, align 8, !tbaa !9
  %1008 = load i64, ptr %47, align 8, !tbaa !9
  %1009 = add nsw i64 %1007, %1008
  %1010 = getelementptr inbounds i64, ptr %1006, i64 %1009
  %1011 = load ptr, ptr %25, align 8, !tbaa !5
  %1012 = load i64, ptr %67, align 8, !tbaa !9
  %1013 = load i64, ptr %47, align 8, !tbaa !9
  %1014 = add nsw i64 %1012, %1013
  %1015 = getelementptr inbounds float, ptr %1011, i64 %1014
  %1016 = load ptr, ptr %25, align 8, !tbaa !5
  %1017 = load i64, ptr %33, align 8, !tbaa !9
  %1018 = load i64, ptr %47, align 8, !tbaa !9
  %1019 = add nsw i64 %1017, %1018
  %1020 = getelementptr inbounds float, ptr %1016, i64 %1019
  %1021 = load ptr, ptr %25, align 8, !tbaa !5
  %1022 = load i64, ptr %38, align 8, !tbaa !9
  %1023 = load i64, ptr %47, align 8, !tbaa !9
  %1024 = add nsw i64 %1022, %1023
  %1025 = getelementptr inbounds float, ptr %1021, i64 %1024
  %1026 = load ptr, ptr %25, align 8, !tbaa !5
  %1027 = load i64, ptr %62, align 8, !tbaa !9
  %1028 = getelementptr inbounds float, ptr %1026, i64 %1027
  %1029 = load ptr, ptr %26, align 8, !tbaa !5
  %1030 = load i64, ptr %49, align 8, !tbaa !9
  %1031 = getelementptr inbounds i64, ptr %1029, i64 %1030
  %1032 = load ptr, ptr %27, align 8, !tbaa !5
  %1033 = call i32 @slalsa_(ptr noundef %64, ptr noundef %947, ptr noundef %61, ptr noundef %948, ptr noundef %953, ptr noundef %954, ptr noundef %957, ptr noundef %958, ptr noundef %963, ptr noundef %964, ptr noundef %969, ptr noundef %974, ptr noundef %979, ptr noundef %984, ptr noundef %989, ptr noundef %994, ptr noundef %999, ptr noundef %1004, ptr noundef %1005, ptr noundef %1010, ptr noundef %1015, ptr noundef %1020, ptr noundef %1025, ptr noundef %1028, ptr noundef %1031, ptr noundef %1032)
  %1034 = load ptr, ptr %27, align 8, !tbaa !5
  %1035 = load i64, ptr %1034, align 8, !tbaa !9
  %1036 = icmp ne i64 %1035, 0
  br i1 %1036, label %1037, label %1038

1037:                                             ; preds = %943
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

1038:                                             ; preds = %943
  br label %1039

1039:                                             ; preds = %1038, %841
  br label %1040

1040:                                             ; preds = %1039, %781
  %1041 = load i64, ptr %34, align 8, !tbaa !9
  %1042 = add nsw i64 %1041, 1
  store i64 %1042, ptr %44, align 8, !tbaa !9
  br label %1043

1043:                                             ; preds = %1040, %678
  br label %1044

1044:                                             ; preds = %1043
  %1045 = load i64, ptr %34, align 8, !tbaa !9
  %1046 = add nsw i64 %1045, 1
  store i64 %1046, ptr %34, align 8, !tbaa !9
  br label %656, !llvm.loop !20

1047:                                             ; preds = %656
  %1048 = load float, ptr %53, align 4, !tbaa !11
  %1049 = fpext float %1048 to double
  %1050 = load ptr, ptr %19, align 8, !tbaa !5
  %1051 = load ptr, ptr %17, align 8, !tbaa !5
  %1052 = load ptr, ptr %19, align 8, !tbaa !5
  %1053 = getelementptr inbounds float, ptr %1052, i64 1
  %1054 = call i64 @f2c_isamax(ptr noundef %1051, ptr noundef %1053, ptr noundef @c__1)
  %1055 = getelementptr inbounds float, ptr %1050, i64 %1054
  %1056 = load float, ptr %1055, align 4, !tbaa !11
  store float %1056, ptr %32, align 4, !tbaa !11
  %1057 = load float, ptr %32, align 4, !tbaa !11
  %1058 = fcmp oge float %1057, 0.000000e+00
  br i1 %1058, label %1059, label %1061

1059:                                             ; preds = %1047
  %1060 = load float, ptr %32, align 4, !tbaa !11
  br label %1064

1061:                                             ; preds = %1047
  %1062 = load float, ptr %32, align 4, !tbaa !11
  %1063 = fneg float %1062
  br label %1064

1064:                                             ; preds = %1061, %1059
  %1065 = phi float [ %1060, %1059 ], [ %1063, %1061 ]
  %1066 = fpext float %1065 to double
  %1067 = fmul double %1049, %1066
  %1068 = fptrunc double %1067 to float
  store float %1068, ptr %50, align 4, !tbaa !11
  %1069 = load ptr, ptr %17, align 8, !tbaa !5
  %1070 = load i64, ptr %1069, align 8, !tbaa !9
  store i64 %1070, ptr %30, align 8, !tbaa !9
  store i64 1, ptr %34, align 8, !tbaa !9
  br label %1071

1071:                                             ; preds = %1139, %1064
  %1072 = load i64, ptr %34, align 8, !tbaa !9
  %1073 = load i64, ptr %30, align 8, !tbaa !9
  %1074 = icmp sle i64 %1072, %1073
  br i1 %1074, label %1075, label %1142

1075:                                             ; preds = %1071
  %1076 = load ptr, ptr %19, align 8, !tbaa !5
  %1077 = load i64, ptr %34, align 8, !tbaa !9
  %1078 = getelementptr inbounds float, ptr %1076, i64 %1077
  %1079 = load float, ptr %1078, align 4, !tbaa !11
  store float %1079, ptr %32, align 4, !tbaa !11
  %1080 = load float, ptr %32, align 4, !tbaa !11
  %1081 = fcmp oge float %1080, 0.000000e+00
  br i1 %1081, label %1082, label %1084

1082:                                             ; preds = %1075
  %1083 = load float, ptr %32, align 4, !tbaa !11
  br label %1087

1084:                                             ; preds = %1075
  %1085 = load float, ptr %32, align 4, !tbaa !11
  %1086 = fneg float %1085
  br label %1087

1087:                                             ; preds = %1084, %1082
  %1088 = phi float [ %1083, %1082 ], [ %1086, %1084 ]
  %1089 = fpext float %1088 to double
  %1090 = load float, ptr %50, align 4, !tbaa !11
  %1091 = fpext float %1090 to double
  %1092 = fcmp ole double %1089, %1091
  br i1 %1092, label %1093, label %1103

1093:                                             ; preds = %1087
  %1094 = load ptr, ptr %18, align 8, !tbaa !5
  %1095 = load ptr, ptr %25, align 8, !tbaa !5
  %1096 = load i64, ptr %42, align 8, !tbaa !9
  %1097 = load i64, ptr %34, align 8, !tbaa !9
  %1098 = add nsw i64 %1096, %1097
  %1099 = sub nsw i64 %1098, 1
  %1100 = getelementptr inbounds float, ptr %1095, i64 %1099
  %1101 = load ptr, ptr %17, align 8, !tbaa !5
  %1102 = call i32 @slaset_(ptr noundef @.str.2, ptr noundef @c__1, ptr noundef %1094, ptr noundef @c_b6, ptr noundef @c_b6, ptr noundef %1100, ptr noundef %1101)
  br label %1120

1103:                                             ; preds = %1087
  %1104 = load ptr, ptr %24, align 8, !tbaa !5
  %1105 = load i64, ptr %1104, align 8, !tbaa !9
  %1106 = add nsw i64 %1105, 1
  store i64 %1106, ptr %1104, align 8, !tbaa !9
  %1107 = load ptr, ptr %19, align 8, !tbaa !5
  %1108 = load i64, ptr %34, align 8, !tbaa !9
  %1109 = getelementptr inbounds float, ptr %1107, i64 %1108
  %1110 = load ptr, ptr %18, align 8, !tbaa !5
  %1111 = load ptr, ptr %25, align 8, !tbaa !5
  %1112 = load i64, ptr %42, align 8, !tbaa !9
  %1113 = load i64, ptr %34, align 8, !tbaa !9
  %1114 = add nsw i64 %1112, %1113
  %1115 = sub nsw i64 %1114, 1
  %1116 = getelementptr inbounds float, ptr %1111, i64 %1115
  %1117 = load ptr, ptr %17, align 8, !tbaa !5
  %1118 = load ptr, ptr %27, align 8, !tbaa !5
  %1119 = call i32 @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %1109, ptr noundef @c_b11, ptr noundef @c__1, ptr noundef %1110, ptr noundef %1116, ptr noundef %1117, ptr noundef %1118)
  br label %1120

1120:                                             ; preds = %1103, %1093
  %1121 = load ptr, ptr %19, align 8, !tbaa !5
  %1122 = load i64, ptr %34, align 8, !tbaa !9
  %1123 = getelementptr inbounds float, ptr %1121, i64 %1122
  %1124 = load float, ptr %1123, align 4, !tbaa !11
  store float %1124, ptr %32, align 4, !tbaa !11
  %1125 = load float, ptr %32, align 4, !tbaa !11
  %1126 = fcmp oge float %1125, 0.000000e+00
  br i1 %1126, label %1127, label %1129

1127:                                             ; preds = %1120
  %1128 = load float, ptr %32, align 4, !tbaa !11
  br label %1132

1129:                                             ; preds = %1120
  %1130 = load float, ptr %32, align 4, !tbaa !11
  %1131 = fneg float %1130
  br label %1132

1132:                                             ; preds = %1129, %1127
  %1133 = phi float [ %1128, %1127 ], [ %1131, %1129 ]
  %1134 = fpext float %1133 to double
  %1135 = fptrunc double %1134 to float
  %1136 = load ptr, ptr %19, align 8, !tbaa !5
  %1137 = load i64, ptr %34, align 8, !tbaa !9
  %1138 = getelementptr inbounds float, ptr %1136, i64 %1137
  store float %1135, ptr %1138, align 4, !tbaa !11
  br label %1139

1139:                                             ; preds = %1132
  %1140 = load i64, ptr %34, align 8, !tbaa !9
  %1141 = add nsw i64 %1140, 1
  store i64 %1141, ptr %34, align 8, !tbaa !9
  br label %1071, !llvm.loop !21

1142:                                             ; preds = %1071
  store i64 1, ptr %64, align 8, !tbaa !9
  %1143 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %1143, ptr %30, align 8, !tbaa !9
  store i64 1, ptr %34, align 8, !tbaa !9
  br label %1144

1144:                                             ; preds = %1299, %1142
  %1145 = load i64, ptr %34, align 8, !tbaa !9
  %1146 = load i64, ptr %30, align 8, !tbaa !9
  %1147 = icmp sle i64 %1145, %1146
  br i1 %1147, label %1148, label %1302

1148:                                             ; preds = %1144
  %1149 = load ptr, ptr %26, align 8, !tbaa !5
  %1150 = load i64, ptr %34, align 8, !tbaa !9
  %1151 = getelementptr inbounds i64, ptr %1149, i64 %1150
  %1152 = load i64, ptr %1151, align 8, !tbaa !9
  store i64 %1152, ptr %44, align 8, !tbaa !9
  %1153 = load i64, ptr %44, align 8, !tbaa !9
  %1154 = sub nsw i64 %1153, 1
  store i64 %1154, ptr %47, align 8, !tbaa !9
  %1155 = load ptr, ptr %26, align 8, !tbaa !5
  %1156 = load i64, ptr %60, align 8, !tbaa !9
  %1157 = load i64, ptr %34, align 8, !tbaa !9
  %1158 = add nsw i64 %1156, %1157
  %1159 = sub nsw i64 %1158, 1
  %1160 = getelementptr inbounds i64, ptr %1155, i64 %1159
  %1161 = load i64, ptr %1160, align 8, !tbaa !9
  store i64 %1161, ptr %61, align 8, !tbaa !9
  %1162 = load i64, ptr %42, align 8, !tbaa !9
  %1163 = load i64, ptr %47, align 8, !tbaa !9
  %1164 = add nsw i64 %1162, %1163
  store i64 %1164, ptr %58, align 8, !tbaa !9
  %1165 = load i64, ptr %61, align 8, !tbaa !9
  %1166 = icmp eq i64 %1165, 1
  br i1 %1166, label %1167, label %1180

1167:                                             ; preds = %1148
  %1168 = load ptr, ptr %18, align 8, !tbaa !5
  %1169 = load ptr, ptr %25, align 8, !tbaa !5
  %1170 = load i64, ptr %58, align 8, !tbaa !9
  %1171 = getelementptr inbounds float, ptr %1169, i64 %1170
  %1172 = load ptr, ptr %17, align 8, !tbaa !5
  %1173 = load ptr, ptr %21, align 8, !tbaa !5
  %1174 = load i64, ptr %44, align 8, !tbaa !9
  %1175 = load i64, ptr %28, align 8, !tbaa !9
  %1176 = add nsw i64 %1174, %1175
  %1177 = getelementptr inbounds float, ptr %1173, i64 %1176
  %1178 = load ptr, ptr %22, align 8, !tbaa !5
  %1179 = call i32 @f2c_scopy(ptr noundef %1168, ptr noundef %1171, ptr noundef %1172, ptr noundef %1177, ptr noundef %1178)
  br label %1298

1180:                                             ; preds = %1148
  %1181 = load i64, ptr %61, align 8, !tbaa !9
  %1182 = load ptr, ptr %16, align 8, !tbaa !5
  %1183 = load i64, ptr %1182, align 8, !tbaa !9
  %1184 = icmp sle i64 %1181, %1183
  br i1 %1184, label %1185, label %1204

1185:                                             ; preds = %1180
  %1186 = load ptr, ptr %18, align 8, !tbaa !5
  %1187 = load ptr, ptr %25, align 8, !tbaa !5
  %1188 = load i64, ptr %45, align 8, !tbaa !9
  %1189 = load i64, ptr %47, align 8, !tbaa !9
  %1190 = add nsw i64 %1188, %1189
  %1191 = getelementptr inbounds float, ptr %1187, i64 %1190
  %1192 = load ptr, ptr %17, align 8, !tbaa !5
  %1193 = load ptr, ptr %25, align 8, !tbaa !5
  %1194 = load i64, ptr %58, align 8, !tbaa !9
  %1195 = getelementptr inbounds float, ptr %1193, i64 %1194
  %1196 = load ptr, ptr %17, align 8, !tbaa !5
  %1197 = load ptr, ptr %21, align 8, !tbaa !5
  %1198 = load i64, ptr %44, align 8, !tbaa !9
  %1199 = load i64, ptr %28, align 8, !tbaa !9
  %1200 = add nsw i64 %1198, %1199
  %1201 = getelementptr inbounds float, ptr %1197, i64 %1200
  %1202 = load ptr, ptr %22, align 8, !tbaa !5
  %1203 = call i32 @f2c_sgemm(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %61, ptr noundef %1186, ptr noundef %61, ptr noundef @c_b11, ptr noundef %1191, ptr noundef %1192, ptr noundef %1195, ptr noundef %1196, ptr noundef @c_b6, ptr noundef %1201, ptr noundef %1202)
  br label %1297

1204:                                             ; preds = %1180
  %1205 = load ptr, ptr %16, align 8, !tbaa !5
  %1206 = load ptr, ptr %18, align 8, !tbaa !5
  %1207 = load ptr, ptr %25, align 8, !tbaa !5
  %1208 = load i64, ptr %58, align 8, !tbaa !9
  %1209 = getelementptr inbounds float, ptr %1207, i64 %1208
  %1210 = load ptr, ptr %17, align 8, !tbaa !5
  %1211 = load ptr, ptr %21, align 8, !tbaa !5
  %1212 = load i64, ptr %44, align 8, !tbaa !9
  %1213 = load i64, ptr %28, align 8, !tbaa !9
  %1214 = add nsw i64 %1212, %1213
  %1215 = getelementptr inbounds float, ptr %1211, i64 %1214
  %1216 = load ptr, ptr %22, align 8, !tbaa !5
  %1217 = load ptr, ptr %25, align 8, !tbaa !5
  %1218 = load i64, ptr %39, align 8, !tbaa !9
  %1219 = load i64, ptr %47, align 8, !tbaa !9
  %1220 = add nsw i64 %1218, %1219
  %1221 = getelementptr inbounds float, ptr %1217, i64 %1220
  %1222 = load ptr, ptr %17, align 8, !tbaa !5
  %1223 = load ptr, ptr %25, align 8, !tbaa !5
  %1224 = load i64, ptr %45, align 8, !tbaa !9
  %1225 = load i64, ptr %47, align 8, !tbaa !9
  %1226 = add nsw i64 %1224, %1225
  %1227 = getelementptr inbounds float, ptr %1223, i64 %1226
  %1228 = load ptr, ptr %26, align 8, !tbaa !5
  %1229 = load i64, ptr %36, align 8, !tbaa !9
  %1230 = load i64, ptr %47, align 8, !tbaa !9
  %1231 = add nsw i64 %1229, %1230
  %1232 = getelementptr inbounds i64, ptr %1228, i64 %1231
  %1233 = load ptr, ptr %25, align 8, !tbaa !5
  %1234 = load i64, ptr %51, align 8, !tbaa !9
  %1235 = load i64, ptr %47, align 8, !tbaa !9
  %1236 = add nsw i64 %1234, %1235
  %1237 = getelementptr inbounds float, ptr %1233, i64 %1236
  %1238 = load ptr, ptr %25, align 8, !tbaa !5
  %1239 = load i64, ptr %52, align 8, !tbaa !9
  %1240 = load i64, ptr %47, align 8, !tbaa !9
  %1241 = add nsw i64 %1239, %1240
  %1242 = getelementptr inbounds float, ptr %1238, i64 %1241
  %1243 = load ptr, ptr %25, align 8, !tbaa !5
  %1244 = load i64, ptr %40, align 8, !tbaa !9
  %1245 = load i64, ptr %47, align 8, !tbaa !9
  %1246 = add nsw i64 %1244, %1245
  %1247 = getelementptr inbounds float, ptr %1243, i64 %1246
  %1248 = load ptr, ptr %25, align 8, !tbaa !5
  %1249 = load i64, ptr %59, align 8, !tbaa !9
  %1250 = load i64, ptr %47, align 8, !tbaa !9
  %1251 = add nsw i64 %1249, %1250
  %1252 = getelementptr inbounds float, ptr %1248, i64 %1251
  %1253 = load ptr, ptr %26, align 8, !tbaa !5
  %1254 = load i64, ptr %68, align 8, !tbaa !9
  %1255 = load i64, ptr %47, align 8, !tbaa !9
  %1256 = add nsw i64 %1254, %1255
  %1257 = getelementptr inbounds i64, ptr %1253, i64 %1256
  %1258 = load ptr, ptr %26, align 8, !tbaa !5
  %1259 = load i64, ptr %65, align 8, !tbaa !9
  %1260 = load i64, ptr %47, align 8, !tbaa !9
  %1261 = add nsw i64 %1259, %1260
  %1262 = getelementptr inbounds i64, ptr %1258, i64 %1261
  %1263 = load ptr, ptr %17, align 8, !tbaa !5
  %1264 = load ptr, ptr %26, align 8, !tbaa !5
  %1265 = load i64, ptr %54, align 8, !tbaa !9
  %1266 = load i64, ptr %47, align 8, !tbaa !9
  %1267 = add nsw i64 %1265, %1266
  %1268 = getelementptr inbounds i64, ptr %1264, i64 %1267
  %1269 = load ptr, ptr %25, align 8, !tbaa !5
  %1270 = load i64, ptr %67, align 8, !tbaa !9
  %1271 = load i64, ptr %47, align 8, !tbaa !9
  %1272 = add nsw i64 %1270, %1271
  %1273 = getelementptr inbounds float, ptr %1269, i64 %1272
  %1274 = load ptr, ptr %25, align 8, !tbaa !5
  %1275 = load i64, ptr %33, align 8, !tbaa !9
  %1276 = load i64, ptr %47, align 8, !tbaa !9
  %1277 = add nsw i64 %1275, %1276
  %1278 = getelementptr inbounds float, ptr %1274, i64 %1277
  %1279 = load ptr, ptr %25, align 8, !tbaa !5
  %1280 = load i64, ptr %38, align 8, !tbaa !9
  %1281 = load i64, ptr %47, align 8, !tbaa !9
  %1282 = add nsw i64 %1280, %1281
  %1283 = getelementptr inbounds float, ptr %1279, i64 %1282
  %1284 = load ptr, ptr %25, align 8, !tbaa !5
  %1285 = load i64, ptr %62, align 8, !tbaa !9
  %1286 = getelementptr inbounds float, ptr %1284, i64 %1285
  %1287 = load ptr, ptr %26, align 8, !tbaa !5
  %1288 = load i64, ptr %49, align 8, !tbaa !9
  %1289 = getelementptr inbounds i64, ptr %1287, i64 %1288
  %1290 = load ptr, ptr %27, align 8, !tbaa !5
  %1291 = call i32 @slalsa_(ptr noundef %64, ptr noundef %1205, ptr noundef %61, ptr noundef %1206, ptr noundef %1209, ptr noundef %1210, ptr noundef %1215, ptr noundef %1216, ptr noundef %1221, ptr noundef %1222, ptr noundef %1227, ptr noundef %1232, ptr noundef %1237, ptr noundef %1242, ptr noundef %1247, ptr noundef %1252, ptr noundef %1257, ptr noundef %1262, ptr noundef %1263, ptr noundef %1268, ptr noundef %1273, ptr noundef %1278, ptr noundef %1283, ptr noundef %1286, ptr noundef %1289, ptr noundef %1290)
  %1292 = load ptr, ptr %27, align 8, !tbaa !5
  %1293 = load i64, ptr %1292, align 8, !tbaa !9
  %1294 = icmp ne i64 %1293, 0
  br i1 %1294, label %1295, label %1296

1295:                                             ; preds = %1204
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

1296:                                             ; preds = %1204
  br label %1297

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

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

1299:                                             ; preds = %1298
  %1300 = load i64, ptr %34, align 8, !tbaa !9
  %1301 = add nsw i64 %1300, 1
  store i64 %1301, ptr %34, align 8, !tbaa !9
  br label %1144, !llvm.loop !22

1302:                                             ; preds = %1144
  %1303 = load ptr, ptr %17, align 8, !tbaa !5
  %1304 = load ptr, ptr %19, align 8, !tbaa !5
  %1305 = getelementptr inbounds float, ptr %1304, i64 1
  %1306 = load ptr, ptr %17, align 8, !tbaa !5
  %1307 = load ptr, ptr %27, align 8, !tbaa !5
  %1308 = call i32 @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b11, ptr noundef %66, ptr noundef %1303, ptr noundef @c__1, ptr noundef %1305, ptr noundef %1306, ptr noundef %1307)
  %1309 = load ptr, ptr %17, align 8, !tbaa !5
  %1310 = load ptr, ptr %19, align 8, !tbaa !5
  %1311 = getelementptr inbounds float, ptr %1310, i64 1
  %1312 = load ptr, ptr %27, align 8, !tbaa !5
  %1313 = call i32 @slasrt_(ptr noundef @.str.8, ptr noundef %1309, ptr noundef %1311, ptr noundef %1312)
  %1314 = load ptr, ptr %17, align 8, !tbaa !5
  %1315 = load ptr, ptr %18, align 8, !tbaa !5
  %1316 = load ptr, ptr %21, align 8, !tbaa !5
  %1317 = load i64, ptr %29, align 8, !tbaa !9
  %1318 = getelementptr inbounds float, ptr %1316, i64 %1317
  %1319 = load ptr, ptr %22, align 8, !tbaa !5
  %1320 = load ptr, ptr %27, align 8, !tbaa !5
  %1321 = call i32 @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %66, ptr noundef @c_b11, ptr noundef %1314, ptr noundef %1315, ptr noundef %1318, ptr noundef %1319, ptr noundef %1320)
  store i32 0, ptr %14, align 4
  store i32 1, ptr %70, align 4
  br label %1322

1322:                                             ; preds = %1302, %1295, %1037, %942, %840, %465, %400, %338, %189, %142, %117
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #4
  %1323 = load i32, ptr %14, align 4
  ret i32 %1323
}

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = distinct !{!22, !15}


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

@.str = external hidden unnamed_addr constant [7 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_b6 = external hidden global float, align 4
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i64, align 8
@c_b11 = external hidden global float, align 4
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1

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

34:                                               ; preds = %13
  %35 = load i64, ptr %3, align 8, !tbaa !5
  %36 = icmp slt i64 %35, 1
  br i1 %36, label %.thread, label %37

37:                                               ; preds = %34
  %38 = load i64, ptr %7, align 8, !tbaa !5
  %39 = icmp slt i64 %38, 1
  %40 = icmp slt i64 %38, %32
  %or.cond = or i1 %39, %40
  br i1 %or.cond, label %.thread, label %42

.thread:                                          ; preds = %37, %34, %13
  %.sink = phi i64 [ -3, %13 ], [ -4, %34 ], [ -8, %37 ]
  %.neg = phi i64 [ 3, %13 ], [ 4, %34 ], [ 8, %37 ]
  store i64 %.sink, ptr %12, align 8, !tbaa !5
  store i64 %.neg, ptr %14, align 8, !tbaa !5
  %41 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %14) #4
  br label %.loopexit

42:                                               ; preds = %37
  %43 = tail call double @slamch_(ptr noundef nonnull @.str.1) #4
  %44 = fptrunc double %43 to float
  store float %44, ptr %19, align 4, !tbaa !9
  %45 = load float, ptr %8, align 4, !tbaa !9
  %46 = fcmp ugt float %45, 0.000000e+00
  %47 = fcmp ult float %45, 1.000000e+00
  %or.cond623 = and i1 %46, %47
  %.0588 = select i1 %or.cond623, float %45, float %44
  store i64 0, ptr %9, align 8, !tbaa !5
  %48 = load i64, ptr %2, align 8, !tbaa !5
  switch i64 %48, label %60 [
    i64 0, label %.loopexit
    i64 1, label %49
  ]

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

52:                                               ; preds = %49
  %53 = tail call i32 @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef nonnull @c_b6, ptr noundef nonnull @c_b6, ptr noundef %6, ptr noundef nonnull %7) #4
  br label %.loopexit

54:                                               ; preds = %49
  store i64 1, ptr %9, align 8, !tbaa !5
  %55 = tail call i32 @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %4, ptr noundef nonnull @c_b11, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %12) #4
  %56 = load float, ptr %4, align 4, !tbaa !9
  %57 = fcmp ult float %56, 0.000000e+00
  %58 = fneg float %56
  %59 = select i1 %57, float %58, float %56
  store float %59, ptr %4, align 4, !tbaa !9
  br label %.loopexit

60:                                               ; preds = %42
  %61 = load i8, ptr %0, align 1, !tbaa !11
  %62 = icmp eq i8 %61, 76
  br i1 %62, label %63, label %.loopexit629

63:                                               ; preds = %60
  %64 = add nsw i64 %48, -1
  %invariant.gep = getelementptr i8, ptr %6, i64 -4
  %.not604631 = icmp slt i64 %48, 2
  br i1 %.not604631, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %63, %85
  %.0585632 = phi i64 [ %70, %85 ], [ 1, %63 ]
  %65 = getelementptr inbounds float, ptr %25, i64 %.0585632
  %66 = getelementptr inbounds float, ptr %26, i64 %.0585632
  %67 = call i32 @slartg_(ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %15) #4
  %68 = load float, ptr %15, align 4, !tbaa !9
  store float %68, ptr %65, align 4, !tbaa !9
  %69 = load float, ptr %17, align 4, !tbaa !9
  %70 = add nuw nsw i64 %.0585632, 1
  %71 = getelementptr float, ptr %4, i64 %.0585632
  %72 = load float, ptr %71, align 4, !tbaa !9
  %73 = fmul float %69, %72
  store float %73, ptr %66, align 4, !tbaa !9
  %74 = load float, ptr %16, align 4, !tbaa !9
  %75 = load float, ptr %71, align 4, !tbaa !9
  %76 = fmul float %74, %75
  store float %76, ptr %71, align 4, !tbaa !9
  %77 = load i64, ptr %3, align 8, !tbaa !5
  %78 = icmp eq i64 %77, 1
  br i1 %78, label %79, label %82

79:                                               ; preds = %.lr.ph
  %gep = getelementptr float, ptr %invariant.gep, i64 %.0585632
  %80 = getelementptr inbounds float, ptr %6, i64 %.0585632
  %81 = call i32 @f2c_srot(ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %80, ptr noundef nonnull @c__1, ptr noundef nonnull %16, ptr noundef nonnull %17) #4
  br label %85

82:                                               ; preds = %.lr.ph
  %.idx621 = shl i64 %.0585632, 3
  %83 = getelementptr i8, ptr %30, i64 %.idx621
  %84 = getelementptr i8, ptr %83, i64 -4
  store float %74, ptr %84, align 4, !tbaa !9
  store float %69, ptr %83, align 4, !tbaa !9
  br label %85

85:                                               ; preds = %79, %82
  %.not604.not = icmp slt i64 %.0585632, %64
  br i1 %.not604.not, label %.lr.ph, label %._crit_edge, !llvm.loop !12

._crit_edge:                                      ; preds = %85, %63
  %86 = load i64, ptr %3, align 8, !tbaa !5
  %87 = icmp sgt i64 %86, 1
  br i1 %87, label %.lr.ph645, label %.loopexit629

.lr.ph645:                                        ; preds = %._crit_edge
  %88 = load i64, ptr %2, align 8, !tbaa !5
  %89 = icmp sgt i64 %88, 1
  br i1 %89, label %.lr.ph645.split, label %.loopexit629

.lr.ph645.splitthread-pre-split:                  ; preds = %._crit_edge637
  %90 = add nuw nsw i64 %.1586643, 1
  %.pr = load i64, ptr %2, align 8, !tbaa !5
  br label %.lr.ph645.split

.lr.ph645.split:                                  ; preds = %.lr.ph645, %.lr.ph645.splitthread-pre-split
  %91 = phi i64 [ %.pr, %.lr.ph645.splitthread-pre-split ], [ %88, %.lr.ph645 ]
  %.1586643 = phi i64 [ %90, %.lr.ph645.splitthread-pre-split ], [ 1, %.lr.ph645 ]
  %.not619.not633 = icmp sgt i64 %91, 1
  br i1 %.not619.not633, label %.lr.ph636, label %._crit_edge637

.lr.ph636:                                        ; preds = %.lr.ph645.split
  %92 = mul nsw i64 %.1586643, %27
  %invariant.gep638 = getelementptr float, ptr %29, i64 %92
  br label %93

93:                                               ; preds = %.lr.ph636, %93
  %.0589634 = phi i64 [ 1, %.lr.ph636 ], [ %98, %93 ]
  %.idx = shl i64 %.0589634, 3
  %94 = getelementptr i8, ptr %30, i64 %.idx
  %95 = getelementptr i8, ptr %94, i64 -4
  %96 = load float, ptr %95, align 4, !tbaa !9
  store float %96, ptr %16, align 4, !tbaa !9
  %97 = load float, ptr %94, align 4, !tbaa !9
  store float %97, ptr %17, align 4, !tbaa !9
  %gep639 = getelementptr float, ptr %invariant.gep638, i64 %.0589634
  %98 = add nuw nsw i64 %.0589634, 1
  %gep641 = getelementptr float, ptr %invariant.gep638, i64 %98
  %99 = call i32 @f2c_srot(ptr noundef nonnull @c__1, ptr noundef %gep639, ptr noundef nonnull @c__1, ptr noundef %gep641, ptr noundef nonnull @c__1, ptr noundef nonnull %16, ptr noundef nonnull %17) #4
  %exitcond.not = icmp eq i64 %98, %91
  br i1 %exitcond.not, label %._crit_edge637, label %93, !llvm.loop !14

._crit_edge637:                                   ; preds = %93, %.lr.ph645.split
  %.not605.not = icmp slt i64 %.1586643, %86
  br i1 %.not605.not, label %.lr.ph645.splitthread-pre-split, label %.loopexit629, !llvm.loop !15

.loopexit629:                                     ; preds = %._crit_edge637, %.lr.ph645, %._crit_edge, %60
  %100 = load i64, ptr %2, align 8, !tbaa !5
  %101 = add nsw i64 %100, -1
  store i64 %101, ptr %18, align 8, !tbaa !5
  %102 = call double @slanst_(ptr noundef nonnull @.str.4, ptr noundef nonnull %2, ptr noundef %4, ptr noundef %5) #4
  %103 = fptrunc double %102 to float
  store float %103, ptr %24, align 4, !tbaa !9
  %104 = fcmp oeq float %103, 0.000000e+00
  br i1 %104, label %105, label %107

105:                                              ; preds = %.loopexit629
  %106 = call i32 @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull @c_b6, ptr noundef nonnull @c_b6, ptr noundef %6, ptr noundef nonnull %7) #4
  br label %.loopexit

107:                                              ; preds = %.loopexit629
  %108 = call i32 @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b11, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %4, ptr noundef nonnull %2, ptr noundef nonnull %12) #4
  %109 = call i32 @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b11, ptr noundef nonnull %18, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %18, ptr noundef nonnull %12) #4
  %110 = load i64, ptr %2, align 8, !tbaa !5
  %111 = load i64, ptr %1, align 8, !tbaa !5
  %.not606 = icmp sgt i64 %110, %111
  br i1 %.not606, label %143, label %112

112:                                              ; preds = %107
  %113 = mul nsw i64 %110, %110
  %114 = call i32 @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c_b6, ptr noundef nonnull @c_b11, ptr noundef %10, ptr noundef nonnull %2) #4
  %115 = getelementptr float, ptr %10, i64 %113
  %116 = call i32 @slasdq_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c__0, ptr noundef nonnull %3, ptr noundef %4, ptr noundef %5, ptr noundef %10, ptr noundef nonnull %2, ptr noundef %10, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %115, ptr noundef nonnull %12) #4
  %117 = load i64, ptr %12, align 8, !tbaa !5
  %.not617 = icmp eq i64 %117, 0
  br i1 %.not617, label %118, label %.loopexit

118:                                              ; preds = %112
  %119 = call i64 @f2c_isamax(ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull @c__1) #4
  %120 = getelementptr inbounds float, ptr %25, i64 %119
  %121 = load float, ptr %120, align 4, !tbaa !9
  %122 = fcmp oge float %121, 0.000000e+00
  %123 = fneg float %121
  %124 = select i1 %122, float %121, float %123
  %125 = fmul float %.0588, %124
  %126 = load i64, ptr %2, align 8, !tbaa !5
  %invariant.gep646 = getelementptr i8, ptr %6, i64 -4
  %.not618650 = icmp slt i64 %126, 1
  br i1 %.not618650, label %._crit_edge654, label %.lr.ph653

.lr.ph653:                                        ; preds = %118, %136
  %.2587651 = phi i64 [ %137, %136 ], [ 1, %118 ]
  %127 = getelementptr inbounds float, ptr %25, i64 %.2587651
  %128 = load float, ptr %127, align 4, !tbaa !9
  %129 = fcmp ugt float %128, %125
  %gep649 = getelementptr float, ptr %invariant.gep646, i64 %.2587651
  br i1 %129, label %132, label %130

130:                                              ; preds = %.lr.ph653
  %131 = call i32 @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef nonnull @c_b6, ptr noundef nonnull @c_b6, ptr noundef %gep649, ptr noundef nonnull %7) #4
  br label %136

132:                                              ; preds = %.lr.ph653
  %133 = call i32 @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %127, ptr noundef nonnull @c_b11, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef %gep649, ptr noundef nonnull %7, ptr noundef nonnull %12) #4
  %134 = load i64, ptr %9, align 8, !tbaa !5
  %135 = add nsw i64 %134, 1
  store i64 %135, ptr %9, align 8, !tbaa !5
  br label %136

136:                                              ; preds = %130, %132
  %137 = add nuw nsw i64 %.2587651, 1
  %.not618.not = icmp slt i64 %.2587651, %126
  br i1 %.not618.not, label %.lr.ph653, label %._crit_edge654, !llvm.loop !17

._crit_edge654:                                   ; preds = %136, %118
  %138 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %2, ptr noundef nonnull @c_b11, ptr noundef %10, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull @c_b6, ptr noundef %115, ptr noundef nonnull %2) #4
  %139 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %115, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7) #4
  %140 = call i32 @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b11, ptr noundef nonnull %24, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull %2, ptr noundef nonnull %12) #4
  %141 = call i32 @slasrt_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef nonnull %4, ptr noundef nonnull %12) #4
  %142 = call i32 @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b11, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %12) #4
  br label %.loopexit

143:                                              ; preds = %107
  %144 = sitofp i64 %110 to float
  %145 = add nsw i64 %111, 1
  %146 = sitofp i64 %145 to float
  %147 = fdiv float %144, %146
  %148 = fpext float %147 to double
  %149 = call double @log(double noundef %148) #4
  %150 = fdiv double %149, 0x3FE62E42FEFA39EF
  %151 = fptosi double %150 to i64
  %152 = add nsw i64 %151, 1
  %153 = load i64, ptr %1, align 8, !tbaa !5
  %154 = add nsw i64 %153, 1
  %155 = load i64, ptr %2, align 8, !tbaa !5
  %156 = mul nsw i64 %155, %153
  %157 = add nsw i64 %156, 1
  %158 = mul nsw i64 %154, %155
  %159 = add nsw i64 %157, %158
  %160 = mul nsw i64 %152, %155
  %161 = add nsw i64 %159, %160
  %162 = shl i64 %160, 1
  %163 = add nsw i64 %161, %162
  %164 = add nsw i64 %163, %160
  %165 = add nsw i64 %164, %155
  %166 = add nsw i64 %165, %155
  %167 = shl i64 %152, 1
  %168 = mul nsw i64 %167, %155
  %169 = add nsw i64 %166, %168
  %170 = add nsw i64 %169, %168
  %171 = load i64, ptr %3, align 8, !tbaa !5
  %172 = mul nsw i64 %171, %155
  %173 = add nsw i64 %170, %172
  %reass.add = shl i64 %155, 1
  %174 = or disjoint i64 %reass.add, 1
  %175 = add nsw i64 %174, %155
  %176 = add nsw i64 %175, %155
  %177 = add nsw i64 %176, %160
  %178 = add nsw i64 %177, %162
  store i64 0, ptr %20, align 8, !tbaa !5
  store i64 1, ptr %22, align 8, !tbaa !5
  store i64 0, ptr %23, align 8, !tbaa !5
  %.not607655 = icmp slt i64 %155, 1
  br i1 %.not607655, label %._crit_edge659, label %.lr.ph658

.lr.ph658:                                        ; preds = %143, %189
  %.3656 = phi i64 [ %190, %189 ], [ 1, %143 ]
  %179 = getelementptr inbounds float, ptr %25, i64 %.3656
  %180 = load float, ptr %179, align 4, !tbaa !9
  %181 = fcmp oge float %180, 0.000000e+00
  %182 = fneg float %180
  %183 = select i1 %181, float %180, float %182
  %184 = load float, ptr %19, align 4, !tbaa !9
  %185 = fcmp olt float %183, %184
  br i1 %185, label %186, label %189

186:                                              ; preds = %.lr.ph658
  %187 = call double @r_sign(ptr noundef nonnull %19, ptr noundef nonnull %179) #4
  %188 = fptrunc double %187 to float
  store float %188, ptr %179, align 4, !tbaa !9
  br label %189

189:                                              ; preds = %.lr.ph658, %186
  %190 = add nuw nsw i64 %.3656, 1
  %.not607.not = icmp slt i64 %.3656, %155
  br i1 %.not607.not, label %.lr.ph658, label %._crit_edge659, !llvm.loop !18

._crit_edge659:                                   ; preds = %189, %143
  %191 = load i64, ptr %18, align 8, !tbaa !5
  %invariant.gep660 = getelementptr i8, ptr %6, i64 -4
  %.not608668 = icmp slt i64 %191, 1
  br i1 %.not608668, label %._crit_edge674, label %.lr.ph673

.lr.ph673:                                        ; preds = %._crit_edge659
  %192 = getelementptr i64, ptr %11, i64 %155
  %193 = getelementptr i64, ptr %31, i64 %155
  %194 = getelementptr float, ptr %30, i64 %170
  %195 = getelementptr float, ptr %30, i64 %156
  %196 = getelementptr inbounds float, ptr %30, i64 %173
  %197 = getelementptr i64, ptr %11, i64 %reass.add
  %198 = getelementptr float, ptr %30, i64 %159
  %199 = getelementptr float, ptr %30, i64 %161
  %200 = getelementptr float, ptr %30, i64 %163
  %201 = getelementptr float, ptr %30, i64 %166
  %202 = getelementptr i64, ptr %31, i64 %175
  %203 = getelementptr i64, ptr %31, i64 %177
  %204 = getelementptr i64, ptr %31, i64 %176
  %205 = getelementptr float, ptr %30, i64 %169
  %206 = getelementptr float, ptr %30, i64 %164
  %207 = getelementptr float, ptr %30, i64 %165
  %208 = getelementptr inbounds i64, ptr %31, i64 %178
  br label %209

209:                                              ; preds = %.lr.ph673, %288
  %.0584671 = phi i64 [ 0, %.lr.ph673 ], [ %.2, %288 ]
  %.4670 = phi i64 [ 1, %.lr.ph673 ], [ %.pre-phi, %288 ]
  %.0590669 = phi i64 [ 1, %.lr.ph673 ], [ %.1591, %288 ]
  %210 = getelementptr inbounds float, ptr %26, i64 %.4670
  %211 = load float, ptr %210, align 4, !tbaa !9
  %212 = fcmp oge float %211, 0.000000e+00
  %213 = fneg float %211
  %214 = select i1 %212, float %211, float %213
  %215 = load float, ptr %19, align 4, !tbaa !9
  %216 = fcmp olt float %214, %215
  %217 = load i64, ptr %18, align 8
  %218 = icmp eq i64 %.4670, %217
  %or.cond625 = select i1 %216, i1 true, i1 %218
  br i1 %or.cond625, label %219, label %._crit_edge697

._crit_edge697:                                   ; preds = %209
  %.pre = add nuw nsw i64 %.4670, 1
  br label %288

219:                                              ; preds = %209
  %220 = add nsw i64 %.0584671, 1
  %221 = getelementptr i64, ptr %11, i64 %.0584671
  store i64 %.0590669, ptr %221, align 8, !tbaa !5
  %222 = icmp slt i64 %.4670, %217
  br i1 %222, label %223, label %227

223:                                              ; preds = %219
  %224 = sub nsw i64 %.4670, %.0590669
  %225 = add nsw i64 %224, 1
  store i64 %225, ptr %21, align 8, !tbaa !5
  %226 = getelementptr i64, ptr %192, i64 %.0584671
  store i64 %225, ptr %226, align 8, !tbaa !5
  br label %245

227:                                              ; preds = %219
  %228 = fcmp ult float %214, %215
  br i1 %228, label %234, label %229

229:                                              ; preds = %227
  %230 = load i64, ptr %2, align 8, !tbaa !5
  %231 = sub nsw i64 %230, %.0590669
  %232 = add nsw i64 %231, 1
  store i64 %232, ptr %21, align 8, !tbaa !5
  %233 = getelementptr i64, ptr %192, i64 %.0584671
  store i64 %232, ptr %233, align 8, !tbaa !5
  br label %245

234:                                              ; preds = %227
  %235 = sub nsw i64 %.4670, %.0590669
  %236 = add nsw i64 %235, 1
  store i64 %236, ptr %21, align 8, !tbaa !5
  %237 = getelementptr i64, ptr %192, i64 %.0584671
  store i64 %236, ptr %237, align 8, !tbaa !5
  %238 = add nsw i64 %.0584671, 2
  %239 = load i64, ptr %2, align 8, !tbaa !5
  %240 = getelementptr inbounds i64, ptr %31, i64 %238
  store i64 %239, ptr %240, align 8, !tbaa !5
  %241 = getelementptr i64, ptr %193, i64 %238
  store i64 1, ptr %241, align 8, !tbaa !5
  %242 = load i64, ptr %2, align 8, !tbaa !5
  %gep661 = getelementptr float, ptr %invariant.gep660, i64 %242
  %243 = getelementptr float, ptr %194, i64 %217
  %244 = call i32 @f2c_scopy(ptr noundef nonnull %3, ptr noundef %gep661, ptr noundef nonnull %7, ptr noundef %243, ptr noundef nonnull %2) #4
  %.pr627 = load i64, ptr %21, align 8, !tbaa !5
  br label %245

245:                                              ; preds = %229, %234, %223
  %246 = phi i64 [ %232, %229 ], [ %.pr627, %234 ], [ %225, %223 ]
  %.1 = phi i64 [ %220, %229 ], [ %238, %234 ], [ %220, %223 ]
  %247 = add nsw i64 %.0590669, -1
  %248 = icmp eq i64 %246, 1
  br i1 %248, label %249, label %252

249:                                              ; preds = %245
  %gep667 = getelementptr float, ptr %invariant.gep660, i64 %.0590669
  %250 = getelementptr float, ptr %194, i64 %247
  %251 = call i32 @f2c_scopy(ptr noundef nonnull %3, ptr noundef %gep667, ptr noundef nonnull %7, ptr noundef %250, ptr noundef nonnull %2) #4
  br label %286

252:                                              ; preds = %245
  %253 = load i64, ptr %1, align 8, !tbaa !5
  %.not613 = icmp sgt i64 %246, %253
  br i1 %.not613, label %264, label %254

254:                                              ; preds = %252
  %255 = getelementptr float, ptr %195, i64 %.0590669
  %256 = call i32 @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %21, ptr noundef nonnull %21, ptr noundef nonnull @c_b6, ptr noundef nonnull @c_b11, ptr noundef %255, ptr noundef nonnull %2) #4
  %257 = getelementptr inbounds float, ptr %25, i64 %.0590669
  %258 = getelementptr inbounds float, ptr %26, i64 %.0590669
  %gep663 = getelementptr float, ptr %invariant.gep660, i64 %.0590669
  %259 = call i32 @slasdq_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull %21, ptr noundef nonnull %21, ptr noundef nonnull @c__0, ptr noundef nonnull %3, ptr noundef nonnull %257, ptr noundef nonnull %258, ptr noundef %255, ptr noundef nonnull %2, ptr noundef nonnull %196, ptr noundef nonnull %2, ptr noundef %gep663, ptr noundef nonnull %7, ptr noundef nonnull %196, ptr noundef nonnull %12) #4
  %260 = load i64, ptr %12, align 8, !tbaa !5
  %.not616 = icmp eq i64 %260, 0
  br i1 %.not616, label %261, label %.loopexit

261:                                              ; preds = %254
  %262 = getelementptr float, ptr %194, i64 %247
  %263 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %21, ptr noundef nonnull %3, ptr noundef %gep663, ptr noundef nonnull %7, ptr noundef %262, ptr noundef nonnull %2) #4
  br label %286

264:                                              ; preds = %252
  %265 = getelementptr inbounds float, ptr %25, i64 %.0590669
  %266 = getelementptr inbounds float, ptr %26, i64 %.0590669
  %267 = getelementptr inbounds float, ptr %30, i64 %.0590669
  %268 = getelementptr float, ptr %195, i64 %.0590669
  %269 = getelementptr i64, ptr %197, i64 %247
  %270 = getelementptr float, ptr %198, i64 %247
  %271 = getelementptr float, ptr %199, i64 %247
  %272 = getelementptr float, ptr %200, i64 %247
  %273 = getelementptr float, ptr %201, i64 %247
  %274 = getelementptr i64, ptr %202, i64 %247
  %275 = getelementptr i64, ptr %203, i64 %247
  %276 = getelementptr i64, ptr %204, i64 %247
  %277 = getelementptr float, ptr %205, i64 %247
  %278 = getelementptr float, ptr %206, i64 %247
  %279 = getelementptr float, ptr %207, i64 %247
  %280 = call i32 @slasda_(ptr noundef nonnull %22, ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef nonnull %20, ptr noundef nonnull %265, ptr noundef nonnull %266, ptr noundef nonnull %267, ptr noundef nonnull %2, ptr noundef %268, ptr noundef %269, ptr noundef %270, ptr noundef %271, ptr noundef %272, ptr noundef %273, ptr noundef %274, ptr noundef %275, ptr noundef nonnull %2, ptr noundef %276, ptr noundef %277, ptr noundef %278, ptr noundef %279, ptr noundef nonnull %196, ptr noundef nonnull %208, ptr noundef nonnull %12) #4
  %281 = load i64, ptr %12, align 8, !tbaa !5
  %.not614 = icmp eq i64 %281, 0
  br i1 %.not614, label %282, label %.loopexit

282:                                              ; preds = %264
  %gep665 = getelementptr float, ptr %invariant.gep660, i64 %.0590669
  %283 = getelementptr float, ptr %194, i64 %247
  %284 = call i32 @slalsa_(ptr noundef nonnull %23, ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef nonnull %3, ptr noundef %gep665, ptr noundef nonnull %7, ptr noundef %283, ptr noundef nonnull %2, ptr noundef nonnull %267, ptr noundef nonnull %2, ptr noundef %268, ptr noundef %269, ptr noundef %270, ptr noundef %271, ptr noundef %272, ptr noundef %273, ptr noundef %274, ptr noundef %275, ptr noundef nonnull %2, ptr noundef %276, ptr noundef %277, ptr noundef %278, ptr noundef %279, ptr noundef nonnull %196, ptr noundef nonnull %208, ptr noundef nonnull %12) #4
  %285 = load i64, ptr %12, align 8, !tbaa !5
  %.not615 = icmp eq i64 %285, 0
  br i1 %.not615, label %286, label %.loopexit

286:                                              ; preds = %261, %282, %249
  %287 = add nuw nsw i64 %.4670, 1
  br label %288

288:                                              ; preds = %._crit_edge697, %286
  %.pre-phi = phi i64 [ %.pre, %._crit_edge697 ], [ %287, %286 ]
  %.1591 = phi i64 [ %.0590669, %._crit_edge697 ], [ %287, %286 ]
  %.2 = phi i64 [ %.0584671, %._crit_edge697 ], [ %.1, %286 ]
  %.not608.not = icmp slt i64 %.4670, %191
  br i1 %.not608.not, label %209, label %._crit_edge674, !llvm.loop !19

._crit_edge674:                                   ; preds = %288, %._crit_edge659
  %289 = phi i64 [ 0, %._crit_edge659 ], [ %.2, %288 ]
  %290 = call i64 @f2c_isamax(ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull @c__1) #4
  %291 = getelementptr inbounds float, ptr %25, i64 %290
  %292 = load float, ptr %291, align 4, !tbaa !9
  %293 = fcmp oge float %292, 0.000000e+00
  %294 = fneg float %292
  %295 = select i1 %293, float %292, float %294
  %296 = fmul float %.0588, %295
  %297 = load i64, ptr %2, align 8, !tbaa !5
  %.not609675 = icmp slt i64 %297, 1
  br i1 %.not609675, label %._crit_edge679, label %.lr.ph678

.lr.ph678:                                        ; preds = %._crit_edge674
  %298 = getelementptr float, ptr %30, i64 %170
  %invariant.gep680 = getelementptr i8, ptr %298, i64 -4
  br label %299

299:                                              ; preds = %.lr.ph678, %312
  %.5676 = phi i64 [ 1, %.lr.ph678 ], [ %317, %312 ]
  %300 = getelementptr inbounds float, ptr %25, i64 %.5676
  %301 = load float, ptr %300, align 4, !tbaa !9
  %302 = fcmp oge float %301, 0.000000e+00
  %303 = fneg float %301
  %304 = select i1 %302, float %301, float %303
  %305 = fcmp ugt float %304, %296
  br i1 %305, label %308, label %306

306:                                              ; preds = %299
  %gep681 = getelementptr float, ptr %invariant.gep680, i64 %.5676
  %307 = call i32 @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef nonnull @c_b6, ptr noundef nonnull @c_b6, ptr noundef %gep681, ptr noundef nonnull %2) #4
  br label %312

308:                                              ; preds = %299
  %309 = load i64, ptr %9, align 8, !tbaa !5
  %310 = add nsw i64 %309, 1
  store i64 %310, ptr %9, align 8, !tbaa !5
  %gep683 = getelementptr float, ptr %invariant.gep680, i64 %.5676
  %311 = call i32 @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %300, ptr noundef nonnull @c_b11, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef %gep683, ptr noundef nonnull %2, ptr noundef nonnull %12) #4
  br label %312

312:                                              ; preds = %308, %306
  %313 = load float, ptr %300, align 4, !tbaa !9
  %314 = fcmp oge float %313, 0.000000e+00
  %315 = fneg float %313
  %316 = select i1 %314, float %313, float %315
  store float %316, ptr %300, align 4, !tbaa !9
  %317 = add nuw nsw i64 %.5676, 1
  %.not609.not = icmp slt i64 %.5676, %297
  br i1 %.not609.not, label %299, label %._crit_edge679, !llvm.loop !20

._crit_edge679:                                   ; preds = %312, %._crit_edge674
  store i64 1, ptr %23, align 8, !tbaa !5
  %.not610690 = icmp slt i64 %289, 1
  br i1 %.not610690, label %._crit_edge694, label %.lr.ph693

.lr.ph693:                                        ; preds = %._crit_edge679
  %318 = getelementptr i64, ptr %31, i64 %155
  %319 = getelementptr float, ptr %30, i64 %156
  %320 = getelementptr i64, ptr %11, i64 %reass.add
  %321 = getelementptr float, ptr %30, i64 %159
  %322 = getelementptr float, ptr %30, i64 %161
  %323 = getelementptr float, ptr %30, i64 %163
  %324 = getelementptr float, ptr %30, i64 %166
  %325 = getelementptr i64, ptr %31, i64 %175
  %326 = getelementptr i64, ptr %31, i64 %177
  %327 = getelementptr i64, ptr %31, i64 %176
  %328 = getelementptr float, ptr %30, i64 %169
  %329 = getelementptr float, ptr %30, i64 %164
  %330 = getelementptr float, ptr %30, i64 %165
  %331 = getelementptr inbounds float, ptr %30, i64 %173
  %332 = getelementptr inbounds i64, ptr %31, i64 %178
  br label %333

333:                                              ; preds = %.lr.ph693, %367
  %.6691 = phi i64 [ 1, %.lr.ph693 ], [ %368, %367 ]
  %334 = getelementptr inbounds i64, ptr %31, i64 %.6691
  %335 = load i64, ptr %334, align 8, !tbaa !5
  %336 = add nsw i64 %335, -1
  %337 = getelementptr i64, ptr %318, i64 %.6691
  %338 = load i64, ptr %337, align 8, !tbaa !5
  store i64 %338, ptr %21, align 8, !tbaa !5
  %339 = add nsw i64 %336, %170
  %340 = icmp eq i64 %338, 1
  br i1 %340, label %341, label %344

341:                                              ; preds = %333
  %342 = getelementptr inbounds float, ptr %30, i64 %339
  %gep689 = getelementptr float, ptr %invariant.gep660, i64 %335
  %343 = call i32 @f2c_scopy(ptr noundef nonnull %3, ptr noundef nonnull %342, ptr noundef nonnull %2, ptr noundef %gep689, ptr noundef nonnull %7) #4
  br label %367

344:                                              ; preds = %333
  %345 = load i64, ptr %1, align 8, !tbaa !5
  %.not611 = icmp sgt i64 %338, %345
  br i1 %.not611, label %350, label %346

346:                                              ; preds = %344
  %347 = getelementptr float, ptr %319, i64 %335
  %348 = getelementptr inbounds float, ptr %30, i64 %339
  %gep685 = getelementptr float, ptr %invariant.gep660, i64 %335
  %349 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %21, ptr noundef nonnull %3, ptr noundef nonnull %21, ptr noundef nonnull @c_b11, ptr noundef %347, ptr noundef nonnull %2, ptr noundef nonnull %348, ptr noundef nonnull %2, ptr noundef nonnull @c_b6, ptr noundef %gep685, ptr noundef nonnull %7) #4
  br label %367

350:                                              ; preds = %344
  %351 = getelementptr inbounds float, ptr %30, i64 %339
  %gep687 = getelementptr float, ptr %invariant.gep660, i64 %335
  %352 = getelementptr inbounds float, ptr %30, i64 %335
  %353 = getelementptr float, ptr %319, i64 %335
  %354 = getelementptr i64, ptr %320, i64 %336
  %355 = getelementptr float, ptr %321, i64 %336
  %356 = getelementptr float, ptr %322, i64 %336
  %357 = getelementptr float, ptr %323, i64 %336
  %358 = getelementptr float, ptr %324, i64 %336
  %359 = getelementptr i64, ptr %325, i64 %336
  %360 = getelementptr i64, ptr %326, i64 %336
  %361 = getelementptr i64, ptr %327, i64 %336
  %362 = getelementptr float, ptr %328, i64 %336
  %363 = getelementptr float, ptr %329, i64 %336
  %364 = getelementptr float, ptr %330, i64 %336
  %365 = call i32 @slalsa_(ptr noundef nonnull %23, ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef nonnull %3, ptr noundef nonnull %351, ptr noundef nonnull %2, ptr noundef %gep687, ptr noundef nonnull %7, ptr noundef nonnull %352, ptr noundef nonnull %2, ptr noundef %353, ptr noundef %354, ptr noundef %355, ptr noundef %356, ptr noundef %357, ptr noundef %358, ptr noundef %359, ptr noundef %360, ptr noundef nonnull %2, ptr noundef %361, ptr noundef %362, ptr noundef %363, ptr noundef %364, ptr noundef nonnull %331, ptr noundef nonnull %332, ptr noundef nonnull %12) #4
  %366 = load i64, ptr %12, align 8, !tbaa !5
  %.not612 = icmp eq i64 %366, 0
  br i1 %.not612, label %367, label %.loopexit

367:                                              ; preds = %341, %350, %346
  %368 = add nuw nsw i64 %.6691, 1
  %.not610.not = icmp slt i64 %.6691, %289
  br i1 %.not610.not, label %333, label %._crit_edge694, !llvm.loop !21

._crit_edge694:                                   ; preds = %367, %._crit_edge679
  %369 = call i32 @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b11, ptr noundef nonnull %24, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %4, ptr noundef nonnull %2, ptr noundef nonnull %12) #4
  %370 = call i32 @slasrt_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %12) #4
  %371 = call i32 @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %24, ptr noundef nonnull @c_b11, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %12) #4
  br label %.loopexit

.loopexit:                                        ; preds = %282, %264, %254, %350, %112, %52, %54, %42, %._crit_edge694, %._crit_edge654, %105, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 8, 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
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #4
  ret i32 0
}

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

declare double @r_sign(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13, !16}
!16 = !{!"llvm.loop.unswitch.partial.disable"}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}


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