; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4
@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 i32, align 4
@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 void @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 ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca 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 i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca float, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca float, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca float, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca float, align 4
  %55 = alloca i32, align 4
  %56 = alloca float, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca float, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca float, align 4
  %67 = alloca i32, align 4
  %68 = alloca float, align 4
  %69 = alloca i32, align 4
  store ptr %0, ptr %14, align 8, !tbaa !5
  store ptr %1, ptr %15, align 8, !tbaa !5
  store ptr %2, ptr %16, align 8, !tbaa !5
  store ptr %3, ptr %17, align 8, !tbaa !5
  store ptr %4, ptr %18, align 8, !tbaa !5
  store ptr %5, ptr %19, align 8, !tbaa !5
  store ptr %6, ptr %20, align 8, !tbaa !5
  store ptr %7, ptr %21, align 8, !tbaa !5
  store ptr %8, ptr %22, align 8, !tbaa !5
  store ptr %9, ptr %23, align 8, !tbaa !5
  store ptr %10, ptr %24, align 8, !tbaa !5
  store ptr %11, ptr %25, align 8, !tbaa !5
  store ptr %12, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #4
  %70 = load ptr, ptr %18, align 8, !tbaa !5
  %71 = getelementptr inbounds float, ptr %70, i32 -1
  store ptr %71, ptr %18, align 8, !tbaa !5
  %72 = load ptr, ptr %19, align 8, !tbaa !5
  %73 = getelementptr inbounds float, ptr %72, i32 -1
  store ptr %73, ptr %19, align 8, !tbaa !5
  %74 = load ptr, ptr %21, align 8, !tbaa !5
  %75 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %75, ptr %27, align 4, !tbaa !9
  %76 = load i32, ptr %27, align 4, !tbaa !9
  %77 = mul nsw i32 %76, 1
  %78 = add nsw i32 1, %77
  store i32 %78, ptr %28, align 4, !tbaa !9
  %79 = load i32, ptr %28, align 4, !tbaa !9
  %80 = load ptr, ptr %20, align 8, !tbaa !5
  %81 = sext i32 %79 to i64
  %82 = sub i64 0, %81
  %83 = getelementptr inbounds float, ptr %80, i64 %82
  store ptr %83, ptr %20, align 8, !tbaa !5
  %84 = load ptr, ptr %24, align 8, !tbaa !5
  %85 = getelementptr inbounds float, ptr %84, i32 -1
  store ptr %85, ptr %24, align 8, !tbaa !5
  %86 = load ptr, ptr %25, align 8, !tbaa !5
  %87 = getelementptr inbounds i32, ptr %86, i32 -1
  store ptr %87, ptr %25, align 8, !tbaa !5
  %88 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 0, ptr %88, align 4, !tbaa !9
  %89 = load ptr, ptr %16, align 8, !tbaa !5
  %90 = load i32, ptr %89, align 4, !tbaa !9
  %91 = icmp slt i32 %90, 0
  br i1 %91, label %92, label %94

92:                                               ; preds = %13
  %93 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 -3, ptr %93, align 4, !tbaa !9
  br label %114

94:                                               ; preds = %13
  %95 = load ptr, ptr %17, align 8, !tbaa !5
  %96 = load i32, ptr %95, align 4, !tbaa !9
  %97 = icmp slt i32 %96, 1
  br i1 %97, label %98, label %100

98:                                               ; preds = %94
  %99 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 -4, ptr %99, align 4, !tbaa !9
  br label %113

100:                                              ; preds = %94
  %101 = load ptr, ptr %21, align 8, !tbaa !5
  %102 = load i32, ptr %101, align 4, !tbaa !9
  %103 = icmp slt i32 %102, 1
  br i1 %103, label %110, label %104

104:                                              ; preds = %100
  %105 = load ptr, ptr %21, align 8, !tbaa !5
  %106 = load i32, ptr %105, align 4, !tbaa !9
  %107 = load ptr, ptr %16, align 8, !tbaa !5
  %108 = load i32, ptr %107, align 4, !tbaa !9
  %109 = icmp slt i32 %106, %108
  br i1 %109, label %110, label %112

110:                                              ; preds = %104, %100
  %111 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 -8, ptr %111, align 4, !tbaa !9
  br label %112

112:                                              ; preds = %110, %104
  br label %113

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

114:                                              ; preds = %113, %92
  %115 = load ptr, ptr %26, align 8, !tbaa !5
  %116 = load i32, ptr %115, align 4, !tbaa !9
  %117 = icmp ne i32 %116, 0
  br i1 %117, label %118, label %123

118:                                              ; preds = %114
  %119 = load ptr, ptr %26, align 8, !tbaa !5
  %120 = load i32, ptr %119, align 4, !tbaa !9
  %121 = sub nsw i32 0, %120
  store i32 %121, ptr %29, align 4, !tbaa !9
  %122 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %29, i32 noundef 6)
  store i32 1, ptr %69, align 4
  br label %1414

123:                                              ; preds = %114
  %124 = call float @slamch_(ptr noundef @.str.1)
  store float %124, ptr %66, align 4, !tbaa !11
  %125 = load ptr, ptr %22, 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 = %123
  %129 = load ptr, ptr %22, 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, %123
  %133 = load float, ptr %66, align 4, !tbaa !11
  store float %133, ptr %34, align 4, !tbaa !11
  br label %137

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

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

142:                                              ; preds = %137
  store i32 1, ptr %69, align 4
  br label %1414

143:                                              ; preds = %137
  %144 = load ptr, ptr %16, align 8, !tbaa !5
  %145 = load i32, ptr %144, align 4, !tbaa !9
  %146 = icmp eq i32 %145, 1
  br i1 %146, label %147, label %188

147:                                              ; preds = %143
  %148 = load ptr, ptr %18, 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 %17, align 8, !tbaa !5
  %154 = load ptr, ptr %20, align 8, !tbaa !5
  %155 = load i32, ptr %28, align 4, !tbaa !9
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds float, ptr %154, i64 %156
  %158 = load ptr, ptr %21, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.2, ptr noundef @c__1, ptr noundef %153, ptr noundef @c_b6, ptr noundef @c_b6, ptr noundef %157, ptr noundef %158)
  br label %187

159:                                              ; preds = %147
  %160 = load ptr, ptr %23, align 8, !tbaa !5
  store i32 1, ptr %160, align 4, !tbaa !9
  %161 = load ptr, ptr %18, align 8, !tbaa !5
  %162 = getelementptr inbounds float, ptr %161, i64 1
  %163 = load ptr, ptr %17, align 8, !tbaa !5
  %164 = load ptr, ptr %20, align 8, !tbaa !5
  %165 = load i32, ptr %28, align 4, !tbaa !9
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds float, ptr %164, i64 %166
  %168 = load ptr, ptr %21, align 8, !tbaa !5
  %169 = load ptr, ptr %26, align 8, !tbaa !5
  call void @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 %167, ptr noundef %168, ptr noundef %169)
  %170 = load ptr, ptr %18, 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 %18, 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 %18, 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 = load ptr, ptr %18, align 8, !tbaa !5
  %186 = getelementptr inbounds float, ptr %185, i64 1
  store float %184, ptr %186, align 4, !tbaa !11
  br label %187

187:                                              ; preds = %183, %152
  store i32 1, ptr %69, align 4
  br label %1414

188:                                              ; preds = %143
  br label %189

189:                                              ; preds = %188
  %190 = load ptr, ptr %14, align 8, !tbaa !5
  %191 = load i8, ptr %190, align 1, !tbaa !13
  %192 = zext i8 %191 to i32
  %193 = icmp eq i32 %192, 76
  br i1 %193, label %194, label %335

194:                                              ; preds = %189
  %195 = load ptr, ptr %16, align 8, !tbaa !5
  %196 = load i32, ptr %195, align 4, !tbaa !9
  %197 = sub nsw i32 %196, 1
  store i32 %197, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %41, align 4, !tbaa !9
  br label %198

198:                                              ; preds = %273, %194
  %199 = load i32, ptr %41, align 4, !tbaa !9
  %200 = load i32, ptr %29, align 4, !tbaa !9
  %201 = icmp sle i32 %199, %200
  br i1 %201, label %202, label %276

202:                                              ; preds = %198
  %203 = load ptr, ptr %18, align 8, !tbaa !5
  %204 = load i32, ptr %41, align 4, !tbaa !9
  %205 = sext i32 %204 to i64
  %206 = getelementptr inbounds float, ptr %203, i64 %205
  %207 = load ptr, ptr %19, align 8, !tbaa !5
  %208 = load i32, ptr %41, align 4, !tbaa !9
  %209 = sext i32 %208 to i64
  %210 = getelementptr inbounds float, ptr %207, i64 %209
  call void @slartg_(ptr noundef %206, ptr noundef %210, ptr noundef %54, ptr noundef %56, ptr noundef %44)
  %211 = load float, ptr %44, align 4, !tbaa !11
  %212 = load ptr, ptr %18, align 8, !tbaa !5
  %213 = load i32, ptr %41, align 4, !tbaa !9
  %214 = sext i32 %213 to i64
  %215 = getelementptr inbounds float, ptr %212, i64 %214
  store float %211, ptr %215, align 4, !tbaa !11
  %216 = load float, ptr %56, align 4, !tbaa !11
  %217 = load ptr, ptr %18, align 8, !tbaa !5
  %218 = load i32, ptr %41, align 4, !tbaa !9
  %219 = add nsw i32 %218, 1
  %220 = sext i32 %219 to i64
  %221 = getelementptr inbounds float, ptr %217, i64 %220
  %222 = load float, ptr %221, align 4, !tbaa !11
  %223 = fmul float %216, %222
  %224 = load ptr, ptr %19, align 8, !tbaa !5
  %225 = load i32, ptr %41, align 4, !tbaa !9
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds float, ptr %224, i64 %226
  store float %223, ptr %227, align 4, !tbaa !11
  %228 = load float, ptr %54, align 4, !tbaa !11
  %229 = load ptr, ptr %18, align 8, !tbaa !5
  %230 = load i32, ptr %41, align 4, !tbaa !9
  %231 = add nsw i32 %230, 1
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds float, ptr %229, i64 %232
  %234 = load float, ptr %233, align 4, !tbaa !11
  %235 = fmul float %228, %234
  %236 = load ptr, ptr %18, align 8, !tbaa !5
  %237 = load i32, ptr %41, align 4, !tbaa !9
  %238 = add nsw i32 %237, 1
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds float, ptr %236, i64 %239
  store float %235, ptr %240, align 4, !tbaa !11
  %241 = load ptr, ptr %17, align 8, !tbaa !5
  %242 = load i32, ptr %241, align 4, !tbaa !9
  %243 = icmp eq i32 %242, 1
  br i1 %243, label %244, label %258

244:                                              ; preds = %202
  %245 = load ptr, ptr %20, align 8, !tbaa !5
  %246 = load i32, ptr %41, align 4, !tbaa !9
  %247 = load i32, ptr %27, align 4, !tbaa !9
  %248 = add nsw i32 %246, %247
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds float, ptr %245, i64 %249
  %251 = load ptr, ptr %20, align 8, !tbaa !5
  %252 = load i32, ptr %41, align 4, !tbaa !9
  %253 = add nsw i32 %252, 1
  %254 = load i32, ptr %27, align 4, !tbaa !9
  %255 = add nsw i32 %253, %254
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds float, ptr %251, i64 %256
  call void @srot_(ptr noundef @c__1, ptr noundef %250, ptr noundef @c__1, ptr noundef %257, ptr noundef @c__1, ptr noundef %54, ptr noundef %56)
  br label %272

258:                                              ; preds = %202
  %259 = load float, ptr %54, align 4, !tbaa !11
  %260 = load ptr, ptr %24, align 8, !tbaa !5
  %261 = load i32, ptr %41, align 4, !tbaa !9
  %262 = shl i32 %261, 1
  %263 = sub nsw i32 %262, 1
  %264 = sext i32 %263 to i64
  %265 = getelementptr inbounds float, ptr %260, i64 %264
  store float %259, ptr %265, align 4, !tbaa !11
  %266 = load float, ptr %56, align 4, !tbaa !11
  %267 = load ptr, ptr %24, align 8, !tbaa !5
  %268 = load i32, ptr %41, align 4, !tbaa !9
  %269 = mul nsw i32 %268, 2
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds float, ptr %267, i64 %270
  store float %266, ptr %271, align 4, !tbaa !11
  br label %272

272:                                              ; preds = %258, %244
  br label %273

273:                                              ; preds = %272
  %274 = load i32, ptr %41, align 4, !tbaa !9
  %275 = add nsw i32 %274, 1
  store i32 %275, ptr %41, align 4, !tbaa !9
  br label %198, !llvm.loop !14

276:                                              ; preds = %198
  %277 = load ptr, ptr %17, align 8, !tbaa !5
  %278 = load i32, ptr %277, align 4, !tbaa !9
  %279 = icmp sgt i32 %278, 1
  br i1 %279, label %280, label %334

280:                                              ; preds = %276
  %281 = load ptr, ptr %17, align 8, !tbaa !5
  %282 = load i32, ptr %281, align 4, !tbaa !9
  store i32 %282, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %41, align 4, !tbaa !9
  br label %283

283:                                              ; preds = %330, %280
  %284 = load i32, ptr %41, align 4, !tbaa !9
  %285 = load i32, ptr %29, align 4, !tbaa !9
  %286 = icmp sle i32 %284, %285
  br i1 %286, label %287, label %333

287:                                              ; preds = %283
  %288 = load ptr, ptr %16, align 8, !tbaa !5
  %289 = load i32, ptr %288, align 4, !tbaa !9
  %290 = sub nsw i32 %289, 1
  store i32 %290, ptr %30, align 4, !tbaa !9
  store i32 1, ptr %42, align 4, !tbaa !9
  br label %291

291:                                              ; preds = %326, %287
  %292 = load i32, ptr %42, align 4, !tbaa !9
  %293 = load i32, ptr %30, align 4, !tbaa !9
  %294 = icmp sle i32 %292, %293
  br i1 %294, label %295, label %329

295:                                              ; preds = %291
  %296 = load ptr, ptr %24, align 8, !tbaa !5
  %297 = load i32, ptr %42, align 4, !tbaa !9
  %298 = shl i32 %297, 1
  %299 = sub nsw i32 %298, 1
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds float, ptr %296, i64 %300
  %302 = load float, ptr %301, align 4, !tbaa !11
  store float %302, ptr %54, align 4, !tbaa !11
  %303 = load ptr, ptr %24, align 8, !tbaa !5
  %304 = load i32, ptr %42, align 4, !tbaa !9
  %305 = mul nsw i32 %304, 2
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds float, ptr %303, i64 %306
  %308 = load float, ptr %307, align 4, !tbaa !11
  store float %308, ptr %56, align 4, !tbaa !11
  %309 = load ptr, ptr %20, align 8, !tbaa !5
  %310 = load i32, ptr %42, align 4, !tbaa !9
  %311 = load i32, ptr %41, align 4, !tbaa !9
  %312 = load i32, ptr %27, align 4, !tbaa !9
  %313 = mul nsw i32 %311, %312
  %314 = add nsw i32 %310, %313
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds float, ptr %309, i64 %315
  %317 = load ptr, ptr %20, align 8, !tbaa !5
  %318 = load i32, ptr %42, align 4, !tbaa !9
  %319 = add nsw i32 %318, 1
  %320 = load i32, ptr %41, align 4, !tbaa !9
  %321 = load i32, ptr %27, align 4, !tbaa !9
  %322 = mul nsw i32 %320, %321
  %323 = add nsw i32 %319, %322
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds float, ptr %317, i64 %324
  call void @srot_(ptr noundef @c__1, ptr noundef %316, ptr noundef @c__1, ptr noundef %325, ptr noundef @c__1, ptr noundef %54, ptr noundef %56)
  br label %326

326:                                              ; preds = %295
  %327 = load i32, ptr %42, align 4, !tbaa !9
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr %42, align 4, !tbaa !9
  br label %291, !llvm.loop !16

329:                                              ; preds = %291
  br label %330

330:                                              ; preds = %329
  %331 = load i32, ptr %41, align 4, !tbaa !9
  %332 = add nsw i32 %331, 1
  store i32 %332, ptr %41, align 4, !tbaa !9
  br label %283, !llvm.loop !17

333:                                              ; preds = %283
  br label %334

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

335:                                              ; preds = %334, %189
  %336 = load ptr, ptr %16, align 8, !tbaa !5
  %337 = load i32, ptr %336, align 4, !tbaa !9
  %338 = sub nsw i32 %337, 1
  store i32 %338, ptr %63, align 4, !tbaa !9
  %339 = load ptr, ptr %16, align 8, !tbaa !5
  %340 = load ptr, ptr %18, align 8, !tbaa !5
  %341 = getelementptr inbounds float, ptr %340, i64 1
  %342 = load ptr, ptr %19, align 8, !tbaa !5
  %343 = getelementptr inbounds float, ptr %342, i64 1
  %344 = call float @slanst_(ptr noundef @.str.4, ptr noundef %339, ptr noundef %341, ptr noundef %343)
  store float %344, ptr %60, align 4, !tbaa !11
  %345 = load float, ptr %60, align 4, !tbaa !11
  %346 = fcmp oeq float %345, 0.000000e+00
  br i1 %346, label %347, label %355

347:                                              ; preds = %335
  %348 = load ptr, ptr %16, align 8, !tbaa !5
  %349 = load ptr, ptr %17, align 8, !tbaa !5
  %350 = load ptr, ptr %20, align 8, !tbaa !5
  %351 = load i32, ptr %28, align 4, !tbaa !9
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds float, ptr %350, i64 %352
  %354 = load ptr, ptr %21, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.2, ptr noundef %348, ptr noundef %349, ptr noundef @c_b6, ptr noundef @c_b6, ptr noundef %353, ptr noundef %354)
  store i32 1, ptr %69, align 4
  br label %1414

355:                                              ; preds = %335
  %356 = load ptr, ptr %16, align 8, !tbaa !5
  %357 = load ptr, ptr %18, align 8, !tbaa !5
  %358 = getelementptr inbounds float, ptr %357, i64 1
  %359 = load ptr, ptr %16, align 8, !tbaa !5
  %360 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %60, ptr noundef @c_b11, ptr noundef %356, ptr noundef @c__1, ptr noundef %358, ptr noundef %359, ptr noundef %360)
  %361 = load ptr, ptr %19, align 8, !tbaa !5
  %362 = getelementptr inbounds float, ptr %361, i64 1
  %363 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %60, ptr noundef @c_b11, ptr noundef %63, ptr noundef @c__1, ptr noundef %362, ptr noundef %63, ptr noundef %363)
  %364 = load ptr, ptr %16, align 8, !tbaa !5
  %365 = load i32, ptr %364, align 4, !tbaa !9
  %366 = load ptr, ptr %15, align 8, !tbaa !5
  %367 = load i32, ptr %366, align 4, !tbaa !9
  %368 = icmp sle i32 %365, %367
  br i1 %368, label %369, label %518

369:                                              ; preds = %355
  %370 = load ptr, ptr %16, align 8, !tbaa !5
  %371 = load i32, ptr %370, align 4, !tbaa !9
  %372 = load ptr, ptr %16, align 8, !tbaa !5
  %373 = load i32, ptr %372, align 4, !tbaa !9
  %374 = mul nsw i32 %371, %373
  %375 = add nsw i32 %374, 1
  store i32 %375, ptr %51, align 4, !tbaa !9
  %376 = load ptr, ptr %16, align 8, !tbaa !5
  %377 = load ptr, ptr %16, align 8, !tbaa !5
  %378 = load ptr, ptr %24, align 8, !tbaa !5
  %379 = getelementptr inbounds float, ptr %378, i64 1
  %380 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.2, ptr noundef %376, ptr noundef %377, ptr noundef @c_b6, ptr noundef @c_b11, ptr noundef %379, ptr noundef %380)
  %381 = load ptr, ptr %16, align 8, !tbaa !5
  %382 = load ptr, ptr %16, align 8, !tbaa !5
  %383 = load ptr, ptr %17, align 8, !tbaa !5
  %384 = load ptr, ptr %18, align 8, !tbaa !5
  %385 = getelementptr inbounds float, ptr %384, i64 1
  %386 = load ptr, ptr %19, align 8, !tbaa !5
  %387 = getelementptr inbounds float, ptr %386, i64 1
  %388 = load ptr, ptr %24, align 8, !tbaa !5
  %389 = getelementptr inbounds float, ptr %388, i64 1
  %390 = load ptr, ptr %16, align 8, !tbaa !5
  %391 = load ptr, ptr %24, align 8, !tbaa !5
  %392 = getelementptr inbounds float, ptr %391, i64 1
  %393 = load ptr, ptr %16, align 8, !tbaa !5
  %394 = load ptr, ptr %20, align 8, !tbaa !5
  %395 = load i32, ptr %28, align 4, !tbaa !9
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds float, ptr %394, i64 %396
  %398 = load ptr, ptr %21, align 8, !tbaa !5
  %399 = load ptr, ptr %24, align 8, !tbaa !5
  %400 = load i32, ptr %51, align 4, !tbaa !9
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds float, ptr %399, i64 %401
  %403 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slasdq_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef %381, ptr noundef %382, ptr noundef @c__0, ptr noundef %383, ptr noundef %385, ptr noundef %387, ptr noundef %389, ptr noundef %390, ptr noundef %392, ptr noundef %393, ptr noundef %397, ptr noundef %398, ptr noundef %402, ptr noundef %403)
  %404 = load ptr, ptr %26, align 8, !tbaa !5
  %405 = load i32, ptr %404, align 4, !tbaa !9
  %406 = icmp ne i32 %405, 0
  br i1 %406, label %407, label %408

407:                                              ; preds = %369
  store i32 1, ptr %69, align 4
  br label %1414

408:                                              ; preds = %369
  %409 = load float, ptr %34, align 4, !tbaa !11
  %410 = load ptr, ptr %18, align 8, !tbaa !5
  %411 = load ptr, ptr %16, align 8, !tbaa !5
  %412 = load ptr, ptr %18, align 8, !tbaa !5
  %413 = getelementptr inbounds float, ptr %412, i64 1
  %414 = call i32 @isamax_(ptr noundef %411, ptr noundef %413, ptr noundef @c__1)
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds float, ptr %410, i64 %415
  %417 = load float, ptr %416, align 4, !tbaa !11
  store float %417, ptr %31, align 4, !tbaa !11
  %418 = load float, ptr %31, align 4, !tbaa !11
  %419 = fcmp oge float %418, 0.000000e+00
  br i1 %419, label %420, label %422

420:                                              ; preds = %408
  %421 = load float, ptr %31, align 4, !tbaa !11
  br label %425

422:                                              ; preds = %408
  %423 = load float, ptr %31, align 4, !tbaa !11
  %424 = fneg float %423
  br label %425

425:                                              ; preds = %422, %420
  %426 = phi float [ %421, %420 ], [ %424, %422 ]
  %427 = fmul float %409, %426
  store float %427, ptr %68, align 4, !tbaa !11
  %428 = load ptr, ptr %16, align 8, !tbaa !5
  %429 = load i32, ptr %428, align 4, !tbaa !9
  store i32 %429, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %41, align 4, !tbaa !9
  br label %430

430:                                              ; preds = %469, %425
  %431 = load i32, ptr %41, align 4, !tbaa !9
  %432 = load i32, ptr %29, align 4, !tbaa !9
  %433 = icmp sle i32 %431, %432
  br i1 %433, label %434, label %472

434:                                              ; preds = %430
  %435 = load ptr, ptr %18, align 8, !tbaa !5
  %436 = load i32, ptr %41, align 4, !tbaa !9
  %437 = sext i32 %436 to i64
  %438 = getelementptr inbounds float, ptr %435, i64 %437
  %439 = load float, ptr %438, align 4, !tbaa !11
  %440 = load float, ptr %68, align 4, !tbaa !11
  %441 = fcmp ole float %439, %440
  br i1 %441, label %442, label %451

442:                                              ; preds = %434
  %443 = load ptr, ptr %17, align 8, !tbaa !5
  %444 = load ptr, ptr %20, align 8, !tbaa !5
  %445 = load i32, ptr %41, align 4, !tbaa !9
  %446 = load i32, ptr %27, align 4, !tbaa !9
  %447 = add nsw i32 %445, %446
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds float, ptr %444, i64 %448
  %450 = load ptr, ptr %21, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.2, ptr noundef @c__1, ptr noundef %443, ptr noundef @c_b6, ptr noundef @c_b6, ptr noundef %449, ptr noundef %450)
  br label %468

451:                                              ; preds = %434
  %452 = load ptr, ptr %18, align 8, !tbaa !5
  %453 = load i32, ptr %41, align 4, !tbaa !9
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds float, ptr %452, i64 %454
  %456 = load ptr, ptr %17, align 8, !tbaa !5
  %457 = load ptr, ptr %20, align 8, !tbaa !5
  %458 = load i32, ptr %41, align 4, !tbaa !9
  %459 = load i32, ptr %27, align 4, !tbaa !9
  %460 = add nsw i32 %458, %459
  %461 = sext i32 %460 to i64
  %462 = getelementptr inbounds float, ptr %457, i64 %461
  %463 = load ptr, ptr %21, align 8, !tbaa !5
  %464 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %455, ptr noundef @c_b11, ptr noundef @c__1, ptr noundef %456, ptr noundef %462, ptr noundef %463, ptr noundef %464)
  %465 = load ptr, ptr %23, align 8, !tbaa !5
  %466 = load i32, ptr %465, align 4, !tbaa !9
  %467 = add nsw i32 %466, 1
  store i32 %467, ptr %465, align 4, !tbaa !9
  br label %468

468:                                              ; preds = %451, %442
  br label %469

469:                                              ; preds = %468
  %470 = load i32, ptr %41, align 4, !tbaa !9
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr %41, align 4, !tbaa !9
  br label %430, !llvm.loop !18

472:                                              ; preds = %430
  %473 = load ptr, ptr %16, align 8, !tbaa !5
  %474 = load ptr, ptr %17, align 8, !tbaa !5
  %475 = load ptr, ptr %16, align 8, !tbaa !5
  %476 = load ptr, ptr %24, align 8, !tbaa !5
  %477 = getelementptr inbounds float, ptr %476, i64 1
  %478 = load ptr, ptr %16, align 8, !tbaa !5
  %479 = load ptr, ptr %20, align 8, !tbaa !5
  %480 = load i32, ptr %28, align 4, !tbaa !9
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds float, ptr %479, i64 %481
  %483 = load ptr, ptr %21, align 8, !tbaa !5
  %484 = load ptr, ptr %24, align 8, !tbaa !5
  %485 = load i32, ptr %51, align 4, !tbaa !9
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds float, ptr %484, i64 %486
  %488 = load ptr, ptr %16, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %473, ptr noundef %474, ptr noundef %475, ptr noundef @c_b11, ptr noundef %477, ptr noundef %478, ptr noundef %482, ptr noundef %483, ptr noundef @c_b6, ptr noundef %487, ptr noundef %488)
  %489 = load ptr, ptr %16, align 8, !tbaa !5
  %490 = load ptr, ptr %17, align 8, !tbaa !5
  %491 = load ptr, ptr %24, align 8, !tbaa !5
  %492 = load i32, ptr %51, align 4, !tbaa !9
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds float, ptr %491, i64 %493
  %495 = load ptr, ptr %16, align 8, !tbaa !5
  %496 = load ptr, ptr %20, align 8, !tbaa !5
  %497 = load i32, ptr %28, align 4, !tbaa !9
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds float, ptr %496, i64 %498
  %500 = load ptr, ptr %21, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.2, ptr noundef %489, ptr noundef %490, ptr noundef %494, ptr noundef %495, ptr noundef %499, ptr noundef %500)
  %501 = load ptr, ptr %16, align 8, !tbaa !5
  %502 = load ptr, ptr %18, align 8, !tbaa !5
  %503 = getelementptr inbounds float, ptr %502, i64 1
  %504 = load ptr, ptr %16, align 8, !tbaa !5
  %505 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b11, ptr noundef %60, ptr noundef %501, ptr noundef @c__1, ptr noundef %503, ptr noundef %504, ptr noundef %505)
  %506 = load ptr, ptr %16, align 8, !tbaa !5
  %507 = load ptr, ptr %18, align 8, !tbaa !5
  %508 = getelementptr inbounds float, ptr %507, i64 1
  %509 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slasrt_(ptr noundef @.str.8, ptr noundef %506, ptr noundef %508, ptr noundef %509)
  %510 = load ptr, ptr %16, align 8, !tbaa !5
  %511 = load ptr, ptr %17, align 8, !tbaa !5
  %512 = load ptr, ptr %20, align 8, !tbaa !5
  %513 = load i32, ptr %28, align 4, !tbaa !9
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds float, ptr %512, i64 %514
  %516 = load ptr, ptr %21, align 8, !tbaa !5
  %517 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %60, ptr noundef @c_b11, ptr noundef %510, ptr noundef %511, ptr noundef %515, ptr noundef %516, ptr noundef %517)
  store i32 1, ptr %69, align 4
  br label %1414

518:                                              ; preds = %355
  %519 = load ptr, ptr %16, align 8, !tbaa !5
  %520 = load i32, ptr %519, align 4, !tbaa !9
  %521 = sitofp i32 %520 to float
  %522 = load ptr, ptr %15, align 8, !tbaa !5
  %523 = load i32, ptr %522, align 4, !tbaa !9
  %524 = add nsw i32 %523, 1
  %525 = sitofp i32 %524 to float
  %526 = fdiv float %521, %525
  %527 = fpext float %526 to double
  %528 = call double @log(double noundef %527) #4
  %529 = call double @log(double noundef 2.000000e+00) #4
  %530 = fdiv double %528, %529
  %531 = fptosi double %530 to i32
  %532 = add nsw i32 %531, 1
  store i32 %532, ptr %37, align 4, !tbaa !9
  %533 = load ptr, ptr %15, align 8, !tbaa !5
  %534 = load i32, ptr %533, align 4, !tbaa !9
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr %64, align 4, !tbaa !9
  store i32 1, ptr %46, align 4, !tbaa !9
  %536 = load ptr, ptr %15, align 8, !tbaa !5
  %537 = load i32, ptr %536, align 4, !tbaa !9
  %538 = load ptr, ptr %16, align 8, !tbaa !5
  %539 = load i32, ptr %538, align 4, !tbaa !9
  %540 = mul nsw i32 %537, %539
  %541 = add nsw i32 %540, 1
  store i32 %541, ptr %58, align 4, !tbaa !9
  %542 = load i32, ptr %58, align 4, !tbaa !9
  %543 = load i32, ptr %64, align 4, !tbaa !9
  %544 = load ptr, ptr %16, align 8, !tbaa !5
  %545 = load i32, ptr %544, align 4, !tbaa !9
  %546 = mul nsw i32 %543, %545
  %547 = add nsw i32 %542, %546
  store i32 %547, ptr %32, align 4, !tbaa !9
  %548 = load i32, ptr %32, align 4, !tbaa !9
  %549 = load i32, ptr %37, align 4, !tbaa !9
  %550 = load ptr, ptr %16, align 8, !tbaa !5
  %551 = load i32, ptr %550, align 4, !tbaa !9
  %552 = mul nsw i32 %549, %551
  %553 = add nsw i32 %548, %552
  store i32 %553, ptr %33, align 4, !tbaa !9
  %554 = load i32, ptr %33, align 4, !tbaa !9
  %555 = load i32, ptr %37, align 4, !tbaa !9
  %556 = load ptr, ptr %16, align 8, !tbaa !5
  %557 = load i32, ptr %556, align 4, !tbaa !9
  %558 = mul nsw i32 %555, %557
  %559 = shl i32 %558, 1
  %560 = add nsw i32 %554, %559
  store i32 %560, ptr %47, align 4, !tbaa !9
  %561 = load i32, ptr %47, align 4, !tbaa !9
  %562 = load i32, ptr %37, align 4, !tbaa !9
  %563 = load ptr, ptr %16, align 8, !tbaa !5
  %564 = load i32, ptr %563, align 4, !tbaa !9
  %565 = mul nsw i32 %562, %564
  %566 = add nsw i32 %561, %565
  store i32 %566, ptr %40, align 4, !tbaa !9
  %567 = load i32, ptr %40, align 4, !tbaa !9
  %568 = load ptr, ptr %16, align 8, !tbaa !5
  %569 = load i32, ptr %568, align 4, !tbaa !9
  %570 = add nsw i32 %567, %569
  store i32 %570, ptr %45, align 4, !tbaa !9
  %571 = load i32, ptr %45, align 4, !tbaa !9
  %572 = load ptr, ptr %16, align 8, !tbaa !5
  %573 = load i32, ptr %572, align 4, !tbaa !9
  %574 = add nsw i32 %571, %573
  store i32 %574, ptr %48, align 4, !tbaa !9
  %575 = load i32, ptr %48, align 4, !tbaa !9
  %576 = load i32, ptr %37, align 4, !tbaa !9
  %577 = shl i32 %576, 1
  %578 = load ptr, ptr %16, align 8, !tbaa !5
  %579 = load i32, ptr %578, align 4, !tbaa !9
  %580 = mul nsw i32 %577, %579
  %581 = add nsw i32 %575, %580
  store i32 %581, ptr %61, align 4, !tbaa !9
  %582 = load i32, ptr %61, align 4, !tbaa !9
  %583 = load i32, ptr %37, align 4, !tbaa !9
  %584 = shl i32 %583, 1
  %585 = load ptr, ptr %16, align 8, !tbaa !5
  %586 = load i32, ptr %585, align 4, !tbaa !9
  %587 = mul nsw i32 %584, %586
  %588 = add nsw i32 %582, %587
  store i32 %588, ptr %55, align 4, !tbaa !9
  %589 = load i32, ptr %55, align 4, !tbaa !9
  %590 = load ptr, ptr %16, align 8, !tbaa !5
  %591 = load i32, ptr %590, align 4, !tbaa !9
  %592 = load ptr, ptr %17, align 8, !tbaa !5
  %593 = load i32, ptr %592, align 4, !tbaa !9
  %594 = mul nsw i32 %591, %593
  %595 = add nsw i32 %589, %594
  store i32 %595, ptr %51, align 4, !tbaa !9
  %596 = load ptr, ptr %16, align 8, !tbaa !5
  %597 = load i32, ptr %596, align 4, !tbaa !9
  %598 = add nsw i32 %597, 1
  store i32 %598, ptr %49, align 4, !tbaa !9
  %599 = load i32, ptr %49, align 4, !tbaa !9
  %600 = load ptr, ptr %16, align 8, !tbaa !5
  %601 = load i32, ptr %600, align 4, !tbaa !9
  %602 = add nsw i32 %599, %601
  store i32 %602, ptr %43, align 4, !tbaa !9
  %603 = load i32, ptr %43, align 4, !tbaa !9
  %604 = load ptr, ptr %16, align 8, !tbaa !5
  %605 = load i32, ptr %604, align 4, !tbaa !9
  %606 = add nsw i32 %603, %605
  store i32 %606, ptr %62, align 4, !tbaa !9
  %607 = load i32, ptr %62, align 4, !tbaa !9
  %608 = load ptr, ptr %16, align 8, !tbaa !5
  %609 = load i32, ptr %608, align 4, !tbaa !9
  %610 = add nsw i32 %607, %609
  store i32 %610, ptr %35, align 4, !tbaa !9
  %611 = load i32, ptr %35, align 4, !tbaa !9
  %612 = load i32, ptr %37, align 4, !tbaa !9
  %613 = load ptr, ptr %16, align 8, !tbaa !5
  %614 = load i32, ptr %613, align 4, !tbaa !9
  %615 = mul nsw i32 %612, %614
  %616 = add nsw i32 %611, %615
  store i32 %616, ptr %59, align 4, !tbaa !9
  %617 = load i32, ptr %59, align 4, !tbaa !9
  %618 = load i32, ptr %37, align 4, !tbaa !9
  %619 = load ptr, ptr %16, align 8, !tbaa !5
  %620 = load i32, ptr %619, align 4, !tbaa !9
  %621 = mul nsw i32 %618, %620
  %622 = shl i32 %621, 1
  %623 = add nsw i32 %617, %622
  store i32 %623, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %57, align 4, !tbaa !9
  store i32 0, ptr %38, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !9
  store i32 0, ptr %53, align 4, !tbaa !9
  store i32 0, ptr %36, align 4, !tbaa !9
  %624 = load ptr, ptr %16, align 8, !tbaa !5
  %625 = load i32, ptr %624, align 4, !tbaa !9
  store i32 %625, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %41, align 4, !tbaa !9
  br label %626

626:                                              ; preds = %682, %518
  %627 = load i32, ptr %41, align 4, !tbaa !9
  %628 = load i32, ptr %29, align 4, !tbaa !9
  %629 = icmp sle i32 %627, %628
  br i1 %629, label %630, label %685

630:                                              ; preds = %626
  %631 = load ptr, ptr %18, align 8, !tbaa !5
  %632 = load i32, ptr %41, align 4, !tbaa !9
  %633 = sext i32 %632 to i64
  %634 = getelementptr inbounds float, ptr %631, i64 %633
  %635 = load float, ptr %634, align 4, !tbaa !11
  store float %635, ptr %31, align 4, !tbaa !11
  %636 = load float, ptr %31, align 4, !tbaa !11
  %637 = fcmp oge float %636, 0.000000e+00
  br i1 %637, label %638, label %640

638:                                              ; preds = %630
  %639 = load float, ptr %31, align 4, !tbaa !11
  br label %643

640:                                              ; preds = %630
  %641 = load float, ptr %31, align 4, !tbaa !11
  %642 = fneg float %641
  br label %643

643:                                              ; preds = %640, %638
  %644 = phi float [ %639, %638 ], [ %642, %640 ]
  %645 = load float, ptr %66, align 4, !tbaa !11
  %646 = fcmp olt float %644, %645
  br i1 %646, label %647, label %681

647:                                              ; preds = %643
  %648 = load ptr, ptr %18, align 8, !tbaa !5
  %649 = load i32, ptr %41, align 4, !tbaa !9
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds float, ptr %648, i64 %650
  %652 = load float, ptr %651, align 4, !tbaa !11
  %653 = fcmp oge float %652, 0.000000e+00
  br i1 %653, label %654, label %664

654:                                              ; preds = %647
  %655 = load float, ptr %66, align 4, !tbaa !11
  %656 = fcmp oge float %655, 0.000000e+00
  br i1 %656, label %657, label %659

657:                                              ; preds = %654
  %658 = load float, ptr %66, align 4, !tbaa !11
  br label %662

659:                                              ; preds = %654
  %660 = load float, ptr %66, align 4, !tbaa !11
  %661 = fneg float %660
  br label %662

662:                                              ; preds = %659, %657
  %663 = phi float [ %658, %657 ], [ %661, %659 ]
  br label %675

664:                                              ; preds = %647
  %665 = load float, ptr %66, align 4, !tbaa !11
  %666 = fcmp oge float %665, 0.000000e+00
  br i1 %666, label %667, label %669

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

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

672:                                              ; preds = %669, %667
  %673 = phi float [ %668, %667 ], [ %671, %669 ]
  %674 = fneg float %673
  br label %675

675:                                              ; preds = %672, %662
  %676 = phi float [ %663, %662 ], [ %674, %672 ]
  %677 = load ptr, ptr %18, align 8, !tbaa !5
  %678 = load i32, ptr %41, align 4, !tbaa !9
  %679 = sext i32 %678 to i64
  %680 = getelementptr inbounds float, ptr %677, i64 %679
  store float %676, ptr %680, align 4, !tbaa !11
  br label %681

681:                                              ; preds = %675, %643
  br label %682

682:                                              ; preds = %681
  %683 = load i32, ptr %41, align 4, !tbaa !9
  %684 = add nsw i32 %683, 1
  store i32 %684, ptr %41, align 4, !tbaa !9
  br label %626, !llvm.loop !19

685:                                              ; preds = %626
  %686 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %686, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %41, align 4, !tbaa !9
  br label %687

687:                                              ; preds = %1119, %685
  %688 = load i32, ptr %41, align 4, !tbaa !9
  %689 = load i32, ptr %29, align 4, !tbaa !9
  %690 = icmp sle i32 %688, %689
  br i1 %690, label %691, label %1122

691:                                              ; preds = %687
  %692 = load ptr, ptr %19, align 8, !tbaa !5
  %693 = load i32, ptr %41, align 4, !tbaa !9
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds float, ptr %692, i64 %694
  %696 = load float, ptr %695, align 4, !tbaa !11
  store float %696, ptr %31, align 4, !tbaa !11
  %697 = load float, ptr %31, align 4, !tbaa !11
  %698 = fcmp oge float %697, 0.000000e+00
  br i1 %698, label %699, label %701

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

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

704:                                              ; preds = %701, %699
  %705 = phi float [ %700, %699 ], [ %703, %701 ]
  %706 = load float, ptr %66, align 4, !tbaa !11
  %707 = fcmp olt float %705, %706
  br i1 %707, label %712, label %708

708:                                              ; preds = %704
  %709 = load i32, ptr %41, align 4, !tbaa !9
  %710 = load i32, ptr %63, align 4, !tbaa !9
  %711 = icmp eq i32 %709, %710
  br i1 %711, label %712, label %1118

712:                                              ; preds = %708, %704
  %713 = load i32, ptr %36, align 4, !tbaa !9
  %714 = add nsw i32 %713, 1
  store i32 %714, ptr %36, align 4, !tbaa !9
  %715 = load i32, ptr %57, align 4, !tbaa !9
  %716 = load ptr, ptr %25, align 8, !tbaa !5
  %717 = load i32, ptr %36, align 4, !tbaa !9
  %718 = sext i32 %717 to i64
  %719 = getelementptr inbounds i32, ptr %716, i64 %718
  store i32 %715, ptr %719, align 4, !tbaa !9
  %720 = load i32, ptr %41, align 4, !tbaa !9
  %721 = load i32, ptr %63, align 4, !tbaa !9
  %722 = icmp slt i32 %720, %721
  br i1 %722, label %723, label %736

723:                                              ; preds = %712
  %724 = load i32, ptr %41, align 4, !tbaa !9
  %725 = load i32, ptr %57, align 4, !tbaa !9
  %726 = sub nsw i32 %724, %725
  %727 = add nsw i32 %726, 1
  store i32 %727, ptr %50, align 4, !tbaa !9
  %728 = load i32, ptr %50, align 4, !tbaa !9
  %729 = load ptr, ptr %25, align 8, !tbaa !5
  %730 = load i32, ptr %49, align 4, !tbaa !9
  %731 = load i32, ptr %36, align 4, !tbaa !9
  %732 = add nsw i32 %730, %731
  %733 = sub nsw i32 %732, 1
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds i32, ptr %729, i64 %734
  store i32 %728, ptr %735, align 4, !tbaa !9
  br label %812

736:                                              ; preds = %712
  %737 = load ptr, ptr %19, align 8, !tbaa !5
  %738 = load i32, ptr %41, align 4, !tbaa !9
  %739 = sext i32 %738 to i64
  %740 = getelementptr inbounds float, ptr %737, i64 %739
  %741 = load float, ptr %740, align 4, !tbaa !11
  store float %741, ptr %31, align 4, !tbaa !11
  %742 = load float, ptr %31, align 4, !tbaa !11
  %743 = fcmp oge float %742, 0.000000e+00
  br i1 %743, label %744, label %746

744:                                              ; preds = %736
  %745 = load float, ptr %31, align 4, !tbaa !11
  br label %749

746:                                              ; preds = %736
  %747 = load float, ptr %31, align 4, !tbaa !11
  %748 = fneg float %747
  br label %749

749:                                              ; preds = %746, %744
  %750 = phi float [ %745, %744 ], [ %748, %746 ]
  %751 = load float, ptr %66, align 4, !tbaa !11
  %752 = fcmp oge float %750, %751
  br i1 %752, label %753, label %767

753:                                              ; preds = %749
  %754 = load ptr, ptr %16, align 8, !tbaa !5
  %755 = load i32, ptr %754, align 4, !tbaa !9
  %756 = load i32, ptr %57, align 4, !tbaa !9
  %757 = sub nsw i32 %755, %756
  %758 = add nsw i32 %757, 1
  store i32 %758, ptr %50, align 4, !tbaa !9
  %759 = load i32, ptr %50, align 4, !tbaa !9
  %760 = load ptr, ptr %25, align 8, !tbaa !5
  %761 = load i32, ptr %49, align 4, !tbaa !9
  %762 = load i32, ptr %36, align 4, !tbaa !9
  %763 = add nsw i32 %761, %762
  %764 = sub nsw i32 %763, 1
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds i32, ptr %760, i64 %765
  store i32 %759, ptr %766, align 4, !tbaa !9
  br label %811

767:                                              ; preds = %749
  %768 = load i32, ptr %41, align 4, !tbaa !9
  %769 = load i32, ptr %57, align 4, !tbaa !9
  %770 = sub nsw i32 %768, %769
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr %50, align 4, !tbaa !9
  %772 = load i32, ptr %50, align 4, !tbaa !9
  %773 = load ptr, ptr %25, align 8, !tbaa !5
  %774 = load i32, ptr %49, align 4, !tbaa !9
  %775 = load i32, ptr %36, align 4, !tbaa !9
  %776 = add nsw i32 %774, %775
  %777 = sub nsw i32 %776, 1
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds i32, ptr %773, i64 %778
  store i32 %772, ptr %779, align 4, !tbaa !9
  %780 = load i32, ptr %36, align 4, !tbaa !9
  %781 = add nsw i32 %780, 1
  store i32 %781, ptr %36, align 4, !tbaa !9
  %782 = load ptr, ptr %16, align 8, !tbaa !5
  %783 = load i32, ptr %782, align 4, !tbaa !9
  %784 = load ptr, ptr %25, align 8, !tbaa !5
  %785 = load i32, ptr %36, align 4, !tbaa !9
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds i32, ptr %784, i64 %786
  store i32 %783, ptr %787, align 4, !tbaa !9
  %788 = load ptr, ptr %25, align 8, !tbaa !5
  %789 = load i32, ptr %49, align 4, !tbaa !9
  %790 = load i32, ptr %36, align 4, !tbaa !9
  %791 = add nsw i32 %789, %790
  %792 = sub nsw i32 %791, 1
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds i32, ptr %788, i64 %793
  store i32 1, ptr %794, align 4, !tbaa !9
  %795 = load ptr, ptr %17, align 8, !tbaa !5
  %796 = load ptr, ptr %20, align 8, !tbaa !5
  %797 = load ptr, ptr %16, align 8, !tbaa !5
  %798 = load i32, ptr %797, align 4, !tbaa !9
  %799 = load i32, ptr %27, align 4, !tbaa !9
  %800 = add nsw i32 %798, %799
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds float, ptr %796, i64 %801
  %803 = load ptr, ptr %21, align 8, !tbaa !5
  %804 = load ptr, ptr %24, align 8, !tbaa !5
  %805 = load i32, ptr %55, align 4, !tbaa !9
  %806 = load i32, ptr %63, align 4, !tbaa !9
  %807 = add nsw i32 %805, %806
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds float, ptr %804, i64 %808
  %810 = load ptr, ptr %16, align 8, !tbaa !5
  call void @scopy_(ptr noundef %795, ptr noundef %802, ptr noundef %803, ptr noundef %809, ptr noundef %810)
  br label %811

811:                                              ; preds = %767, %753
  br label %812

812:                                              ; preds = %811, %723
  %813 = load i32, ptr %57, align 4, !tbaa !9
  %814 = sub nsw i32 %813, 1
  store i32 %814, ptr %65, align 4, !tbaa !9
  %815 = load i32, ptr %50, align 4, !tbaa !9
  %816 = icmp eq i32 %815, 1
  br i1 %816, label %817, label %833

817:                                              ; preds = %812
  %818 = load ptr, ptr %17, align 8, !tbaa !5
  %819 = load ptr, ptr %20, align 8, !tbaa !5
  %820 = load i32, ptr %57, align 4, !tbaa !9
  %821 = load i32, ptr %27, align 4, !tbaa !9
  %822 = add nsw i32 %820, %821
  %823 = sext i32 %822 to i64
  %824 = getelementptr inbounds float, ptr %819, i64 %823
  %825 = load ptr, ptr %21, align 8, !tbaa !5
  %826 = load ptr, ptr %24, align 8, !tbaa !5
  %827 = load i32, ptr %55, align 4, !tbaa !9
  %828 = load i32, ptr %65, align 4, !tbaa !9
  %829 = add nsw i32 %827, %828
  %830 = sext i32 %829 to i64
  %831 = getelementptr inbounds float, ptr %826, i64 %830
  %832 = load ptr, ptr %16, align 8, !tbaa !5
  call void @scopy_(ptr noundef %818, ptr noundef %824, ptr noundef %825, ptr noundef %831, ptr noundef %832)
  br label %1115

833:                                              ; preds = %812
  %834 = load i32, ptr %50, align 4, !tbaa !9
  %835 = load ptr, ptr %15, align 8, !tbaa !5
  %836 = load i32, ptr %835, align 4, !tbaa !9
  %837 = icmp sle i32 %834, %836
  br i1 %837, label %838, label %899

838:                                              ; preds = %833
  %839 = load ptr, ptr %24, align 8, !tbaa !5
  %840 = load i32, ptr %58, align 4, !tbaa !9
  %841 = load i32, ptr %65, align 4, !tbaa !9
  %842 = add nsw i32 %840, %841
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds float, ptr %839, i64 %843
  %845 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.2, ptr noundef %50, ptr noundef %50, ptr noundef @c_b6, ptr noundef @c_b11, ptr noundef %844, ptr noundef %845)
  %846 = load ptr, ptr %17, align 8, !tbaa !5
  %847 = load ptr, ptr %18, align 8, !tbaa !5
  %848 = load i32, ptr %57, align 4, !tbaa !9
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds float, ptr %847, i64 %849
  %851 = load ptr, ptr %19, align 8, !tbaa !5
  %852 = load i32, ptr %57, align 4, !tbaa !9
  %853 = sext i32 %852 to i64
  %854 = getelementptr inbounds float, ptr %851, i64 %853
  %855 = load ptr, ptr %24, align 8, !tbaa !5
  %856 = load i32, ptr %58, align 4, !tbaa !9
  %857 = load i32, ptr %65, align 4, !tbaa !9
  %858 = add nsw i32 %856, %857
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds float, ptr %855, i64 %859
  %861 = load ptr, ptr %16, align 8, !tbaa !5
  %862 = load ptr, ptr %24, align 8, !tbaa !5
  %863 = load i32, ptr %51, align 4, !tbaa !9
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds float, ptr %862, i64 %864
  %866 = load ptr, ptr %16, align 8, !tbaa !5
  %867 = load ptr, ptr %20, align 8, !tbaa !5
  %868 = load i32, ptr %57, align 4, !tbaa !9
  %869 = load i32, ptr %27, align 4, !tbaa !9
  %870 = add nsw i32 %868, %869
  %871 = sext i32 %870 to i64
  %872 = getelementptr inbounds float, ptr %867, i64 %871
  %873 = load ptr, ptr %21, align 8, !tbaa !5
  %874 = load ptr, ptr %24, align 8, !tbaa !5
  %875 = load i32, ptr %51, align 4, !tbaa !9
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds float, ptr %874, i64 %876
  %878 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slasdq_(ptr noundef @.str.5, ptr noundef @c__0, ptr noundef %50, ptr noundef %50, ptr noundef @c__0, ptr noundef %846, ptr noundef %850, ptr noundef %854, ptr noundef %860, ptr noundef %861, ptr noundef %865, ptr noundef %866, ptr noundef %872, ptr noundef %873, ptr noundef %877, ptr noundef %878)
  %879 = load ptr, ptr %26, align 8, !tbaa !5
  %880 = load i32, ptr %879, align 4, !tbaa !9
  %881 = icmp ne i32 %880, 0
  br i1 %881, label %882, label %883

882:                                              ; preds = %838
  store i32 1, ptr %69, align 4
  br label %1414

883:                                              ; preds = %838
  %884 = load ptr, ptr %17, align 8, !tbaa !5
  %885 = load ptr, ptr %20, align 8, !tbaa !5
  %886 = load i32, ptr %57, align 4, !tbaa !9
  %887 = load i32, ptr %27, align 4, !tbaa !9
  %888 = add nsw i32 %886, %887
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds float, ptr %885, i64 %889
  %891 = load ptr, ptr %21, align 8, !tbaa !5
  %892 = load ptr, ptr %24, align 8, !tbaa !5
  %893 = load i32, ptr %55, align 4, !tbaa !9
  %894 = load i32, ptr %65, align 4, !tbaa !9
  %895 = add nsw i32 %893, %894
  %896 = sext i32 %895 to i64
  %897 = getelementptr inbounds float, ptr %892, i64 %896
  %898 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.2, ptr noundef %50, ptr noundef %884, ptr noundef %890, ptr noundef %891, ptr noundef %897, ptr noundef %898)
  br label %1114

899:                                              ; preds = %833
  %900 = load ptr, ptr %15, align 8, !tbaa !5
  %901 = load ptr, ptr %18, align 8, !tbaa !5
  %902 = load i32, ptr %57, align 4, !tbaa !9
  %903 = sext i32 %902 to i64
  %904 = getelementptr inbounds float, ptr %901, i64 %903
  %905 = load ptr, ptr %19, align 8, !tbaa !5
  %906 = load i32, ptr %57, align 4, !tbaa !9
  %907 = sext i32 %906 to i64
  %908 = getelementptr inbounds float, ptr %905, i64 %907
  %909 = load ptr, ptr %24, align 8, !tbaa !5
  %910 = load i32, ptr %46, align 4, !tbaa !9
  %911 = load i32, ptr %65, align 4, !tbaa !9
  %912 = add nsw i32 %910, %911
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds float, ptr %909, i64 %913
  %915 = load ptr, ptr %16, align 8, !tbaa !5
  %916 = load ptr, ptr %24, align 8, !tbaa !5
  %917 = load i32, ptr %58, align 4, !tbaa !9
  %918 = load i32, ptr %65, align 4, !tbaa !9
  %919 = add nsw i32 %917, %918
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds float, ptr %916, i64 %920
  %922 = load ptr, ptr %25, align 8, !tbaa !5
  %923 = load i32, ptr %43, align 4, !tbaa !9
  %924 = load i32, ptr %65, align 4, !tbaa !9
  %925 = add nsw i32 %923, %924
  %926 = sext i32 %925 to i64
  %927 = getelementptr inbounds i32, ptr %922, i64 %926
  %928 = load ptr, ptr %24, align 8, !tbaa !5
  %929 = load i32, ptr %32, align 4, !tbaa !9
  %930 = load i32, ptr %65, align 4, !tbaa !9
  %931 = add nsw i32 %929, %930
  %932 = sext i32 %931 to i64
  %933 = getelementptr inbounds float, ptr %928, i64 %932
  %934 = load ptr, ptr %24, align 8, !tbaa !5
  %935 = load i32, ptr %33, align 4, !tbaa !9
  %936 = load i32, ptr %65, align 4, !tbaa !9
  %937 = add nsw i32 %935, %936
  %938 = sext i32 %937 to i64
  %939 = getelementptr inbounds float, ptr %934, i64 %938
  %940 = load ptr, ptr %24, align 8, !tbaa !5
  %941 = load i32, ptr %47, align 4, !tbaa !9
  %942 = load i32, ptr %65, align 4, !tbaa !9
  %943 = add nsw i32 %941, %942
  %944 = sext i32 %943 to i64
  %945 = getelementptr inbounds float, ptr %940, i64 %944
  %946 = load ptr, ptr %24, align 8, !tbaa !5
  %947 = load i32, ptr %48, align 4, !tbaa !9
  %948 = load i32, ptr %65, align 4, !tbaa !9
  %949 = add nsw i32 %947, %948
  %950 = sext i32 %949 to i64
  %951 = getelementptr inbounds float, ptr %946, i64 %950
  %952 = load ptr, ptr %25, align 8, !tbaa !5
  %953 = load i32, ptr %62, align 4, !tbaa !9
  %954 = load i32, ptr %65, align 4, !tbaa !9
  %955 = add nsw i32 %953, %954
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds i32, ptr %952, i64 %956
  %958 = load ptr, ptr %25, align 8, !tbaa !5
  %959 = load i32, ptr %59, align 4, !tbaa !9
  %960 = load i32, ptr %65, align 4, !tbaa !9
  %961 = add nsw i32 %959, %960
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds i32, ptr %958, i64 %962
  %964 = load ptr, ptr %16, align 8, !tbaa !5
  %965 = load ptr, ptr %25, align 8, !tbaa !5
  %966 = load i32, ptr %35, align 4, !tbaa !9
  %967 = load i32, ptr %65, align 4, !tbaa !9
  %968 = add nsw i32 %966, %967
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds i32, ptr %965, i64 %969
  %971 = load ptr, ptr %24, align 8, !tbaa !5
  %972 = load i32, ptr %61, align 4, !tbaa !9
  %973 = load i32, ptr %65, align 4, !tbaa !9
  %974 = add nsw i32 %972, %973
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds float, ptr %971, i64 %975
  %977 = load ptr, ptr %24, align 8, !tbaa !5
  %978 = load i32, ptr %40, align 4, !tbaa !9
  %979 = load i32, ptr %65, align 4, !tbaa !9
  %980 = add nsw i32 %978, %979
  %981 = sext i32 %980 to i64
  %982 = getelementptr inbounds float, ptr %977, i64 %981
  %983 = load ptr, ptr %24, align 8, !tbaa !5
  %984 = load i32, ptr %45, align 4, !tbaa !9
  %985 = load i32, ptr %65, align 4, !tbaa !9
  %986 = add nsw i32 %984, %985
  %987 = sext i32 %986 to i64
  %988 = getelementptr inbounds float, ptr %983, i64 %987
  %989 = load ptr, ptr %24, align 8, !tbaa !5
  %990 = load i32, ptr %51, align 4, !tbaa !9
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds float, ptr %989, i64 %991
  %993 = load ptr, ptr %25, align 8, !tbaa !5
  %994 = load i32, ptr %67, align 4, !tbaa !9
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds i32, ptr %993, i64 %995
  %997 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slasda_(ptr noundef %52, ptr noundef %900, ptr noundef %50, ptr noundef %38, ptr noundef %904, ptr noundef %908, ptr noundef %914, ptr noundef %915, ptr noundef %921, ptr noundef %927, ptr noundef %933, ptr noundef %939, ptr noundef %945, ptr noundef %951, ptr noundef %957, ptr noundef %963, ptr noundef %964, ptr noundef %970, ptr noundef %976, ptr noundef %982, ptr noundef %988, ptr noundef %992, ptr noundef %996, ptr noundef %997)
  %998 = load ptr, ptr %26, align 8, !tbaa !5
  %999 = load i32, ptr %998, align 4, !tbaa !9
  %1000 = icmp ne i32 %999, 0
  br i1 %1000, label %1001, label %1002

1001:                                             ; preds = %899
  store i32 1, ptr %69, align 4
  br label %1414

1002:                                             ; preds = %899
  %1003 = load i32, ptr %55, align 4, !tbaa !9
  %1004 = load i32, ptr %65, align 4, !tbaa !9
  %1005 = add nsw i32 %1003, %1004
  store i32 %1005, ptr %39, align 4, !tbaa !9
  %1006 = load ptr, ptr %15, align 8, !tbaa !5
  %1007 = load ptr, ptr %17, align 8, !tbaa !5
  %1008 = load ptr, ptr %20, align 8, !tbaa !5
  %1009 = load i32, ptr %57, align 4, !tbaa !9
  %1010 = load i32, ptr %27, align 4, !tbaa !9
  %1011 = add nsw i32 %1009, %1010
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds float, ptr %1008, i64 %1012
  %1014 = load ptr, ptr %21, align 8, !tbaa !5
  %1015 = load ptr, ptr %24, align 8, !tbaa !5
  %1016 = load i32, ptr %39, align 4, !tbaa !9
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds float, ptr %1015, i64 %1017
  %1019 = load ptr, ptr %16, align 8, !tbaa !5
  %1020 = load ptr, ptr %24, align 8, !tbaa !5
  %1021 = load i32, ptr %46, align 4, !tbaa !9
  %1022 = load i32, ptr %65, align 4, !tbaa !9
  %1023 = add nsw i32 %1021, %1022
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds float, ptr %1020, i64 %1024
  %1026 = load ptr, ptr %16, align 8, !tbaa !5
  %1027 = load ptr, ptr %24, align 8, !tbaa !5
  %1028 = load i32, ptr %58, align 4, !tbaa !9
  %1029 = load i32, ptr %65, align 4, !tbaa !9
  %1030 = add nsw i32 %1028, %1029
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds float, ptr %1027, i64 %1031
  %1033 = load ptr, ptr %25, align 8, !tbaa !5
  %1034 = load i32, ptr %43, align 4, !tbaa !9
  %1035 = load i32, ptr %65, align 4, !tbaa !9
  %1036 = add nsw i32 %1034, %1035
  %1037 = sext i32 %1036 to i64
  %1038 = getelementptr inbounds i32, ptr %1033, i64 %1037
  %1039 = load ptr, ptr %24, align 8, !tbaa !5
  %1040 = load i32, ptr %32, align 4, !tbaa !9
  %1041 = load i32, ptr %65, align 4, !tbaa !9
  %1042 = add nsw i32 %1040, %1041
  %1043 = sext i32 %1042 to i64
  %1044 = getelementptr inbounds float, ptr %1039, i64 %1043
  %1045 = load ptr, ptr %24, align 8, !tbaa !5
  %1046 = load i32, ptr %33, align 4, !tbaa !9
  %1047 = load i32, ptr %65, align 4, !tbaa !9
  %1048 = add nsw i32 %1046, %1047
  %1049 = sext i32 %1048 to i64
  %1050 = getelementptr inbounds float, ptr %1045, i64 %1049
  %1051 = load ptr, ptr %24, align 8, !tbaa !5
  %1052 = load i32, ptr %47, align 4, !tbaa !9
  %1053 = load i32, ptr %65, align 4, !tbaa !9
  %1054 = add nsw i32 %1052, %1053
  %1055 = sext i32 %1054 to i64
  %1056 = getelementptr inbounds float, ptr %1051, i64 %1055
  %1057 = load ptr, ptr %24, align 8, !tbaa !5
  %1058 = load i32, ptr %48, align 4, !tbaa !9
  %1059 = load i32, ptr %65, align 4, !tbaa !9
  %1060 = add nsw i32 %1058, %1059
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds float, ptr %1057, i64 %1061
  %1063 = load ptr, ptr %25, align 8, !tbaa !5
  %1064 = load i32, ptr %62, align 4, !tbaa !9
  %1065 = load i32, ptr %65, align 4, !tbaa !9
  %1066 = add nsw i32 %1064, %1065
  %1067 = sext i32 %1066 to i64
  %1068 = getelementptr inbounds i32, ptr %1063, i64 %1067
  %1069 = load ptr, ptr %25, align 8, !tbaa !5
  %1070 = load i32, ptr %59, align 4, !tbaa !9
  %1071 = load i32, ptr %65, align 4, !tbaa !9
  %1072 = add nsw i32 %1070, %1071
  %1073 = sext i32 %1072 to i64
  %1074 = getelementptr inbounds i32, ptr %1069, i64 %1073
  %1075 = load ptr, ptr %16, align 8, !tbaa !5
  %1076 = load ptr, ptr %25, align 8, !tbaa !5
  %1077 = load i32, ptr %35, align 4, !tbaa !9
  %1078 = load i32, ptr %65, align 4, !tbaa !9
  %1079 = add nsw i32 %1077, %1078
  %1080 = sext i32 %1079 to i64
  %1081 = getelementptr inbounds i32, ptr %1076, i64 %1080
  %1082 = load ptr, ptr %24, align 8, !tbaa !5
  %1083 = load i32, ptr %61, align 4, !tbaa !9
  %1084 = load i32, ptr %65, align 4, !tbaa !9
  %1085 = add nsw i32 %1083, %1084
  %1086 = sext i32 %1085 to i64
  %1087 = getelementptr inbounds float, ptr %1082, i64 %1086
  %1088 = load ptr, ptr %24, align 8, !tbaa !5
  %1089 = load i32, ptr %40, align 4, !tbaa !9
  %1090 = load i32, ptr %65, align 4, !tbaa !9
  %1091 = add nsw i32 %1089, %1090
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds float, ptr %1088, i64 %1092
  %1094 = load ptr, ptr %24, align 8, !tbaa !5
  %1095 = load i32, ptr %45, align 4, !tbaa !9
  %1096 = load i32, ptr %65, align 4, !tbaa !9
  %1097 = add nsw i32 %1095, %1096
  %1098 = sext i32 %1097 to i64
  %1099 = getelementptr inbounds float, ptr %1094, i64 %1098
  %1100 = load ptr, ptr %24, align 8, !tbaa !5
  %1101 = load i32, ptr %51, align 4, !tbaa !9
  %1102 = sext i32 %1101 to i64
  %1103 = getelementptr inbounds float, ptr %1100, i64 %1102
  %1104 = load ptr, ptr %25, align 8, !tbaa !5
  %1105 = load i32, ptr %67, align 4, !tbaa !9
  %1106 = sext i32 %1105 to i64
  %1107 = getelementptr inbounds i32, ptr %1104, i64 %1106
  %1108 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slalsa_(ptr noundef %53, ptr noundef %1006, ptr noundef %50, ptr noundef %1007, ptr noundef %1013, ptr noundef %1014, ptr noundef %1018, ptr noundef %1019, ptr noundef %1025, ptr noundef %1026, ptr noundef %1032, ptr noundef %1038, ptr noundef %1044, ptr noundef %1050, ptr noundef %1056, ptr noundef %1062, ptr noundef %1068, ptr noundef %1074, ptr noundef %1075, ptr noundef %1081, ptr noundef %1087, ptr noundef %1093, ptr noundef %1099, ptr noundef %1103, ptr noundef %1107, ptr noundef %1108)
  %1109 = load ptr, ptr %26, align 8, !tbaa !5
  %1110 = load i32, ptr %1109, align 4, !tbaa !9
  %1111 = icmp ne i32 %1110, 0
  br i1 %1111, label %1112, label %1113

1112:                                             ; preds = %1002
  store i32 1, ptr %69, align 4
  br label %1414

1113:                                             ; preds = %1002
  br label %1114

1114:                                             ; preds = %1113, %883
  br label %1115

1115:                                             ; preds = %1114, %817
  %1116 = load i32, ptr %41, align 4, !tbaa !9
  %1117 = add nsw i32 %1116, 1
  store i32 %1117, ptr %57, align 4, !tbaa !9
  br label %1118

1118:                                             ; preds = %1115, %708
  br label %1119

1119:                                             ; preds = %1118
  %1120 = load i32, ptr %41, align 4, !tbaa !9
  %1121 = add nsw i32 %1120, 1
  store i32 %1121, ptr %41, align 4, !tbaa !9
  br label %687, !llvm.loop !20

1122:                                             ; preds = %687
  %1123 = load float, ptr %34, align 4, !tbaa !11
  %1124 = load ptr, ptr %18, align 8, !tbaa !5
  %1125 = load ptr, ptr %16, align 8, !tbaa !5
  %1126 = load ptr, ptr %18, align 8, !tbaa !5
  %1127 = getelementptr inbounds float, ptr %1126, i64 1
  %1128 = call i32 @isamax_(ptr noundef %1125, ptr noundef %1127, ptr noundef @c__1)
  %1129 = sext i32 %1128 to i64
  %1130 = getelementptr inbounds float, ptr %1124, i64 %1129
  %1131 = load float, ptr %1130, align 4, !tbaa !11
  store float %1131, ptr %31, align 4, !tbaa !11
  %1132 = load float, ptr %31, align 4, !tbaa !11
  %1133 = fcmp oge float %1132, 0.000000e+00
  br i1 %1133, label %1134, label %1136

1134:                                             ; preds = %1122
  %1135 = load float, ptr %31, align 4, !tbaa !11
  br label %1139

1136:                                             ; preds = %1122
  %1137 = load float, ptr %31, align 4, !tbaa !11
  %1138 = fneg float %1137
  br label %1139

1139:                                             ; preds = %1136, %1134
  %1140 = phi float [ %1135, %1134 ], [ %1138, %1136 ]
  %1141 = fmul float %1123, %1140
  store float %1141, ptr %68, align 4, !tbaa !11
  %1142 = load ptr, ptr %16, align 8, !tbaa !5
  %1143 = load i32, ptr %1142, align 4, !tbaa !9
  store i32 %1143, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %41, align 4, !tbaa !9
  br label %1144

1144:                                             ; preds = %1212, %1139
  %1145 = load i32, ptr %41, align 4, !tbaa !9
  %1146 = load i32, ptr %29, align 4, !tbaa !9
  %1147 = icmp sle i32 %1145, %1146
  br i1 %1147, label %1148, label %1215

1148:                                             ; preds = %1144
  %1149 = load ptr, ptr %18, align 8, !tbaa !5
  %1150 = load i32, ptr %41, align 4, !tbaa !9
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr inbounds float, ptr %1149, i64 %1151
  %1153 = load float, ptr %1152, align 4, !tbaa !11
  store float %1153, ptr %31, align 4, !tbaa !11
  %1154 = load float, ptr %31, align 4, !tbaa !11
  %1155 = fcmp oge float %1154, 0.000000e+00
  br i1 %1155, label %1156, label %1158

1156:                                             ; preds = %1148
  %1157 = load float, ptr %31, align 4, !tbaa !11
  br label %1161

1158:                                             ; preds = %1148
  %1159 = load float, ptr %31, align 4, !tbaa !11
  %1160 = fneg float %1159
  br label %1161

1161:                                             ; preds = %1158, %1156
  %1162 = phi float [ %1157, %1156 ], [ %1160, %1158 ]
  %1163 = load float, ptr %68, align 4, !tbaa !11
  %1164 = fcmp ole float %1162, %1163
  br i1 %1164, label %1165, label %1175

1165:                                             ; preds = %1161
  %1166 = load ptr, ptr %17, align 8, !tbaa !5
  %1167 = load ptr, ptr %24, align 8, !tbaa !5
  %1168 = load i32, ptr %55, align 4, !tbaa !9
  %1169 = load i32, ptr %41, align 4, !tbaa !9
  %1170 = add nsw i32 %1168, %1169
  %1171 = sub nsw i32 %1170, 1
  %1172 = sext i32 %1171 to i64
  %1173 = getelementptr inbounds float, ptr %1167, i64 %1172
  %1174 = load ptr, ptr %16, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.2, ptr noundef @c__1, ptr noundef %1166, ptr noundef @c_b6, ptr noundef @c_b6, ptr noundef %1173, ptr noundef %1174)
  br label %1193

1175:                                             ; preds = %1161
  %1176 = load ptr, ptr %23, align 8, !tbaa !5
  %1177 = load i32, ptr %1176, align 4, !tbaa !9
  %1178 = add nsw i32 %1177, 1
  store i32 %1178, ptr %1176, align 4, !tbaa !9
  %1179 = load ptr, ptr %18, align 8, !tbaa !5
  %1180 = load i32, ptr %41, align 4, !tbaa !9
  %1181 = sext i32 %1180 to i64
  %1182 = getelementptr inbounds float, ptr %1179, i64 %1181
  %1183 = load ptr, ptr %17, align 8, !tbaa !5
  %1184 = load ptr, ptr %24, align 8, !tbaa !5
  %1185 = load i32, ptr %55, align 4, !tbaa !9
  %1186 = load i32, ptr %41, align 4, !tbaa !9
  %1187 = add nsw i32 %1185, %1186
  %1188 = sub nsw i32 %1187, 1
  %1189 = sext i32 %1188 to i64
  %1190 = getelementptr inbounds float, ptr %1184, i64 %1189
  %1191 = load ptr, ptr %16, align 8, !tbaa !5
  %1192 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %1182, ptr noundef @c_b11, ptr noundef @c__1, ptr noundef %1183, ptr noundef %1190, ptr noundef %1191, ptr noundef %1192)
  br label %1193

1193:                                             ; preds = %1175, %1165
  %1194 = load ptr, ptr %18, align 8, !tbaa !5
  %1195 = load i32, ptr %41, align 4, !tbaa !9
  %1196 = sext i32 %1195 to i64
  %1197 = getelementptr inbounds float, ptr %1194, i64 %1196
  %1198 = load float, ptr %1197, align 4, !tbaa !11
  store float %1198, ptr %31, align 4, !tbaa !11
  %1199 = load float, ptr %31, align 4, !tbaa !11
  %1200 = fcmp oge float %1199, 0.000000e+00
  br i1 %1200, label %1201, label %1203

1201:                                             ; preds = %1193
  %1202 = load float, ptr %31, align 4, !tbaa !11
  br label %1206

1203:                                             ; preds = %1193
  %1204 = load float, ptr %31, align 4, !tbaa !11
  %1205 = fneg float %1204
  br label %1206

1206:                                             ; preds = %1203, %1201
  %1207 = phi float [ %1202, %1201 ], [ %1205, %1203 ]
  %1208 = load ptr, ptr %18, align 8, !tbaa !5
  %1209 = load i32, ptr %41, align 4, !tbaa !9
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds float, ptr %1208, i64 %1210
  store float %1207, ptr %1211, align 4, !tbaa !11
  br label %1212

1212:                                             ; preds = %1206
  %1213 = load i32, ptr %41, align 4, !tbaa !9
  %1214 = add nsw i32 %1213, 1
  store i32 %1214, ptr %41, align 4, !tbaa !9
  br label %1144, !llvm.loop !21

1215:                                             ; preds = %1144
  store i32 1, ptr %53, align 4, !tbaa !9
  %1216 = load i32, ptr %36, align 4, !tbaa !9
  store i32 %1216, ptr %29, align 4, !tbaa !9
  store i32 1, ptr %41, align 4, !tbaa !9
  br label %1217

1217:                                             ; preds = %1393, %1215
  %1218 = load i32, ptr %41, align 4, !tbaa !9
  %1219 = load i32, ptr %29, align 4, !tbaa !9
  %1220 = icmp sle i32 %1218, %1219
  br i1 %1220, label %1221, label %1396

1221:                                             ; preds = %1217
  %1222 = load ptr, ptr %25, align 8, !tbaa !5
  %1223 = load i32, ptr %41, align 4, !tbaa !9
  %1224 = sext i32 %1223 to i64
  %1225 = getelementptr inbounds i32, ptr %1222, i64 %1224
  %1226 = load i32, ptr %1225, align 4, !tbaa !9
  store i32 %1226, ptr %57, align 4, !tbaa !9
  %1227 = load i32, ptr %57, align 4, !tbaa !9
  %1228 = sub nsw i32 %1227, 1
  store i32 %1228, ptr %65, align 4, !tbaa !9
  %1229 = load ptr, ptr %25, align 8, !tbaa !5
  %1230 = load i32, ptr %49, align 4, !tbaa !9
  %1231 = load i32, ptr %41, align 4, !tbaa !9
  %1232 = add nsw i32 %1230, %1231
  %1233 = sub nsw i32 %1232, 1
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds i32, ptr %1229, i64 %1234
  %1236 = load i32, ptr %1235, align 4, !tbaa !9
  store i32 %1236, ptr %50, align 4, !tbaa !9
  %1237 = load i32, ptr %55, align 4, !tbaa !9
  %1238 = load i32, ptr %65, align 4, !tbaa !9
  %1239 = add nsw i32 %1237, %1238
  store i32 %1239, ptr %39, align 4, !tbaa !9
  %1240 = load i32, ptr %50, align 4, !tbaa !9
  %1241 = icmp eq i32 %1240, 1
  br i1 %1241, label %1242, label %1256

1242:                                             ; preds = %1221
  %1243 = load ptr, ptr %17, align 8, !tbaa !5
  %1244 = load ptr, ptr %24, align 8, !tbaa !5
  %1245 = load i32, ptr %39, align 4, !tbaa !9
  %1246 = sext i32 %1245 to i64
  %1247 = getelementptr inbounds float, ptr %1244, i64 %1246
  %1248 = load ptr, ptr %16, align 8, !tbaa !5
  %1249 = load ptr, ptr %20, align 8, !tbaa !5
  %1250 = load i32, ptr %57, align 4, !tbaa !9
  %1251 = load i32, ptr %27, align 4, !tbaa !9
  %1252 = add nsw i32 %1250, %1251
  %1253 = sext i32 %1252 to i64
  %1254 = getelementptr inbounds float, ptr %1249, i64 %1253
  %1255 = load ptr, ptr %21, align 8, !tbaa !5
  call void @scopy_(ptr noundef %1243, ptr noundef %1247, ptr noundef %1248, ptr noundef %1254, ptr noundef %1255)
  br label %1392

1256:                                             ; preds = %1221
  %1257 = load i32, ptr %50, align 4, !tbaa !9
  %1258 = load ptr, ptr %15, align 8, !tbaa !5
  %1259 = load i32, ptr %1258, align 4, !tbaa !9
  %1260 = icmp sle i32 %1257, %1259
  br i1 %1260, label %1261, label %1282

1261:                                             ; preds = %1256
  %1262 = load ptr, ptr %17, align 8, !tbaa !5
  %1263 = load ptr, ptr %24, align 8, !tbaa !5
  %1264 = load i32, ptr %58, align 4, !tbaa !9
  %1265 = load i32, ptr %65, align 4, !tbaa !9
  %1266 = add nsw i32 %1264, %1265
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds float, ptr %1263, i64 %1267
  %1269 = load ptr, ptr %16, align 8, !tbaa !5
  %1270 = load ptr, ptr %24, align 8, !tbaa !5
  %1271 = load i32, ptr %39, align 4, !tbaa !9
  %1272 = sext i32 %1271 to i64
  %1273 = getelementptr inbounds float, ptr %1270, i64 %1272
  %1274 = load ptr, ptr %16, align 8, !tbaa !5
  %1275 = load ptr, ptr %20, align 8, !tbaa !5
  %1276 = load i32, ptr %57, align 4, !tbaa !9
  %1277 = load i32, ptr %27, align 4, !tbaa !9
  %1278 = add nsw i32 %1276, %1277
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds float, ptr %1275, i64 %1279
  %1281 = load ptr, ptr %21, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.6, ptr noundef @.str.7, ptr noundef %50, ptr noundef %1262, ptr noundef %50, ptr noundef @c_b11, ptr noundef %1268, ptr noundef %1269, ptr noundef %1273, ptr noundef %1274, ptr noundef @c_b6, ptr noundef %1280, ptr noundef %1281)
  br label %1391

1282:                                             ; preds = %1256
  %1283 = load ptr, ptr %15, align 8, !tbaa !5
  %1284 = load ptr, ptr %17, align 8, !tbaa !5
  %1285 = load ptr, ptr %24, align 8, !tbaa !5
  %1286 = load i32, ptr %39, align 4, !tbaa !9
  %1287 = sext i32 %1286 to i64
  %1288 = getelementptr inbounds float, ptr %1285, i64 %1287
  %1289 = load ptr, ptr %16, align 8, !tbaa !5
  %1290 = load ptr, ptr %20, align 8, !tbaa !5
  %1291 = load i32, ptr %57, align 4, !tbaa !9
  %1292 = load i32, ptr %27, align 4, !tbaa !9
  %1293 = add nsw i32 %1291, %1292
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds float, ptr %1290, i64 %1294
  %1296 = load ptr, ptr %21, align 8, !tbaa !5
  %1297 = load ptr, ptr %24, align 8, !tbaa !5
  %1298 = load i32, ptr %46, align 4, !tbaa !9
  %1299 = load i32, ptr %65, align 4, !tbaa !9
  %1300 = add nsw i32 %1298, %1299
  %1301 = sext i32 %1300 to i64
  %1302 = getelementptr inbounds float, ptr %1297, i64 %1301
  %1303 = load ptr, ptr %16, align 8, !tbaa !5
  %1304 = load ptr, ptr %24, align 8, !tbaa !5
  %1305 = load i32, ptr %58, align 4, !tbaa !9
  %1306 = load i32, ptr %65, align 4, !tbaa !9
  %1307 = add nsw i32 %1305, %1306
  %1308 = sext i32 %1307 to i64
  %1309 = getelementptr inbounds float, ptr %1304, i64 %1308
  %1310 = load ptr, ptr %25, align 8, !tbaa !5
  %1311 = load i32, ptr %43, align 4, !tbaa !9
  %1312 = load i32, ptr %65, align 4, !tbaa !9
  %1313 = add nsw i32 %1311, %1312
  %1314 = sext i32 %1313 to i64
  %1315 = getelementptr inbounds i32, ptr %1310, i64 %1314
  %1316 = load ptr, ptr %24, align 8, !tbaa !5
  %1317 = load i32, ptr %32, align 4, !tbaa !9
  %1318 = load i32, ptr %65, align 4, !tbaa !9
  %1319 = add nsw i32 %1317, %1318
  %1320 = sext i32 %1319 to i64
  %1321 = getelementptr inbounds float, ptr %1316, i64 %1320
  %1322 = load ptr, ptr %24, align 8, !tbaa !5
  %1323 = load i32, ptr %33, align 4, !tbaa !9
  %1324 = load i32, ptr %65, align 4, !tbaa !9
  %1325 = add nsw i32 %1323, %1324
  %1326 = sext i32 %1325 to i64
  %1327 = getelementptr inbounds float, ptr %1322, i64 %1326
  %1328 = load ptr, ptr %24, align 8, !tbaa !5
  %1329 = load i32, ptr %47, align 4, !tbaa !9
  %1330 = load i32, ptr %65, align 4, !tbaa !9
  %1331 = add nsw i32 %1329, %1330
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds float, ptr %1328, i64 %1332
  %1334 = load ptr, ptr %24, align 8, !tbaa !5
  %1335 = load i32, ptr %48, align 4, !tbaa !9
  %1336 = load i32, ptr %65, align 4, !tbaa !9
  %1337 = add nsw i32 %1335, %1336
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds float, ptr %1334, i64 %1338
  %1340 = load ptr, ptr %25, align 8, !tbaa !5
  %1341 = load i32, ptr %62, align 4, !tbaa !9
  %1342 = load i32, ptr %65, align 4, !tbaa !9
  %1343 = add nsw i32 %1341, %1342
  %1344 = sext i32 %1343 to i64
  %1345 = getelementptr inbounds i32, ptr %1340, i64 %1344
  %1346 = load ptr, ptr %25, align 8, !tbaa !5
  %1347 = load i32, ptr %59, align 4, !tbaa !9
  %1348 = load i32, ptr %65, align 4, !tbaa !9
  %1349 = add nsw i32 %1347, %1348
  %1350 = sext i32 %1349 to i64
  %1351 = getelementptr inbounds i32, ptr %1346, i64 %1350
  %1352 = load ptr, ptr %16, align 8, !tbaa !5
  %1353 = load ptr, ptr %25, align 8, !tbaa !5
  %1354 = load i32, ptr %35, align 4, !tbaa !9
  %1355 = load i32, ptr %65, align 4, !tbaa !9
  %1356 = add nsw i32 %1354, %1355
  %1357 = sext i32 %1356 to i64
  %1358 = getelementptr inbounds i32, ptr %1353, i64 %1357
  %1359 = load ptr, ptr %24, align 8, !tbaa !5
  %1360 = load i32, ptr %61, align 4, !tbaa !9
  %1361 = load i32, ptr %65, align 4, !tbaa !9
  %1362 = add nsw i32 %1360, %1361
  %1363 = sext i32 %1362 to i64
  %1364 = getelementptr inbounds float, ptr %1359, i64 %1363
  %1365 = load ptr, ptr %24, align 8, !tbaa !5
  %1366 = load i32, ptr %40, align 4, !tbaa !9
  %1367 = load i32, ptr %65, align 4, !tbaa !9
  %1368 = add nsw i32 %1366, %1367
  %1369 = sext i32 %1368 to i64
  %1370 = getelementptr inbounds float, ptr %1365, i64 %1369
  %1371 = load ptr, ptr %24, align 8, !tbaa !5
  %1372 = load i32, ptr %45, align 4, !tbaa !9
  %1373 = load i32, ptr %65, align 4, !tbaa !9
  %1374 = add nsw i32 %1372, %1373
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds float, ptr %1371, i64 %1375
  %1377 = load ptr, ptr %24, align 8, !tbaa !5
  %1378 = load i32, ptr %51, align 4, !tbaa !9
  %1379 = sext i32 %1378 to i64
  %1380 = getelementptr inbounds float, ptr %1377, i64 %1379
  %1381 = load ptr, ptr %25, align 8, !tbaa !5
  %1382 = load i32, ptr %67, align 4, !tbaa !9
  %1383 = sext i32 %1382 to i64
  %1384 = getelementptr inbounds i32, ptr %1381, i64 %1383
  %1385 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slalsa_(ptr noundef %53, ptr noundef %1283, ptr noundef %50, ptr noundef %1284, ptr noundef %1288, ptr noundef %1289, ptr noundef %1295, ptr noundef %1296, ptr noundef %1302, ptr noundef %1303, ptr noundef %1309, ptr noundef %1315, ptr noundef %1321, ptr noundef %1327, ptr noundef %1333, ptr noundef %1339, ptr noundef %1345, ptr noundef %1351, ptr noundef %1352, ptr noundef %1358, ptr noundef %1364, ptr noundef %1370, ptr noundef %1376, ptr noundef %1380, ptr noundef %1384, ptr noundef %1385)
  %1386 = load ptr, ptr %26, align 8, !tbaa !5
  %1387 = load i32, ptr %1386, align 4, !tbaa !9
  %1388 = icmp ne i32 %1387, 0
  br i1 %1388, label %1389, label %1390

1389:                                             ; preds = %1282
  store i32 1, ptr %69, align 4
  br label %1414

1390:                                             ; preds = %1282
  br label %1391

1391:                                             ; preds = %1390, %1261
  br label %1392

1392:                                             ; preds = %1391, %1242
  br label %1393

1393:                                             ; preds = %1392
  %1394 = load i32, ptr %41, align 4, !tbaa !9
  %1395 = add nsw i32 %1394, 1
  store i32 %1395, ptr %41, align 4, !tbaa !9
  br label %1217, !llvm.loop !22

1396:                                             ; preds = %1217
  %1397 = load ptr, ptr %16, align 8, !tbaa !5
  %1398 = load ptr, ptr %18, align 8, !tbaa !5
  %1399 = getelementptr inbounds float, ptr %1398, i64 1
  %1400 = load ptr, ptr %16, align 8, !tbaa !5
  %1401 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b11, ptr noundef %60, ptr noundef %1397, ptr noundef @c__1, ptr noundef %1399, ptr noundef %1400, ptr noundef %1401)
  %1402 = load ptr, ptr %16, align 8, !tbaa !5
  %1403 = load ptr, ptr %18, align 8, !tbaa !5
  %1404 = getelementptr inbounds float, ptr %1403, i64 1
  %1405 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slasrt_(ptr noundef @.str.8, ptr noundef %1402, ptr noundef %1404, ptr noundef %1405)
  %1406 = load ptr, ptr %16, align 8, !tbaa !5
  %1407 = load ptr, ptr %17, align 8, !tbaa !5
  %1408 = load ptr, ptr %20, align 8, !tbaa !5
  %1409 = load i32, ptr %28, align 4, !tbaa !9
  %1410 = sext i32 %1409 to i64
  %1411 = getelementptr inbounds float, ptr %1408, i64 %1410
  %1412 = load ptr, ptr %21, align 8, !tbaa !5
  %1413 = load ptr, ptr %26, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.3, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %60, ptr noundef @c_b11, ptr noundef %1406, ptr noundef %1407, ptr noundef %1411, ptr noundef %1412, ptr noundef %1413)
  store i32 1, ptr %69, align 4
  br label %1414

1414:                                             ; preds = %1396, %1389, %1112, %1001, %882, %472, %407, %347, %187, %142, %118
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  ret void
}

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

declare void @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 = !{!"int", !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 i32, align 4
@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 i32, align 4
@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 void @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 i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca float, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr nonnull %18) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #4
  %24 = getelementptr inbounds i8, ptr %4, i64 -4
  %25 = getelementptr inbounds i8, ptr %5, i64 -4
  %26 = load i32, ptr %7, align 4, !tbaa !5
  %narrow = xor i32 %26, -1
  %27 = sext i32 %narrow to i64
  %28 = getelementptr inbounds float, ptr %6, i64 %27
  %29 = getelementptr inbounds i8, ptr %10, i64 -4
  %30 = getelementptr inbounds i8, ptr %11, i64 -4
  store i32 0, ptr %12, align 4, !tbaa !5
  %31 = load i32, ptr %2, align 4, !tbaa !5
  %32 = icmp slt i32 %31, 0
  br i1 %32, label %.thread, label %33

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

36:                                               ; preds = %33
  %37 = load i32, ptr %7, align 4, !tbaa !5
  %38 = icmp slt i32 %37, 1
  %39 = icmp slt i32 %37, %31
  %or.cond = or i1 %38, %39
  br i1 %or.cond, label %.thread, label %41

.thread:                                          ; preds = %36, %33, %13
  %.sink = phi i32 [ -3, %13 ], [ -4, %33 ], [ -8, %36 ]
  %.neg711 = phi i32 [ 3, %13 ], [ 4, %33 ], [ 8, %36 ]
  store i32 %.sink, ptr %12, align 4, !tbaa !5
  store i32 %.neg711, ptr %14, align 4, !tbaa !5
  %40 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %14, i32 noundef 6) #4
  br label %.loopexit

41:                                               ; preds = %36
  %42 = tail call float @slamch_(ptr noundef nonnull @.str.1) #4
  %43 = load float, ptr %8, align 4, !tbaa !9
  %44 = fcmp ugt float %43, 0.000000e+00
  %45 = fcmp ult float %43, 1.000000e+00
  %or.cond630 = and i1 %44, %45
  %.0 = select i1 %or.cond630, float %43, float %42
  store i32 0, ptr %9, align 4, !tbaa !5
  %46 = load i32, ptr %2, align 4, !tbaa !5
  switch i32 %46, label %56 [
    i32 0, label %.loopexit
    i32 1, label %47
  ]

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

50:                                               ; preds = %47
  tail call void @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

51:                                               ; preds = %47
  store i32 1, ptr %9, align 4, !tbaa !5
  tail call void @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
  %52 = load float, ptr %4, align 4, !tbaa !9
  %53 = fcmp ult float %52, 0.000000e+00
  %54 = fneg float %52
  %55 = select i1 %53, float %54, float %52
  store float %55, ptr %4, align 4, !tbaa !9
  br label %.loopexit

56:                                               ; preds = %41
  %57 = load i8, ptr %0, align 1, !tbaa !11
  %58 = icmp eq i8 %57, 76
  br i1 %58, label %59, label %.loopexit636

59:                                               ; preds = %56
  %invariant.gep = getelementptr i8, ptr %10, i64 -8
  %.not614638 = icmp slt i32 %46, 2
  br i1 %.not614638, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %59
  %60 = add nsw i32 %46, -1
  %61 = sext i32 %26 to i64
  %invariant.gep713 = getelementptr float, ptr %28, i64 %61
  %invariant.gep715 = getelementptr float, ptr %28, i64 %61
  %62 = sext i32 %60 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %79
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %79 ]
  %63 = getelementptr inbounds float, ptr %24, i64 %indvars.iv
  %64 = getelementptr inbounds float, ptr %25, i64 %indvars.iv
  call void @slartg_(ptr noundef nonnull %63, ptr noundef nonnull %64, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %16) #4
  %65 = load float, ptr %16, align 4, !tbaa !9
  store float %65, ptr %63, align 4, !tbaa !9
  %66 = load float, ptr %21, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %67 = getelementptr float, ptr %4, i64 %indvars.iv
  %68 = load float, ptr %67, align 4, !tbaa !9
  %69 = fmul float %66, %68
  store float %69, ptr %64, align 4, !tbaa !9
  %70 = load float, ptr %20, align 4, !tbaa !9
  %71 = load float, ptr %67, align 4, !tbaa !9
  %72 = fmul float %70, %71
  store float %72, ptr %67, align 4, !tbaa !9
  %73 = load i32, ptr %3, align 4, !tbaa !5
  %74 = icmp eq i32 %73, 1
  br i1 %74, label %75, label %76

75:                                               ; preds = %.lr.ph
  %gep714 = getelementptr float, ptr %invariant.gep713, i64 %indvars.iv
  %gep716 = getelementptr float, ptr %invariant.gep715, i64 %indvars.iv.next
  call void @srot_(ptr noundef nonnull @c__1, ptr noundef %gep714, ptr noundef nonnull @c__1, ptr noundef %gep716, ptr noundef nonnull @c__1, ptr noundef nonnull %20, ptr noundef nonnull %21) #4
  br label %79

76:                                               ; preds = %.lr.ph
  %sext = shl i64 %indvars.iv, 33
  %77 = ashr exact i64 %sext, 30
  %gep = getelementptr i8, ptr %invariant.gep, i64 %77
  store float %70, ptr %gep, align 4, !tbaa !9
  %.idx = shl i64 %indvars.iv, 3
  %78 = getelementptr inbounds i8, ptr %29, i64 %.idx
  store float %66, ptr %78, align 4, !tbaa !9
  br label %79

79:                                               ; preds = %75, %76
  %.not614.not = icmp slt i64 %indvars.iv, %62
  br i1 %.not614.not, label %.lr.ph, label %._crit_edge, !llvm.loop !12

._crit_edge:                                      ; preds = %79, %59
  %80 = load i32, ptr %3, align 4, !tbaa !5
  %81 = icmp sgt i32 %80, 1
  br i1 %81, label %.lr.ph650, label %.loopexit636

.lr.ph650:                                        ; preds = %._crit_edge
  %82 = load i32, ptr %2, align 4, !tbaa !5
  %83 = icmp sgt i32 %82, 1
  br i1 %83, label %.lr.ph650.split.preheader, label %.loopexit636

.lr.ph650.split.preheader:                        ; preds = %.lr.ph650
  %84 = sext i32 %26 to i64
  %85 = zext nneg i32 %80 to i64
  br label %.lr.ph650.split

.lr.ph650.splitthread-pre-split:                  ; preds = %._crit_edge646
  %indvars.iv.next689 = add nuw nsw i64 %indvars.iv688, 1
  %.pr = load i32, ptr %2, align 4, !tbaa !5
  br label %.lr.ph650.split

.lr.ph650.split:                                  ; preds = %.lr.ph650.splitthread-pre-split, %.lr.ph650.split.preheader
  %86 = phi i32 [ %.pr, %.lr.ph650.splitthread-pre-split ], [ %82, %.lr.ph650.split.preheader ]
  %indvars.iv688 = phi i64 [ %indvars.iv.next689, %.lr.ph650.splitthread-pre-split ], [ 1, %.lr.ph650.split.preheader ]
  %.not629.not642 = icmp sgt i32 %86, 1
  br i1 %.not629.not642, label %.lr.ph645, label %._crit_edge646

.lr.ph645:                                        ; preds = %.lr.ph650.split
  %87 = mul nsw i64 %indvars.iv688, %84
  %wide.trip.count = zext nneg i32 %86 to i64
  %invariant.gep717 = getelementptr float, ptr %28, i64 %87
  %invariant.gep719 = getelementptr float, ptr %28, i64 %87
  br label %88

88:                                               ; preds = %.lr.ph645, %88
  %indvars.iv685 = phi i64 [ 1, %.lr.ph645 ], [ %indvars.iv.next686, %88 ]
  %sext709 = shl i64 %indvars.iv685, 33
  %89 = ashr exact i64 %sext709, 30
  %gep641 = getelementptr i8, ptr %invariant.gep, i64 %89
  %90 = load float, ptr %gep641, align 4, !tbaa !9
  store float %90, ptr %20, align 4, !tbaa !9
  %.idx710 = shl i64 %indvars.iv685, 3
  %91 = getelementptr inbounds i8, ptr %29, i64 %.idx710
  %92 = load float, ptr %91, align 4, !tbaa !9
  store float %92, ptr %21, align 4, !tbaa !9
  %gep718 = getelementptr float, ptr %invariant.gep717, i64 %indvars.iv685
  %indvars.iv.next686 = add nuw nsw i64 %indvars.iv685, 1
  %gep720 = getelementptr float, ptr %invariant.gep719, i64 %indvars.iv.next686
  call void @srot_(ptr noundef nonnull @c__1, ptr noundef %gep718, ptr noundef nonnull @c__1, ptr noundef %gep720, ptr noundef nonnull @c__1, ptr noundef nonnull %20, ptr noundef nonnull %21) #4
  %exitcond.not = icmp eq i64 %indvars.iv.next686, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge646, label %88, !llvm.loop !14

._crit_edge646:                                   ; preds = %88, %.lr.ph650.split
  %.not615.not = icmp ult i64 %indvars.iv688, %85
  br i1 %.not615.not, label %.lr.ph650.splitthread-pre-split, label %.loopexit636, !llvm.loop !15

.loopexit636:                                     ; preds = %._crit_edge646, %.lr.ph650, %._crit_edge, %56
  %93 = load i32, ptr %2, align 4, !tbaa !5
  %94 = add nsw i32 %93, -1
  store i32 %94, ptr %23, align 4, !tbaa !5
  %95 = call float @slanst_(ptr noundef nonnull @.str.4, ptr noundef nonnull %2, ptr noundef %4, ptr noundef %5) #4
  store float %95, ptr %22, align 4, !tbaa !9
  %96 = fcmp oeq float %95, 0.000000e+00
  br i1 %96, label %97, label %98

97:                                               ; preds = %.loopexit636
  call void @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

98:                                               ; preds = %.loopexit636
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, 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
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, ptr noundef nonnull @c_b11, ptr noundef nonnull %23, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %23, ptr noundef nonnull %12) #4
  %99 = load i32, ptr %2, align 4, !tbaa !5
  %100 = load i32, ptr %1, align 4, !tbaa !5
  %.not616 = icmp sgt i32 %99, %100
  br i1 %.not616, label %127, label %101

101:                                              ; preds = %98
  %102 = mul nsw i32 %99, %99
  call void @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
  %103 = zext nneg i32 %102 to i64
  %104 = getelementptr inbounds float, ptr %29, i64 %103
  %105 = getelementptr inbounds i8, ptr %104, i64 4
  call void @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 nonnull %105, ptr noundef nonnull %12) #4
  %106 = load i32, ptr %12, align 4, !tbaa !5
  %.not627 = icmp eq i32 %106, 0
  br i1 %.not627, label %107, label %.loopexit

107:                                              ; preds = %101
  %108 = call i32 @isamax_(ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull @c__1) #4
  %109 = sext i32 %108 to i64
  %110 = getelementptr inbounds float, ptr %24, i64 %109
  %111 = load float, ptr %110, align 4, !tbaa !9
  %112 = fcmp oge float %111, 0.000000e+00
  %113 = fneg float %111
  %114 = select i1 %112, float %111, float %113
  %115 = fmul float %.0, %114
  %116 = load i32, ptr %2, align 4, !tbaa !5
  %.not628651 = icmp slt i32 %116, 1
  br i1 %.not628651, label %._crit_edge655, label %.lr.ph654.preheader

.lr.ph654.preheader:                              ; preds = %107
  %117 = sext i32 %26 to i64
  %invariant.gep721 = getelementptr float, ptr %28, i64 %117
  %invariant.gep723 = getelementptr float, ptr %28, i64 %117
  %118 = zext nneg i32 %116 to i64
  br label %.lr.ph654

.lr.ph654:                                        ; preds = %.lr.ph654.preheader, %126
  %indvars.iv691 = phi i64 [ 1, %.lr.ph654.preheader ], [ %indvars.iv.next692, %126 ]
  %119 = getelementptr inbounds float, ptr %24, i64 %indvars.iv691
  %120 = load float, ptr %119, align 4, !tbaa !9
  %121 = fcmp ugt float %120, %115
  br i1 %121, label %123, label %122

122:                                              ; preds = %.lr.ph654
  %gep722 = getelementptr float, ptr %invariant.gep721, i64 %indvars.iv691
  call void @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 %gep722, ptr noundef nonnull %7) #4
  br label %126

123:                                              ; preds = %.lr.ph654
  %gep724 = getelementptr float, ptr %invariant.gep723, i64 %indvars.iv691
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %119, ptr noundef nonnull @c_b11, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef %gep724, ptr noundef nonnull %7, ptr noundef nonnull %12) #4
  %124 = load i32, ptr %9, align 4, !tbaa !5
  %125 = add nsw i32 %124, 1
  store i32 %125, ptr %9, align 4, !tbaa !5
  br label %126

126:                                              ; preds = %122, %123
  %indvars.iv.next692 = add nuw nsw i64 %indvars.iv691, 1
  %.not628.not = icmp ult i64 %indvars.iv691, %118
  br i1 %.not628.not, label %.lr.ph654, label %._crit_edge655, !llvm.loop !17

._crit_edge655:                                   ; preds = %126, %107
  call void @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 nonnull %105, ptr noundef nonnull %2) #4
  call void @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %105, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7) #4
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b11, ptr noundef nonnull %22, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef nonnull %4, ptr noundef nonnull %2, ptr noundef nonnull %12) #4
  call void @slasrt_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef nonnull %4, ptr noundef nonnull %12) #4
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, 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

127:                                              ; preds = %98
  %128 = sitofp i32 %99 to float
  %129 = add nsw i32 %100, 1
  %130 = sitofp i32 %129 to float
  %131 = fdiv float %128, %130
  %132 = fpext float %131 to double
  %133 = call double @log(double noundef %132) #4
  %134 = fdiv double %133, 0x3FE62E42FEFA39EF
  %135 = fptosi double %134 to i32
  %136 = add nsw i32 %135, 1
  %137 = load i32, ptr %1, align 4, !tbaa !5
  %138 = add nsw i32 %137, 1
  %139 = load i32, ptr %2, align 4, !tbaa !5
  %140 = mul nsw i32 %139, %137
  %141 = add nsw i32 %140, 1
  %142 = mul nsw i32 %138, %139
  %143 = add nsw i32 %141, %142
  %144 = mul nsw i32 %136, %139
  %145 = add nsw i32 %143, %144
  %146 = shl i32 %144, 1
  %147 = add nsw i32 %145, %146
  %148 = add nsw i32 %147, %144
  %149 = add nsw i32 %148, %139
  %150 = add nsw i32 %149, %139
  %151 = shl i32 %136, 1
  %152 = mul nsw i32 %151, %139
  %153 = add nsw i32 %150, %152
  %154 = add nsw i32 %153, %152
  %155 = load i32, ptr %3, align 4, !tbaa !5
  %156 = mul nsw i32 %155, %139
  %157 = add nsw i32 %154, %156
  %158 = add i32 %139, 1
  %159 = add nsw i32 %158, %139
  %160 = add nsw i32 %159, %139
  %161 = add nsw i32 %160, %139
  %162 = add nsw i32 %161, %144
  %163 = add nsw i32 %162, %146
  store i32 0, ptr %15, align 4, !tbaa !5
  store i32 1, ptr %18, align 4, !tbaa !5
  store i32 0, ptr %19, align 4, !tbaa !5
  %.not617656 = icmp slt i32 %139, 1
  br i1 %.not617656, label %._crit_edge660, label %.lr.ph659

.lr.ph659:                                        ; preds = %127
  %164 = fcmp oge float %42, 0.000000e+00
  %.neg = fneg float %42
  %wide.trip.count697 = zext i32 %158 to i64
  %165 = add nsw i64 %wide.trip.count697, -1
  %min.iters.check = icmp ult i32 %158, 9
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph659
  %n.vec = and i64 %165, -8
  %ind.end = or disjoint i64 %n.vec, 1
  %broadcast.splatinsert = insertelement <4 x float> poison, float %42, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %invariant.gep746 = getelementptr i8, ptr %24, i64 32
  br label %vector.body

vector.body:                                      ; preds = %pred.store.continue744, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %pred.store.continue744 ]
  %166 = or disjoint i64 %index, 5
  %167 = getelementptr float, ptr %4, i64 %index
  %168 = getelementptr inbounds i8, ptr %167, i64 16
  %wide.load = load <4 x float>, ptr %167, align 4, !tbaa !9
  %wide.load730 = load <4 x float>, ptr %168, align 4, !tbaa !9
  %169 = fcmp oge <4 x float> %wide.load, zeroinitializer
  %170 = fcmp oge <4 x float> %wide.load730, zeroinitializer
  %171 = fneg <4 x float> %wide.load
  %172 = fneg <4 x float> %wide.load730
  %173 = select <4 x i1> %169, <4 x float> %wide.load, <4 x float> %171
  %174 = select <4 x i1> %170, <4 x float> %wide.load730, <4 x float> %172
  %175 = fcmp olt <4 x float> %173, %broadcast.splat
  %176 = fcmp olt <4 x float> %174, %broadcast.splat
  %177 = extractelement <4 x i1> %175, i64 0
  br i1 %177, label %pred.store.if, label %pred.store.continue

pred.store.if:                                    ; preds = %vector.body
  %178 = extractelement <4 x i1> %169, i64 0
  %179 = xor i1 %164, %178
  %180 = getelementptr float, ptr %4, i64 %index
  %181 = select i1 %179, float %.neg, float %42
  store float %181, ptr %180, align 4, !tbaa !9
  br label %pred.store.continue

pred.store.continue:                              ; preds = %pred.store.if, %vector.body
  %182 = extractelement <4 x i1> %175, i64 1
  br i1 %182, label %pred.store.if731, label %pred.store.continue732

pred.store.if731:                                 ; preds = %pred.store.continue
  %183 = or disjoint i64 %index, 2
  %184 = extractelement <4 x i1> %169, i64 1
  %185 = xor i1 %164, %184
  %186 = getelementptr inbounds float, ptr %24, i64 %183
  %187 = select i1 %185, float %.neg, float %42
  store float %187, ptr %186, align 4, !tbaa !9
  br label %pred.store.continue732

pred.store.continue732:                           ; preds = %pred.store.if731, %pred.store.continue
  %188 = extractelement <4 x i1> %175, i64 2
  br i1 %188, label %pred.store.if733, label %pred.store.continue734

pred.store.if733:                                 ; preds = %pred.store.continue732
  %189 = or disjoint i64 %index, 3
  %190 = extractelement <4 x i1> %169, i64 2
  %191 = xor i1 %164, %190
  %192 = getelementptr inbounds float, ptr %24, i64 %189
  %193 = select i1 %191, float %.neg, float %42
  store float %193, ptr %192, align 4, !tbaa !9
  br label %pred.store.continue734

pred.store.continue734:                           ; preds = %pred.store.if733, %pred.store.continue732
  %194 = extractelement <4 x i1> %175, i64 3
  br i1 %194, label %pred.store.if735, label %pred.store.continue736

pred.store.if735:                                 ; preds = %pred.store.continue734
  %195 = or disjoint i64 %index, 4
  %196 = extractelement <4 x i1> %169, i64 3
  %197 = xor i1 %164, %196
  %198 = getelementptr inbounds float, ptr %24, i64 %195
  %199 = select i1 %197, float %.neg, float %42
  store float %199, ptr %198, align 4, !tbaa !9
  br label %pred.store.continue736

pred.store.continue736:                           ; preds = %pred.store.if735, %pred.store.continue734
  %200 = extractelement <4 x i1> %176, i64 0
  br i1 %200, label %pred.store.if737, label %pred.store.continue738

pred.store.if737:                                 ; preds = %pred.store.continue736
  %201 = extractelement <4 x i1> %170, i64 0
  %202 = xor i1 %164, %201
  %203 = getelementptr inbounds float, ptr %24, i64 %166
  %204 = select i1 %202, float %.neg, float %42
  store float %204, ptr %203, align 4, !tbaa !9
  br label %pred.store.continue738

pred.store.continue738:                           ; preds = %pred.store.if737, %pred.store.continue736
  %205 = extractelement <4 x i1> %176, i64 1
  br i1 %205, label %pred.store.if739, label %pred.store.continue740

pred.store.if739:                                 ; preds = %pred.store.continue738
  %206 = or disjoint i64 %index, 6
  %207 = extractelement <4 x i1> %170, i64 1
  %208 = xor i1 %164, %207
  %209 = getelementptr inbounds float, ptr %24, i64 %206
  %210 = select i1 %208, float %.neg, float %42
  store float %210, ptr %209, align 4, !tbaa !9
  br label %pred.store.continue740

pred.store.continue740:                           ; preds = %pred.store.if739, %pred.store.continue738
  %211 = extractelement <4 x i1> %176, i64 2
  br i1 %211, label %pred.store.if741, label %pred.store.continue742

pred.store.if741:                                 ; preds = %pred.store.continue740
  %212 = or disjoint i64 %index, 7
  %213 = extractelement <4 x i1> %170, i64 2
  %214 = xor i1 %164, %213
  %215 = getelementptr inbounds float, ptr %24, i64 %212
  %216 = select i1 %214, float %.neg, float %42
  store float %216, ptr %215, align 4, !tbaa !9
  br label %pred.store.continue742

pred.store.continue742:                           ; preds = %pred.store.if741, %pred.store.continue740
  %217 = extractelement <4 x i1> %176, i64 3
  br i1 %217, label %pred.store.if743, label %pred.store.continue744

pred.store.if743:                                 ; preds = %pred.store.continue742
  %218 = extractelement <4 x i1> %170, i64 3
  %219 = xor i1 %164, %218
  %gep747 = getelementptr float, ptr %invariant.gep746, i64 %index
  %220 = select i1 %219, float %.neg, float %42
  store float %220, ptr %gep747, align 4, !tbaa !9
  br label %pred.store.continue744

pred.store.continue744:                           ; preds = %pred.store.if743, %pred.store.continue742
  %index.next = add nuw i64 %index, 8
  %221 = icmp eq i64 %index.next, %n.vec
  br i1 %221, label %middle.block, label %vector.body, !llvm.loop !18

middle.block:                                     ; preds = %pred.store.continue744
  %cmp.n = icmp eq i64 %165, %n.vec
  br i1 %cmp.n, label %._crit_edge660, label %scalar.ph.preheader

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

scalar.ph:                                        ; preds = %scalar.ph.preheader, %230
  %indvars.iv694 = phi i64 [ %indvars.iv.next695, %230 ], [ %indvars.iv694.ph, %scalar.ph.preheader ]
  %222 = getelementptr inbounds float, ptr %24, i64 %indvars.iv694
  %223 = load float, ptr %222, align 4, !tbaa !9
  %224 = fcmp oge float %223, 0.000000e+00
  %225 = fneg float %223
  %226 = select i1 %224, float %223, float %225
  %227 = fcmp olt float %226, %42
  br i1 %227, label %228, label %230

228:                                              ; preds = %scalar.ph
  %229 = xor i1 %164, %224
  %. = select i1 %229, float %.neg, float %42
  store float %., ptr %222, align 4, !tbaa !9
  br label %230

230:                                              ; preds = %scalar.ph, %228
  %indvars.iv.next695 = add nuw nsw i64 %indvars.iv694, 1
  %exitcond698.not = icmp eq i64 %indvars.iv.next695, %wide.trip.count697
  br i1 %exitcond698.not, label %._crit_edge660, label %scalar.ph, !llvm.loop !21

._crit_edge660:                                   ; preds = %230, %middle.block, %127
  %231 = load i32, ptr %23, align 4, !tbaa !5
  %.not618661 = icmp slt i32 %231, 1
  br i1 %.not618661, label %._crit_edge667, label %.lr.ph666

.lr.ph666:                                        ; preds = %._crit_edge660
  %232 = sext i32 %157 to i64
  %233 = getelementptr inbounds float, ptr %29, i64 %232
  %234 = sext i32 %163 to i64
  %235 = getelementptr inbounds i32, ptr %30, i64 %234
  %236 = zext nneg i32 %231 to i64
  br label %237

237:                                              ; preds = %.lr.ph666, %368
  %indvars.iv699 = phi i64 [ 1, %.lr.ph666 ], [ %indvars.iv.next700.pre-phi, %368 ]
  %.0593664 = phi i32 [ 1, %.lr.ph666 ], [ %.1, %368 ]
  %.0594663 = phi i32 [ 0, %.lr.ph666 ], [ %.2, %368 ]
  %238 = getelementptr inbounds float, ptr %25, i64 %indvars.iv699
  %239 = load float, ptr %238, align 4, !tbaa !9
  %240 = fcmp oge float %239, 0.000000e+00
  %241 = fneg float %239
  %242 = select i1 %240, float %239, float %241
  %243 = fcmp olt float %242, %42
  %244 = load i32, ptr %23, align 4
  %245 = zext i32 %244 to i64
  %246 = icmp eq i64 %indvars.iv699, %245
  %or.cond632 = select i1 %243, i1 true, i1 %246
  br i1 %or.cond632, label %247, label %._crit_edge708

._crit_edge708:                                   ; preds = %237
  %.pre = add nuw nsw i64 %indvars.iv699, 1
  br label %368

247:                                              ; preds = %237
  %248 = add nsw i32 %.0594663, 1
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds i32, ptr %30, i64 %249
  store i32 %.0593664, ptr %250, align 4, !tbaa !5
  %251 = sext i32 %244 to i64
  %252 = icmp slt i64 %indvars.iv699, %251
  br i1 %252, label %253, label %260

253:                                              ; preds = %247
  %254 = trunc nuw nsw i64 %indvars.iv699 to i32
  %255 = sub nsw i32 %254, %.0593664
  %256 = add nsw i32 %255, 1
  store i32 %256, ptr %17, align 4, !tbaa !5
  %257 = add i32 %.0594663, %158
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds i32, ptr %30, i64 %258
  store i32 %256, ptr %259, align 4, !tbaa !5
  br label %287

260:                                              ; preds = %247
  %261 = fcmp ult float %242, %42
  %262 = add i32 %.0594663, %158
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds i32, ptr %30, i64 %263
  br i1 %261, label %269, label %265

265:                                              ; preds = %260
  %266 = load i32, ptr %2, align 4, !tbaa !5
  %267 = sub nsw i32 %266, %.0593664
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr %17, align 4, !tbaa !5
  store i32 %268, ptr %264, align 4, !tbaa !5
  br label %287

269:                                              ; preds = %260
  %270 = trunc nuw nsw i64 %indvars.iv699 to i32
  %271 = sub nsw i32 %270, %.0593664
  %272 = add nsw i32 %271, 1
  store i32 %272, ptr %17, align 4, !tbaa !5
  store i32 %272, ptr %264, align 4, !tbaa !5
  %273 = add nsw i32 %.0594663, 2
  %274 = load i32, ptr %2, align 4, !tbaa !5
  %275 = sext i32 %273 to i64
  %276 = getelementptr inbounds i32, ptr %30, i64 %275
  store i32 %274, ptr %276, align 4, !tbaa !5
  %277 = add i32 %273, %139
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds i32, ptr %30, i64 %278
  store i32 1, ptr %279, align 4, !tbaa !5
  %280 = load i32, ptr %2, align 4, !tbaa !5
  %281 = add nsw i32 %280, %26
  %282 = sext i32 %281 to i64
  %283 = getelementptr inbounds float, ptr %28, i64 %282
  %284 = add nsw i32 %244, %154
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds float, ptr %29, i64 %285
  call void @scopy_(ptr noundef nonnull %3, ptr noundef %283, ptr noundef nonnull %7, ptr noundef nonnull %286, ptr noundef nonnull %2) #4
  %.pr634 = load i32, ptr %17, align 4, !tbaa !5
  br label %287

287:                                              ; preds = %265, %269, %253
  %288 = phi i32 [ %268, %265 ], [ %.pr634, %269 ], [ %256, %253 ]
  %.1595 = phi i32 [ %248, %265 ], [ %273, %269 ], [ %248, %253 ]
  %289 = add nsw i32 %.0593664, -1
  %290 = icmp eq i32 %288, 1
  br i1 %290, label %291, label %298

291:                                              ; preds = %287
  %292 = add nsw i32 %.0593664, %26
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds float, ptr %28, i64 %293
  %295 = add nsw i32 %289, %154
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds float, ptr %29, i64 %296
  call void @scopy_(ptr noundef nonnull %3, ptr noundef %294, ptr noundef nonnull %7, ptr noundef nonnull %297, ptr noundef nonnull %2) #4
  br label %365

298:                                              ; preds = %287
  %299 = load i32, ptr %1, align 4, !tbaa !5
  %.not623 = icmp sgt i32 %288, %299
  br i1 %.not623, label %315, label %300

300:                                              ; preds = %298
  %301 = add i32 %.0593664, %140
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds float, ptr %29, i64 %302
  call void @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %17, ptr noundef nonnull %17, ptr noundef nonnull @c_b6, ptr noundef nonnull @c_b11, ptr noundef nonnull %303, ptr noundef nonnull %2) #4
  %304 = sext i32 %.0593664 to i64
  %305 = getelementptr inbounds float, ptr %24, i64 %304
  %306 = getelementptr inbounds float, ptr %25, i64 %304
  %307 = add nsw i32 %.0593664, %26
  %308 = sext i32 %307 to i64
  %309 = getelementptr inbounds float, ptr %28, i64 %308
  call void @slasdq_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__0, ptr noundef nonnull %17, ptr noundef nonnull %17, ptr noundef nonnull @c__0, ptr noundef nonnull %3, ptr noundef nonnull %305, ptr noundef nonnull %306, ptr noundef nonnull %303, ptr noundef nonnull %2, ptr noundef nonnull %233, ptr noundef nonnull %2, ptr noundef %309, ptr noundef nonnull %7, ptr noundef nonnull %233, ptr noundef nonnull %12) #4
  %310 = load i32, ptr %12, align 4, !tbaa !5
  %.not626 = icmp eq i32 %310, 0
  br i1 %.not626, label %311, label %.loopexit

311:                                              ; preds = %300
  %312 = add nsw i32 %289, %154
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds float, ptr %29, i64 %313
  call void @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %17, ptr noundef nonnull %3, ptr noundef %309, ptr noundef nonnull %7, ptr noundef nonnull %314, ptr noundef nonnull %2) #4
  br label %365

315:                                              ; preds = %298
  %316 = sext i32 %.0593664 to i64
  %317 = getelementptr inbounds float, ptr %24, i64 %316
  %318 = getelementptr inbounds float, ptr %25, i64 %316
  %319 = getelementptr inbounds float, ptr %29, i64 %316
  %320 = add i32 %.0593664, %140
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds float, ptr %29, i64 %321
  %323 = add nsw i32 %289, %159
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds i32, ptr %30, i64 %324
  %326 = add nsw i32 %289, %143
  %327 = sext i32 %326 to i64
  %328 = getelementptr inbounds float, ptr %29, i64 %327
  %329 = add nsw i32 %289, %145
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds float, ptr %29, i64 %330
  %332 = add nsw i32 %289, %147
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds float, ptr %29, i64 %333
  %335 = add nsw i32 %289, %150
  %336 = sext i32 %335 to i64
  %337 = getelementptr inbounds float, ptr %29, i64 %336
  %338 = add nsw i32 %289, %160
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds i32, ptr %30, i64 %339
  %341 = add nsw i32 %289, %162
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds i32, ptr %30, i64 %342
  %344 = add nsw i32 %289, %161
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds i32, ptr %30, i64 %345
  %347 = add nsw i32 %289, %153
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds float, ptr %29, i64 %348
  %350 = add nsw i32 %289, %148
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds float, ptr %29, i64 %351
  %353 = add nsw i32 %289, %149
  %354 = sext i32 %353 to i64
  %355 = getelementptr inbounds float, ptr %29, i64 %354
  call void @slasda_(ptr noundef nonnull %18, ptr noundef nonnull %1, ptr noundef nonnull %17, ptr noundef nonnull %15, ptr noundef nonnull %317, ptr noundef nonnull %318, ptr noundef nonnull %319, ptr noundef nonnull %2, ptr noundef nonnull %322, ptr noundef nonnull %325, ptr noundef nonnull %328, ptr noundef nonnull %331, ptr noundef nonnull %334, ptr noundef nonnull %337, ptr noundef nonnull %340, ptr noundef nonnull %343, ptr noundef nonnull %2, ptr noundef nonnull %346, ptr noundef nonnull %349, ptr noundef nonnull %352, ptr noundef nonnull %355, ptr noundef nonnull %233, ptr noundef nonnull %235, ptr noundef nonnull %12) #4
  %356 = load i32, ptr %12, align 4, !tbaa !5
  %.not624 = icmp eq i32 %356, 0
  br i1 %.not624, label %357, label %.loopexit

357:                                              ; preds = %315
  %358 = add nsw i32 %289, %154
  %359 = add nsw i32 %.0593664, %26
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds float, ptr %28, i64 %360
  %362 = sext i32 %358 to i64
  %363 = getelementptr inbounds float, ptr %29, i64 %362
  call void @slalsa_(ptr noundef nonnull %19, ptr noundef nonnull %1, ptr noundef nonnull %17, ptr noundef nonnull %3, ptr noundef %361, ptr noundef nonnull %7, ptr noundef nonnull %363, ptr noundef nonnull %2, ptr noundef nonnull %319, ptr noundef nonnull %2, ptr noundef nonnull %322, ptr noundef nonnull %325, ptr noundef nonnull %328, ptr noundef nonnull %331, ptr noundef nonnull %334, ptr noundef nonnull %337, ptr noundef nonnull %340, ptr noundef nonnull %343, ptr noundef nonnull %2, ptr noundef nonnull %346, ptr noundef nonnull %349, ptr noundef nonnull %352, ptr noundef nonnull %355, ptr noundef nonnull %233, ptr noundef nonnull %235, ptr noundef nonnull %12) #4
  %364 = load i32, ptr %12, align 4, !tbaa !5
  %.not625 = icmp eq i32 %364, 0
  br i1 %.not625, label %365, label %.loopexit

365:                                              ; preds = %311, %357, %291
  %366 = add nuw nsw i64 %indvars.iv699, 1
  %367 = trunc nuw i64 %366 to i32
  br label %368

368:                                              ; preds = %._crit_edge708, %365
  %indvars.iv.next700.pre-phi = phi i64 [ %.pre, %._crit_edge708 ], [ %366, %365 ]
  %.2 = phi i32 [ %.0594663, %._crit_edge708 ], [ %.1595, %365 ]
  %.1 = phi i32 [ %.0593664, %._crit_edge708 ], [ %367, %365 ]
  %.not618.not = icmp slt i64 %indvars.iv699, %236
  br i1 %.not618.not, label %237, label %._crit_edge667, !llvm.loop !22

._crit_edge667:                                   ; preds = %368, %._crit_edge660
  %369 = phi i32 [ 0, %._crit_edge660 ], [ %.2, %368 ]
  %370 = call i32 @isamax_(ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull @c__1) #4
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds float, ptr %24, i64 %371
  %373 = load float, ptr %372, align 4, !tbaa !9
  %374 = fcmp oge float %373, 0.000000e+00
  %375 = fneg float %373
  %376 = select i1 %374, float %373, float %375
  %377 = fmul float %.0, %376
  %378 = load i32, ptr %2, align 4, !tbaa !5
  %.not619672 = icmp slt i32 %378, 1
  br i1 %.not619672, label %._crit_edge676, label %.lr.ph675.preheader

.lr.ph675.preheader:                              ; preds = %._crit_edge667
  %invariant.gep668 = getelementptr i8, ptr %10, i64 -8
  %379 = sext i32 %154 to i64
  %invariant.gep725 = getelementptr float, ptr %invariant.gep668, i64 %379
  %invariant.gep727 = getelementptr float, ptr %invariant.gep668, i64 %379
  %380 = zext nneg i32 %378 to i64
  br label %.lr.ph675

.lr.ph675:                                        ; preds = %.lr.ph675.preheader, %391
  %indvars.iv702 = phi i64 [ 1, %.lr.ph675.preheader ], [ %indvars.iv.next703, %391 ]
  %381 = getelementptr inbounds float, ptr %24, i64 %indvars.iv702
  %382 = load float, ptr %381, align 4, !tbaa !9
  %383 = fcmp oge float %382, 0.000000e+00
  %384 = fneg float %382
  %385 = select i1 %383, float %382, float %384
  %386 = fcmp ugt float %385, %377
  br i1 %386, label %388, label %387

387:                                              ; preds = %.lr.ph675
  %gep726 = getelementptr float, ptr %invariant.gep725, i64 %indvars.iv702
  call void @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 %gep726, ptr noundef nonnull %2) #4
  br label %391

388:                                              ; preds = %.lr.ph675
  %389 = load i32, ptr %9, align 4, !tbaa !5
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr %9, align 4, !tbaa !5
  %gep728 = getelementptr float, ptr %invariant.gep727, i64 %indvars.iv702
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %381, ptr noundef nonnull @c_b11, ptr noundef nonnull @c__1, ptr noundef nonnull %3, ptr noundef %gep728, ptr noundef nonnull %2, ptr noundef nonnull %12) #4
  br label %391

391:                                              ; preds = %388, %387
  %392 = load float, ptr %381, align 4, !tbaa !9
  %393 = fcmp oge float %392, 0.000000e+00
  %394 = fneg float %392
  %395 = select i1 %393, float %392, float %394
  store float %395, ptr %381, align 4, !tbaa !9
  %indvars.iv.next703 = add nuw nsw i64 %indvars.iv702, 1
  %.not619.not = icmp ult i64 %indvars.iv702, %380
  br i1 %.not619.not, label %.lr.ph675, label %._crit_edge676, !llvm.loop !23

._crit_edge676:                                   ; preds = %391, %._crit_edge667
  store i32 1, ptr %19, align 4, !tbaa !5
  %.not620677 = icmp slt i32 %369, 1
  br i1 %.not620677, label %._crit_edge681, label %.lr.ph680

.lr.ph680:                                        ; preds = %._crit_edge676
  %396 = sext i32 %157 to i64
  %397 = getelementptr inbounds float, ptr %29, i64 %396
  %398 = sext i32 %163 to i64
  %399 = getelementptr inbounds i32, ptr %30, i64 %398
  %400 = zext nneg i32 %369 to i64
  br label %401

401:                                              ; preds = %.lr.ph680, %474
  %indvars.iv705 = phi i64 [ 1, %.lr.ph680 ], [ %indvars.iv.next706, %474 ]
  %402 = getelementptr inbounds i32, ptr %30, i64 %indvars.iv705
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = add nsw i32 %403, -1
  %405 = trunc nuw nsw i64 %indvars.iv705 to i32
  %406 = add i32 %139, %405
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds i32, ptr %30, i64 %407
  %409 = load i32, ptr %408, align 4, !tbaa !5
  store i32 %409, ptr %17, align 4, !tbaa !5
  %410 = add nsw i32 %404, %154
  %411 = icmp eq i32 %409, 1
  br i1 %411, label %412, label %418

412:                                              ; preds = %401
  %413 = sext i32 %410 to i64
  %414 = getelementptr inbounds float, ptr %29, i64 %413
  %415 = add nsw i32 %403, %26
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds float, ptr %28, i64 %416
  call void @scopy_(ptr noundef nonnull %3, ptr noundef nonnull %414, ptr noundef nonnull %2, ptr noundef %417, ptr noundef nonnull %7) #4
  br label %474

418:                                              ; preds = %401
  %419 = load i32, ptr %1, align 4, !tbaa !5
  %.not621 = icmp sgt i32 %409, %419
  br i1 %.not621, label %429, label %420

420:                                              ; preds = %418
  %421 = add i32 %403, %140
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds float, ptr %29, i64 %422
  %424 = sext i32 %410 to i64
  %425 = getelementptr inbounds float, ptr %29, i64 %424
  %426 = add nsw i32 %403, %26
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds float, ptr %28, i64 %427
  call void @sgemm_(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, ptr noundef nonnull %17, ptr noundef nonnull %3, ptr noundef nonnull %17, ptr noundef nonnull @c_b11, ptr noundef nonnull %423, ptr noundef nonnull %2, ptr noundef nonnull %425, ptr noundef nonnull %2, ptr noundef nonnull @c_b6, ptr noundef %428, ptr noundef nonnull %7) #4
  br label %474

429:                                              ; preds = %418
  %430 = sext i32 %410 to i64
  %431 = getelementptr inbounds float, ptr %29, i64 %430
  %432 = add nsw i32 %403, %26
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds float, ptr %28, i64 %433
  %435 = sext i32 %403 to i64
  %436 = getelementptr inbounds float, ptr %29, i64 %435
  %437 = add i32 %403, %140
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds float, ptr %29, i64 %438
  %440 = add nsw i32 %404, %159
  %441 = sext i32 %440 to i64
  %442 = getelementptr inbounds i32, ptr %30, i64 %441
  %443 = add nsw i32 %404, %143
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds float, ptr %29, i64 %444
  %446 = add nsw i32 %404, %145
  %447 = sext i32 %446 to i64
  %448 = getelementptr inbounds float, ptr %29, i64 %447
  %449 = add nsw i32 %404, %147
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds float, ptr %29, i64 %450
  %452 = add nsw i32 %404, %150
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds float, ptr %29, i64 %453
  %455 = add nsw i32 %404, %160
  %456 = sext i32 %455 to i64
  %457 = getelementptr inbounds i32, ptr %30, i64 %456
  %458 = add nsw i32 %404, %162
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds i32, ptr %30, i64 %459
  %461 = add nsw i32 %404, %161
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds i32, ptr %30, i64 %462
  %464 = add nsw i32 %404, %153
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds float, ptr %29, i64 %465
  %467 = add nsw i32 %404, %148
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds float, ptr %29, i64 %468
  %470 = add nsw i32 %404, %149
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds float, ptr %29, i64 %471
  call void @slalsa_(ptr noundef nonnull %19, ptr noundef nonnull %1, ptr noundef nonnull %17, ptr noundef nonnull %3, ptr noundef nonnull %431, ptr noundef nonnull %2, ptr noundef %434, ptr noundef nonnull %7, ptr noundef nonnull %436, ptr noundef nonnull %2, ptr noundef nonnull %439, ptr noundef nonnull %442, ptr noundef nonnull %445, ptr noundef nonnull %448, ptr noundef nonnull %451, ptr noundef nonnull %454, ptr noundef nonnull %457, ptr noundef nonnull %460, ptr noundef nonnull %2, ptr noundef nonnull %463, ptr noundef nonnull %466, ptr noundef nonnull %469, ptr noundef nonnull %472, ptr noundef nonnull %397, ptr noundef nonnull %399, ptr noundef nonnull %12) #4
  %473 = load i32, ptr %12, align 4, !tbaa !5
  %.not622 = icmp eq i32 %473, 0
  br i1 %.not622, label %474, label %.loopexit

474:                                              ; preds = %412, %429, %420
  %indvars.iv.next706 = add nuw nsw i64 %indvars.iv705, 1
  %.not620.not = icmp ult i64 %indvars.iv705, %400
  br i1 %.not620.not, label %401, label %._crit_edge681, !llvm.loop !24

._crit_edge681:                                   ; preds = %474, %._crit_edge676
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b11, ptr noundef nonnull %22, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %4, ptr noundef nonnull %2, ptr noundef nonnull %12) #4
  call void @slasrt_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %12) #4
  call void @slascl_(ptr noundef nonnull @.str.3, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, 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 = %357, %315, %300, %429, %101, %50, %51, %41, %._crit_edge681, %._crit_edge655, %97, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #4
  ret void
}

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

declare void @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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!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, !20}
!19 = !{!"llvm.loop.isvectorized", i32 1}
!20 = !{!"llvm.loop.unroll.runtime.disable"}
!21 = distinct !{!21, !13, !20, !19}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !13}
!24 = distinct !{!24, !13}


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