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

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

@.str = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [9 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_b6 = external hidden global float, align 4
@c_b8 = external hidden global float, align 4

; Function Attrs: nounwind uwtable
define dso_local i32 @sla_gbrfsx_extended__(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr noundef %24, ptr noundef %25, ptr noundef %26, ptr noundef %27, ptr noundef %28, ptr noundef %29, ptr noundef %30) #0 {
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = alloca ptr, align 8
  %51 = alloca ptr, align 8
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca ptr, align 8
  %62 = alloca ptr, align 8
  %63 = alloca ptr, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = alloca i64, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = alloca i64, align 8
  %77 = alloca i64, align 8
  %78 = alloca i64, align 8
  %79 = alloca float, align 4
  %80 = alloca float, align 4
  %81 = alloca [1 x i8], align 1
  %82 = alloca float, align 4
  %83 = alloca float, align 4
  %84 = alloca i64, align 8
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca float, align 4
  %89 = alloca float, align 4
  %90 = alloca float, align 4
  %91 = alloca float, align 4
  %92 = alloca float, align 4
  %93 = alloca i64, align 8
  %94 = alloca float, align 4
  %95 = alloca float, align 4
  %96 = alloca float, align 4
  %97 = alloca float, align 4
  %98 = alloca float, align 4
  %99 = alloca float, align 4
  %100 = alloca i64, align 8
  %101 = alloca float, align 4
  %102 = alloca float, align 4
  %103 = alloca [1 x i8], align 1
  %104 = alloca float, align 4
  %105 = alloca float, align 4
  %106 = alloca float, align 4
  %107 = alloca float, align 4
  %108 = alloca i64, align 8
  %109 = alloca i64, align 8
  %110 = alloca i32, align 4
  store ptr %0, ptr %33, align 8, !tbaa !5
  store ptr %1, ptr %34, align 8, !tbaa !5
  store ptr %2, ptr %35, align 8, !tbaa !5
  store ptr %3, ptr %36, align 8, !tbaa !5
  store ptr %4, ptr %37, align 8, !tbaa !5
  store ptr %5, ptr %38, align 8, !tbaa !5
  store ptr %6, ptr %39, align 8, !tbaa !5
  store ptr %7, ptr %40, align 8, !tbaa !5
  store ptr %8, ptr %41, align 8, !tbaa !5
  store ptr %9, ptr %42, align 8, !tbaa !5
  store ptr %10, ptr %43, align 8, !tbaa !5
  store ptr %11, ptr %44, align 8, !tbaa !5
  store ptr %12, ptr %45, align 8, !tbaa !5
  store ptr %13, ptr %46, align 8, !tbaa !5
  store ptr %14, ptr %47, align 8, !tbaa !5
  store ptr %15, ptr %48, align 8, !tbaa !5
  store ptr %16, ptr %49, align 8, !tbaa !5
  store ptr %17, ptr %50, align 8, !tbaa !5
  store ptr %18, ptr %51, align 8, !tbaa !5
  store ptr %19, ptr %52, align 8, !tbaa !5
  store ptr %20, ptr %53, align 8, !tbaa !5
  store ptr %21, ptr %54, align 8, !tbaa !5
  store ptr %22, ptr %55, align 8, !tbaa !5
  store ptr %23, ptr %56, align 8, !tbaa !5
  store ptr %24, ptr %57, align 8, !tbaa !5
  store ptr %25, ptr %58, align 8, !tbaa !5
  store ptr %26, ptr %59, align 8, !tbaa !5
  store ptr %27, ptr %60, align 8, !tbaa !5
  store ptr %28, ptr %61, align 8, !tbaa !5
  store ptr %29, ptr %62, align 8, !tbaa !5
  store ptr %30, ptr %63, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #3
  %111 = load ptr, ptr %38, align 8, !tbaa !5
  %112 = load i64, ptr %111, align 8, !tbaa !9
  store i64 %112, ptr %74, align 8, !tbaa !9
  %113 = load i64, ptr %74, align 8, !tbaa !9
  %114 = add nsw i64 1, %113
  store i64 %114, ptr %75, align 8, !tbaa !9
  %115 = load i64, ptr %75, align 8, !tbaa !9
  %116 = load ptr, ptr %53, align 8, !tbaa !5
  %117 = sub i64 0, %115
  %118 = getelementptr inbounds float, ptr %116, i64 %117
  store ptr %118, ptr %53, align 8, !tbaa !5
  %119 = load ptr, ptr %38, align 8, !tbaa !5
  %120 = load i64, ptr %119, align 8, !tbaa !9
  store i64 %120, ptr %72, align 8, !tbaa !9
  %121 = load i64, ptr %72, align 8, !tbaa !9
  %122 = add nsw i64 1, %121
  store i64 %122, ptr %73, align 8, !tbaa !9
  %123 = load i64, ptr %73, align 8, !tbaa !9
  %124 = load ptr, ptr %52, align 8, !tbaa !5
  %125 = sub i64 0, %123
  %126 = getelementptr inbounds float, ptr %124, i64 %125
  store ptr %126, ptr %52, align 8, !tbaa !5
  %127 = load ptr, ptr %40, align 8, !tbaa !5
  %128 = load i64, ptr %127, align 8, !tbaa !9
  store i64 %128, ptr %64, align 8, !tbaa !9
  %129 = load i64, ptr %64, align 8, !tbaa !9
  %130 = add nsw i64 1, %129
  store i64 %130, ptr %65, align 8, !tbaa !9
  %131 = load i64, ptr %65, align 8, !tbaa !9
  %132 = load ptr, ptr %39, align 8, !tbaa !5
  %133 = sub i64 0, %131
  %134 = getelementptr inbounds float, ptr %132, i64 %133
  store ptr %134, ptr %39, align 8, !tbaa !5
  %135 = load ptr, ptr %42, align 8, !tbaa !5
  %136 = load i64, ptr %135, align 8, !tbaa !9
  store i64 %136, ptr %66, align 8, !tbaa !9
  %137 = load i64, ptr %66, align 8, !tbaa !9
  %138 = add nsw i64 1, %137
  store i64 %138, ptr %67, align 8, !tbaa !9
  %139 = load i64, ptr %67, align 8, !tbaa !9
  %140 = load ptr, ptr %41, align 8, !tbaa !5
  %141 = sub i64 0, %139
  %142 = getelementptr inbounds float, ptr %140, i64 %141
  store ptr %142, ptr %41, align 8, !tbaa !5
  %143 = load ptr, ptr %43, align 8, !tbaa !5
  %144 = getelementptr inbounds i64, ptr %143, i32 -1
  store ptr %144, ptr %43, align 8, !tbaa !5
  %145 = load ptr, ptr %45, align 8, !tbaa !5
  %146 = getelementptr inbounds float, ptr %145, i32 -1
  store ptr %146, ptr %45, align 8, !tbaa !5
  %147 = load ptr, ptr %47, align 8, !tbaa !5
  %148 = load i64, ptr %147, align 8, !tbaa !9
  store i64 %148, ptr %68, align 8, !tbaa !9
  %149 = load i64, ptr %68, align 8, !tbaa !9
  %150 = add nsw i64 1, %149
  store i64 %150, ptr %69, align 8, !tbaa !9
  %151 = load i64, ptr %69, align 8, !tbaa !9
  %152 = load ptr, ptr %46, align 8, !tbaa !5
  %153 = sub i64 0, %151
  %154 = getelementptr inbounds float, ptr %152, i64 %153
  store ptr %154, ptr %46, align 8, !tbaa !5
  %155 = load ptr, ptr %49, align 8, !tbaa !5
  %156 = load i64, ptr %155, align 8, !tbaa !9
  store i64 %156, ptr %70, align 8, !tbaa !9
  %157 = load i64, ptr %70, align 8, !tbaa !9
  %158 = add nsw i64 1, %157
  store i64 %158, ptr %71, align 8, !tbaa !9
  %159 = load i64, ptr %71, align 8, !tbaa !9
  %160 = load ptr, ptr %48, align 8, !tbaa !5
  %161 = sub i64 0, %159
  %162 = getelementptr inbounds float, ptr %160, i64 %161
  store ptr %162, ptr %48, align 8, !tbaa !5
  %163 = load ptr, ptr %50, align 8, !tbaa !5
  %164 = getelementptr inbounds float, ptr %163, i32 -1
  store ptr %164, ptr %50, align 8, !tbaa !5
  %165 = load ptr, ptr %54, align 8, !tbaa !5
  %166 = getelementptr inbounds float, ptr %165, i32 -1
  store ptr %166, ptr %54, align 8, !tbaa !5
  %167 = load ptr, ptr %55, align 8, !tbaa !5
  %168 = getelementptr inbounds float, ptr %167, i32 -1
  store ptr %168, ptr %55, align 8, !tbaa !5
  %169 = load ptr, ptr %56, align 8, !tbaa !5
  %170 = getelementptr inbounds float, ptr %169, i32 -1
  store ptr %170, ptr %56, align 8, !tbaa !5
  %171 = load ptr, ptr %57, align 8, !tbaa !5
  %172 = getelementptr inbounds float, ptr %171, i32 -1
  store ptr %172, ptr %57, align 8, !tbaa !5
  %173 = load ptr, ptr %63, align 8, !tbaa !5
  %174 = load i64, ptr %173, align 8, !tbaa !9
  %175 = icmp ne i64 %174, 0
  br i1 %175, label %176, label %177

176:                                              ; preds = %31
  store i32 0, ptr %32, align 4
  store i32 1, ptr %110, align 4
  br label %832

177:                                              ; preds = %31
  %178 = getelementptr inbounds [1 x i8], ptr %81, i64 0, i64 0
  %179 = load ptr, ptr %34, align 8, !tbaa !5
  call void @chla_transtype__(ptr noundef %178, i64 noundef 1, ptr noundef %179)
  %180 = getelementptr inbounds [1 x i8], ptr %81, i64 0, i64 0
  %181 = load i8, ptr %180, align 1, !tbaa !11
  %182 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  store i8 %181, ptr %182, align 1, !tbaa !11
  %183 = call double @slamch_(ptr noundef @.str)
  %184 = fptrunc double %183 to float
  store float %184, ptr %95, align 4, !tbaa !12
  %185 = call double @slamch_(ptr noundef @.str.1)
  %186 = fptrunc double %185 to float
  store float %186, ptr %107, align 4, !tbaa !12
  %187 = load float, ptr %107, align 4, !tbaa !12
  %188 = load float, ptr %107, align 4, !tbaa !12
  %189 = fmul float %188, %187
  store float %189, ptr %107, align 4, !tbaa !12
  %190 = load ptr, ptr %35, align 8, !tbaa !5
  %191 = load i64, ptr %190, align 8, !tbaa !9
  %192 = sitofp i64 %191 to float
  %193 = load float, ptr %95, align 4, !tbaa !12
  %194 = fmul float %192, %193
  store float %194, ptr %96, align 4, !tbaa !12
  %195 = load ptr, ptr %36, align 8, !tbaa !5
  %196 = load i64, ptr %195, align 8, !tbaa !9
  %197 = load ptr, ptr %37, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !9
  %199 = add nsw i64 %196, %198
  %200 = add nsw i64 %199, 1
  store i64 %200, ptr %86, align 8, !tbaa !9
  %201 = load ptr, ptr %38, align 8, !tbaa !5
  %202 = load i64, ptr %201, align 8, !tbaa !9
  store i64 %202, ptr %76, align 8, !tbaa !9
  store i64 1, ptr %85, align 8, !tbaa !9
  br label %203

203:                                              ; preds = %828, %177
  %204 = load i64, ptr %85, align 8, !tbaa !9
  %205 = load i64, ptr %76, align 8, !tbaa !9
  %206 = icmp sle i64 %204, %205
  br i1 %206, label %207, label %831

207:                                              ; preds = %203
  store i64 1, ptr %100, align 8, !tbaa !9
  %208 = load i64, ptr %100, align 8, !tbaa !9
  %209 = icmp eq i64 %208, 2
  br i1 %209, label %210, label %225

210:                                              ; preds = %207
  %211 = load ptr, ptr %35, align 8, !tbaa !5
  %212 = load i64, ptr %211, align 8, !tbaa !9
  store i64 %212, ptr %77, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %213

213:                                              ; preds = %221, %210
  %214 = load i64, ptr %84, align 8, !tbaa !9
  %215 = load i64, ptr %77, align 8, !tbaa !9
  %216 = icmp sle i64 %214, %215
  br i1 %216, label %217, label %224

217:                                              ; preds = %213
  %218 = load ptr, ptr %57, align 8, !tbaa !5
  %219 = load i64, ptr %84, align 8, !tbaa !9
  %220 = getelementptr inbounds float, ptr %218, i64 %219
  store float 0.000000e+00, ptr %220, align 4, !tbaa !12
  br label %221

221:                                              ; preds = %217
  %222 = load i64, ptr %84, align 8, !tbaa !9
  %223 = add nsw i64 %222, 1
  store i64 %223, ptr %84, align 8, !tbaa !9
  br label %213, !llvm.loop !14

224:                                              ; preds = %213
  br label %225

225:                                              ; preds = %224, %207
  store float 0.000000e+00, ptr %101, align 4, !tbaa !12
  store float 0.000000e+00, ptr %82, align 4, !tbaa !12
  store float 0.000000e+00, ptr %102, align 4, !tbaa !12
  store float 0.000000e+00, ptr %83, align 4, !tbaa !12
  %226 = load float, ptr %107, align 4, !tbaa !12
  store float %226, ptr %90, align 4, !tbaa !12
  %227 = load float, ptr %107, align 4, !tbaa !12
  store float %227, ptr %91, align 4, !tbaa !12
  %228 = load float, ptr %107, align 4, !tbaa !12
  store float %228, ptr %92, align 4, !tbaa !12
  %229 = load float, ptr %107, align 4, !tbaa !12
  store float %229, ptr %88, align 4, !tbaa !12
  %230 = load float, ptr %107, align 4, !tbaa !12
  store float %230, ptr %98, align 4, !tbaa !12
  %231 = load float, ptr %107, align 4, !tbaa !12
  store float %231, ptr %97, align 4, !tbaa !12
  store i64 1, ptr %108, align 8, !tbaa !9
  store i64 0, ptr %109, align 8, !tbaa !9
  store i64 0, ptr %87, align 8, !tbaa !9
  %232 = load ptr, ptr %59, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  store i64 %233, ptr %77, align 8, !tbaa !9
  store i64 1, ptr %93, align 8, !tbaa !9
  br label %234

234:                                              ; preds = %694, %225
  %235 = load i64, ptr %93, align 8, !tbaa !9
  %236 = load i64, ptr %77, align 8, !tbaa !9
  %237 = icmp sle i64 %235, %236
  br i1 %237, label %238, label %697

238:                                              ; preds = %234
  %239 = load ptr, ptr %35, align 8, !tbaa !5
  %240 = load ptr, ptr %46, align 8, !tbaa !5
  %241 = load i64, ptr %85, align 8, !tbaa !9
  %242 = load i64, ptr %68, align 8, !tbaa !9
  %243 = mul nsw i64 %241, %242
  %244 = add nsw i64 %243, 1
  %245 = getelementptr inbounds float, ptr %240, i64 %244
  %246 = load ptr, ptr %54, align 8, !tbaa !5
  %247 = getelementptr inbounds float, ptr %246, i64 1
  %248 = call i32 @f2c_scopy(ptr noundef %239, ptr noundef %245, ptr noundef @c__1, ptr noundef %247, ptr noundef @c__1)
  %249 = load i64, ptr %100, align 8, !tbaa !9
  %250 = icmp eq i64 %249, 0
  br i1 %250, label %251, label %269

251:                                              ; preds = %238
  %252 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %253 = load ptr, ptr %35, align 8, !tbaa !5
  %254 = load ptr, ptr %36, align 8, !tbaa !5
  %255 = load ptr, ptr %37, align 8, !tbaa !5
  %256 = load ptr, ptr %39, align 8, !tbaa !5
  %257 = load i64, ptr %65, align 8, !tbaa !9
  %258 = getelementptr inbounds float, ptr %256, i64 %257
  %259 = load ptr, ptr %40, align 8, !tbaa !5
  %260 = load ptr, ptr %48, align 8, !tbaa !5
  %261 = load i64, ptr %85, align 8, !tbaa !9
  %262 = load i64, ptr %70, align 8, !tbaa !9
  %263 = mul nsw i64 %261, %262
  %264 = add nsw i64 %263, 1
  %265 = getelementptr inbounds float, ptr %260, i64 %264
  %266 = load ptr, ptr %54, align 8, !tbaa !5
  %267 = getelementptr inbounds float, ptr %266, i64 1
  %268 = call i32 @f2c_sgbmv(ptr noundef %252, ptr noundef %86, ptr noundef %253, ptr noundef %254, ptr noundef %255, ptr noundef @c_b6, ptr noundef %258, ptr noundef %259, ptr noundef %265, ptr noundef @c__1, ptr noundef @c_b8, ptr noundef %267, ptr noundef @c__1)
  br label %315

269:                                              ; preds = %238
  %270 = load i64, ptr %100, align 8, !tbaa !9
  %271 = icmp eq i64 %270, 1
  br i1 %271, label %272, label %292

272:                                              ; preds = %269
  %273 = load ptr, ptr %34, align 8, !tbaa !5
  %274 = load ptr, ptr %35, align 8, !tbaa !5
  %275 = load ptr, ptr %35, align 8, !tbaa !5
  %276 = load ptr, ptr %36, align 8, !tbaa !5
  %277 = load ptr, ptr %37, align 8, !tbaa !5
  %278 = load ptr, ptr %39, align 8, !tbaa !5
  %279 = load i64, ptr %65, align 8, !tbaa !9
  %280 = getelementptr inbounds float, ptr %278, i64 %279
  %281 = load ptr, ptr %40, align 8, !tbaa !5
  %282 = load ptr, ptr %48, align 8, !tbaa !5
  %283 = load i64, ptr %85, align 8, !tbaa !9
  %284 = load i64, ptr %70, align 8, !tbaa !9
  %285 = mul nsw i64 %283, %284
  %286 = add nsw i64 %285, 1
  %287 = getelementptr inbounds float, ptr %282, i64 %286
  %288 = load ptr, ptr %54, align 8, !tbaa !5
  %289 = getelementptr inbounds float, ptr %288, i64 1
  %290 = load ptr, ptr %33, align 8, !tbaa !5
  %291 = call i32 @blas_sgbmv_x__(ptr noundef %273, ptr noundef %274, ptr noundef %275, ptr noundef %276, ptr noundef %277, ptr noundef @c_b6, ptr noundef %280, ptr noundef %281, ptr noundef %287, ptr noundef @c__1, ptr noundef @c_b8, ptr noundef %289, ptr noundef @c__1, ptr noundef %290)
  br label %314

292:                                              ; preds = %269
  %293 = load ptr, ptr %34, align 8, !tbaa !5
  %294 = load ptr, ptr %35, align 8, !tbaa !5
  %295 = load ptr, ptr %35, align 8, !tbaa !5
  %296 = load ptr, ptr %36, align 8, !tbaa !5
  %297 = load ptr, ptr %37, align 8, !tbaa !5
  %298 = load ptr, ptr %39, align 8, !tbaa !5
  %299 = load i64, ptr %65, align 8, !tbaa !9
  %300 = getelementptr inbounds float, ptr %298, i64 %299
  %301 = load ptr, ptr %40, align 8, !tbaa !5
  %302 = load ptr, ptr %48, align 8, !tbaa !5
  %303 = load i64, ptr %85, align 8, !tbaa !9
  %304 = load i64, ptr %70, align 8, !tbaa !9
  %305 = mul nsw i64 %303, %304
  %306 = add nsw i64 %305, 1
  %307 = getelementptr inbounds float, ptr %302, i64 %306
  %308 = load ptr, ptr %57, align 8, !tbaa !5
  %309 = getelementptr inbounds float, ptr %308, i64 1
  %310 = load ptr, ptr %54, align 8, !tbaa !5
  %311 = getelementptr inbounds float, ptr %310, i64 1
  %312 = load ptr, ptr %33, align 8, !tbaa !5
  %313 = call i32 @blas_sgbmv2_x__(ptr noundef %293, ptr noundef %294, ptr noundef %295, ptr noundef %296, ptr noundef %297, ptr noundef @c_b6, ptr noundef %300, ptr noundef %301, ptr noundef %307, ptr noundef %309, ptr noundef @c__1, ptr noundef @c_b8, ptr noundef %311, ptr noundef @c__1, ptr noundef %312)
  br label %314

314:                                              ; preds = %292, %272
  br label %315

315:                                              ; preds = %314, %251
  %316 = load ptr, ptr %35, align 8, !tbaa !5
  %317 = load ptr, ptr %54, align 8, !tbaa !5
  %318 = getelementptr inbounds float, ptr %317, i64 1
  %319 = load ptr, ptr %56, align 8, !tbaa !5
  %320 = getelementptr inbounds float, ptr %319, i64 1
  %321 = call i32 @f2c_scopy(ptr noundef %316, ptr noundef %318, ptr noundef @c__1, ptr noundef %320, ptr noundef @c__1)
  %322 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %323 = load ptr, ptr %35, align 8, !tbaa !5
  %324 = load ptr, ptr %36, align 8, !tbaa !5
  %325 = load ptr, ptr %37, align 8, !tbaa !5
  %326 = load ptr, ptr %41, align 8, !tbaa !5
  %327 = load i64, ptr %67, align 8, !tbaa !9
  %328 = getelementptr inbounds float, ptr %326, i64 %327
  %329 = load ptr, ptr %42, align 8, !tbaa !5
  %330 = load ptr, ptr %43, align 8, !tbaa !5
  %331 = getelementptr inbounds i64, ptr %330, i64 1
  %332 = load ptr, ptr %56, align 8, !tbaa !5
  %333 = getelementptr inbounds float, ptr %332, i64 1
  %334 = load ptr, ptr %35, align 8, !tbaa !5
  %335 = load ptr, ptr %63, align 8, !tbaa !5
  %336 = call i32 @sgbtrs_(ptr noundef %322, ptr noundef %323, ptr noundef %324, ptr noundef %325, ptr noundef @c__1, ptr noundef %328, ptr noundef %329, ptr noundef %331, ptr noundef %333, ptr noundef %334, ptr noundef %335)
  store float 0.000000e+00, ptr %104, align 4, !tbaa !12
  store float 0.000000e+00, ptr %105, align 4, !tbaa !12
  store float 0.000000e+00, ptr %106, align 4, !tbaa !12
  store float 0.000000e+00, ptr %98, align 4, !tbaa !12
  %337 = load float, ptr %107, align 4, !tbaa !12
  store float %337, ptr %99, align 4, !tbaa !12
  %338 = load ptr, ptr %35, align 8, !tbaa !5
  %339 = load i64, ptr %338, align 8, !tbaa !9
  store i64 %339, ptr %78, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %340

340:                                              ; preds = %480, %315
  %341 = load i64, ptr %84, align 8, !tbaa !9
  %342 = load i64, ptr %78, align 8, !tbaa !9
  %343 = icmp sle i64 %341, %342
  br i1 %343, label %344, label %483

344:                                              ; preds = %340
  %345 = load ptr, ptr %48, align 8, !tbaa !5
  %346 = load i64, ptr %84, align 8, !tbaa !9
  %347 = load i64, ptr %85, align 8, !tbaa !9
  %348 = load i64, ptr %70, align 8, !tbaa !9
  %349 = mul nsw i64 %347, %348
  %350 = add nsw i64 %346, %349
  %351 = getelementptr inbounds float, ptr %345, i64 %350
  %352 = load float, ptr %351, align 4, !tbaa !12
  store float %352, ptr %79, align 4, !tbaa !12
  %353 = load float, ptr %79, align 4, !tbaa !12
  %354 = fcmp oge float %353, 0.000000e+00
  br i1 %354, label %355, label %357

355:                                              ; preds = %344
  %356 = load float, ptr %79, align 4, !tbaa !12
  br label %360

357:                                              ; preds = %344
  %358 = load float, ptr %79, align 4, !tbaa !12
  %359 = fneg float %358
  br label %360

360:                                              ; preds = %357, %355
  %361 = phi float [ %356, %355 ], [ %359, %357 ]
  %362 = fpext float %361 to double
  %363 = fptrunc double %362 to float
  store float %363, ptr %89, align 4, !tbaa !12
  %364 = load ptr, ptr %56, align 8, !tbaa !5
  %365 = load i64, ptr %84, align 8, !tbaa !9
  %366 = getelementptr inbounds float, ptr %364, i64 %365
  %367 = load float, ptr %366, align 4, !tbaa !12
  store float %367, ptr %79, align 4, !tbaa !12
  %368 = load float, ptr %79, align 4, !tbaa !12
  %369 = fcmp oge float %368, 0.000000e+00
  br i1 %369, label %370, label %372

370:                                              ; preds = %360
  %371 = load float, ptr %79, align 4, !tbaa !12
  br label %375

372:                                              ; preds = %360
  %373 = load float, ptr %79, align 4, !tbaa !12
  %374 = fneg float %373
  br label %375

375:                                              ; preds = %372, %370
  %376 = phi float [ %371, %370 ], [ %374, %372 ]
  %377 = fpext float %376 to double
  %378 = fptrunc double %377 to float
  store float %378, ptr %94, align 4, !tbaa !12
  %379 = load float, ptr %89, align 4, !tbaa !12
  %380 = fcmp une float %379, 0.000000e+00
  br i1 %380, label %381, label %397

381:                                              ; preds = %375
  %382 = load float, ptr %98, align 4, !tbaa !12
  store float %382, ptr %79, align 4, !tbaa !12
  %383 = load float, ptr %94, align 4, !tbaa !12
  %384 = load float, ptr %89, align 4, !tbaa !12
  %385 = fdiv float %383, %384
  store float %385, ptr %80, align 4, !tbaa !12
  %386 = load float, ptr %79, align 4, !tbaa !12
  %387 = load float, ptr %80, align 4, !tbaa !12
  %388 = fcmp oge float %386, %387
  br i1 %388, label %389, label %391

389:                                              ; preds = %381
  %390 = load float, ptr %79, align 4, !tbaa !12
  br label %393

391:                                              ; preds = %381
  %392 = load float, ptr %80, align 4, !tbaa !12
  br label %393

393:                                              ; preds = %391, %389
  %394 = phi float [ %390, %389 ], [ %392, %391 ]
  %395 = fpext float %394 to double
  %396 = fptrunc double %395 to float
  store float %396, ptr %98, align 4, !tbaa !12
  br label %403

397:                                              ; preds = %375
  %398 = load float, ptr %94, align 4, !tbaa !12
  %399 = fcmp une float %398, 0.000000e+00
  br i1 %399, label %400, label %402

400:                                              ; preds = %397
  %401 = load float, ptr %107, align 4, !tbaa !12
  store float %401, ptr %98, align 4, !tbaa !12
  br label %402

402:                                              ; preds = %400, %397
  br label %403

403:                                              ; preds = %402, %393
  %404 = load float, ptr %99, align 4, !tbaa !12
  %405 = load float, ptr %89, align 4, !tbaa !12
  %406 = fcmp ole float %404, %405
  br i1 %406, label %407, label %409

407:                                              ; preds = %403
  %408 = load float, ptr %99, align 4, !tbaa !12
  br label %411

409:                                              ; preds = %403
  %410 = load float, ptr %89, align 4, !tbaa !12
  br label %411

411:                                              ; preds = %409, %407
  %412 = phi float [ %408, %407 ], [ %410, %409 ]
  %413 = fpext float %412 to double
  %414 = fptrunc double %413 to float
  store float %414, ptr %99, align 4, !tbaa !12
  %415 = load float, ptr %105, align 4, !tbaa !12
  %416 = load float, ptr %89, align 4, !tbaa !12
  %417 = fcmp oge float %415, %416
  br i1 %417, label %418, label %420

418:                                              ; preds = %411
  %419 = load float, ptr %105, align 4, !tbaa !12
  br label %422

420:                                              ; preds = %411
  %421 = load float, ptr %89, align 4, !tbaa !12
  br label %422

422:                                              ; preds = %420, %418
  %423 = phi float [ %419, %418 ], [ %421, %420 ]
  %424 = fpext float %423 to double
  %425 = fptrunc double %424 to float
  store float %425, ptr %105, align 4, !tbaa !12
  %426 = load ptr, ptr %44, align 8, !tbaa !5
  %427 = load i64, ptr %426, align 8, !tbaa !9
  %428 = icmp ne i64 %427, 0
  br i1 %428, label %429, label %466

429:                                              ; preds = %422
  %430 = load float, ptr %104, align 4, !tbaa !12
  store float %430, ptr %79, align 4, !tbaa !12
  %431 = load float, ptr %89, align 4, !tbaa !12
  %432 = load ptr, ptr %45, align 8, !tbaa !5
  %433 = load i64, ptr %84, align 8, !tbaa !9
  %434 = getelementptr inbounds float, ptr %432, i64 %433
  %435 = load float, ptr %434, align 4, !tbaa !12
  %436 = fmul float %431, %435
  store float %436, ptr %80, align 4, !tbaa !12
  %437 = load float, ptr %79, align 4, !tbaa !12
  %438 = load float, ptr %80, align 4, !tbaa !12
  %439 = fcmp oge float %437, %438
  br i1 %439, label %440, label %442

440:                                              ; preds = %429
  %441 = load float, ptr %79, align 4, !tbaa !12
  br label %444

442:                                              ; preds = %429
  %443 = load float, ptr %80, align 4, !tbaa !12
  br label %444

444:                                              ; preds = %442, %440
  %445 = phi float [ %441, %440 ], [ %443, %442 ]
  %446 = fpext float %445 to double
  %447 = fptrunc double %446 to float
  store float %447, ptr %104, align 4, !tbaa !12
  %448 = load float, ptr %106, align 4, !tbaa !12
  store float %448, ptr %79, align 4, !tbaa !12
  %449 = load float, ptr %94, align 4, !tbaa !12
  %450 = load ptr, ptr %45, align 8, !tbaa !5
  %451 = load i64, ptr %84, align 8, !tbaa !9
  %452 = getelementptr inbounds float, ptr %450, i64 %451
  %453 = load float, ptr %452, align 4, !tbaa !12
  %454 = fmul float %449, %453
  store float %454, ptr %80, align 4, !tbaa !12
  %455 = load float, ptr %79, align 4, !tbaa !12
  %456 = load float, ptr %80, align 4, !tbaa !12
  %457 = fcmp oge float %455, %456
  br i1 %457, label %458, label %460

458:                                              ; preds = %444
  %459 = load float, ptr %79, align 4, !tbaa !12
  br label %462

460:                                              ; preds = %444
  %461 = load float, ptr %80, align 4, !tbaa !12
  br label %462

462:                                              ; preds = %460, %458
  %463 = phi float [ %459, %458 ], [ %461, %460 ]
  %464 = fpext float %463 to double
  %465 = fptrunc double %464 to float
  store float %465, ptr %106, align 4, !tbaa !12
  br label %479

466:                                              ; preds = %422
  %467 = load float, ptr %105, align 4, !tbaa !12
  store float %467, ptr %104, align 4, !tbaa !12
  %468 = load float, ptr %106, align 4, !tbaa !12
  %469 = load float, ptr %94, align 4, !tbaa !12
  %470 = fcmp oge float %468, %469
  br i1 %470, label %471, label %473

471:                                              ; preds = %466
  %472 = load float, ptr %106, align 4, !tbaa !12
  br label %475

473:                                              ; preds = %466
  %474 = load float, ptr %94, align 4, !tbaa !12
  br label %475

475:                                              ; preds = %473, %471
  %476 = phi float [ %472, %471 ], [ %474, %473 ]
  %477 = fpext float %476 to double
  %478 = fptrunc double %477 to float
  store float %478, ptr %106, align 4, !tbaa !12
  br label %479

479:                                              ; preds = %475, %462
  br label %480

480:                                              ; preds = %479
  %481 = load i64, ptr %84, align 8, !tbaa !9
  %482 = add nsw i64 %481, 1
  store i64 %482, ptr %84, align 8, !tbaa !9
  br label %340, !llvm.loop !16

483:                                              ; preds = %340
  %484 = load float, ptr %104, align 4, !tbaa !12
  %485 = fcmp une float %484, 0.000000e+00
  br i1 %485, label %486, label %490

486:                                              ; preds = %483
  %487 = load float, ptr %106, align 4, !tbaa !12
  %488 = load float, ptr %104, align 4, !tbaa !12
  %489 = fdiv float %487, %488
  store float %489, ptr %97, align 4, !tbaa !12
  br label %497

490:                                              ; preds = %483
  %491 = load float, ptr %106, align 4, !tbaa !12
  %492 = fcmp oeq float %491, 0.000000e+00
  br i1 %492, label %493, label %494

493:                                              ; preds = %490
  store float 0.000000e+00, ptr %97, align 4, !tbaa !12
  br label %496

494:                                              ; preds = %490
  %495 = load float, ptr %107, align 4, !tbaa !12
  store float %495, ptr %97, align 4, !tbaa !12
  br label %496

496:                                              ; preds = %494, %493
  br label %497

497:                                              ; preds = %496, %486
  %498 = load float, ptr %106, align 4, !tbaa !12
  %499 = load float, ptr %92, align 4, !tbaa !12
  %500 = fdiv float %498, %499
  store float %500, ptr %101, align 4, !tbaa !12
  %501 = load float, ptr %98, align 4, !tbaa !12
  %502 = load float, ptr %88, align 4, !tbaa !12
  %503 = fdiv float %501, %502
  store float %503, ptr %102, align 4, !tbaa !12
  %504 = load ptr, ptr %62, align 8, !tbaa !5
  %505 = load i64, ptr %504, align 8, !tbaa !9
  %506 = icmp ne i64 %505, 0
  br i1 %506, label %520, label %507

507:                                              ; preds = %497
  %508 = load float, ptr %99, align 4, !tbaa !12
  %509 = load ptr, ptr %58, align 8, !tbaa !5
  %510 = load float, ptr %509, align 4, !tbaa !12
  %511 = fmul float %508, %510
  %512 = load float, ptr %96, align 4, !tbaa !12
  %513 = load float, ptr %105, align 4, !tbaa !12
  %514 = fmul float %512, %513
  %515 = fcmp olt float %511, %514
  br i1 %515, label %516, label %520

516:                                              ; preds = %507
  %517 = load i64, ptr %100, align 8, !tbaa !9
  %518 = icmp slt i64 %517, 2
  br i1 %518, label %519, label %520

519:                                              ; preds = %516
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %520

520:                                              ; preds = %519, %516, %507, %497
  %521 = load i64, ptr %108, align 8, !tbaa !9
  %522 = icmp eq i64 %521, 3
  br i1 %522, label %523, label %529

523:                                              ; preds = %520
  %524 = load float, ptr %101, align 4, !tbaa !12
  %525 = load ptr, ptr %60, align 8, !tbaa !5
  %526 = load float, ptr %525, align 4, !tbaa !12
  %527 = fcmp ole float %524, %526
  br i1 %527, label %528, label %529

528:                                              ; preds = %523
  store i64 1, ptr %108, align 8, !tbaa !9
  br label %529

529:                                              ; preds = %528, %523, %520
  %530 = load i64, ptr %108, align 8, !tbaa !9
  %531 = icmp eq i64 %530, 1
  br i1 %531, label %532, label %562

532:                                              ; preds = %529
  %533 = load float, ptr %97, align 4, !tbaa !12
  %534 = load float, ptr %95, align 4, !tbaa !12
  %535 = fcmp ole float %533, %534
  br i1 %535, label %536, label %537

536:                                              ; preds = %532
  store i64 2, ptr %108, align 8, !tbaa !9
  br label %556

537:                                              ; preds = %532
  %538 = load float, ptr %101, align 4, !tbaa !12
  %539 = load ptr, ptr %60, align 8, !tbaa !5
  %540 = load float, ptr %539, align 4, !tbaa !12
  %541 = fcmp ogt float %538, %540
  br i1 %541, label %542, label %548

542:                                              ; preds = %537
  %543 = load i64, ptr %100, align 8, !tbaa !9
  %544 = icmp ne i64 %543, 2
  br i1 %544, label %545, label %546

545:                                              ; preds = %542
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %547

546:                                              ; preds = %542
  store i64 3, ptr %108, align 8, !tbaa !9
  br label %547

547:                                              ; preds = %546, %545
  br label %555

548:                                              ; preds = %537
  %549 = load float, ptr %101, align 4, !tbaa !12
  %550 = load float, ptr %82, align 4, !tbaa !12
  %551 = fcmp ogt float %549, %550
  br i1 %551, label %552, label %554

552:                                              ; preds = %548
  %553 = load float, ptr %101, align 4, !tbaa !12
  store float %553, ptr %82, align 4, !tbaa !12
  br label %554

554:                                              ; preds = %552, %548
  br label %555

555:                                              ; preds = %554, %547
  br label %556

556:                                              ; preds = %555, %536
  %557 = load i64, ptr %108, align 8, !tbaa !9
  %558 = icmp sgt i64 %557, 1
  br i1 %558, label %559, label %561

559:                                              ; preds = %556
  %560 = load float, ptr %97, align 4, !tbaa !12
  store float %560, ptr %90, align 4, !tbaa !12
  br label %561

561:                                              ; preds = %559, %556
  br label %562

562:                                              ; preds = %561, %529
  %563 = load i64, ptr %109, align 8, !tbaa !9
  %564 = icmp eq i64 %563, 0
  br i1 %564, label %565, label %571

565:                                              ; preds = %562
  %566 = load float, ptr %98, align 4, !tbaa !12
  %567 = load ptr, ptr %61, align 8, !tbaa !5
  %568 = load float, ptr %567, align 4, !tbaa !12
  %569 = fcmp ole float %566, %568
  br i1 %569, label %570, label %571

570:                                              ; preds = %565
  store i64 1, ptr %109, align 8, !tbaa !9
  br label %571

571:                                              ; preds = %570, %565, %562
  %572 = load i64, ptr %109, align 8, !tbaa !9
  %573 = icmp eq i64 %572, 3
  br i1 %573, label %574, label %580

574:                                              ; preds = %571
  %575 = load float, ptr %102, align 4, !tbaa !12
  %576 = load ptr, ptr %60, align 8, !tbaa !5
  %577 = load float, ptr %576, align 4, !tbaa !12
  %578 = fcmp ole float %575, %577
  br i1 %578, label %579, label %580

579:                                              ; preds = %574
  store i64 1, ptr %109, align 8, !tbaa !9
  br label %580

580:                                              ; preds = %579, %574, %571
  %581 = load i64, ptr %109, align 8, !tbaa !9
  %582 = icmp eq i64 %581, 1
  br i1 %582, label %583, label %621

583:                                              ; preds = %580
  %584 = load float, ptr %98, align 4, !tbaa !12
  %585 = load float, ptr %95, align 4, !tbaa !12
  %586 = fcmp ole float %584, %585
  br i1 %586, label %587, label %588

587:                                              ; preds = %583
  store i64 2, ptr %109, align 8, !tbaa !9
  br label %615

588:                                              ; preds = %583
  %589 = load float, ptr %98, align 4, !tbaa !12
  %590 = load ptr, ptr %61, align 8, !tbaa !5
  %591 = load float, ptr %590, align 4, !tbaa !12
  %592 = fcmp ogt float %589, %591
  br i1 %592, label %593, label %595

593:                                              ; preds = %588
  store i64 0, ptr %109, align 8, !tbaa !9
  store float 0.000000e+00, ptr %83, align 4, !tbaa !12
  %594 = load float, ptr %107, align 4, !tbaa !12
  store float %594, ptr %91, align 4, !tbaa !12
  br label %614

595:                                              ; preds = %588
  %596 = load float, ptr %102, align 4, !tbaa !12
  %597 = load ptr, ptr %60, align 8, !tbaa !5
  %598 = load float, ptr %597, align 4, !tbaa !12
  %599 = fcmp ogt float %596, %598
  br i1 %599, label %600, label %606

600:                                              ; preds = %595
  %601 = load i64, ptr %100, align 8, !tbaa !9
  %602 = icmp ne i64 %601, 2
  br i1 %602, label %603, label %604

603:                                              ; preds = %600
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %605

604:                                              ; preds = %600
  store i64 3, ptr %109, align 8, !tbaa !9
  br label %605

605:                                              ; preds = %604, %603
  br label %613

606:                                              ; preds = %595
  %607 = load float, ptr %102, align 4, !tbaa !12
  %608 = load float, ptr %83, align 4, !tbaa !12
  %609 = fcmp ogt float %607, %608
  br i1 %609, label %610, label %612

610:                                              ; preds = %606
  %611 = load float, ptr %102, align 4, !tbaa !12
  store float %611, ptr %83, align 4, !tbaa !12
  br label %612

612:                                              ; preds = %610, %606
  br label %613

613:                                              ; preds = %612, %605
  br label %614

614:                                              ; preds = %613, %593
  br label %615

615:                                              ; preds = %614, %587
  %616 = load i64, ptr %109, align 8, !tbaa !9
  %617 = icmp sgt i64 %616, 1
  br i1 %617, label %618, label %620

618:                                              ; preds = %615
  %619 = load float, ptr %98, align 4, !tbaa !12
  store float %619, ptr %91, align 4, !tbaa !12
  br label %620

620:                                              ; preds = %618, %615
  br label %621

621:                                              ; preds = %620, %580
  %622 = load i64, ptr %108, align 8, !tbaa !9
  %623 = icmp ne i64 %622, 1
  br i1 %623, label %624, label %644

624:                                              ; preds = %621
  %625 = load ptr, ptr %62, align 8, !tbaa !5
  %626 = load i64, ptr %625, align 8, !tbaa !9
  %627 = icmp ne i64 %626, 0
  br i1 %627, label %628, label %629

628:                                              ; preds = %624
  br label %698

629:                                              ; preds = %624
  %630 = load i64, ptr %109, align 8, !tbaa !9
  %631 = icmp eq i64 %630, 3
  br i1 %631, label %635, label %632

632:                                              ; preds = %629
  %633 = load i64, ptr %109, align 8, !tbaa !9
  %634 = icmp eq i64 %633, 2
  br i1 %634, label %635, label %636

635:                                              ; preds = %632, %629
  br label %698

636:                                              ; preds = %632
  %637 = load i64, ptr %109, align 8, !tbaa !9
  %638 = icmp eq i64 %637, 0
  br i1 %638, label %639, label %643

639:                                              ; preds = %636
  %640 = load i64, ptr %93, align 8, !tbaa !9
  %641 = icmp sgt i64 %640, 1
  br i1 %641, label %642, label %643

642:                                              ; preds = %639
  br label %698

643:                                              ; preds = %639, %636
  br label %644

644:                                              ; preds = %643, %621
  %645 = load i64, ptr %87, align 8, !tbaa !9
  %646 = icmp ne i64 %645, 0
  br i1 %646, label %647, label %664

647:                                              ; preds = %644
  store i64 0, ptr %87, align 8, !tbaa !9
  %648 = load i64, ptr %100, align 8, !tbaa !9
  %649 = add nsw i64 %648, 1
  store i64 %649, ptr %100, align 8, !tbaa !9
  %650 = load ptr, ptr %35, align 8, !tbaa !5
  %651 = load i64, ptr %650, align 8, !tbaa !9
  store i64 %651, ptr %78, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %652

652:                                              ; preds = %660, %647
  %653 = load i64, ptr %84, align 8, !tbaa !9
  %654 = load i64, ptr %78, align 8, !tbaa !9
  %655 = icmp sle i64 %653, %654
  br i1 %655, label %656, label %663

656:                                              ; preds = %652
  %657 = load ptr, ptr %57, align 8, !tbaa !5
  %658 = load i64, ptr %84, align 8, !tbaa !9
  %659 = getelementptr inbounds float, ptr %657, i64 %658
  store float 0.000000e+00, ptr %659, align 4, !tbaa !12
  br label %660

660:                                              ; preds = %656
  %661 = load i64, ptr %84, align 8, !tbaa !9
  %662 = add nsw i64 %661, 1
  store i64 %662, ptr %84, align 8, !tbaa !9
  br label %652, !llvm.loop !17

663:                                              ; preds = %652
  br label %664

664:                                              ; preds = %663, %644
  %665 = load float, ptr %106, align 4, !tbaa !12
  store float %665, ptr %92, align 4, !tbaa !12
  %666 = load float, ptr %98, align 4, !tbaa !12
  store float %666, ptr %88, align 4, !tbaa !12
  %667 = load i64, ptr %100, align 8, !tbaa !9
  %668 = icmp slt i64 %667, 2
  br i1 %668, label %669, label %680

669:                                              ; preds = %664
  %670 = load ptr, ptr %35, align 8, !tbaa !5
  %671 = load ptr, ptr %56, align 8, !tbaa !5
  %672 = getelementptr inbounds float, ptr %671, i64 1
  %673 = load ptr, ptr %48, align 8, !tbaa !5
  %674 = load i64, ptr %85, align 8, !tbaa !9
  %675 = load i64, ptr %70, align 8, !tbaa !9
  %676 = mul nsw i64 %674, %675
  %677 = add nsw i64 %676, 1
  %678 = getelementptr inbounds float, ptr %673, i64 %677
  %679 = call i32 @f2c_saxpy(ptr noundef %670, ptr noundef @c_b8, ptr noundef %672, ptr noundef @c__1, ptr noundef %678, ptr noundef @c__1)
  br label %693

680:                                              ; preds = %664
  %681 = load ptr, ptr %35, align 8, !tbaa !5
  %682 = load ptr, ptr %48, align 8, !tbaa !5
  %683 = load i64, ptr %85, align 8, !tbaa !9
  %684 = load i64, ptr %70, align 8, !tbaa !9
  %685 = mul nsw i64 %683, %684
  %686 = add nsw i64 %685, 1
  %687 = getelementptr inbounds float, ptr %682, i64 %686
  %688 = load ptr, ptr %57, align 8, !tbaa !5
  %689 = getelementptr inbounds float, ptr %688, i64 1
  %690 = load ptr, ptr %56, align 8, !tbaa !5
  %691 = getelementptr inbounds float, ptr %690, i64 1
  %692 = call i32 @sla_wwaddw__(ptr noundef %681, ptr noundef %687, ptr noundef %689, ptr noundef %691)
  br label %693

693:                                              ; preds = %680, %669
  br label %694

694:                                              ; preds = %693
  %695 = load i64, ptr %93, align 8, !tbaa !9
  %696 = add nsw i64 %695, 1
  store i64 %696, ptr %93, align 8, !tbaa !9
  br label %234, !llvm.loop !18

697:                                              ; preds = %234
  br label %698

698:                                              ; preds = %697, %642, %635, %628
  %699 = load i64, ptr %108, align 8, !tbaa !9
  %700 = icmp eq i64 %699, 1
  br i1 %700, label %701, label %703

701:                                              ; preds = %698
  %702 = load float, ptr %97, align 4, !tbaa !12
  store float %702, ptr %90, align 4, !tbaa !12
  br label %703

703:                                              ; preds = %701, %698
  %704 = load i64, ptr %109, align 8, !tbaa !9
  %705 = icmp eq i64 %704, 1
  br i1 %705, label %706, label %708

706:                                              ; preds = %703
  %707 = load float, ptr %98, align 4, !tbaa !12
  store float %707, ptr %91, align 4, !tbaa !12
  br label %708

708:                                              ; preds = %706, %703
  %709 = load ptr, ptr %51, align 8, !tbaa !5
  %710 = load i64, ptr %709, align 8, !tbaa !9
  %711 = icmp sge i64 %710, 1
  br i1 %711, label %712, label %723

712:                                              ; preds = %708
  %713 = load float, ptr %90, align 4, !tbaa !12
  %714 = load float, ptr %82, align 4, !tbaa !12
  %715 = fsub float 1.000000e+00, %714
  %716 = fdiv float %713, %715
  %717 = load ptr, ptr %52, align 8, !tbaa !5
  %718 = load i64, ptr %85, align 8, !tbaa !9
  %719 = load i64, ptr %72, align 8, !tbaa !9
  %720 = shl i64 %719, 1
  %721 = add nsw i64 %718, %720
  %722 = getelementptr inbounds float, ptr %717, i64 %721
  store float %716, ptr %722, align 4, !tbaa !12
  br label %723

723:                                              ; preds = %712, %708
  %724 = load ptr, ptr %51, align 8, !tbaa !5
  %725 = load i64, ptr %724, align 8, !tbaa !9
  %726 = icmp sge i64 %725, 2
  br i1 %726, label %727, label %738

727:                                              ; preds = %723
  %728 = load float, ptr %91, align 4, !tbaa !12
  %729 = load float, ptr %83, align 4, !tbaa !12
  %730 = fsub float 1.000000e+00, %729
  %731 = fdiv float %728, %730
  %732 = load ptr, ptr %53, align 8, !tbaa !5
  %733 = load i64, ptr %85, align 8, !tbaa !9
  %734 = load i64, ptr %74, align 8, !tbaa !9
  %735 = shl i64 %734, 1
  %736 = add nsw i64 %733, %735
  %737 = getelementptr inbounds float, ptr %732, i64 %736
  store float %731, ptr %737, align 4, !tbaa !12
  br label %738

738:                                              ; preds = %727, %723
  %739 = load ptr, ptr %35, align 8, !tbaa !5
  %740 = load ptr, ptr %46, align 8, !tbaa !5
  %741 = load i64, ptr %85, align 8, !tbaa !9
  %742 = load i64, ptr %68, align 8, !tbaa !9
  %743 = mul nsw i64 %741, %742
  %744 = add nsw i64 %743, 1
  %745 = getelementptr inbounds float, ptr %740, i64 %744
  %746 = load ptr, ptr %54, align 8, !tbaa !5
  %747 = getelementptr inbounds float, ptr %746, i64 1
  %748 = call i32 @f2c_scopy(ptr noundef %739, ptr noundef %745, ptr noundef @c__1, ptr noundef %747, ptr noundef @c__1)
  %749 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %750 = load ptr, ptr %35, align 8, !tbaa !5
  %751 = load ptr, ptr %35, align 8, !tbaa !5
  %752 = load ptr, ptr %36, align 8, !tbaa !5
  %753 = load ptr, ptr %37, align 8, !tbaa !5
  %754 = load ptr, ptr %39, align 8, !tbaa !5
  %755 = load i64, ptr %65, align 8, !tbaa !9
  %756 = getelementptr inbounds float, ptr %754, i64 %755
  %757 = load ptr, ptr %40, align 8, !tbaa !5
  %758 = load ptr, ptr %48, align 8, !tbaa !5
  %759 = load i64, ptr %85, align 8, !tbaa !9
  %760 = load i64, ptr %70, align 8, !tbaa !9
  %761 = mul nsw i64 %759, %760
  %762 = add nsw i64 %761, 1
  %763 = getelementptr inbounds float, ptr %758, i64 %762
  %764 = load ptr, ptr %54, align 8, !tbaa !5
  %765 = getelementptr inbounds float, ptr %764, i64 1
  %766 = call i32 @f2c_sgbmv(ptr noundef %749, ptr noundef %750, ptr noundef %751, ptr noundef %752, ptr noundef %753, ptr noundef @c_b6, ptr noundef %756, ptr noundef %757, ptr noundef %763, ptr noundef @c__1, ptr noundef @c_b8, ptr noundef %765, ptr noundef @c__1)
  %767 = load ptr, ptr %35, align 8, !tbaa !5
  %768 = load i64, ptr %767, align 8, !tbaa !9
  store i64 %768, ptr %77, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %769

769:                                              ; preds = %796, %738
  %770 = load i64, ptr %84, align 8, !tbaa !9
  %771 = load i64, ptr %77, align 8, !tbaa !9
  %772 = icmp sle i64 %770, %771
  br i1 %772, label %773, label %799

773:                                              ; preds = %769
  %774 = load ptr, ptr %46, align 8, !tbaa !5
  %775 = load i64, ptr %84, align 8, !tbaa !9
  %776 = load i64, ptr %85, align 8, !tbaa !9
  %777 = load i64, ptr %68, align 8, !tbaa !9
  %778 = mul nsw i64 %776, %777
  %779 = add nsw i64 %775, %778
  %780 = getelementptr inbounds float, ptr %774, i64 %779
  %781 = load float, ptr %780, align 4, !tbaa !12
  store float %781, ptr %79, align 4, !tbaa !12
  %782 = load float, ptr %79, align 4, !tbaa !12
  %783 = fcmp oge float %782, 0.000000e+00
  br i1 %783, label %784, label %786

784:                                              ; preds = %773
  %785 = load float, ptr %79, align 4, !tbaa !12
  br label %789

786:                                              ; preds = %773
  %787 = load float, ptr %79, align 4, !tbaa !12
  %788 = fneg float %787
  br label %789

789:                                              ; preds = %786, %784
  %790 = phi float [ %785, %784 ], [ %788, %786 ]
  %791 = fpext float %790 to double
  %792 = fptrunc double %791 to float
  %793 = load ptr, ptr %55, align 8, !tbaa !5
  %794 = load i64, ptr %84, align 8, !tbaa !9
  %795 = getelementptr inbounds float, ptr %793, i64 %794
  store float %792, ptr %795, align 4, !tbaa !12
  br label %796

796:                                              ; preds = %789
  %797 = load i64, ptr %84, align 8, !tbaa !9
  %798 = add nsw i64 %797, 1
  store i64 %798, ptr %84, align 8, !tbaa !9
  br label %769, !llvm.loop !19

799:                                              ; preds = %769
  %800 = load ptr, ptr %34, align 8, !tbaa !5
  %801 = load ptr, ptr %35, align 8, !tbaa !5
  %802 = load ptr, ptr %35, align 8, !tbaa !5
  %803 = load ptr, ptr %36, align 8, !tbaa !5
  %804 = load ptr, ptr %37, align 8, !tbaa !5
  %805 = load ptr, ptr %39, align 8, !tbaa !5
  %806 = load i64, ptr %65, align 8, !tbaa !9
  %807 = getelementptr inbounds float, ptr %805, i64 %806
  %808 = load ptr, ptr %40, align 8, !tbaa !5
  %809 = load ptr, ptr %48, align 8, !tbaa !5
  %810 = load i64, ptr %85, align 8, !tbaa !9
  %811 = load i64, ptr %70, align 8, !tbaa !9
  %812 = mul nsw i64 %810, %811
  %813 = add nsw i64 %812, 1
  %814 = getelementptr inbounds float, ptr %809, i64 %813
  %815 = load ptr, ptr %55, align 8, !tbaa !5
  %816 = getelementptr inbounds float, ptr %815, i64 1
  %817 = call i32 @sla_gbamv__(ptr noundef %800, ptr noundef %801, ptr noundef %802, ptr noundef %803, ptr noundef %804, ptr noundef @c_b8, ptr noundef %807, ptr noundef %808, ptr noundef %814, ptr noundef @c__1, ptr noundef @c_b8, ptr noundef %816, ptr noundef @c__1)
  %818 = load ptr, ptr %35, align 8, !tbaa !5
  %819 = load ptr, ptr %35, align 8, !tbaa !5
  %820 = load ptr, ptr %54, align 8, !tbaa !5
  %821 = getelementptr inbounds float, ptr %820, i64 1
  %822 = load ptr, ptr %55, align 8, !tbaa !5
  %823 = getelementptr inbounds float, ptr %822, i64 1
  %824 = load ptr, ptr %50, align 8, !tbaa !5
  %825 = load i64, ptr %85, align 8, !tbaa !9
  %826 = getelementptr inbounds float, ptr %824, i64 %825
  %827 = call i32 @sla_lin_berr__(ptr noundef %818, ptr noundef %819, ptr noundef @c__1, ptr noundef %821, ptr noundef %823, ptr noundef %826)
  br label %828

828:                                              ; preds = %799
  %829 = load i64, ptr %85, align 8, !tbaa !9
  %830 = add nsw i64 %829, 1
  store i64 %830, ptr %85, align 8, !tbaa !9
  br label %203, !llvm.loop !20

831:                                              ; preds = %203
  store i32 0, ptr %32, align 4
  store i32 1, ptr %110, align 4
  br label %832

832:                                              ; preds = %831, %176
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #3
  %833 = load i32, ptr %32, align 4
  ret i32 %833
}

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

declare void @chla_transtype__(ptr noundef, i64 noundef, ptr noundef) #2

declare double @slamch_(ptr noundef) #2

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

declare i32 @f2c_sgbmv(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 @blas_sgbmv_x__(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 @blas_sgbmv2_x__(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 @sgbtrs_(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 @f2c_saxpy(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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


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

@.str = external hidden unnamed_addr constant [8 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [9 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_b6 = external hidden global float, align 4
@c_b8 = external hidden global float, align 4

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

52:                                               ; preds = %31
  call void @chla_transtype__(ptr noundef nonnull %34, i64 noundef 1, ptr noundef %1) #4
  %53 = load i8, ptr %34, align 1, !tbaa !9
  store i8 %53, ptr %36, align 1, !tbaa !9
  %54 = call double @slamch_(ptr noundef nonnull @.str) #4
  %55 = fptrunc double %54 to float
  %56 = call double @slamch_(ptr noundef nonnull @.str.1) #4
  %57 = fptrunc double %56 to float
  %58 = fmul float %57, %57
  %59 = load i64, ptr %2, align 8, !tbaa !5
  %60 = sitofp i64 %59 to float
  %61 = fmul float %55, %60
  %62 = load i64, ptr %3, align 8, !tbaa !5
  %63 = load i64, ptr %4, align 8, !tbaa !5
  %64 = add i64 %62, 1
  %65 = add i64 %64, %63
  store i64 %65, ptr %35, align 8, !tbaa !5
  %66 = load i64, ptr %5, align 8, !tbaa !5
  %invariant.gep511 = getelementptr i8, ptr %44, i64 4
  %invariant.gep513 = getelementptr i8, ptr %47, i64 4
  %.not374515 = icmp slt i64 %66, 1
  br i1 %.not374515, label %.loopexit446, label %.lr.ph518

.lr.ph518:                                        ; preds = %52
  %.idx = shl i64 %37, 3
  %invariant.gep519 = getelementptr i8, ptr %40, i64 %.idx
  %invariant.gep521 = getelementptr i8, ptr %39, i64 %.idx
  %67 = sub i64 %33, %32
  %68 = mul i64 %42, -4
  br label %69

69:                                               ; preds = %.lr.ph518, %._crit_edge510
  %indvar = phi i64 [ 0, %.lr.ph518 ], [ %indvar.next, %._crit_edge510 ]
  %.0358516 = phi i64 [ 1, %.lr.ph518 ], [ %235, %._crit_edge510 ]
  %70 = mul i64 %68, %indvar
  %71 = add i64 %67, %70
  %72 = load i64, ptr %26, align 8, !tbaa !5
  %.not375474 = icmp slt i64 %72, 1
  br i1 %.not375474, label %.thread427, label %.lr.ph486

.lr.ph486:                                        ; preds = %69
  %73 = mul nsw i64 %.0358516, %42
  %gep463 = getelementptr float, ptr %invariant.gep511, i64 %73
  %74 = mul nsw i64 %.0358516, %45
  %gep465 = getelementptr float, ptr %invariant.gep513, i64 %74
  %invariant.gep = getelementptr float, ptr %47, i64 %74
  br label %75

75:                                               ; preds = %.lr.ph486, %181
  %.0484 = phi i64 [ 0, %.lr.ph486 ], [ %.4, %181 ]
  %.0319483 = phi i64 [ 1, %.lr.ph486 ], [ %.3322, %181 ]
  %.0329482 = phi i64 [ 1, %.lr.ph486 ], [ %.1330, %181 ]
  %.0332481 = phi float [ %58, %.lr.ph486 ], [ %.1333.lcssa540, %181 ]
  %.0340480 = phi i64 [ 1, %.lr.ph486 ], [ %182, %181 ]
  %.0341479 = phi float [ %58, %.lr.ph486 ], [ %.0324.lcssa547, %181 ]
  %.0342478 = phi float [ %58, %.lr.ph486 ], [ %.2344, %181 ]
  %.0347477 = phi float [ %58, %.lr.ph486 ], [ %.1348, %181 ]
  %.0363476 = phi float [ 0.000000e+00, %.lr.ph486 ], [ %.2365, %181 ]
  %.0367475 = phi float [ 0.000000e+00, %.lr.ph486 ], [ %.2369, %181 ]
  %76 = call i32 @f2c_scopy(ptr noundef nonnull %2, ptr noundef %gep463, ptr noundef nonnull @c__1, ptr noundef %21, ptr noundef nonnull @c__1) #4
  switch i64 %.0329482, label %81 [
    i64 0, label %77
    i64 1, label %79
  ]

77:                                               ; preds = %75
  %78 = call i32 @f2c_sgbmv(ptr noundef nonnull %36, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull @c_b6, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %gep465, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b8, ptr noundef %21, ptr noundef nonnull @c__1) #4
  br label %83

79:                                               ; preds = %75
  %80 = call i32 @blas_sgbmv_x__(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull @c_b6, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %gep465, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b8, ptr noundef %21, ptr noundef nonnull @c__1, ptr noundef %0) #4
  br label %83

81:                                               ; preds = %75
  %82 = call i32 @blas_sgbmv2_x__(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull @c_b6, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %gep465, ptr noundef %24, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b8, ptr noundef %21, ptr noundef nonnull @c__1, ptr noundef %0) #4
  br label %83

83:                                               ; preds = %79, %81, %77
  %84 = call i32 @f2c_scopy(ptr noundef nonnull %2, ptr noundef %21, ptr noundef nonnull @c__1, ptr noundef %23, ptr noundef nonnull @c__1) #4
  %85 = call i32 @sgbtrs_(ptr noundef nonnull %36, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull @c__1, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %23, ptr noundef nonnull %2, ptr noundef nonnull %30) #4
  %86 = load i64, ptr %2, align 8, !tbaa !5
  %.not376447 = icmp slt i64 %86, 1
  br i1 %.not376447, label %._crit_edge.thread, label %.lr.ph

.lr.ph:                                           ; preds = %83
  %87 = load i64, ptr %11, align 8, !tbaa !5
  %.not386 = icmp eq i64 %87, 0
  br label %88

88:                                               ; preds = %.lr.ph, %118
  %.0324453 = phi float [ 0.000000e+00, %.lr.ph ], [ %120, %118 ]
  %.0326452 = phi float [ 0.000000e+00, %.lr.ph ], [ %110, %118 ]
  %.0327451 = phi float [ 0.000000e+00, %.lr.ph ], [ %.1328, %118 ]
  %.0331450 = phi float [ %58, %.lr.ph ], [ %108, %118 ]
  %.1333449 = phi float [ 0.000000e+00, %.lr.ph ], [ %.2334, %118 ]
  %.1360448 = phi i64 [ 1, %.lr.ph ], [ %121, %118 ]
  %gep = getelementptr float, ptr %invariant.gep, i64 %.1360448
  %89 = load float, ptr %gep, align 4, !tbaa !10
  %90 = fcmp oge float %89, 0.000000e+00
  %91 = fneg float %89
  %92 = select i1 %90, float %89, float %91
  %93 = getelementptr inbounds float, ptr %50, i64 %.1360448
  %94 = load float, ptr %93, align 4, !tbaa !10
  %95 = fcmp oge float %94, 0.000000e+00
  %96 = fneg float %94
  %97 = select i1 %95, float %94, float %96
  %98 = fcmp une float %89, 0.000000e+00
  br i1 %98, label %99, label %103

99:                                               ; preds = %88
  %100 = fdiv float %97, %92
  %101 = fcmp oge float %.1333449, %100
  %102 = select i1 %101, float %.1333449, float %100
  br label %106

103:                                              ; preds = %88
  %104 = fcmp une float %94, 0.000000e+00
  br i1 %104, label %105, label %106

105:                                              ; preds = %103
  br label %106

106:                                              ; preds = %103, %105, %99
  %.2334 = phi float [ %102, %99 ], [ %58, %105 ], [ %.1333449, %103 ]
  %107 = fcmp ole float %.0331450, %92
  %108 = select i1 %107, float %.0331450, float %92
  %109 = fcmp oge float %.0326452, %92
  %110 = select i1 %109, float %.0326452, float %92
  br i1 %.not386, label %118, label %111

111:                                              ; preds = %106
  %112 = getelementptr inbounds float, ptr %41, i64 %.1360448
  %113 = load float, ptr %112, align 4, !tbaa !10
  %114 = fmul float %92, %113
  %115 = fcmp oge float %.0327451, %114
  %116 = select i1 %115, float %.0327451, float %114
  %117 = fmul float %97, %113
  br label %118

118:                                              ; preds = %106, %111
  %.sink608 = phi float [ %117, %111 ], [ %97, %106 ]
  %.1328 = phi float [ %116, %111 ], [ %110, %106 ]
  %119 = fcmp oge float %.0324453, %.sink608
  %120 = select i1 %119, float %.0324453, float %.sink608
  %121 = add nuw i64 %.1360448, 1
  %exitcond.not = icmp eq i64 %.1360448, %86
  br i1 %exitcond.not, label %._crit_edge, label %88, !llvm.loop !12

._crit_edge:                                      ; preds = %118
  %122 = fcmp une float %.1328, 0.000000e+00
  br i1 %122, label %123, label %._crit_edge.thread

123:                                              ; preds = %._crit_edge
  %124 = fdiv float %120, %.1328
  br label %126

._crit_edge.thread:                               ; preds = %83, %._crit_edge
  %.0324.lcssa546 = phi float [ %120, %._crit_edge ], [ 0.000000e+00, %83 ]
  %.0326.lcssa545 = phi float [ %110, %._crit_edge ], [ 0.000000e+00, %83 ]
  %.0331.lcssa543 = phi float [ %108, %._crit_edge ], [ %58, %83 ]
  %.1333.lcssa541 = phi float [ %.2334, %._crit_edge ], [ 0.000000e+00, %83 ]
  %125 = fcmp oeq float %.0324.lcssa546, 0.000000e+00
  %. = select i1 %125, float 0.000000e+00, float %58
  br label %126

126:                                              ; preds = %._crit_edge.thread, %123
  %.0324.lcssa547 = phi float [ %120, %123 ], [ %.0324.lcssa546, %._crit_edge.thread ]
  %.0326.lcssa544 = phi float [ %110, %123 ], [ %.0326.lcssa545, %._crit_edge.thread ]
  %.0331.lcssa542 = phi float [ %108, %123 ], [ %.0331.lcssa543, %._crit_edge.thread ]
  %.1333.lcssa540 = phi float [ %.2334, %123 ], [ %.1333.lcssa541, %._crit_edge.thread ]
  %.1337 = phi float [ %124, %123 ], [ %., %._crit_edge.thread ]
  %127 = fdiv float %.0324.lcssa547, %.0341479
  %128 = fdiv float %.1333.lcssa540, %.0332481
  %129 = load i64, ptr %29, align 8, !tbaa !5
  %.not377 = icmp eq i64 %129, 0
  br i1 %.not377, label %130, label %136

130:                                              ; preds = %126
  %131 = load float, ptr %25, align 4, !tbaa !10
  %132 = fmul float %.0331.lcssa542, %131
  %133 = fmul float %61, %.0326.lcssa544
  %134 = fcmp olt float %132, %133
  %135 = icmp slt i64 %.0329482, 2
  %or.cond = and i1 %135, %134
  %spec.select = zext i1 %or.cond to i64
  br label %136

136:                                              ; preds = %130, %126
  %.1353 = phi i64 [ 0, %126 ], [ %spec.select, %130 ]
  switch i64 %.0319483, label %.thread393 [
    i64 3, label %137
    i64 1, label %.thread
  ]

137:                                              ; preds = %136
  %138 = load float, ptr %27, align 4, !tbaa !10
  %139 = fcmp ugt float %127, %138
  br i1 %139, label %.thread393, label %.thread

.thread:                                          ; preds = %136, %137
  %140 = fcmp ugt float %.1337, %55
  br i1 %140, label %141, label %.thread393

141:                                              ; preds = %.thread
  %142 = load float, ptr %27, align 4, !tbaa !10
  %143 = fcmp ogt float %127, %142
  br i1 %143, label %147, label %144

144:                                              ; preds = %141
  %145 = fcmp ogt float %127, %.0367475
  br i1 %145, label %146, label %.thread393

146:                                              ; preds = %144
  br label %.thread393

147:                                              ; preds = %141
  %.not378 = icmp eq i64 %.0329482, 2
  br i1 %.not378, label %148, label %.thread393

148:                                              ; preds = %147
  br label %.thread393

.thread393:                                       ; preds = %136, %144, %146, %.thread, %137, %147, %148
  %.2369 = phi float [ %.0367475, %147 ], [ %.0367475, %148 ], [ %.0367475, %137 ], [ %.0367475, %.thread ], [ %.0367475, %144 ], [ %127, %146 ], [ %.0367475, %136 ]
  %.3355 = phi i64 [ 1, %147 ], [ %.1353, %148 ], [ %.1353, %137 ], [ %.1353, %.thread ], [ %.1353, %144 ], [ %.1353, %146 ], [ %.1353, %136 ]
  %.1348 = phi float [ %.0347477, %147 ], [ %.1337, %148 ], [ %.0347477, %137 ], [ %.1337, %.thread ], [ %.0347477, %144 ], [ %.0347477, %146 ], [ %.0347477, %136 ]
  %.3322 = phi i64 [ 1, %147 ], [ 3, %148 ], [ 3, %137 ], [ 2, %.thread ], [ 1, %144 ], [ 1, %146 ], [ %.0319483, %136 ]
  switch i64 %.0484, label %.thread411 [
    i64 0, label %149
    i64 3, label %152
    i64 1, label %.thread409
  ]

149:                                              ; preds = %.thread393
  %150 = load float, ptr %28, align 4, !tbaa !10
  %151 = fcmp ugt float %.1333.lcssa540, %150
  br i1 %151, label %.thread411, label %.thread409

152:                                              ; preds = %.thread393
  %153 = load float, ptr %27, align 4, !tbaa !10
  %154 = fcmp ugt float %128, %153
  br i1 %154, label %.thread411, label %.thread409

.thread409:                                       ; preds = %.thread393, %149, %152
  %155 = fcmp ugt float %.1333.lcssa540, %55
  br i1 %155, label %156, label %.thread411

156:                                              ; preds = %.thread409
  %157 = load float, ptr %28, align 4, !tbaa !10
  %158 = fcmp ogt float %.1333.lcssa540, %157
  br i1 %158, label %.thread411, label %159

159:                                              ; preds = %156
  %160 = load float, ptr %27, align 4, !tbaa !10
  %161 = fcmp ogt float %128, %160
  br i1 %161, label %165, label %162

162:                                              ; preds = %159
  %163 = fcmp ogt float %128, %.0363476
  br i1 %163, label %164, label %.thread411

164:                                              ; preds = %162
  br label %.thread411

165:                                              ; preds = %159
  %.not379 = icmp eq i64 %.0329482, 2
  br i1 %.not379, label %166, label %.thread411

166:                                              ; preds = %165
  br label %.thread411

.thread411:                                       ; preds = %.thread393, %149, %156, %162, %164, %.thread409, %152, %165, %166
  %.2365 = phi float [ %.0363476, %165 ], [ %.0363476, %166 ], [ %.0363476, %152 ], [ %.0363476, %.thread409 ], [ 0.000000e+00, %156 ], [ %.0363476, %162 ], [ %128, %164 ], [ %.0363476, %149 ], [ %.0363476, %.thread393 ]
  %.5357 = phi i64 [ 1, %165 ], [ %.3355, %166 ], [ %.3355, %152 ], [ %.3355, %.thread409 ], [ %.3355, %156 ], [ %.3355, %162 ], [ %.3355, %164 ], [ %.3355, %149 ], [ %.3355, %.thread393 ]
  %.2344 = phi float [ %.0342478, %165 ], [ %.1333.lcssa540, %166 ], [ %.0342478, %152 ], [ %.1333.lcssa540, %.thread409 ], [ %58, %156 ], [ %.0342478, %162 ], [ %.0342478, %164 ], [ %.0342478, %149 ], [ %.0342478, %.thread393 ]
  %.4 = phi i64 [ 1, %165 ], [ 3, %166 ], [ 3, %152 ], [ 2, %.thread409 ], [ 0, %156 ], [ 1, %162 ], [ 1, %164 ], [ 0, %149 ], [ %.0484, %.thread393 ]
  %.not380 = icmp eq i64 %.3322, 1
  br i1 %.not380, label %172, label %167

167:                                              ; preds = %.thread411
  %.not381 = icmp ne i64 %129, 0
  %168 = and i64 %.4, -2
  %or.cond3 = icmp eq i64 %168, 2
  %or.cond391 = or i1 %.not381, %or.cond3
  br i1 %or.cond391, label %._crit_edge487.thread568, label %169

169:                                              ; preds = %167
  %170 = icmp eq i64 %.4, 0
  %171 = icmp ugt i64 %.0340480, 1
  %or.cond5 = and i1 %171, %170
  br i1 %or.cond5, label %.thread427, label %172

172:                                              ; preds = %169, %.thread411
  %.not382 = icmp eq i64 %.5357, 0
  br i1 %.not382, label %.loopexit, label %173

173:                                              ; preds = %172
  %174 = add nsw i64 %.0329482, 1
  br i1 %.not376447, label %.loopexit, label %.lr.ph461.preheader

.lr.ph461.preheader:                              ; preds = %173
  %175 = shl nuw i64 %86, 2
  call void @llvm.memset.p0.i64(ptr align 4 %24, i8 0, i64 %175, i1 false), !tbaa !10
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph461.preheader, %173, %172
  %.1330 = phi i64 [ %.0329482, %172 ], [ %174, %173 ], [ %174, %.lr.ph461.preheader ]
  %176 = icmp slt i64 %.1330, 2
  br i1 %176, label %177, label %179

177:                                              ; preds = %.loopexit
  %178 = call i32 @f2c_saxpy(ptr noundef nonnull %2, ptr noundef nonnull @c_b8, ptr noundef %23, ptr noundef nonnull @c__1, ptr noundef %gep465, ptr noundef nonnull @c__1) #4
  br label %181

179:                                              ; preds = %.loopexit
  %180 = call i32 @sla_wwaddw__(ptr noundef nonnull %2, ptr noundef %gep465, ptr noundef %24, ptr noundef %23) #4
  br label %181

181:                                              ; preds = %177, %179
  %182 = add nuw i64 %.0340480, 1
  %exitcond532.not = icmp eq i64 %.0340480, %72
  br i1 %exitcond532.not, label %._crit_edge487, label %75, !llvm.loop !14

._crit_edge487:                                   ; preds = %181
  %183 = icmp eq i64 %.3322, 1
  br i1 %183, label %184, label %._crit_edge487.thread568

184:                                              ; preds = %._crit_edge487
  br label %._crit_edge487.thread568

._crit_edge487.thread568:                         ; preds = %167, %._crit_edge487, %184
  %185 = phi float [ %.1348, %._crit_edge487 ], [ %.1337, %184 ], [ %.1348, %167 ]
  %186 = icmp eq i64 %.4, 1
  br i1 %186, label %187, label %.thread427

187:                                              ; preds = %._crit_edge487.thread568
  br label %.thread427

.thread427:                                       ; preds = %169, %69, %._crit_edge487.thread568, %187
  %.3350440 = phi float [ %185, %187 ], [ %185, %._crit_edge487.thread568 ], [ %58, %69 ], [ %.1348, %169 ]
  %.3366439 = phi float [ %.2365, %187 ], [ %.2365, %._crit_edge487.thread568 ], [ 0.000000e+00, %69 ], [ %.2365, %169 ]
  %.3370438 = phi float [ %.2369, %187 ], [ %.2369, %._crit_edge487.thread568 ], [ 0.000000e+00, %69 ], [ %.2369, %169 ]
  %188 = phi float [ %.1333.lcssa540, %187 ], [ %.2344, %._crit_edge487.thread568 ], [ %58, %69 ], [ %.2344, %169 ]
  %189 = load i64, ptr %18, align 8, !tbaa !5
  %190 = icmp sgt i64 %189, 0
  br i1 %190, label %191, label %.thread441

191:                                              ; preds = %.thread427
  %192 = fsub float 1.000000e+00, %.3370438
  %193 = fdiv float %.3350440, %192
  %gep520 = getelementptr float, ptr %invariant.gep519, i64 %.0358516
  store float %193, ptr %gep520, align 4, !tbaa !10
  %.not445 = icmp eq i64 %189, 1
  br i1 %.not445, label %.thread441, label %194

194:                                              ; preds = %191
  %195 = fsub float 1.000000e+00, %.3366439
  %196 = fdiv float %188, %195
  %gep522 = getelementptr float, ptr %invariant.gep521, i64 %.0358516
  store float %196, ptr %gep522, align 4, !tbaa !10
  br label %.thread441

.thread441:                                       ; preds = %.thread427, %194, %191
  %197 = mul nsw i64 %.0358516, %42
  %gep512 = getelementptr float, ptr %invariant.gep511, i64 %197
  %198 = call i32 @f2c_scopy(ptr noundef nonnull %2, ptr noundef %gep512, ptr noundef nonnull @c__1, ptr noundef %21, ptr noundef nonnull @c__1) #4
  %199 = mul nsw i64 %.0358516, %45
  %gep514 = getelementptr float, ptr %invariant.gep513, i64 %199
  %200 = call i32 @f2c_sgbmv(ptr noundef nonnull %36, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull @c_b6, ptr noundef %6, ptr noundef %7, ptr noundef %gep514, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b8, ptr noundef %21, ptr noundef nonnull @c__1) #4
  %201 = load i64, ptr %2, align 8, !tbaa !5
  %invariant.gep505 = getelementptr float, ptr %44, i64 %197
  %.not385507 = icmp slt i64 %201, 1
  br i1 %.not385507, label %._crit_edge510, label %.lr.ph509.preheader

.lr.ph509.preheader:                              ; preds = %.thread441
  %min.iters.check = icmp ult i64 %201, 8
  %diff.check = icmp ult i64 %71, 32
  %or.cond633 = select i1 %min.iters.check, i1 true, i1 %diff.check
  br i1 %or.cond633, label %.lr.ph509.preheader634, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph509.preheader
  %n.vec = and i64 %201, 9223372036854775800
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %202 = getelementptr float, ptr %invariant.gep505, i64 %offset.idx
  %203 = getelementptr i8, ptr %202, i64 16
  %wide.load = load <4 x float>, ptr %202, align 4, !tbaa !10
  %wide.load632 = load <4 x float>, ptr %203, align 4, !tbaa !10
  %204 = fcmp oge <4 x float> %wide.load, zeroinitializer
  %205 = fcmp oge <4 x float> %wide.load632, zeroinitializer
  %206 = fneg <4 x float> %wide.load
  %207 = fneg <4 x float> %wide.load632
  %208 = select <4 x i1> %204, <4 x float> %wide.load, <4 x float> %206
  %209 = select <4 x i1> %205, <4 x float> %wide.load632, <4 x float> %207
  %210 = getelementptr float, ptr %22, i64 %index
  %211 = getelementptr inbounds i8, ptr %210, i64 16
  store <4 x float> %208, ptr %210, align 4, !tbaa !10
  store <4 x float> %209, ptr %211, align 4, !tbaa !10
  %index.next = add nuw i64 %index, 8
  %212 = icmp eq i64 %index.next, %n.vec
  br i1 %212, label %middle.block, label %vector.body, !llvm.loop !15

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %201, %n.vec
  br i1 %cmp.n, label %._crit_edge510, label %.lr.ph509.preheader634

.lr.ph509.preheader634:                           ; preds = %middle.block, %.lr.ph509.preheader
  %.3362508.ph = phi i64 [ 1, %.lr.ph509.preheader ], [ %ind.end, %middle.block ]
  %xtraiter = and i64 %201, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph509.prol.loopexit, label %.lr.ph509.prol

.lr.ph509.prol:                                   ; preds = %.lr.ph509.preheader634
  %gep506.prol = getelementptr float, ptr %invariant.gep505, i64 %.3362508.ph
  %213 = load float, ptr %gep506.prol, align 4, !tbaa !10
  %214 = fcmp oge float %213, 0.000000e+00
  %215 = fneg float %213
  %216 = select i1 %214, float %213, float %215
  %217 = getelementptr inbounds float, ptr %49, i64 %.3362508.ph
  store float %216, ptr %217, align 4, !tbaa !10
  %218 = add nuw i64 %.3362508.ph, 1
  br label %.lr.ph509.prol.loopexit

.lr.ph509.prol.loopexit:                          ; preds = %.lr.ph509.prol, %.lr.ph509.preheader634
  %.3362508.unr = phi i64 [ %.3362508.ph, %.lr.ph509.preheader634 ], [ %218, %.lr.ph509.prol ]
  %219 = icmp eq i64 %201, %.3362508.ph
  br i1 %219, label %._crit_edge510, label %.lr.ph509

.lr.ph509:                                        ; preds = %.lr.ph509.prol.loopexit, %.lr.ph509
  %.3362508 = phi i64 [ %231, %.lr.ph509 ], [ %.3362508.unr, %.lr.ph509.prol.loopexit ]
  %gep506 = getelementptr float, ptr %invariant.gep505, i64 %.3362508
  %220 = load float, ptr %gep506, align 4, !tbaa !10
  %221 = fcmp oge float %220, 0.000000e+00
  %222 = fneg float %220
  %223 = select i1 %221, float %220, float %222
  %224 = getelementptr inbounds float, ptr %49, i64 %.3362508
  store float %223, ptr %224, align 4, !tbaa !10
  %225 = add nuw i64 %.3362508, 1
  %gep506.1 = getelementptr float, ptr %invariant.gep505, i64 %225
  %226 = load float, ptr %gep506.1, align 4, !tbaa !10
  %227 = fcmp oge float %226, 0.000000e+00
  %228 = fneg float %226
  %229 = select i1 %227, float %226, float %228
  %230 = getelementptr float, ptr %22, i64 %.3362508
  store float %229, ptr %230, align 4, !tbaa !10
  %231 = add nuw i64 %.3362508, 2
  %exitcond533.not.1 = icmp eq i64 %225, %201
  br i1 %exitcond533.not.1, label %._crit_edge510, label %.lr.ph509, !llvm.loop !18

._crit_edge510:                                   ; preds = %.lr.ph509.prol.loopexit, %.lr.ph509, %middle.block, %.thread441
  %232 = call i32 @sla_gbamv__(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull @c_b8, ptr noundef %6, ptr noundef %7, ptr noundef %gep514, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b8, ptr noundef %22, ptr noundef nonnull @c__1) #4
  %233 = getelementptr inbounds float, ptr %48, i64 %.0358516
  %234 = call i32 @sla_lin_berr__(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %21, ptr noundef %22, ptr noundef nonnull %233) #4
  %235 = add nuw i64 %.0358516, 1
  %exitcond534.not = icmp eq i64 %.0358516, %66
  %indvar.next = add i64 %indvar, 1
  br i1 %exitcond534.not, label %.loopexit446, label %69, !llvm.loop !19

.loopexit446:                                     ; preds = %._crit_edge510, %52, %31
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #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 void @chla_transtype__(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

declare i32 @f2c_sgbmv(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 @blas_sgbmv_x__(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 @blas_sgbmv2_x__(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 @sgbtrs_(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 @f2c_saxpy(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @sla_gbamv__(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 @sla_lin_berr__(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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"float", !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13, !16, !17}
!16 = !{!"llvm.loop.isvectorized", i32 1}
!17 = !{!"llvm.loop.unroll.runtime.disable"}
!18 = distinct !{!18, !13, !16}
!19 = distinct !{!19, !13}


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