; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (dla_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 double, align 8
@c_b8 = external hidden global double, align 8

; Function Attrs: nounwind uwtable
define dso_local i32 @dla_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 double, align 8
  %80 = alloca double, align 8
  %81 = alloca [1 x i8], align 1
  %82 = alloca double, align 8
  %83 = alloca double, align 8
  %84 = alloca i64, align 8
  %85 = alloca i64, align 8
  %86 = alloca i64, align 8
  %87 = alloca i64, align 8
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca double, align 8
  %92 = alloca double, align 8
  %93 = alloca i64, align 8
  %94 = alloca double, align 8
  %95 = alloca double, align 8
  %96 = alloca double, align 8
  %97 = alloca double, align 8
  %98 = alloca double, align 8
  %99 = alloca double, align 8
  %100 = alloca i64, align 8
  %101 = alloca double, align 8
  %102 = alloca double, align 8
  %103 = alloca [1 x i8], align 1
  %104 = alloca double, align 8
  %105 = alloca double, align 8
  %106 = alloca double, align 8
  %107 = alloca double, align 8
  %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 8, ptr %79) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %81) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr %88) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #3
  call void @llvm.lifetime.start.p0(i64 8, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 double, 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 %812

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 @dlamch_(ptr noundef @.str)
  store double %183, ptr %95, align 8, !tbaa !12
  %184 = call double @dlamch_(ptr noundef @.str.1)
  store double %184, ptr %107, align 8, !tbaa !12
  %185 = load double, ptr %107, align 8, !tbaa !12
  %186 = load double, ptr %107, align 8, !tbaa !12
  %187 = fmul double %186, %185
  store double %187, ptr %107, align 8, !tbaa !12
  %188 = load ptr, ptr %35, align 8, !tbaa !5
  %189 = load i64, ptr %188, align 8, !tbaa !9
  %190 = sitofp i64 %189 to double
  %191 = load double, ptr %95, align 8, !tbaa !12
  %192 = fmul double %190, %191
  store double %192, ptr %96, align 8, !tbaa !12
  %193 = load ptr, ptr %36, align 8, !tbaa !5
  %194 = load i64, ptr %193, align 8, !tbaa !9
  %195 = load ptr, ptr %37, align 8, !tbaa !5
  %196 = load i64, ptr %195, align 8, !tbaa !9
  %197 = add nsw i64 %194, %196
  %198 = add nsw i64 %197, 1
  store i64 %198, ptr %86, align 8, !tbaa !9
  %199 = load ptr, ptr %38, align 8, !tbaa !5
  %200 = load i64, ptr %199, align 8, !tbaa !9
  store i64 %200, ptr %76, align 8, !tbaa !9
  store i64 1, ptr %85, align 8, !tbaa !9
  br label %201

201:                                              ; preds = %808, %177
  %202 = load i64, ptr %85, align 8, !tbaa !9
  %203 = load i64, ptr %76, align 8, !tbaa !9
  %204 = icmp sle i64 %202, %203
  br i1 %204, label %205, label %811

205:                                              ; preds = %201
  store i64 1, ptr %100, align 8, !tbaa !9
  %206 = load i64, ptr %100, align 8, !tbaa !9
  %207 = icmp eq i64 %206, 2
  br i1 %207, label %208, label %223

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

211:                                              ; preds = %219, %208
  %212 = load i64, ptr %84, align 8, !tbaa !9
  %213 = load i64, ptr %77, align 8, !tbaa !9
  %214 = icmp sle i64 %212, %213
  br i1 %214, label %215, label %222

215:                                              ; preds = %211
  %216 = load ptr, ptr %57, align 8, !tbaa !5
  %217 = load i64, ptr %84, align 8, !tbaa !9
  %218 = getelementptr inbounds double, ptr %216, i64 %217
  store double 0.000000e+00, ptr %218, align 8, !tbaa !12
  br label %219

219:                                              ; preds = %215
  %220 = load i64, ptr %84, align 8, !tbaa !9
  %221 = add nsw i64 %220, 1
  store i64 %221, ptr %84, align 8, !tbaa !9
  br label %211, !llvm.loop !14

222:                                              ; preds = %211
  br label %223

223:                                              ; preds = %222, %205
  store double 0.000000e+00, ptr %101, align 8, !tbaa !12
  store double 0.000000e+00, ptr %82, align 8, !tbaa !12
  store double 0.000000e+00, ptr %102, align 8, !tbaa !12
  store double 0.000000e+00, ptr %83, align 8, !tbaa !12
  %224 = load double, ptr %107, align 8, !tbaa !12
  store double %224, ptr %90, align 8, !tbaa !12
  %225 = load double, ptr %107, align 8, !tbaa !12
  store double %225, ptr %91, align 8, !tbaa !12
  %226 = load double, ptr %107, align 8, !tbaa !12
  store double %226, ptr %92, align 8, !tbaa !12
  %227 = load double, ptr %107, align 8, !tbaa !12
  store double %227, ptr %88, align 8, !tbaa !12
  %228 = load double, ptr %107, align 8, !tbaa !12
  store double %228, ptr %98, align 8, !tbaa !12
  %229 = load double, ptr %107, align 8, !tbaa !12
  store double %229, ptr %97, align 8, !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
  %230 = load ptr, ptr %59, align 8, !tbaa !5
  %231 = load i64, ptr %230, align 8, !tbaa !9
  store i64 %231, ptr %77, align 8, !tbaa !9
  store i64 1, ptr %93, align 8, !tbaa !9
  br label %232

232:                                              ; preds = %676, %223
  %233 = load i64, ptr %93, align 8, !tbaa !9
  %234 = load i64, ptr %77, align 8, !tbaa !9
  %235 = icmp sle i64 %233, %234
  br i1 %235, label %236, label %679

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

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

267:                                              ; preds = %236
  %268 = load i64, ptr %100, align 8, !tbaa !9
  %269 = icmp eq i64 %268, 1
  br i1 %269, label %270, label %290

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

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

312:                                              ; preds = %290, %270
  br label %313

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

338:                                              ; preds = %462, %313
  %339 = load i64, ptr %84, align 8, !tbaa !9
  %340 = load i64, ptr %78, align 8, !tbaa !9
  %341 = icmp sle i64 %339, %340
  br i1 %341, label %342, label %465

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

353:                                              ; preds = %342
  %354 = load double, ptr %79, align 8, !tbaa !12
  br label %358

355:                                              ; preds = %342
  %356 = load double, ptr %79, align 8, !tbaa !12
  %357 = fneg double %356
  br label %358

358:                                              ; preds = %355, %353
  %359 = phi double [ %354, %353 ], [ %357, %355 ]
  store double %359, ptr %89, align 8, !tbaa !12
  %360 = load ptr, ptr %56, align 8, !tbaa !5
  %361 = load i64, ptr %84, align 8, !tbaa !9
  %362 = getelementptr inbounds double, ptr %360, i64 %361
  %363 = load double, ptr %362, align 8, !tbaa !12
  store double %363, ptr %79, align 8, !tbaa !12
  %364 = load double, ptr %79, align 8, !tbaa !12
  %365 = fcmp oge double %364, 0.000000e+00
  br i1 %365, label %366, label %368

366:                                              ; preds = %358
  %367 = load double, ptr %79, align 8, !tbaa !12
  br label %371

368:                                              ; preds = %358
  %369 = load double, ptr %79, align 8, !tbaa !12
  %370 = fneg double %369
  br label %371

371:                                              ; preds = %368, %366
  %372 = phi double [ %367, %366 ], [ %370, %368 ]
  store double %372, ptr %94, align 8, !tbaa !12
  %373 = load double, ptr %89, align 8, !tbaa !12
  %374 = fcmp une double %373, 0.000000e+00
  br i1 %374, label %375, label %389

375:                                              ; preds = %371
  %376 = load double, ptr %98, align 8, !tbaa !12
  store double %376, ptr %79, align 8, !tbaa !12
  %377 = load double, ptr %94, align 8, !tbaa !12
  %378 = load double, ptr %89, align 8, !tbaa !12
  %379 = fdiv double %377, %378
  store double %379, ptr %80, align 8, !tbaa !12
  %380 = load double, ptr %79, align 8, !tbaa !12
  %381 = load double, ptr %80, align 8, !tbaa !12
  %382 = fcmp oge double %380, %381
  br i1 %382, label %383, label %385

383:                                              ; preds = %375
  %384 = load double, ptr %79, align 8, !tbaa !12
  br label %387

385:                                              ; preds = %375
  %386 = load double, ptr %80, align 8, !tbaa !12
  br label %387

387:                                              ; preds = %385, %383
  %388 = phi double [ %384, %383 ], [ %386, %385 ]
  store double %388, ptr %98, align 8, !tbaa !12
  br label %395

389:                                              ; preds = %371
  %390 = load double, ptr %94, align 8, !tbaa !12
  %391 = fcmp une double %390, 0.000000e+00
  br i1 %391, label %392, label %394

392:                                              ; preds = %389
  %393 = load double, ptr %107, align 8, !tbaa !12
  store double %393, ptr %98, align 8, !tbaa !12
  br label %394

394:                                              ; preds = %392, %389
  br label %395

395:                                              ; preds = %394, %387
  %396 = load double, ptr %99, align 8, !tbaa !12
  %397 = load double, ptr %89, align 8, !tbaa !12
  %398 = fcmp ole double %396, %397
  br i1 %398, label %399, label %401

399:                                              ; preds = %395
  %400 = load double, ptr %99, align 8, !tbaa !12
  br label %403

401:                                              ; preds = %395
  %402 = load double, ptr %89, align 8, !tbaa !12
  br label %403

403:                                              ; preds = %401, %399
  %404 = phi double [ %400, %399 ], [ %402, %401 ]
  store double %404, ptr %99, align 8, !tbaa !12
  %405 = load double, ptr %105, align 8, !tbaa !12
  %406 = load double, ptr %89, align 8, !tbaa !12
  %407 = fcmp oge double %405, %406
  br i1 %407, label %408, label %410

408:                                              ; preds = %403
  %409 = load double, ptr %105, align 8, !tbaa !12
  br label %412

410:                                              ; preds = %403
  %411 = load double, ptr %89, align 8, !tbaa !12
  br label %412

412:                                              ; preds = %410, %408
  %413 = phi double [ %409, %408 ], [ %411, %410 ]
  store double %413, ptr %105, align 8, !tbaa !12
  %414 = load ptr, ptr %44, align 8, !tbaa !5
  %415 = load i64, ptr %414, align 8, !tbaa !9
  %416 = icmp ne i64 %415, 0
  br i1 %416, label %417, label %450

417:                                              ; preds = %412
  %418 = load double, ptr %104, align 8, !tbaa !12
  store double %418, ptr %79, align 8, !tbaa !12
  %419 = load double, ptr %89, align 8, !tbaa !12
  %420 = load ptr, ptr %45, align 8, !tbaa !5
  %421 = load i64, ptr %84, align 8, !tbaa !9
  %422 = getelementptr inbounds double, ptr %420, i64 %421
  %423 = load double, ptr %422, align 8, !tbaa !12
  %424 = fmul double %419, %423
  store double %424, ptr %80, align 8, !tbaa !12
  %425 = load double, ptr %79, align 8, !tbaa !12
  %426 = load double, ptr %80, align 8, !tbaa !12
  %427 = fcmp oge double %425, %426
  br i1 %427, label %428, label %430

428:                                              ; preds = %417
  %429 = load double, ptr %79, align 8, !tbaa !12
  br label %432

430:                                              ; preds = %417
  %431 = load double, ptr %80, align 8, !tbaa !12
  br label %432

432:                                              ; preds = %430, %428
  %433 = phi double [ %429, %428 ], [ %431, %430 ]
  store double %433, ptr %104, align 8, !tbaa !12
  %434 = load double, ptr %106, align 8, !tbaa !12
  store double %434, ptr %79, align 8, !tbaa !12
  %435 = load double, ptr %94, align 8, !tbaa !12
  %436 = load ptr, ptr %45, align 8, !tbaa !5
  %437 = load i64, ptr %84, align 8, !tbaa !9
  %438 = getelementptr inbounds double, ptr %436, i64 %437
  %439 = load double, ptr %438, align 8, !tbaa !12
  %440 = fmul double %435, %439
  store double %440, ptr %80, align 8, !tbaa !12
  %441 = load double, ptr %79, align 8, !tbaa !12
  %442 = load double, ptr %80, align 8, !tbaa !12
  %443 = fcmp oge double %441, %442
  br i1 %443, label %444, label %446

444:                                              ; preds = %432
  %445 = load double, ptr %79, align 8, !tbaa !12
  br label %448

446:                                              ; preds = %432
  %447 = load double, ptr %80, align 8, !tbaa !12
  br label %448

448:                                              ; preds = %446, %444
  %449 = phi double [ %445, %444 ], [ %447, %446 ]
  store double %449, ptr %106, align 8, !tbaa !12
  br label %461

450:                                              ; preds = %412
  %451 = load double, ptr %105, align 8, !tbaa !12
  store double %451, ptr %104, align 8, !tbaa !12
  %452 = load double, ptr %106, align 8, !tbaa !12
  %453 = load double, ptr %94, align 8, !tbaa !12
  %454 = fcmp oge double %452, %453
  br i1 %454, label %455, label %457

455:                                              ; preds = %450
  %456 = load double, ptr %106, align 8, !tbaa !12
  br label %459

457:                                              ; preds = %450
  %458 = load double, ptr %94, align 8, !tbaa !12
  br label %459

459:                                              ; preds = %457, %455
  %460 = phi double [ %456, %455 ], [ %458, %457 ]
  store double %460, ptr %106, align 8, !tbaa !12
  br label %461

461:                                              ; preds = %459, %448
  br label %462

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

465:                                              ; preds = %338
  %466 = load double, ptr %104, align 8, !tbaa !12
  %467 = fcmp une double %466, 0.000000e+00
  br i1 %467, label %468, label %472

468:                                              ; preds = %465
  %469 = load double, ptr %106, align 8, !tbaa !12
  %470 = load double, ptr %104, align 8, !tbaa !12
  %471 = fdiv double %469, %470
  store double %471, ptr %97, align 8, !tbaa !12
  br label %479

472:                                              ; preds = %465
  %473 = load double, ptr %106, align 8, !tbaa !12
  %474 = fcmp oeq double %473, 0.000000e+00
  br i1 %474, label %475, label %476

475:                                              ; preds = %472
  store double 0.000000e+00, ptr %97, align 8, !tbaa !12
  br label %478

476:                                              ; preds = %472
  %477 = load double, ptr %107, align 8, !tbaa !12
  store double %477, ptr %97, align 8, !tbaa !12
  br label %478

478:                                              ; preds = %476, %475
  br label %479

479:                                              ; preds = %478, %468
  %480 = load double, ptr %106, align 8, !tbaa !12
  %481 = load double, ptr %92, align 8, !tbaa !12
  %482 = fdiv double %480, %481
  store double %482, ptr %101, align 8, !tbaa !12
  %483 = load double, ptr %98, align 8, !tbaa !12
  %484 = load double, ptr %88, align 8, !tbaa !12
  %485 = fdiv double %483, %484
  store double %485, ptr %102, align 8, !tbaa !12
  %486 = load ptr, ptr %62, align 8, !tbaa !5
  %487 = load i64, ptr %486, align 8, !tbaa !9
  %488 = icmp ne i64 %487, 0
  br i1 %488, label %502, label %489

489:                                              ; preds = %479
  %490 = load double, ptr %99, align 8, !tbaa !12
  %491 = load ptr, ptr %58, align 8, !tbaa !5
  %492 = load double, ptr %491, align 8, !tbaa !12
  %493 = fmul double %490, %492
  %494 = load double, ptr %96, align 8, !tbaa !12
  %495 = load double, ptr %105, align 8, !tbaa !12
  %496 = fmul double %494, %495
  %497 = fcmp olt double %493, %496
  br i1 %497, label %498, label %502

498:                                              ; preds = %489
  %499 = load i64, ptr %100, align 8, !tbaa !9
  %500 = icmp slt i64 %499, 2
  br i1 %500, label %501, label %502

501:                                              ; preds = %498
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %502

502:                                              ; preds = %501, %498, %489, %479
  %503 = load i64, ptr %108, align 8, !tbaa !9
  %504 = icmp eq i64 %503, 3
  br i1 %504, label %505, label %511

505:                                              ; preds = %502
  %506 = load double, ptr %101, align 8, !tbaa !12
  %507 = load ptr, ptr %60, align 8, !tbaa !5
  %508 = load double, ptr %507, align 8, !tbaa !12
  %509 = fcmp ole double %506, %508
  br i1 %509, label %510, label %511

510:                                              ; preds = %505
  store i64 1, ptr %108, align 8, !tbaa !9
  br label %511

511:                                              ; preds = %510, %505, %502
  %512 = load i64, ptr %108, align 8, !tbaa !9
  %513 = icmp eq i64 %512, 1
  br i1 %513, label %514, label %544

514:                                              ; preds = %511
  %515 = load double, ptr %97, align 8, !tbaa !12
  %516 = load double, ptr %95, align 8, !tbaa !12
  %517 = fcmp ole double %515, %516
  br i1 %517, label %518, label %519

518:                                              ; preds = %514
  store i64 2, ptr %108, align 8, !tbaa !9
  br label %538

519:                                              ; preds = %514
  %520 = load double, ptr %101, align 8, !tbaa !12
  %521 = load ptr, ptr %60, align 8, !tbaa !5
  %522 = load double, ptr %521, align 8, !tbaa !12
  %523 = fcmp ogt double %520, %522
  br i1 %523, label %524, label %530

524:                                              ; preds = %519
  %525 = load i64, ptr %100, align 8, !tbaa !9
  %526 = icmp ne i64 %525, 2
  br i1 %526, label %527, label %528

527:                                              ; preds = %524
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %529

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

529:                                              ; preds = %528, %527
  br label %537

530:                                              ; preds = %519
  %531 = load double, ptr %101, align 8, !tbaa !12
  %532 = load double, ptr %82, align 8, !tbaa !12
  %533 = fcmp ogt double %531, %532
  br i1 %533, label %534, label %536

534:                                              ; preds = %530
  %535 = load double, ptr %101, align 8, !tbaa !12
  store double %535, ptr %82, align 8, !tbaa !12
  br label %536

536:                                              ; preds = %534, %530
  br label %537

537:                                              ; preds = %536, %529
  br label %538

538:                                              ; preds = %537, %518
  %539 = load i64, ptr %108, align 8, !tbaa !9
  %540 = icmp sgt i64 %539, 1
  br i1 %540, label %541, label %543

541:                                              ; preds = %538
  %542 = load double, ptr %97, align 8, !tbaa !12
  store double %542, ptr %90, align 8, !tbaa !12
  br label %543

543:                                              ; preds = %541, %538
  br label %544

544:                                              ; preds = %543, %511
  %545 = load i64, ptr %109, align 8, !tbaa !9
  %546 = icmp eq i64 %545, 0
  br i1 %546, label %547, label %553

547:                                              ; preds = %544
  %548 = load double, ptr %98, align 8, !tbaa !12
  %549 = load ptr, ptr %61, align 8, !tbaa !5
  %550 = load double, ptr %549, align 8, !tbaa !12
  %551 = fcmp ole double %548, %550
  br i1 %551, label %552, label %553

552:                                              ; preds = %547
  store i64 1, ptr %109, align 8, !tbaa !9
  br label %553

553:                                              ; preds = %552, %547, %544
  %554 = load i64, ptr %109, align 8, !tbaa !9
  %555 = icmp eq i64 %554, 3
  br i1 %555, label %556, label %562

556:                                              ; preds = %553
  %557 = load double, ptr %102, align 8, !tbaa !12
  %558 = load ptr, ptr %60, align 8, !tbaa !5
  %559 = load double, ptr %558, align 8, !tbaa !12
  %560 = fcmp ole double %557, %559
  br i1 %560, label %561, label %562

561:                                              ; preds = %556
  store i64 1, ptr %109, align 8, !tbaa !9
  br label %562

562:                                              ; preds = %561, %556, %553
  %563 = load i64, ptr %109, align 8, !tbaa !9
  %564 = icmp eq i64 %563, 1
  br i1 %564, label %565, label %603

565:                                              ; preds = %562
  %566 = load double, ptr %98, align 8, !tbaa !12
  %567 = load double, ptr %95, align 8, !tbaa !12
  %568 = fcmp ole double %566, %567
  br i1 %568, label %569, label %570

569:                                              ; preds = %565
  store i64 2, ptr %109, align 8, !tbaa !9
  br label %597

570:                                              ; preds = %565
  %571 = load double, ptr %98, align 8, !tbaa !12
  %572 = load ptr, ptr %61, align 8, !tbaa !5
  %573 = load double, ptr %572, align 8, !tbaa !12
  %574 = fcmp ogt double %571, %573
  br i1 %574, label %575, label %577

575:                                              ; preds = %570
  store i64 0, ptr %109, align 8, !tbaa !9
  store double 0.000000e+00, ptr %83, align 8, !tbaa !12
  %576 = load double, ptr %107, align 8, !tbaa !12
  store double %576, ptr %91, align 8, !tbaa !12
  br label %596

577:                                              ; preds = %570
  %578 = load double, ptr %102, align 8, !tbaa !12
  %579 = load ptr, ptr %60, align 8, !tbaa !5
  %580 = load double, ptr %579, align 8, !tbaa !12
  %581 = fcmp ogt double %578, %580
  br i1 %581, label %582, label %588

582:                                              ; preds = %577
  %583 = load i64, ptr %100, align 8, !tbaa !9
  %584 = icmp ne i64 %583, 2
  br i1 %584, label %585, label %586

585:                                              ; preds = %582
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %587

586:                                              ; preds = %582
  store i64 3, ptr %109, align 8, !tbaa !9
  br label %587

587:                                              ; preds = %586, %585
  br label %595

588:                                              ; preds = %577
  %589 = load double, ptr %102, align 8, !tbaa !12
  %590 = load double, ptr %83, align 8, !tbaa !12
  %591 = fcmp ogt double %589, %590
  br i1 %591, label %592, label %594

592:                                              ; preds = %588
  %593 = load double, ptr %102, align 8, !tbaa !12
  store double %593, ptr %83, align 8, !tbaa !12
  br label %594

594:                                              ; preds = %592, %588
  br label %595

595:                                              ; preds = %594, %587
  br label %596

596:                                              ; preds = %595, %575
  br label %597

597:                                              ; preds = %596, %569
  %598 = load i64, ptr %109, align 8, !tbaa !9
  %599 = icmp sgt i64 %598, 1
  br i1 %599, label %600, label %602

600:                                              ; preds = %597
  %601 = load double, ptr %98, align 8, !tbaa !12
  store double %601, ptr %91, align 8, !tbaa !12
  br label %602

602:                                              ; preds = %600, %597
  br label %603

603:                                              ; preds = %602, %562
  %604 = load i64, ptr %108, align 8, !tbaa !9
  %605 = icmp ne i64 %604, 1
  br i1 %605, label %606, label %626

606:                                              ; preds = %603
  %607 = load ptr, ptr %62, align 8, !tbaa !5
  %608 = load i64, ptr %607, align 8, !tbaa !9
  %609 = icmp ne i64 %608, 0
  br i1 %609, label %610, label %611

610:                                              ; preds = %606
  br label %680

611:                                              ; preds = %606
  %612 = load i64, ptr %109, align 8, !tbaa !9
  %613 = icmp eq i64 %612, 3
  br i1 %613, label %617, label %614

614:                                              ; preds = %611
  %615 = load i64, ptr %109, align 8, !tbaa !9
  %616 = icmp eq i64 %615, 2
  br i1 %616, label %617, label %618

617:                                              ; preds = %614, %611
  br label %680

618:                                              ; preds = %614
  %619 = load i64, ptr %109, align 8, !tbaa !9
  %620 = icmp eq i64 %619, 0
  br i1 %620, label %621, label %625

621:                                              ; preds = %618
  %622 = load i64, ptr %93, align 8, !tbaa !9
  %623 = icmp sgt i64 %622, 1
  br i1 %623, label %624, label %625

624:                                              ; preds = %621
  br label %680

625:                                              ; preds = %621, %618
  br label %626

626:                                              ; preds = %625, %603
  %627 = load i64, ptr %87, align 8, !tbaa !9
  %628 = icmp ne i64 %627, 0
  br i1 %628, label %629, label %646

629:                                              ; preds = %626
  store i64 0, ptr %87, align 8, !tbaa !9
  %630 = load i64, ptr %100, align 8, !tbaa !9
  %631 = add nsw i64 %630, 1
  store i64 %631, ptr %100, align 8, !tbaa !9
  %632 = load ptr, ptr %35, align 8, !tbaa !5
  %633 = load i64, ptr %632, align 8, !tbaa !9
  store i64 %633, ptr %78, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %634

634:                                              ; preds = %642, %629
  %635 = load i64, ptr %84, align 8, !tbaa !9
  %636 = load i64, ptr %78, align 8, !tbaa !9
  %637 = icmp sle i64 %635, %636
  br i1 %637, label %638, label %645

638:                                              ; preds = %634
  %639 = load ptr, ptr %57, align 8, !tbaa !5
  %640 = load i64, ptr %84, align 8, !tbaa !9
  %641 = getelementptr inbounds double, ptr %639, i64 %640
  store double 0.000000e+00, ptr %641, align 8, !tbaa !12
  br label %642

642:                                              ; preds = %638
  %643 = load i64, ptr %84, align 8, !tbaa !9
  %644 = add nsw i64 %643, 1
  store i64 %644, ptr %84, align 8, !tbaa !9
  br label %634, !llvm.loop !17

645:                                              ; preds = %634
  br label %646

646:                                              ; preds = %645, %626
  %647 = load double, ptr %106, align 8, !tbaa !12
  store double %647, ptr %92, align 8, !tbaa !12
  %648 = load double, ptr %98, align 8, !tbaa !12
  store double %648, ptr %88, align 8, !tbaa !12
  %649 = load i64, ptr %100, align 8, !tbaa !9
  %650 = icmp slt i64 %649, 2
  br i1 %650, label %651, label %662

651:                                              ; preds = %646
  %652 = load ptr, ptr %35, align 8, !tbaa !5
  %653 = load ptr, ptr %56, align 8, !tbaa !5
  %654 = getelementptr inbounds double, ptr %653, i64 1
  %655 = load ptr, ptr %48, align 8, !tbaa !5
  %656 = load i64, ptr %85, align 8, !tbaa !9
  %657 = load i64, ptr %70, align 8, !tbaa !9
  %658 = mul nsw i64 %656, %657
  %659 = add nsw i64 %658, 1
  %660 = getelementptr inbounds double, ptr %655, i64 %659
  %661 = call i32 @f2c_daxpy(ptr noundef %652, ptr noundef @c_b8, ptr noundef %654, ptr noundef @c__1, ptr noundef %660, ptr noundef @c__1)
  br label %675

662:                                              ; preds = %646
  %663 = load ptr, ptr %35, align 8, !tbaa !5
  %664 = load ptr, ptr %48, align 8, !tbaa !5
  %665 = load i64, ptr %85, align 8, !tbaa !9
  %666 = load i64, ptr %70, align 8, !tbaa !9
  %667 = mul nsw i64 %665, %666
  %668 = add nsw i64 %667, 1
  %669 = getelementptr inbounds double, ptr %664, i64 %668
  %670 = load ptr, ptr %57, align 8, !tbaa !5
  %671 = getelementptr inbounds double, ptr %670, i64 1
  %672 = load ptr, ptr %56, align 8, !tbaa !5
  %673 = getelementptr inbounds double, ptr %672, i64 1
  %674 = call i32 @dla_wwaddw__(ptr noundef %663, ptr noundef %669, ptr noundef %671, ptr noundef %673)
  br label %675

675:                                              ; preds = %662, %651
  br label %676

676:                                              ; preds = %675
  %677 = load i64, ptr %93, align 8, !tbaa !9
  %678 = add nsw i64 %677, 1
  store i64 %678, ptr %93, align 8, !tbaa !9
  br label %232, !llvm.loop !18

679:                                              ; preds = %232
  br label %680

680:                                              ; preds = %679, %624, %617, %610
  %681 = load i64, ptr %108, align 8, !tbaa !9
  %682 = icmp eq i64 %681, 1
  br i1 %682, label %683, label %685

683:                                              ; preds = %680
  %684 = load double, ptr %97, align 8, !tbaa !12
  store double %684, ptr %90, align 8, !tbaa !12
  br label %685

685:                                              ; preds = %683, %680
  %686 = load i64, ptr %109, align 8, !tbaa !9
  %687 = icmp eq i64 %686, 1
  br i1 %687, label %688, label %690

688:                                              ; preds = %685
  %689 = load double, ptr %98, align 8, !tbaa !12
  store double %689, ptr %91, align 8, !tbaa !12
  br label %690

690:                                              ; preds = %688, %685
  %691 = load ptr, ptr %51, align 8, !tbaa !5
  %692 = load i64, ptr %691, align 8, !tbaa !9
  %693 = icmp sge i64 %692, 1
  br i1 %693, label %694, label %705

694:                                              ; preds = %690
  %695 = load double, ptr %90, align 8, !tbaa !12
  %696 = load double, ptr %82, align 8, !tbaa !12
  %697 = fsub double 1.000000e+00, %696
  %698 = fdiv double %695, %697
  %699 = load ptr, ptr %52, align 8, !tbaa !5
  %700 = load i64, ptr %85, align 8, !tbaa !9
  %701 = load i64, ptr %72, align 8, !tbaa !9
  %702 = shl i64 %701, 1
  %703 = add nsw i64 %700, %702
  %704 = getelementptr inbounds double, ptr %699, i64 %703
  store double %698, ptr %704, align 8, !tbaa !12
  br label %705

705:                                              ; preds = %694, %690
  %706 = load ptr, ptr %51, align 8, !tbaa !5
  %707 = load i64, ptr %706, align 8, !tbaa !9
  %708 = icmp sge i64 %707, 2
  br i1 %708, label %709, label %720

709:                                              ; preds = %705
  %710 = load double, ptr %91, align 8, !tbaa !12
  %711 = load double, ptr %83, align 8, !tbaa !12
  %712 = fsub double 1.000000e+00, %711
  %713 = fdiv double %710, %712
  %714 = load ptr, ptr %53, align 8, !tbaa !5
  %715 = load i64, ptr %85, align 8, !tbaa !9
  %716 = load i64, ptr %74, align 8, !tbaa !9
  %717 = shl i64 %716, 1
  %718 = add nsw i64 %715, %717
  %719 = getelementptr inbounds double, ptr %714, i64 %718
  store double %713, ptr %719, align 8, !tbaa !12
  br label %720

720:                                              ; preds = %709, %705
  %721 = load ptr, ptr %35, align 8, !tbaa !5
  %722 = load ptr, ptr %46, align 8, !tbaa !5
  %723 = load i64, ptr %85, align 8, !tbaa !9
  %724 = load i64, ptr %68, align 8, !tbaa !9
  %725 = mul nsw i64 %723, %724
  %726 = add nsw i64 %725, 1
  %727 = getelementptr inbounds double, ptr %722, i64 %726
  %728 = load ptr, ptr %54, align 8, !tbaa !5
  %729 = getelementptr inbounds double, ptr %728, i64 1
  %730 = call i32 @f2c_dcopy(ptr noundef %721, ptr noundef %727, ptr noundef @c__1, ptr noundef %729, ptr noundef @c__1)
  %731 = getelementptr inbounds [1 x i8], ptr %103, i64 0, i64 0
  %732 = load ptr, ptr %35, align 8, !tbaa !5
  %733 = load ptr, ptr %35, align 8, !tbaa !5
  %734 = load ptr, ptr %36, align 8, !tbaa !5
  %735 = load ptr, ptr %37, align 8, !tbaa !5
  %736 = load ptr, ptr %39, align 8, !tbaa !5
  %737 = load i64, ptr %65, align 8, !tbaa !9
  %738 = getelementptr inbounds double, ptr %736, i64 %737
  %739 = load ptr, ptr %40, align 8, !tbaa !5
  %740 = load ptr, ptr %48, align 8, !tbaa !5
  %741 = load i64, ptr %85, align 8, !tbaa !9
  %742 = load i64, ptr %70, align 8, !tbaa !9
  %743 = mul nsw i64 %741, %742
  %744 = add nsw i64 %743, 1
  %745 = getelementptr inbounds double, ptr %740, i64 %744
  %746 = load ptr, ptr %54, align 8, !tbaa !5
  %747 = getelementptr inbounds double, ptr %746, i64 1
  %748 = call i32 @f2c_dgbmv(ptr noundef %731, ptr noundef %732, ptr noundef %733, ptr noundef %734, ptr noundef %735, ptr noundef @c_b6, ptr noundef %738, ptr noundef %739, ptr noundef %745, ptr noundef @c__1, ptr noundef @c_b8, ptr noundef %747, ptr noundef @c__1)
  %749 = load ptr, ptr %35, align 8, !tbaa !5
  %750 = load i64, ptr %749, align 8, !tbaa !9
  store i64 %750, ptr %77, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %751

751:                                              ; preds = %776, %720
  %752 = load i64, ptr %84, align 8, !tbaa !9
  %753 = load i64, ptr %77, align 8, !tbaa !9
  %754 = icmp sle i64 %752, %753
  br i1 %754, label %755, label %779

755:                                              ; preds = %751
  %756 = load ptr, ptr %46, align 8, !tbaa !5
  %757 = load i64, ptr %84, align 8, !tbaa !9
  %758 = load i64, ptr %85, align 8, !tbaa !9
  %759 = load i64, ptr %68, align 8, !tbaa !9
  %760 = mul nsw i64 %758, %759
  %761 = add nsw i64 %757, %760
  %762 = getelementptr inbounds double, ptr %756, i64 %761
  %763 = load double, ptr %762, align 8, !tbaa !12
  store double %763, ptr %79, align 8, !tbaa !12
  %764 = load double, ptr %79, align 8, !tbaa !12
  %765 = fcmp oge double %764, 0.000000e+00
  br i1 %765, label %766, label %768

766:                                              ; preds = %755
  %767 = load double, ptr %79, align 8, !tbaa !12
  br label %771

768:                                              ; preds = %755
  %769 = load double, ptr %79, align 8, !tbaa !12
  %770 = fneg double %769
  br label %771

771:                                              ; preds = %768, %766
  %772 = phi double [ %767, %766 ], [ %770, %768 ]
  %773 = load ptr, ptr %55, align 8, !tbaa !5
  %774 = load i64, ptr %84, align 8, !tbaa !9
  %775 = getelementptr inbounds double, ptr %773, i64 %774
  store double %772, ptr %775, align 8, !tbaa !12
  br label %776

776:                                              ; preds = %771
  %777 = load i64, ptr %84, align 8, !tbaa !9
  %778 = add nsw i64 %777, 1
  store i64 %778, ptr %84, align 8, !tbaa !9
  br label %751, !llvm.loop !19

779:                                              ; preds = %751
  %780 = load ptr, ptr %34, align 8, !tbaa !5
  %781 = load ptr, ptr %35, align 8, !tbaa !5
  %782 = load ptr, ptr %35, align 8, !tbaa !5
  %783 = load ptr, ptr %36, align 8, !tbaa !5
  %784 = load ptr, ptr %37, align 8, !tbaa !5
  %785 = load ptr, ptr %39, align 8, !tbaa !5
  %786 = load i64, ptr %65, align 8, !tbaa !9
  %787 = getelementptr inbounds double, ptr %785, i64 %786
  %788 = load ptr, ptr %40, align 8, !tbaa !5
  %789 = load ptr, ptr %48, align 8, !tbaa !5
  %790 = load i64, ptr %85, align 8, !tbaa !9
  %791 = load i64, ptr %70, align 8, !tbaa !9
  %792 = mul nsw i64 %790, %791
  %793 = add nsw i64 %792, 1
  %794 = getelementptr inbounds double, ptr %789, i64 %793
  %795 = load ptr, ptr %55, align 8, !tbaa !5
  %796 = getelementptr inbounds double, ptr %795, i64 1
  %797 = call i32 @dla_gbamv__(ptr noundef %780, ptr noundef %781, ptr noundef %782, ptr noundef %783, ptr noundef %784, ptr noundef @c_b8, ptr noundef %787, ptr noundef %788, ptr noundef %794, ptr noundef @c__1, ptr noundef @c_b8, ptr noundef %796, ptr noundef @c__1)
  %798 = load ptr, ptr %35, align 8, !tbaa !5
  %799 = load ptr, ptr %35, align 8, !tbaa !5
  %800 = load ptr, ptr %54, align 8, !tbaa !5
  %801 = getelementptr inbounds double, ptr %800, i64 1
  %802 = load ptr, ptr %55, align 8, !tbaa !5
  %803 = getelementptr inbounds double, ptr %802, i64 1
  %804 = load ptr, ptr %50, align 8, !tbaa !5
  %805 = load i64, ptr %85, align 8, !tbaa !9
  %806 = getelementptr inbounds double, ptr %804, i64 %805
  %807 = call i32 @dla_lin_berr__(ptr noundef %798, ptr noundef %799, ptr noundef @c__1, ptr noundef %801, ptr noundef %803, ptr noundef %806)
  br label %808

808:                                              ; preds = %779
  %809 = load i64, ptr %85, align 8, !tbaa !9
  %810 = add nsw i64 %809, 1
  store i64 %810, ptr %85, align 8, !tbaa !9
  br label %201, !llvm.loop !20

811:                                              ; preds = %201
  store i32 0, ptr %32, align 4
  store i32 1, ptr %110, align 4
  br label %812

812:                                              ; preds = %811, %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 8, ptr %107) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #3
  call void @llvm.lifetime.end.p0(i64 8, 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
  %813 = load i32, ptr %32, align 4
  ret i32 %813
}

; 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 @dlamch_(ptr noundef) #2

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

declare i32 @f2c_dgbmv(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_dgbmv_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_dgbmv2_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 @dgbtrs_(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_daxpy(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare i32 @dla_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 @dla_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 = !{!"double", !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 double, align 8
@c_b8 = external hidden global double, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @dla_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 double, ptr %20, i64 %38
  %40 = getelementptr inbounds double, ptr %19, i64 %38
  %41 = getelementptr inbounds i8, ptr %12, i64 -8
  %42 = load i64, ptr %14, align 8, !tbaa !5
  %43 = xor i64 %42, -1
  %44 = getelementptr inbounds double, ptr %13, i64 %43
  %45 = load i64, ptr %16, align 8, !tbaa !5
  %46 = xor i64 %45, -1
  %47 = getelementptr inbounds double, ptr %15, i64 %46
  %48 = getelementptr inbounds i8, ptr %17, i64 -8
  %49 = getelementptr inbounds i8, ptr %22, i64 -8
  %50 = getelementptr inbounds i8, ptr %23, i64 -8
  %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 @dlamch_(ptr noundef nonnull @.str) #4
  %55 = call double @dlamch_(ptr noundef nonnull @.str.1) #4
  %56 = fmul double %55, %55
  %57 = load i64, ptr %2, align 8, !tbaa !5
  %58 = sitofp i64 %57 to double
  %59 = fmul double %54, %58
  %60 = load i64, ptr %3, align 8, !tbaa !5
  %61 = load i64, ptr %4, align 8, !tbaa !5
  %62 = add i64 %60, 1
  %63 = add i64 %62, %61
  store i64 %63, ptr %35, align 8, !tbaa !5
  %64 = load i64, ptr %5, align 8, !tbaa !5
  %invariant.gep511 = getelementptr i8, ptr %44, i64 8
  %invariant.gep513 = getelementptr i8, ptr %47, i64 8
  %.not374515 = icmp slt i64 %64, 1
  br i1 %.not374515, label %.loopexit446, label %.lr.ph518

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

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

.lr.ph486:                                        ; preds = %67
  %71 = mul nsw i64 %.0358516, %42
  %gep463 = getelementptr double, ptr %invariant.gep511, i64 %71
  %72 = mul nsw i64 %.0358516, %45
  %gep465 = getelementptr double, ptr %invariant.gep513, i64 %72
  %invariant.gep = getelementptr double, ptr %47, i64 %72
  br label %73

73:                                               ; preds = %.lr.ph486, %179
  %.0484 = phi i64 [ 0, %.lr.ph486 ], [ %.4, %179 ]
  %.0319483 = phi i64 [ 1, %.lr.ph486 ], [ %.3322, %179 ]
  %.0329482 = phi i64 [ 1, %.lr.ph486 ], [ %.1330, %179 ]
  %.0332481 = phi double [ %56, %.lr.ph486 ], [ %.1333.lcssa540, %179 ]
  %.0340480 = phi i64 [ 1, %.lr.ph486 ], [ %180, %179 ]
  %.0341479 = phi double [ %56, %.lr.ph486 ], [ %.0324.lcssa547, %179 ]
  %.0342478 = phi double [ %56, %.lr.ph486 ], [ %.2344, %179 ]
  %.0347477 = phi double [ %56, %.lr.ph486 ], [ %.1348, %179 ]
  %.0363476 = phi double [ 0.000000e+00, %.lr.ph486 ], [ %.2365, %179 ]
  %.0367475 = phi double [ 0.000000e+00, %.lr.ph486 ], [ %.2369, %179 ]
  %74 = call i32 @f2c_dcopy(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 %79 [
    i64 0, label %75
    i64 1, label %77
  ]

75:                                               ; preds = %73
  %76 = call i32 @f2c_dgbmv(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 %81

77:                                               ; preds = %73
  %78 = call i32 @blas_dgbmv_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 %81

79:                                               ; preds = %73
  %80 = call i32 @blas_dgbmv2_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 %81

81:                                               ; preds = %77, %79, %75
  %82 = call i32 @f2c_dcopy(ptr noundef nonnull %2, ptr noundef %21, ptr noundef nonnull @c__1, ptr noundef %23, ptr noundef nonnull @c__1) #4
  %83 = call i32 @dgbtrs_(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
  %84 = load i64, ptr %2, align 8, !tbaa !5
  %.not376447 = icmp slt i64 %84, 1
  br i1 %.not376447, label %._crit_edge.thread, label %.lr.ph

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

86:                                               ; preds = %.lr.ph, %116
  %.0324453 = phi double [ 0.000000e+00, %.lr.ph ], [ %118, %116 ]
  %.0326452 = phi double [ 0.000000e+00, %.lr.ph ], [ %108, %116 ]
  %.0327451 = phi double [ 0.000000e+00, %.lr.ph ], [ %.1328, %116 ]
  %.0331450 = phi double [ %56, %.lr.ph ], [ %106, %116 ]
  %.1333449 = phi double [ 0.000000e+00, %.lr.ph ], [ %.2334, %116 ]
  %.1360448 = phi i64 [ 1, %.lr.ph ], [ %119, %116 ]
  %gep = getelementptr double, ptr %invariant.gep, i64 %.1360448
  %87 = load double, ptr %gep, align 8, !tbaa !10
  %88 = fcmp oge double %87, 0.000000e+00
  %89 = fneg double %87
  %90 = select i1 %88, double %87, double %89
  %91 = getelementptr inbounds double, ptr %50, i64 %.1360448
  %92 = load double, ptr %91, align 8, !tbaa !10
  %93 = fcmp oge double %92, 0.000000e+00
  %94 = fneg double %92
  %95 = select i1 %93, double %92, double %94
  %96 = fcmp une double %87, 0.000000e+00
  br i1 %96, label %97, label %101

97:                                               ; preds = %86
  %98 = fdiv double %95, %90
  %99 = fcmp oge double %.1333449, %98
  %100 = select i1 %99, double %.1333449, double %98
  br label %104

101:                                              ; preds = %86
  %102 = fcmp une double %92, 0.000000e+00
  br i1 %102, label %103, label %104

103:                                              ; preds = %101
  br label %104

104:                                              ; preds = %101, %103, %97
  %.2334 = phi double [ %100, %97 ], [ %56, %103 ], [ %.1333449, %101 ]
  %105 = fcmp ole double %.0331450, %90
  %106 = select i1 %105, double %.0331450, double %90
  %107 = fcmp oge double %.0326452, %90
  %108 = select i1 %107, double %.0326452, double %90
  br i1 %.not386, label %116, label %109

109:                                              ; preds = %104
  %110 = getelementptr inbounds double, ptr %41, i64 %.1360448
  %111 = load double, ptr %110, align 8, !tbaa !10
  %112 = fmul double %90, %111
  %113 = fcmp oge double %.0327451, %112
  %114 = select i1 %113, double %.0327451, double %112
  %115 = fmul double %95, %111
  br label %116

116:                                              ; preds = %104, %109
  %.sink608 = phi double [ %115, %109 ], [ %95, %104 ]
  %.1328 = phi double [ %114, %109 ], [ %108, %104 ]
  %117 = fcmp oge double %.0324453, %.sink608
  %118 = select i1 %117, double %.0324453, double %.sink608
  %119 = add nuw i64 %.1360448, 1
  %exitcond.not = icmp eq i64 %.1360448, %84
  br i1 %exitcond.not, label %._crit_edge, label %86, !llvm.loop !12

._crit_edge:                                      ; preds = %116
  %120 = fcmp une double %.1328, 0.000000e+00
  br i1 %120, label %121, label %._crit_edge.thread

121:                                              ; preds = %._crit_edge
  %122 = fdiv double %118, %.1328
  br label %124

._crit_edge.thread:                               ; preds = %81, %._crit_edge
  %.0324.lcssa546 = phi double [ %118, %._crit_edge ], [ 0.000000e+00, %81 ]
  %.0326.lcssa545 = phi double [ %108, %._crit_edge ], [ 0.000000e+00, %81 ]
  %.0331.lcssa543 = phi double [ %106, %._crit_edge ], [ %56, %81 ]
  %.1333.lcssa541 = phi double [ %.2334, %._crit_edge ], [ 0.000000e+00, %81 ]
  %123 = fcmp oeq double %.0324.lcssa546, 0.000000e+00
  %. = select i1 %123, double 0.000000e+00, double %56
  br label %124

124:                                              ; preds = %._crit_edge.thread, %121
  %.0324.lcssa547 = phi double [ %118, %121 ], [ %.0324.lcssa546, %._crit_edge.thread ]
  %.0326.lcssa544 = phi double [ %108, %121 ], [ %.0326.lcssa545, %._crit_edge.thread ]
  %.0331.lcssa542 = phi double [ %106, %121 ], [ %.0331.lcssa543, %._crit_edge.thread ]
  %.1333.lcssa540 = phi double [ %.2334, %121 ], [ %.1333.lcssa541, %._crit_edge.thread ]
  %.1337 = phi double [ %122, %121 ], [ %., %._crit_edge.thread ]
  %125 = fdiv double %.0324.lcssa547, %.0341479
  %126 = fdiv double %.1333.lcssa540, %.0332481
  %127 = load i64, ptr %29, align 8, !tbaa !5
  %.not377 = icmp eq i64 %127, 0
  br i1 %.not377, label %128, label %134

128:                                              ; preds = %124
  %129 = load double, ptr %25, align 8, !tbaa !10
  %130 = fmul double %.0331.lcssa542, %129
  %131 = fmul double %59, %.0326.lcssa544
  %132 = fcmp olt double %130, %131
  %133 = icmp slt i64 %.0329482, 2
  %or.cond = and i1 %133, %132
  %spec.select = zext i1 %or.cond to i64
  br label %134

134:                                              ; preds = %128, %124
  %.1353 = phi i64 [ 0, %124 ], [ %spec.select, %128 ]
  switch i64 %.0319483, label %.thread393 [
    i64 3, label %135
    i64 1, label %.thread
  ]

135:                                              ; preds = %134
  %136 = load double, ptr %27, align 8, !tbaa !10
  %137 = fcmp ugt double %125, %136
  br i1 %137, label %.thread393, label %.thread

.thread:                                          ; preds = %134, %135
  %138 = fcmp ugt double %.1337, %54
  br i1 %138, label %139, label %.thread393

139:                                              ; preds = %.thread
  %140 = load double, ptr %27, align 8, !tbaa !10
  %141 = fcmp ogt double %125, %140
  br i1 %141, label %145, label %142

142:                                              ; preds = %139
  %143 = fcmp ogt double %125, %.0367475
  br i1 %143, label %144, label %.thread393

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

145:                                              ; preds = %139
  %.not378 = icmp eq i64 %.0329482, 2
  br i1 %.not378, label %146, label %.thread393

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

.thread393:                                       ; preds = %134, %142, %144, %.thread, %135, %145, %146
  %.2369 = phi double [ %.0367475, %145 ], [ %.0367475, %146 ], [ %.0367475, %135 ], [ %.0367475, %.thread ], [ %.0367475, %142 ], [ %125, %144 ], [ %.0367475, %134 ]
  %.3355 = phi i64 [ 1, %145 ], [ %.1353, %146 ], [ %.1353, %135 ], [ %.1353, %.thread ], [ %.1353, %142 ], [ %.1353, %144 ], [ %.1353, %134 ]
  %.1348 = phi double [ %.0347477, %145 ], [ %.1337, %146 ], [ %.0347477, %135 ], [ %.1337, %.thread ], [ %.0347477, %142 ], [ %.0347477, %144 ], [ %.0347477, %134 ]
  %.3322 = phi i64 [ 1, %145 ], [ 3, %146 ], [ 3, %135 ], [ 2, %.thread ], [ 1, %142 ], [ 1, %144 ], [ %.0319483, %134 ]
  switch i64 %.0484, label %.thread411 [
    i64 0, label %147
    i64 3, label %150
    i64 1, label %.thread409
  ]

147:                                              ; preds = %.thread393
  %148 = load double, ptr %28, align 8, !tbaa !10
  %149 = fcmp ugt double %.1333.lcssa540, %148
  br i1 %149, label %.thread411, label %.thread409

150:                                              ; preds = %.thread393
  %151 = load double, ptr %27, align 8, !tbaa !10
  %152 = fcmp ugt double %126, %151
  br i1 %152, label %.thread411, label %.thread409

.thread409:                                       ; preds = %.thread393, %147, %150
  %153 = fcmp ugt double %.1333.lcssa540, %54
  br i1 %153, label %154, label %.thread411

154:                                              ; preds = %.thread409
  %155 = load double, ptr %28, align 8, !tbaa !10
  %156 = fcmp ogt double %.1333.lcssa540, %155
  br i1 %156, label %.thread411, label %157

157:                                              ; preds = %154
  %158 = load double, ptr %27, align 8, !tbaa !10
  %159 = fcmp ogt double %126, %158
  br i1 %159, label %163, label %160

160:                                              ; preds = %157
  %161 = fcmp ogt double %126, %.0363476
  br i1 %161, label %162, label %.thread411

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

163:                                              ; preds = %157
  %.not379 = icmp eq i64 %.0329482, 2
  br i1 %.not379, label %164, label %.thread411

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

.thread411:                                       ; preds = %.thread393, %147, %154, %160, %162, %.thread409, %150, %163, %164
  %.2365 = phi double [ %.0363476, %163 ], [ %.0363476, %164 ], [ %.0363476, %150 ], [ %.0363476, %.thread409 ], [ 0.000000e+00, %154 ], [ %.0363476, %160 ], [ %126, %162 ], [ %.0363476, %147 ], [ %.0363476, %.thread393 ]
  %.5357 = phi i64 [ 1, %163 ], [ %.3355, %164 ], [ %.3355, %150 ], [ %.3355, %.thread409 ], [ %.3355, %154 ], [ %.3355, %160 ], [ %.3355, %162 ], [ %.3355, %147 ], [ %.3355, %.thread393 ]
  %.2344 = phi double [ %.0342478, %163 ], [ %.1333.lcssa540, %164 ], [ %.0342478, %150 ], [ %.1333.lcssa540, %.thread409 ], [ %56, %154 ], [ %.0342478, %160 ], [ %.0342478, %162 ], [ %.0342478, %147 ], [ %.0342478, %.thread393 ]
  %.4 = phi i64 [ 1, %163 ], [ 3, %164 ], [ 3, %150 ], [ 2, %.thread409 ], [ 0, %154 ], [ 1, %160 ], [ 1, %162 ], [ 0, %147 ], [ %.0484, %.thread393 ]
  %.not380 = icmp eq i64 %.3322, 1
  br i1 %.not380, label %170, label %165

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

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

170:                                              ; preds = %167, %.thread411
  %.not382 = icmp eq i64 %.5357, 0
  br i1 %.not382, label %.loopexit, label %171

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

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

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

175:                                              ; preds = %.loopexit
  %176 = call i32 @f2c_daxpy(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 %179

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

179:                                              ; preds = %175, %177
  %180 = add nuw i64 %.0340480, 1
  %exitcond532.not = icmp eq i64 %.0340480, %70
  br i1 %exitcond532.not, label %._crit_edge487, label %73, !llvm.loop !14

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

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

._crit_edge487.thread568:                         ; preds = %165, %._crit_edge487, %182
  %183 = phi double [ %.1348, %._crit_edge487 ], [ %.1337, %182 ], [ %.1348, %165 ]
  %184 = icmp eq i64 %.4, 1
  br i1 %184, label %185, label %.thread427

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

.thread427:                                       ; preds = %167, %67, %._crit_edge487.thread568, %185
  %.3350440 = phi double [ %183, %185 ], [ %183, %._crit_edge487.thread568 ], [ %56, %67 ], [ %.1348, %167 ]
  %.3366439 = phi double [ %.2365, %185 ], [ %.2365, %._crit_edge487.thread568 ], [ 0.000000e+00, %67 ], [ %.2365, %167 ]
  %.3370438 = phi double [ %.2369, %185 ], [ %.2369, %._crit_edge487.thread568 ], [ 0.000000e+00, %67 ], [ %.2369, %167 ]
  %186 = phi double [ %.1333.lcssa540, %185 ], [ %.2344, %._crit_edge487.thread568 ], [ %56, %67 ], [ %.2344, %167 ]
  %187 = load i64, ptr %18, align 8, !tbaa !5
  %188 = icmp sgt i64 %187, 0
  br i1 %188, label %189, label %.thread441

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

192:                                              ; preds = %189
  %193 = fsub double 1.000000e+00, %.3366439
  %194 = fdiv double %186, %193
  %gep522 = getelementptr double, ptr %invariant.gep521, i64 %.0358516
  store double %194, ptr %gep522, align 8, !tbaa !10
  br label %.thread441

.thread441:                                       ; preds = %.thread427, %192, %189
  %195 = mul nsw i64 %.0358516, %42
  %gep512 = getelementptr double, ptr %invariant.gep511, i64 %195
  %196 = call i32 @f2c_dcopy(ptr noundef nonnull %2, ptr noundef %gep512, ptr noundef nonnull @c__1, ptr noundef %21, ptr noundef nonnull @c__1) #4
  %197 = mul nsw i64 %.0358516, %45
  %gep514 = getelementptr double, ptr %invariant.gep513, i64 %197
  %198 = call i32 @f2c_dgbmv(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
  %199 = load i64, ptr %2, align 8, !tbaa !5
  %invariant.gep505 = getelementptr double, ptr %44, i64 %195
  %.not385507 = icmp slt i64 %199, 1
  br i1 %.not385507, label %._crit_edge510, label %.lr.ph509.preheader

.lr.ph509.preheader:                              ; preds = %.thread441
  %min.iters.check = icmp ult i64 %199, 4
  %diff.check = icmp ult i64 %69, 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 %199, 9223372036854775804
  %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
  %200 = getelementptr double, ptr %invariant.gep505, i64 %offset.idx
  %201 = getelementptr i8, ptr %200, i64 16
  %wide.load = load <2 x double>, ptr %200, align 8, !tbaa !10
  %wide.load632 = load <2 x double>, ptr %201, align 8, !tbaa !10
  %202 = fcmp oge <2 x double> %wide.load, zeroinitializer
  %203 = fcmp oge <2 x double> %wide.load632, zeroinitializer
  %204 = fneg <2 x double> %wide.load
  %205 = fneg <2 x double> %wide.load632
  %206 = select <2 x i1> %202, <2 x double> %wide.load, <2 x double> %204
  %207 = select <2 x i1> %203, <2 x double> %wide.load632, <2 x double> %205
  %208 = getelementptr double, ptr %22, i64 %index
  %209 = getelementptr inbounds i8, ptr %208, i64 16
  store <2 x double> %206, ptr %208, align 8, !tbaa !10
  store <2 x double> %207, ptr %209, align 8, !tbaa !10
  %index.next = add nuw i64 %index, 4
  %210 = icmp eq i64 %index.next, %n.vec
  br i1 %210, label %middle.block, label %vector.body, !llvm.loop !15

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %199, %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 %199, 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 double, ptr %invariant.gep505, i64 %.3362508.ph
  %211 = load double, ptr %gep506.prol, align 8, !tbaa !10
  %212 = fcmp oge double %211, 0.000000e+00
  %213 = fneg double %211
  %214 = select i1 %212, double %211, double %213
  %215 = getelementptr inbounds double, ptr %49, i64 %.3362508.ph
  store double %214, ptr %215, align 8, !tbaa !10
  %216 = 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 ], [ %216, %.lr.ph509.prol ]
  %217 = icmp eq i64 %199, %.3362508.ph
  br i1 %217, label %._crit_edge510, label %.lr.ph509

.lr.ph509:                                        ; preds = %.lr.ph509.prol.loopexit, %.lr.ph509
  %.3362508 = phi i64 [ %229, %.lr.ph509 ], [ %.3362508.unr, %.lr.ph509.prol.loopexit ]
  %gep506 = getelementptr double, ptr %invariant.gep505, i64 %.3362508
  %218 = load double, ptr %gep506, align 8, !tbaa !10
  %219 = fcmp oge double %218, 0.000000e+00
  %220 = fneg double %218
  %221 = select i1 %219, double %218, double %220
  %222 = getelementptr inbounds double, ptr %49, i64 %.3362508
  store double %221, ptr %222, align 8, !tbaa !10
  %223 = add nuw i64 %.3362508, 1
  %gep506.1 = getelementptr double, ptr %invariant.gep505, i64 %223
  %224 = load double, ptr %gep506.1, align 8, !tbaa !10
  %225 = fcmp oge double %224, 0.000000e+00
  %226 = fneg double %224
  %227 = select i1 %225, double %224, double %226
  %228 = getelementptr double, ptr %22, i64 %.3362508
  store double %227, ptr %228, align 8, !tbaa !10
  %229 = add nuw i64 %.3362508, 2
  %exitcond533.not.1 = icmp eq i64 %223, %199
  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
  %230 = call i32 @dla_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
  %231 = getelementptr inbounds double, ptr %48, i64 %.0358516
  %232 = call i32 @dla_lin_berr__(ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %21, ptr noundef %22, ptr noundef nonnull %231) #4
  %233 = add nuw i64 %.0358516, 1
  %exitcond534.not = icmp eq i64 %.0358516, %64
  %indvar.next = add i64 %indvar, 1
  br i1 %exitcond534.not, label %.loopexit446, label %67, !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 @dlamch_(ptr noundef) local_unnamed_addr #2

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

declare i32 @f2c_dgbmv(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_dgbmv_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_dgbmv2_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 @dgbtrs_(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_daxpy(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @dla_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 @dla_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 = !{!"double", !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