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

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

@c__1 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [5 x i8], align 1
@c__4 = external hidden global i64, align 8
@.str.1 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1

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

85:                                               ; preds = %11
  %86 = load ptr, ptr %20, align 8, !tbaa !5
  %87 = load i64, ptr %86, align 8, !tbaa !9
  %88 = icmp eq i64 %87, 0
  br i1 %88, label %93, label %89

89:                                               ; preds = %85
  %90 = load ptr, ptr %21, align 8, !tbaa !5
  %91 = load i64, ptr %90, align 8, !tbaa !9
  %92 = icmp eq i64 %91, 0
  br i1 %92, label %93, label %94

93:                                               ; preds = %89, %85, %11
  store i32 0, ptr %12, align 4
  store i32 1, ptr %62, align 4
  br label %1154

94:                                               ; preds = %89
  %95 = load ptr, ptr %19, align 8, !tbaa !5
  %96 = load i64, ptr %95, align 8, !tbaa !9
  %97 = load ptr, ptr %20, align 8, !tbaa !5
  %98 = load i64, ptr %97, align 8, !tbaa !9
  %99 = add nsw i64 %96, %98
  %100 = load ptr, ptr %14, align 8, !tbaa !5
  %101 = load i64, ptr %100, align 8, !tbaa !9
  %102 = icmp sgt i64 %99, %101
  br i1 %102, label %103, label %104

103:                                              ; preds = %94
  store i32 0, ptr %12, align 4
  store i32 1, ptr %62, align 4
  br label %1154

104:                                              ; preds = %94
  %105 = load ptr, ptr %19, align 8, !tbaa !5
  %106 = load i64, ptr %105, align 8, !tbaa !9
  %107 = add nsw i64 %106, 1
  store i64 %107, ptr %36, align 8, !tbaa !9
  %108 = load ptr, ptr %19, align 8, !tbaa !5
  %109 = load i64, ptr %108, align 8, !tbaa !9
  %110 = add nsw i64 %109, 2
  store i64 %110, ptr %37, align 8, !tbaa !9
  %111 = load ptr, ptr %19, align 8, !tbaa !5
  %112 = load i64, ptr %111, align 8, !tbaa !9
  %113 = add nsw i64 %112, 3
  store i64 %113, ptr %38, align 8, !tbaa !9
  %114 = load ptr, ptr %20, align 8, !tbaa !5
  %115 = load i64, ptr %114, align 8, !tbaa !9
  %116 = icmp eq i64 %115, 1
  br i1 %116, label %117, label %237

117:                                              ; preds = %104
  %118 = load ptr, ptr %21, align 8, !tbaa !5
  %119 = load i64, ptr %118, align 8, !tbaa !9
  %120 = icmp eq i64 %119, 1
  br i1 %120, label %121, label %237

121:                                              ; preds = %117
  %122 = load ptr, ptr %15, align 8, !tbaa !5
  %123 = load ptr, ptr %19, align 8, !tbaa !5
  %124 = load i64, ptr %123, align 8, !tbaa !9
  %125 = load ptr, ptr %19, align 8, !tbaa !5
  %126 = load i64, ptr %125, align 8, !tbaa !9
  %127 = load i64, ptr %26, align 8, !tbaa !9
  %128 = mul nsw i64 %126, %127
  %129 = add nsw i64 %124, %128
  %130 = getelementptr inbounds float, ptr %122, i64 %129
  %131 = load float, ptr %130, align 4, !tbaa !11
  store float %131, ptr %43, align 4, !tbaa !11
  %132 = load ptr, ptr %15, align 8, !tbaa !5
  %133 = load i64, ptr %36, align 8, !tbaa !9
  %134 = load i64, ptr %36, align 8, !tbaa !9
  %135 = load i64, ptr %26, align 8, !tbaa !9
  %136 = mul nsw i64 %134, %135
  %137 = add nsw i64 %133, %136
  %138 = getelementptr inbounds float, ptr %132, i64 %137
  %139 = load float, ptr %138, align 4, !tbaa !11
  store float %139, ptr %44, align 4, !tbaa !11
  %140 = load float, ptr %44, align 4, !tbaa !11
  %141 = load float, ptr %43, align 4, !tbaa !11
  %142 = fsub float %140, %141
  store float %142, ptr %29, align 4, !tbaa !11
  %143 = load ptr, ptr %15, align 8, !tbaa !5
  %144 = load ptr, ptr %19, align 8, !tbaa !5
  %145 = load i64, ptr %144, align 8, !tbaa !9
  %146 = load i64, ptr %36, align 8, !tbaa !9
  %147 = load i64, ptr %26, align 8, !tbaa !9
  %148 = mul nsw i64 %146, %147
  %149 = add nsw i64 %145, %148
  %150 = getelementptr inbounds float, ptr %143, i64 %149
  %151 = call i32 @slartg_(ptr noundef %150, ptr noundef %29, ptr noundef %42, ptr noundef %46, ptr noundef %56)
  %152 = load i64, ptr %37, align 8, !tbaa !9
  %153 = load ptr, ptr %14, align 8, !tbaa !5
  %154 = load i64, ptr %153, align 8, !tbaa !9
  %155 = icmp sle i64 %152, %154
  br i1 %155, label %156, label %181

156:                                              ; preds = %121
  %157 = load ptr, ptr %14, align 8, !tbaa !5
  %158 = load i64, ptr %157, align 8, !tbaa !9
  %159 = load ptr, ptr %19, align 8, !tbaa !5
  %160 = load i64, ptr %159, align 8, !tbaa !9
  %161 = sub nsw i64 %158, %160
  %162 = sub nsw i64 %161, 1
  store i64 %162, ptr %28, align 8, !tbaa !9
  %163 = load ptr, ptr %15, align 8, !tbaa !5
  %164 = load ptr, ptr %19, align 8, !tbaa !5
  %165 = load i64, ptr %164, align 8, !tbaa !9
  %166 = load i64, ptr %37, align 8, !tbaa !9
  %167 = load i64, ptr %26, align 8, !tbaa !9
  %168 = mul nsw i64 %166, %167
  %169 = add nsw i64 %165, %168
  %170 = getelementptr inbounds float, ptr %163, i64 %169
  %171 = load ptr, ptr %16, align 8, !tbaa !5
  %172 = load ptr, ptr %15, align 8, !tbaa !5
  %173 = load i64, ptr %36, align 8, !tbaa !9
  %174 = load i64, ptr %37, align 8, !tbaa !9
  %175 = load i64, ptr %26, align 8, !tbaa !9
  %176 = mul nsw i64 %174, %175
  %177 = add nsw i64 %173, %176
  %178 = getelementptr inbounds float, ptr %172, i64 %177
  %179 = load ptr, ptr %16, align 8, !tbaa !5
  %180 = call i32 @f2c_srot(ptr noundef %28, ptr noundef %170, ptr noundef %171, ptr noundef %178, ptr noundef %179, ptr noundef %42, ptr noundef %46)
  br label %181

181:                                              ; preds = %156, %121
  %182 = load ptr, ptr %19, align 8, !tbaa !5
  %183 = load i64, ptr %182, align 8, !tbaa !9
  %184 = sub nsw i64 %183, 1
  store i64 %184, ptr %28, align 8, !tbaa !9
  %185 = load ptr, ptr %15, align 8, !tbaa !5
  %186 = load ptr, ptr %19, align 8, !tbaa !5
  %187 = load i64, ptr %186, align 8, !tbaa !9
  %188 = load i64, ptr %26, align 8, !tbaa !9
  %189 = mul nsw i64 %187, %188
  %190 = add nsw i64 %189, 1
  %191 = getelementptr inbounds float, ptr %185, i64 %190
  %192 = load ptr, ptr %15, align 8, !tbaa !5
  %193 = load i64, ptr %36, align 8, !tbaa !9
  %194 = load i64, ptr %26, align 8, !tbaa !9
  %195 = mul nsw i64 %193, %194
  %196 = add nsw i64 %195, 1
  %197 = getelementptr inbounds float, ptr %192, i64 %196
  %198 = call i32 @f2c_srot(ptr noundef %28, ptr noundef %191, ptr noundef @c__1, ptr noundef %197, ptr noundef @c__1, ptr noundef %42, ptr noundef %46)
  %199 = load float, ptr %44, align 4, !tbaa !11
  %200 = load ptr, ptr %15, align 8, !tbaa !5
  %201 = load ptr, ptr %19, align 8, !tbaa !5
  %202 = load i64, ptr %201, align 8, !tbaa !9
  %203 = load ptr, ptr %19, align 8, !tbaa !5
  %204 = load i64, ptr %203, align 8, !tbaa !9
  %205 = load i64, ptr %26, align 8, !tbaa !9
  %206 = mul nsw i64 %204, %205
  %207 = add nsw i64 %202, %206
  %208 = getelementptr inbounds float, ptr %200, i64 %207
  store float %199, ptr %208, align 4, !tbaa !11
  %209 = load float, ptr %43, align 4, !tbaa !11
  %210 = load ptr, ptr %15, align 8, !tbaa !5
  %211 = load i64, ptr %36, align 8, !tbaa !9
  %212 = load i64, ptr %36, align 8, !tbaa !9
  %213 = load i64, ptr %26, align 8, !tbaa !9
  %214 = mul nsw i64 %212, %213
  %215 = add nsw i64 %211, %214
  %216 = getelementptr inbounds float, ptr %210, i64 %215
  store float %209, ptr %216, align 4, !tbaa !11
  %217 = load ptr, ptr %13, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = icmp ne i64 %218, 0
  br i1 %219, label %220, label %236

220:                                              ; preds = %181
  %221 = load ptr, ptr %14, align 8, !tbaa !5
  %222 = load ptr, ptr %17, align 8, !tbaa !5
  %223 = load ptr, ptr %19, align 8, !tbaa !5
  %224 = load i64, ptr %223, align 8, !tbaa !9
  %225 = load i64, ptr %24, align 8, !tbaa !9
  %226 = mul nsw i64 %224, %225
  %227 = add nsw i64 %226, 1
  %228 = getelementptr inbounds float, ptr %222, i64 %227
  %229 = load ptr, ptr %17, align 8, !tbaa !5
  %230 = load i64, ptr %36, align 8, !tbaa !9
  %231 = load i64, ptr %24, align 8, !tbaa !9
  %232 = mul nsw i64 %230, %231
  %233 = add nsw i64 %232, 1
  %234 = getelementptr inbounds float, ptr %229, i64 %233
  %235 = call i32 @f2c_srot(ptr noundef %221, ptr noundef %228, ptr noundef @c__1, ptr noundef %234, ptr noundef @c__1, ptr noundef %42, ptr noundef %46)
  br label %236

236:                                              ; preds = %220, %181
  br label %1151

237:                                              ; preds = %117, %104
  %238 = load ptr, ptr %20, align 8, !tbaa !5
  %239 = load i64, ptr %238, align 8, !tbaa !9
  %240 = load ptr, ptr %21, align 8, !tbaa !5
  %241 = load i64, ptr %240, align 8, !tbaa !9
  %242 = add nsw i64 %239, %241
  store i64 %242, ptr %41, align 8, !tbaa !9
  %243 = load ptr, ptr %15, align 8, !tbaa !5
  %244 = load ptr, ptr %19, align 8, !tbaa !5
  %245 = load i64, ptr %244, align 8, !tbaa !9
  %246 = load ptr, ptr %19, align 8, !tbaa !5
  %247 = load i64, ptr %246, align 8, !tbaa !9
  %248 = load i64, ptr %26, align 8, !tbaa !9
  %249 = mul nsw i64 %247, %248
  %250 = add nsw i64 %245, %249
  %251 = getelementptr inbounds float, ptr %243, i64 %250
  %252 = load ptr, ptr %16, align 8, !tbaa !5
  %253 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 0
  %254 = call i32 @slacpy_(ptr noundef @.str, ptr noundef %41, ptr noundef %41, ptr noundef %251, ptr noundef %252, ptr noundef %253, ptr noundef @c__4)
  %255 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 0
  %256 = load ptr, ptr %22, align 8, !tbaa !5
  %257 = getelementptr inbounds float, ptr %256, i64 1
  %258 = call double @slange_(ptr noundef @.str.1, ptr noundef %41, ptr noundef %41, ptr noundef %255, ptr noundef @c__4, ptr noundef %257)
  %259 = fptrunc double %258 to float
  store float %259, ptr %58, align 4, !tbaa !11
  %260 = call double @slamch_(ptr noundef @.str.2)
  %261 = fptrunc double %260 to float
  store float %261, ptr %51, align 4, !tbaa !11
  %262 = call double @slamch_(ptr noundef @.str.3)
  %263 = load float, ptr %51, align 4, !tbaa !11
  %264 = fpext float %263 to double
  %265 = fdiv double %262, %264
  %266 = fptrunc double %265 to float
  store float %266, ptr %61, align 4, !tbaa !11
  %267 = load float, ptr %51, align 4, !tbaa !11
  %268 = fmul float %267, 1.000000e+01
  %269 = load float, ptr %58, align 4, !tbaa !11
  %270 = fmul float %268, %269
  store float %270, ptr %29, align 4, !tbaa !11
  %271 = load float, ptr %29, align 4, !tbaa !11
  %272 = load float, ptr %61, align 4, !tbaa !11
  %273 = fcmp oge float %271, %272
  br i1 %273, label %274, label %276

274:                                              ; preds = %237
  %275 = load float, ptr %29, align 4, !tbaa !11
  br label %278

276:                                              ; preds = %237
  %277 = load float, ptr %61, align 4, !tbaa !11
  br label %278

278:                                              ; preds = %276, %274
  %279 = phi float [ %275, %274 ], [ %277, %276 ]
  %280 = fpext float %279 to double
  %281 = fptrunc double %280 to float
  store float %281, ptr %60, align 4, !tbaa !11
  %282 = load ptr, ptr %20, align 8, !tbaa !5
  %283 = load ptr, ptr %21, align 8, !tbaa !5
  %284 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 0
  %285 = load ptr, ptr %20, align 8, !tbaa !5
  %286 = load i64, ptr %285, align 8, !tbaa !9
  %287 = add nsw i64 %286, 1
  %288 = load ptr, ptr %20, align 8, !tbaa !5
  %289 = load i64, ptr %288, align 8, !tbaa !9
  %290 = add nsw i64 %289, 1
  %291 = shl i64 %290, 2
  %292 = add nsw i64 %287, %291
  %293 = sub nsw i64 %292, 5
  %294 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %293
  %295 = load ptr, ptr %20, align 8, !tbaa !5
  %296 = load i64, ptr %295, align 8, !tbaa !9
  %297 = add nsw i64 %296, 1
  %298 = shl i64 %297, 2
  %299 = sub nsw i64 %298, 4
  %300 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 %299
  %301 = getelementptr inbounds [4 x float], ptr %35, i64 0, i64 0
  %302 = call i32 @slasy2_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef @c_n1, ptr noundef %282, ptr noundef %283, ptr noundef %284, ptr noundef @c__4, ptr noundef %294, ptr noundef @c__4, ptr noundef %300, ptr noundef @c__4, ptr noundef %57, ptr noundef %301, ptr noundef @c__2, ptr noundef %59, ptr noundef %55)
  %303 = load ptr, ptr %20, align 8, !tbaa !5
  %304 = load i64, ptr %303, align 8, !tbaa !9
  %305 = load ptr, ptr %20, align 8, !tbaa !5
  %306 = load i64, ptr %305, align 8, !tbaa !9
  %307 = add nsw i64 %304, %306
  %308 = load ptr, ptr %21, align 8, !tbaa !5
  %309 = load i64, ptr %308, align 8, !tbaa !9
  %310 = add nsw i64 %307, %309
  %311 = sub nsw i64 %310, 3
  store i64 %311, ptr %33, align 8, !tbaa !9
  %312 = load i64, ptr %33, align 8, !tbaa !9
  switch i64 %312, label %316 [
    i64 1, label %313
    i64 2, label %314
    i64 3, label %315
  ]

313:                                              ; preds = %278
  br label %317

314:                                              ; preds = %278
  br label %490

315:                                              ; preds = %278
  br label %664

316:                                              ; preds = %278
  br label %317

317:                                              ; preds = %316, %313
  %318 = load float, ptr %57, align 4, !tbaa !11
  %319 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  store float %318, ptr %319, align 4, !tbaa !11
  %320 = getelementptr inbounds [4 x float], ptr %35, i64 0, i64 0
  %321 = load float, ptr %320, align 16, !tbaa !11
  %322 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 1
  store float %321, ptr %322, align 4, !tbaa !11
  %323 = getelementptr inbounds [4 x float], ptr %35, i64 0, i64 2
  %324 = load float, ptr %323, align 8, !tbaa !11
  %325 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 2
  store float %324, ptr %325, align 4, !tbaa !11
  %326 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 2
  %327 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %328 = call i32 @slarfg_(ptr noundef @c__3, ptr noundef %326, ptr noundef %327, ptr noundef @c__1, ptr noundef %52)
  %329 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 2
  store float 1.000000e+00, ptr %329, align 4, !tbaa !11
  %330 = load ptr, ptr %15, align 8, !tbaa !5
  %331 = load ptr, ptr %19, align 8, !tbaa !5
  %332 = load i64, ptr %331, align 8, !tbaa !9
  %333 = load ptr, ptr %19, align 8, !tbaa !5
  %334 = load i64, ptr %333, align 8, !tbaa !9
  %335 = load i64, ptr %26, align 8, !tbaa !9
  %336 = mul nsw i64 %334, %335
  %337 = add nsw i64 %332, %336
  %338 = getelementptr inbounds float, ptr %330, i64 %337
  %339 = load float, ptr %338, align 4, !tbaa !11
  store float %339, ptr %43, align 4, !tbaa !11
  %340 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %341 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 0
  %342 = load ptr, ptr %22, align 8, !tbaa !5
  %343 = getelementptr inbounds float, ptr %342, i64 1
  %344 = call i32 @slarfx_(ptr noundef @.str.4, ptr noundef @c__3, ptr noundef @c__3, ptr noundef %340, ptr noundef %52, ptr noundef %341, ptr noundef @c__4, ptr noundef %343)
  %345 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %346 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 0
  %347 = load ptr, ptr %22, align 8, !tbaa !5
  %348 = getelementptr inbounds float, ptr %347, i64 1
  %349 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef @c__3, ptr noundef @c__3, ptr noundef %345, ptr noundef %52, ptr noundef %346, ptr noundef @c__4, ptr noundef %348)
  %350 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 2
  %351 = load float, ptr %350, align 8, !tbaa !11
  %352 = fcmp oge float %351, 0.000000e+00
  br i1 %352, label %353, label %356

353:                                              ; preds = %317
  %354 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 2
  %355 = load float, ptr %354, align 8, !tbaa !11
  br label %360

356:                                              ; preds = %317
  %357 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 2
  %358 = load float, ptr %357, align 8, !tbaa !11
  %359 = fneg float %358
  br label %360

360:                                              ; preds = %356, %353
  %361 = phi float [ %355, %353 ], [ %359, %356 ]
  %362 = fpext float %361 to double
  %363 = fptrunc double %362 to float
  store float %363, ptr %30, align 4, !tbaa !11
  %364 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 6
  %365 = load float, ptr %364, align 8, !tbaa !11
  %366 = fcmp oge float %365, 0.000000e+00
  br i1 %366, label %367, label %370

367:                                              ; preds = %360
  %368 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 6
  %369 = load float, ptr %368, align 8, !tbaa !11
  br label %374

370:                                              ; preds = %360
  %371 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 6
  %372 = load float, ptr %371, align 8, !tbaa !11
  %373 = fneg float %372
  br label %374

374:                                              ; preds = %370, %367
  %375 = phi float [ %369, %367 ], [ %373, %370 ]
  %376 = fpext float %375 to double
  %377 = fptrunc double %376 to float
  store float %377, ptr %31, align 4, !tbaa !11
  %378 = load float, ptr %30, align 4, !tbaa !11
  %379 = load float, ptr %31, align 4, !tbaa !11
  %380 = fcmp oge float %378, %379
  br i1 %380, label %381, label %383

381:                                              ; preds = %374
  %382 = load float, ptr %30, align 4, !tbaa !11
  br label %385

383:                                              ; preds = %374
  %384 = load float, ptr %31, align 4, !tbaa !11
  br label %385

385:                                              ; preds = %383, %381
  %386 = phi float [ %382, %381 ], [ %384, %383 ]
  store float %386, ptr %30, align 4, !tbaa !11
  %387 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 10
  %388 = load float, ptr %387, align 8, !tbaa !11
  %389 = load float, ptr %43, align 4, !tbaa !11
  %390 = fsub float %388, %389
  store float %390, ptr %29, align 4, !tbaa !11
  %391 = load float, ptr %29, align 4, !tbaa !11
  %392 = fcmp oge float %391, 0.000000e+00
  br i1 %392, label %393, label %395

393:                                              ; preds = %385
  %394 = load float, ptr %29, align 4, !tbaa !11
  br label %398

395:                                              ; preds = %385
  %396 = load float, ptr %29, align 4, !tbaa !11
  %397 = fneg float %396
  br label %398

398:                                              ; preds = %395, %393
  %399 = phi float [ %394, %393 ], [ %397, %395 ]
  %400 = fpext float %399 to double
  %401 = fptrunc double %400 to float
  store float %401, ptr %31, align 4, !tbaa !11
  %402 = load float, ptr %30, align 4, !tbaa !11
  %403 = load float, ptr %31, align 4, !tbaa !11
  %404 = fcmp oge float %402, %403
  br i1 %404, label %405, label %407

405:                                              ; preds = %398
  %406 = load float, ptr %30, align 4, !tbaa !11
  br label %409

407:                                              ; preds = %398
  %408 = load float, ptr %31, align 4, !tbaa !11
  br label %409

409:                                              ; preds = %407, %405
  %410 = phi float [ %406, %405 ], [ %408, %407 ]
  %411 = fpext float %410 to double
  %412 = load float, ptr %60, align 4, !tbaa !11
  %413 = fpext float %412 to double
  %414 = fcmp ogt double %411, %413
  br i1 %414, label %415, label %416

415:                                              ; preds = %409
  br label %1152

416:                                              ; preds = %409
  %417 = load ptr, ptr %14, align 8, !tbaa !5
  %418 = load i64, ptr %417, align 8, !tbaa !9
  %419 = load ptr, ptr %19, align 8, !tbaa !5
  %420 = load i64, ptr %419, align 8, !tbaa !9
  %421 = sub nsw i64 %418, %420
  %422 = add nsw i64 %421, 1
  store i64 %422, ptr %28, align 8, !tbaa !9
  %423 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %424 = load ptr, ptr %15, align 8, !tbaa !5
  %425 = load ptr, ptr %19, align 8, !tbaa !5
  %426 = load i64, ptr %425, align 8, !tbaa !9
  %427 = load ptr, ptr %19, align 8, !tbaa !5
  %428 = load i64, ptr %427, align 8, !tbaa !9
  %429 = load i64, ptr %26, align 8, !tbaa !9
  %430 = mul nsw i64 %428, %429
  %431 = add nsw i64 %426, %430
  %432 = getelementptr inbounds float, ptr %424, i64 %431
  %433 = load ptr, ptr %16, align 8, !tbaa !5
  %434 = load ptr, ptr %22, align 8, !tbaa !5
  %435 = getelementptr inbounds float, ptr %434, i64 1
  %436 = call i32 @slarfx_(ptr noundef @.str.4, ptr noundef @c__3, ptr noundef %28, ptr noundef %423, ptr noundef %52, ptr noundef %432, ptr noundef %433, ptr noundef %435)
  %437 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %438 = load ptr, ptr %15, align 8, !tbaa !5
  %439 = load ptr, ptr %19, align 8, !tbaa !5
  %440 = load i64, ptr %439, align 8, !tbaa !9
  %441 = load i64, ptr %26, align 8, !tbaa !9
  %442 = mul nsw i64 %440, %441
  %443 = add nsw i64 %442, 1
  %444 = getelementptr inbounds float, ptr %438, i64 %443
  %445 = load ptr, ptr %16, align 8, !tbaa !5
  %446 = load ptr, ptr %22, align 8, !tbaa !5
  %447 = getelementptr inbounds float, ptr %446, i64 1
  %448 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef %36, ptr noundef @c__3, ptr noundef %437, ptr noundef %52, ptr noundef %444, ptr noundef %445, ptr noundef %447)
  %449 = load ptr, ptr %15, align 8, !tbaa !5
  %450 = load i64, ptr %37, align 8, !tbaa !9
  %451 = load ptr, ptr %19, align 8, !tbaa !5
  %452 = load i64, ptr %451, align 8, !tbaa !9
  %453 = load i64, ptr %26, align 8, !tbaa !9
  %454 = mul nsw i64 %452, %453
  %455 = add nsw i64 %450, %454
  %456 = getelementptr inbounds float, ptr %449, i64 %455
  store float 0.000000e+00, ptr %456, align 4, !tbaa !11
  %457 = load ptr, ptr %15, align 8, !tbaa !5
  %458 = load i64, ptr %37, align 8, !tbaa !9
  %459 = load i64, ptr %36, align 8, !tbaa !9
  %460 = load i64, ptr %26, align 8, !tbaa !9
  %461 = mul nsw i64 %459, %460
  %462 = add nsw i64 %458, %461
  %463 = getelementptr inbounds float, ptr %457, i64 %462
  store float 0.000000e+00, ptr %463, align 4, !tbaa !11
  %464 = load float, ptr %43, align 4, !tbaa !11
  %465 = load ptr, ptr %15, align 8, !tbaa !5
  %466 = load i64, ptr %37, align 8, !tbaa !9
  %467 = load i64, ptr %37, align 8, !tbaa !9
  %468 = load i64, ptr %26, align 8, !tbaa !9
  %469 = mul nsw i64 %467, %468
  %470 = add nsw i64 %466, %469
  %471 = getelementptr inbounds float, ptr %465, i64 %470
  store float %464, ptr %471, align 4, !tbaa !11
  %472 = load ptr, ptr %13, align 8, !tbaa !5
  %473 = load i64, ptr %472, align 8, !tbaa !9
  %474 = icmp ne i64 %473, 0
  br i1 %474, label %475, label %489

475:                                              ; preds = %416
  %476 = load ptr, ptr %14, align 8, !tbaa !5
  %477 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %478 = load ptr, ptr %17, align 8, !tbaa !5
  %479 = load ptr, ptr %19, align 8, !tbaa !5
  %480 = load i64, ptr %479, align 8, !tbaa !9
  %481 = load i64, ptr %24, align 8, !tbaa !9
  %482 = mul nsw i64 %480, %481
  %483 = add nsw i64 %482, 1
  %484 = getelementptr inbounds float, ptr %478, i64 %483
  %485 = load ptr, ptr %18, align 8, !tbaa !5
  %486 = load ptr, ptr %22, align 8, !tbaa !5
  %487 = getelementptr inbounds float, ptr %486, i64 1
  %488 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef %476, ptr noundef @c__3, ptr noundef %477, ptr noundef %52, ptr noundef %484, ptr noundef %485, ptr noundef %487)
  br label %489

489:                                              ; preds = %475, %416
  br label %941

490:                                              ; preds = %314
  %491 = getelementptr inbounds [4 x float], ptr %35, i64 0, i64 0
  %492 = load float, ptr %491, align 16, !tbaa !11
  %493 = fneg float %492
  %494 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  store float %493, ptr %494, align 4, !tbaa !11
  %495 = getelementptr inbounds [4 x float], ptr %35, i64 0, i64 1
  %496 = load float, ptr %495, align 4, !tbaa !11
  %497 = fneg float %496
  %498 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 1
  store float %497, ptr %498, align 4, !tbaa !11
  %499 = load float, ptr %57, align 4, !tbaa !11
  %500 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 2
  store float %499, ptr %500, align 4, !tbaa !11
  %501 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %502 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 1
  %503 = call i32 @slarfg_(ptr noundef @c__3, ptr noundef %501, ptr noundef %502, ptr noundef @c__1, ptr noundef %52)
  %504 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  store float 1.000000e+00, ptr %504, align 4, !tbaa !11
  %505 = load ptr, ptr %15, align 8, !tbaa !5
  %506 = load i64, ptr %37, align 8, !tbaa !9
  %507 = load i64, ptr %37, align 8, !tbaa !9
  %508 = load i64, ptr %26, align 8, !tbaa !9
  %509 = mul nsw i64 %507, %508
  %510 = add nsw i64 %506, %509
  %511 = getelementptr inbounds float, ptr %505, i64 %510
  %512 = load float, ptr %511, align 4, !tbaa !11
  store float %512, ptr %45, align 4, !tbaa !11
  %513 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %514 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 0
  %515 = load ptr, ptr %22, align 8, !tbaa !5
  %516 = getelementptr inbounds float, ptr %515, i64 1
  %517 = call i32 @slarfx_(ptr noundef @.str.4, ptr noundef @c__3, ptr noundef @c__3, ptr noundef %513, ptr noundef %52, ptr noundef %514, ptr noundef @c__4, ptr noundef %516)
  %518 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %519 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 0
  %520 = load ptr, ptr %22, align 8, !tbaa !5
  %521 = getelementptr inbounds float, ptr %520, i64 1
  %522 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef @c__3, ptr noundef @c__3, ptr noundef %518, ptr noundef %52, ptr noundef %519, ptr noundef @c__4, ptr noundef %521)
  %523 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 1
  %524 = load float, ptr %523, align 4, !tbaa !11
  %525 = fcmp oge float %524, 0.000000e+00
  br i1 %525, label %526, label %529

526:                                              ; preds = %490
  %527 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 1
  %528 = load float, ptr %527, align 4, !tbaa !11
  br label %533

529:                                              ; preds = %490
  %530 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 1
  %531 = load float, ptr %530, align 4, !tbaa !11
  %532 = fneg float %531
  br label %533

533:                                              ; preds = %529, %526
  %534 = phi float [ %528, %526 ], [ %532, %529 ]
  %535 = fpext float %534 to double
  %536 = fptrunc double %535 to float
  store float %536, ptr %30, align 4, !tbaa !11
  %537 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 2
  %538 = load float, ptr %537, align 8, !tbaa !11
  %539 = fcmp oge float %538, 0.000000e+00
  br i1 %539, label %540, label %543

540:                                              ; preds = %533
  %541 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 2
  %542 = load float, ptr %541, align 8, !tbaa !11
  br label %547

543:                                              ; preds = %533
  %544 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 2
  %545 = load float, ptr %544, align 8, !tbaa !11
  %546 = fneg float %545
  br label %547

547:                                              ; preds = %543, %540
  %548 = phi float [ %542, %540 ], [ %546, %543 ]
  %549 = fpext float %548 to double
  %550 = fptrunc double %549 to float
  store float %550, ptr %31, align 4, !tbaa !11
  %551 = load float, ptr %30, align 4, !tbaa !11
  %552 = load float, ptr %31, align 4, !tbaa !11
  %553 = fcmp oge float %551, %552
  br i1 %553, label %554, label %556

554:                                              ; preds = %547
  %555 = load float, ptr %30, align 4, !tbaa !11
  br label %558

556:                                              ; preds = %547
  %557 = load float, ptr %31, align 4, !tbaa !11
  br label %558

558:                                              ; preds = %556, %554
  %559 = phi float [ %555, %554 ], [ %557, %556 ]
  store float %559, ptr %30, align 4, !tbaa !11
  %560 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 0
  %561 = load float, ptr %560, align 16, !tbaa !11
  %562 = load float, ptr %45, align 4, !tbaa !11
  %563 = fsub float %561, %562
  store float %563, ptr %29, align 4, !tbaa !11
  %564 = load float, ptr %29, align 4, !tbaa !11
  %565 = fcmp oge float %564, 0.000000e+00
  br i1 %565, label %566, label %568

566:                                              ; preds = %558
  %567 = load float, ptr %29, align 4, !tbaa !11
  br label %571

568:                                              ; preds = %558
  %569 = load float, ptr %29, align 4, !tbaa !11
  %570 = fneg float %569
  br label %571

571:                                              ; preds = %568, %566
  %572 = phi float [ %567, %566 ], [ %570, %568 ]
  %573 = fpext float %572 to double
  %574 = fptrunc double %573 to float
  store float %574, ptr %31, align 4, !tbaa !11
  %575 = load float, ptr %30, align 4, !tbaa !11
  %576 = load float, ptr %31, align 4, !tbaa !11
  %577 = fcmp oge float %575, %576
  br i1 %577, label %578, label %580

578:                                              ; preds = %571
  %579 = load float, ptr %30, align 4, !tbaa !11
  br label %582

580:                                              ; preds = %571
  %581 = load float, ptr %31, align 4, !tbaa !11
  br label %582

582:                                              ; preds = %580, %578
  %583 = phi float [ %579, %578 ], [ %581, %580 ]
  %584 = fpext float %583 to double
  %585 = load float, ptr %60, align 4, !tbaa !11
  %586 = fpext float %585 to double
  %587 = fcmp ogt double %584, %586
  br i1 %587, label %588, label %589

588:                                              ; preds = %582
  br label %1152

589:                                              ; preds = %582
  %590 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %591 = load ptr, ptr %15, align 8, !tbaa !5
  %592 = load ptr, ptr %19, align 8, !tbaa !5
  %593 = load i64, ptr %592, align 8, !tbaa !9
  %594 = load i64, ptr %26, align 8, !tbaa !9
  %595 = mul nsw i64 %593, %594
  %596 = add nsw i64 %595, 1
  %597 = getelementptr inbounds float, ptr %591, i64 %596
  %598 = load ptr, ptr %16, align 8, !tbaa !5
  %599 = load ptr, ptr %22, align 8, !tbaa !5
  %600 = getelementptr inbounds float, ptr %599, i64 1
  %601 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef %37, ptr noundef @c__3, ptr noundef %590, ptr noundef %52, ptr noundef %597, ptr noundef %598, ptr noundef %600)
  %602 = load ptr, ptr %14, align 8, !tbaa !5
  %603 = load i64, ptr %602, align 8, !tbaa !9
  %604 = load ptr, ptr %19, align 8, !tbaa !5
  %605 = load i64, ptr %604, align 8, !tbaa !9
  %606 = sub nsw i64 %603, %605
  store i64 %606, ptr %28, align 8, !tbaa !9
  %607 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %608 = load ptr, ptr %15, align 8, !tbaa !5
  %609 = load ptr, ptr %19, align 8, !tbaa !5
  %610 = load i64, ptr %609, align 8, !tbaa !9
  %611 = load i64, ptr %36, align 8, !tbaa !9
  %612 = load i64, ptr %26, align 8, !tbaa !9
  %613 = mul nsw i64 %611, %612
  %614 = add nsw i64 %610, %613
  %615 = getelementptr inbounds float, ptr %608, i64 %614
  %616 = load ptr, ptr %16, align 8, !tbaa !5
  %617 = load ptr, ptr %22, align 8, !tbaa !5
  %618 = getelementptr inbounds float, ptr %617, i64 1
  %619 = call i32 @slarfx_(ptr noundef @.str.4, ptr noundef @c__3, ptr noundef %28, ptr noundef %607, ptr noundef %52, ptr noundef %615, ptr noundef %616, ptr noundef %618)
  %620 = load float, ptr %45, align 4, !tbaa !11
  %621 = load ptr, ptr %15, align 8, !tbaa !5
  %622 = load ptr, ptr %19, align 8, !tbaa !5
  %623 = load i64, ptr %622, align 8, !tbaa !9
  %624 = load ptr, ptr %19, align 8, !tbaa !5
  %625 = load i64, ptr %624, align 8, !tbaa !9
  %626 = load i64, ptr %26, align 8, !tbaa !9
  %627 = mul nsw i64 %625, %626
  %628 = add nsw i64 %623, %627
  %629 = getelementptr inbounds float, ptr %621, i64 %628
  store float %620, ptr %629, align 4, !tbaa !11
  %630 = load ptr, ptr %15, align 8, !tbaa !5
  %631 = load i64, ptr %36, align 8, !tbaa !9
  %632 = load ptr, ptr %19, align 8, !tbaa !5
  %633 = load i64, ptr %632, align 8, !tbaa !9
  %634 = load i64, ptr %26, align 8, !tbaa !9
  %635 = mul nsw i64 %633, %634
  %636 = add nsw i64 %631, %635
  %637 = getelementptr inbounds float, ptr %630, i64 %636
  store float 0.000000e+00, ptr %637, align 4, !tbaa !11
  %638 = load ptr, ptr %15, align 8, !tbaa !5
  %639 = load i64, ptr %37, align 8, !tbaa !9
  %640 = load ptr, ptr %19, align 8, !tbaa !5
  %641 = load i64, ptr %640, align 8, !tbaa !9
  %642 = load i64, ptr %26, align 8, !tbaa !9
  %643 = mul nsw i64 %641, %642
  %644 = add nsw i64 %639, %643
  %645 = getelementptr inbounds float, ptr %638, i64 %644
  store float 0.000000e+00, ptr %645, align 4, !tbaa !11
  %646 = load ptr, ptr %13, align 8, !tbaa !5
  %647 = load i64, ptr %646, align 8, !tbaa !9
  %648 = icmp ne i64 %647, 0
  br i1 %648, label %649, label %663

649:                                              ; preds = %589
  %650 = load ptr, ptr %14, align 8, !tbaa !5
  %651 = getelementptr inbounds [3 x float], ptr %34, i64 0, i64 0
  %652 = load ptr, ptr %17, align 8, !tbaa !5
  %653 = load ptr, ptr %19, align 8, !tbaa !5
  %654 = load i64, ptr %653, align 8, !tbaa !9
  %655 = load i64, ptr %24, align 8, !tbaa !9
  %656 = mul nsw i64 %654, %655
  %657 = add nsw i64 %656, 1
  %658 = getelementptr inbounds float, ptr %652, i64 %657
  %659 = load ptr, ptr %18, align 8, !tbaa !5
  %660 = load ptr, ptr %22, align 8, !tbaa !5
  %661 = getelementptr inbounds float, ptr %660, i64 1
  %662 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef %650, ptr noundef @c__3, ptr noundef %651, ptr noundef %52, ptr noundef %658, ptr noundef %659, ptr noundef %661)
  br label %663

663:                                              ; preds = %649, %589
  br label %941

664:                                              ; preds = %315
  %665 = getelementptr inbounds [4 x float], ptr %35, i64 0, i64 0
  %666 = load float, ptr %665, align 16, !tbaa !11
  %667 = fneg float %666
  %668 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 0
  store float %667, ptr %668, align 4, !tbaa !11
  %669 = getelementptr inbounds [4 x float], ptr %35, i64 0, i64 1
  %670 = load float, ptr %669, align 4, !tbaa !11
  %671 = fneg float %670
  %672 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 1
  store float %671, ptr %672, align 4, !tbaa !11
  %673 = load float, ptr %57, align 4, !tbaa !11
  %674 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 2
  store float %673, ptr %674, align 4, !tbaa !11
  %675 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 0
  %676 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 1
  %677 = call i32 @slarfg_(ptr noundef @c__3, ptr noundef %675, ptr noundef %676, ptr noundef @c__1, ptr noundef %53)
  %678 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 0
  store float 1.000000e+00, ptr %678, align 4, !tbaa !11
  %679 = load float, ptr %53, align 4, !tbaa !11
  %680 = fneg float %679
  %681 = getelementptr inbounds [4 x float], ptr %35, i64 0, i64 2
  %682 = load float, ptr %681, align 8, !tbaa !11
  %683 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 1
  %684 = load float, ptr %683, align 4, !tbaa !11
  %685 = getelementptr inbounds [4 x float], ptr %35, i64 0, i64 3
  %686 = load float, ptr %685, align 4, !tbaa !11
  %687 = call float @llvm.fmuladd.f32(float %684, float %686, float %682)
  %688 = fmul float %680, %687
  store float %688, ptr %56, align 4, !tbaa !11
  %689 = load float, ptr %56, align 4, !tbaa !11
  %690 = fneg float %689
  %691 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 1
  %692 = load float, ptr %691, align 4, !tbaa !11
  %693 = getelementptr inbounds [4 x float], ptr %35, i64 0, i64 3
  %694 = load float, ptr %693, align 4, !tbaa !11
  %695 = fneg float %694
  %696 = call float @llvm.fmuladd.f32(float %690, float %692, float %695)
  %697 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 0
  store float %696, ptr %697, align 4, !tbaa !11
  %698 = load float, ptr %56, align 4, !tbaa !11
  %699 = fneg float %698
  %700 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 2
  %701 = load float, ptr %700, align 4, !tbaa !11
  %702 = fmul float %699, %701
  %703 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 1
  store float %702, ptr %703, align 4, !tbaa !11
  %704 = load float, ptr %57, align 4, !tbaa !11
  %705 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 2
  store float %704, ptr %705, align 4, !tbaa !11
  %706 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 0
  %707 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 1
  %708 = call i32 @slarfg_(ptr noundef @c__3, ptr noundef %706, ptr noundef %707, ptr noundef @c__1, ptr noundef %54)
  %709 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 0
  store float 1.000000e+00, ptr %709, align 4, !tbaa !11
  %710 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 0
  %711 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 0
  %712 = load ptr, ptr %22, align 8, !tbaa !5
  %713 = getelementptr inbounds float, ptr %712, i64 1
  %714 = call i32 @slarfx_(ptr noundef @.str.4, ptr noundef @c__3, ptr noundef @c__4, ptr noundef %710, ptr noundef %53, ptr noundef %711, ptr noundef @c__4, ptr noundef %713)
  %715 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 0
  %716 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 0
  %717 = load ptr, ptr %22, align 8, !tbaa !5
  %718 = getelementptr inbounds float, ptr %717, i64 1
  %719 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef @c__4, ptr noundef @c__3, ptr noundef %715, ptr noundef %53, ptr noundef %716, ptr noundef @c__4, ptr noundef %718)
  %720 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 0
  %721 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 1
  %722 = load ptr, ptr %22, align 8, !tbaa !5
  %723 = getelementptr inbounds float, ptr %722, i64 1
  %724 = call i32 @slarfx_(ptr noundef @.str.4, ptr noundef @c__3, ptr noundef @c__4, ptr noundef %720, ptr noundef %54, ptr noundef %721, ptr noundef @c__4, ptr noundef %723)
  %725 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 0
  %726 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 4
  %727 = load ptr, ptr %22, align 8, !tbaa !5
  %728 = getelementptr inbounds float, ptr %727, i64 1
  %729 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef @c__4, ptr noundef @c__3, ptr noundef %725, ptr noundef %54, ptr noundef %726, ptr noundef @c__4, ptr noundef %728)
  %730 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 2
  %731 = load float, ptr %730, align 8, !tbaa !11
  %732 = fcmp oge float %731, 0.000000e+00
  br i1 %732, label %733, label %736

733:                                              ; preds = %664
  %734 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 2
  %735 = load float, ptr %734, align 8, !tbaa !11
  br label %740

736:                                              ; preds = %664
  %737 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 2
  %738 = load float, ptr %737, align 8, !tbaa !11
  %739 = fneg float %738
  br label %740

740:                                              ; preds = %736, %733
  %741 = phi float [ %735, %733 ], [ %739, %736 ]
  %742 = fpext float %741 to double
  %743 = fptrunc double %742 to float
  store float %743, ptr %29, align 4, !tbaa !11
  %744 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 6
  %745 = load float, ptr %744, align 8, !tbaa !11
  %746 = fcmp oge float %745, 0.000000e+00
  br i1 %746, label %747, label %750

747:                                              ; preds = %740
  %748 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 6
  %749 = load float, ptr %748, align 8, !tbaa !11
  br label %754

750:                                              ; preds = %740
  %751 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 6
  %752 = load float, ptr %751, align 8, !tbaa !11
  %753 = fneg float %752
  br label %754

754:                                              ; preds = %750, %747
  %755 = phi float [ %749, %747 ], [ %753, %750 ]
  %756 = fpext float %755 to double
  %757 = fptrunc double %756 to float
  store float %757, ptr %30, align 4, !tbaa !11
  %758 = load float, ptr %29, align 4, !tbaa !11
  %759 = load float, ptr %30, align 4, !tbaa !11
  %760 = fcmp oge float %758, %759
  br i1 %760, label %761, label %763

761:                                              ; preds = %754
  %762 = load float, ptr %29, align 4, !tbaa !11
  br label %765

763:                                              ; preds = %754
  %764 = load float, ptr %30, align 4, !tbaa !11
  br label %765

765:                                              ; preds = %763, %761
  %766 = phi float [ %762, %761 ], [ %764, %763 ]
  store float %766, ptr %29, align 4, !tbaa !11
  %767 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 3
  %768 = load float, ptr %767, align 4, !tbaa !11
  %769 = fcmp oge float %768, 0.000000e+00
  br i1 %769, label %770, label %773

770:                                              ; preds = %765
  %771 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 3
  %772 = load float, ptr %771, align 4, !tbaa !11
  br label %777

773:                                              ; preds = %765
  %774 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 3
  %775 = load float, ptr %774, align 4, !tbaa !11
  %776 = fneg float %775
  br label %777

777:                                              ; preds = %773, %770
  %778 = phi float [ %772, %770 ], [ %776, %773 ]
  %779 = fpext float %778 to double
  %780 = fptrunc double %779 to float
  store float %780, ptr %30, align 4, !tbaa !11
  %781 = load float, ptr %29, align 4, !tbaa !11
  %782 = load float, ptr %30, align 4, !tbaa !11
  %783 = fcmp oge float %781, %782
  br i1 %783, label %784, label %786

784:                                              ; preds = %777
  %785 = load float, ptr %29, align 4, !tbaa !11
  br label %788

786:                                              ; preds = %777
  %787 = load float, ptr %30, align 4, !tbaa !11
  br label %788

788:                                              ; preds = %786, %784
  %789 = phi float [ %785, %784 ], [ %787, %786 ]
  store float %789, ptr %29, align 4, !tbaa !11
  %790 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 7
  %791 = load float, ptr %790, align 4, !tbaa !11
  %792 = fcmp oge float %791, 0.000000e+00
  br i1 %792, label %793, label %796

793:                                              ; preds = %788
  %794 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 7
  %795 = load float, ptr %794, align 4, !tbaa !11
  br label %800

796:                                              ; preds = %788
  %797 = getelementptr inbounds [16 x float], ptr %32, i64 0, i64 7
  %798 = load float, ptr %797, align 4, !tbaa !11
  %799 = fneg float %798
  br label %800

800:                                              ; preds = %796, %793
  %801 = phi float [ %795, %793 ], [ %799, %796 ]
  %802 = fpext float %801 to double
  %803 = fptrunc double %802 to float
  store float %803, ptr %30, align 4, !tbaa !11
  %804 = load float, ptr %29, align 4, !tbaa !11
  %805 = load float, ptr %30, align 4, !tbaa !11
  %806 = fcmp oge float %804, %805
  br i1 %806, label %807, label %809

807:                                              ; preds = %800
  %808 = load float, ptr %29, align 4, !tbaa !11
  br label %811

809:                                              ; preds = %800
  %810 = load float, ptr %30, align 4, !tbaa !11
  br label %811

811:                                              ; preds = %809, %807
  %812 = phi float [ %808, %807 ], [ %810, %809 ]
  %813 = fpext float %812 to double
  %814 = load float, ptr %60, align 4, !tbaa !11
  %815 = fpext float %814 to double
  %816 = fcmp ogt double %813, %815
  br i1 %816, label %817, label %818

817:                                              ; preds = %811
  br label %1152

818:                                              ; preds = %811
  %819 = load ptr, ptr %14, align 8, !tbaa !5
  %820 = load i64, ptr %819, align 8, !tbaa !9
  %821 = load ptr, ptr %19, align 8, !tbaa !5
  %822 = load i64, ptr %821, align 8, !tbaa !9
  %823 = sub nsw i64 %820, %822
  %824 = add nsw i64 %823, 1
  store i64 %824, ptr %28, align 8, !tbaa !9
  %825 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 0
  %826 = load ptr, ptr %15, align 8, !tbaa !5
  %827 = load ptr, ptr %19, align 8, !tbaa !5
  %828 = load i64, ptr %827, align 8, !tbaa !9
  %829 = load ptr, ptr %19, align 8, !tbaa !5
  %830 = load i64, ptr %829, align 8, !tbaa !9
  %831 = load i64, ptr %26, align 8, !tbaa !9
  %832 = mul nsw i64 %830, %831
  %833 = add nsw i64 %828, %832
  %834 = getelementptr inbounds float, ptr %826, i64 %833
  %835 = load ptr, ptr %16, align 8, !tbaa !5
  %836 = load ptr, ptr %22, align 8, !tbaa !5
  %837 = getelementptr inbounds float, ptr %836, i64 1
  %838 = call i32 @slarfx_(ptr noundef @.str.4, ptr noundef @c__3, ptr noundef %28, ptr noundef %825, ptr noundef %53, ptr noundef %834, ptr noundef %835, ptr noundef %837)
  %839 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 0
  %840 = load ptr, ptr %15, align 8, !tbaa !5
  %841 = load ptr, ptr %19, align 8, !tbaa !5
  %842 = load i64, ptr %841, align 8, !tbaa !9
  %843 = load i64, ptr %26, align 8, !tbaa !9
  %844 = mul nsw i64 %842, %843
  %845 = add nsw i64 %844, 1
  %846 = getelementptr inbounds float, ptr %840, i64 %845
  %847 = load ptr, ptr %16, align 8, !tbaa !5
  %848 = load ptr, ptr %22, align 8, !tbaa !5
  %849 = getelementptr inbounds float, ptr %848, i64 1
  %850 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef %38, ptr noundef @c__3, ptr noundef %839, ptr noundef %53, ptr noundef %846, ptr noundef %847, ptr noundef %849)
  %851 = load ptr, ptr %14, align 8, !tbaa !5
  %852 = load i64, ptr %851, align 8, !tbaa !9
  %853 = load ptr, ptr %19, align 8, !tbaa !5
  %854 = load i64, ptr %853, align 8, !tbaa !9
  %855 = sub nsw i64 %852, %854
  %856 = add nsw i64 %855, 1
  store i64 %856, ptr %28, align 8, !tbaa !9
  %857 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 0
  %858 = load ptr, ptr %15, align 8, !tbaa !5
  %859 = load i64, ptr %36, align 8, !tbaa !9
  %860 = load ptr, ptr %19, align 8, !tbaa !5
  %861 = load i64, ptr %860, align 8, !tbaa !9
  %862 = load i64, ptr %26, align 8, !tbaa !9
  %863 = mul nsw i64 %861, %862
  %864 = add nsw i64 %859, %863
  %865 = getelementptr inbounds float, ptr %858, i64 %864
  %866 = load ptr, ptr %16, align 8, !tbaa !5
  %867 = load ptr, ptr %22, align 8, !tbaa !5
  %868 = getelementptr inbounds float, ptr %867, i64 1
  %869 = call i32 @slarfx_(ptr noundef @.str.4, ptr noundef @c__3, ptr noundef %28, ptr noundef %857, ptr noundef %54, ptr noundef %865, ptr noundef %866, ptr noundef %868)
  %870 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 0
  %871 = load ptr, ptr %15, align 8, !tbaa !5
  %872 = load i64, ptr %36, align 8, !tbaa !9
  %873 = load i64, ptr %26, align 8, !tbaa !9
  %874 = mul nsw i64 %872, %873
  %875 = add nsw i64 %874, 1
  %876 = getelementptr inbounds float, ptr %871, i64 %875
  %877 = load ptr, ptr %16, align 8, !tbaa !5
  %878 = load ptr, ptr %22, align 8, !tbaa !5
  %879 = getelementptr inbounds float, ptr %878, i64 1
  %880 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef %38, ptr noundef @c__3, ptr noundef %870, ptr noundef %54, ptr noundef %876, ptr noundef %877, ptr noundef %879)
  %881 = load ptr, ptr %15, align 8, !tbaa !5
  %882 = load i64, ptr %37, align 8, !tbaa !9
  %883 = load ptr, ptr %19, align 8, !tbaa !5
  %884 = load i64, ptr %883, align 8, !tbaa !9
  %885 = load i64, ptr %26, align 8, !tbaa !9
  %886 = mul nsw i64 %884, %885
  %887 = add nsw i64 %882, %886
  %888 = getelementptr inbounds float, ptr %881, i64 %887
  store float 0.000000e+00, ptr %888, align 4, !tbaa !11
  %889 = load ptr, ptr %15, align 8, !tbaa !5
  %890 = load i64, ptr %37, align 8, !tbaa !9
  %891 = load i64, ptr %36, align 8, !tbaa !9
  %892 = load i64, ptr %26, align 8, !tbaa !9
  %893 = mul nsw i64 %891, %892
  %894 = add nsw i64 %890, %893
  %895 = getelementptr inbounds float, ptr %889, i64 %894
  store float 0.000000e+00, ptr %895, align 4, !tbaa !11
  %896 = load ptr, ptr %15, align 8, !tbaa !5
  %897 = load i64, ptr %38, align 8, !tbaa !9
  %898 = load ptr, ptr %19, align 8, !tbaa !5
  %899 = load i64, ptr %898, align 8, !tbaa !9
  %900 = load i64, ptr %26, align 8, !tbaa !9
  %901 = mul nsw i64 %899, %900
  %902 = add nsw i64 %897, %901
  %903 = getelementptr inbounds float, ptr %896, i64 %902
  store float 0.000000e+00, ptr %903, align 4, !tbaa !11
  %904 = load ptr, ptr %15, align 8, !tbaa !5
  %905 = load i64, ptr %38, align 8, !tbaa !9
  %906 = load i64, ptr %36, align 8, !tbaa !9
  %907 = load i64, ptr %26, align 8, !tbaa !9
  %908 = mul nsw i64 %906, %907
  %909 = add nsw i64 %905, %908
  %910 = getelementptr inbounds float, ptr %904, i64 %909
  store float 0.000000e+00, ptr %910, align 4, !tbaa !11
  %911 = load ptr, ptr %13, align 8, !tbaa !5
  %912 = load i64, ptr %911, align 8, !tbaa !9
  %913 = icmp ne i64 %912, 0
  br i1 %913, label %914, label %940

914:                                              ; preds = %818
  %915 = load ptr, ptr %14, align 8, !tbaa !5
  %916 = getelementptr inbounds [3 x float], ptr %39, i64 0, i64 0
  %917 = load ptr, ptr %17, align 8, !tbaa !5
  %918 = load ptr, ptr %19, align 8, !tbaa !5
  %919 = load i64, ptr %918, align 8, !tbaa !9
  %920 = load i64, ptr %24, align 8, !tbaa !9
  %921 = mul nsw i64 %919, %920
  %922 = add nsw i64 %921, 1
  %923 = getelementptr inbounds float, ptr %917, i64 %922
  %924 = load ptr, ptr %18, align 8, !tbaa !5
  %925 = load ptr, ptr %22, align 8, !tbaa !5
  %926 = getelementptr inbounds float, ptr %925, i64 1
  %927 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef %915, ptr noundef @c__3, ptr noundef %916, ptr noundef %53, ptr noundef %923, ptr noundef %924, ptr noundef %926)
  %928 = load ptr, ptr %14, align 8, !tbaa !5
  %929 = getelementptr inbounds [3 x float], ptr %40, i64 0, i64 0
  %930 = load ptr, ptr %17, align 8, !tbaa !5
  %931 = load i64, ptr %36, align 8, !tbaa !9
  %932 = load i64, ptr %24, align 8, !tbaa !9
  %933 = mul nsw i64 %931, %932
  %934 = add nsw i64 %933, 1
  %935 = getelementptr inbounds float, ptr %930, i64 %934
  %936 = load ptr, ptr %18, align 8, !tbaa !5
  %937 = load ptr, ptr %22, align 8, !tbaa !5
  %938 = getelementptr inbounds float, ptr %937, i64 1
  %939 = call i32 @slarfx_(ptr noundef @.str.5, ptr noundef %928, ptr noundef @c__3, ptr noundef %929, ptr noundef %54, ptr noundef %935, ptr noundef %936, ptr noundef %938)
  br label %940

940:                                              ; preds = %914, %818
  br label %941

941:                                              ; preds = %940, %663, %489
  %942 = load ptr, ptr %21, align 8, !tbaa !5
  %943 = load i64, ptr %942, align 8, !tbaa !9
  %944 = icmp eq i64 %943, 2
  br i1 %944, label %945, label %1044

945:                                              ; preds = %941
  %946 = load ptr, ptr %15, align 8, !tbaa !5
  %947 = load ptr, ptr %19, align 8, !tbaa !5
  %948 = load i64, ptr %947, align 8, !tbaa !9
  %949 = load ptr, ptr %19, align 8, !tbaa !5
  %950 = load i64, ptr %949, align 8, !tbaa !9
  %951 = load i64, ptr %26, align 8, !tbaa !9
  %952 = mul nsw i64 %950, %951
  %953 = add nsw i64 %948, %952
  %954 = getelementptr inbounds float, ptr %946, i64 %953
  %955 = load ptr, ptr %15, align 8, !tbaa !5
  %956 = load ptr, ptr %19, align 8, !tbaa !5
  %957 = load i64, ptr %956, align 8, !tbaa !9
  %958 = load i64, ptr %36, align 8, !tbaa !9
  %959 = load i64, ptr %26, align 8, !tbaa !9
  %960 = mul nsw i64 %958, %959
  %961 = add nsw i64 %957, %960
  %962 = getelementptr inbounds float, ptr %955, i64 %961
  %963 = load ptr, ptr %15, align 8, !tbaa !5
  %964 = load i64, ptr %36, align 8, !tbaa !9
  %965 = load ptr, ptr %19, align 8, !tbaa !5
  %966 = load i64, ptr %965, align 8, !tbaa !9
  %967 = load i64, ptr %26, align 8, !tbaa !9
  %968 = mul nsw i64 %966, %967
  %969 = add nsw i64 %964, %968
  %970 = getelementptr inbounds float, ptr %963, i64 %969
  %971 = load ptr, ptr %15, align 8, !tbaa !5
  %972 = load i64, ptr %36, align 8, !tbaa !9
  %973 = load i64, ptr %36, align 8, !tbaa !9
  %974 = load i64, ptr %26, align 8, !tbaa !9
  %975 = mul nsw i64 %973, %974
  %976 = add nsw i64 %972, %975
  %977 = getelementptr inbounds float, ptr %971, i64 %976
  %978 = call i32 @slanv2_(ptr noundef %954, ptr noundef %962, ptr noundef %970, ptr noundef %977, ptr noundef %49, ptr noundef %47, ptr noundef %50, ptr noundef %48, ptr noundef %42, ptr noundef %46)
  %979 = load ptr, ptr %14, align 8, !tbaa !5
  %980 = load i64, ptr %979, align 8, !tbaa !9
  %981 = load ptr, ptr %19, align 8, !tbaa !5
  %982 = load i64, ptr %981, align 8, !tbaa !9
  %983 = sub nsw i64 %980, %982
  %984 = sub nsw i64 %983, 1
  store i64 %984, ptr %28, align 8, !tbaa !9
  %985 = load ptr, ptr %15, align 8, !tbaa !5
  %986 = load ptr, ptr %19, align 8, !tbaa !5
  %987 = load i64, ptr %986, align 8, !tbaa !9
  %988 = load ptr, ptr %19, align 8, !tbaa !5
  %989 = load i64, ptr %988, align 8, !tbaa !9
  %990 = add nsw i64 %989, 2
  %991 = load i64, ptr %26, align 8, !tbaa !9
  %992 = mul nsw i64 %990, %991
  %993 = add nsw i64 %987, %992
  %994 = getelementptr inbounds float, ptr %985, i64 %993
  %995 = load ptr, ptr %16, align 8, !tbaa !5
  %996 = load ptr, ptr %15, align 8, !tbaa !5
  %997 = load i64, ptr %36, align 8, !tbaa !9
  %998 = load ptr, ptr %19, align 8, !tbaa !5
  %999 = load i64, ptr %998, align 8, !tbaa !9
  %1000 = add nsw i64 %999, 2
  %1001 = load i64, ptr %26, align 8, !tbaa !9
  %1002 = mul nsw i64 %1000, %1001
  %1003 = add nsw i64 %997, %1002
  %1004 = getelementptr inbounds float, ptr %996, i64 %1003
  %1005 = load ptr, ptr %16, align 8, !tbaa !5
  %1006 = call i32 @f2c_srot(ptr noundef %28, ptr noundef %994, ptr noundef %995, ptr noundef %1004, ptr noundef %1005, ptr noundef %42, ptr noundef %46)
  %1007 = load ptr, ptr %19, align 8, !tbaa !5
  %1008 = load i64, ptr %1007, align 8, !tbaa !9
  %1009 = sub nsw i64 %1008, 1
  store i64 %1009, ptr %28, align 8, !tbaa !9
  %1010 = load ptr, ptr %15, align 8, !tbaa !5
  %1011 = load ptr, ptr %19, align 8, !tbaa !5
  %1012 = load i64, ptr %1011, align 8, !tbaa !9
  %1013 = load i64, ptr %26, align 8, !tbaa !9
  %1014 = mul nsw i64 %1012, %1013
  %1015 = add nsw i64 %1014, 1
  %1016 = getelementptr inbounds float, ptr %1010, i64 %1015
  %1017 = load ptr, ptr %15, align 8, !tbaa !5
  %1018 = load i64, ptr %36, align 8, !tbaa !9
  %1019 = load i64, ptr %26, align 8, !tbaa !9
  %1020 = mul nsw i64 %1018, %1019
  %1021 = add nsw i64 %1020, 1
  %1022 = getelementptr inbounds float, ptr %1017, i64 %1021
  %1023 = call i32 @f2c_srot(ptr noundef %28, ptr noundef %1016, ptr noundef @c__1, ptr noundef %1022, ptr noundef @c__1, ptr noundef %42, ptr noundef %46)
  %1024 = load ptr, ptr %13, align 8, !tbaa !5
  %1025 = load i64, ptr %1024, align 8, !tbaa !9
  %1026 = icmp ne i64 %1025, 0
  br i1 %1026, label %1027, label %1043

1027:                                             ; preds = %945
  %1028 = load ptr, ptr %14, align 8, !tbaa !5
  %1029 = load ptr, ptr %17, align 8, !tbaa !5
  %1030 = load ptr, ptr %19, align 8, !tbaa !5
  %1031 = load i64, ptr %1030, align 8, !tbaa !9
  %1032 = load i64, ptr %24, align 8, !tbaa !9
  %1033 = mul nsw i64 %1031, %1032
  %1034 = add nsw i64 %1033, 1
  %1035 = getelementptr inbounds float, ptr %1029, i64 %1034
  %1036 = load ptr, ptr %17, align 8, !tbaa !5
  %1037 = load i64, ptr %36, align 8, !tbaa !9
  %1038 = load i64, ptr %24, align 8, !tbaa !9
  %1039 = mul nsw i64 %1037, %1038
  %1040 = add nsw i64 %1039, 1
  %1041 = getelementptr inbounds float, ptr %1036, i64 %1040
  %1042 = call i32 @f2c_srot(ptr noundef %1028, ptr noundef %1035, ptr noundef @c__1, ptr noundef %1041, ptr noundef @c__1, ptr noundef %42, ptr noundef %46)
  br label %1043

1043:                                             ; preds = %1027, %945
  br label %1044

1044:                                             ; preds = %1043, %941
  %1045 = load ptr, ptr %20, align 8, !tbaa !5
  %1046 = load i64, ptr %1045, align 8, !tbaa !9
  %1047 = icmp eq i64 %1046, 2
  br i1 %1047, label %1048, label %1150

1048:                                             ; preds = %1044
  %1049 = load ptr, ptr %19, align 8, !tbaa !5
  %1050 = load i64, ptr %1049, align 8, !tbaa !9
  %1051 = load ptr, ptr %21, align 8, !tbaa !5
  %1052 = load i64, ptr %1051, align 8, !tbaa !9
  %1053 = add nsw i64 %1050, %1052
  store i64 %1053, ptr %37, align 8, !tbaa !9
  %1054 = load i64, ptr %37, align 8, !tbaa !9
  %1055 = add nsw i64 %1054, 1
  store i64 %1055, ptr %38, align 8, !tbaa !9
  %1056 = load ptr, ptr %15, align 8, !tbaa !5
  %1057 = load i64, ptr %37, align 8, !tbaa !9
  %1058 = load i64, ptr %37, align 8, !tbaa !9
  %1059 = load i64, ptr %26, align 8, !tbaa !9
  %1060 = mul nsw i64 %1058, %1059
  %1061 = add nsw i64 %1057, %1060
  %1062 = getelementptr inbounds float, ptr %1056, i64 %1061
  %1063 = load ptr, ptr %15, align 8, !tbaa !5
  %1064 = load i64, ptr %37, align 8, !tbaa !9
  %1065 = load i64, ptr %38, align 8, !tbaa !9
  %1066 = load i64, ptr %26, align 8, !tbaa !9
  %1067 = mul nsw i64 %1065, %1066
  %1068 = add nsw i64 %1064, %1067
  %1069 = getelementptr inbounds float, ptr %1063, i64 %1068
  %1070 = load ptr, ptr %15, align 8, !tbaa !5
  %1071 = load i64, ptr %38, align 8, !tbaa !9
  %1072 = load i64, ptr %37, align 8, !tbaa !9
  %1073 = load i64, ptr %26, align 8, !tbaa !9
  %1074 = mul nsw i64 %1072, %1073
  %1075 = add nsw i64 %1071, %1074
  %1076 = getelementptr inbounds float, ptr %1070, i64 %1075
  %1077 = load ptr, ptr %15, align 8, !tbaa !5
  %1078 = load i64, ptr %38, align 8, !tbaa !9
  %1079 = load i64, ptr %38, align 8, !tbaa !9
  %1080 = load i64, ptr %26, align 8, !tbaa !9
  %1081 = mul nsw i64 %1079, %1080
  %1082 = add nsw i64 %1078, %1081
  %1083 = getelementptr inbounds float, ptr %1077, i64 %1082
  %1084 = call i32 @slanv2_(ptr noundef %1062, ptr noundef %1069, ptr noundef %1076, ptr noundef %1083, ptr noundef %49, ptr noundef %47, ptr noundef %50, ptr noundef %48, ptr noundef %42, ptr noundef %46)
  %1085 = load i64, ptr %37, align 8, !tbaa !9
  %1086 = add nsw i64 %1085, 2
  %1087 = load ptr, ptr %14, align 8, !tbaa !5
  %1088 = load i64, ptr %1087, align 8, !tbaa !9
  %1089 = icmp sle i64 %1086, %1088
  br i1 %1089, label %1090, label %1115

1090:                                             ; preds = %1048
  %1091 = load ptr, ptr %14, align 8, !tbaa !5
  %1092 = load i64, ptr %1091, align 8, !tbaa !9
  %1093 = load i64, ptr %37, align 8, !tbaa !9
  %1094 = sub nsw i64 %1092, %1093
  %1095 = sub nsw i64 %1094, 1
  store i64 %1095, ptr %28, align 8, !tbaa !9
  %1096 = load ptr, ptr %15, align 8, !tbaa !5
  %1097 = load i64, ptr %37, align 8, !tbaa !9
  %1098 = load i64, ptr %37, align 8, !tbaa !9
  %1099 = add nsw i64 %1098, 2
  %1100 = load i64, ptr %26, align 8, !tbaa !9
  %1101 = mul nsw i64 %1099, %1100
  %1102 = add nsw i64 %1097, %1101
  %1103 = getelementptr inbounds float, ptr %1096, i64 %1102
  %1104 = load ptr, ptr %16, align 8, !tbaa !5
  %1105 = load ptr, ptr %15, align 8, !tbaa !5
  %1106 = load i64, ptr %38, align 8, !tbaa !9
  %1107 = load i64, ptr %37, align 8, !tbaa !9
  %1108 = add nsw i64 %1107, 2
  %1109 = load i64, ptr %26, align 8, !tbaa !9
  %1110 = mul nsw i64 %1108, %1109
  %1111 = add nsw i64 %1106, %1110
  %1112 = getelementptr inbounds float, ptr %1105, i64 %1111
  %1113 = load ptr, ptr %16, align 8, !tbaa !5
  %1114 = call i32 @f2c_srot(ptr noundef %28, ptr noundef %1103, ptr noundef %1104, ptr noundef %1112, ptr noundef %1113, ptr noundef %42, ptr noundef %46)
  br label %1115

1115:                                             ; preds = %1090, %1048
  %1116 = load i64, ptr %37, align 8, !tbaa !9
  %1117 = sub nsw i64 %1116, 1
  store i64 %1117, ptr %28, align 8, !tbaa !9
  %1118 = load ptr, ptr %15, align 8, !tbaa !5
  %1119 = load i64, ptr %37, align 8, !tbaa !9
  %1120 = load i64, ptr %26, align 8, !tbaa !9
  %1121 = mul nsw i64 %1119, %1120
  %1122 = add nsw i64 %1121, 1
  %1123 = getelementptr inbounds float, ptr %1118, i64 %1122
  %1124 = load ptr, ptr %15, align 8, !tbaa !5
  %1125 = load i64, ptr %38, align 8, !tbaa !9
  %1126 = load i64, ptr %26, align 8, !tbaa !9
  %1127 = mul nsw i64 %1125, %1126
  %1128 = add nsw i64 %1127, 1
  %1129 = getelementptr inbounds float, ptr %1124, i64 %1128
  %1130 = call i32 @f2c_srot(ptr noundef %28, ptr noundef %1123, ptr noundef @c__1, ptr noundef %1129, ptr noundef @c__1, ptr noundef %42, ptr noundef %46)
  %1131 = load ptr, ptr %13, align 8, !tbaa !5
  %1132 = load i64, ptr %1131, align 8, !tbaa !9
  %1133 = icmp ne i64 %1132, 0
  br i1 %1133, label %1134, label %1149

1134:                                             ; preds = %1115
  %1135 = load ptr, ptr %14, align 8, !tbaa !5
  %1136 = load ptr, ptr %17, align 8, !tbaa !5
  %1137 = load i64, ptr %37, align 8, !tbaa !9
  %1138 = load i64, ptr %24, align 8, !tbaa !9
  %1139 = mul nsw i64 %1137, %1138
  %1140 = add nsw i64 %1139, 1
  %1141 = getelementptr inbounds float, ptr %1136, i64 %1140
  %1142 = load ptr, ptr %17, align 8, !tbaa !5
  %1143 = load i64, ptr %38, align 8, !tbaa !9
  %1144 = load i64, ptr %24, align 8, !tbaa !9
  %1145 = mul nsw i64 %1143, %1144
  %1146 = add nsw i64 %1145, 1
  %1147 = getelementptr inbounds float, ptr %1142, i64 %1146
  %1148 = call i32 @f2c_srot(ptr noundef %1135, ptr noundef %1141, ptr noundef @c__1, ptr noundef %1147, ptr noundef @c__1, ptr noundef %42, ptr noundef %46)
  br label %1149

1149:                                             ; preds = %1134, %1115
  br label %1150

1150:                                             ; preds = %1149, %1044
  br label %1151

1151:                                             ; preds = %1150, %236
  store i32 0, ptr %12, align 4
  store i32 1, ptr %62, align 4
  br label %1154

1152:                                             ; preds = %817, %588, %415
  %1153 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 1, ptr %1153, align 8, !tbaa !9
  store i32 0, ptr %12, align 4
  store i32 1, ptr %62, align 4
  br label %1154

1154:                                             ; preds = %1152, %1151, %103, %93
  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 8, 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 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 12, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 12, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 12, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 64, 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 8, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  %1155 = load i32, ptr %12, align 4
  ret i32 %1155
}

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

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

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #3

declare i32 @slanv2_(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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}


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

@c__1 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [5 x i8], align 1
@c__4 = external hidden global i64, align 8
@.str.1 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slaexc_(ptr nocapture noundef readonly %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr nocapture noundef readonly %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr nocapture noundef writeonly %10) local_unnamed_addr #0 {
  %12 = alloca i64, align 8
  %13 = alloca float, align 4
  %14 = alloca [16 x float], align 16
  %15 = alloca [3 x float], align 8
  %16 = alloca [4 x float], align 16
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca [3 x float], align 8
  %21 = alloca [3 x float], align 4
  %22 = alloca i64, align 8
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca i64, align 8
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #4
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %14) #4
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %15) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #4
  %36 = load i64, ptr %3, align 8, !tbaa !5
  %37 = xor i64 %36, -1
  %38 = getelementptr inbounds float, ptr %2, i64 %37
  %39 = load i64, ptr %5, align 8, !tbaa !5
  %40 = xor i64 %39, -1
  %41 = getelementptr inbounds float, ptr %4, i64 %40
  store i64 0, ptr %10, align 8, !tbaa !5
  %42 = load i64, ptr %1, align 8, !tbaa !5
  %43 = icmp eq i64 %42, 0
  br i1 %43, label %457, label %44

44:                                               ; preds = %11
  %45 = load i64, ptr %7, align 8, !tbaa !5
  %46 = icmp eq i64 %45, 0
  br i1 %46, label %457, label %47

47:                                               ; preds = %44
  %48 = load i64, ptr %8, align 8, !tbaa !5
  %49 = icmp eq i64 %48, 0
  br i1 %49, label %457, label %50

50:                                               ; preds = %47
  %51 = load i64, ptr %6, align 8, !tbaa !5
  %52 = add nsw i64 %51, %45
  %53 = icmp sgt i64 %52, %42
  br i1 %53, label %457, label %54

54:                                               ; preds = %50
  %55 = add nsw i64 %51, 1
  store i64 %55, ptr %17, align 8, !tbaa !5
  %56 = add nsw i64 %51, 2
  store i64 %56, ptr %18, align 8, !tbaa !5
  %57 = add nsw i64 %51, 3
  store i64 %57, ptr %19, align 8, !tbaa !5
  %58 = icmp eq i64 %45, 1
  %59 = icmp eq i64 %48, 1
  %or.cond = and i1 %58, %59
  br i1 %or.cond, label %60, label %105

60:                                               ; preds = %54
  %61 = add i64 %36, 1
  %62 = mul i64 %51, %61
  %63 = getelementptr inbounds float, ptr %38, i64 %62
  %64 = load float, ptr %63, align 4, !tbaa !9
  %65 = mul i64 %55, %61
  %66 = getelementptr inbounds float, ptr %38, i64 %65
  %67 = load float, ptr %66, align 4, !tbaa !9
  %68 = fsub float %67, %64
  store float %68, ptr %13, align 4, !tbaa !9
  %69 = mul nsw i64 %55, %36
  %70 = getelementptr float, ptr %38, i64 %51
  %71 = getelementptr float, ptr %70, i64 %69
  %72 = call i32 @slartg_(ptr noundef %71, ptr noundef nonnull %13, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %33) #4
  %73 = load i64, ptr %1, align 8, !tbaa !5
  %.not305 = icmp sgt i64 %56, %73
  br i1 %.not305, label %84, label %74

74:                                               ; preds = %60
  %75 = load i64, ptr %6, align 8, !tbaa !5
  %76 = xor i64 %75, -1
  %77 = add i64 %73, %76
  store i64 %77, ptr %12, align 8, !tbaa !5
  %78 = mul nsw i64 %56, %36
  %79 = getelementptr float, ptr %38, i64 %75
  %80 = getelementptr float, ptr %79, i64 %78
  %81 = getelementptr float, ptr %38, i64 %55
  %82 = getelementptr float, ptr %81, i64 %78
  %83 = call i32 @f2c_srot(ptr noundef nonnull %12, ptr noundef %80, ptr noundef nonnull %3, ptr noundef %82, ptr noundef nonnull %3, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  br label %84

84:                                               ; preds = %74, %60
  %85 = load i64, ptr %6, align 8, !tbaa !5
  %86 = add nsw i64 %85, -1
  store i64 %86, ptr %12, align 8, !tbaa !5
  %87 = mul nsw i64 %85, %36
  %88 = getelementptr float, ptr %38, i64 %87
  %89 = getelementptr i8, ptr %88, i64 4
  %90 = getelementptr float, ptr %38, i64 %69
  %91 = getelementptr i8, ptr %90, i64 4
  %92 = call i32 @f2c_srot(ptr noundef nonnull %12, ptr noundef %89, ptr noundef nonnull @c__1, ptr noundef %91, ptr noundef nonnull @c__1, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  %93 = load i64, ptr %6, align 8, !tbaa !5
  %94 = mul i64 %93, %61
  %95 = getelementptr inbounds float, ptr %38, i64 %94
  store float %67, ptr %95, align 4, !tbaa !9
  store float %64, ptr %66, align 4, !tbaa !9
  %96 = load i64, ptr %0, align 8, !tbaa !5
  %.not306 = icmp eq i64 %96, 0
  br i1 %.not306, label %457, label %97

97:                                               ; preds = %84
  %98 = mul nsw i64 %93, %39
  %99 = getelementptr float, ptr %41, i64 %98
  %100 = getelementptr i8, ptr %99, i64 4
  %101 = mul nsw i64 %55, %39
  %102 = getelementptr float, ptr %41, i64 %101
  %103 = getelementptr i8, ptr %102, i64 4
  %104 = call i32 @f2c_srot(ptr noundef nonnull %1, ptr noundef %100, ptr noundef nonnull @c__1, ptr noundef %103, ptr noundef nonnull @c__1, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  br label %457

105:                                              ; preds = %54
  %106 = add nsw i64 %48, %45
  store i64 %106, ptr %22, align 8, !tbaa !5
  %107 = add i64 %36, 1
  %108 = mul i64 %51, %107
  %109 = getelementptr inbounds float, ptr %38, i64 %108
  %110 = call i32 @slacpy_(ptr noundef nonnull @.str, ptr noundef nonnull %22, ptr noundef nonnull %22, ptr noundef %109, ptr noundef nonnull %3, ptr noundef nonnull %14, ptr noundef nonnull @c__4) #4
  %111 = call double @slange_(ptr noundef nonnull @.str.1, ptr noundef nonnull %22, ptr noundef nonnull %22, ptr noundef nonnull %14, ptr noundef nonnull @c__4, ptr noundef %9) #4
  %112 = fptrunc double %111 to float
  %113 = call double @slamch_(ptr noundef nonnull @.str.2) #4
  %114 = fptrunc double %113 to float
  %115 = call double @slamch_(ptr noundef nonnull @.str.3) #4
  %116 = fpext float %114 to double
  %117 = fdiv double %115, %116
  %118 = fptrunc double %117 to float
  %119 = fmul float %114, 1.000000e+01
  %120 = fmul float %119, %112
  %121 = fcmp oge float %120, %118
  %122 = select i1 %121, float %120, float %118
  %123 = load i64, ptr %7, align 8, !tbaa !5
  %124 = add nsw i64 %123, 1
  %125 = shl i64 %124, 2
  %126 = mul i64 %124, 5
  %127 = add nsw i64 %126, -5
  %128 = getelementptr inbounds [16 x float], ptr %14, i64 0, i64 %127
  %129 = add nsw i64 %125, -4
  %130 = getelementptr inbounds [16 x float], ptr %14, i64 0, i64 %129
  %131 = call i32 @slasy2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_false, ptr noundef nonnull @c_n1, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %14, ptr noundef nonnull @c__4, ptr noundef nonnull %128, ptr noundef nonnull @c__4, ptr noundef nonnull %130, ptr noundef nonnull @c__4, ptr noundef nonnull %34, ptr noundef nonnull %16, ptr noundef nonnull @c__2, ptr noundef nonnull %35, ptr noundef nonnull %32) #4
  %132 = load i64, ptr %7, align 8, !tbaa !5
  %133 = shl nsw i64 %132, 1
  %134 = load i64, ptr %8, align 8, !tbaa !5
  %135 = add nsw i64 %133, %134
  switch i64 %135, label %136 [
    i64 6, label %256
    i64 5, label %199
  ]

136:                                              ; preds = %105
  %137 = load float, ptr %34, align 4, !tbaa !9
  store float %137, ptr %15, align 8, !tbaa !9
  %138 = load float, ptr %16, align 16, !tbaa !9
  %139 = getelementptr inbounds i8, ptr %15, i64 4
  store float %138, ptr %139, align 4, !tbaa !9
  %140 = getelementptr inbounds i8, ptr %16, i64 8
  %141 = load float, ptr %140, align 8, !tbaa !9
  %142 = getelementptr inbounds i8, ptr %15, i64 8
  store float %141, ptr %142, align 8, !tbaa !9
  %143 = call i32 @slarfg_(ptr noundef nonnull @c__3, ptr noundef nonnull %142, ptr noundef nonnull %15, ptr noundef nonnull @c__1, ptr noundef nonnull %29) #4
  store float 1.000000e+00, ptr %142, align 8, !tbaa !9
  %144 = load i64, ptr %6, align 8, !tbaa !5
  %145 = mul i64 %144, %107
  %146 = getelementptr inbounds float, ptr %38, i64 %145
  %147 = load float, ptr %146, align 4, !tbaa !9
  %148 = call i32 @slarfx_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__3, ptr noundef nonnull @c__3, ptr noundef nonnull %15, ptr noundef nonnull %29, ptr noundef nonnull %14, ptr noundef nonnull @c__4, ptr noundef %9) #4
  %149 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__3, ptr noundef nonnull @c__3, ptr noundef nonnull %15, ptr noundef nonnull %29, ptr noundef nonnull %14, ptr noundef nonnull @c__4, ptr noundef %9) #4
  %150 = getelementptr inbounds i8, ptr %14, i64 8
  %151 = load float, ptr %150, align 8
  %152 = fcmp oge float %151, 0.000000e+00
  %153 = fneg float %151
  %154 = select i1 %152, float %151, float %153
  %155 = getelementptr inbounds i8, ptr %14, i64 24
  %156 = load float, ptr %155, align 8
  %157 = fcmp oge float %156, 0.000000e+00
  %158 = fneg float %156
  %159 = select i1 %157, float %156, float %158
  %160 = fcmp oge float %154, %159
  %161 = select i1 %160, float %154, float %159
  %162 = getelementptr inbounds i8, ptr %14, i64 40
  %163 = load float, ptr %162, align 8, !tbaa !9
  %164 = fsub float %163, %147
  %165 = fcmp oge float %164, 0.000000e+00
  %166 = fneg float %164
  %167 = select i1 %165, float %164, float %166
  %168 = fcmp oge float %161, %167
  %169 = select i1 %168, float %161, float %167
  %170 = fcmp ogt float %169, %122
  br i1 %170, label %456, label %171

171:                                              ; preds = %136
  %172 = load i64, ptr %1, align 8, !tbaa !5
  %173 = load i64, ptr %6, align 8, !tbaa !5
  %174 = add i64 %172, 1
  %175 = sub i64 %174, %173
  store i64 %175, ptr %12, align 8, !tbaa !5
  %176 = mul i64 %173, %107
  %177 = getelementptr inbounds float, ptr %38, i64 %176
  %178 = call i32 @slarfx_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__3, ptr noundef nonnull %12, ptr noundef nonnull %15, ptr noundef nonnull %29, ptr noundef %177, ptr noundef nonnull %3, ptr noundef %9) #4
  %179 = load i64, ptr %6, align 8, !tbaa !5
  %180 = mul nsw i64 %179, %36
  %181 = getelementptr float, ptr %38, i64 %180
  %182 = getelementptr i8, ptr %181, i64 4
  %183 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull %17, ptr noundef nonnull @c__3, ptr noundef nonnull %15, ptr noundef nonnull %29, ptr noundef %182, ptr noundef nonnull %3, ptr noundef %9) #4
  %184 = load i64, ptr %6, align 8, !tbaa !5
  %185 = mul nsw i64 %184, %36
  %186 = getelementptr float, ptr %38, i64 %56
  %187 = getelementptr float, ptr %186, i64 %185
  store float 0.000000e+00, ptr %187, align 4, !tbaa !9
  %188 = load i64, ptr %17, align 8, !tbaa !5
  %189 = mul nsw i64 %188, %36
  %190 = getelementptr float, ptr %186, i64 %189
  store float 0.000000e+00, ptr %190, align 4, !tbaa !9
  %191 = mul i64 %56, %107
  %192 = getelementptr inbounds float, ptr %38, i64 %191
  store float %147, ptr %192, align 4, !tbaa !9
  %193 = load i64, ptr %0, align 8, !tbaa !5
  %.not301 = icmp eq i64 %193, 0
  br i1 %.not301, label %356, label %194

194:                                              ; preds = %171
  %195 = mul nsw i64 %184, %39
  %196 = getelementptr float, ptr %41, i64 %195
  %197 = getelementptr i8, ptr %196, i64 4
  %198 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull %1, ptr noundef nonnull @c__3, ptr noundef nonnull %15, ptr noundef nonnull %29, ptr noundef %197, ptr noundef nonnull %5, ptr noundef %9) #4
  br label %356

199:                                              ; preds = %105
  %200 = getelementptr inbounds i8, ptr %15, i64 4
  %201 = load <2 x float>, ptr %16, align 16, !tbaa !9
  %202 = fneg <2 x float> %201
  store <2 x float> %202, ptr %15, align 8, !tbaa !9
  %203 = load float, ptr %34, align 4, !tbaa !9
  %204 = getelementptr inbounds i8, ptr %15, i64 8
  store float %203, ptr %204, align 8, !tbaa !9
  %205 = call i32 @slarfg_(ptr noundef nonnull @c__3, ptr noundef nonnull %15, ptr noundef nonnull %200, ptr noundef nonnull @c__1, ptr noundef nonnull %29) #4
  store float 1.000000e+00, ptr %15, align 8, !tbaa !9
  %206 = mul i64 %56, %107
  %207 = getelementptr inbounds float, ptr %38, i64 %206
  %208 = load float, ptr %207, align 4, !tbaa !9
  %209 = call i32 @slarfx_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__3, ptr noundef nonnull @c__3, ptr noundef nonnull %15, ptr noundef nonnull %29, ptr noundef nonnull %14, ptr noundef nonnull @c__4, ptr noundef %9) #4
  %210 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__3, ptr noundef nonnull @c__3, ptr noundef nonnull %15, ptr noundef nonnull %29, ptr noundef nonnull %14, ptr noundef nonnull @c__4, ptr noundef %9) #4
  %211 = getelementptr inbounds i8, ptr %14, i64 4
  %212 = load <2 x float>, ptr %211, align 4
  %213 = fcmp oge <2 x float> %212, zeroinitializer
  %214 = fneg <2 x float> %212
  %215 = select <2 x i1> %213, <2 x float> %212, <2 x float> %214
  %216 = extractelement <2 x float> %215, i64 0
  %217 = extractelement <2 x float> %215, i64 1
  %218 = fcmp oge float %216, %217
  %219 = select i1 %218, float %216, float %217
  %220 = load float, ptr %14, align 16, !tbaa !9
  %221 = fsub float %220, %208
  %222 = fcmp oge float %221, 0.000000e+00
  %223 = fneg float %221
  %224 = select i1 %222, float %221, float %223
  %225 = fcmp oge float %219, %224
  %226 = select i1 %225, float %219, float %224
  %227 = fcmp ogt float %226, %122
  br i1 %227, label %456, label %228

228:                                              ; preds = %199
  %229 = load i64, ptr %6, align 8, !tbaa !5
  %230 = mul nsw i64 %229, %36
  %231 = getelementptr float, ptr %38, i64 %230
  %232 = getelementptr i8, ptr %231, i64 4
  %233 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull %18, ptr noundef nonnull @c__3, ptr noundef nonnull %15, ptr noundef nonnull %29, ptr noundef %232, ptr noundef nonnull %3, ptr noundef %9) #4
  %234 = load i64, ptr %1, align 8, !tbaa !5
  %235 = load i64, ptr %6, align 8, !tbaa !5
  %236 = sub nsw i64 %234, %235
  store i64 %236, ptr %12, align 8, !tbaa !5
  %237 = mul nsw i64 %55, %36
  %238 = getelementptr float, ptr %38, i64 %235
  %239 = getelementptr float, ptr %238, i64 %237
  %240 = call i32 @slarfx_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__3, ptr noundef nonnull %12, ptr noundef nonnull %15, ptr noundef nonnull %29, ptr noundef %239, ptr noundef nonnull %3, ptr noundef %9) #4
  %241 = load i64, ptr %6, align 8, !tbaa !5
  %242 = mul i64 %241, %107
  %243 = getelementptr inbounds float, ptr %38, i64 %242
  store float %208, ptr %243, align 4, !tbaa !9
  %244 = mul nsw i64 %241, %36
  %245 = getelementptr float, ptr %38, i64 %55
  %246 = getelementptr float, ptr %245, i64 %244
  store float 0.000000e+00, ptr %246, align 4, !tbaa !9
  %247 = load i64, ptr %18, align 8, !tbaa !5
  %248 = getelementptr float, ptr %38, i64 %247
  %249 = getelementptr float, ptr %248, i64 %244
  store float 0.000000e+00, ptr %249, align 4, !tbaa !9
  %250 = load i64, ptr %0, align 8, !tbaa !5
  %.not = icmp eq i64 %250, 0
  br i1 %.not, label %356, label %251

251:                                              ; preds = %228
  %252 = mul nsw i64 %241, %39
  %253 = getelementptr float, ptr %41, i64 %252
  %254 = getelementptr i8, ptr %253, i64 4
  %255 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull %1, ptr noundef nonnull @c__3, ptr noundef nonnull %15, ptr noundef nonnull %29, ptr noundef %254, ptr noundef nonnull %5, ptr noundef %9) #4
  br label %356

256:                                              ; preds = %105
  %257 = getelementptr inbounds i8, ptr %20, i64 4
  %258 = load <2 x float>, ptr %16, align 16, !tbaa !9
  %259 = fneg <2 x float> %258
  store <2 x float> %259, ptr %20, align 8, !tbaa !9
  %260 = load float, ptr %34, align 4, !tbaa !9
  %261 = getelementptr inbounds i8, ptr %20, i64 8
  store float %260, ptr %261, align 8, !tbaa !9
  %262 = call i32 @slarfg_(ptr noundef nonnull @c__3, ptr noundef nonnull %20, ptr noundef nonnull %257, ptr noundef nonnull @c__1, ptr noundef nonnull %30) #4
  store float 1.000000e+00, ptr %20, align 8, !tbaa !9
  %263 = load float, ptr %30, align 4, !tbaa !9
  %264 = getelementptr inbounds i8, ptr %16, i64 8
  %265 = load float, ptr %264, align 8, !tbaa !9
  %266 = load float, ptr %257, align 4, !tbaa !9
  %267 = getelementptr inbounds i8, ptr %16, i64 12
  %268 = load float, ptr %267, align 4, !tbaa !9
  %269 = call float @llvm.fmuladd.f32(float %266, float %268, float %265)
  %270 = fmul float %269, %263
  %271 = fneg float %268
  %272 = call float @llvm.fmuladd.f32(float %270, float %266, float %271)
  store float %272, ptr %21, align 4, !tbaa !9
  %273 = load float, ptr %261, align 8, !tbaa !9
  %274 = fmul float %273, %270
  %275 = getelementptr inbounds i8, ptr %21, i64 4
  store float %274, ptr %275, align 4, !tbaa !9
  %276 = load float, ptr %34, align 4, !tbaa !9
  %277 = getelementptr inbounds i8, ptr %21, i64 8
  store float %276, ptr %277, align 4, !tbaa !9
  %278 = call i32 @slarfg_(ptr noundef nonnull @c__3, ptr noundef nonnull %21, ptr noundef nonnull %275, ptr noundef nonnull @c__1, ptr noundef nonnull %31) #4
  store float 1.000000e+00, ptr %21, align 4, !tbaa !9
  %279 = call i32 @slarfx_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__3, ptr noundef nonnull @c__4, ptr noundef nonnull %20, ptr noundef nonnull %30, ptr noundef nonnull %14, ptr noundef nonnull @c__4, ptr noundef %9) #4
  %280 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__4, ptr noundef nonnull @c__3, ptr noundef nonnull %20, ptr noundef nonnull %30, ptr noundef nonnull %14, ptr noundef nonnull @c__4, ptr noundef %9) #4
  %281 = getelementptr inbounds i8, ptr %14, i64 4
  %282 = call i32 @slarfx_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__3, ptr noundef nonnull @c__4, ptr noundef nonnull %21, ptr noundef nonnull %31, ptr noundef nonnull %281, ptr noundef nonnull @c__4, ptr noundef %9) #4
  %283 = getelementptr inbounds i8, ptr %14, i64 16
  %284 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull @c__4, ptr noundef nonnull @c__3, ptr noundef nonnull %21, ptr noundef nonnull %31, ptr noundef nonnull %283, ptr noundef nonnull @c__4, ptr noundef %9) #4
  %285 = getelementptr inbounds i8, ptr %14, i64 8
  %286 = load float, ptr %285, align 8
  %287 = fcmp oge float %286, 0.000000e+00
  %288 = fneg float %286
  %289 = select i1 %287, float %286, float %288
  %290 = getelementptr inbounds i8, ptr %14, i64 24
  %291 = load float, ptr %290, align 8
  %292 = fcmp oge float %291, 0.000000e+00
  %293 = fneg float %291
  %294 = select i1 %292, float %291, float %293
  %295 = fcmp oge float %289, %294
  %296 = select i1 %295, float %289, float %294
  %297 = getelementptr inbounds i8, ptr %14, i64 12
  %298 = load float, ptr %297, align 4
  %299 = fcmp oge float %298, 0.000000e+00
  %300 = fneg float %298
  %301 = select i1 %299, float %298, float %300
  %302 = fcmp oge float %296, %301
  %303 = select i1 %302, float %296, float %301
  %304 = getelementptr inbounds i8, ptr %14, i64 28
  %305 = load float, ptr %304, align 4
  %306 = fcmp oge float %305, 0.000000e+00
  %307 = fneg float %305
  %308 = select i1 %306, float %305, float %307
  %309 = fcmp oge float %303, %308
  %310 = select i1 %309, float %303, float %308
  %311 = fcmp ogt float %310, %122
  br i1 %311, label %456, label %312

312:                                              ; preds = %256
  %313 = load i64, ptr %1, align 8, !tbaa !5
  %314 = load i64, ptr %6, align 8, !tbaa !5
  %315 = add i64 %313, 1
  %316 = sub i64 %315, %314
  store i64 %316, ptr %12, align 8, !tbaa !5
  %317 = mul i64 %314, %107
  %318 = getelementptr inbounds float, ptr %38, i64 %317
  %319 = call i32 @slarfx_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__3, ptr noundef nonnull %12, ptr noundef nonnull %20, ptr noundef nonnull %30, ptr noundef %318, ptr noundef nonnull %3, ptr noundef %9) #4
  %320 = load i64, ptr %6, align 8, !tbaa !5
  %321 = mul nsw i64 %320, %36
  %322 = getelementptr float, ptr %38, i64 %321
  %323 = getelementptr i8, ptr %322, i64 4
  %324 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull %19, ptr noundef nonnull @c__3, ptr noundef nonnull %20, ptr noundef nonnull %30, ptr noundef %323, ptr noundef nonnull %3, ptr noundef %9) #4
  %325 = load i64, ptr %1, align 8, !tbaa !5
  %326 = load i64, ptr %6, align 8, !tbaa !5
  %327 = add i64 %325, 1
  %328 = sub i64 %327, %326
  store i64 %328, ptr %12, align 8, !tbaa !5
  %329 = mul nsw i64 %326, %36
  %330 = getelementptr float, ptr %38, i64 %55
  %331 = getelementptr float, ptr %330, i64 %329
  %332 = call i32 @slarfx_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__3, ptr noundef nonnull %12, ptr noundef nonnull %21, ptr noundef nonnull %31, ptr noundef %331, ptr noundef nonnull %3, ptr noundef %9) #4
  %333 = mul nsw i64 %55, %36
  %334 = getelementptr float, ptr %38, i64 %333
  %335 = getelementptr i8, ptr %334, i64 4
  %336 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull %19, ptr noundef nonnull @c__3, ptr noundef nonnull %21, ptr noundef nonnull %31, ptr noundef %335, ptr noundef nonnull %3, ptr noundef %9) #4
  %337 = load i64, ptr %6, align 8, !tbaa !5
  %338 = mul nsw i64 %337, %36
  %339 = getelementptr float, ptr %38, i64 %56
  %340 = getelementptr float, ptr %339, i64 %338
  store float 0.000000e+00, ptr %340, align 4, !tbaa !9
  %341 = getelementptr float, ptr %339, i64 %333
  store float 0.000000e+00, ptr %341, align 4, !tbaa !9
  %342 = load i64, ptr %19, align 8, !tbaa !5
  %343 = getelementptr float, ptr %38, i64 %342
  %344 = getelementptr float, ptr %343, i64 %338
  store float 0.000000e+00, ptr %344, align 4, !tbaa !9
  %345 = getelementptr float, ptr %343, i64 %333
  store float 0.000000e+00, ptr %345, align 4, !tbaa !9
  %346 = load i64, ptr %0, align 8, !tbaa !5
  %.not300 = icmp eq i64 %346, 0
  br i1 %.not300, label %356, label %347

347:                                              ; preds = %312
  %348 = mul nsw i64 %337, %39
  %349 = getelementptr float, ptr %41, i64 %348
  %350 = getelementptr i8, ptr %349, i64 4
  %351 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull %1, ptr noundef nonnull @c__3, ptr noundef nonnull %20, ptr noundef nonnull %30, ptr noundef %350, ptr noundef nonnull %5, ptr noundef %9) #4
  %352 = mul nsw i64 %55, %39
  %353 = getelementptr float, ptr %41, i64 %352
  %354 = getelementptr i8, ptr %353, i64 4
  %355 = call i32 @slarfx_(ptr noundef nonnull @.str.5, ptr noundef nonnull %1, ptr noundef nonnull @c__3, ptr noundef nonnull %21, ptr noundef nonnull %31, ptr noundef %354, ptr noundef nonnull %5, ptr noundef %9) #4
  br label %356

356:                                              ; preds = %312, %347, %228, %251, %171, %194
  %357 = load i64, ptr %8, align 8, !tbaa !5
  %358 = icmp eq i64 %357, 2
  br i1 %358, label %359, label %404

359:                                              ; preds = %356
  %360 = load i64, ptr %6, align 8, !tbaa !5
  %361 = mul nsw i64 %360, %36
  %362 = getelementptr float, ptr %38, i64 %360
  %363 = getelementptr float, ptr %362, i64 %361
  %364 = load i64, ptr %17, align 8, !tbaa !5
  %365 = mul nsw i64 %364, %36
  %366 = getelementptr float, ptr %362, i64 %365
  %367 = getelementptr float, ptr %38, i64 %364
  %368 = getelementptr float, ptr %367, i64 %361
  %369 = getelementptr float, ptr %367, i64 %365
  %370 = call i32 @slanv2_(ptr noundef %363, ptr noundef %366, ptr noundef %368, ptr noundef %369, ptr noundef nonnull %27, ptr noundef nonnull %25, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  %371 = load i64, ptr %1, align 8, !tbaa !5
  %372 = load i64, ptr %6, align 8, !tbaa !5
  %373 = xor i64 %372, -1
  %374 = add i64 %371, %373
  store i64 %374, ptr %12, align 8, !tbaa !5
  %375 = add nsw i64 %372, 2
  %376 = mul nsw i64 %375, %36
  %377 = getelementptr float, ptr %38, i64 %372
  %378 = getelementptr float, ptr %377, i64 %376
  %379 = load i64, ptr %17, align 8, !tbaa !5
  %380 = getelementptr float, ptr %38, i64 %379
  %381 = getelementptr float, ptr %380, i64 %376
  %382 = call i32 @f2c_srot(ptr noundef nonnull %12, ptr noundef %378, ptr noundef nonnull %3, ptr noundef %381, ptr noundef nonnull %3, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  %383 = load i64, ptr %6, align 8, !tbaa !5
  %384 = add nsw i64 %383, -1
  store i64 %384, ptr %12, align 8, !tbaa !5
  %385 = mul nsw i64 %383, %36
  %386 = getelementptr float, ptr %38, i64 %385
  %387 = getelementptr i8, ptr %386, i64 4
  %388 = load i64, ptr %17, align 8, !tbaa !5
  %389 = mul nsw i64 %388, %36
  %390 = getelementptr float, ptr %38, i64 %389
  %391 = getelementptr i8, ptr %390, i64 4
  %392 = call i32 @f2c_srot(ptr noundef nonnull %12, ptr noundef %387, ptr noundef nonnull @c__1, ptr noundef %391, ptr noundef nonnull @c__1, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  %393 = load i64, ptr %0, align 8, !tbaa !5
  %.not302 = icmp eq i64 %393, 0
  br i1 %.not302, label %404, label %394

394:                                              ; preds = %359
  %395 = load i64, ptr %6, align 8, !tbaa !5
  %396 = mul nsw i64 %395, %39
  %397 = getelementptr float, ptr %41, i64 %396
  %398 = getelementptr i8, ptr %397, i64 4
  %399 = load i64, ptr %17, align 8, !tbaa !5
  %400 = mul nsw i64 %399, %39
  %401 = getelementptr float, ptr %41, i64 %400
  %402 = getelementptr i8, ptr %401, i64 4
  %403 = call i32 @f2c_srot(ptr noundef nonnull %1, ptr noundef %398, ptr noundef nonnull @c__1, ptr noundef %402, ptr noundef nonnull @c__1, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  br label %404

404:                                              ; preds = %359, %394, %356
  %405 = load i64, ptr %7, align 8, !tbaa !5
  %406 = icmp eq i64 %405, 2
  br i1 %406, label %407, label %457

407:                                              ; preds = %404
  %408 = load i64, ptr %6, align 8, !tbaa !5
  %409 = load i64, ptr %8, align 8, !tbaa !5
  %410 = add nsw i64 %409, %408
  store i64 %410, ptr %18, align 8, !tbaa !5
  %411 = add nsw i64 %410, 1
  store i64 %411, ptr %19, align 8, !tbaa !5
  %412 = mul nsw i64 %410, %36
  %413 = getelementptr float, ptr %38, i64 %410
  %414 = getelementptr float, ptr %413, i64 %412
  %415 = mul nsw i64 %411, %36
  %416 = getelementptr float, ptr %413, i64 %415
  %417 = getelementptr float, ptr %38, i64 %411
  %418 = getelementptr float, ptr %417, i64 %412
  %419 = getelementptr float, ptr %417, i64 %415
  %420 = call i32 @slanv2_(ptr noundef %414, ptr noundef %416, ptr noundef %418, ptr noundef %419, ptr noundef nonnull %27, ptr noundef nonnull %25, ptr noundef nonnull %28, ptr noundef nonnull %26, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  %421 = load i64, ptr %18, align 8, !tbaa !5
  %422 = add nsw i64 %421, 2
  %423 = load i64, ptr %1, align 8, !tbaa !5
  %.not303 = icmp sgt i64 %422, %423
  br i1 %.not303, label %434, label %424

424:                                              ; preds = %407
  %425 = xor i64 %421, -1
  %426 = add i64 %423, %425
  store i64 %426, ptr %12, align 8, !tbaa !5
  %427 = mul nsw i64 %422, %36
  %428 = getelementptr float, ptr %38, i64 %421
  %429 = getelementptr float, ptr %428, i64 %427
  %430 = load i64, ptr %19, align 8, !tbaa !5
  %431 = getelementptr float, ptr %38, i64 %430
  %432 = getelementptr float, ptr %431, i64 %427
  %433 = call i32 @f2c_srot(ptr noundef nonnull %12, ptr noundef %429, ptr noundef nonnull %3, ptr noundef %432, ptr noundef nonnull %3, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  %.pre = load i64, ptr %18, align 8, !tbaa !5
  br label %434

434:                                              ; preds = %424, %407
  %435 = phi i64 [ %.pre, %424 ], [ %421, %407 ]
  %436 = add nsw i64 %435, -1
  store i64 %436, ptr %12, align 8, !tbaa !5
  %437 = mul nsw i64 %435, %36
  %438 = getelementptr float, ptr %38, i64 %437
  %439 = getelementptr i8, ptr %438, i64 4
  %440 = load i64, ptr %19, align 8, !tbaa !5
  %441 = mul nsw i64 %440, %36
  %442 = getelementptr float, ptr %38, i64 %441
  %443 = getelementptr i8, ptr %442, i64 4
  %444 = call i32 @f2c_srot(ptr noundef nonnull %12, ptr noundef %439, ptr noundef nonnull @c__1, ptr noundef %443, ptr noundef nonnull @c__1, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  %445 = load i64, ptr %0, align 8, !tbaa !5
  %.not304 = icmp eq i64 %445, 0
  br i1 %.not304, label %457, label %446

446:                                              ; preds = %434
  %447 = load i64, ptr %18, align 8, !tbaa !5
  %448 = mul nsw i64 %447, %39
  %449 = getelementptr float, ptr %41, i64 %448
  %450 = getelementptr i8, ptr %449, i64 4
  %451 = load i64, ptr %19, align 8, !tbaa !5
  %452 = mul nsw i64 %451, %39
  %453 = getelementptr float, ptr %41, i64 %452
  %454 = getelementptr i8, ptr %453, i64 4
  %455 = call i32 @f2c_srot(ptr noundef nonnull %1, ptr noundef %450, ptr noundef nonnull @c__1, ptr noundef %454, ptr noundef nonnull @c__1, ptr noundef nonnull %23, ptr noundef nonnull %24) #4
  br label %457

456:                                              ; preds = %256, %199, %136
  store i64 1, ptr %10, align 8, !tbaa !5
  br label %457

457:                                              ; preds = %97, %84, %434, %446, %404, %50, %11, %44, %47, %456
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #4
  ret i32 0
}

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

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

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

declare i32 @slarfx_(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 speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #3

declare i32 @slanv2_(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 nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass