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

; 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 [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1
@c_b7 = external hidden global float, align 4
@c_b8 = external hidden global float, align 4
@c__3 = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

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

180:                                              ; preds = %25
  store i32 0, ptr %26, align 4
  store i32 1, ptr %124, align 4
  br label %3662

181:                                              ; preds = %25
  %182 = load ptr, ptr %31, align 8, !tbaa !5
  %183 = load i64, ptr %182, align 8, !tbaa !9
  %184 = load ptr, ptr %32, align 8, !tbaa !5
  %185 = load i64, ptr %184, align 8, !tbaa !9
  %186 = icmp sge i64 %183, %185
  br i1 %186, label %187, label %188

187:                                              ; preds = %181
  store i32 0, ptr %26, align 4
  store i32 1, ptr %124, align 4
  br label %3662

188:                                              ; preds = %181
  %189 = load ptr, ptr %33, align 8, !tbaa !5
  %190 = load i64, ptr %189, align 8, !tbaa !9
  %191 = sub nsw i64 %190, 2
  store i64 %191, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %76, align 8, !tbaa !9
  br label %192

192:                                              ; preds = %262, %188
  %193 = load i64, ptr %76, align 8, !tbaa !9
  %194 = load i64, ptr %64, align 8, !tbaa !9
  %195 = icmp sle i64 %193, %194
  br i1 %195, label %196, label %265

196:                                              ; preds = %192
  %197 = load ptr, ptr %35, align 8, !tbaa !5
  %198 = load i64, ptr %76, align 8, !tbaa !9
  %199 = getelementptr inbounds float, ptr %197, i64 %198
  %200 = load float, ptr %199, align 4, !tbaa !11
  %201 = load ptr, ptr %35, align 8, !tbaa !5
  %202 = load i64, ptr %76, align 8, !tbaa !9
  %203 = add nsw i64 %202, 1
  %204 = getelementptr inbounds float, ptr %201, i64 %203
  %205 = load float, ptr %204, align 4, !tbaa !11
  %206 = fneg float %205
  %207 = fcmp une float %200, %206
  br i1 %207, label %208, label %261

208:                                              ; preds = %196
  %209 = load ptr, ptr %34, align 8, !tbaa !5
  %210 = load i64, ptr %76, align 8, !tbaa !9
  %211 = getelementptr inbounds float, ptr %209, i64 %210
  %212 = load float, ptr %211, align 4, !tbaa !11
  store float %212, ptr %109, align 4, !tbaa !11
  %213 = load ptr, ptr %34, align 8, !tbaa !5
  %214 = load i64, ptr %76, align 8, !tbaa !9
  %215 = add nsw i64 %214, 1
  %216 = getelementptr inbounds float, ptr %213, i64 %215
  %217 = load float, ptr %216, align 4, !tbaa !11
  %218 = load ptr, ptr %34, align 8, !tbaa !5
  %219 = load i64, ptr %76, align 8, !tbaa !9
  %220 = getelementptr inbounds float, ptr %218, i64 %219
  store float %217, ptr %220, align 4, !tbaa !11
  %221 = load ptr, ptr %34, align 8, !tbaa !5
  %222 = load i64, ptr %76, align 8, !tbaa !9
  %223 = add nsw i64 %222, 2
  %224 = getelementptr inbounds float, ptr %221, i64 %223
  %225 = load float, ptr %224, align 4, !tbaa !11
  %226 = load ptr, ptr %34, align 8, !tbaa !5
  %227 = load i64, ptr %76, align 8, !tbaa !9
  %228 = add nsw i64 %227, 1
  %229 = getelementptr inbounds float, ptr %226, i64 %228
  store float %225, ptr %229, align 4, !tbaa !11
  %230 = load float, ptr %109, align 4, !tbaa !11
  %231 = load ptr, ptr %34, align 8, !tbaa !5
  %232 = load i64, ptr %76, align 8, !tbaa !9
  %233 = add nsw i64 %232, 2
  %234 = getelementptr inbounds float, ptr %231, i64 %233
  store float %230, ptr %234, align 4, !tbaa !11
  %235 = load ptr, ptr %35, align 8, !tbaa !5
  %236 = load i64, ptr %76, align 8, !tbaa !9
  %237 = getelementptr inbounds float, ptr %235, i64 %236
  %238 = load float, ptr %237, align 4, !tbaa !11
  store float %238, ptr %109, align 4, !tbaa !11
  %239 = load ptr, ptr %35, align 8, !tbaa !5
  %240 = load i64, ptr %76, align 8, !tbaa !9
  %241 = add nsw i64 %240, 1
  %242 = getelementptr inbounds float, ptr %239, i64 %241
  %243 = load float, ptr %242, align 4, !tbaa !11
  %244 = load ptr, ptr %35, align 8, !tbaa !5
  %245 = load i64, ptr %76, align 8, !tbaa !9
  %246 = getelementptr inbounds float, ptr %244, i64 %245
  store float %243, ptr %246, align 4, !tbaa !11
  %247 = load ptr, ptr %35, align 8, !tbaa !5
  %248 = load i64, ptr %76, align 8, !tbaa !9
  %249 = add nsw i64 %248, 2
  %250 = getelementptr inbounds float, ptr %247, i64 %249
  %251 = load float, ptr %250, align 4, !tbaa !11
  %252 = load ptr, ptr %35, align 8, !tbaa !5
  %253 = load i64, ptr %76, align 8, !tbaa !9
  %254 = add nsw i64 %253, 1
  %255 = getelementptr inbounds float, ptr %252, i64 %254
  store float %251, ptr %255, align 4, !tbaa !11
  %256 = load float, ptr %109, align 4, !tbaa !11
  %257 = load ptr, ptr %35, align 8, !tbaa !5
  %258 = load i64, ptr %76, align 8, !tbaa !9
  %259 = add nsw i64 %258, 2
  %260 = getelementptr inbounds float, ptr %257, i64 %259
  store float %256, ptr %260, align 4, !tbaa !11
  br label %261

261:                                              ; preds = %208, %196
  br label %262

262:                                              ; preds = %261
  %263 = load i64, ptr %76, align 8, !tbaa !9
  %264 = add nsw i64 %263, 2
  store i64 %264, ptr %76, align 8, !tbaa !9
  br label %192, !llvm.loop !13

265:                                              ; preds = %192
  %266 = load ptr, ptr %33, align 8, !tbaa !5
  %267 = load i64, ptr %266, align 8, !tbaa !9
  %268 = load ptr, ptr %33, align 8, !tbaa !5
  %269 = load i64, ptr %268, align 8, !tbaa !9
  %270 = srem i64 %269, 2
  %271 = sub nsw i64 %267, %270
  store i64 %271, ptr %90, align 8, !tbaa !9
  %272 = call double @slamch_(ptr noundef @.str)
  %273 = fptrunc double %272 to float
  store float %273, ptr %119, align 4, !tbaa !11
  %274 = load float, ptr %119, align 4, !tbaa !11
  %275 = fdiv float 1.000000e+00, %274
  store float %275, ptr %120, align 4, !tbaa !11
  %276 = call i32 @slabad_(ptr noundef %119, ptr noundef %120)
  %277 = call double @slamch_(ptr noundef @.str.1)
  %278 = fptrunc double %277 to float
  store float %278, ptr %96, align 4, !tbaa !11
  %279 = load float, ptr %119, align 4, !tbaa !11
  %280 = load ptr, ptr %30, align 8, !tbaa !5
  %281 = load i64, ptr %280, align 8, !tbaa !9
  %282 = sitofp i64 %281 to float
  %283 = load float, ptr %96, align 4, !tbaa !11
  %284 = fdiv float %282, %283
  %285 = fmul float %279, %284
  store float %285, ptr %123, align 4, !tbaa !11
  %286 = load ptr, ptr %29, align 8, !tbaa !5
  %287 = load i64, ptr %286, align 8, !tbaa !9
  %288 = icmp eq i64 %287, 1
  br i1 %288, label %293, label %289

289:                                              ; preds = %265
  %290 = load ptr, ptr %29, align 8, !tbaa !5
  %291 = load i64, ptr %290, align 8, !tbaa !9
  %292 = icmp eq i64 %291, 2
  br label %293

293:                                              ; preds = %289, %265
  %294 = phi i1 [ true, %265 ], [ %292, %289 ]
  %295 = zext i1 %294 to i32
  %296 = sext i32 %295 to i64
  store i64 %296, ptr %114, align 8, !tbaa !9
  %297 = load i64, ptr %90, align 8, !tbaa !9
  %298 = icmp sgt i64 %297, 2
  br i1 %298, label %299, label %303

299:                                              ; preds = %293
  %300 = load ptr, ptr %29, align 8, !tbaa !5
  %301 = load i64, ptr %300, align 8, !tbaa !9
  %302 = icmp eq i64 %301, 2
  br label %303

303:                                              ; preds = %299, %293
  %304 = phi i1 [ false, %293 ], [ %302, %299 ]
  %305 = zext i1 %304 to i32
  %306 = sext i32 %305 to i64
  store i64 %306, ptr %102, align 8, !tbaa !9
  %307 = load ptr, ptr %31, align 8, !tbaa !5
  %308 = load i64, ptr %307, align 8, !tbaa !9
  %309 = add nsw i64 %308, 2
  %310 = load ptr, ptr %32, align 8, !tbaa !5
  %311 = load i64, ptr %310, align 8, !tbaa !9
  %312 = icmp sle i64 %309, %311
  br i1 %312, label %313, label %324

313:                                              ; preds = %303
  %314 = load ptr, ptr %36, align 8, !tbaa !5
  %315 = load ptr, ptr %31, align 8, !tbaa !5
  %316 = load i64, ptr %315, align 8, !tbaa !9
  %317 = add nsw i64 %316, 2
  %318 = load ptr, ptr %31, align 8, !tbaa !5
  %319 = load i64, ptr %318, align 8, !tbaa !9
  %320 = load i64, ptr %52, align 8, !tbaa !9
  %321 = mul nsw i64 %319, %320
  %322 = add nsw i64 %317, %321
  %323 = getelementptr inbounds float, ptr %314, i64 %322
  store float 0.000000e+00, ptr %323, align 4, !tbaa !11
  br label %324

324:                                              ; preds = %313, %303
  %325 = load i64, ptr %90, align 8, !tbaa !9
  %326 = sdiv i64 %325, 2
  store i64 %326, ptr %118, align 8, !tbaa !9
  %327 = load i64, ptr %118, align 8, !tbaa !9
  %328 = mul nsw i64 %327, 6
  %329 = sub nsw i64 %328, 3
  store i64 %329, ptr %94, align 8, !tbaa !9
  %330 = load ptr, ptr %32, align 8, !tbaa !5
  %331 = load i64, ptr %330, align 8, !tbaa !9
  %332 = sub nsw i64 %331, 2
  store i64 %332, ptr %64, align 8, !tbaa !9
  %333 = load i64, ptr %118, align 8, !tbaa !9
  %334 = mul nsw i64 %333, 3
  %335 = sub nsw i64 %334, 2
  store i64 %335, ptr %65, align 8, !tbaa !9
  %336 = load i64, ptr %118, align 8, !tbaa !9
  %337 = sub nsw i64 1, %336
  %338 = mul nsw i64 %337, 3
  %339 = load ptr, ptr %31, align 8, !tbaa !5
  %340 = load i64, ptr %339, align 8, !tbaa !9
  %341 = add nsw i64 %338, %340
  %342 = sub nsw i64 %341, 1
  store i64 %342, ptr %116, align 8, !tbaa !9
  br label %343

343:                                              ; preds = %3657, %324
  %344 = load i64, ptr %65, align 8, !tbaa !9
  %345 = icmp slt i64 %344, 0
  br i1 %345, label %346, label %351

346:                                              ; preds = %343
  %347 = load i64, ptr %116, align 8, !tbaa !9
  %348 = load i64, ptr %64, align 8, !tbaa !9
  %349 = icmp sge i64 %347, %348
  %350 = zext i1 %349 to i32
  br label %356

351:                                              ; preds = %343
  %352 = load i64, ptr %116, align 8, !tbaa !9
  %353 = load i64, ptr %64, align 8, !tbaa !9
  %354 = icmp sle i64 %352, %353
  %355 = zext i1 %354 to i32
  br label %356

356:                                              ; preds = %351, %346
  %357 = phi i32 [ %350, %346 ], [ %355, %351 ]
  %358 = icmp ne i32 %357, 0
  br i1 %358, label %359, label %3661

359:                                              ; preds = %356
  %360 = load i64, ptr %116, align 8, !tbaa !9
  %361 = load i64, ptr %94, align 8, !tbaa !9
  %362 = add nsw i64 %360, %361
  store i64 %362, ptr %115, align 8, !tbaa !9
  %363 = load i64, ptr %114, align 8, !tbaa !9
  %364 = icmp ne i64 %363, 0
  br i1 %364, label %365, label %371

365:                                              ; preds = %359
  %366 = load ptr, ptr %44, align 8, !tbaa !5
  %367 = load i64, ptr %55, align 8, !tbaa !9
  %368 = getelementptr inbounds float, ptr %366, i64 %367
  %369 = load ptr, ptr %45, align 8, !tbaa !5
  %370 = call i32 @slaset_(ptr noundef @.str.2, ptr noundef %94, ptr noundef %94, ptr noundef @c_b7, ptr noundef @c_b8, ptr noundef %368, ptr noundef %369)
  br label %371

371:                                              ; preds = %365, %359
  %372 = load i64, ptr %116, align 8, !tbaa !9
  %373 = load i64, ptr %118, align 8, !tbaa !9
  %374 = mul nsw i64 %373, 3
  %375 = add nsw i64 %372, %374
  %376 = sub nsw i64 %375, 3
  store i64 %376, ptr %67, align 8, !tbaa !9
  %377 = load ptr, ptr %32, align 8, !tbaa !5
  %378 = load i64, ptr %377, align 8, !tbaa !9
  %379 = sub nsw i64 %378, 2
  store i64 %379, ptr %68, align 8, !tbaa !9
  %380 = load i64, ptr %67, align 8, !tbaa !9
  %381 = load i64, ptr %68, align 8, !tbaa !9
  %382 = icmp sle i64 %380, %381
  br i1 %382, label %383, label %385

383:                                              ; preds = %371
  %384 = load i64, ptr %67, align 8, !tbaa !9
  br label %387

385:                                              ; preds = %371
  %386 = load i64, ptr %68, align 8, !tbaa !9
  br label %387

387:                                              ; preds = %385, %383
  %388 = phi i64 [ %384, %383 ], [ %386, %385 ]
  store i64 %388, ptr %66, align 8, !tbaa !9
  %389 = load i64, ptr %116, align 8, !tbaa !9
  store i64 %389, ptr %117, align 8, !tbaa !9
  br label %390

390:                                              ; preds = %2692, %387
  %391 = load i64, ptr %117, align 8, !tbaa !9
  %392 = load i64, ptr %66, align 8, !tbaa !9
  %393 = icmp sle i64 %391, %392
  br i1 %393, label %394, label %2695

394:                                              ; preds = %390
  store i64 1, ptr %67, align 8, !tbaa !9
  %395 = load ptr, ptr %31, align 8, !tbaa !5
  %396 = load i64, ptr %395, align 8, !tbaa !9
  %397 = sub nsw i64 %396, 1
  %398 = load i64, ptr %117, align 8, !tbaa !9
  %399 = sub nsw i64 %397, %398
  %400 = add nsw i64 %399, 2
  %401 = sdiv i64 %400, 3
  %402 = add nsw i64 %401, 1
  store i64 %402, ptr %68, align 8, !tbaa !9
  %403 = load i64, ptr %67, align 8, !tbaa !9
  %404 = load i64, ptr %68, align 8, !tbaa !9
  %405 = icmp sge i64 %403, %404
  br i1 %405, label %406, label %408

406:                                              ; preds = %394
  %407 = load i64, ptr %67, align 8, !tbaa !9
  br label %410

408:                                              ; preds = %394
  %409 = load i64, ptr %68, align 8, !tbaa !9
  br label %410

410:                                              ; preds = %408, %406
  %411 = phi i64 [ %407, %406 ], [ %409, %408 ]
  store i64 %411, ptr %112, align 8, !tbaa !9
  %412 = load i64, ptr %118, align 8, !tbaa !9
  store i64 %412, ptr %67, align 8, !tbaa !9
  %413 = load ptr, ptr %32, align 8, !tbaa !5
  %414 = load i64, ptr %413, align 8, !tbaa !9
  %415 = load i64, ptr %117, align 8, !tbaa !9
  %416 = sub nsw i64 %414, %415
  %417 = sdiv i64 %416, 3
  store i64 %417, ptr %68, align 8, !tbaa !9
  %418 = load i64, ptr %67, align 8, !tbaa !9
  %419 = load i64, ptr %68, align 8, !tbaa !9
  %420 = icmp sle i64 %418, %419
  br i1 %420, label %421, label %423

421:                                              ; preds = %410
  %422 = load i64, ptr %67, align 8, !tbaa !9
  br label %425

423:                                              ; preds = %410
  %424 = load i64, ptr %68, align 8, !tbaa !9
  br label %425

425:                                              ; preds = %423, %421
  %426 = phi i64 [ %422, %421 ], [ %424, %423 ]
  store i64 %426, ptr %108, align 8, !tbaa !9
  %427 = load i64, ptr %108, align 8, !tbaa !9
  %428 = add nsw i64 %427, 1
  store i64 %428, ptr %89, align 8, !tbaa !9
  %429 = load i64, ptr %108, align 8, !tbaa !9
  %430 = load i64, ptr %118, align 8, !tbaa !9
  %431 = icmp slt i64 %429, %430
  br i1 %431, label %432, label %442

432:                                              ; preds = %425
  %433 = load i64, ptr %117, align 8, !tbaa !9
  %434 = load i64, ptr %89, align 8, !tbaa !9
  %435 = sub nsw i64 %434, 1
  %436 = mul nsw i64 %435, 3
  %437 = add nsw i64 %433, %436
  %438 = load ptr, ptr %32, align 8, !tbaa !5
  %439 = load i64, ptr %438, align 8, !tbaa !9
  %440 = sub nsw i64 %439, 2
  %441 = icmp eq i64 %437, %440
  br label %442

442:                                              ; preds = %432, %425
  %443 = phi i1 [ false, %425 ], [ %441, %432 ]
  %444 = zext i1 %443 to i32
  %445 = sext i32 %444 to i64
  store i64 %445, ptr %103, align 8, !tbaa !9
  %446 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %446, ptr %67, align 8, !tbaa !9
  %447 = load i64, ptr %112, align 8, !tbaa !9
  store i64 %447, ptr %79, align 8, !tbaa !9
  br label %448

448:                                              ; preds = %876, %442
  %449 = load i64, ptr %79, align 8, !tbaa !9
  %450 = load i64, ptr %67, align 8, !tbaa !9
  %451 = icmp sle i64 %449, %450
  br i1 %451, label %452, label %879

452:                                              ; preds = %448
  %453 = load i64, ptr %117, align 8, !tbaa !9
  %454 = load i64, ptr %79, align 8, !tbaa !9
  %455 = sub nsw i64 %454, 1
  %456 = mul nsw i64 %455, 3
  %457 = add nsw i64 %453, %456
  store i64 %457, ptr %78, align 8, !tbaa !9
  %458 = load i64, ptr %78, align 8, !tbaa !9
  %459 = load ptr, ptr %31, align 8, !tbaa !5
  %460 = load i64, ptr %459, align 8, !tbaa !9
  %461 = sub nsw i64 %460, 1
  %462 = icmp eq i64 %458, %461
  br i1 %462, label %463, label %519

463:                                              ; preds = %452
  %464 = load ptr, ptr %36, align 8, !tbaa !5
  %465 = load ptr, ptr %31, align 8, !tbaa !5
  %466 = load i64, ptr %465, align 8, !tbaa !9
  %467 = load ptr, ptr %31, align 8, !tbaa !5
  %468 = load i64, ptr %467, align 8, !tbaa !9
  %469 = load i64, ptr %52, align 8, !tbaa !9
  %470 = mul nsw i64 %468, %469
  %471 = add nsw i64 %466, %470
  %472 = getelementptr inbounds float, ptr %464, i64 %471
  %473 = load ptr, ptr %37, align 8, !tbaa !5
  %474 = load ptr, ptr %34, align 8, !tbaa !5
  %475 = load i64, ptr %79, align 8, !tbaa !9
  %476 = shl i64 %475, 1
  %477 = sub nsw i64 %476, 1
  %478 = getelementptr inbounds float, ptr %474, i64 %477
  %479 = load ptr, ptr %35, align 8, !tbaa !5
  %480 = load i64, ptr %79, align 8, !tbaa !9
  %481 = shl i64 %480, 1
  %482 = sub nsw i64 %481, 1
  %483 = getelementptr inbounds float, ptr %479, i64 %482
  %484 = load ptr, ptr %34, align 8, !tbaa !5
  %485 = load i64, ptr %79, align 8, !tbaa !9
  %486 = mul nsw i64 %485, 2
  %487 = getelementptr inbounds float, ptr %484, i64 %486
  %488 = load ptr, ptr %35, align 8, !tbaa !5
  %489 = load i64, ptr %79, align 8, !tbaa !9
  %490 = mul nsw i64 %489, 2
  %491 = getelementptr inbounds float, ptr %488, i64 %490
  %492 = load ptr, ptr %42, align 8, !tbaa !5
  %493 = load i64, ptr %79, align 8, !tbaa !9
  %494 = load i64, ptr %56, align 8, !tbaa !9
  %495 = mul nsw i64 %493, %494
  %496 = add nsw i64 %495, 1
  %497 = getelementptr inbounds float, ptr %492, i64 %496
  %498 = call i32 @slaqr1_(ptr noundef @c__3, ptr noundef %472, ptr noundef %473, ptr noundef %478, ptr noundef %483, ptr noundef %487, ptr noundef %491, ptr noundef %497)
  %499 = load ptr, ptr %42, align 8, !tbaa !5
  %500 = load i64, ptr %79, align 8, !tbaa !9
  %501 = load i64, ptr %56, align 8, !tbaa !9
  %502 = mul nsw i64 %500, %501
  %503 = add nsw i64 %502, 1
  %504 = getelementptr inbounds float, ptr %499, i64 %503
  %505 = load float, ptr %504, align 4, !tbaa !11
  store float %505, ptr %113, align 4, !tbaa !11
  %506 = load ptr, ptr %42, align 8, !tbaa !5
  %507 = load i64, ptr %79, align 8, !tbaa !9
  %508 = load i64, ptr %56, align 8, !tbaa !9
  %509 = mul nsw i64 %507, %508
  %510 = add nsw i64 %509, 2
  %511 = getelementptr inbounds float, ptr %506, i64 %510
  %512 = load ptr, ptr %42, align 8, !tbaa !5
  %513 = load i64, ptr %79, align 8, !tbaa !9
  %514 = load i64, ptr %56, align 8, !tbaa !9
  %515 = mul nsw i64 %513, %514
  %516 = add nsw i64 %515, 1
  %517 = getelementptr inbounds float, ptr %512, i64 %516
  %518 = call i32 @slarfg_(ptr noundef @c__3, ptr noundef %113, ptr noundef %511, ptr noundef @c__1, ptr noundef %517)
  br label %875

519:                                              ; preds = %452
  %520 = load ptr, ptr %36, align 8, !tbaa !5
  %521 = load i64, ptr %78, align 8, !tbaa !9
  %522 = add nsw i64 %521, 1
  %523 = load i64, ptr %78, align 8, !tbaa !9
  %524 = load i64, ptr %52, align 8, !tbaa !9
  %525 = mul nsw i64 %523, %524
  %526 = add nsw i64 %522, %525
  %527 = getelementptr inbounds float, ptr %520, i64 %526
  %528 = load float, ptr %527, align 4, !tbaa !11
  store float %528, ptr %101, align 4, !tbaa !11
  %529 = load ptr, ptr %36, align 8, !tbaa !5
  %530 = load i64, ptr %78, align 8, !tbaa !9
  %531 = add nsw i64 %530, 2
  %532 = load i64, ptr %78, align 8, !tbaa !9
  %533 = load i64, ptr %52, align 8, !tbaa !9
  %534 = mul nsw i64 %532, %533
  %535 = add nsw i64 %531, %534
  %536 = getelementptr inbounds float, ptr %529, i64 %535
  %537 = load float, ptr %536, align 4, !tbaa !11
  %538 = load ptr, ptr %42, align 8, !tbaa !5
  %539 = load i64, ptr %79, align 8, !tbaa !9
  %540 = load i64, ptr %56, align 8, !tbaa !9
  %541 = mul nsw i64 %539, %540
  %542 = add nsw i64 %541, 2
  %543 = getelementptr inbounds float, ptr %538, i64 %542
  store float %537, ptr %543, align 4, !tbaa !11
  %544 = load ptr, ptr %36, align 8, !tbaa !5
  %545 = load i64, ptr %78, align 8, !tbaa !9
  %546 = add nsw i64 %545, 3
  %547 = load i64, ptr %78, align 8, !tbaa !9
  %548 = load i64, ptr %52, align 8, !tbaa !9
  %549 = mul nsw i64 %547, %548
  %550 = add nsw i64 %546, %549
  %551 = getelementptr inbounds float, ptr %544, i64 %550
  %552 = load float, ptr %551, align 4, !tbaa !11
  %553 = load ptr, ptr %42, align 8, !tbaa !5
  %554 = load i64, ptr %79, align 8, !tbaa !9
  %555 = load i64, ptr %56, align 8, !tbaa !9
  %556 = mul nsw i64 %554, %555
  %557 = add nsw i64 %556, 3
  %558 = getelementptr inbounds float, ptr %553, i64 %557
  store float %552, ptr %558, align 4, !tbaa !11
  %559 = load ptr, ptr %42, align 8, !tbaa !5
  %560 = load i64, ptr %79, align 8, !tbaa !9
  %561 = load i64, ptr %56, align 8, !tbaa !9
  %562 = mul nsw i64 %560, %561
  %563 = add nsw i64 %562, 2
  %564 = getelementptr inbounds float, ptr %559, i64 %563
  %565 = load ptr, ptr %42, align 8, !tbaa !5
  %566 = load i64, ptr %79, align 8, !tbaa !9
  %567 = load i64, ptr %56, align 8, !tbaa !9
  %568 = mul nsw i64 %566, %567
  %569 = add nsw i64 %568, 1
  %570 = getelementptr inbounds float, ptr %565, i64 %569
  %571 = call i32 @slarfg_(ptr noundef @c__3, ptr noundef %101, ptr noundef %564, ptr noundef @c__1, ptr noundef %570)
  %572 = load ptr, ptr %36, align 8, !tbaa !5
  %573 = load i64, ptr %78, align 8, !tbaa !9
  %574 = add nsw i64 %573, 3
  %575 = load i64, ptr %78, align 8, !tbaa !9
  %576 = load i64, ptr %52, align 8, !tbaa !9
  %577 = mul nsw i64 %575, %576
  %578 = add nsw i64 %574, %577
  %579 = getelementptr inbounds float, ptr %572, i64 %578
  %580 = load float, ptr %579, align 4, !tbaa !11
  %581 = fcmp une float %580, 0.000000e+00
  br i1 %581, label %606, label %582

582:                                              ; preds = %519
  %583 = load ptr, ptr %36, align 8, !tbaa !5
  %584 = load i64, ptr %78, align 8, !tbaa !9
  %585 = add nsw i64 %584, 3
  %586 = load i64, ptr %78, align 8, !tbaa !9
  %587 = add nsw i64 %586, 1
  %588 = load i64, ptr %52, align 8, !tbaa !9
  %589 = mul nsw i64 %587, %588
  %590 = add nsw i64 %585, %589
  %591 = getelementptr inbounds float, ptr %583, i64 %590
  %592 = load float, ptr %591, align 4, !tbaa !11
  %593 = fcmp une float %592, 0.000000e+00
  br i1 %593, label %606, label %594

594:                                              ; preds = %582
  %595 = load ptr, ptr %36, align 8, !tbaa !5
  %596 = load i64, ptr %78, align 8, !tbaa !9
  %597 = add nsw i64 %596, 3
  %598 = load i64, ptr %78, align 8, !tbaa !9
  %599 = add nsw i64 %598, 2
  %600 = load i64, ptr %52, align 8, !tbaa !9
  %601 = mul nsw i64 %599, %600
  %602 = add nsw i64 %597, %601
  %603 = getelementptr inbounds float, ptr %595, i64 %602
  %604 = load float, ptr %603, align 4, !tbaa !11
  %605 = fcmp oeq float %604, 0.000000e+00
  br i1 %605, label %606, label %632

606:                                              ; preds = %594, %582, %519
  %607 = load float, ptr %101, align 4, !tbaa !11
  %608 = load ptr, ptr %36, align 8, !tbaa !5
  %609 = load i64, ptr %78, align 8, !tbaa !9
  %610 = add nsw i64 %609, 1
  %611 = load i64, ptr %78, align 8, !tbaa !9
  %612 = load i64, ptr %52, align 8, !tbaa !9
  %613 = mul nsw i64 %611, %612
  %614 = add nsw i64 %610, %613
  %615 = getelementptr inbounds float, ptr %608, i64 %614
  store float %607, ptr %615, align 4, !tbaa !11
  %616 = load ptr, ptr %36, align 8, !tbaa !5
  %617 = load i64, ptr %78, align 8, !tbaa !9
  %618 = add nsw i64 %617, 2
  %619 = load i64, ptr %78, align 8, !tbaa !9
  %620 = load i64, ptr %52, align 8, !tbaa !9
  %621 = mul nsw i64 %619, %620
  %622 = add nsw i64 %618, %621
  %623 = getelementptr inbounds float, ptr %616, i64 %622
  store float 0.000000e+00, ptr %623, align 4, !tbaa !11
  %624 = load ptr, ptr %36, align 8, !tbaa !5
  %625 = load i64, ptr %78, align 8, !tbaa !9
  %626 = add nsw i64 %625, 3
  %627 = load i64, ptr %78, align 8, !tbaa !9
  %628 = load i64, ptr %52, align 8, !tbaa !9
  %629 = mul nsw i64 %627, %628
  %630 = add nsw i64 %626, %629
  %631 = getelementptr inbounds float, ptr %624, i64 %630
  store float 0.000000e+00, ptr %631, align 4, !tbaa !11
  br label %874

632:                                              ; preds = %594
  %633 = load ptr, ptr %36, align 8, !tbaa !5
  %634 = load i64, ptr %78, align 8, !tbaa !9
  %635 = add nsw i64 %634, 1
  %636 = load i64, ptr %78, align 8, !tbaa !9
  %637 = add nsw i64 %636, 1
  %638 = load i64, ptr %52, align 8, !tbaa !9
  %639 = mul nsw i64 %637, %638
  %640 = add nsw i64 %635, %639
  %641 = getelementptr inbounds float, ptr %633, i64 %640
  %642 = load ptr, ptr %37, align 8, !tbaa !5
  %643 = load ptr, ptr %34, align 8, !tbaa !5
  %644 = load i64, ptr %79, align 8, !tbaa !9
  %645 = shl i64 %644, 1
  %646 = sub nsw i64 %645, 1
  %647 = getelementptr inbounds float, ptr %643, i64 %646
  %648 = load ptr, ptr %35, align 8, !tbaa !5
  %649 = load i64, ptr %79, align 8, !tbaa !9
  %650 = shl i64 %649, 1
  %651 = sub nsw i64 %650, 1
  %652 = getelementptr inbounds float, ptr %648, i64 %651
  %653 = load ptr, ptr %34, align 8, !tbaa !5
  %654 = load i64, ptr %79, align 8, !tbaa !9
  %655 = mul nsw i64 %654, 2
  %656 = getelementptr inbounds float, ptr %653, i64 %655
  %657 = load ptr, ptr %35, align 8, !tbaa !5
  %658 = load i64, ptr %79, align 8, !tbaa !9
  %659 = mul nsw i64 %658, 2
  %660 = getelementptr inbounds float, ptr %657, i64 %659
  %661 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 0
  %662 = call i32 @slaqr1_(ptr noundef @c__3, ptr noundef %641, ptr noundef %642, ptr noundef %647, ptr noundef %652, ptr noundef %656, ptr noundef %660, ptr noundef %661)
  %663 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 0
  %664 = load float, ptr %663, align 4, !tbaa !11
  store float %664, ptr %113, align 4, !tbaa !11
  %665 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 1
  %666 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 0
  %667 = call i32 @slarfg_(ptr noundef @c__3, ptr noundef %113, ptr noundef %665, ptr noundef @c__1, ptr noundef %666)
  %668 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 0
  %669 = load float, ptr %668, align 4, !tbaa !11
  %670 = load ptr, ptr %36, align 8, !tbaa !5
  %671 = load i64, ptr %78, align 8, !tbaa !9
  %672 = add nsw i64 %671, 1
  %673 = load i64, ptr %78, align 8, !tbaa !9
  %674 = load i64, ptr %52, align 8, !tbaa !9
  %675 = mul nsw i64 %673, %674
  %676 = add nsw i64 %672, %675
  %677 = getelementptr inbounds float, ptr %670, i64 %676
  %678 = load float, ptr %677, align 4, !tbaa !11
  %679 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 1
  %680 = load float, ptr %679, align 4, !tbaa !11
  %681 = load ptr, ptr %36, align 8, !tbaa !5
  %682 = load i64, ptr %78, align 8, !tbaa !9
  %683 = add nsw i64 %682, 2
  %684 = load i64, ptr %78, align 8, !tbaa !9
  %685 = load i64, ptr %52, align 8, !tbaa !9
  %686 = mul nsw i64 %684, %685
  %687 = add nsw i64 %683, %686
  %688 = getelementptr inbounds float, ptr %681, i64 %687
  %689 = load float, ptr %688, align 4, !tbaa !11
  %690 = call float @llvm.fmuladd.f32(float %680, float %689, float %678)
  %691 = fmul float %669, %690
  store float %691, ptr %121, align 4, !tbaa !11
  %692 = load ptr, ptr %36, align 8, !tbaa !5
  %693 = load i64, ptr %78, align 8, !tbaa !9
  %694 = add nsw i64 %693, 2
  %695 = load i64, ptr %78, align 8, !tbaa !9
  %696 = load i64, ptr %52, align 8, !tbaa !9
  %697 = mul nsw i64 %695, %696
  %698 = add nsw i64 %694, %697
  %699 = getelementptr inbounds float, ptr %692, i64 %698
  %700 = load float, ptr %699, align 4, !tbaa !11
  %701 = load float, ptr %121, align 4, !tbaa !11
  %702 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 1
  %703 = load float, ptr %702, align 4, !tbaa !11
  %704 = fneg float %701
  %705 = call float @llvm.fmuladd.f32(float %704, float %703, float %700)
  store float %705, ptr %71, align 4, !tbaa !11
  %706 = load float, ptr %71, align 4, !tbaa !11
  %707 = fcmp oge float %706, 0.000000e+00
  br i1 %707, label %708, label %710

708:                                              ; preds = %632
  %709 = load float, ptr %71, align 4, !tbaa !11
  br label %713

710:                                              ; preds = %632
  %711 = load float, ptr %71, align 4, !tbaa !11
  %712 = fneg float %711
  br label %713

713:                                              ; preds = %710, %708
  %714 = phi float [ %709, %708 ], [ %712, %710 ]
  %715 = fpext float %714 to double
  %716 = load float, ptr %121, align 4, !tbaa !11
  %717 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 2
  %718 = load float, ptr %717, align 4, !tbaa !11
  %719 = fmul float %716, %718
  store float %719, ptr %72, align 4, !tbaa !11
  %720 = load float, ptr %72, align 4, !tbaa !11
  %721 = fcmp oge float %720, 0.000000e+00
  br i1 %721, label %722, label %724

722:                                              ; preds = %713
  %723 = load float, ptr %72, align 4, !tbaa !11
  br label %727

724:                                              ; preds = %713
  %725 = load float, ptr %72, align 4, !tbaa !11
  %726 = fneg float %725
  br label %727

727:                                              ; preds = %724, %722
  %728 = phi float [ %723, %722 ], [ %726, %724 ]
  %729 = fpext float %728 to double
  %730 = fadd double %715, %729
  %731 = load float, ptr %96, align 4, !tbaa !11
  %732 = fpext float %731 to double
  %733 = load ptr, ptr %36, align 8, !tbaa !5
  %734 = load i64, ptr %78, align 8, !tbaa !9
  %735 = load i64, ptr %78, align 8, !tbaa !9
  %736 = load i64, ptr %52, align 8, !tbaa !9
  %737 = mul nsw i64 %735, %736
  %738 = add nsw i64 %734, %737
  %739 = getelementptr inbounds float, ptr %733, i64 %738
  %740 = load float, ptr %739, align 4, !tbaa !11
  store float %740, ptr %73, align 4, !tbaa !11
  %741 = load float, ptr %73, align 4, !tbaa !11
  %742 = fcmp oge float %741, 0.000000e+00
  br i1 %742, label %743, label %745

743:                                              ; preds = %727
  %744 = load float, ptr %73, align 4, !tbaa !11
  br label %748

745:                                              ; preds = %727
  %746 = load float, ptr %73, align 4, !tbaa !11
  %747 = fneg float %746
  br label %748

748:                                              ; preds = %745, %743
  %749 = phi float [ %744, %743 ], [ %747, %745 ]
  %750 = fpext float %749 to double
  %751 = load ptr, ptr %36, align 8, !tbaa !5
  %752 = load i64, ptr %78, align 8, !tbaa !9
  %753 = add nsw i64 %752, 1
  %754 = load i64, ptr %78, align 8, !tbaa !9
  %755 = add nsw i64 %754, 1
  %756 = load i64, ptr %52, align 8, !tbaa !9
  %757 = mul nsw i64 %755, %756
  %758 = add nsw i64 %753, %757
  %759 = getelementptr inbounds float, ptr %751, i64 %758
  %760 = load float, ptr %759, align 4, !tbaa !11
  store float %760, ptr %74, align 4, !tbaa !11
  %761 = load float, ptr %74, align 4, !tbaa !11
  %762 = fcmp oge float %761, 0.000000e+00
  br i1 %762, label %763, label %765

763:                                              ; preds = %748
  %764 = load float, ptr %74, align 4, !tbaa !11
  br label %768

765:                                              ; preds = %748
  %766 = load float, ptr %74, align 4, !tbaa !11
  %767 = fneg float %766
  br label %768

768:                                              ; preds = %765, %763
  %769 = phi float [ %764, %763 ], [ %767, %765 ]
  %770 = fpext float %769 to double
  %771 = fadd double %750, %770
  %772 = load ptr, ptr %36, align 8, !tbaa !5
  %773 = load i64, ptr %78, align 8, !tbaa !9
  %774 = add nsw i64 %773, 2
  %775 = load i64, ptr %78, align 8, !tbaa !9
  %776 = add nsw i64 %775, 2
  %777 = load i64, ptr %52, align 8, !tbaa !9
  %778 = mul nsw i64 %776, %777
  %779 = add nsw i64 %774, %778
  %780 = getelementptr inbounds float, ptr %772, i64 %779
  %781 = load float, ptr %780, align 4, !tbaa !11
  store float %781, ptr %75, align 4, !tbaa !11
  %782 = load float, ptr %75, align 4, !tbaa !11
  %783 = fcmp oge float %782, 0.000000e+00
  br i1 %783, label %784, label %786

784:                                              ; preds = %768
  %785 = load float, ptr %75, align 4, !tbaa !11
  br label %789

786:                                              ; preds = %768
  %787 = load float, ptr %75, align 4, !tbaa !11
  %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 = fadd double %771, %791
  %793 = fmul double %732, %792
  %794 = fcmp ogt double %730, %793
  br i1 %794, label %795, label %821

795:                                              ; preds = %789
  %796 = load float, ptr %101, align 4, !tbaa !11
  %797 = load ptr, ptr %36, align 8, !tbaa !5
  %798 = load i64, ptr %78, align 8, !tbaa !9
  %799 = add nsw i64 %798, 1
  %800 = load i64, ptr %78, align 8, !tbaa !9
  %801 = load i64, ptr %52, align 8, !tbaa !9
  %802 = mul nsw i64 %800, %801
  %803 = add nsw i64 %799, %802
  %804 = getelementptr inbounds float, ptr %797, i64 %803
  store float %796, ptr %804, align 4, !tbaa !11
  %805 = load ptr, ptr %36, align 8, !tbaa !5
  %806 = load i64, ptr %78, align 8, !tbaa !9
  %807 = add nsw i64 %806, 2
  %808 = load i64, ptr %78, align 8, !tbaa !9
  %809 = load i64, ptr %52, align 8, !tbaa !9
  %810 = mul nsw i64 %808, %809
  %811 = add nsw i64 %807, %810
  %812 = getelementptr inbounds float, ptr %805, i64 %811
  store float 0.000000e+00, ptr %812, align 4, !tbaa !11
  %813 = load ptr, ptr %36, align 8, !tbaa !5
  %814 = load i64, ptr %78, align 8, !tbaa !9
  %815 = add nsw i64 %814, 3
  %816 = load i64, ptr %78, align 8, !tbaa !9
  %817 = load i64, ptr %52, align 8, !tbaa !9
  %818 = mul nsw i64 %816, %817
  %819 = add nsw i64 %815, %818
  %820 = getelementptr inbounds float, ptr %813, i64 %819
  store float 0.000000e+00, ptr %820, align 4, !tbaa !11
  br label %873

821:                                              ; preds = %789
  %822 = load float, ptr %121, align 4, !tbaa !11
  %823 = load ptr, ptr %36, align 8, !tbaa !5
  %824 = load i64, ptr %78, align 8, !tbaa !9
  %825 = add nsw i64 %824, 1
  %826 = load i64, ptr %78, align 8, !tbaa !9
  %827 = load i64, ptr %52, align 8, !tbaa !9
  %828 = mul nsw i64 %826, %827
  %829 = add nsw i64 %825, %828
  %830 = getelementptr inbounds float, ptr %823, i64 %829
  %831 = load float, ptr %830, align 4, !tbaa !11
  %832 = fsub float %831, %822
  store float %832, ptr %830, align 4, !tbaa !11
  %833 = load ptr, ptr %36, align 8, !tbaa !5
  %834 = load i64, ptr %78, align 8, !tbaa !9
  %835 = add nsw i64 %834, 2
  %836 = load i64, ptr %78, align 8, !tbaa !9
  %837 = load i64, ptr %52, align 8, !tbaa !9
  %838 = mul nsw i64 %836, %837
  %839 = add nsw i64 %835, %838
  %840 = getelementptr inbounds float, ptr %833, i64 %839
  store float 0.000000e+00, ptr %840, align 4, !tbaa !11
  %841 = load ptr, ptr %36, align 8, !tbaa !5
  %842 = load i64, ptr %78, align 8, !tbaa !9
  %843 = add nsw i64 %842, 3
  %844 = load i64, ptr %78, align 8, !tbaa !9
  %845 = load i64, ptr %52, align 8, !tbaa !9
  %846 = mul nsw i64 %844, %845
  %847 = add nsw i64 %843, %846
  %848 = getelementptr inbounds float, ptr %841, i64 %847
  store float 0.000000e+00, ptr %848, align 4, !tbaa !11
  %849 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 0
  %850 = load float, ptr %849, align 4, !tbaa !11
  %851 = load ptr, ptr %42, align 8, !tbaa !5
  %852 = load i64, ptr %79, align 8, !tbaa !9
  %853 = load i64, ptr %56, align 8, !tbaa !9
  %854 = mul nsw i64 %852, %853
  %855 = add nsw i64 %854, 1
  %856 = getelementptr inbounds float, ptr %851, i64 %855
  store float %850, ptr %856, align 4, !tbaa !11
  %857 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 1
  %858 = load float, ptr %857, align 4, !tbaa !11
  %859 = load ptr, ptr %42, align 8, !tbaa !5
  %860 = load i64, ptr %79, align 8, !tbaa !9
  %861 = load i64, ptr %56, align 8, !tbaa !9
  %862 = mul nsw i64 %860, %861
  %863 = add nsw i64 %862, 2
  %864 = getelementptr inbounds float, ptr %859, i64 %863
  store float %858, ptr %864, align 4, !tbaa !11
  %865 = getelementptr inbounds [3 x float], ptr %92, i64 0, i64 2
  %866 = load float, ptr %865, align 4, !tbaa !11
  %867 = load ptr, ptr %42, align 8, !tbaa !5
  %868 = load i64, ptr %79, align 8, !tbaa !9
  %869 = load i64, ptr %56, align 8, !tbaa !9
  %870 = mul nsw i64 %868, %869
  %871 = add nsw i64 %870, 3
  %872 = getelementptr inbounds float, ptr %867, i64 %871
  store float %866, ptr %872, align 4, !tbaa !11
  br label %873

873:                                              ; preds = %821, %795
  br label %874

874:                                              ; preds = %873, %606
  br label %875

875:                                              ; preds = %874, %463
  br label %876

876:                                              ; preds = %875
  %877 = load i64, ptr %79, align 8, !tbaa !9
  %878 = add nsw i64 %877, 1
  store i64 %878, ptr %79, align 8, !tbaa !9
  br label %448, !llvm.loop !15

879:                                              ; preds = %448
  %880 = load i64, ptr %117, align 8, !tbaa !9
  %881 = load i64, ptr %89, align 8, !tbaa !9
  %882 = sub nsw i64 %881, 1
  %883 = mul nsw i64 %882, 3
  %884 = add nsw i64 %880, %883
  store i64 %884, ptr %78, align 8, !tbaa !9
  %885 = load i64, ptr %103, align 8, !tbaa !9
  %886 = icmp ne i64 %885, 0
  br i1 %886, label %887, label %1005

887:                                              ; preds = %879
  %888 = load i64, ptr %78, align 8, !tbaa !9
  %889 = load ptr, ptr %31, align 8, !tbaa !5
  %890 = load i64, ptr %889, align 8, !tbaa !9
  %891 = sub nsw i64 %890, 1
  %892 = icmp eq i64 %888, %891
  br i1 %892, label %893, label %949

893:                                              ; preds = %887
  %894 = load ptr, ptr %36, align 8, !tbaa !5
  %895 = load i64, ptr %78, align 8, !tbaa !9
  %896 = add nsw i64 %895, 1
  %897 = load i64, ptr %78, align 8, !tbaa !9
  %898 = add nsw i64 %897, 1
  %899 = load i64, ptr %52, align 8, !tbaa !9
  %900 = mul nsw i64 %898, %899
  %901 = add nsw i64 %896, %900
  %902 = getelementptr inbounds float, ptr %894, i64 %901
  %903 = load ptr, ptr %37, align 8, !tbaa !5
  %904 = load ptr, ptr %34, align 8, !tbaa !5
  %905 = load i64, ptr %89, align 8, !tbaa !9
  %906 = shl i64 %905, 1
  %907 = sub nsw i64 %906, 1
  %908 = getelementptr inbounds float, ptr %904, i64 %907
  %909 = load ptr, ptr %35, align 8, !tbaa !5
  %910 = load i64, ptr %89, align 8, !tbaa !9
  %911 = shl i64 %910, 1
  %912 = sub nsw i64 %911, 1
  %913 = getelementptr inbounds float, ptr %909, i64 %912
  %914 = load ptr, ptr %34, align 8, !tbaa !5
  %915 = load i64, ptr %89, align 8, !tbaa !9
  %916 = mul nsw i64 %915, 2
  %917 = getelementptr inbounds float, ptr %914, i64 %916
  %918 = load ptr, ptr %35, align 8, !tbaa !5
  %919 = load i64, ptr %89, align 8, !tbaa !9
  %920 = mul nsw i64 %919, 2
  %921 = getelementptr inbounds float, ptr %918, i64 %920
  %922 = load ptr, ptr %42, align 8, !tbaa !5
  %923 = load i64, ptr %89, align 8, !tbaa !9
  %924 = load i64, ptr %56, align 8, !tbaa !9
  %925 = mul nsw i64 %923, %924
  %926 = add nsw i64 %925, 1
  %927 = getelementptr inbounds float, ptr %922, i64 %926
  %928 = call i32 @slaqr1_(ptr noundef @c__2, ptr noundef %902, ptr noundef %903, ptr noundef %908, ptr noundef %913, ptr noundef %917, ptr noundef %921, ptr noundef %927)
  %929 = load ptr, ptr %42, align 8, !tbaa !5
  %930 = load i64, ptr %89, align 8, !tbaa !9
  %931 = load i64, ptr %56, align 8, !tbaa !9
  %932 = mul nsw i64 %930, %931
  %933 = add nsw i64 %932, 1
  %934 = getelementptr inbounds float, ptr %929, i64 %933
  %935 = load float, ptr %934, align 4, !tbaa !11
  store float %935, ptr %101, align 4, !tbaa !11
  %936 = load ptr, ptr %42, align 8, !tbaa !5
  %937 = load i64, ptr %89, align 8, !tbaa !9
  %938 = load i64, ptr %56, align 8, !tbaa !9
  %939 = mul nsw i64 %937, %938
  %940 = add nsw i64 %939, 2
  %941 = getelementptr inbounds float, ptr %936, i64 %940
  %942 = load ptr, ptr %42, align 8, !tbaa !5
  %943 = load i64, ptr %89, align 8, !tbaa !9
  %944 = load i64, ptr %56, align 8, !tbaa !9
  %945 = mul nsw i64 %943, %944
  %946 = add nsw i64 %945, 1
  %947 = getelementptr inbounds float, ptr %942, i64 %946
  %948 = call i32 @slarfg_(ptr noundef @c__2, ptr noundef %101, ptr noundef %941, ptr noundef @c__1, ptr noundef %947)
  br label %1004

949:                                              ; preds = %887
  %950 = load ptr, ptr %36, align 8, !tbaa !5
  %951 = load i64, ptr %78, align 8, !tbaa !9
  %952 = add nsw i64 %951, 1
  %953 = load i64, ptr %78, align 8, !tbaa !9
  %954 = load i64, ptr %52, align 8, !tbaa !9
  %955 = mul nsw i64 %953, %954
  %956 = add nsw i64 %952, %955
  %957 = getelementptr inbounds float, ptr %950, i64 %956
  %958 = load float, ptr %957, align 4, !tbaa !11
  store float %958, ptr %101, align 4, !tbaa !11
  %959 = load ptr, ptr %36, align 8, !tbaa !5
  %960 = load i64, ptr %78, align 8, !tbaa !9
  %961 = add nsw i64 %960, 2
  %962 = load i64, ptr %78, align 8, !tbaa !9
  %963 = load i64, ptr %52, align 8, !tbaa !9
  %964 = mul nsw i64 %962, %963
  %965 = add nsw i64 %961, %964
  %966 = getelementptr inbounds float, ptr %959, i64 %965
  %967 = load float, ptr %966, align 4, !tbaa !11
  %968 = load ptr, ptr %42, align 8, !tbaa !5
  %969 = load i64, ptr %89, align 8, !tbaa !9
  %970 = load i64, ptr %56, align 8, !tbaa !9
  %971 = mul nsw i64 %969, %970
  %972 = add nsw i64 %971, 2
  %973 = getelementptr inbounds float, ptr %968, i64 %972
  store float %967, ptr %973, align 4, !tbaa !11
  %974 = load ptr, ptr %42, align 8, !tbaa !5
  %975 = load i64, ptr %89, align 8, !tbaa !9
  %976 = load i64, ptr %56, align 8, !tbaa !9
  %977 = mul nsw i64 %975, %976
  %978 = add nsw i64 %977, 2
  %979 = getelementptr inbounds float, ptr %974, i64 %978
  %980 = load ptr, ptr %42, align 8, !tbaa !5
  %981 = load i64, ptr %89, align 8, !tbaa !9
  %982 = load i64, ptr %56, align 8, !tbaa !9
  %983 = mul nsw i64 %981, %982
  %984 = add nsw i64 %983, 1
  %985 = getelementptr inbounds float, ptr %980, i64 %984
  %986 = call i32 @slarfg_(ptr noundef @c__2, ptr noundef %101, ptr noundef %979, ptr noundef @c__1, ptr noundef %985)
  %987 = load float, ptr %101, align 4, !tbaa !11
  %988 = load ptr, ptr %36, align 8, !tbaa !5
  %989 = load i64, ptr %78, align 8, !tbaa !9
  %990 = add nsw i64 %989, 1
  %991 = load i64, ptr %78, align 8, !tbaa !9
  %992 = load i64, ptr %52, align 8, !tbaa !9
  %993 = mul nsw i64 %991, %992
  %994 = add nsw i64 %990, %993
  %995 = getelementptr inbounds float, ptr %988, i64 %994
  store float %987, ptr %995, align 4, !tbaa !11
  %996 = load ptr, ptr %36, align 8, !tbaa !5
  %997 = load i64, ptr %78, align 8, !tbaa !9
  %998 = add nsw i64 %997, 2
  %999 = load i64, ptr %78, align 8, !tbaa !9
  %1000 = load i64, ptr %52, align 8, !tbaa !9
  %1001 = mul nsw i64 %999, %1000
  %1002 = add nsw i64 %998, %1001
  %1003 = getelementptr inbounds float, ptr %996, i64 %1002
  store float 0.000000e+00, ptr %1003, align 4, !tbaa !11
  br label %1004

1004:                                             ; preds = %949, %893
  br label %1005

1005:                                             ; preds = %1004, %879
  %1006 = load i64, ptr %114, align 8, !tbaa !9
  %1007 = icmp ne i64 %1006, 0
  br i1 %1007, label %1008, label %1020

1008:                                             ; preds = %1005
  %1009 = load i64, ptr %115, align 8, !tbaa !9
  %1010 = load ptr, ptr %32, align 8, !tbaa !5
  %1011 = load i64, ptr %1010, align 8, !tbaa !9
  %1012 = icmp sle i64 %1009, %1011
  br i1 %1012, label %1013, label %1015

1013:                                             ; preds = %1008
  %1014 = load i64, ptr %115, align 8, !tbaa !9
  br label %1018

1015:                                             ; preds = %1008
  %1016 = load ptr, ptr %32, align 8, !tbaa !5
  %1017 = load i64, ptr %1016, align 8, !tbaa !9
  br label %1018

1018:                                             ; preds = %1015, %1013
  %1019 = phi i64 [ %1014, %1013 ], [ %1017, %1015 ]
  store i64 %1019, ptr %107, align 8, !tbaa !9
  br label %1031

1020:                                             ; preds = %1005
  %1021 = load ptr, ptr %27, align 8, !tbaa !5
  %1022 = load i64, ptr %1021, align 8, !tbaa !9
  %1023 = icmp ne i64 %1022, 0
  br i1 %1023, label %1024, label %1027

1024:                                             ; preds = %1020
  %1025 = load ptr, ptr %30, align 8, !tbaa !5
  %1026 = load i64, ptr %1025, align 8, !tbaa !9
  store i64 %1026, ptr %107, align 8, !tbaa !9
  br label %1030

1027:                                             ; preds = %1020
  %1028 = load ptr, ptr %32, align 8, !tbaa !5
  %1029 = load i64, ptr %1028, align 8, !tbaa !9
  store i64 %1029, ptr %107, align 8, !tbaa !9
  br label %1030

1030:                                             ; preds = %1027, %1024
  br label %1031

1031:                                             ; preds = %1030, %1018
  %1032 = load i64, ptr %107, align 8, !tbaa !9
  store i64 %1032, ptr %67, align 8, !tbaa !9
  %1033 = load ptr, ptr %31, align 8, !tbaa !5
  %1034 = load i64, ptr %1033, align 8, !tbaa !9
  %1035 = load i64, ptr %117, align 8, !tbaa !9
  %1036 = icmp sge i64 %1034, %1035
  br i1 %1036, label %1037, label %1040

1037:                                             ; preds = %1031
  %1038 = load ptr, ptr %31, align 8, !tbaa !5
  %1039 = load i64, ptr %1038, align 8, !tbaa !9
  br label %1042

1040:                                             ; preds = %1031
  %1041 = load i64, ptr %117, align 8, !tbaa !9
  br label %1042

1042:                                             ; preds = %1040, %1037
  %1043 = phi i64 [ %1039, %1037 ], [ %1041, %1040 ]
  store i64 %1043, ptr %77, align 8, !tbaa !9
  br label %1044

1044:                                             ; preds = %1180, %1042
  %1045 = load i64, ptr %77, align 8, !tbaa !9
  %1046 = load i64, ptr %67, align 8, !tbaa !9
  %1047 = icmp sle i64 %1045, %1046
  br i1 %1047, label %1048, label %1183

1048:                                             ; preds = %1044
  %1049 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %1049, ptr %68, align 8, !tbaa !9
  %1050 = load i64, ptr %77, align 8, !tbaa !9
  %1051 = load i64, ptr %117, align 8, !tbaa !9
  %1052 = sub nsw i64 %1050, %1051
  %1053 = add nsw i64 %1052, 2
  %1054 = sdiv i64 %1053, 3
  store i64 %1054, ptr %69, align 8, !tbaa !9
  %1055 = load i64, ptr %68, align 8, !tbaa !9
  %1056 = load i64, ptr %69, align 8, !tbaa !9
  %1057 = icmp sle i64 %1055, %1056
  br i1 %1057, label %1058, label %1060

1058:                                             ; preds = %1048
  %1059 = load i64, ptr %68, align 8, !tbaa !9
  br label %1062

1060:                                             ; preds = %1048
  %1061 = load i64, ptr %69, align 8, !tbaa !9
  br label %1062

1062:                                             ; preds = %1060, %1058
  %1063 = phi i64 [ %1059, %1058 ], [ %1061, %1060 ]
  store i64 %1063, ptr %104, align 8, !tbaa !9
  %1064 = load i64, ptr %104, align 8, !tbaa !9
  store i64 %1064, ptr %68, align 8, !tbaa !9
  %1065 = load i64, ptr %112, align 8, !tbaa !9
  store i64 %1065, ptr %79, align 8, !tbaa !9
  br label %1066

1066:                                             ; preds = %1176, %1062
  %1067 = load i64, ptr %79, align 8, !tbaa !9
  %1068 = load i64, ptr %68, align 8, !tbaa !9
  %1069 = icmp sle i64 %1067, %1068
  br i1 %1069, label %1070, label %1179

1070:                                             ; preds = %1066
  %1071 = load i64, ptr %117, align 8, !tbaa !9
  %1072 = load i64, ptr %79, align 8, !tbaa !9
  %1073 = sub nsw i64 %1072, 1
  %1074 = mul nsw i64 %1073, 3
  %1075 = add nsw i64 %1071, %1074
  store i64 %1075, ptr %78, align 8, !tbaa !9
  %1076 = load ptr, ptr %42, align 8, !tbaa !5
  %1077 = load i64, ptr %79, align 8, !tbaa !9
  %1078 = load i64, ptr %56, align 8, !tbaa !9
  %1079 = mul nsw i64 %1077, %1078
  %1080 = add nsw i64 %1079, 1
  %1081 = getelementptr inbounds float, ptr %1076, i64 %1080
  %1082 = load float, ptr %1081, align 4, !tbaa !11
  %1083 = load ptr, ptr %36, align 8, !tbaa !5
  %1084 = load i64, ptr %78, align 8, !tbaa !9
  %1085 = add nsw i64 %1084, 1
  %1086 = load i64, ptr %77, align 8, !tbaa !9
  %1087 = load i64, ptr %52, align 8, !tbaa !9
  %1088 = mul nsw i64 %1086, %1087
  %1089 = add nsw i64 %1085, %1088
  %1090 = getelementptr inbounds float, ptr %1083, i64 %1089
  %1091 = load float, ptr %1090, align 4, !tbaa !11
  %1092 = load ptr, ptr %42, align 8, !tbaa !5
  %1093 = load i64, ptr %79, align 8, !tbaa !9
  %1094 = load i64, ptr %56, align 8, !tbaa !9
  %1095 = mul nsw i64 %1093, %1094
  %1096 = add nsw i64 %1095, 2
  %1097 = getelementptr inbounds float, ptr %1092, i64 %1096
  %1098 = load float, ptr %1097, align 4, !tbaa !11
  %1099 = load ptr, ptr %36, align 8, !tbaa !5
  %1100 = load i64, ptr %78, align 8, !tbaa !9
  %1101 = add nsw i64 %1100, 2
  %1102 = load i64, ptr %77, align 8, !tbaa !9
  %1103 = load i64, ptr %52, align 8, !tbaa !9
  %1104 = mul nsw i64 %1102, %1103
  %1105 = add nsw i64 %1101, %1104
  %1106 = getelementptr inbounds float, ptr %1099, i64 %1105
  %1107 = load float, ptr %1106, align 4, !tbaa !11
  %1108 = call float @llvm.fmuladd.f32(float %1098, float %1107, float %1091)
  %1109 = load ptr, ptr %42, align 8, !tbaa !5
  %1110 = load i64, ptr %79, align 8, !tbaa !9
  %1111 = load i64, ptr %56, align 8, !tbaa !9
  %1112 = mul nsw i64 %1110, %1111
  %1113 = add nsw i64 %1112, 3
  %1114 = getelementptr inbounds float, ptr %1109, i64 %1113
  %1115 = load float, ptr %1114, align 4, !tbaa !11
  %1116 = load ptr, ptr %36, align 8, !tbaa !5
  %1117 = load i64, ptr %78, align 8, !tbaa !9
  %1118 = add nsw i64 %1117, 3
  %1119 = load i64, ptr %77, align 8, !tbaa !9
  %1120 = load i64, ptr %52, align 8, !tbaa !9
  %1121 = mul nsw i64 %1119, %1120
  %1122 = add nsw i64 %1118, %1121
  %1123 = getelementptr inbounds float, ptr %1116, i64 %1122
  %1124 = load float, ptr %1123, align 4, !tbaa !11
  %1125 = call float @llvm.fmuladd.f32(float %1115, float %1124, float %1108)
  %1126 = fmul float %1082, %1125
  store float %1126, ptr %121, align 4, !tbaa !11
  %1127 = load float, ptr %121, align 4, !tbaa !11
  %1128 = load ptr, ptr %36, align 8, !tbaa !5
  %1129 = load i64, ptr %78, align 8, !tbaa !9
  %1130 = add nsw i64 %1129, 1
  %1131 = load i64, ptr %77, align 8, !tbaa !9
  %1132 = load i64, ptr %52, align 8, !tbaa !9
  %1133 = mul nsw i64 %1131, %1132
  %1134 = add nsw i64 %1130, %1133
  %1135 = getelementptr inbounds float, ptr %1128, i64 %1134
  %1136 = load float, ptr %1135, align 4, !tbaa !11
  %1137 = fsub float %1136, %1127
  store float %1137, ptr %1135, align 4, !tbaa !11
  %1138 = load float, ptr %121, align 4, !tbaa !11
  %1139 = load ptr, ptr %42, align 8, !tbaa !5
  %1140 = load i64, ptr %79, align 8, !tbaa !9
  %1141 = load i64, ptr %56, align 8, !tbaa !9
  %1142 = mul nsw i64 %1140, %1141
  %1143 = add nsw i64 %1142, 2
  %1144 = getelementptr inbounds float, ptr %1139, i64 %1143
  %1145 = load float, ptr %1144, align 4, !tbaa !11
  %1146 = load ptr, ptr %36, align 8, !tbaa !5
  %1147 = load i64, ptr %78, align 8, !tbaa !9
  %1148 = add nsw i64 %1147, 2
  %1149 = load i64, ptr %77, align 8, !tbaa !9
  %1150 = load i64, ptr %52, align 8, !tbaa !9
  %1151 = mul nsw i64 %1149, %1150
  %1152 = add nsw i64 %1148, %1151
  %1153 = getelementptr inbounds float, ptr %1146, i64 %1152
  %1154 = load float, ptr %1153, align 4, !tbaa !11
  %1155 = fneg float %1138
  %1156 = call float @llvm.fmuladd.f32(float %1155, float %1145, float %1154)
  store float %1156, ptr %1153, align 4, !tbaa !11
  %1157 = load float, ptr %121, align 4, !tbaa !11
  %1158 = load ptr, ptr %42, align 8, !tbaa !5
  %1159 = load i64, ptr %79, align 8, !tbaa !9
  %1160 = load i64, ptr %56, align 8, !tbaa !9
  %1161 = mul nsw i64 %1159, %1160
  %1162 = add nsw i64 %1161, 3
  %1163 = getelementptr inbounds float, ptr %1158, i64 %1162
  %1164 = load float, ptr %1163, align 4, !tbaa !11
  %1165 = load ptr, ptr %36, align 8, !tbaa !5
  %1166 = load i64, ptr %78, align 8, !tbaa !9
  %1167 = add nsw i64 %1166, 3
  %1168 = load i64, ptr %77, align 8, !tbaa !9
  %1169 = load i64, ptr %52, align 8, !tbaa !9
  %1170 = mul nsw i64 %1168, %1169
  %1171 = add nsw i64 %1167, %1170
  %1172 = getelementptr inbounds float, ptr %1165, i64 %1171
  %1173 = load float, ptr %1172, align 4, !tbaa !11
  %1174 = fneg float %1157
  %1175 = call float @llvm.fmuladd.f32(float %1174, float %1164, float %1173)
  store float %1175, ptr %1172, align 4, !tbaa !11
  br label %1176

1176:                                             ; preds = %1070
  %1177 = load i64, ptr %79, align 8, !tbaa !9
  %1178 = add nsw i64 %1177, 1
  store i64 %1178, ptr %79, align 8, !tbaa !9
  br label %1066, !llvm.loop !16

1179:                                             ; preds = %1066
  br label %1180

1180:                                             ; preds = %1179
  %1181 = load i64, ptr %77, align 8, !tbaa !9
  %1182 = add nsw i64 %1181, 1
  store i64 %1182, ptr %77, align 8, !tbaa !9
  br label %1044, !llvm.loop !17

1183:                                             ; preds = %1044
  %1184 = load i64, ptr %103, align 8, !tbaa !9
  %1185 = icmp ne i64 %1184, 0
  br i1 %1185, label %1186, label %1279

1186:                                             ; preds = %1183
  %1187 = load i64, ptr %117, align 8, !tbaa !9
  %1188 = load i64, ptr %89, align 8, !tbaa !9
  %1189 = sub nsw i64 %1188, 1
  %1190 = mul nsw i64 %1189, 3
  %1191 = add nsw i64 %1187, %1190
  store i64 %1191, ptr %78, align 8, !tbaa !9
  %1192 = load i64, ptr %78, align 8, !tbaa !9
  %1193 = add nsw i64 %1192, 1
  store i64 %1193, ptr %67, align 8, !tbaa !9
  %1194 = load i64, ptr %107, align 8, !tbaa !9
  store i64 %1194, ptr %68, align 8, !tbaa !9
  %1195 = load i64, ptr %67, align 8, !tbaa !9
  %1196 = load ptr, ptr %31, align 8, !tbaa !5
  %1197 = load i64, ptr %1196, align 8, !tbaa !9
  %1198 = icmp sge i64 %1195, %1197
  br i1 %1198, label %1199, label %1201

1199:                                             ; preds = %1186
  %1200 = load i64, ptr %67, align 8, !tbaa !9
  br label %1204

1201:                                             ; preds = %1186
  %1202 = load ptr, ptr %31, align 8, !tbaa !5
  %1203 = load i64, ptr %1202, align 8, !tbaa !9
  br label %1204

1204:                                             ; preds = %1201, %1199
  %1205 = phi i64 [ %1200, %1199 ], [ %1203, %1201 ]
  store i64 %1205, ptr %77, align 8, !tbaa !9
  br label %1206

1206:                                             ; preds = %1275, %1204
  %1207 = load i64, ptr %77, align 8, !tbaa !9
  %1208 = load i64, ptr %68, align 8, !tbaa !9
  %1209 = icmp sle i64 %1207, %1208
  br i1 %1209, label %1210, label %1278

1210:                                             ; preds = %1206
  %1211 = load ptr, ptr %42, align 8, !tbaa !5
  %1212 = load i64, ptr %89, align 8, !tbaa !9
  %1213 = load i64, ptr %56, align 8, !tbaa !9
  %1214 = mul nsw i64 %1212, %1213
  %1215 = add nsw i64 %1214, 1
  %1216 = getelementptr inbounds float, ptr %1211, i64 %1215
  %1217 = load float, ptr %1216, align 4, !tbaa !11
  %1218 = load ptr, ptr %36, align 8, !tbaa !5
  %1219 = load i64, ptr %78, align 8, !tbaa !9
  %1220 = add nsw i64 %1219, 1
  %1221 = load i64, ptr %77, align 8, !tbaa !9
  %1222 = load i64, ptr %52, align 8, !tbaa !9
  %1223 = mul nsw i64 %1221, %1222
  %1224 = add nsw i64 %1220, %1223
  %1225 = getelementptr inbounds float, ptr %1218, i64 %1224
  %1226 = load float, ptr %1225, align 4, !tbaa !11
  %1227 = load ptr, ptr %42, align 8, !tbaa !5
  %1228 = load i64, ptr %89, align 8, !tbaa !9
  %1229 = load i64, ptr %56, align 8, !tbaa !9
  %1230 = mul nsw i64 %1228, %1229
  %1231 = add nsw i64 %1230, 2
  %1232 = getelementptr inbounds float, ptr %1227, i64 %1231
  %1233 = load float, ptr %1232, align 4, !tbaa !11
  %1234 = load ptr, ptr %36, align 8, !tbaa !5
  %1235 = load i64, ptr %78, align 8, !tbaa !9
  %1236 = add nsw i64 %1235, 2
  %1237 = load i64, ptr %77, align 8, !tbaa !9
  %1238 = load i64, ptr %52, align 8, !tbaa !9
  %1239 = mul nsw i64 %1237, %1238
  %1240 = add nsw i64 %1236, %1239
  %1241 = getelementptr inbounds float, ptr %1234, i64 %1240
  %1242 = load float, ptr %1241, align 4, !tbaa !11
  %1243 = call float @llvm.fmuladd.f32(float %1233, float %1242, float %1226)
  %1244 = fmul float %1217, %1243
  store float %1244, ptr %121, align 4, !tbaa !11
  %1245 = load float, ptr %121, align 4, !tbaa !11
  %1246 = load ptr, ptr %36, align 8, !tbaa !5
  %1247 = load i64, ptr %78, align 8, !tbaa !9
  %1248 = add nsw i64 %1247, 1
  %1249 = load i64, ptr %77, align 8, !tbaa !9
  %1250 = load i64, ptr %52, align 8, !tbaa !9
  %1251 = mul nsw i64 %1249, %1250
  %1252 = add nsw i64 %1248, %1251
  %1253 = getelementptr inbounds float, ptr %1246, i64 %1252
  %1254 = load float, ptr %1253, align 4, !tbaa !11
  %1255 = fsub float %1254, %1245
  store float %1255, ptr %1253, align 4, !tbaa !11
  %1256 = load float, ptr %121, align 4, !tbaa !11
  %1257 = load ptr, ptr %42, align 8, !tbaa !5
  %1258 = load i64, ptr %89, align 8, !tbaa !9
  %1259 = load i64, ptr %56, align 8, !tbaa !9
  %1260 = mul nsw i64 %1258, %1259
  %1261 = add nsw i64 %1260, 2
  %1262 = getelementptr inbounds float, ptr %1257, i64 %1261
  %1263 = load float, ptr %1262, align 4, !tbaa !11
  %1264 = load ptr, ptr %36, align 8, !tbaa !5
  %1265 = load i64, ptr %78, align 8, !tbaa !9
  %1266 = add nsw i64 %1265, 2
  %1267 = load i64, ptr %77, align 8, !tbaa !9
  %1268 = load i64, ptr %52, align 8, !tbaa !9
  %1269 = mul nsw i64 %1267, %1268
  %1270 = add nsw i64 %1266, %1269
  %1271 = getelementptr inbounds float, ptr %1264, i64 %1270
  %1272 = load float, ptr %1271, align 4, !tbaa !11
  %1273 = fneg float %1256
  %1274 = call float @llvm.fmuladd.f32(float %1273, float %1263, float %1272)
  store float %1274, ptr %1271, align 4, !tbaa !11
  br label %1275

1275:                                             ; preds = %1210
  %1276 = load i64, ptr %77, align 8, !tbaa !9
  %1277 = add nsw i64 %1276, 1
  store i64 %1277, ptr %77, align 8, !tbaa !9
  br label %1206, !llvm.loop !18

1278:                                             ; preds = %1206
  br label %1279

1279:                                             ; preds = %1278, %1183
  %1280 = load i64, ptr %114, align 8, !tbaa !9
  %1281 = icmp ne i64 %1280, 0
  br i1 %1281, label %1282, label %1294

1282:                                             ; preds = %1279
  %1283 = load ptr, ptr %31, align 8, !tbaa !5
  %1284 = load i64, ptr %1283, align 8, !tbaa !9
  %1285 = load i64, ptr %116, align 8, !tbaa !9
  %1286 = icmp sge i64 %1284, %1285
  br i1 %1286, label %1287, label %1290

1287:                                             ; preds = %1282
  %1288 = load ptr, ptr %31, align 8, !tbaa !5
  %1289 = load i64, ptr %1288, align 8, !tbaa !9
  br label %1292

1290:                                             ; preds = %1282
  %1291 = load i64, ptr %116, align 8, !tbaa !9
  br label %1292

1292:                                             ; preds = %1290, %1287
  %1293 = phi i64 [ %1289, %1287 ], [ %1291, %1290 ]
  store i64 %1293, ptr %110, align 8, !tbaa !9
  br label %1303

1294:                                             ; preds = %1279
  %1295 = load ptr, ptr %27, align 8, !tbaa !5
  %1296 = load i64, ptr %1295, align 8, !tbaa !9
  %1297 = icmp ne i64 %1296, 0
  br i1 %1297, label %1298, label %1299

1298:                                             ; preds = %1294
  store i64 1, ptr %110, align 8, !tbaa !9
  br label %1302

1299:                                             ; preds = %1294
  %1300 = load ptr, ptr %31, align 8, !tbaa !5
  %1301 = load i64, ptr %1300, align 8, !tbaa !9
  store i64 %1301, ptr %110, align 8, !tbaa !9
  br label %1302

1302:                                             ; preds = %1299, %1298
  br label %1303

1303:                                             ; preds = %1302, %1292
  %1304 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %1304, ptr %68, align 8, !tbaa !9
  %1305 = load i64, ptr %112, align 8, !tbaa !9
  store i64 %1305, ptr %79, align 8, !tbaa !9
  br label %1306

1306:                                             ; preds = %1698, %1303
  %1307 = load i64, ptr %79, align 8, !tbaa !9
  %1308 = load i64, ptr %68, align 8, !tbaa !9
  %1309 = icmp sle i64 %1307, %1308
  br i1 %1309, label %1310, label %1701

1310:                                             ; preds = %1306
  %1311 = load ptr, ptr %42, align 8, !tbaa !5
  %1312 = load i64, ptr %79, align 8, !tbaa !9
  %1313 = load i64, ptr %56, align 8, !tbaa !9
  %1314 = mul nsw i64 %1312, %1313
  %1315 = add nsw i64 %1314, 1
  %1316 = getelementptr inbounds float, ptr %1311, i64 %1315
  %1317 = load float, ptr %1316, align 4, !tbaa !11
  %1318 = fcmp une float %1317, 0.000000e+00
  br i1 %1318, label %1319, label %1697

1319:                                             ; preds = %1310
  %1320 = load i64, ptr %117, align 8, !tbaa !9
  %1321 = load i64, ptr %79, align 8, !tbaa !9
  %1322 = sub nsw i64 %1321, 1
  %1323 = mul nsw i64 %1322, 3
  %1324 = add nsw i64 %1320, %1323
  store i64 %1324, ptr %78, align 8, !tbaa !9
  %1325 = load ptr, ptr %32, align 8, !tbaa !5
  %1326 = load i64, ptr %1325, align 8, !tbaa !9
  store i64 %1326, ptr %69, align 8, !tbaa !9
  %1327 = load i64, ptr %78, align 8, !tbaa !9
  %1328 = add nsw i64 %1327, 3
  store i64 %1328, ptr %70, align 8, !tbaa !9
  %1329 = load i64, ptr %69, align 8, !tbaa !9
  %1330 = load i64, ptr %70, align 8, !tbaa !9
  %1331 = icmp sle i64 %1329, %1330
  br i1 %1331, label %1332, label %1334

1332:                                             ; preds = %1319
  %1333 = load i64, ptr %69, align 8, !tbaa !9
  br label %1336

1334:                                             ; preds = %1319
  %1335 = load i64, ptr %70, align 8, !tbaa !9
  br label %1336

1336:                                             ; preds = %1334, %1332
  %1337 = phi i64 [ %1333, %1332 ], [ %1335, %1334 ]
  store i64 %1337, ptr %67, align 8, !tbaa !9
  %1338 = load i64, ptr %110, align 8, !tbaa !9
  store i64 %1338, ptr %77, align 8, !tbaa !9
  br label %1339

1339:                                             ; preds = %1444, %1336
  %1340 = load i64, ptr %77, align 8, !tbaa !9
  %1341 = load i64, ptr %67, align 8, !tbaa !9
  %1342 = icmp sle i64 %1340, %1341
  br i1 %1342, label %1343, label %1447

1343:                                             ; preds = %1339
  %1344 = load ptr, ptr %42, align 8, !tbaa !5
  %1345 = load i64, ptr %79, align 8, !tbaa !9
  %1346 = load i64, ptr %56, align 8, !tbaa !9
  %1347 = mul nsw i64 %1345, %1346
  %1348 = add nsw i64 %1347, 1
  %1349 = getelementptr inbounds float, ptr %1344, i64 %1348
  %1350 = load float, ptr %1349, align 4, !tbaa !11
  %1351 = load ptr, ptr %36, align 8, !tbaa !5
  %1352 = load i64, ptr %77, align 8, !tbaa !9
  %1353 = load i64, ptr %78, align 8, !tbaa !9
  %1354 = add nsw i64 %1353, 1
  %1355 = load i64, ptr %52, align 8, !tbaa !9
  %1356 = mul nsw i64 %1354, %1355
  %1357 = add nsw i64 %1352, %1356
  %1358 = getelementptr inbounds float, ptr %1351, i64 %1357
  %1359 = load float, ptr %1358, align 4, !tbaa !11
  %1360 = load ptr, ptr %42, align 8, !tbaa !5
  %1361 = load i64, ptr %79, align 8, !tbaa !9
  %1362 = load i64, ptr %56, align 8, !tbaa !9
  %1363 = mul nsw i64 %1361, %1362
  %1364 = add nsw i64 %1363, 2
  %1365 = getelementptr inbounds float, ptr %1360, i64 %1364
  %1366 = load float, ptr %1365, align 4, !tbaa !11
  %1367 = load ptr, ptr %36, align 8, !tbaa !5
  %1368 = load i64, ptr %77, align 8, !tbaa !9
  %1369 = load i64, ptr %78, align 8, !tbaa !9
  %1370 = add nsw i64 %1369, 2
  %1371 = load i64, ptr %52, align 8, !tbaa !9
  %1372 = mul nsw i64 %1370, %1371
  %1373 = add nsw i64 %1368, %1372
  %1374 = getelementptr inbounds float, ptr %1367, i64 %1373
  %1375 = load float, ptr %1374, align 4, !tbaa !11
  %1376 = call float @llvm.fmuladd.f32(float %1366, float %1375, float %1359)
  %1377 = load ptr, ptr %42, align 8, !tbaa !5
  %1378 = load i64, ptr %79, align 8, !tbaa !9
  %1379 = load i64, ptr %56, align 8, !tbaa !9
  %1380 = mul nsw i64 %1378, %1379
  %1381 = add nsw i64 %1380, 3
  %1382 = getelementptr inbounds float, ptr %1377, i64 %1381
  %1383 = load float, ptr %1382, align 4, !tbaa !11
  %1384 = load ptr, ptr %36, align 8, !tbaa !5
  %1385 = load i64, ptr %77, align 8, !tbaa !9
  %1386 = load i64, ptr %78, align 8, !tbaa !9
  %1387 = add nsw i64 %1386, 3
  %1388 = load i64, ptr %52, align 8, !tbaa !9
  %1389 = mul nsw i64 %1387, %1388
  %1390 = add nsw i64 %1385, %1389
  %1391 = getelementptr inbounds float, ptr %1384, i64 %1390
  %1392 = load float, ptr %1391, align 4, !tbaa !11
  %1393 = call float @llvm.fmuladd.f32(float %1383, float %1392, float %1376)
  %1394 = fmul float %1350, %1393
  store float %1394, ptr %121, align 4, !tbaa !11
  %1395 = load float, ptr %121, align 4, !tbaa !11
  %1396 = load ptr, ptr %36, align 8, !tbaa !5
  %1397 = load i64, ptr %77, align 8, !tbaa !9
  %1398 = load i64, ptr %78, align 8, !tbaa !9
  %1399 = add nsw i64 %1398, 1
  %1400 = load i64, ptr %52, align 8, !tbaa !9
  %1401 = mul nsw i64 %1399, %1400
  %1402 = add nsw i64 %1397, %1401
  %1403 = getelementptr inbounds float, ptr %1396, i64 %1402
  %1404 = load float, ptr %1403, align 4, !tbaa !11
  %1405 = fsub float %1404, %1395
  store float %1405, ptr %1403, align 4, !tbaa !11
  %1406 = load float, ptr %121, align 4, !tbaa !11
  %1407 = load ptr, ptr %42, align 8, !tbaa !5
  %1408 = load i64, ptr %79, align 8, !tbaa !9
  %1409 = load i64, ptr %56, align 8, !tbaa !9
  %1410 = mul nsw i64 %1408, %1409
  %1411 = add nsw i64 %1410, 2
  %1412 = getelementptr inbounds float, ptr %1407, i64 %1411
  %1413 = load float, ptr %1412, align 4, !tbaa !11
  %1414 = load ptr, ptr %36, align 8, !tbaa !5
  %1415 = load i64, ptr %77, align 8, !tbaa !9
  %1416 = load i64, ptr %78, align 8, !tbaa !9
  %1417 = add nsw i64 %1416, 2
  %1418 = load i64, ptr %52, align 8, !tbaa !9
  %1419 = mul nsw i64 %1417, %1418
  %1420 = add nsw i64 %1415, %1419
  %1421 = getelementptr inbounds float, ptr %1414, i64 %1420
  %1422 = load float, ptr %1421, align 4, !tbaa !11
  %1423 = fneg float %1406
  %1424 = call float @llvm.fmuladd.f32(float %1423, float %1413, float %1422)
  store float %1424, ptr %1421, align 4, !tbaa !11
  %1425 = load float, ptr %121, align 4, !tbaa !11
  %1426 = load ptr, ptr %42, align 8, !tbaa !5
  %1427 = load i64, ptr %79, align 8, !tbaa !9
  %1428 = load i64, ptr %56, align 8, !tbaa !9
  %1429 = mul nsw i64 %1427, %1428
  %1430 = add nsw i64 %1429, 3
  %1431 = getelementptr inbounds float, ptr %1426, i64 %1430
  %1432 = load float, ptr %1431, align 4, !tbaa !11
  %1433 = load ptr, ptr %36, align 8, !tbaa !5
  %1434 = load i64, ptr %77, align 8, !tbaa !9
  %1435 = load i64, ptr %78, align 8, !tbaa !9
  %1436 = add nsw i64 %1435, 3
  %1437 = load i64, ptr %52, align 8, !tbaa !9
  %1438 = mul nsw i64 %1436, %1437
  %1439 = add nsw i64 %1434, %1438
  %1440 = getelementptr inbounds float, ptr %1433, i64 %1439
  %1441 = load float, ptr %1440, align 4, !tbaa !11
  %1442 = fneg float %1425
  %1443 = call float @llvm.fmuladd.f32(float %1442, float %1432, float %1441)
  store float %1443, ptr %1440, align 4, !tbaa !11
  br label %1444

1444:                                             ; preds = %1343
  %1445 = load i64, ptr %77, align 8, !tbaa !9
  %1446 = add nsw i64 %1445, 1
  store i64 %1446, ptr %77, align 8, !tbaa !9
  br label %1339, !llvm.loop !19

1447:                                             ; preds = %1339
  %1448 = load i64, ptr %114, align 8, !tbaa !9
  %1449 = icmp ne i64 %1448, 0
  br i1 %1449, label %1450, label %1577

1450:                                             ; preds = %1447
  %1451 = load i64, ptr %78, align 8, !tbaa !9
  %1452 = load i64, ptr %116, align 8, !tbaa !9
  %1453 = sub nsw i64 %1451, %1452
  store i64 %1453, ptr %95, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  %1454 = load ptr, ptr %31, align 8, !tbaa !5
  %1455 = load i64, ptr %1454, align 8, !tbaa !9
  %1456 = load i64, ptr %116, align 8, !tbaa !9
  %1457 = sub nsw i64 %1455, %1456
  store i64 %1457, ptr %69, align 8, !tbaa !9
  %1458 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %1458, ptr %70, align 8, !tbaa !9
  %1459 = load i64, ptr %67, align 8, !tbaa !9
  %1460 = load i64, ptr %69, align 8, !tbaa !9
  %1461 = icmp sge i64 %1459, %1460
  br i1 %1461, label %1462, label %1464

1462:                                             ; preds = %1450
  %1463 = load i64, ptr %67, align 8, !tbaa !9
  br label %1466

1464:                                             ; preds = %1450
  %1465 = load i64, ptr %69, align 8, !tbaa !9
  br label %1466

1466:                                             ; preds = %1464, %1462
  %1467 = phi i64 [ %1463, %1462 ], [ %1465, %1464 ]
  store i64 %1467, ptr %77, align 8, !tbaa !9
  br label %1468

1468:                                             ; preds = %1573, %1466
  %1469 = load i64, ptr %77, align 8, !tbaa !9
  %1470 = load i64, ptr %70, align 8, !tbaa !9
  %1471 = icmp sle i64 %1469, %1470
  br i1 %1471, label %1472, label %1576

1472:                                             ; preds = %1468
  %1473 = load ptr, ptr %42, align 8, !tbaa !5
  %1474 = load i64, ptr %79, align 8, !tbaa !9
  %1475 = load i64, ptr %56, align 8, !tbaa !9
  %1476 = mul nsw i64 %1474, %1475
  %1477 = add nsw i64 %1476, 1
  %1478 = getelementptr inbounds float, ptr %1473, i64 %1477
  %1479 = load float, ptr %1478, align 4, !tbaa !11
  %1480 = load ptr, ptr %44, align 8, !tbaa !5
  %1481 = load i64, ptr %77, align 8, !tbaa !9
  %1482 = load i64, ptr %95, align 8, !tbaa !9
  %1483 = add nsw i64 %1482, 1
  %1484 = load i64, ptr %54, align 8, !tbaa !9
  %1485 = mul nsw i64 %1483, %1484
  %1486 = add nsw i64 %1481, %1485
  %1487 = getelementptr inbounds float, ptr %1480, i64 %1486
  %1488 = load float, ptr %1487, align 4, !tbaa !11
  %1489 = load ptr, ptr %42, align 8, !tbaa !5
  %1490 = load i64, ptr %79, align 8, !tbaa !9
  %1491 = load i64, ptr %56, align 8, !tbaa !9
  %1492 = mul nsw i64 %1490, %1491
  %1493 = add nsw i64 %1492, 2
  %1494 = getelementptr inbounds float, ptr %1489, i64 %1493
  %1495 = load float, ptr %1494, align 4, !tbaa !11
  %1496 = load ptr, ptr %44, align 8, !tbaa !5
  %1497 = load i64, ptr %77, align 8, !tbaa !9
  %1498 = load i64, ptr %95, align 8, !tbaa !9
  %1499 = add nsw i64 %1498, 2
  %1500 = load i64, ptr %54, align 8, !tbaa !9
  %1501 = mul nsw i64 %1499, %1500
  %1502 = add nsw i64 %1497, %1501
  %1503 = getelementptr inbounds float, ptr %1496, i64 %1502
  %1504 = load float, ptr %1503, align 4, !tbaa !11
  %1505 = call float @llvm.fmuladd.f32(float %1495, float %1504, float %1488)
  %1506 = load ptr, ptr %42, align 8, !tbaa !5
  %1507 = load i64, ptr %79, align 8, !tbaa !9
  %1508 = load i64, ptr %56, align 8, !tbaa !9
  %1509 = mul nsw i64 %1507, %1508
  %1510 = add nsw i64 %1509, 3
  %1511 = getelementptr inbounds float, ptr %1506, i64 %1510
  %1512 = load float, ptr %1511, align 4, !tbaa !11
  %1513 = load ptr, ptr %44, align 8, !tbaa !5
  %1514 = load i64, ptr %77, align 8, !tbaa !9
  %1515 = load i64, ptr %95, align 8, !tbaa !9
  %1516 = add nsw i64 %1515, 3
  %1517 = load i64, ptr %54, align 8, !tbaa !9
  %1518 = mul nsw i64 %1516, %1517
  %1519 = add nsw i64 %1514, %1518
  %1520 = getelementptr inbounds float, ptr %1513, i64 %1519
  %1521 = load float, ptr %1520, align 4, !tbaa !11
  %1522 = call float @llvm.fmuladd.f32(float %1512, float %1521, float %1505)
  %1523 = fmul float %1479, %1522
  store float %1523, ptr %121, align 4, !tbaa !11
  %1524 = load float, ptr %121, align 4, !tbaa !11
  %1525 = load ptr, ptr %44, align 8, !tbaa !5
  %1526 = load i64, ptr %77, align 8, !tbaa !9
  %1527 = load i64, ptr %95, align 8, !tbaa !9
  %1528 = add nsw i64 %1527, 1
  %1529 = load i64, ptr %54, align 8, !tbaa !9
  %1530 = mul nsw i64 %1528, %1529
  %1531 = add nsw i64 %1526, %1530
  %1532 = getelementptr inbounds float, ptr %1525, i64 %1531
  %1533 = load float, ptr %1532, align 4, !tbaa !11
  %1534 = fsub float %1533, %1524
  store float %1534, ptr %1532, align 4, !tbaa !11
  %1535 = load float, ptr %121, align 4, !tbaa !11
  %1536 = load ptr, ptr %42, align 8, !tbaa !5
  %1537 = load i64, ptr %79, align 8, !tbaa !9
  %1538 = load i64, ptr %56, align 8, !tbaa !9
  %1539 = mul nsw i64 %1537, %1538
  %1540 = add nsw i64 %1539, 2
  %1541 = getelementptr inbounds float, ptr %1536, i64 %1540
  %1542 = load float, ptr %1541, align 4, !tbaa !11
  %1543 = load ptr, ptr %44, align 8, !tbaa !5
  %1544 = load i64, ptr %77, align 8, !tbaa !9
  %1545 = load i64, ptr %95, align 8, !tbaa !9
  %1546 = add nsw i64 %1545, 2
  %1547 = load i64, ptr %54, align 8, !tbaa !9
  %1548 = mul nsw i64 %1546, %1547
  %1549 = add nsw i64 %1544, %1548
  %1550 = getelementptr inbounds float, ptr %1543, i64 %1549
  %1551 = load float, ptr %1550, align 4, !tbaa !11
  %1552 = fneg float %1535
  %1553 = call float @llvm.fmuladd.f32(float %1552, float %1542, float %1551)
  store float %1553, ptr %1550, align 4, !tbaa !11
  %1554 = load float, ptr %121, align 4, !tbaa !11
  %1555 = load ptr, ptr %42, align 8, !tbaa !5
  %1556 = load i64, ptr %79, align 8, !tbaa !9
  %1557 = load i64, ptr %56, align 8, !tbaa !9
  %1558 = mul nsw i64 %1556, %1557
  %1559 = add nsw i64 %1558, 3
  %1560 = getelementptr inbounds float, ptr %1555, i64 %1559
  %1561 = load float, ptr %1560, align 4, !tbaa !11
  %1562 = load ptr, ptr %44, align 8, !tbaa !5
  %1563 = load i64, ptr %77, align 8, !tbaa !9
  %1564 = load i64, ptr %95, align 8, !tbaa !9
  %1565 = add nsw i64 %1564, 3
  %1566 = load i64, ptr %54, align 8, !tbaa !9
  %1567 = mul nsw i64 %1565, %1566
  %1568 = add nsw i64 %1563, %1567
  %1569 = getelementptr inbounds float, ptr %1562, i64 %1568
  %1570 = load float, ptr %1569, align 4, !tbaa !11
  %1571 = fneg float %1554
  %1572 = call float @llvm.fmuladd.f32(float %1571, float %1561, float %1570)
  store float %1572, ptr %1569, align 4, !tbaa !11
  br label %1573

1573:                                             ; preds = %1472
  %1574 = load i64, ptr %77, align 8, !tbaa !9
  %1575 = add nsw i64 %1574, 1
  store i64 %1575, ptr %77, align 8, !tbaa !9
  br label %1468, !llvm.loop !20

1576:                                             ; preds = %1468
  br label %1696

1577:                                             ; preds = %1447
  %1578 = load ptr, ptr %28, align 8, !tbaa !5
  %1579 = load i64, ptr %1578, align 8, !tbaa !9
  %1580 = icmp ne i64 %1579, 0
  br i1 %1580, label %1581, label %1695

1581:                                             ; preds = %1577
  %1582 = load ptr, ptr %39, align 8, !tbaa !5
  %1583 = load i64, ptr %1582, align 8, !tbaa !9
  store i64 %1583, ptr %70, align 8, !tbaa !9
  %1584 = load ptr, ptr %38, align 8, !tbaa !5
  %1585 = load i64, ptr %1584, align 8, !tbaa !9
  store i64 %1585, ptr %77, align 8, !tbaa !9
  br label %1586

1586:                                             ; preds = %1691, %1581
  %1587 = load i64, ptr %77, align 8, !tbaa !9
  %1588 = load i64, ptr %70, align 8, !tbaa !9
  %1589 = icmp sle i64 %1587, %1588
  br i1 %1589, label %1590, label %1694

1590:                                             ; preds = %1586
  %1591 = load ptr, ptr %42, align 8, !tbaa !5
  %1592 = load i64, ptr %79, align 8, !tbaa !9
  %1593 = load i64, ptr %56, align 8, !tbaa !9
  %1594 = mul nsw i64 %1592, %1593
  %1595 = add nsw i64 %1594, 1
  %1596 = getelementptr inbounds float, ptr %1591, i64 %1595
  %1597 = load float, ptr %1596, align 4, !tbaa !11
  %1598 = load ptr, ptr %40, align 8, !tbaa !5
  %1599 = load i64, ptr %77, align 8, !tbaa !9
  %1600 = load i64, ptr %78, align 8, !tbaa !9
  %1601 = add nsw i64 %1600, 1
  %1602 = load i64, ptr %62, align 8, !tbaa !9
  %1603 = mul nsw i64 %1601, %1602
  %1604 = add nsw i64 %1599, %1603
  %1605 = getelementptr inbounds float, ptr %1598, i64 %1604
  %1606 = load float, ptr %1605, align 4, !tbaa !11
  %1607 = load ptr, ptr %42, align 8, !tbaa !5
  %1608 = load i64, ptr %79, align 8, !tbaa !9
  %1609 = load i64, ptr %56, align 8, !tbaa !9
  %1610 = mul nsw i64 %1608, %1609
  %1611 = add nsw i64 %1610, 2
  %1612 = getelementptr inbounds float, ptr %1607, i64 %1611
  %1613 = load float, ptr %1612, align 4, !tbaa !11
  %1614 = load ptr, ptr %40, align 8, !tbaa !5
  %1615 = load i64, ptr %77, align 8, !tbaa !9
  %1616 = load i64, ptr %78, align 8, !tbaa !9
  %1617 = add nsw i64 %1616, 2
  %1618 = load i64, ptr %62, align 8, !tbaa !9
  %1619 = mul nsw i64 %1617, %1618
  %1620 = add nsw i64 %1615, %1619
  %1621 = getelementptr inbounds float, ptr %1614, i64 %1620
  %1622 = load float, ptr %1621, align 4, !tbaa !11
  %1623 = call float @llvm.fmuladd.f32(float %1613, float %1622, float %1606)
  %1624 = load ptr, ptr %42, align 8, !tbaa !5
  %1625 = load i64, ptr %79, align 8, !tbaa !9
  %1626 = load i64, ptr %56, align 8, !tbaa !9
  %1627 = mul nsw i64 %1625, %1626
  %1628 = add nsw i64 %1627, 3
  %1629 = getelementptr inbounds float, ptr %1624, i64 %1628
  %1630 = load float, ptr %1629, align 4, !tbaa !11
  %1631 = load ptr, ptr %40, align 8, !tbaa !5
  %1632 = load i64, ptr %77, align 8, !tbaa !9
  %1633 = load i64, ptr %78, align 8, !tbaa !9
  %1634 = add nsw i64 %1633, 3
  %1635 = load i64, ptr %62, align 8, !tbaa !9
  %1636 = mul nsw i64 %1634, %1635
  %1637 = add nsw i64 %1632, %1636
  %1638 = getelementptr inbounds float, ptr %1631, i64 %1637
  %1639 = load float, ptr %1638, align 4, !tbaa !11
  %1640 = call float @llvm.fmuladd.f32(float %1630, float %1639, float %1623)
  %1641 = fmul float %1597, %1640
  store float %1641, ptr %121, align 4, !tbaa !11
  %1642 = load float, ptr %121, align 4, !tbaa !11
  %1643 = load ptr, ptr %40, align 8, !tbaa !5
  %1644 = load i64, ptr %77, align 8, !tbaa !9
  %1645 = load i64, ptr %78, align 8, !tbaa !9
  %1646 = add nsw i64 %1645, 1
  %1647 = load i64, ptr %62, align 8, !tbaa !9
  %1648 = mul nsw i64 %1646, %1647
  %1649 = add nsw i64 %1644, %1648
  %1650 = getelementptr inbounds float, ptr %1643, i64 %1649
  %1651 = load float, ptr %1650, align 4, !tbaa !11
  %1652 = fsub float %1651, %1642
  store float %1652, ptr %1650, align 4, !tbaa !11
  %1653 = load float, ptr %121, align 4, !tbaa !11
  %1654 = load ptr, ptr %42, align 8, !tbaa !5
  %1655 = load i64, ptr %79, align 8, !tbaa !9
  %1656 = load i64, ptr %56, align 8, !tbaa !9
  %1657 = mul nsw i64 %1655, %1656
  %1658 = add nsw i64 %1657, 2
  %1659 = getelementptr inbounds float, ptr %1654, i64 %1658
  %1660 = load float, ptr %1659, align 4, !tbaa !11
  %1661 = load ptr, ptr %40, align 8, !tbaa !5
  %1662 = load i64, ptr %77, align 8, !tbaa !9
  %1663 = load i64, ptr %78, align 8, !tbaa !9
  %1664 = add nsw i64 %1663, 2
  %1665 = load i64, ptr %62, align 8, !tbaa !9
  %1666 = mul nsw i64 %1664, %1665
  %1667 = add nsw i64 %1662, %1666
  %1668 = getelementptr inbounds float, ptr %1661, i64 %1667
  %1669 = load float, ptr %1668, align 4, !tbaa !11
  %1670 = fneg float %1653
  %1671 = call float @llvm.fmuladd.f32(float %1670, float %1660, float %1669)
  store float %1671, ptr %1668, align 4, !tbaa !11
  %1672 = load float, ptr %121, align 4, !tbaa !11
  %1673 = load ptr, ptr %42, align 8, !tbaa !5
  %1674 = load i64, ptr %79, align 8, !tbaa !9
  %1675 = load i64, ptr %56, align 8, !tbaa !9
  %1676 = mul nsw i64 %1674, %1675
  %1677 = add nsw i64 %1676, 3
  %1678 = getelementptr inbounds float, ptr %1673, i64 %1677
  %1679 = load float, ptr %1678, align 4, !tbaa !11
  %1680 = load ptr, ptr %40, align 8, !tbaa !5
  %1681 = load i64, ptr %77, align 8, !tbaa !9
  %1682 = load i64, ptr %78, align 8, !tbaa !9
  %1683 = add nsw i64 %1682, 3
  %1684 = load i64, ptr %62, align 8, !tbaa !9
  %1685 = mul nsw i64 %1683, %1684
  %1686 = add nsw i64 %1681, %1685
  %1687 = getelementptr inbounds float, ptr %1680, i64 %1686
  %1688 = load float, ptr %1687, align 4, !tbaa !11
  %1689 = fneg float %1672
  %1690 = call float @llvm.fmuladd.f32(float %1689, float %1679, float %1688)
  store float %1690, ptr %1687, align 4, !tbaa !11
  br label %1691

1691:                                             ; preds = %1590
  %1692 = load i64, ptr %77, align 8, !tbaa !9
  %1693 = add nsw i64 %1692, 1
  store i64 %1693, ptr %77, align 8, !tbaa !9
  br label %1586, !llvm.loop !21

1694:                                             ; preds = %1586
  br label %1695

1695:                                             ; preds = %1694, %1577
  br label %1696

1696:                                             ; preds = %1695, %1576
  br label %1697

1697:                                             ; preds = %1696, %1310
  br label %1698

1698:                                             ; preds = %1697
  %1699 = load i64, ptr %79, align 8, !tbaa !9
  %1700 = add nsw i64 %1699, 1
  store i64 %1700, ptr %79, align 8, !tbaa !9
  br label %1306, !llvm.loop !22

1701:                                             ; preds = %1306
  %1702 = load i64, ptr %117, align 8, !tbaa !9
  %1703 = load i64, ptr %89, align 8, !tbaa !9
  %1704 = sub nsw i64 %1703, 1
  %1705 = mul nsw i64 %1704, 3
  %1706 = add nsw i64 %1702, %1705
  store i64 %1706, ptr %78, align 8, !tbaa !9
  %1707 = load i64, ptr %103, align 8, !tbaa !9
  %1708 = icmp ne i64 %1707, 0
  br i1 %1708, label %1709, label %1983

1709:                                             ; preds = %1701
  %1710 = load ptr, ptr %42, align 8, !tbaa !5
  %1711 = load i64, ptr %89, align 8, !tbaa !9
  %1712 = load i64, ptr %56, align 8, !tbaa !9
  %1713 = mul nsw i64 %1711, %1712
  %1714 = add nsw i64 %1713, 1
  %1715 = getelementptr inbounds float, ptr %1710, i64 %1714
  %1716 = load float, ptr %1715, align 4, !tbaa !11
  %1717 = fcmp une float %1716, 0.000000e+00
  br i1 %1717, label %1718, label %1983

1718:                                             ; preds = %1709
  %1719 = load ptr, ptr %32, align 8, !tbaa !5
  %1720 = load i64, ptr %1719, align 8, !tbaa !9
  store i64 %1720, ptr %70, align 8, !tbaa !9
  %1721 = load i64, ptr %78, align 8, !tbaa !9
  %1722 = add nsw i64 %1721, 3
  store i64 %1722, ptr %67, align 8, !tbaa !9
  %1723 = load i64, ptr %70, align 8, !tbaa !9
  %1724 = load i64, ptr %67, align 8, !tbaa !9
  %1725 = icmp sle i64 %1723, %1724
  br i1 %1725, label %1726, label %1728

1726:                                             ; preds = %1718
  %1727 = load i64, ptr %70, align 8, !tbaa !9
  br label %1730

1728:                                             ; preds = %1718
  %1729 = load i64, ptr %67, align 8, !tbaa !9
  br label %1730

1730:                                             ; preds = %1728, %1726
  %1731 = phi i64 [ %1727, %1726 ], [ %1729, %1728 ]
  store i64 %1731, ptr %68, align 8, !tbaa !9
  %1732 = load i64, ptr %110, align 8, !tbaa !9
  store i64 %1732, ptr %77, align 8, !tbaa !9
  br label %1733

1733:                                             ; preds = %1802, %1730
  %1734 = load i64, ptr %77, align 8, !tbaa !9
  %1735 = load i64, ptr %68, align 8, !tbaa !9
  %1736 = icmp sle i64 %1734, %1735
  br i1 %1736, label %1737, label %1805

1737:                                             ; preds = %1733
  %1738 = load ptr, ptr %42, align 8, !tbaa !5
  %1739 = load i64, ptr %89, align 8, !tbaa !9
  %1740 = load i64, ptr %56, align 8, !tbaa !9
  %1741 = mul nsw i64 %1739, %1740
  %1742 = add nsw i64 %1741, 1
  %1743 = getelementptr inbounds float, ptr %1738, i64 %1742
  %1744 = load float, ptr %1743, align 4, !tbaa !11
  %1745 = load ptr, ptr %36, align 8, !tbaa !5
  %1746 = load i64, ptr %77, align 8, !tbaa !9
  %1747 = load i64, ptr %78, align 8, !tbaa !9
  %1748 = add nsw i64 %1747, 1
  %1749 = load i64, ptr %52, align 8, !tbaa !9
  %1750 = mul nsw i64 %1748, %1749
  %1751 = add nsw i64 %1746, %1750
  %1752 = getelementptr inbounds float, ptr %1745, i64 %1751
  %1753 = load float, ptr %1752, align 4, !tbaa !11
  %1754 = load ptr, ptr %42, align 8, !tbaa !5
  %1755 = load i64, ptr %89, align 8, !tbaa !9
  %1756 = load i64, ptr %56, align 8, !tbaa !9
  %1757 = mul nsw i64 %1755, %1756
  %1758 = add nsw i64 %1757, 2
  %1759 = getelementptr inbounds float, ptr %1754, i64 %1758
  %1760 = load float, ptr %1759, align 4, !tbaa !11
  %1761 = load ptr, ptr %36, align 8, !tbaa !5
  %1762 = load i64, ptr %77, align 8, !tbaa !9
  %1763 = load i64, ptr %78, align 8, !tbaa !9
  %1764 = add nsw i64 %1763, 2
  %1765 = load i64, ptr %52, align 8, !tbaa !9
  %1766 = mul nsw i64 %1764, %1765
  %1767 = add nsw i64 %1762, %1766
  %1768 = getelementptr inbounds float, ptr %1761, i64 %1767
  %1769 = load float, ptr %1768, align 4, !tbaa !11
  %1770 = call float @llvm.fmuladd.f32(float %1760, float %1769, float %1753)
  %1771 = fmul float %1744, %1770
  store float %1771, ptr %121, align 4, !tbaa !11
  %1772 = load float, ptr %121, align 4, !tbaa !11
  %1773 = load ptr, ptr %36, align 8, !tbaa !5
  %1774 = load i64, ptr %77, align 8, !tbaa !9
  %1775 = load i64, ptr %78, align 8, !tbaa !9
  %1776 = add nsw i64 %1775, 1
  %1777 = load i64, ptr %52, align 8, !tbaa !9
  %1778 = mul nsw i64 %1776, %1777
  %1779 = add nsw i64 %1774, %1778
  %1780 = getelementptr inbounds float, ptr %1773, i64 %1779
  %1781 = load float, ptr %1780, align 4, !tbaa !11
  %1782 = fsub float %1781, %1772
  store float %1782, ptr %1780, align 4, !tbaa !11
  %1783 = load float, ptr %121, align 4, !tbaa !11
  %1784 = load ptr, ptr %42, align 8, !tbaa !5
  %1785 = load i64, ptr %89, align 8, !tbaa !9
  %1786 = load i64, ptr %56, align 8, !tbaa !9
  %1787 = mul nsw i64 %1785, %1786
  %1788 = add nsw i64 %1787, 2
  %1789 = getelementptr inbounds float, ptr %1784, i64 %1788
  %1790 = load float, ptr %1789, align 4, !tbaa !11
  %1791 = load ptr, ptr %36, align 8, !tbaa !5
  %1792 = load i64, ptr %77, align 8, !tbaa !9
  %1793 = load i64, ptr %78, align 8, !tbaa !9
  %1794 = add nsw i64 %1793, 2
  %1795 = load i64, ptr %52, align 8, !tbaa !9
  %1796 = mul nsw i64 %1794, %1795
  %1797 = add nsw i64 %1792, %1796
  %1798 = getelementptr inbounds float, ptr %1791, i64 %1797
  %1799 = load float, ptr %1798, align 4, !tbaa !11
  %1800 = fneg float %1783
  %1801 = call float @llvm.fmuladd.f32(float %1800, float %1790, float %1799)
  store float %1801, ptr %1798, align 4, !tbaa !11
  br label %1802

1802:                                             ; preds = %1737
  %1803 = load i64, ptr %77, align 8, !tbaa !9
  %1804 = add nsw i64 %1803, 1
  store i64 %1804, ptr %77, align 8, !tbaa !9
  br label %1733, !llvm.loop !23

1805:                                             ; preds = %1733
  %1806 = load i64, ptr %114, align 8, !tbaa !9
  %1807 = icmp ne i64 %1806, 0
  br i1 %1807, label %1808, label %1899

1808:                                             ; preds = %1805
  %1809 = load i64, ptr %78, align 8, !tbaa !9
  %1810 = load i64, ptr %116, align 8, !tbaa !9
  %1811 = sub nsw i64 %1809, %1810
  store i64 %1811, ptr %95, align 8, !tbaa !9
  store i64 1, ptr %68, align 8, !tbaa !9
  %1812 = load ptr, ptr %31, align 8, !tbaa !5
  %1813 = load i64, ptr %1812, align 8, !tbaa !9
  %1814 = load i64, ptr %116, align 8, !tbaa !9
  %1815 = sub nsw i64 %1813, %1814
  store i64 %1815, ptr %70, align 8, !tbaa !9
  %1816 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %1816, ptr %67, align 8, !tbaa !9
  %1817 = load i64, ptr %68, align 8, !tbaa !9
  %1818 = load i64, ptr %70, align 8, !tbaa !9
  %1819 = icmp sge i64 %1817, %1818
  br i1 %1819, label %1820, label %1822

1820:                                             ; preds = %1808
  %1821 = load i64, ptr %68, align 8, !tbaa !9
  br label %1824

1822:                                             ; preds = %1808
  %1823 = load i64, ptr %70, align 8, !tbaa !9
  br label %1824

1824:                                             ; preds = %1822, %1820
  %1825 = phi i64 [ %1821, %1820 ], [ %1823, %1822 ]
  store i64 %1825, ptr %77, align 8, !tbaa !9
  br label %1826

1826:                                             ; preds = %1895, %1824
  %1827 = load i64, ptr %77, align 8, !tbaa !9
  %1828 = load i64, ptr %67, align 8, !tbaa !9
  %1829 = icmp sle i64 %1827, %1828
  br i1 %1829, label %1830, label %1898

1830:                                             ; preds = %1826
  %1831 = load ptr, ptr %42, align 8, !tbaa !5
  %1832 = load i64, ptr %89, align 8, !tbaa !9
  %1833 = load i64, ptr %56, align 8, !tbaa !9
  %1834 = mul nsw i64 %1832, %1833
  %1835 = add nsw i64 %1834, 1
  %1836 = getelementptr inbounds float, ptr %1831, i64 %1835
  %1837 = load float, ptr %1836, align 4, !tbaa !11
  %1838 = load ptr, ptr %44, align 8, !tbaa !5
  %1839 = load i64, ptr %77, align 8, !tbaa !9
  %1840 = load i64, ptr %95, align 8, !tbaa !9
  %1841 = add nsw i64 %1840, 1
  %1842 = load i64, ptr %54, align 8, !tbaa !9
  %1843 = mul nsw i64 %1841, %1842
  %1844 = add nsw i64 %1839, %1843
  %1845 = getelementptr inbounds float, ptr %1838, i64 %1844
  %1846 = load float, ptr %1845, align 4, !tbaa !11
  %1847 = load ptr, ptr %42, align 8, !tbaa !5
  %1848 = load i64, ptr %89, align 8, !tbaa !9
  %1849 = load i64, ptr %56, align 8, !tbaa !9
  %1850 = mul nsw i64 %1848, %1849
  %1851 = add nsw i64 %1850, 2
  %1852 = getelementptr inbounds float, ptr %1847, i64 %1851
  %1853 = load float, ptr %1852, align 4, !tbaa !11
  %1854 = load ptr, ptr %44, align 8, !tbaa !5
  %1855 = load i64, ptr %77, align 8, !tbaa !9
  %1856 = load i64, ptr %95, align 8, !tbaa !9
  %1857 = add nsw i64 %1856, 2
  %1858 = load i64, ptr %54, align 8, !tbaa !9
  %1859 = mul nsw i64 %1857, %1858
  %1860 = add nsw i64 %1855, %1859
  %1861 = getelementptr inbounds float, ptr %1854, i64 %1860
  %1862 = load float, ptr %1861, align 4, !tbaa !11
  %1863 = call float @llvm.fmuladd.f32(float %1853, float %1862, float %1846)
  %1864 = fmul float %1837, %1863
  store float %1864, ptr %121, align 4, !tbaa !11
  %1865 = load float, ptr %121, align 4, !tbaa !11
  %1866 = load ptr, ptr %44, align 8, !tbaa !5
  %1867 = load i64, ptr %77, align 8, !tbaa !9
  %1868 = load i64, ptr %95, align 8, !tbaa !9
  %1869 = add nsw i64 %1868, 1
  %1870 = load i64, ptr %54, align 8, !tbaa !9
  %1871 = mul nsw i64 %1869, %1870
  %1872 = add nsw i64 %1867, %1871
  %1873 = getelementptr inbounds float, ptr %1866, i64 %1872
  %1874 = load float, ptr %1873, align 4, !tbaa !11
  %1875 = fsub float %1874, %1865
  store float %1875, ptr %1873, align 4, !tbaa !11
  %1876 = load float, ptr %121, align 4, !tbaa !11
  %1877 = load ptr, ptr %42, align 8, !tbaa !5
  %1878 = load i64, ptr %89, align 8, !tbaa !9
  %1879 = load i64, ptr %56, align 8, !tbaa !9
  %1880 = mul nsw i64 %1878, %1879
  %1881 = add nsw i64 %1880, 2
  %1882 = getelementptr inbounds float, ptr %1877, i64 %1881
  %1883 = load float, ptr %1882, align 4, !tbaa !11
  %1884 = load ptr, ptr %44, align 8, !tbaa !5
  %1885 = load i64, ptr %77, align 8, !tbaa !9
  %1886 = load i64, ptr %95, align 8, !tbaa !9
  %1887 = add nsw i64 %1886, 2
  %1888 = load i64, ptr %54, align 8, !tbaa !9
  %1889 = mul nsw i64 %1887, %1888
  %1890 = add nsw i64 %1885, %1889
  %1891 = getelementptr inbounds float, ptr %1884, i64 %1890
  %1892 = load float, ptr %1891, align 4, !tbaa !11
  %1893 = fneg float %1876
  %1894 = call float @llvm.fmuladd.f32(float %1893, float %1883, float %1892)
  store float %1894, ptr %1891, align 4, !tbaa !11
  br label %1895

1895:                                             ; preds = %1830
  %1896 = load i64, ptr %77, align 8, !tbaa !9
  %1897 = add nsw i64 %1896, 1
  store i64 %1897, ptr %77, align 8, !tbaa !9
  br label %1826, !llvm.loop !24

1898:                                             ; preds = %1826
  br label %1982

1899:                                             ; preds = %1805
  %1900 = load ptr, ptr %28, align 8, !tbaa !5
  %1901 = load i64, ptr %1900, align 8, !tbaa !9
  %1902 = icmp ne i64 %1901, 0
  br i1 %1902, label %1903, label %1981

1903:                                             ; preds = %1899
  %1904 = load ptr, ptr %39, align 8, !tbaa !5
  %1905 = load i64, ptr %1904, align 8, !tbaa !9
  store i64 %1905, ptr %67, align 8, !tbaa !9
  %1906 = load ptr, ptr %38, align 8, !tbaa !5
  %1907 = load i64, ptr %1906, align 8, !tbaa !9
  store i64 %1907, ptr %77, align 8, !tbaa !9
  br label %1908

1908:                                             ; preds = %1977, %1903
  %1909 = load i64, ptr %77, align 8, !tbaa !9
  %1910 = load i64, ptr %67, align 8, !tbaa !9
  %1911 = icmp sle i64 %1909, %1910
  br i1 %1911, label %1912, label %1980

1912:                                             ; preds = %1908
  %1913 = load ptr, ptr %42, align 8, !tbaa !5
  %1914 = load i64, ptr %89, align 8, !tbaa !9
  %1915 = load i64, ptr %56, align 8, !tbaa !9
  %1916 = mul nsw i64 %1914, %1915
  %1917 = add nsw i64 %1916, 1
  %1918 = getelementptr inbounds float, ptr %1913, i64 %1917
  %1919 = load float, ptr %1918, align 4, !tbaa !11
  %1920 = load ptr, ptr %40, align 8, !tbaa !5
  %1921 = load i64, ptr %77, align 8, !tbaa !9
  %1922 = load i64, ptr %78, align 8, !tbaa !9
  %1923 = add nsw i64 %1922, 1
  %1924 = load i64, ptr %62, align 8, !tbaa !9
  %1925 = mul nsw i64 %1923, %1924
  %1926 = add nsw i64 %1921, %1925
  %1927 = getelementptr inbounds float, ptr %1920, i64 %1926
  %1928 = load float, ptr %1927, align 4, !tbaa !11
  %1929 = load ptr, ptr %42, align 8, !tbaa !5
  %1930 = load i64, ptr %89, align 8, !tbaa !9
  %1931 = load i64, ptr %56, align 8, !tbaa !9
  %1932 = mul nsw i64 %1930, %1931
  %1933 = add nsw i64 %1932, 2
  %1934 = getelementptr inbounds float, ptr %1929, i64 %1933
  %1935 = load float, ptr %1934, align 4, !tbaa !11
  %1936 = load ptr, ptr %40, align 8, !tbaa !5
  %1937 = load i64, ptr %77, align 8, !tbaa !9
  %1938 = load i64, ptr %78, align 8, !tbaa !9
  %1939 = add nsw i64 %1938, 2
  %1940 = load i64, ptr %62, align 8, !tbaa !9
  %1941 = mul nsw i64 %1939, %1940
  %1942 = add nsw i64 %1937, %1941
  %1943 = getelementptr inbounds float, ptr %1936, i64 %1942
  %1944 = load float, ptr %1943, align 4, !tbaa !11
  %1945 = call float @llvm.fmuladd.f32(float %1935, float %1944, float %1928)
  %1946 = fmul float %1919, %1945
  store float %1946, ptr %121, align 4, !tbaa !11
  %1947 = load float, ptr %121, align 4, !tbaa !11
  %1948 = load ptr, ptr %40, align 8, !tbaa !5
  %1949 = load i64, ptr %77, align 8, !tbaa !9
  %1950 = load i64, ptr %78, align 8, !tbaa !9
  %1951 = add nsw i64 %1950, 1
  %1952 = load i64, ptr %62, align 8, !tbaa !9
  %1953 = mul nsw i64 %1951, %1952
  %1954 = add nsw i64 %1949, %1953
  %1955 = getelementptr inbounds float, ptr %1948, i64 %1954
  %1956 = load float, ptr %1955, align 4, !tbaa !11
  %1957 = fsub float %1956, %1947
  store float %1957, ptr %1955, align 4, !tbaa !11
  %1958 = load float, ptr %121, align 4, !tbaa !11
  %1959 = load ptr, ptr %42, align 8, !tbaa !5
  %1960 = load i64, ptr %89, align 8, !tbaa !9
  %1961 = load i64, ptr %56, align 8, !tbaa !9
  %1962 = mul nsw i64 %1960, %1961
  %1963 = add nsw i64 %1962, 2
  %1964 = getelementptr inbounds float, ptr %1959, i64 %1963
  %1965 = load float, ptr %1964, align 4, !tbaa !11
  %1966 = load ptr, ptr %40, align 8, !tbaa !5
  %1967 = load i64, ptr %77, align 8, !tbaa !9
  %1968 = load i64, ptr %78, align 8, !tbaa !9
  %1969 = add nsw i64 %1968, 2
  %1970 = load i64, ptr %62, align 8, !tbaa !9
  %1971 = mul nsw i64 %1969, %1970
  %1972 = add nsw i64 %1967, %1971
  %1973 = getelementptr inbounds float, ptr %1966, i64 %1972
  %1974 = load float, ptr %1973, align 4, !tbaa !11
  %1975 = fneg float %1958
  %1976 = call float @llvm.fmuladd.f32(float %1975, float %1965, float %1974)
  store float %1976, ptr %1973, align 4, !tbaa !11
  br label %1977

1977:                                             ; preds = %1912
  %1978 = load i64, ptr %77, align 8, !tbaa !9
  %1979 = add nsw i64 %1978, 1
  store i64 %1979, ptr %77, align 8, !tbaa !9
  br label %1908, !llvm.loop !25

1980:                                             ; preds = %1908
  br label %1981

1981:                                             ; preds = %1980, %1899
  br label %1982

1982:                                             ; preds = %1981, %1898
  br label %1983

1983:                                             ; preds = %1982, %1709, %1701
  %1984 = load i64, ptr %112, align 8, !tbaa !9
  store i64 %1984, ptr %122, align 8, !tbaa !9
  %1985 = load i64, ptr %117, align 8, !tbaa !9
  %1986 = load i64, ptr %122, align 8, !tbaa !9
  %1987 = sub nsw i64 %1986, 1
  %1988 = mul nsw i64 %1987, 3
  %1989 = add nsw i64 %1985, %1988
  %1990 = load ptr, ptr %31, align 8, !tbaa !5
  %1991 = load i64, ptr %1990, align 8, !tbaa !9
  %1992 = icmp slt i64 %1989, %1991
  br i1 %1992, label %1993, label %1996

1993:                                             ; preds = %1983
  %1994 = load i64, ptr %122, align 8, !tbaa !9
  %1995 = add nsw i64 %1994, 1
  store i64 %1995, ptr %122, align 8, !tbaa !9
  br label %1996

1996:                                             ; preds = %1993, %1983
  %1997 = load i64, ptr %108, align 8, !tbaa !9
  store i64 %1997, ptr %104, align 8, !tbaa !9
  %1998 = load i64, ptr %103, align 8, !tbaa !9
  %1999 = icmp ne i64 %1998, 0
  br i1 %1999, label %2000, label %2003

2000:                                             ; preds = %1996
  %2001 = load i64, ptr %104, align 8, !tbaa !9
  %2002 = add nsw i64 %2001, 1
  store i64 %2002, ptr %104, align 8, !tbaa !9
  br label %2003

2003:                                             ; preds = %2000, %1996
  %2004 = load i64, ptr %117, align 8, !tbaa !9
  %2005 = load ptr, ptr %32, align 8, !tbaa !5
  %2006 = load i64, ptr %2005, align 8, !tbaa !9
  %2007 = sub nsw i64 %2006, 2
  %2008 = icmp eq i64 %2004, %2007
  br i1 %2008, label %2009, label %2012

2009:                                             ; preds = %2003
  %2010 = load i64, ptr %104, align 8, !tbaa !9
  %2011 = add nsw i64 %2010, 1
  store i64 %2011, ptr %104, align 8, !tbaa !9
  br label %2012

2012:                                             ; preds = %2009, %2003
  %2013 = load i64, ptr %104, align 8, !tbaa !9
  store i64 %2013, ptr %67, align 8, !tbaa !9
  %2014 = load i64, ptr %122, align 8, !tbaa !9
  store i64 %2014, ptr %79, align 8, !tbaa !9
  br label %2015

2015:                                             ; preds = %2580, %2012
  %2016 = load i64, ptr %79, align 8, !tbaa !9
  %2017 = load i64, ptr %67, align 8, !tbaa !9
  %2018 = icmp sle i64 %2016, %2017
  br i1 %2018, label %2019, label %2583

2019:                                             ; preds = %2015
  %2020 = load ptr, ptr %32, align 8, !tbaa !5
  %2021 = load i64, ptr %2020, align 8, !tbaa !9
  %2022 = sub nsw i64 %2021, 1
  store i64 %2022, ptr %68, align 8, !tbaa !9
  %2023 = load i64, ptr %117, align 8, !tbaa !9
  %2024 = load i64, ptr %79, align 8, !tbaa !9
  %2025 = sub nsw i64 %2024, 1
  %2026 = mul nsw i64 %2025, 3
  %2027 = add nsw i64 %2023, %2026
  store i64 %2027, ptr %70, align 8, !tbaa !9
  %2028 = load i64, ptr %68, align 8, !tbaa !9
  %2029 = load i64, ptr %70, align 8, !tbaa !9
  %2030 = icmp sle i64 %2028, %2029
  br i1 %2030, label %2031, label %2033

2031:                                             ; preds = %2019
  %2032 = load i64, ptr %68, align 8, !tbaa !9
  br label %2035

2033:                                             ; preds = %2019
  %2034 = load i64, ptr %70, align 8, !tbaa !9
  br label %2035

2035:                                             ; preds = %2033, %2031
  %2036 = phi i64 [ %2032, %2031 ], [ %2034, %2033 ]
  store i64 %2036, ptr %78, align 8, !tbaa !9
  %2037 = load ptr, ptr %36, align 8, !tbaa !5
  %2038 = load i64, ptr %78, align 8, !tbaa !9
  %2039 = add nsw i64 %2038, 1
  %2040 = load i64, ptr %78, align 8, !tbaa !9
  %2041 = load i64, ptr %52, align 8, !tbaa !9
  %2042 = mul nsw i64 %2040, %2041
  %2043 = add nsw i64 %2039, %2042
  %2044 = getelementptr inbounds float, ptr %2037, i64 %2043
  %2045 = load float, ptr %2044, align 4, !tbaa !11
  %2046 = fcmp une float %2045, 0.000000e+00
  br i1 %2046, label %2047, label %2579

2047:                                             ; preds = %2035
  %2048 = load ptr, ptr %36, align 8, !tbaa !5
  %2049 = load i64, ptr %78, align 8, !tbaa !9
  %2050 = load i64, ptr %78, align 8, !tbaa !9
  %2051 = load i64, ptr %52, align 8, !tbaa !9
  %2052 = mul nsw i64 %2050, %2051
  %2053 = add nsw i64 %2049, %2052
  %2054 = getelementptr inbounds float, ptr %2048, i64 %2053
  %2055 = load float, ptr %2054, align 4, !tbaa !11
  store float %2055, ptr %71, align 4, !tbaa !11
  %2056 = load float, ptr %71, align 4, !tbaa !11
  %2057 = fcmp oge float %2056, 0.000000e+00
  br i1 %2057, label %2058, label %2060

2058:                                             ; preds = %2047
  %2059 = load float, ptr %71, align 4, !tbaa !11
  br label %2063

2060:                                             ; preds = %2047
  %2061 = load float, ptr %71, align 4, !tbaa !11
  %2062 = fneg float %2061
  br label %2063

2063:                                             ; preds = %2060, %2058
  %2064 = phi float [ %2059, %2058 ], [ %2062, %2060 ]
  %2065 = fpext float %2064 to double
  %2066 = load ptr, ptr %36, align 8, !tbaa !5
  %2067 = load i64, ptr %78, align 8, !tbaa !9
  %2068 = add nsw i64 %2067, 1
  %2069 = load i64, ptr %78, align 8, !tbaa !9
  %2070 = add nsw i64 %2069, 1
  %2071 = load i64, ptr %52, align 8, !tbaa !9
  %2072 = mul nsw i64 %2070, %2071
  %2073 = add nsw i64 %2068, %2072
  %2074 = getelementptr inbounds float, ptr %2066, i64 %2073
  %2075 = load float, ptr %2074, align 4, !tbaa !11
  store float %2075, ptr %72, align 4, !tbaa !11
  %2076 = load float, ptr %72, align 4, !tbaa !11
  %2077 = fcmp oge float %2076, 0.000000e+00
  br i1 %2077, label %2078, label %2080

2078:                                             ; preds = %2063
  %2079 = load float, ptr %72, align 4, !tbaa !11
  br label %2083

2080:                                             ; preds = %2063
  %2081 = load float, ptr %72, align 4, !tbaa !11
  %2082 = fneg float %2081
  br label %2083

2083:                                             ; preds = %2080, %2078
  %2084 = phi float [ %2079, %2078 ], [ %2082, %2080 ]
  %2085 = fpext float %2084 to double
  %2086 = fadd double %2065, %2085
  %2087 = fptrunc double %2086 to float
  store float %2087, ptr %99, align 4, !tbaa !11
  %2088 = load float, ptr %99, align 4, !tbaa !11
  %2089 = fcmp oeq float %2088, 0.000000e+00
  br i1 %2089, label %2090, label %2274

2090:                                             ; preds = %2083
  %2091 = load i64, ptr %78, align 8, !tbaa !9
  %2092 = load ptr, ptr %31, align 8, !tbaa !5
  %2093 = load i64, ptr %2092, align 8, !tbaa !9
  %2094 = add nsw i64 %2093, 1
  %2095 = icmp sge i64 %2091, %2094
  br i1 %2095, label %2096, label %2120

2096:                                             ; preds = %2090
  %2097 = load ptr, ptr %36, align 8, !tbaa !5
  %2098 = load i64, ptr %78, align 8, !tbaa !9
  %2099 = load i64, ptr %78, align 8, !tbaa !9
  %2100 = sub nsw i64 %2099, 1
  %2101 = load i64, ptr %52, align 8, !tbaa !9
  %2102 = mul nsw i64 %2100, %2101
  %2103 = add nsw i64 %2098, %2102
  %2104 = getelementptr inbounds float, ptr %2097, i64 %2103
  %2105 = load float, ptr %2104, align 4, !tbaa !11
  store float %2105, ptr %71, align 4, !tbaa !11
  %2106 = load float, ptr %71, align 4, !tbaa !11
  %2107 = fcmp oge float %2106, 0.000000e+00
  br i1 %2107, label %2108, label %2110

2108:                                             ; preds = %2096
  %2109 = load float, ptr %71, align 4, !tbaa !11
  br label %2113

2110:                                             ; preds = %2096
  %2111 = load float, ptr %71, align 4, !tbaa !11
  %2112 = fneg float %2111
  br label %2113

2113:                                             ; preds = %2110, %2108
  %2114 = phi float [ %2109, %2108 ], [ %2112, %2110 ]
  %2115 = fpext float %2114 to double
  %2116 = load float, ptr %99, align 4, !tbaa !11
  %2117 = fpext float %2116 to double
  %2118 = fadd double %2117, %2115
  %2119 = fptrunc double %2118 to float
  store float %2119, ptr %99, align 4, !tbaa !11
  br label %2120

2120:                                             ; preds = %2113, %2090
  %2121 = load i64, ptr %78, align 8, !tbaa !9
  %2122 = load ptr, ptr %31, align 8, !tbaa !5
  %2123 = load i64, ptr %2122, align 8, !tbaa !9
  %2124 = add nsw i64 %2123, 2
  %2125 = icmp sge i64 %2121, %2124
  br i1 %2125, label %2126, label %2150

2126:                                             ; preds = %2120
  %2127 = load ptr, ptr %36, align 8, !tbaa !5
  %2128 = load i64, ptr %78, align 8, !tbaa !9
  %2129 = load i64, ptr %78, align 8, !tbaa !9
  %2130 = sub nsw i64 %2129, 2
  %2131 = load i64, ptr %52, align 8, !tbaa !9
  %2132 = mul nsw i64 %2130, %2131
  %2133 = add nsw i64 %2128, %2132
  %2134 = getelementptr inbounds float, ptr %2127, i64 %2133
  %2135 = load float, ptr %2134, align 4, !tbaa !11
  store float %2135, ptr %71, align 4, !tbaa !11
  %2136 = load float, ptr %71, align 4, !tbaa !11
  %2137 = fcmp oge float %2136, 0.000000e+00
  br i1 %2137, label %2138, label %2140

2138:                                             ; preds = %2126
  %2139 = load float, ptr %71, align 4, !tbaa !11
  br label %2143

2140:                                             ; preds = %2126
  %2141 = load float, ptr %71, align 4, !tbaa !11
  %2142 = fneg float %2141
  br label %2143

2143:                                             ; preds = %2140, %2138
  %2144 = phi float [ %2139, %2138 ], [ %2142, %2140 ]
  %2145 = fpext float %2144 to double
  %2146 = load float, ptr %99, align 4, !tbaa !11
  %2147 = fpext float %2146 to double
  %2148 = fadd double %2147, %2145
  %2149 = fptrunc double %2148 to float
  store float %2149, ptr %99, align 4, !tbaa !11
  br label %2150

2150:                                             ; preds = %2143, %2120
  %2151 = load i64, ptr %78, align 8, !tbaa !9
  %2152 = load ptr, ptr %31, align 8, !tbaa !5
  %2153 = load i64, ptr %2152, align 8, !tbaa !9
  %2154 = add nsw i64 %2153, 3
  %2155 = icmp sge i64 %2151, %2154
  br i1 %2155, label %2156, label %2180

2156:                                             ; preds = %2150
  %2157 = load ptr, ptr %36, align 8, !tbaa !5
  %2158 = load i64, ptr %78, align 8, !tbaa !9
  %2159 = load i64, ptr %78, align 8, !tbaa !9
  %2160 = sub nsw i64 %2159, 3
  %2161 = load i64, ptr %52, align 8, !tbaa !9
  %2162 = mul nsw i64 %2160, %2161
  %2163 = add nsw i64 %2158, %2162
  %2164 = getelementptr inbounds float, ptr %2157, i64 %2163
  %2165 = load float, ptr %2164, align 4, !tbaa !11
  store float %2165, ptr %71, align 4, !tbaa !11
  %2166 = load float, ptr %71, align 4, !tbaa !11
  %2167 = fcmp oge float %2166, 0.000000e+00
  br i1 %2167, label %2168, label %2170

2168:                                             ; preds = %2156
  %2169 = load float, ptr %71, align 4, !tbaa !11
  br label %2173

2170:                                             ; preds = %2156
  %2171 = load float, ptr %71, align 4, !tbaa !11
  %2172 = fneg float %2171
  br label %2173

2173:                                             ; preds = %2170, %2168
  %2174 = phi float [ %2169, %2168 ], [ %2172, %2170 ]
  %2175 = fpext float %2174 to double
  %2176 = load float, ptr %99, align 4, !tbaa !11
  %2177 = fpext float %2176 to double
  %2178 = fadd double %2177, %2175
  %2179 = fptrunc double %2178 to float
  store float %2179, ptr %99, align 4, !tbaa !11
  br label %2180

2180:                                             ; preds = %2173, %2150
  %2181 = load i64, ptr %78, align 8, !tbaa !9
  %2182 = load ptr, ptr %32, align 8, !tbaa !5
  %2183 = load i64, ptr %2182, align 8, !tbaa !9
  %2184 = sub nsw i64 %2183, 2
  %2185 = icmp sle i64 %2181, %2184
  br i1 %2185, label %2186, label %2211

2186:                                             ; preds = %2180
  %2187 = load ptr, ptr %36, align 8, !tbaa !5
  %2188 = load i64, ptr %78, align 8, !tbaa !9
  %2189 = add nsw i64 %2188, 2
  %2190 = load i64, ptr %78, align 8, !tbaa !9
  %2191 = add nsw i64 %2190, 1
  %2192 = load i64, ptr %52, align 8, !tbaa !9
  %2193 = mul nsw i64 %2191, %2192
  %2194 = add nsw i64 %2189, %2193
  %2195 = getelementptr inbounds float, ptr %2187, i64 %2194
  %2196 = load float, ptr %2195, align 4, !tbaa !11
  store float %2196, ptr %71, align 4, !tbaa !11
  %2197 = load float, ptr %71, align 4, !tbaa !11
  %2198 = fcmp oge float %2197, 0.000000e+00
  br i1 %2198, label %2199, label %2201

2199:                                             ; preds = %2186
  %2200 = load float, ptr %71, align 4, !tbaa !11
  br label %2204

2201:                                             ; preds = %2186
  %2202 = load float, ptr %71, align 4, !tbaa !11
  %2203 = fneg float %2202
  br label %2204

2204:                                             ; preds = %2201, %2199
  %2205 = phi float [ %2200, %2199 ], [ %2203, %2201 ]
  %2206 = fpext float %2205 to double
  %2207 = load float, ptr %99, align 4, !tbaa !11
  %2208 = fpext float %2207 to double
  %2209 = fadd double %2208, %2206
  %2210 = fptrunc double %2209 to float
  store float %2210, ptr %99, align 4, !tbaa !11
  br label %2211

2211:                                             ; preds = %2204, %2180
  %2212 = load i64, ptr %78, align 8, !tbaa !9
  %2213 = load ptr, ptr %32, align 8, !tbaa !5
  %2214 = load i64, ptr %2213, align 8, !tbaa !9
  %2215 = sub nsw i64 %2214, 3
  %2216 = icmp sle i64 %2212, %2215
  br i1 %2216, label %2217, label %2242

2217:                                             ; preds = %2211
  %2218 = load ptr, ptr %36, align 8, !tbaa !5
  %2219 = load i64, ptr %78, align 8, !tbaa !9
  %2220 = add nsw i64 %2219, 3
  %2221 = load i64, ptr %78, align 8, !tbaa !9
  %2222 = add nsw i64 %2221, 1
  %2223 = load i64, ptr %52, align 8, !tbaa !9
  %2224 = mul nsw i64 %2222, %2223
  %2225 = add nsw i64 %2220, %2224
  %2226 = getelementptr inbounds float, ptr %2218, i64 %2225
  %2227 = load float, ptr %2226, align 4, !tbaa !11
  store float %2227, ptr %71, align 4, !tbaa !11
  %2228 = load float, ptr %71, align 4, !tbaa !11
  %2229 = fcmp oge float %2228, 0.000000e+00
  br i1 %2229, label %2230, label %2232

2230:                                             ; preds = %2217
  %2231 = load float, ptr %71, align 4, !tbaa !11
  br label %2235

2232:                                             ; preds = %2217
  %2233 = load float, ptr %71, align 4, !tbaa !11
  %2234 = fneg float %2233
  br label %2235

2235:                                             ; preds = %2232, %2230
  %2236 = phi float [ %2231, %2230 ], [ %2234, %2232 ]
  %2237 = fpext float %2236 to double
  %2238 = load float, ptr %99, align 4, !tbaa !11
  %2239 = fpext float %2238 to double
  %2240 = fadd double %2239, %2237
  %2241 = fptrunc double %2240 to float
  store float %2241, ptr %99, align 4, !tbaa !11
  br label %2242

2242:                                             ; preds = %2235, %2211
  %2243 = load i64, ptr %78, align 8, !tbaa !9
  %2244 = load ptr, ptr %32, align 8, !tbaa !5
  %2245 = load i64, ptr %2244, align 8, !tbaa !9
  %2246 = sub nsw i64 %2245, 4
  %2247 = icmp sle i64 %2243, %2246
  br i1 %2247, label %2248, label %2273

2248:                                             ; preds = %2242
  %2249 = load ptr, ptr %36, align 8, !tbaa !5
  %2250 = load i64, ptr %78, align 8, !tbaa !9
  %2251 = add nsw i64 %2250, 4
  %2252 = load i64, ptr %78, align 8, !tbaa !9
  %2253 = add nsw i64 %2252, 1
  %2254 = load i64, ptr %52, align 8, !tbaa !9
  %2255 = mul nsw i64 %2253, %2254
  %2256 = add nsw i64 %2251, %2255
  %2257 = getelementptr inbounds float, ptr %2249, i64 %2256
  %2258 = load float, ptr %2257, align 4, !tbaa !11
  store float %2258, ptr %71, align 4, !tbaa !11
  %2259 = load float, ptr %71, align 4, !tbaa !11
  %2260 = fcmp oge float %2259, 0.000000e+00
  br i1 %2260, label %2261, label %2263

2261:                                             ; preds = %2248
  %2262 = load float, ptr %71, align 4, !tbaa !11
  br label %2266

2263:                                             ; preds = %2248
  %2264 = load float, ptr %71, align 4, !tbaa !11
  %2265 = fneg float %2264
  br label %2266

2266:                                             ; preds = %2263, %2261
  %2267 = phi float [ %2262, %2261 ], [ %2265, %2263 ]
  %2268 = fpext float %2267 to double
  %2269 = load float, ptr %99, align 4, !tbaa !11
  %2270 = fpext float %2269 to double
  %2271 = fadd double %2270, %2268
  %2272 = fptrunc double %2271 to float
  store float %2272, ptr %99, align 4, !tbaa !11
  br label %2273

2273:                                             ; preds = %2266, %2242
  br label %2274

2274:                                             ; preds = %2273, %2083
  %2275 = load float, ptr %123, align 4, !tbaa !11
  store float %2275, ptr %72, align 4, !tbaa !11
  %2276 = load float, ptr %96, align 4, !tbaa !11
  %2277 = load float, ptr %99, align 4, !tbaa !11
  %2278 = fmul float %2276, %2277
  store float %2278, ptr %73, align 4, !tbaa !11
  %2279 = load ptr, ptr %36, align 8, !tbaa !5
  %2280 = load i64, ptr %78, align 8, !tbaa !9
  %2281 = add nsw i64 %2280, 1
  %2282 = load i64, ptr %78, align 8, !tbaa !9
  %2283 = load i64, ptr %52, align 8, !tbaa !9
  %2284 = mul nsw i64 %2282, %2283
  %2285 = add nsw i64 %2281, %2284
  %2286 = getelementptr inbounds float, ptr %2279, i64 %2285
  %2287 = load float, ptr %2286, align 4, !tbaa !11
  store float %2287, ptr %71, align 4, !tbaa !11
  %2288 = load float, ptr %71, align 4, !tbaa !11
  %2289 = fcmp oge float %2288, 0.000000e+00
  br i1 %2289, label %2290, label %2292

2290:                                             ; preds = %2274
  %2291 = load float, ptr %71, align 4, !tbaa !11
  br label %2295

2292:                                             ; preds = %2274
  %2293 = load float, ptr %71, align 4, !tbaa !11
  %2294 = fneg float %2293
  br label %2295

2295:                                             ; preds = %2292, %2290
  %2296 = phi float [ %2291, %2290 ], [ %2294, %2292 ]
  %2297 = fpext float %2296 to double
  %2298 = load float, ptr %72, align 4, !tbaa !11
  %2299 = load float, ptr %73, align 4, !tbaa !11
  %2300 = fcmp oge float %2298, %2299
  br i1 %2300, label %2301, label %2303

2301:                                             ; preds = %2295
  %2302 = load float, ptr %72, align 4, !tbaa !11
  br label %2305

2303:                                             ; preds = %2295
  %2304 = load float, ptr %73, align 4, !tbaa !11
  br label %2305

2305:                                             ; preds = %2303, %2301
  %2306 = phi float [ %2302, %2301 ], [ %2304, %2303 ]
  %2307 = fpext float %2306 to double
  %2308 = fcmp ole double %2297, %2307
  br i1 %2308, label %2309, label %2578

2309:                                             ; preds = %2305
  %2310 = load ptr, ptr %36, align 8, !tbaa !5
  %2311 = load i64, ptr %78, align 8, !tbaa !9
  %2312 = add nsw i64 %2311, 1
  %2313 = load i64, ptr %78, align 8, !tbaa !9
  %2314 = load i64, ptr %52, align 8, !tbaa !9
  %2315 = mul nsw i64 %2313, %2314
  %2316 = add nsw i64 %2312, %2315
  %2317 = getelementptr inbounds float, ptr %2310, i64 %2316
  %2318 = load float, ptr %2317, align 4, !tbaa !11
  store float %2318, ptr %71, align 4, !tbaa !11
  %2319 = load float, ptr %71, align 4, !tbaa !11
  %2320 = fcmp oge float %2319, 0.000000e+00
  br i1 %2320, label %2321, label %2323

2321:                                             ; preds = %2309
  %2322 = load float, ptr %71, align 4, !tbaa !11
  br label %2326

2323:                                             ; preds = %2309
  %2324 = load float, ptr %71, align 4, !tbaa !11
  %2325 = fneg float %2324
  br label %2326

2326:                                             ; preds = %2323, %2321
  %2327 = phi float [ %2322, %2321 ], [ %2325, %2323 ]
  %2328 = fpext float %2327 to double
  %2329 = fptrunc double %2328 to float
  store float %2329, ptr %73, align 4, !tbaa !11
  %2330 = load ptr, ptr %36, align 8, !tbaa !5
  %2331 = load i64, ptr %78, align 8, !tbaa !9
  %2332 = load i64, ptr %78, align 8, !tbaa !9
  %2333 = add nsw i64 %2332, 1
  %2334 = load i64, ptr %52, align 8, !tbaa !9
  %2335 = mul nsw i64 %2333, %2334
  %2336 = add nsw i64 %2331, %2335
  %2337 = getelementptr inbounds float, ptr %2330, i64 %2336
  %2338 = load float, ptr %2337, align 4, !tbaa !11
  store float %2338, ptr %72, align 4, !tbaa !11
  %2339 = load float, ptr %72, align 4, !tbaa !11
  %2340 = fcmp oge float %2339, 0.000000e+00
  br i1 %2340, label %2341, label %2343

2341:                                             ; preds = %2326
  %2342 = load float, ptr %72, align 4, !tbaa !11
  br label %2346

2343:                                             ; preds = %2326
  %2344 = load float, ptr %72, align 4, !tbaa !11
  %2345 = fneg float %2344
  br label %2346

2346:                                             ; preds = %2343, %2341
  %2347 = phi float [ %2342, %2341 ], [ %2345, %2343 ]
  %2348 = fpext float %2347 to double
  %2349 = fptrunc double %2348 to float
  store float %2349, ptr %74, align 4, !tbaa !11
  %2350 = load float, ptr %73, align 4, !tbaa !11
  %2351 = load float, ptr %74, align 4, !tbaa !11
  %2352 = fcmp oge float %2350, %2351
  br i1 %2352, label %2353, label %2355

2353:                                             ; preds = %2346
  %2354 = load float, ptr %73, align 4, !tbaa !11
  br label %2357

2355:                                             ; preds = %2346
  %2356 = load float, ptr %74, align 4, !tbaa !11
  br label %2357

2357:                                             ; preds = %2355, %2353
  %2358 = phi float [ %2354, %2353 ], [ %2356, %2355 ]
  %2359 = fpext float %2358 to double
  %2360 = fptrunc double %2359 to float
  store float %2360, ptr %86, align 4, !tbaa !11
  %2361 = load ptr, ptr %36, align 8, !tbaa !5
  %2362 = load i64, ptr %78, align 8, !tbaa !9
  %2363 = add nsw i64 %2362, 1
  %2364 = load i64, ptr %78, align 8, !tbaa !9
  %2365 = load i64, ptr %52, align 8, !tbaa !9
  %2366 = mul nsw i64 %2364, %2365
  %2367 = add nsw i64 %2363, %2366
  %2368 = getelementptr inbounds float, ptr %2361, i64 %2367
  %2369 = load float, ptr %2368, align 4, !tbaa !11
  store float %2369, ptr %71, align 4, !tbaa !11
  %2370 = load float, ptr %71, align 4, !tbaa !11
  %2371 = fcmp oge float %2370, 0.000000e+00
  br i1 %2371, label %2372, label %2374

2372:                                             ; preds = %2357
  %2373 = load float, ptr %71, align 4, !tbaa !11
  br label %2377

2374:                                             ; preds = %2357
  %2375 = load float, ptr %71, align 4, !tbaa !11
  %2376 = fneg float %2375
  br label %2377

2377:                                             ; preds = %2374, %2372
  %2378 = phi float [ %2373, %2372 ], [ %2376, %2374 ]
  %2379 = fpext float %2378 to double
  %2380 = fptrunc double %2379 to float
  store float %2380, ptr %73, align 4, !tbaa !11
  %2381 = load ptr, ptr %36, align 8, !tbaa !5
  %2382 = load i64, ptr %78, align 8, !tbaa !9
  %2383 = load i64, ptr %78, align 8, !tbaa !9
  %2384 = add nsw i64 %2383, 1
  %2385 = load i64, ptr %52, align 8, !tbaa !9
  %2386 = mul nsw i64 %2384, %2385
  %2387 = add nsw i64 %2382, %2386
  %2388 = getelementptr inbounds float, ptr %2381, i64 %2387
  %2389 = load float, ptr %2388, align 4, !tbaa !11
  store float %2389, ptr %72, align 4, !tbaa !11
  %2390 = load float, ptr %72, align 4, !tbaa !11
  %2391 = fcmp oge float %2390, 0.000000e+00
  br i1 %2391, label %2392, label %2394

2392:                                             ; preds = %2377
  %2393 = load float, ptr %72, align 4, !tbaa !11
  br label %2397

2394:                                             ; preds = %2377
  %2395 = load float, ptr %72, align 4, !tbaa !11
  %2396 = fneg float %2395
  br label %2397

2397:                                             ; preds = %2394, %2392
  %2398 = phi float [ %2393, %2392 ], [ %2396, %2394 ]
  %2399 = fpext float %2398 to double
  %2400 = fptrunc double %2399 to float
  store float %2400, ptr %74, align 4, !tbaa !11
  %2401 = load float, ptr %73, align 4, !tbaa !11
  %2402 = load float, ptr %74, align 4, !tbaa !11
  %2403 = fcmp ole float %2401, %2402
  br i1 %2403, label %2404, label %2406

2404:                                             ; preds = %2397
  %2405 = load float, ptr %73, align 4, !tbaa !11
  br label %2408

2406:                                             ; preds = %2397
  %2407 = load float, ptr %74, align 4, !tbaa !11
  br label %2408

2408:                                             ; preds = %2406, %2404
  %2409 = phi float [ %2405, %2404 ], [ %2407, %2406 ]
  %2410 = fpext float %2409 to double
  %2411 = fptrunc double %2410 to float
  store float %2411, ptr %87, align 4, !tbaa !11
  %2412 = load ptr, ptr %36, align 8, !tbaa !5
  %2413 = load i64, ptr %78, align 8, !tbaa !9
  %2414 = add nsw i64 %2413, 1
  %2415 = load i64, ptr %78, align 8, !tbaa !9
  %2416 = add nsw i64 %2415, 1
  %2417 = load i64, ptr %52, align 8, !tbaa !9
  %2418 = mul nsw i64 %2416, %2417
  %2419 = add nsw i64 %2414, %2418
  %2420 = getelementptr inbounds float, ptr %2412, i64 %2419
  %2421 = load float, ptr %2420, align 4, !tbaa !11
  store float %2421, ptr %71, align 4, !tbaa !11
  %2422 = load float, ptr %71, align 4, !tbaa !11
  %2423 = fcmp oge float %2422, 0.000000e+00
  br i1 %2423, label %2424, label %2426

2424:                                             ; preds = %2408
  %2425 = load float, ptr %71, align 4, !tbaa !11
  br label %2429

2426:                                             ; preds = %2408
  %2427 = load float, ptr %71, align 4, !tbaa !11
  %2428 = fneg float %2427
  br label %2429

2429:                                             ; preds = %2426, %2424
  %2430 = phi float [ %2425, %2424 ], [ %2428, %2426 ]
  %2431 = fpext float %2430 to double
  %2432 = fptrunc double %2431 to float
  store float %2432, ptr %73, align 4, !tbaa !11
  %2433 = load ptr, ptr %36, align 8, !tbaa !5
  %2434 = load i64, ptr %78, align 8, !tbaa !9
  %2435 = load i64, ptr %78, align 8, !tbaa !9
  %2436 = load i64, ptr %52, align 8, !tbaa !9
  %2437 = mul nsw i64 %2435, %2436
  %2438 = add nsw i64 %2434, %2437
  %2439 = getelementptr inbounds float, ptr %2433, i64 %2438
  %2440 = load float, ptr %2439, align 4, !tbaa !11
  %2441 = load ptr, ptr %36, align 8, !tbaa !5
  %2442 = load i64, ptr %78, align 8, !tbaa !9
  %2443 = add nsw i64 %2442, 1
  %2444 = load i64, ptr %78, align 8, !tbaa !9
  %2445 = add nsw i64 %2444, 1
  %2446 = load i64, ptr %52, align 8, !tbaa !9
  %2447 = mul nsw i64 %2445, %2446
  %2448 = add nsw i64 %2443, %2447
  %2449 = getelementptr inbounds float, ptr %2441, i64 %2448
  %2450 = load float, ptr %2449, align 4, !tbaa !11
  %2451 = fsub float %2440, %2450
  store float %2451, ptr %72, align 4, !tbaa !11
  %2452 = load float, ptr %72, align 4, !tbaa !11
  %2453 = fcmp oge float %2452, 0.000000e+00
  br i1 %2453, label %2454, label %2456

2454:                                             ; preds = %2429
  %2455 = load float, ptr %72, align 4, !tbaa !11
  br label %2459

2456:                                             ; preds = %2429
  %2457 = load float, ptr %72, align 4, !tbaa !11
  %2458 = fneg float %2457
  br label %2459

2459:                                             ; preds = %2456, %2454
  %2460 = phi float [ %2455, %2454 ], [ %2458, %2456 ]
  %2461 = fpext float %2460 to double
  %2462 = fptrunc double %2461 to float
  store float %2462, ptr %74, align 4, !tbaa !11
  %2463 = load float, ptr %73, align 4, !tbaa !11
  %2464 = load float, ptr %74, align 4, !tbaa !11
  %2465 = fcmp oge float %2463, %2464
  br i1 %2465, label %2466, label %2468

2466:                                             ; preds = %2459
  %2467 = load float, ptr %73, align 4, !tbaa !11
  br label %2470

2468:                                             ; preds = %2459
  %2469 = load float, ptr %74, align 4, !tbaa !11
  br label %2470

2470:                                             ; preds = %2468, %2466
  %2471 = phi float [ %2467, %2466 ], [ %2469, %2468 ]
  %2472 = fpext float %2471 to double
  %2473 = fptrunc double %2472 to float
  store float %2473, ptr %85, align 4, !tbaa !11
  %2474 = load ptr, ptr %36, align 8, !tbaa !5
  %2475 = load i64, ptr %78, align 8, !tbaa !9
  %2476 = add nsw i64 %2475, 1
  %2477 = load i64, ptr %78, align 8, !tbaa !9
  %2478 = add nsw i64 %2477, 1
  %2479 = load i64, ptr %52, align 8, !tbaa !9
  %2480 = mul nsw i64 %2478, %2479
  %2481 = add nsw i64 %2476, %2480
  %2482 = getelementptr inbounds float, ptr %2474, i64 %2481
  %2483 = load float, ptr %2482, align 4, !tbaa !11
  store float %2483, ptr %71, align 4, !tbaa !11
  %2484 = load float, ptr %71, align 4, !tbaa !11
  %2485 = fcmp oge float %2484, 0.000000e+00
  br i1 %2485, label %2486, label %2488

2486:                                             ; preds = %2470
  %2487 = load float, ptr %71, align 4, !tbaa !11
  br label %2491

2488:                                             ; preds = %2470
  %2489 = load float, ptr %71, align 4, !tbaa !11
  %2490 = fneg float %2489
  br label %2491

2491:                                             ; preds = %2488, %2486
  %2492 = phi float [ %2487, %2486 ], [ %2490, %2488 ]
  %2493 = fpext float %2492 to double
  %2494 = fptrunc double %2493 to float
  store float %2494, ptr %73, align 4, !tbaa !11
  %2495 = load ptr, ptr %36, align 8, !tbaa !5
  %2496 = load i64, ptr %78, align 8, !tbaa !9
  %2497 = load i64, ptr %78, align 8, !tbaa !9
  %2498 = load i64, ptr %52, align 8, !tbaa !9
  %2499 = mul nsw i64 %2497, %2498
  %2500 = add nsw i64 %2496, %2499
  %2501 = getelementptr inbounds float, ptr %2495, i64 %2500
  %2502 = load float, ptr %2501, align 4, !tbaa !11
  %2503 = load ptr, ptr %36, align 8, !tbaa !5
  %2504 = load i64, ptr %78, align 8, !tbaa !9
  %2505 = add nsw i64 %2504, 1
  %2506 = load i64, ptr %78, align 8, !tbaa !9
  %2507 = add nsw i64 %2506, 1
  %2508 = load i64, ptr %52, align 8, !tbaa !9
  %2509 = mul nsw i64 %2507, %2508
  %2510 = add nsw i64 %2505, %2509
  %2511 = getelementptr inbounds float, ptr %2503, i64 %2510
  %2512 = load float, ptr %2511, align 4, !tbaa !11
  %2513 = fsub float %2502, %2512
  store float %2513, ptr %72, align 4, !tbaa !11
  %2514 = load float, ptr %72, align 4, !tbaa !11
  %2515 = fcmp oge float %2514, 0.000000e+00
  br i1 %2515, label %2516, label %2518

2516:                                             ; preds = %2491
  %2517 = load float, ptr %72, align 4, !tbaa !11
  br label %2521

2518:                                             ; preds = %2491
  %2519 = load float, ptr %72, align 4, !tbaa !11
  %2520 = fneg float %2519
  br label %2521

2521:                                             ; preds = %2518, %2516
  %2522 = phi float [ %2517, %2516 ], [ %2520, %2518 ]
  %2523 = fpext float %2522 to double
  %2524 = fptrunc double %2523 to float
  store float %2524, ptr %74, align 4, !tbaa !11
  %2525 = load float, ptr %73, align 4, !tbaa !11
  %2526 = load float, ptr %74, align 4, !tbaa !11
  %2527 = fcmp ole float %2525, %2526
  br i1 %2527, label %2528, label %2530

2528:                                             ; preds = %2521
  %2529 = load float, ptr %73, align 4, !tbaa !11
  br label %2532

2530:                                             ; preds = %2521
  %2531 = load float, ptr %74, align 4, !tbaa !11
  br label %2532

2532:                                             ; preds = %2530, %2528
  %2533 = phi float [ %2529, %2528 ], [ %2531, %2530 ]
  %2534 = fpext float %2533 to double
  %2535 = fptrunc double %2534 to float
  store float %2535, ptr %88, align 4, !tbaa !11
  %2536 = load float, ptr %85, align 4, !tbaa !11
  %2537 = load float, ptr %86, align 4, !tbaa !11
  %2538 = fadd float %2536, %2537
  store float %2538, ptr %93, align 4, !tbaa !11
  %2539 = load float, ptr %88, align 4, !tbaa !11
  %2540 = load float, ptr %85, align 4, !tbaa !11
  %2541 = load float, ptr %93, align 4, !tbaa !11
  %2542 = fdiv float %2540, %2541
  %2543 = fmul float %2539, %2542
  store float %2543, ptr %100, align 4, !tbaa !11
  %2544 = load float, ptr %123, align 4, !tbaa !11
  store float %2544, ptr %71, align 4, !tbaa !11
  %2545 = load float, ptr %96, align 4, !tbaa !11
  %2546 = load float, ptr %100, align 4, !tbaa !11
  %2547 = fmul float %2545, %2546
  store float %2547, ptr %72, align 4, !tbaa !11
  %2548 = load float, ptr %100, align 4, !tbaa !11
  %2549 = fcmp oeq float %2548, 0.000000e+00
  br i1 %2549, label %2568, label %2550

2550:                                             ; preds = %2532
  %2551 = load float, ptr %87, align 4, !tbaa !11
  %2552 = load float, ptr %86, align 4, !tbaa !11
  %2553 = load float, ptr %93, align 4, !tbaa !11
  %2554 = fdiv float %2552, %2553
  %2555 = fmul float %2551, %2554
  %2556 = fpext float %2555 to double
  %2557 = load float, ptr %71, align 4, !tbaa !11
  %2558 = load float, ptr %72, align 4, !tbaa !11
  %2559 = fcmp oge float %2557, %2558
  br i1 %2559, label %2560, label %2562

2560:                                             ; preds = %2550
  %2561 = load float, ptr %71, align 4, !tbaa !11
  br label %2564

2562:                                             ; preds = %2550
  %2563 = load float, ptr %72, align 4, !tbaa !11
  br label %2564

2564:                                             ; preds = %2562, %2560
  %2565 = phi float [ %2561, %2560 ], [ %2563, %2562 ]
  %2566 = fpext float %2565 to double
  %2567 = fcmp ole double %2556, %2566
  br i1 %2567, label %2568, label %2577

2568:                                             ; preds = %2564, %2532
  %2569 = load ptr, ptr %36, align 8, !tbaa !5
  %2570 = load i64, ptr %78, align 8, !tbaa !9
  %2571 = add nsw i64 %2570, 1
  %2572 = load i64, ptr %78, align 8, !tbaa !9
  %2573 = load i64, ptr %52, align 8, !tbaa !9
  %2574 = mul nsw i64 %2572, %2573
  %2575 = add nsw i64 %2571, %2574
  %2576 = getelementptr inbounds float, ptr %2569, i64 %2575
  store float 0.000000e+00, ptr %2576, align 4, !tbaa !11
  br label %2577

2577:                                             ; preds = %2568, %2564
  br label %2578

2578:                                             ; preds = %2577, %2305
  br label %2579

2579:                                             ; preds = %2578, %2035
  br label %2580

2580:                                             ; preds = %2579
  %2581 = load i64, ptr %79, align 8, !tbaa !9
  %2582 = add nsw i64 %2581, 1
  store i64 %2582, ptr %79, align 8, !tbaa !9
  br label %2015, !llvm.loop !26

2583:                                             ; preds = %2015
  %2584 = load i64, ptr %118, align 8, !tbaa !9
  store i64 %2584, ptr %67, align 8, !tbaa !9
  %2585 = load ptr, ptr %32, align 8, !tbaa !5
  %2586 = load i64, ptr %2585, align 8, !tbaa !9
  %2587 = load i64, ptr %117, align 8, !tbaa !9
  %2588 = sub nsw i64 %2586, %2587
  %2589 = sub nsw i64 %2588, 1
  %2590 = sdiv i64 %2589, 3
  store i64 %2590, ptr %68, align 8, !tbaa !9
  %2591 = load i64, ptr %67, align 8, !tbaa !9
  %2592 = load i64, ptr %68, align 8, !tbaa !9
  %2593 = icmp sle i64 %2591, %2592
  br i1 %2593, label %2594, label %2596

2594:                                             ; preds = %2583
  %2595 = load i64, ptr %67, align 8, !tbaa !9
  br label %2598

2596:                                             ; preds = %2583
  %2597 = load i64, ptr %68, align 8, !tbaa !9
  br label %2598

2598:                                             ; preds = %2596, %2594
  %2599 = phi i64 [ %2595, %2594 ], [ %2597, %2596 ]
  store i64 %2599, ptr %104, align 8, !tbaa !9
  %2600 = load i64, ptr %104, align 8, !tbaa !9
  store i64 %2600, ptr %67, align 8, !tbaa !9
  %2601 = load i64, ptr %112, align 8, !tbaa !9
  store i64 %2601, ptr %79, align 8, !tbaa !9
  br label %2602

2602:                                             ; preds = %2688, %2598
  %2603 = load i64, ptr %79, align 8, !tbaa !9
  %2604 = load i64, ptr %67, align 8, !tbaa !9
  %2605 = icmp sle i64 %2603, %2604
  br i1 %2605, label %2606, label %2691

2606:                                             ; preds = %2602
  %2607 = load i64, ptr %117, align 8, !tbaa !9
  %2608 = load i64, ptr %79, align 8, !tbaa !9
  %2609 = sub nsw i64 %2608, 1
  %2610 = mul nsw i64 %2609, 3
  %2611 = add nsw i64 %2607, %2610
  store i64 %2611, ptr %78, align 8, !tbaa !9
  %2612 = load ptr, ptr %42, align 8, !tbaa !5
  %2613 = load i64, ptr %79, align 8, !tbaa !9
  %2614 = load i64, ptr %56, align 8, !tbaa !9
  %2615 = mul nsw i64 %2613, %2614
  %2616 = add nsw i64 %2615, 1
  %2617 = getelementptr inbounds float, ptr %2612, i64 %2616
  %2618 = load float, ptr %2617, align 4, !tbaa !11
  %2619 = load ptr, ptr %42, align 8, !tbaa !5
  %2620 = load i64, ptr %79, align 8, !tbaa !9
  %2621 = load i64, ptr %56, align 8, !tbaa !9
  %2622 = mul nsw i64 %2620, %2621
  %2623 = add nsw i64 %2622, 3
  %2624 = getelementptr inbounds float, ptr %2619, i64 %2623
  %2625 = load float, ptr %2624, align 4, !tbaa !11
  %2626 = fmul float %2618, %2625
  %2627 = load ptr, ptr %36, align 8, !tbaa !5
  %2628 = load i64, ptr %78, align 8, !tbaa !9
  %2629 = add nsw i64 %2628, 4
  %2630 = load i64, ptr %78, align 8, !tbaa !9
  %2631 = add nsw i64 %2630, 3
  %2632 = load i64, ptr %52, align 8, !tbaa !9
  %2633 = mul nsw i64 %2631, %2632
  %2634 = add nsw i64 %2629, %2633
  %2635 = getelementptr inbounds float, ptr %2627, i64 %2634
  %2636 = load float, ptr %2635, align 4, !tbaa !11
  %2637 = fmul float %2626, %2636
  store float %2637, ptr %121, align 4, !tbaa !11
  %2638 = load float, ptr %121, align 4, !tbaa !11
  %2639 = fneg float %2638
  %2640 = load ptr, ptr %36, align 8, !tbaa !5
  %2641 = load i64, ptr %78, align 8, !tbaa !9
  %2642 = add nsw i64 %2641, 4
  %2643 = load i64, ptr %78, align 8, !tbaa !9
  %2644 = add nsw i64 %2643, 1
  %2645 = load i64, ptr %52, align 8, !tbaa !9
  %2646 = mul nsw i64 %2644, %2645
  %2647 = add nsw i64 %2642, %2646
  %2648 = getelementptr inbounds float, ptr %2640, i64 %2647
  store float %2639, ptr %2648, align 4, !tbaa !11
  %2649 = load float, ptr %121, align 4, !tbaa !11
  %2650 = fneg float %2649
  %2651 = load ptr, ptr %42, align 8, !tbaa !5
  %2652 = load i64, ptr %79, align 8, !tbaa !9
  %2653 = load i64, ptr %56, align 8, !tbaa !9
  %2654 = mul nsw i64 %2652, %2653
  %2655 = add nsw i64 %2654, 2
  %2656 = getelementptr inbounds float, ptr %2651, i64 %2655
  %2657 = load float, ptr %2656, align 4, !tbaa !11
  %2658 = fmul float %2650, %2657
  %2659 = load ptr, ptr %36, align 8, !tbaa !5
  %2660 = load i64, ptr %78, align 8, !tbaa !9
  %2661 = add nsw i64 %2660, 4
  %2662 = load i64, ptr %78, align 8, !tbaa !9
  %2663 = add nsw i64 %2662, 2
  %2664 = load i64, ptr %52, align 8, !tbaa !9
  %2665 = mul nsw i64 %2663, %2664
  %2666 = add nsw i64 %2661, %2665
  %2667 = getelementptr inbounds float, ptr %2659, i64 %2666
  store float %2658, ptr %2667, align 4, !tbaa !11
  %2668 = load float, ptr %121, align 4, !tbaa !11
  %2669 = load ptr, ptr %42, align 8, !tbaa !5
  %2670 = load i64, ptr %79, align 8, !tbaa !9
  %2671 = load i64, ptr %56, align 8, !tbaa !9
  %2672 = mul nsw i64 %2670, %2671
  %2673 = add nsw i64 %2672, 3
  %2674 = getelementptr inbounds float, ptr %2669, i64 %2673
  %2675 = load float, ptr %2674, align 4, !tbaa !11
  %2676 = load ptr, ptr %36, align 8, !tbaa !5
  %2677 = load i64, ptr %78, align 8, !tbaa !9
  %2678 = add nsw i64 %2677, 4
  %2679 = load i64, ptr %78, align 8, !tbaa !9
  %2680 = add nsw i64 %2679, 3
  %2681 = load i64, ptr %52, align 8, !tbaa !9
  %2682 = mul nsw i64 %2680, %2681
  %2683 = add nsw i64 %2678, %2682
  %2684 = getelementptr inbounds float, ptr %2676, i64 %2683
  %2685 = load float, ptr %2684, align 4, !tbaa !11
  %2686 = fneg float %2668
  %2687 = call float @llvm.fmuladd.f32(float %2686, float %2675, float %2685)
  store float %2687, ptr %2684, align 4, !tbaa !11
  br label %2688

2688:                                             ; preds = %2606
  %2689 = load i64, ptr %79, align 8, !tbaa !9
  %2690 = add nsw i64 %2689, 1
  store i64 %2690, ptr %79, align 8, !tbaa !9
  br label %2602, !llvm.loop !27

2691:                                             ; preds = %2602
  br label %2692

2692:                                             ; preds = %2691
  %2693 = load i64, ptr %117, align 8, !tbaa !9
  %2694 = add nsw i64 %2693, 1
  store i64 %2694, ptr %117, align 8, !tbaa !9
  br label %390, !llvm.loop !28

2695:                                             ; preds = %390
  %2696 = load i64, ptr %114, align 8, !tbaa !9
  %2697 = icmp ne i64 %2696, 0
  br i1 %2697, label %2698, label %3656

2698:                                             ; preds = %2695
  %2699 = load ptr, ptr %27, align 8, !tbaa !5
  %2700 = load i64, ptr %2699, align 8, !tbaa !9
  %2701 = icmp ne i64 %2700, 0
  br i1 %2701, label %2702, label %2705

2702:                                             ; preds = %2698
  store i64 1, ptr %110, align 8, !tbaa !9
  %2703 = load ptr, ptr %30, align 8, !tbaa !5
  %2704 = load i64, ptr %2703, align 8, !tbaa !9
  store i64 %2704, ptr %107, align 8, !tbaa !9
  br label %2710

2705:                                             ; preds = %2698
  %2706 = load ptr, ptr %31, align 8, !tbaa !5
  %2707 = load i64, ptr %2706, align 8, !tbaa !9
  store i64 %2707, ptr %110, align 8, !tbaa !9
  %2708 = load ptr, ptr %32, align 8, !tbaa !5
  %2709 = load i64, ptr %2708, align 8, !tbaa !9
  store i64 %2709, ptr %107, align 8, !tbaa !9
  br label %2710

2710:                                             ; preds = %2705, %2702
  %2711 = load i64, ptr %102, align 8, !tbaa !9
  %2712 = icmp ne i64 %2711, 0
  br i1 %2712, label %2713, label %2726

2713:                                             ; preds = %2710
  %2714 = load i64, ptr %116, align 8, !tbaa !9
  %2715 = load ptr, ptr %31, align 8, !tbaa !5
  %2716 = load i64, ptr %2715, align 8, !tbaa !9
  %2717 = icmp slt i64 %2714, %2716
  br i1 %2717, label %2726, label %2718

2718:                                             ; preds = %2713
  %2719 = load i64, ptr %115, align 8, !tbaa !9
  %2720 = load ptr, ptr %32, align 8, !tbaa !5
  %2721 = load i64, ptr %2720, align 8, !tbaa !9
  %2722 = icmp sgt i64 %2719, %2721
  br i1 %2722, label %2726, label %2723

2723:                                             ; preds = %2718
  %2724 = load i64, ptr %90, align 8, !tbaa !9
  %2725 = icmp sle i64 %2724, 2
  br i1 %2725, label %2726, label %3034

2726:                                             ; preds = %2723, %2718, %2713, %2710
  store i64 1, ptr %66, align 8, !tbaa !9
  %2727 = load ptr, ptr %31, align 8, !tbaa !5
  %2728 = load i64, ptr %2727, align 8, !tbaa !9
  %2729 = load i64, ptr %116, align 8, !tbaa !9
  %2730 = sub nsw i64 %2728, %2729
  store i64 %2730, ptr %67, align 8, !tbaa !9
  %2731 = load i64, ptr %66, align 8, !tbaa !9
  %2732 = load i64, ptr %67, align 8, !tbaa !9
  %2733 = icmp sge i64 %2731, %2732
  br i1 %2733, label %2734, label %2736

2734:                                             ; preds = %2726
  %2735 = load i64, ptr %66, align 8, !tbaa !9
  br label %2738

2736:                                             ; preds = %2726
  %2737 = load i64, ptr %67, align 8, !tbaa !9
  br label %2738

2738:                                             ; preds = %2736, %2734
  %2739 = phi i64 [ %2735, %2734 ], [ %2737, %2736 ]
  store i64 %2739, ptr %84, align 8, !tbaa !9
  store i64 0, ptr %66, align 8, !tbaa !9
  %2740 = load i64, ptr %115, align 8, !tbaa !9
  %2741 = load ptr, ptr %32, align 8, !tbaa !5
  %2742 = load i64, ptr %2741, align 8, !tbaa !9
  %2743 = sub nsw i64 %2740, %2742
  store i64 %2743, ptr %67, align 8, !tbaa !9
  %2744 = load i64, ptr %94, align 8, !tbaa !9
  %2745 = load i64, ptr %66, align 8, !tbaa !9
  %2746 = load i64, ptr %67, align 8, !tbaa !9
  %2747 = icmp sge i64 %2745, %2746
  br i1 %2747, label %2748, label %2750

2748:                                             ; preds = %2738
  %2749 = load i64, ptr %66, align 8, !tbaa !9
  br label %2752

2750:                                             ; preds = %2738
  %2751 = load i64, ptr %67, align 8, !tbaa !9
  br label %2752

2752:                                             ; preds = %2750, %2748
  %2753 = phi i64 [ %2749, %2748 ], [ %2751, %2750 ]
  %2754 = sub nsw i64 %2744, %2753
  %2755 = load i64, ptr %84, align 8, !tbaa !9
  %2756 = sub nsw i64 %2754, %2755
  %2757 = add nsw i64 %2756, 1
  store i64 %2757, ptr %91, align 8, !tbaa !9
  %2758 = load i64, ptr %107, align 8, !tbaa !9
  store i64 %2758, ptr %66, align 8, !tbaa !9
  %2759 = load ptr, ptr %49, align 8, !tbaa !5
  %2760 = load i64, ptr %2759, align 8, !tbaa !9
  store i64 %2760, ptr %67, align 8, !tbaa !9
  %2761 = load i64, ptr %115, align 8, !tbaa !9
  %2762 = load ptr, ptr %32, align 8, !tbaa !5
  %2763 = load i64, ptr %2762, align 8, !tbaa !9
  %2764 = icmp sle i64 %2761, %2763
  br i1 %2764, label %2765, label %2767

2765:                                             ; preds = %2752
  %2766 = load i64, ptr %115, align 8, !tbaa !9
  br label %2770

2767:                                             ; preds = %2752
  %2768 = load ptr, ptr %32, align 8, !tbaa !5
  %2769 = load i64, ptr %2768, align 8, !tbaa !9
  br label %2770

2770:                                             ; preds = %2767, %2765
  %2771 = phi i64 [ %2766, %2765 ], [ %2769, %2767 ]
  %2772 = add nsw i64 %2771, 1
  store i64 %2772, ptr %105, align 8, !tbaa !9
  br label %2773

2773:                                             ; preds = %2843, %2770
  %2774 = load i64, ptr %67, align 8, !tbaa !9
  %2775 = icmp slt i64 %2774, 0
  br i1 %2775, label %2776, label %2781

2776:                                             ; preds = %2773
  %2777 = load i64, ptr %105, align 8, !tbaa !9
  %2778 = load i64, ptr %66, align 8, !tbaa !9
  %2779 = icmp sge i64 %2777, %2778
  %2780 = zext i1 %2779 to i32
  br label %2786

2781:                                             ; preds = %2773
  %2782 = load i64, ptr %105, align 8, !tbaa !9
  %2783 = load i64, ptr %66, align 8, !tbaa !9
  %2784 = icmp sle i64 %2782, %2783
  %2785 = zext i1 %2784 to i32
  br label %2786

2786:                                             ; preds = %2781, %2776
  %2787 = phi i32 [ %2780, %2776 ], [ %2785, %2781 ]
  %2788 = icmp ne i32 %2787, 0
  br i1 %2788, label %2789, label %2847

2789:                                             ; preds = %2786
  %2790 = load ptr, ptr %49, align 8, !tbaa !5
  %2791 = load i64, ptr %2790, align 8, !tbaa !9
  store i64 %2791, ptr %68, align 8, !tbaa !9
  %2792 = load i64, ptr %107, align 8, !tbaa !9
  %2793 = load i64, ptr %105, align 8, !tbaa !9
  %2794 = sub nsw i64 %2792, %2793
  %2795 = add nsw i64 %2794, 1
  store i64 %2795, ptr %70, align 8, !tbaa !9
  %2796 = load i64, ptr %68, align 8, !tbaa !9
  %2797 = load i64, ptr %70, align 8, !tbaa !9
  %2798 = icmp sle i64 %2796, %2797
  br i1 %2798, label %2799, label %2801

2799:                                             ; preds = %2789
  %2800 = load i64, ptr %68, align 8, !tbaa !9
  br label %2803

2801:                                             ; preds = %2789
  %2802 = load i64, ptr %70, align 8, !tbaa !9
  br label %2803

2803:                                             ; preds = %2801, %2799
  %2804 = phi i64 [ %2800, %2799 ], [ %2802, %2801 ]
  store i64 %2804, ptr %106, align 8, !tbaa !9
  %2805 = load ptr, ptr %44, align 8, !tbaa !5
  %2806 = load i64, ptr %84, align 8, !tbaa !9
  %2807 = load i64, ptr %84, align 8, !tbaa !9
  %2808 = load i64, ptr %54, align 8, !tbaa !9
  %2809 = mul nsw i64 %2807, %2808
  %2810 = add nsw i64 %2806, %2809
  %2811 = getelementptr inbounds float, ptr %2805, i64 %2810
  %2812 = load ptr, ptr %45, align 8, !tbaa !5
  %2813 = load ptr, ptr %36, align 8, !tbaa !5
  %2814 = load i64, ptr %116, align 8, !tbaa !9
  %2815 = load i64, ptr %84, align 8, !tbaa !9
  %2816 = add nsw i64 %2814, %2815
  %2817 = load i64, ptr %105, align 8, !tbaa !9
  %2818 = load i64, ptr %52, align 8, !tbaa !9
  %2819 = mul nsw i64 %2817, %2818
  %2820 = add nsw i64 %2816, %2819
  %2821 = getelementptr inbounds float, ptr %2813, i64 %2820
  %2822 = load ptr, ptr %37, align 8, !tbaa !5
  %2823 = load ptr, ptr %50, align 8, !tbaa !5
  %2824 = load i64, ptr %59, align 8, !tbaa !9
  %2825 = getelementptr inbounds float, ptr %2823, i64 %2824
  %2826 = load ptr, ptr %51, align 8, !tbaa !5
  %2827 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %91, ptr noundef %106, ptr noundef %91, ptr noundef @c_b8, ptr noundef %2811, ptr noundef %2812, ptr noundef %2821, ptr noundef %2822, ptr noundef @c_b7, ptr noundef %2825, ptr noundef %2826)
  %2828 = load ptr, ptr %50, align 8, !tbaa !5
  %2829 = load i64, ptr %59, align 8, !tbaa !9
  %2830 = getelementptr inbounds float, ptr %2828, i64 %2829
  %2831 = load ptr, ptr %51, align 8, !tbaa !5
  %2832 = load ptr, ptr %36, align 8, !tbaa !5
  %2833 = load i64, ptr %116, align 8, !tbaa !9
  %2834 = load i64, ptr %84, align 8, !tbaa !9
  %2835 = add nsw i64 %2833, %2834
  %2836 = load i64, ptr %105, align 8, !tbaa !9
  %2837 = load i64, ptr %52, align 8, !tbaa !9
  %2838 = mul nsw i64 %2836, %2837
  %2839 = add nsw i64 %2835, %2838
  %2840 = getelementptr inbounds float, ptr %2832, i64 %2839
  %2841 = load ptr, ptr %37, align 8, !tbaa !5
  %2842 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %91, ptr noundef %106, ptr noundef %2830, ptr noundef %2831, ptr noundef %2840, ptr noundef %2841)
  br label %2843

2843:                                             ; preds = %2803
  %2844 = load i64, ptr %67, align 8, !tbaa !9
  %2845 = load i64, ptr %105, align 8, !tbaa !9
  %2846 = add nsw i64 %2845, %2844
  store i64 %2846, ptr %105, align 8, !tbaa !9
  br label %2773, !llvm.loop !29

2847:                                             ; preds = %2786
  %2848 = load ptr, ptr %31, align 8, !tbaa !5
  %2849 = load i64, ptr %2848, align 8, !tbaa !9
  %2850 = load i64, ptr %116, align 8, !tbaa !9
  %2851 = icmp sge i64 %2849, %2850
  br i1 %2851, label %2852, label %2855

2852:                                             ; preds = %2847
  %2853 = load ptr, ptr %31, align 8, !tbaa !5
  %2854 = load i64, ptr %2853, align 8, !tbaa !9
  br label %2857

2855:                                             ; preds = %2847
  %2856 = load i64, ptr %116, align 8, !tbaa !9
  br label %2857

2857:                                             ; preds = %2855, %2852
  %2858 = phi i64 [ %2854, %2852 ], [ %2856, %2855 ]
  %2859 = sub nsw i64 %2858, 1
  store i64 %2859, ptr %67, align 8, !tbaa !9
  %2860 = load ptr, ptr %46, align 8, !tbaa !5
  %2861 = load i64, ptr %2860, align 8, !tbaa !9
  store i64 %2861, ptr %66, align 8, !tbaa !9
  %2862 = load i64, ptr %110, align 8, !tbaa !9
  store i64 %2862, ptr %111, align 8, !tbaa !9
  br label %2863

2863:                                             ; preds = %2942, %2857
  %2864 = load i64, ptr %66, align 8, !tbaa !9
  %2865 = icmp slt i64 %2864, 0
  br i1 %2865, label %2866, label %2871

2866:                                             ; preds = %2863
  %2867 = load i64, ptr %111, align 8, !tbaa !9
  %2868 = load i64, ptr %67, align 8, !tbaa !9
  %2869 = icmp sge i64 %2867, %2868
  %2870 = zext i1 %2869 to i32
  br label %2876

2871:                                             ; preds = %2863
  %2872 = load i64, ptr %111, align 8, !tbaa !9
  %2873 = load i64, ptr %67, align 8, !tbaa !9
  %2874 = icmp sle i64 %2872, %2873
  %2875 = zext i1 %2874 to i32
  br label %2876

2876:                                             ; preds = %2871, %2866
  %2877 = phi i32 [ %2870, %2866 ], [ %2875, %2871 ]
  %2878 = icmp ne i32 %2877, 0
  br i1 %2878, label %2879, label %2946

2879:                                             ; preds = %2876
  %2880 = load ptr, ptr %46, align 8, !tbaa !5
  %2881 = load i64, ptr %2880, align 8, !tbaa !9
  store i64 %2881, ptr %68, align 8, !tbaa !9
  %2882 = load ptr, ptr %31, align 8, !tbaa !5
  %2883 = load i64, ptr %2882, align 8, !tbaa !9
  %2884 = load i64, ptr %116, align 8, !tbaa !9
  %2885 = icmp sge i64 %2883, %2884
  br i1 %2885, label %2886, label %2889

2886:                                             ; preds = %2879
  %2887 = load ptr, ptr %31, align 8, !tbaa !5
  %2888 = load i64, ptr %2887, align 8, !tbaa !9
  br label %2891

2889:                                             ; preds = %2879
  %2890 = load i64, ptr %116, align 8, !tbaa !9
  br label %2891

2891:                                             ; preds = %2889, %2886
  %2892 = phi i64 [ %2888, %2886 ], [ %2890, %2889 ]
  %2893 = load i64, ptr %111, align 8, !tbaa !9
  %2894 = sub nsw i64 %2892, %2893
  store i64 %2894, ptr %70, align 8, !tbaa !9
  %2895 = load i64, ptr %68, align 8, !tbaa !9
  %2896 = load i64, ptr %70, align 8, !tbaa !9
  %2897 = icmp sle i64 %2895, %2896
  br i1 %2897, label %2898, label %2900

2898:                                             ; preds = %2891
  %2899 = load i64, ptr %68, align 8, !tbaa !9
  br label %2902

2900:                                             ; preds = %2891
  %2901 = load i64, ptr %70, align 8, !tbaa !9
  br label %2902

2902:                                             ; preds = %2900, %2898
  %2903 = phi i64 [ %2899, %2898 ], [ %2901, %2900 ]
  store i64 %2903, ptr %106, align 8, !tbaa !9
  %2904 = load ptr, ptr %36, align 8, !tbaa !5
  %2905 = load i64, ptr %111, align 8, !tbaa !9
  %2906 = load i64, ptr %116, align 8, !tbaa !9
  %2907 = load i64, ptr %84, align 8, !tbaa !9
  %2908 = add nsw i64 %2906, %2907
  %2909 = load i64, ptr %52, align 8, !tbaa !9
  %2910 = mul nsw i64 %2908, %2909
  %2911 = add nsw i64 %2905, %2910
  %2912 = getelementptr inbounds float, ptr %2904, i64 %2911
  %2913 = load ptr, ptr %37, align 8, !tbaa !5
  %2914 = load ptr, ptr %44, align 8, !tbaa !5
  %2915 = load i64, ptr %84, align 8, !tbaa !9
  %2916 = load i64, ptr %84, align 8, !tbaa !9
  %2917 = load i64, ptr %54, align 8, !tbaa !9
  %2918 = mul nsw i64 %2916, %2917
  %2919 = add nsw i64 %2915, %2918
  %2920 = getelementptr inbounds float, ptr %2914, i64 %2919
  %2921 = load ptr, ptr %45, align 8, !tbaa !5
  %2922 = load ptr, ptr %47, align 8, !tbaa !5
  %2923 = load i64, ptr %61, align 8, !tbaa !9
  %2924 = getelementptr inbounds float, ptr %2922, i64 %2923
  %2925 = load ptr, ptr %48, align 8, !tbaa !5
  %2926 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.4, ptr noundef %106, ptr noundef %91, ptr noundef %91, ptr noundef @c_b8, ptr noundef %2912, ptr noundef %2913, ptr noundef %2920, ptr noundef %2921, ptr noundef @c_b7, ptr noundef %2924, ptr noundef %2925)
  %2927 = load ptr, ptr %47, align 8, !tbaa !5
  %2928 = load i64, ptr %61, align 8, !tbaa !9
  %2929 = getelementptr inbounds float, ptr %2927, i64 %2928
  %2930 = load ptr, ptr %48, align 8, !tbaa !5
  %2931 = load ptr, ptr %36, align 8, !tbaa !5
  %2932 = load i64, ptr %111, align 8, !tbaa !9
  %2933 = load i64, ptr %116, align 8, !tbaa !9
  %2934 = load i64, ptr %84, align 8, !tbaa !9
  %2935 = add nsw i64 %2933, %2934
  %2936 = load i64, ptr %52, align 8, !tbaa !9
  %2937 = mul nsw i64 %2935, %2936
  %2938 = add nsw i64 %2932, %2937
  %2939 = getelementptr inbounds float, ptr %2931, i64 %2938
  %2940 = load ptr, ptr %37, align 8, !tbaa !5
  %2941 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %106, ptr noundef %91, ptr noundef %2929, ptr noundef %2930, ptr noundef %2939, ptr noundef %2940)
  br label %2942

2942:                                             ; preds = %2902
  %2943 = load i64, ptr %66, align 8, !tbaa !9
  %2944 = load i64, ptr %111, align 8, !tbaa !9
  %2945 = add nsw i64 %2944, %2943
  store i64 %2945, ptr %111, align 8, !tbaa !9
  br label %2863, !llvm.loop !30

2946:                                             ; preds = %2876
  %2947 = load ptr, ptr %28, align 8, !tbaa !5
  %2948 = load i64, ptr %2947, align 8, !tbaa !9
  %2949 = icmp ne i64 %2948, 0
  br i1 %2949, label %2950, label %3033

2950:                                             ; preds = %2946
  %2951 = load ptr, ptr %39, align 8, !tbaa !5
  %2952 = load i64, ptr %2951, align 8, !tbaa !9
  store i64 %2952, ptr %66, align 8, !tbaa !9
  %2953 = load ptr, ptr %46, align 8, !tbaa !5
  %2954 = load i64, ptr %2953, align 8, !tbaa !9
  store i64 %2954, ptr %67, align 8, !tbaa !9
  %2955 = load ptr, ptr %38, align 8, !tbaa !5
  %2956 = load i64, ptr %2955, align 8, !tbaa !9
  store i64 %2956, ptr %111, align 8, !tbaa !9
  br label %2957

2957:                                             ; preds = %3028, %2950
  %2958 = load i64, ptr %67, align 8, !tbaa !9
  %2959 = icmp slt i64 %2958, 0
  br i1 %2959, label %2960, label %2965

2960:                                             ; preds = %2957
  %2961 = load i64, ptr %111, align 8, !tbaa !9
  %2962 = load i64, ptr %66, align 8, !tbaa !9
  %2963 = icmp sge i64 %2961, %2962
  %2964 = zext i1 %2963 to i32
  br label %2970

2965:                                             ; preds = %2957
  %2966 = load i64, ptr %111, align 8, !tbaa !9
  %2967 = load i64, ptr %66, align 8, !tbaa !9
  %2968 = icmp sle i64 %2966, %2967
  %2969 = zext i1 %2968 to i32
  br label %2970

2970:                                             ; preds = %2965, %2960
  %2971 = phi i32 [ %2964, %2960 ], [ %2969, %2965 ]
  %2972 = icmp ne i32 %2971, 0
  br i1 %2972, label %2973, label %3032

2973:                                             ; preds = %2970
  %2974 = load ptr, ptr %46, align 8, !tbaa !5
  %2975 = load i64, ptr %2974, align 8, !tbaa !9
  store i64 %2975, ptr %68, align 8, !tbaa !9
  %2976 = load ptr, ptr %39, align 8, !tbaa !5
  %2977 = load i64, ptr %2976, align 8, !tbaa !9
  %2978 = load i64, ptr %111, align 8, !tbaa !9
  %2979 = sub nsw i64 %2977, %2978
  %2980 = add nsw i64 %2979, 1
  store i64 %2980, ptr %70, align 8, !tbaa !9
  %2981 = load i64, ptr %68, align 8, !tbaa !9
  %2982 = load i64, ptr %70, align 8, !tbaa !9
  %2983 = icmp sle i64 %2981, %2982
  br i1 %2983, label %2984, label %2986

2984:                                             ; preds = %2973
  %2985 = load i64, ptr %68, align 8, !tbaa !9
  br label %2988

2986:                                             ; preds = %2973
  %2987 = load i64, ptr %70, align 8, !tbaa !9
  br label %2988

2988:                                             ; preds = %2986, %2984
  %2989 = phi i64 [ %2985, %2984 ], [ %2987, %2986 ]
  store i64 %2989, ptr %106, align 8, !tbaa !9
  %2990 = load ptr, ptr %40, align 8, !tbaa !5
  %2991 = load i64, ptr %111, align 8, !tbaa !9
  %2992 = load i64, ptr %116, align 8, !tbaa !9
  %2993 = load i64, ptr %84, align 8, !tbaa !9
  %2994 = add nsw i64 %2992, %2993
  %2995 = load i64, ptr %62, align 8, !tbaa !9
  %2996 = mul nsw i64 %2994, %2995
  %2997 = add nsw i64 %2991, %2996
  %2998 = getelementptr inbounds float, ptr %2990, i64 %2997
  %2999 = load ptr, ptr %41, align 8, !tbaa !5
  %3000 = load ptr, ptr %44, align 8, !tbaa !5
  %3001 = load i64, ptr %84, align 8, !tbaa !9
  %3002 = load i64, ptr %84, align 8, !tbaa !9
  %3003 = load i64, ptr %54, align 8, !tbaa !9
  %3004 = mul nsw i64 %3002, %3003
  %3005 = add nsw i64 %3001, %3004
  %3006 = getelementptr inbounds float, ptr %3000, i64 %3005
  %3007 = load ptr, ptr %45, align 8, !tbaa !5
  %3008 = load ptr, ptr %47, align 8, !tbaa !5
  %3009 = load i64, ptr %61, align 8, !tbaa !9
  %3010 = getelementptr inbounds float, ptr %3008, i64 %3009
  %3011 = load ptr, ptr %48, align 8, !tbaa !5
  %3012 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.4, ptr noundef %106, ptr noundef %91, ptr noundef %91, ptr noundef @c_b8, ptr noundef %2998, ptr noundef %2999, ptr noundef %3006, ptr noundef %3007, ptr noundef @c_b7, ptr noundef %3010, ptr noundef %3011)
  %3013 = load ptr, ptr %47, align 8, !tbaa !5
  %3014 = load i64, ptr %61, align 8, !tbaa !9
  %3015 = getelementptr inbounds float, ptr %3013, i64 %3014
  %3016 = load ptr, ptr %48, align 8, !tbaa !5
  %3017 = load ptr, ptr %40, align 8, !tbaa !5
  %3018 = load i64, ptr %111, align 8, !tbaa !9
  %3019 = load i64, ptr %116, align 8, !tbaa !9
  %3020 = load i64, ptr %84, align 8, !tbaa !9
  %3021 = add nsw i64 %3019, %3020
  %3022 = load i64, ptr %62, align 8, !tbaa !9
  %3023 = mul nsw i64 %3021, %3022
  %3024 = add nsw i64 %3018, %3023
  %3025 = getelementptr inbounds float, ptr %3017, i64 %3024
  %3026 = load ptr, ptr %41, align 8, !tbaa !5
  %3027 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %106, ptr noundef %91, ptr noundef %3015, ptr noundef %3016, ptr noundef %3025, ptr noundef %3026)
  br label %3028

3028:                                             ; preds = %2988
  %3029 = load i64, ptr %67, align 8, !tbaa !9
  %3030 = load i64, ptr %111, align 8, !tbaa !9
  %3031 = add nsw i64 %3030, %3029
  store i64 %3031, ptr %111, align 8, !tbaa !9
  br label %2957, !llvm.loop !31

3032:                                             ; preds = %2970
  br label %3033

3033:                                             ; preds = %3032, %2946
  br label %3655

3034:                                             ; preds = %2723
  %3035 = load i64, ptr %94, align 8, !tbaa !9
  %3036 = add nsw i64 %3035, 1
  %3037 = sdiv i64 %3036, 2
  store i64 %3037, ptr %80, align 8, !tbaa !9
  %3038 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %3038, ptr %82, align 8, !tbaa !9
  %3039 = load i64, ptr %82, align 8, !tbaa !9
  %3040 = load i64, ptr %80, align 8, !tbaa !9
  %3041 = sub nsw i64 %3039, %3040
  store i64 %3041, ptr %81, align 8, !tbaa !9
  %3042 = load i64, ptr %94, align 8, !tbaa !9
  store i64 %3042, ptr %83, align 8, !tbaa !9
  %3043 = load i64, ptr %83, align 8, !tbaa !9
  %3044 = load i64, ptr %81, align 8, !tbaa !9
  %3045 = sub nsw i64 %3043, %3044
  %3046 = load i64, ptr %90, align 8, !tbaa !9
  %3047 = add nsw i64 %3046, 1
  %3048 = sub nsw i64 %3045, %3047
  store i64 %3048, ptr %98, align 8, !tbaa !9
  %3049 = load i64, ptr %90, align 8, !tbaa !9
  %3050 = add nsw i64 %3049, 1
  store i64 %3050, ptr %97, align 8, !tbaa !9
  %3051 = load i64, ptr %107, align 8, !tbaa !9
  store i64 %3051, ptr %67, align 8, !tbaa !9
  %3052 = load ptr, ptr %49, align 8, !tbaa !5
  %3053 = load i64, ptr %3052, align 8, !tbaa !9
  store i64 %3053, ptr %66, align 8, !tbaa !9
  %3054 = load i64, ptr %115, align 8, !tbaa !9
  %3055 = load ptr, ptr %32, align 8, !tbaa !5
  %3056 = load i64, ptr %3055, align 8, !tbaa !9
  %3057 = icmp sle i64 %3054, %3056
  br i1 %3057, label %3058, label %3060

3058:                                             ; preds = %3034
  %3059 = load i64, ptr %115, align 8, !tbaa !9
  br label %3063

3060:                                             ; preds = %3034
  %3061 = load ptr, ptr %32, align 8, !tbaa !5
  %3062 = load i64, ptr %3061, align 8, !tbaa !9
  br label %3063

3063:                                             ; preds = %3060, %3058
  %3064 = phi i64 [ %3059, %3058 ], [ %3062, %3060 ]
  %3065 = add nsw i64 %3064, 1
  store i64 %3065, ptr %105, align 8, !tbaa !9
  br label %3066

3066:                                             ; preds = %3240, %3063
  %3067 = load i64, ptr %66, align 8, !tbaa !9
  %3068 = icmp slt i64 %3067, 0
  br i1 %3068, label %3069, label %3074

3069:                                             ; preds = %3066
  %3070 = load i64, ptr %105, align 8, !tbaa !9
  %3071 = load i64, ptr %67, align 8, !tbaa !9
  %3072 = icmp sge i64 %3070, %3071
  %3073 = zext i1 %3072 to i32
  br label %3079

3074:                                             ; preds = %3066
  %3075 = load i64, ptr %105, align 8, !tbaa !9
  %3076 = load i64, ptr %67, align 8, !tbaa !9
  %3077 = icmp sle i64 %3075, %3076
  %3078 = zext i1 %3077 to i32
  br label %3079

3079:                                             ; preds = %3074, %3069
  %3080 = phi i32 [ %3073, %3069 ], [ %3078, %3074 ]
  %3081 = icmp ne i32 %3080, 0
  br i1 %3081, label %3082, label %3244

3082:                                             ; preds = %3079
  %3083 = load ptr, ptr %49, align 8, !tbaa !5
  %3084 = load i64, ptr %3083, align 8, !tbaa !9
  store i64 %3084, ptr %68, align 8, !tbaa !9
  %3085 = load i64, ptr %107, align 8, !tbaa !9
  %3086 = load i64, ptr %105, align 8, !tbaa !9
  %3087 = sub nsw i64 %3085, %3086
  %3088 = add nsw i64 %3087, 1
  store i64 %3088, ptr %70, align 8, !tbaa !9
  %3089 = load i64, ptr %68, align 8, !tbaa !9
  %3090 = load i64, ptr %70, align 8, !tbaa !9
  %3091 = icmp sle i64 %3089, %3090
  br i1 %3091, label %3092, label %3094

3092:                                             ; preds = %3082
  %3093 = load i64, ptr %68, align 8, !tbaa !9
  br label %3096

3094:                                             ; preds = %3082
  %3095 = load i64, ptr %70, align 8, !tbaa !9
  br label %3096

3096:                                             ; preds = %3094, %3092
  %3097 = phi i64 [ %3093, %3092 ], [ %3095, %3094 ]
  store i64 %3097, ptr %106, align 8, !tbaa !9
  %3098 = load ptr, ptr %36, align 8, !tbaa !5
  %3099 = load i64, ptr %116, align 8, !tbaa !9
  %3100 = add nsw i64 %3099, 1
  %3101 = load i64, ptr %81, align 8, !tbaa !9
  %3102 = add nsw i64 %3100, %3101
  %3103 = load i64, ptr %105, align 8, !tbaa !9
  %3104 = load i64, ptr %52, align 8, !tbaa !9
  %3105 = mul nsw i64 %3103, %3104
  %3106 = add nsw i64 %3102, %3105
  %3107 = getelementptr inbounds float, ptr %3098, i64 %3106
  %3108 = load ptr, ptr %37, align 8, !tbaa !5
  %3109 = load ptr, ptr %50, align 8, !tbaa !5
  %3110 = load i64, ptr %98, align 8, !tbaa !9
  %3111 = add nsw i64 %3110, 1
  %3112 = load i64, ptr %58, align 8, !tbaa !9
  %3113 = add nsw i64 %3111, %3112
  %3114 = getelementptr inbounds float, ptr %3109, i64 %3113
  %3115 = load ptr, ptr %51, align 8, !tbaa !5
  %3116 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %97, ptr noundef %106, ptr noundef %3107, ptr noundef %3108, ptr noundef %3114, ptr noundef %3115)
  %3117 = load ptr, ptr %50, align 8, !tbaa !5
  %3118 = load i64, ptr %59, align 8, !tbaa !9
  %3119 = getelementptr inbounds float, ptr %3117, i64 %3118
  %3120 = load ptr, ptr %51, align 8, !tbaa !5
  %3121 = call i32 @slaset_(ptr noundef @.str.2, ptr noundef %98, ptr noundef %106, ptr noundef @c_b7, ptr noundef @c_b7, ptr noundef %3119, ptr noundef %3120)
  %3122 = load ptr, ptr %44, align 8, !tbaa !5
  %3123 = load i64, ptr %81, align 8, !tbaa !9
  %3124 = add nsw i64 %3123, 1
  %3125 = load i64, ptr %98, align 8, !tbaa !9
  %3126 = add nsw i64 %3125, 1
  %3127 = load i64, ptr %54, align 8, !tbaa !9
  %3128 = mul nsw i64 %3126, %3127
  %3129 = add nsw i64 %3124, %3128
  %3130 = getelementptr inbounds float, ptr %3122, i64 %3129
  %3131 = load ptr, ptr %45, align 8, !tbaa !5
  %3132 = load ptr, ptr %50, align 8, !tbaa !5
  %3133 = load i64, ptr %98, align 8, !tbaa !9
  %3134 = add nsw i64 %3133, 1
  %3135 = load i64, ptr %58, align 8, !tbaa !9
  %3136 = add nsw i64 %3134, %3135
  %3137 = getelementptr inbounds float, ptr %3132, i64 %3136
  %3138 = load ptr, ptr %51, align 8, !tbaa !5
  %3139 = call i32 @f2c_strmm(ptr noundef @.str.5, ptr noundef @.str.6, ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %97, ptr noundef %106, ptr noundef @c_b8, ptr noundef %3130, ptr noundef %3131, ptr noundef %3137, ptr noundef %3138)
  %3140 = load ptr, ptr %44, align 8, !tbaa !5
  %3141 = load i64, ptr %55, align 8, !tbaa !9
  %3142 = getelementptr inbounds float, ptr %3140, i64 %3141
  %3143 = load ptr, ptr %45, align 8, !tbaa !5
  %3144 = load ptr, ptr %36, align 8, !tbaa !5
  %3145 = load i64, ptr %116, align 8, !tbaa !9
  %3146 = add nsw i64 %3145, 1
  %3147 = load i64, ptr %105, align 8, !tbaa !9
  %3148 = load i64, ptr %52, align 8, !tbaa !9
  %3149 = mul nsw i64 %3147, %3148
  %3150 = add nsw i64 %3146, %3149
  %3151 = getelementptr inbounds float, ptr %3144, i64 %3150
  %3152 = load ptr, ptr %37, align 8, !tbaa !5
  %3153 = load ptr, ptr %50, align 8, !tbaa !5
  %3154 = load i64, ptr %59, align 8, !tbaa !9
  %3155 = getelementptr inbounds float, ptr %3153, i64 %3154
  %3156 = load ptr, ptr %51, align 8, !tbaa !5
  %3157 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %80, ptr noundef %106, ptr noundef %81, ptr noundef @c_b8, ptr noundef %3142, ptr noundef %3143, ptr noundef %3151, ptr noundef %3152, ptr noundef @c_b8, ptr noundef %3155, ptr noundef %3156)
  %3158 = load ptr, ptr %36, align 8, !tbaa !5
  %3159 = load i64, ptr %116, align 8, !tbaa !9
  %3160 = add nsw i64 %3159, 1
  %3161 = load i64, ptr %105, align 8, !tbaa !9
  %3162 = load i64, ptr %52, align 8, !tbaa !9
  %3163 = mul nsw i64 %3161, %3162
  %3164 = add nsw i64 %3160, %3163
  %3165 = getelementptr inbounds float, ptr %3158, i64 %3164
  %3166 = load ptr, ptr %37, align 8, !tbaa !5
  %3167 = load ptr, ptr %50, align 8, !tbaa !5
  %3168 = load i64, ptr %80, align 8, !tbaa !9
  %3169 = add nsw i64 %3168, 1
  %3170 = load i64, ptr %58, align 8, !tbaa !9
  %3171 = add nsw i64 %3169, %3170
  %3172 = getelementptr inbounds float, ptr %3167, i64 %3171
  %3173 = load ptr, ptr %51, align 8, !tbaa !5
  %3174 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %81, ptr noundef %106, ptr noundef %3165, ptr noundef %3166, ptr noundef %3172, ptr noundef %3173)
  %3175 = load ptr, ptr %44, align 8, !tbaa !5
  %3176 = load i64, ptr %80, align 8, !tbaa !9
  %3177 = add nsw i64 %3176, 1
  %3178 = load i64, ptr %54, align 8, !tbaa !9
  %3179 = mul nsw i64 %3177, %3178
  %3180 = add nsw i64 %3179, 1
  %3181 = getelementptr inbounds float, ptr %3175, i64 %3180
  %3182 = load ptr, ptr %45, align 8, !tbaa !5
  %3183 = load ptr, ptr %50, align 8, !tbaa !5
  %3184 = load i64, ptr %80, align 8, !tbaa !9
  %3185 = add nsw i64 %3184, 1
  %3186 = load i64, ptr %58, align 8, !tbaa !9
  %3187 = add nsw i64 %3185, %3186
  %3188 = getelementptr inbounds float, ptr %3183, i64 %3187
  %3189 = load ptr, ptr %51, align 8, !tbaa !5
  %3190 = call i32 @f2c_strmm(ptr noundef @.str.5, ptr noundef @.str.5, ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %81, ptr noundef %106, ptr noundef @c_b8, ptr noundef %3181, ptr noundef %3182, ptr noundef %3188, ptr noundef %3189)
  %3191 = load i64, ptr %82, align 8, !tbaa !9
  %3192 = load i64, ptr %80, align 8, !tbaa !9
  %3193 = sub nsw i64 %3191, %3192
  store i64 %3193, ptr %68, align 8, !tbaa !9
  %3194 = load i64, ptr %83, align 8, !tbaa !9
  %3195 = load i64, ptr %81, align 8, !tbaa !9
  %3196 = sub nsw i64 %3194, %3195
  store i64 %3196, ptr %70, align 8, !tbaa !9
  %3197 = load ptr, ptr %44, align 8, !tbaa !5
  %3198 = load i64, ptr %81, align 8, !tbaa !9
  %3199 = add nsw i64 %3198, 1
  %3200 = load i64, ptr %80, align 8, !tbaa !9
  %3201 = add nsw i64 %3200, 1
  %3202 = load i64, ptr %54, align 8, !tbaa !9
  %3203 = mul nsw i64 %3201, %3202
  %3204 = add nsw i64 %3199, %3203
  %3205 = getelementptr inbounds float, ptr %3197, i64 %3204
  %3206 = load ptr, ptr %45, align 8, !tbaa !5
  %3207 = load ptr, ptr %36, align 8, !tbaa !5
  %3208 = load i64, ptr %116, align 8, !tbaa !9
  %3209 = add nsw i64 %3208, 1
  %3210 = load i64, ptr %81, align 8, !tbaa !9
  %3211 = add nsw i64 %3209, %3210
  %3212 = load i64, ptr %105, align 8, !tbaa !9
  %3213 = load i64, ptr %52, align 8, !tbaa !9
  %3214 = mul nsw i64 %3212, %3213
  %3215 = add nsw i64 %3211, %3214
  %3216 = getelementptr inbounds float, ptr %3207, i64 %3215
  %3217 = load ptr, ptr %37, align 8, !tbaa !5
  %3218 = load ptr, ptr %50, align 8, !tbaa !5
  %3219 = load i64, ptr %80, align 8, !tbaa !9
  %3220 = add nsw i64 %3219, 1
  %3221 = load i64, ptr %58, align 8, !tbaa !9
  %3222 = add nsw i64 %3220, %3221
  %3223 = getelementptr inbounds float, ptr %3218, i64 %3222
  %3224 = load ptr, ptr %51, align 8, !tbaa !5
  %3225 = call i32 @f2c_sgemm(ptr noundef @.str.3, ptr noundef @.str.4, ptr noundef %68, ptr noundef %106, ptr noundef %70, ptr noundef @c_b8, ptr noundef %3205, ptr noundef %3206, ptr noundef %3216, ptr noundef %3217, ptr noundef @c_b8, ptr noundef %3223, ptr noundef %3224)
  %3226 = load ptr, ptr %50, align 8, !tbaa !5
  %3227 = load i64, ptr %59, align 8, !tbaa !9
  %3228 = getelementptr inbounds float, ptr %3226, i64 %3227
  %3229 = load ptr, ptr %51, align 8, !tbaa !5
  %3230 = load ptr, ptr %36, align 8, !tbaa !5
  %3231 = load i64, ptr %116, align 8, !tbaa !9
  %3232 = add nsw i64 %3231, 1
  %3233 = load i64, ptr %105, align 8, !tbaa !9
  %3234 = load i64, ptr %52, align 8, !tbaa !9
  %3235 = mul nsw i64 %3233, %3234
  %3236 = add nsw i64 %3232, %3235
  %3237 = getelementptr inbounds float, ptr %3230, i64 %3236
  %3238 = load ptr, ptr %37, align 8, !tbaa !5
  %3239 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %94, ptr noundef %106, ptr noundef %3228, ptr noundef %3229, ptr noundef %3237, ptr noundef %3238)
  br label %3240

3240:                                             ; preds = %3096
  %3241 = load i64, ptr %66, align 8, !tbaa !9
  %3242 = load i64, ptr %105, align 8, !tbaa !9
  %3243 = add nsw i64 %3242, %3241
  store i64 %3243, ptr %105, align 8, !tbaa !9
  br label %3066, !llvm.loop !32

3244:                                             ; preds = %3079
  %3245 = load i64, ptr %116, align 8, !tbaa !9
  %3246 = load ptr, ptr %31, align 8, !tbaa !5
  %3247 = load i64, ptr %3246, align 8, !tbaa !9
  %3248 = icmp sge i64 %3245, %3247
  br i1 %3248, label %3249, label %3251

3249:                                             ; preds = %3244
  %3250 = load i64, ptr %116, align 8, !tbaa !9
  br label %3254

3251:                                             ; preds = %3244
  %3252 = load ptr, ptr %31, align 8, !tbaa !5
  %3253 = load i64, ptr %3252, align 8, !tbaa !9
  br label %3254

3254:                                             ; preds = %3251, %3249
  %3255 = phi i64 [ %3250, %3249 ], [ %3253, %3251 ]
  %3256 = sub nsw i64 %3255, 1
  store i64 %3256, ptr %66, align 8, !tbaa !9
  %3257 = load ptr, ptr %46, align 8, !tbaa !5
  %3258 = load i64, ptr %3257, align 8, !tbaa !9
  store i64 %3258, ptr %67, align 8, !tbaa !9
  %3259 = load i64, ptr %110, align 8, !tbaa !9
  store i64 %3259, ptr %111, align 8, !tbaa !9
  br label %3260

3260:                                             ; preds = %3451, %3254
  %3261 = load i64, ptr %67, align 8, !tbaa !9
  %3262 = icmp slt i64 %3261, 0
  br i1 %3262, label %3263, label %3268

3263:                                             ; preds = %3260
  %3264 = load i64, ptr %111, align 8, !tbaa !9
  %3265 = load i64, ptr %66, align 8, !tbaa !9
  %3266 = icmp sge i64 %3264, %3265
  %3267 = zext i1 %3266 to i32
  br label %3273

3268:                                             ; preds = %3260
  %3269 = load i64, ptr %111, align 8, !tbaa !9
  %3270 = load i64, ptr %66, align 8, !tbaa !9
  %3271 = icmp sle i64 %3269, %3270
  %3272 = zext i1 %3271 to i32
  br label %3273

3273:                                             ; preds = %3268, %3263
  %3274 = phi i32 [ %3267, %3263 ], [ %3272, %3268 ]
  %3275 = icmp ne i32 %3274, 0
  br i1 %3275, label %3276, label %3455

3276:                                             ; preds = %3273
  %3277 = load ptr, ptr %46, align 8, !tbaa !5
  %3278 = load i64, ptr %3277, align 8, !tbaa !9
  store i64 %3278, ptr %68, align 8, !tbaa !9
  %3279 = load i64, ptr %116, align 8, !tbaa !9
  %3280 = load ptr, ptr %31, align 8, !tbaa !5
  %3281 = load i64, ptr %3280, align 8, !tbaa !9
  %3282 = icmp sge i64 %3279, %3281
  br i1 %3282, label %3283, label %3285

3283:                                             ; preds = %3276
  %3284 = load i64, ptr %116, align 8, !tbaa !9
  br label %3288

3285:                                             ; preds = %3276
  %3286 = load ptr, ptr %31, align 8, !tbaa !5
  %3287 = load i64, ptr %3286, align 8, !tbaa !9
  br label %3288

3288:                                             ; preds = %3285, %3283
  %3289 = phi i64 [ %3284, %3283 ], [ %3287, %3285 ]
  %3290 = load i64, ptr %111, align 8, !tbaa !9
  %3291 = sub nsw i64 %3289, %3290
  store i64 %3291, ptr %70, align 8, !tbaa !9
  %3292 = load i64, ptr %68, align 8, !tbaa !9
  %3293 = load i64, ptr %70, align 8, !tbaa !9
  %3294 = icmp sle i64 %3292, %3293
  br i1 %3294, label %3295, label %3297

3295:                                             ; preds = %3288
  %3296 = load i64, ptr %68, align 8, !tbaa !9
  br label %3299

3297:                                             ; preds = %3288
  %3298 = load i64, ptr %70, align 8, !tbaa !9
  br label %3299

3299:                                             ; preds = %3297, %3295
  %3300 = phi i64 [ %3296, %3295 ], [ %3298, %3297 ]
  store i64 %3300, ptr %106, align 8, !tbaa !9
  %3301 = load ptr, ptr %36, align 8, !tbaa !5
  %3302 = load i64, ptr %111, align 8, !tbaa !9
  %3303 = load i64, ptr %116, align 8, !tbaa !9
  %3304 = add nsw i64 %3303, 1
  %3305 = load i64, ptr %81, align 8, !tbaa !9
  %3306 = add nsw i64 %3304, %3305
  %3307 = load i64, ptr %52, align 8, !tbaa !9
  %3308 = mul nsw i64 %3306, %3307
  %3309 = add nsw i64 %3302, %3308
  %3310 = getelementptr inbounds float, ptr %3301, i64 %3309
  %3311 = load ptr, ptr %37, align 8, !tbaa !5
  %3312 = load ptr, ptr %47, align 8, !tbaa !5
  %3313 = load i64, ptr %98, align 8, !tbaa !9
  %3314 = add nsw i64 %3313, 1
  %3315 = load i64, ptr %60, align 8, !tbaa !9
  %3316 = mul nsw i64 %3314, %3315
  %3317 = add nsw i64 %3316, 1
  %3318 = getelementptr inbounds float, ptr %3312, i64 %3317
  %3319 = load ptr, ptr %48, align 8, !tbaa !5
  %3320 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %106, ptr noundef %97, ptr noundef %3310, ptr noundef %3311, ptr noundef %3318, ptr noundef %3319)
  %3321 = load ptr, ptr %47, align 8, !tbaa !5
  %3322 = load i64, ptr %61, align 8, !tbaa !9
  %3323 = getelementptr inbounds float, ptr %3321, i64 %3322
  %3324 = load ptr, ptr %48, align 8, !tbaa !5
  %3325 = call i32 @slaset_(ptr noundef @.str.2, ptr noundef %106, ptr noundef %98, ptr noundef @c_b7, ptr noundef @c_b7, ptr noundef %3323, ptr noundef %3324)
  %3326 = load ptr, ptr %44, align 8, !tbaa !5
  %3327 = load i64, ptr %81, align 8, !tbaa !9
  %3328 = add nsw i64 %3327, 1
  %3329 = load i64, ptr %98, align 8, !tbaa !9
  %3330 = add nsw i64 %3329, 1
  %3331 = load i64, ptr %54, align 8, !tbaa !9
  %3332 = mul nsw i64 %3330, %3331
  %3333 = add nsw i64 %3328, %3332
  %3334 = getelementptr inbounds float, ptr %3326, i64 %3333
  %3335 = load ptr, ptr %45, align 8, !tbaa !5
  %3336 = load ptr, ptr %47, align 8, !tbaa !5
  %3337 = load i64, ptr %98, align 8, !tbaa !9
  %3338 = add nsw i64 %3337, 1
  %3339 = load i64, ptr %60, align 8, !tbaa !9
  %3340 = mul nsw i64 %3338, %3339
  %3341 = add nsw i64 %3340, 1
  %3342 = getelementptr inbounds float, ptr %3336, i64 %3341
  %3343 = load ptr, ptr %48, align 8, !tbaa !5
  %3344 = call i32 @f2c_strmm(ptr noundef @.str.7, ptr noundef @.str.6, ptr noundef @.str.4, ptr noundef @.str.4, ptr noundef %106, ptr noundef %97, ptr noundef @c_b8, ptr noundef %3334, ptr noundef %3335, ptr noundef %3342, ptr noundef %3343)
  %3345 = load ptr, ptr %36, align 8, !tbaa !5
  %3346 = load i64, ptr %111, align 8, !tbaa !9
  %3347 = load i64, ptr %116, align 8, !tbaa !9
  %3348 = add nsw i64 %3347, 1
  %3349 = load i64, ptr %52, align 8, !tbaa !9
  %3350 = mul nsw i64 %3348, %3349
  %3351 = add nsw i64 %3346, %3350
  %3352 = getelementptr inbounds float, ptr %3345, i64 %3351
  %3353 = load ptr, ptr %37, align 8, !tbaa !5
  %3354 = load ptr, ptr %44, align 8, !tbaa !5
  %3355 = load i64, ptr %55, align 8, !tbaa !9
  %3356 = getelementptr inbounds float, ptr %3354, i64 %3355
  %3357 = load ptr, ptr %45, align 8, !tbaa !5
  %3358 = load ptr, ptr %47, align 8, !tbaa !5
  %3359 = load i64, ptr %61, align 8, !tbaa !9
  %3360 = getelementptr inbounds float, ptr %3358, i64 %3359
  %3361 = load ptr, ptr %48, align 8, !tbaa !5
  %3362 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.4, ptr noundef %106, ptr noundef %80, ptr noundef %81, ptr noundef @c_b8, ptr noundef %3352, ptr noundef %3353, ptr noundef %3356, ptr noundef %3357, ptr noundef @c_b8, ptr noundef %3360, ptr noundef %3361)
  %3363 = load ptr, ptr %36, align 8, !tbaa !5
  %3364 = load i64, ptr %111, align 8, !tbaa !9
  %3365 = load i64, ptr %116, align 8, !tbaa !9
  %3366 = add nsw i64 %3365, 1
  %3367 = load i64, ptr %52, align 8, !tbaa !9
  %3368 = mul nsw i64 %3366, %3367
  %3369 = add nsw i64 %3364, %3368
  %3370 = getelementptr inbounds float, ptr %3363, i64 %3369
  %3371 = load ptr, ptr %37, align 8, !tbaa !5
  %3372 = load ptr, ptr %47, align 8, !tbaa !5
  %3373 = load i64, ptr %80, align 8, !tbaa !9
  %3374 = add nsw i64 %3373, 1
  %3375 = load i64, ptr %60, align 8, !tbaa !9
  %3376 = mul nsw i64 %3374, %3375
  %3377 = add nsw i64 %3376, 1
  %3378 = getelementptr inbounds float, ptr %3372, i64 %3377
  %3379 = load ptr, ptr %48, align 8, !tbaa !5
  %3380 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %106, ptr noundef %81, ptr noundef %3370, ptr noundef %3371, ptr noundef %3378, ptr noundef %3379)
  %3381 = load i64, ptr %82, align 8, !tbaa !9
  %3382 = load i64, ptr %80, align 8, !tbaa !9
  %3383 = sub nsw i64 %3381, %3382
  store i64 %3383, ptr %68, align 8, !tbaa !9
  %3384 = load ptr, ptr %44, align 8, !tbaa !5
  %3385 = load i64, ptr %80, align 8, !tbaa !9
  %3386 = add nsw i64 %3385, 1
  %3387 = load i64, ptr %54, align 8, !tbaa !9
  %3388 = mul nsw i64 %3386, %3387
  %3389 = add nsw i64 %3388, 1
  %3390 = getelementptr inbounds float, ptr %3384, i64 %3389
  %3391 = load ptr, ptr %45, align 8, !tbaa !5
  %3392 = load ptr, ptr %47, align 8, !tbaa !5
  %3393 = load i64, ptr %80, align 8, !tbaa !9
  %3394 = add nsw i64 %3393, 1
  %3395 = load i64, ptr %60, align 8, !tbaa !9
  %3396 = mul nsw i64 %3394, %3395
  %3397 = add nsw i64 %3396, 1
  %3398 = getelementptr inbounds float, ptr %3392, i64 %3397
  %3399 = load ptr, ptr %48, align 8, !tbaa !5
  %3400 = call i32 @f2c_strmm(ptr noundef @.str.7, ptr noundef @.str.5, ptr noundef @.str.4, ptr noundef @.str.4, ptr noundef %106, ptr noundef %68, ptr noundef @c_b8, ptr noundef %3390, ptr noundef %3391, ptr noundef %3398, ptr noundef %3399)
  %3401 = load i64, ptr %82, align 8, !tbaa !9
  %3402 = load i64, ptr %80, align 8, !tbaa !9
  %3403 = sub nsw i64 %3401, %3402
  store i64 %3403, ptr %68, align 8, !tbaa !9
  %3404 = load i64, ptr %83, align 8, !tbaa !9
  %3405 = load i64, ptr %81, align 8, !tbaa !9
  %3406 = sub nsw i64 %3404, %3405
  store i64 %3406, ptr %70, align 8, !tbaa !9
  %3407 = load ptr, ptr %36, align 8, !tbaa !5
  %3408 = load i64, ptr %111, align 8, !tbaa !9
  %3409 = load i64, ptr %116, align 8, !tbaa !9
  %3410 = add nsw i64 %3409, 1
  %3411 = load i64, ptr %81, align 8, !tbaa !9
  %3412 = add nsw i64 %3410, %3411
  %3413 = load i64, ptr %52, align 8, !tbaa !9
  %3414 = mul nsw i64 %3412, %3413
  %3415 = add nsw i64 %3408, %3414
  %3416 = getelementptr inbounds float, ptr %3407, i64 %3415
  %3417 = load ptr, ptr %37, align 8, !tbaa !5
  %3418 = load ptr, ptr %44, align 8, !tbaa !5
  %3419 = load i64, ptr %81, align 8, !tbaa !9
  %3420 = add nsw i64 %3419, 1
  %3421 = load i64, ptr %80, align 8, !tbaa !9
  %3422 = add nsw i64 %3421, 1
  %3423 = load i64, ptr %54, align 8, !tbaa !9
  %3424 = mul nsw i64 %3422, %3423
  %3425 = add nsw i64 %3420, %3424
  %3426 = getelementptr inbounds float, ptr %3418, i64 %3425
  %3427 = load ptr, ptr %45, align 8, !tbaa !5
  %3428 = load ptr, ptr %47, align 8, !tbaa !5
  %3429 = load i64, ptr %80, align 8, !tbaa !9
  %3430 = add nsw i64 %3429, 1
  %3431 = load i64, ptr %60, align 8, !tbaa !9
  %3432 = mul nsw i64 %3430, %3431
  %3433 = add nsw i64 %3432, 1
  %3434 = getelementptr inbounds float, ptr %3428, i64 %3433
  %3435 = load ptr, ptr %48, align 8, !tbaa !5
  %3436 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.4, ptr noundef %106, ptr noundef %68, ptr noundef %70, ptr noundef @c_b8, ptr noundef %3416, ptr noundef %3417, ptr noundef %3426, ptr noundef %3427, ptr noundef @c_b8, ptr noundef %3434, ptr noundef %3435)
  %3437 = load ptr, ptr %47, align 8, !tbaa !5
  %3438 = load i64, ptr %61, align 8, !tbaa !9
  %3439 = getelementptr inbounds float, ptr %3437, i64 %3438
  %3440 = load ptr, ptr %48, align 8, !tbaa !5
  %3441 = load ptr, ptr %36, align 8, !tbaa !5
  %3442 = load i64, ptr %111, align 8, !tbaa !9
  %3443 = load i64, ptr %116, align 8, !tbaa !9
  %3444 = add nsw i64 %3443, 1
  %3445 = load i64, ptr %52, align 8, !tbaa !9
  %3446 = mul nsw i64 %3444, %3445
  %3447 = add nsw i64 %3442, %3446
  %3448 = getelementptr inbounds float, ptr %3441, i64 %3447
  %3449 = load ptr, ptr %37, align 8, !tbaa !5
  %3450 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %106, ptr noundef %94, ptr noundef %3439, ptr noundef %3440, ptr noundef %3448, ptr noundef %3449)
  br label %3451

3451:                                             ; preds = %3299
  %3452 = load i64, ptr %67, align 8, !tbaa !9
  %3453 = load i64, ptr %111, align 8, !tbaa !9
  %3454 = add nsw i64 %3453, %3452
  store i64 %3454, ptr %111, align 8, !tbaa !9
  br label %3260, !llvm.loop !33

3455:                                             ; preds = %3273
  %3456 = load ptr, ptr %28, align 8, !tbaa !5
  %3457 = load i64, ptr %3456, align 8, !tbaa !9
  %3458 = icmp ne i64 %3457, 0
  br i1 %3458, label %3459, label %3654

3459:                                             ; preds = %3455
  %3460 = load ptr, ptr %39, align 8, !tbaa !5
  %3461 = load i64, ptr %3460, align 8, !tbaa !9
  store i64 %3461, ptr %67, align 8, !tbaa !9
  %3462 = load ptr, ptr %46, align 8, !tbaa !5
  %3463 = load i64, ptr %3462, align 8, !tbaa !9
  store i64 %3463, ptr %66, align 8, !tbaa !9
  %3464 = load ptr, ptr %38, align 8, !tbaa !5
  %3465 = load i64, ptr %3464, align 8, !tbaa !9
  store i64 %3465, ptr %111, align 8, !tbaa !9
  br label %3466

3466:                                             ; preds = %3649, %3459
  %3467 = load i64, ptr %66, align 8, !tbaa !9
  %3468 = icmp slt i64 %3467, 0
  br i1 %3468, label %3469, label %3474

3469:                                             ; preds = %3466
  %3470 = load i64, ptr %111, align 8, !tbaa !9
  %3471 = load i64, ptr %67, align 8, !tbaa !9
  %3472 = icmp sge i64 %3470, %3471
  %3473 = zext i1 %3472 to i32
  br label %3479

3474:                                             ; preds = %3466
  %3475 = load i64, ptr %111, align 8, !tbaa !9
  %3476 = load i64, ptr %67, align 8, !tbaa !9
  %3477 = icmp sle i64 %3475, %3476
  %3478 = zext i1 %3477 to i32
  br label %3479

3479:                                             ; preds = %3474, %3469
  %3480 = phi i32 [ %3473, %3469 ], [ %3478, %3474 ]
  %3481 = icmp ne i32 %3480, 0
  br i1 %3481, label %3482, label %3653

3482:                                             ; preds = %3479
  %3483 = load ptr, ptr %46, align 8, !tbaa !5
  %3484 = load i64, ptr %3483, align 8, !tbaa !9
  store i64 %3484, ptr %68, align 8, !tbaa !9
  %3485 = load ptr, ptr %39, align 8, !tbaa !5
  %3486 = load i64, ptr %3485, align 8, !tbaa !9
  %3487 = load i64, ptr %111, align 8, !tbaa !9
  %3488 = sub nsw i64 %3486, %3487
  %3489 = add nsw i64 %3488, 1
  store i64 %3489, ptr %70, align 8, !tbaa !9
  %3490 = load i64, ptr %68, align 8, !tbaa !9
  %3491 = load i64, ptr %70, align 8, !tbaa !9
  %3492 = icmp sle i64 %3490, %3491
  br i1 %3492, label %3493, label %3495

3493:                                             ; preds = %3482
  %3494 = load i64, ptr %68, align 8, !tbaa !9
  br label %3497

3495:                                             ; preds = %3482
  %3496 = load i64, ptr %70, align 8, !tbaa !9
  br label %3497

3497:                                             ; preds = %3495, %3493
  %3498 = phi i64 [ %3494, %3493 ], [ %3496, %3495 ]
  store i64 %3498, ptr %106, align 8, !tbaa !9
  %3499 = load ptr, ptr %40, align 8, !tbaa !5
  %3500 = load i64, ptr %111, align 8, !tbaa !9
  %3501 = load i64, ptr %116, align 8, !tbaa !9
  %3502 = add nsw i64 %3501, 1
  %3503 = load i64, ptr %81, align 8, !tbaa !9
  %3504 = add nsw i64 %3502, %3503
  %3505 = load i64, ptr %62, align 8, !tbaa !9
  %3506 = mul nsw i64 %3504, %3505
  %3507 = add nsw i64 %3500, %3506
  %3508 = getelementptr inbounds float, ptr %3499, i64 %3507
  %3509 = load ptr, ptr %41, align 8, !tbaa !5
  %3510 = load ptr, ptr %47, align 8, !tbaa !5
  %3511 = load i64, ptr %98, align 8, !tbaa !9
  %3512 = add nsw i64 %3511, 1
  %3513 = load i64, ptr %60, align 8, !tbaa !9
  %3514 = mul nsw i64 %3512, %3513
  %3515 = add nsw i64 %3514, 1
  %3516 = getelementptr inbounds float, ptr %3510, i64 %3515
  %3517 = load ptr, ptr %48, align 8, !tbaa !5
  %3518 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %106, ptr noundef %97, ptr noundef %3508, ptr noundef %3509, ptr noundef %3516, ptr noundef %3517)
  %3519 = load ptr, ptr %47, align 8, !tbaa !5
  %3520 = load i64, ptr %61, align 8, !tbaa !9
  %3521 = getelementptr inbounds float, ptr %3519, i64 %3520
  %3522 = load ptr, ptr %48, align 8, !tbaa !5
  %3523 = call i32 @slaset_(ptr noundef @.str.2, ptr noundef %106, ptr noundef %98, ptr noundef @c_b7, ptr noundef @c_b7, ptr noundef %3521, ptr noundef %3522)
  %3524 = load ptr, ptr %44, align 8, !tbaa !5
  %3525 = load i64, ptr %81, align 8, !tbaa !9
  %3526 = add nsw i64 %3525, 1
  %3527 = load i64, ptr %98, align 8, !tbaa !9
  %3528 = add nsw i64 %3527, 1
  %3529 = load i64, ptr %54, align 8, !tbaa !9
  %3530 = mul nsw i64 %3528, %3529
  %3531 = add nsw i64 %3526, %3530
  %3532 = getelementptr inbounds float, ptr %3524, i64 %3531
  %3533 = load ptr, ptr %45, align 8, !tbaa !5
  %3534 = load ptr, ptr %47, align 8, !tbaa !5
  %3535 = load i64, ptr %98, align 8, !tbaa !9
  %3536 = add nsw i64 %3535, 1
  %3537 = load i64, ptr %60, align 8, !tbaa !9
  %3538 = mul nsw i64 %3536, %3537
  %3539 = add nsw i64 %3538, 1
  %3540 = getelementptr inbounds float, ptr %3534, i64 %3539
  %3541 = load ptr, ptr %48, align 8, !tbaa !5
  %3542 = call i32 @f2c_strmm(ptr noundef @.str.7, ptr noundef @.str.6, ptr noundef @.str.4, ptr noundef @.str.4, ptr noundef %106, ptr noundef %97, ptr noundef @c_b8, ptr noundef %3532, ptr noundef %3533, ptr noundef %3540, ptr noundef %3541)
  %3543 = load ptr, ptr %40, align 8, !tbaa !5
  %3544 = load i64, ptr %111, align 8, !tbaa !9
  %3545 = load i64, ptr %116, align 8, !tbaa !9
  %3546 = add nsw i64 %3545, 1
  %3547 = load i64, ptr %62, align 8, !tbaa !9
  %3548 = mul nsw i64 %3546, %3547
  %3549 = add nsw i64 %3544, %3548
  %3550 = getelementptr inbounds float, ptr %3543, i64 %3549
  %3551 = load ptr, ptr %41, align 8, !tbaa !5
  %3552 = load ptr, ptr %44, align 8, !tbaa !5
  %3553 = load i64, ptr %55, align 8, !tbaa !9
  %3554 = getelementptr inbounds float, ptr %3552, i64 %3553
  %3555 = load ptr, ptr %45, align 8, !tbaa !5
  %3556 = load ptr, ptr %47, align 8, !tbaa !5
  %3557 = load i64, ptr %61, align 8, !tbaa !9
  %3558 = getelementptr inbounds float, ptr %3556, i64 %3557
  %3559 = load ptr, ptr %48, align 8, !tbaa !5
  %3560 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.4, ptr noundef %106, ptr noundef %80, ptr noundef %81, ptr noundef @c_b8, ptr noundef %3550, ptr noundef %3551, ptr noundef %3554, ptr noundef %3555, ptr noundef @c_b8, ptr noundef %3558, ptr noundef %3559)
  %3561 = load ptr, ptr %40, align 8, !tbaa !5
  %3562 = load i64, ptr %111, align 8, !tbaa !9
  %3563 = load i64, ptr %116, align 8, !tbaa !9
  %3564 = add nsw i64 %3563, 1
  %3565 = load i64, ptr %62, align 8, !tbaa !9
  %3566 = mul nsw i64 %3564, %3565
  %3567 = add nsw i64 %3562, %3566
  %3568 = getelementptr inbounds float, ptr %3561, i64 %3567
  %3569 = load ptr, ptr %41, align 8, !tbaa !5
  %3570 = load ptr, ptr %47, align 8, !tbaa !5
  %3571 = load i64, ptr %80, align 8, !tbaa !9
  %3572 = add nsw i64 %3571, 1
  %3573 = load i64, ptr %60, align 8, !tbaa !9
  %3574 = mul nsw i64 %3572, %3573
  %3575 = add nsw i64 %3574, 1
  %3576 = getelementptr inbounds float, ptr %3570, i64 %3575
  %3577 = load ptr, ptr %48, align 8, !tbaa !5
  %3578 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %106, ptr noundef %81, ptr noundef %3568, ptr noundef %3569, ptr noundef %3576, ptr noundef %3577)
  %3579 = load i64, ptr %82, align 8, !tbaa !9
  %3580 = load i64, ptr %80, align 8, !tbaa !9
  %3581 = sub nsw i64 %3579, %3580
  store i64 %3581, ptr %68, align 8, !tbaa !9
  %3582 = load ptr, ptr %44, align 8, !tbaa !5
  %3583 = load i64, ptr %80, align 8, !tbaa !9
  %3584 = add nsw i64 %3583, 1
  %3585 = load i64, ptr %54, align 8, !tbaa !9
  %3586 = mul nsw i64 %3584, %3585
  %3587 = add nsw i64 %3586, 1
  %3588 = getelementptr inbounds float, ptr %3582, i64 %3587
  %3589 = load ptr, ptr %45, align 8, !tbaa !5
  %3590 = load ptr, ptr %47, align 8, !tbaa !5
  %3591 = load i64, ptr %80, align 8, !tbaa !9
  %3592 = add nsw i64 %3591, 1
  %3593 = load i64, ptr %60, align 8, !tbaa !9
  %3594 = mul nsw i64 %3592, %3593
  %3595 = add nsw i64 %3594, 1
  %3596 = getelementptr inbounds float, ptr %3590, i64 %3595
  %3597 = load ptr, ptr %48, align 8, !tbaa !5
  %3598 = call i32 @f2c_strmm(ptr noundef @.str.7, ptr noundef @.str.5, ptr noundef @.str.4, ptr noundef @.str.4, ptr noundef %106, ptr noundef %68, ptr noundef @c_b8, ptr noundef %3588, ptr noundef %3589, ptr noundef %3596, ptr noundef %3597)
  %3599 = load i64, ptr %82, align 8, !tbaa !9
  %3600 = load i64, ptr %80, align 8, !tbaa !9
  %3601 = sub nsw i64 %3599, %3600
  store i64 %3601, ptr %68, align 8, !tbaa !9
  %3602 = load i64, ptr %83, align 8, !tbaa !9
  %3603 = load i64, ptr %81, align 8, !tbaa !9
  %3604 = sub nsw i64 %3602, %3603
  store i64 %3604, ptr %70, align 8, !tbaa !9
  %3605 = load ptr, ptr %40, align 8, !tbaa !5
  %3606 = load i64, ptr %111, align 8, !tbaa !9
  %3607 = load i64, ptr %116, align 8, !tbaa !9
  %3608 = add nsw i64 %3607, 1
  %3609 = load i64, ptr %81, align 8, !tbaa !9
  %3610 = add nsw i64 %3608, %3609
  %3611 = load i64, ptr %62, align 8, !tbaa !9
  %3612 = mul nsw i64 %3610, %3611
  %3613 = add nsw i64 %3606, %3612
  %3614 = getelementptr inbounds float, ptr %3605, i64 %3613
  %3615 = load ptr, ptr %41, align 8, !tbaa !5
  %3616 = load ptr, ptr %44, align 8, !tbaa !5
  %3617 = load i64, ptr %81, align 8, !tbaa !9
  %3618 = add nsw i64 %3617, 1
  %3619 = load i64, ptr %80, align 8, !tbaa !9
  %3620 = add nsw i64 %3619, 1
  %3621 = load i64, ptr %54, align 8, !tbaa !9
  %3622 = mul nsw i64 %3620, %3621
  %3623 = add nsw i64 %3618, %3622
  %3624 = getelementptr inbounds float, ptr %3616, i64 %3623
  %3625 = load ptr, ptr %45, align 8, !tbaa !5
  %3626 = load ptr, ptr %47, align 8, !tbaa !5
  %3627 = load i64, ptr %80, align 8, !tbaa !9
  %3628 = add nsw i64 %3627, 1
  %3629 = load i64, ptr %60, align 8, !tbaa !9
  %3630 = mul nsw i64 %3628, %3629
  %3631 = add nsw i64 %3630, 1
  %3632 = getelementptr inbounds float, ptr %3626, i64 %3631
  %3633 = load ptr, ptr %48, align 8, !tbaa !5
  %3634 = call i32 @f2c_sgemm(ptr noundef @.str.4, ptr noundef @.str.4, ptr noundef %106, ptr noundef %68, ptr noundef %70, ptr noundef @c_b8, ptr noundef %3614, ptr noundef %3615, ptr noundef %3624, ptr noundef %3625, ptr noundef @c_b8, ptr noundef %3632, ptr noundef %3633)
  %3635 = load ptr, ptr %47, align 8, !tbaa !5
  %3636 = load i64, ptr %61, align 8, !tbaa !9
  %3637 = getelementptr inbounds float, ptr %3635, i64 %3636
  %3638 = load ptr, ptr %48, align 8, !tbaa !5
  %3639 = load ptr, ptr %40, align 8, !tbaa !5
  %3640 = load i64, ptr %111, align 8, !tbaa !9
  %3641 = load i64, ptr %116, align 8, !tbaa !9
  %3642 = add nsw i64 %3641, 1
  %3643 = load i64, ptr %62, align 8, !tbaa !9
  %3644 = mul nsw i64 %3642, %3643
  %3645 = add nsw i64 %3640, %3644
  %3646 = getelementptr inbounds float, ptr %3639, i64 %3645
  %3647 = load ptr, ptr %41, align 8, !tbaa !5
  %3648 = call i32 @slacpy_(ptr noundef @.str.2, ptr noundef %106, ptr noundef %94, ptr noundef %3637, ptr noundef %3638, ptr noundef %3646, ptr noundef %3647)
  br label %3649

3649:                                             ; preds = %3497
  %3650 = load i64, ptr %66, align 8, !tbaa !9
  %3651 = load i64, ptr %111, align 8, !tbaa !9
  %3652 = add nsw i64 %3651, %3650
  store i64 %3652, ptr %111, align 8, !tbaa !9
  br label %3466, !llvm.loop !34

3653:                                             ; preds = %3479
  br label %3654

3654:                                             ; preds = %3653, %3455
  br label %3655

3655:                                             ; preds = %3654, %3033
  br label %3656

3656:                                             ; preds = %3655, %2695
  br label %3657

3657:                                             ; preds = %3656
  %3658 = load i64, ptr %65, align 8, !tbaa !9
  %3659 = load i64, ptr %116, align 8, !tbaa !9
  %3660 = add nsw i64 %3659, %3658
  store i64 %3660, ptr %116, align 8, !tbaa !9
  br label %343, !llvm.loop !35

3661:                                             ; preds = %356
  store i32 0, ptr %26, align 4
  store i32 1, ptr %124, align 4
  br label %3662

3662:                                             ; preds = %3661, %187, %180
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 12, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  %3663 = load i32, ptr %26, align 4
  ret i32 %3663
}

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}


; 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 [13 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [4 x i8], align 1
@c_b7 = external hidden global float, align 4
@c_b8 = external hidden global float, align 4
@c__3 = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slaqr5_(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %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 noundef %14, ptr noundef %15, ptr nocapture noundef readonly %16, ptr noundef %17, ptr noundef %18, ptr nocapture noundef readonly %19, ptr noundef %20, ptr noundef %21, ptr nocapture noundef readonly %22, ptr noundef %23, ptr noundef %24) local_unnamed_addr #0 {
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca [3 x float], align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca float, align 4
  %36 = alloca i64, align 8
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #5
  %40 = getelementptr inbounds i8, ptr %7, i64 -4
  %41 = getelementptr inbounds i8, ptr %8, i64 -4
  %42 = load i64, ptr %10, align 8, !tbaa !5
  %43 = xor i64 %42, -1
  %44 = getelementptr inbounds float, ptr %9, i64 %43
  %45 = load i64, ptr %14, align 8, !tbaa !5
  %46 = xor i64 %45, -1
  %47 = getelementptr inbounds float, ptr %13, i64 %46
  %48 = load i64, ptr %16, align 8, !tbaa !5
  %49 = xor i64 %48, -1
  %50 = getelementptr inbounds float, ptr %15, i64 %49
  %51 = load i64, ptr %18, align 8, !tbaa !5
  %52 = xor i64 %51, -1
  %53 = getelementptr inbounds float, ptr %17, i64 %52
  %54 = load i64, ptr %21, align 8, !tbaa !5
  %55 = xor i64 %54, -1
  %56 = getelementptr inbounds float, ptr %20, i64 %55
  %57 = load i64, ptr %6, align 8, !tbaa !5
  %58 = icmp slt i64 %57, 2
  br i1 %58, label %.loopexit1511, label %59

59:                                               ; preds = %25
  %60 = load i64, ptr %4, align 8, !tbaa !5
  %61 = load i64, ptr %5, align 8, !tbaa !5
  %.not = icmp slt i64 %60, %61
  br i1 %.not, label %62, label %.loopexit1511

62:                                               ; preds = %59
  %63 = add nsw i64 %57, -2
  %.not14261512 = icmp eq i64 %57, 2
  br i1 %.not14261512, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %62, %80
  %.013841513 = phi i64 [ %.pre-phi, %80 ], [ 1, %62 ]
  %64 = getelementptr inbounds float, ptr %41, i64 %.013841513
  %65 = load float, ptr %64, align 4, !tbaa !9
  %66 = getelementptr float, ptr %8, i64 %.013841513
  %67 = load float, ptr %66, align 4, !tbaa !9
  %68 = fneg float %67
  %69 = fcmp une float %65, %68
  br i1 %69, label %70, label %.lr.ph._crit_edge

.lr.ph._crit_edge:                                ; preds = %.lr.ph
  %.pre1687 = add nuw nsw i64 %.013841513, 2
  br label %80

70:                                               ; preds = %.lr.ph
  %71 = getelementptr inbounds float, ptr %40, i64 %.013841513
  %72 = load float, ptr %71, align 4, !tbaa !9
  %73 = getelementptr float, ptr %7, i64 %.013841513
  %74 = add nuw nsw i64 %.013841513, 2
  %75 = getelementptr inbounds float, ptr %40, i64 %74
  %76 = load <2 x float>, ptr %73, align 4, !tbaa !9
  store <2 x float> %76, ptr %71, align 4, !tbaa !9
  store float %72, ptr %75, align 4, !tbaa !9
  %77 = load float, ptr %64, align 4, !tbaa !9
  %78 = getelementptr inbounds float, ptr %41, i64 %74
  %79 = load <2 x float>, ptr %66, align 4, !tbaa !9
  store <2 x float> %79, ptr %64, align 4, !tbaa !9
  store float %77, ptr %78, align 4, !tbaa !9
  br label %80

80:                                               ; preds = %.lr.ph._crit_edge, %70
  %.pre-phi = phi i64 [ %.pre1687, %.lr.ph._crit_edge ], [ %74, %70 ]
  %.not1426 = icmp sgt i64 %.pre-phi, %63
  br i1 %.not1426, label %._crit_edge, label %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %80, %62
  %81 = and i64 %57, 9223372036854775806
  %82 = tail call double @slamch_(ptr noundef nonnull @.str) #5
  %83 = fptrunc double %82 to float
  store float %83, ptr %38, align 4, !tbaa !9
  %84 = fdiv float 1.000000e+00, %83
  store float %84, ptr %39, align 4, !tbaa !9
  %85 = call i32 @slabad_(ptr noundef nonnull %38, ptr noundef nonnull %39) #5
  %86 = call double @slamch_(ptr noundef nonnull @.str.1) #5
  %87 = fptrunc double %86 to float
  %88 = load float, ptr %38, align 4, !tbaa !9
  %89 = load i64, ptr %3, align 8, !tbaa !5
  %90 = sitofp i64 %89 to float
  %91 = fdiv float %90, %87
  %92 = fmul float %88, %91
  %93 = load i64, ptr %2, align 8, !tbaa !5
  %94 = icmp ugt i64 %81, 2
  %95 = icmp eq i64 %93, 2
  %spec.select = select i1 %94, i1 %95, i1 false
  %96 = load i64, ptr %4, align 8, !tbaa !5
  %97 = add nsw i64 %96, 2
  %98 = load i64, ptr %5, align 8, !tbaa !5
  %.not1427 = icmp sgt i64 %97, %98
  br i1 %.not1427, label %103, label %99

99:                                               ; preds = %._crit_edge
  %100 = mul nsw i64 %96, %42
  %101 = getelementptr float, ptr %44, i64 %97
  %102 = getelementptr float, ptr %101, i64 %100
  store float 0.000000e+00, ptr %102, align 4, !tbaa !9
  br label %103

103:                                              ; preds = %99, %._crit_edge
  %104 = lshr i64 %57, 1
  %105 = mul nuw nsw i64 %104, 6
  %106 = add nsw i64 %105, -3
  store i64 %106, ptr %32, align 8, !tbaa !5
  %107 = add nsw i64 %98, -2
  %108 = mul nuw i64 %104, 3
  %109 = add i64 %108, -2
  %110 = sub nsw i64 1, %104
  %111 = mul nsw i64 %110, 3
  %112 = add i64 %111, -1
  %113 = add i64 %112, %96
  %invariant.gep1654 = getelementptr i8, ptr %44, i64 4
  %.not15021656 = icmp sgt i64 %113, %107
  br i1 %.not15021656, label %.loopexit1511, label %.lr.ph1660

.lr.ph1660:                                       ; preds = %103
  %.off = add i64 %93, -1
  %switch = icmp ult i64 %.off, 2
  %114 = add nsw i64 %108, -3
  %invariant.gep1577 = getelementptr i8, ptr %44, i64 8
  %115 = getelementptr inbounds i8, ptr %31, i64 4
  %116 = getelementptr inbounds i8, ptr %31, i64 8
  %117 = fpext float %87 to double
  %118 = add i64 %42, 1
  %invariant.gep1570 = getelementptr i8, ptr %44, i64 16
  %119 = or i64 %57, 1
  %invariant.gep1584 = getelementptr i8, ptr %53, i64 4
  %invariant.gep1595 = getelementptr i8, ptr %56, i64 4
  %120 = add i64 %51, 1
  %121 = add i64 %96, 5
  %122 = sub i64 %121, %108
  %scevgep = getelementptr i8, ptr %17, i64 -4
  %scevgep1700 = getelementptr i8, ptr %17, i64 -4
  %scevgep1703 = getelementptr i8, ptr %15, i64 8
  %123 = shl i64 %48, 2
  %scevgep1727 = getelementptr i8, ptr %13, i64 -4
  %124 = shl i64 %96, 2
  %125 = add i64 %124, 8
  %126 = mul i64 %104, 12
  %127 = sub i64 %125, %126
  %128 = add i64 %126, -8
  %scevgep1732 = getelementptr i8, ptr %13, i64 -4
  %129 = add i64 %124, 12
  %130 = sub i64 %129, %126
  %scevgep1735 = getelementptr i8, ptr %15, i64 8
  %131 = shl i64 %48, 2
  %scevgep1779 = getelementptr i8, ptr %9, i64 -4
  %132 = shl i64 %96, 2
  %133 = add i64 %132, 8
  %134 = mul i64 %104, 12
  %135 = sub i64 %133, %134
  %136 = add i64 %134, -8
  %scevgep1782 = getelementptr i8, ptr %9, i64 -4
  %137 = add i64 %132, 12
  %138 = sub i64 %137, %134
  %scevgep1785 = getelementptr i8, ptr %15, i64 8
  %139 = shl i64 %48, 2
  %scevgep1829 = getelementptr i8, ptr %17, i64 -4
  %140 = mul i64 %51, 12
  %scevgep1832 = getelementptr i8, ptr %17, i64 -4
  %scevgep1835 = getelementptr i8, ptr %17, i64 -4
  %scevgep1839 = getelementptr i8, ptr %15, i64 4
  %scevgep1841 = getelementptr i8, ptr %15, i64 4
  %scevgep1843 = getelementptr i8, ptr %15, i64 8
  %scevgep1845 = getelementptr i8, ptr %15, i64 8
  %scevgep1847 = getelementptr i8, ptr %15, i64 12
  %141 = shl i64 %96, 2
  %142 = add i64 %141, -4
  %143 = mul i64 %104, 12
  %144 = sub i64 %142, %143
  %145 = add i64 %143, -8
  %146 = mul i64 %45, 12
  %147 = sub i64 %141, %143
  %148 = add i64 %141, 4
  %149 = sub i64 %148, %143
  %scevgep1963 = getelementptr i8, ptr %15, i64 4
  %150 = shl i64 %48, 2
  %scevgep1965 = getelementptr i8, ptr %15, i64 4
  %scevgep1967 = getelementptr i8, ptr %15, i64 8
  %scevgep1969 = getelementptr i8, ptr %15, i64 8
  %scevgep1971 = getelementptr i8, ptr %15, i64 12
  %151 = shl i64 %96, 2
  %152 = add i64 %151, -4
  %153 = mul i64 %104, 12
  %154 = sub i64 %152, %153
  %155 = add i64 %153, -8
  %156 = mul i64 %42, 12
  %157 = sub i64 %151, %153
  %158 = add i64 %151, 4
  %159 = sub i64 %158, %153
  %scevgep2068 = getelementptr i8, ptr %15, i64 4
  %160 = shl i64 %48, 2
  %scevgep2070 = getelementptr i8, ptr %15, i64 4
  %scevgep2072 = getelementptr i8, ptr %15, i64 8
  %scevgep2074 = getelementptr i8, ptr %15, i64 8
  %scevgep2076 = getelementptr i8, ptr %15, i64 12
  %161 = shl i64 %96, 2
  %162 = add i64 %161, 4
  %163 = shl i64 %42, 2
  %164 = mul i64 %104, 12
  %165 = add i64 %163, %164
  %166 = sub i64 %162, %165
  %167 = add i64 %164, -8
  %168 = shl i64 %42, 2
  %169 = shl i64 %42, 2
  %170 = add i64 %163, %164
  %171 = sub i64 %161, %170
  %172 = add i64 %161, -4
  %173 = add i64 %163, %164
  %174 = sub i64 %172, %173
  %175 = shl i64 %96, 2
  %176 = add i64 %175, -4
  %177 = shl i64 %42, 2
  %178 = mul i64 %104, 12
  %179 = add i64 %177, %178
  %180 = sub i64 %176, %179
  %181 = add i64 %178, -8
  %182 = shl i64 %42, 2
  %183 = shl i64 %42, 2
  %184 = add i64 %175, 8
  %185 = add i64 %177, %178
  %186 = sub i64 %184, %185
  %scevgep2177 = getelementptr i8, ptr %15, i64 8
  %scevgep2179 = getelementptr i8, ptr %15, i64 8
  %scevgep2182 = getelementptr i8, ptr %15, i64 4
  %scevgep2184 = getelementptr i8, ptr %15, i64 4
  %187 = add i64 %161, 4
  %188 = sub i64 %187, %164
  %189 = getelementptr i8, ptr %9, i64 %188
  %190 = getelementptr i8, ptr %9, i64 %180
  %191 = getelementptr i8, ptr %9, i64 %186
  %192 = getelementptr i8, ptr %9, i64 %166
  %193 = getelementptr i8, ptr %9, i64 %171
  %194 = getelementptr i8, ptr %9, i64 %174
  %ident.check.not = icmp eq i64 %42, 1
  %invariant.gep2229 = getelementptr i8, ptr %9, i64 -4
  %invariant.gep2231 = getelementptr i8, ptr %9, i64 -4
  %invariant.gep2233 = getelementptr i8, ptr %9, i64 -4
  %invariant.gep2235 = getelementptr i8, ptr %13, i64 -4
  %invariant.gep2237 = getelementptr i8, ptr %13, i64 -4
  %invariant.gep2239 = getelementptr i8, ptr %13, i64 -4
  %stride.check2088 = icmp slt i64 %160, 0
  %stride.check2127 = icmp slt i64 %160, 0
  %stride.check1983 = icmp slt i64 %150, 0
  %stride.check2022 = icmp slt i64 %150, 0
  %stride.check1856 = icmp slt i64 %140, 0
  %195 = or i64 %140, %139
  %196 = icmp slt i64 %195, 0
  %197 = or i64 %140, %139
  %198 = icmp slt i64 %197, 0
  %199 = or i64 %140, %139
  %200 = icmp slt i64 %199, 0
  %201 = or i64 %140, %139
  %202 = icmp slt i64 %201, 0
  %203 = or i64 %140, %139
  %204 = icmp slt i64 %203, 0
  %205 = or i64 %140, %139
  %206 = icmp slt i64 %205, 0
  %207 = or i64 %140, %139
  %208 = icmp slt i64 %207, 0
  %209 = or i64 %140, %139
  %210 = icmp slt i64 %209, 0
  %211 = or i64 %140, %139
  %212 = icmp slt i64 %211, 0
  br label %213

213:                                              ; preds = %.lr.ph1660, %.loopexit1509
  %indvar1728 = phi i64 [ 0, %.lr.ph1660 ], [ %indvar.next1729, %.loopexit1509 ]
  %indvars.iv1670 = phi i64 [ %122, %.lr.ph1660 ], [ %indvars.iv.next1671, %.loopexit1509 ]
  %.013701657 = phi i64 [ %113, %.lr.ph1660 ], [ %1546, %.loopexit1509 ]
  %214 = mul i64 %167, %indvar1728
  %215 = mul i64 %181, %indvar1728
  %216 = mul i64 %167, %indvar1728
  %217 = mul i64 %155, %indvar1728
  %218 = add i64 %154, %217
  %219 = add i64 %157, %217
  %220 = add i64 %159, %217
  %221 = mul i64 %145, %indvar1728
  %222 = add i64 %144, %221
  %223 = add i64 %147, %221
  %224 = add i64 %149, %221
  %225 = mul i64 %136, %indvar1728
  %226 = add i64 %135, %225
  %227 = add i64 %138, %225
  %228 = mul i64 %128, %indvar1728
  %229 = add i64 %127, %228
  %230 = add i64 %130, %228
  %231 = load i64, ptr %32, align 8, !tbaa !5
  %232 = add nsw i64 %231, %.013701657
  br i1 %switch, label %233, label %235

233:                                              ; preds = %213
  %234 = call i32 @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef nonnull @c_b7, ptr noundef nonnull @c_b8, ptr noundef %17, ptr noundef nonnull %18) #5
  br label %235

235:                                              ; preds = %213, %233
  %236 = add i64 %114, %.013701657
  %237 = load i64, ptr %5, align 8, !tbaa !5
  %238 = add nsw i64 %237, -2
  store i64 %238, ptr %26, align 8, !tbaa !5
  %239 = call i64 @llvm.smin.i64(i64 %236, i64 %238)
  %.not14291579 = icmp sgt i64 %.013701657, %239
  br i1 %.not14291579, label %._crit_edge1583, label %.lr.ph1582.preheader

.lr.ph1582.preheader:                             ; preds = %235
  %.pre = load i64, ptr %4, align 8, !tbaa !5
  %240 = getelementptr i8, ptr %189, i64 %214
  %241 = getelementptr i8, ptr %190, i64 %215
  %242 = getelementptr i8, ptr %191, i64 %215
  %243 = getelementptr i8, ptr %192, i64 %216
  %244 = getelementptr i8, ptr %193, i64 %216
  %245 = getelementptr i8, ptr %194, i64 %216
  br label %.lr.ph1582

.lr.ph1582:                                       ; preds = %.lr.ph1582.preheader, %._crit_edge1576
  %indvar = phi i64 [ 0, %.lr.ph1582.preheader ], [ %indvar.next, %._crit_edge1576 ]
  %246 = phi i64 [ %237, %.lr.ph1582.preheader ], [ %1118, %._crit_edge1576 ]
  %247 = phi i64 [ %.pre, %.lr.ph1582.preheader ], [ %451, %._crit_edge1576 ]
  %indvars.iv1672 = phi i64 [ %indvars.iv1670, %.lr.ph1582.preheader ], [ %indvars.iv.next1673, %._crit_edge1576 ]
  %.013691580 = phi i64 [ %.013701657, %.lr.ph1582.preheader ], [ %1291, %._crit_edge1576 ]
  %248 = shl i64 %indvar, 2
  %scevgep2219 = getelementptr i8, ptr %240, i64 %248
  %249 = shl i64 %indvar, 2
  %250 = shl i64 %indvar, 2
  %251 = shl i64 %indvar, 2
  %252 = add i64 %218, %251
  %253 = add i64 %219, %251
  %254 = add i64 %220, %251
  %255 = shl i64 %indvar, 2
  %256 = add i64 %222, %255
  %257 = add i64 %223, %255
  %258 = add i64 %224, %255
  %259 = shl i64 %indvar, 2
  %260 = add i64 %259, -12
  %261 = add i64 %259, -8
  %262 = add i64 %259, -4
  %263 = shl i64 %indvar, 2
  %264 = add i64 %226, %263
  %265 = add i64 %227, %263
  %266 = shl i64 %indvar, 2
  %267 = add i64 %229, %266
  %268 = add i64 %230, %266
  %269 = shl i64 %indvar, 2
  %270 = add i64 %269, 4
  %271 = xor i64 %.013691580, -1
  %272 = add i64 %247, %271
  %273 = add nsw i64 %272, 2
  %274 = sdiv i64 %273, 3
  %275 = add nsw i64 %274, 1
  %276 = icmp slt i64 %272, 1
  %277 = select i1 %276, i64 1, i64 %275
  %278 = sub nsw i64 %246, %.013691580
  %279 = sdiv i64 %278, 3
  store i64 %279, ptr %26, align 8, !tbaa !5
  %280 = call i64 @llvm.smin.i64(i64 %104, i64 %279)
  %281 = add nsw i64 %280, 1
  %282 = icmp slt i64 %279, %104
  br i1 %282, label %283, label %288

283:                                              ; preds = %.lr.ph1582
  %284 = mul nsw i64 %280, 3
  %285 = add nsw i64 %284, %.013691580
  %286 = add nsw i64 %246, -2
  %287 = icmp eq i64 %285, %286
  br label %288

288:                                              ; preds = %283, %.lr.ph1582
  %289 = phi i1 [ false, %.lr.ph1582 ], [ %287, %283 ]
  %.not14521514 = icmp sgt i64 %277, %280
  br i1 %.not14521514, label %._crit_edge1518, label %.lr.ph1517

.lr.ph1517:                                       ; preds = %288
  %290 = add i64 %.013691580, -3
  %291 = getelementptr float, ptr %44, i64 %.013691580
  br label %292

292:                                              ; preds = %.lr.ph1517, %403
  %.013911515 = phi i64 [ %277, %.lr.ph1517 ], [ %404, %403 ]
  %293 = mul i64 %.013911515, 3
  %294 = add i64 %290, %293
  %295 = load i64, ptr %4, align 8, !tbaa !5
  %296 = add nsw i64 %295, -1
  %297 = icmp eq i64 %294, %296
  br i1 %297, label %298, label %314

298:                                              ; preds = %292
  %299 = mul i64 %295, %118
  %300 = getelementptr inbounds float, ptr %44, i64 %299
  %301 = shl i64 %.013911515, 1
  %302 = add nsw i64 %301, -1
  %303 = getelementptr inbounds float, ptr %40, i64 %302
  %304 = getelementptr inbounds float, ptr %41, i64 %302
  %305 = getelementptr inbounds float, ptr %40, i64 %301
  %306 = getelementptr inbounds float, ptr %41, i64 %301
  %307 = mul nsw i64 %.013911515, %48
  %308 = getelementptr float, ptr %50, i64 %307
  %309 = getelementptr i8, ptr %308, i64 4
  %310 = call i32 @slaqr1_(ptr noundef nonnull @c__3, ptr noundef %300, ptr noundef nonnull %10, ptr noundef nonnull %303, ptr noundef nonnull %304, ptr noundef nonnull %305, ptr noundef nonnull %306, ptr noundef %309) #5
  %311 = load float, ptr %309, align 4, !tbaa !9
  store float %311, ptr %37, align 4, !tbaa !9
  %312 = getelementptr i8, ptr %308, i64 8
  %313 = call i32 @slarfg_(ptr noundef nonnull @c__3, ptr noundef nonnull %37, ptr noundef %312, ptr noundef nonnull @c__1, ptr noundef nonnull %309) #5
  br label %403

314:                                              ; preds = %292
  %315 = add nsw i64 %294, 1
  %316 = mul nsw i64 %294, %42
  %317 = getelementptr float, ptr %44, i64 %315
  %318 = getelementptr float, ptr %317, i64 %316
  %319 = load float, ptr %318, align 4, !tbaa !9
  store float %319, ptr %35, align 4, !tbaa !9
  %320 = add nsw i64 %294, 2
  %321 = getelementptr float, ptr %44, i64 %320
  %322 = getelementptr float, ptr %321, i64 %316
  %323 = load float, ptr %322, align 4, !tbaa !9
  %324 = mul nsw i64 %.013911515, %48
  %325 = getelementptr float, ptr %50, i64 %324
  %326 = getelementptr i8, ptr %325, i64 8
  store float %323, ptr %326, align 4, !tbaa !9
  %327 = getelementptr float, ptr %291, i64 %293
  %328 = getelementptr float, ptr %327, i64 %316
  %329 = load float, ptr %328, align 4, !tbaa !9
  %330 = getelementptr i8, ptr %325, i64 12
  store float %329, ptr %330, align 4, !tbaa !9
  %331 = getelementptr i8, ptr %325, i64 4
  %332 = call i32 @slarfg_(ptr noundef nonnull @c__3, ptr noundef nonnull %35, ptr noundef nonnull %326, ptr noundef nonnull @c__1, ptr noundef %331) #5
  %333 = load float, ptr %328, align 4, !tbaa !9
  %334 = fcmp une float %333, 0.000000e+00
  br i1 %334, label %345, label %335

335:                                              ; preds = %314
  %336 = mul nsw i64 %315, %42
  %337 = getelementptr float, ptr %327, i64 %336
  %338 = load float, ptr %337, align 4, !tbaa !9
  %339 = fcmp une float %338, 0.000000e+00
  br i1 %339, label %345, label %340

340:                                              ; preds = %335
  %341 = mul nsw i64 %320, %42
  %342 = getelementptr float, ptr %327, i64 %341
  %343 = load float, ptr %342, align 4, !tbaa !9
  %344 = fcmp oeq float %343, 0.000000e+00
  br i1 %344, label %345, label %347

345:                                              ; preds = %340, %335, %314
  %346 = load float, ptr %35, align 4, !tbaa !9
  store float %346, ptr %318, align 4, !tbaa !9
  store float 0.000000e+00, ptr %322, align 4, !tbaa !9
  store float 0.000000e+00, ptr %328, align 4, !tbaa !9
  br label %403

347:                                              ; preds = %340
  %348 = getelementptr float, ptr %317, i64 %336
  %349 = shl i64 %.013911515, 1
  %350 = add nsw i64 %349, -1
  %351 = getelementptr inbounds float, ptr %40, i64 %350
  %352 = getelementptr inbounds float, ptr %41, i64 %350
  %353 = getelementptr inbounds float, ptr %40, i64 %349
  %354 = getelementptr inbounds float, ptr %41, i64 %349
  %355 = call i32 @slaqr1_(ptr noundef nonnull @c__3, ptr noundef %348, ptr noundef nonnull %10, ptr noundef nonnull %351, ptr noundef nonnull %352, ptr noundef nonnull %353, ptr noundef nonnull %354, ptr noundef nonnull %31) #5
  %356 = load float, ptr %31, align 8, !tbaa !9
  store float %356, ptr %37, align 4, !tbaa !9
  %357 = call i32 @slarfg_(ptr noundef nonnull @c__3, ptr noundef nonnull %37, ptr noundef nonnull %115, ptr noundef nonnull @c__1, ptr noundef nonnull %31) #5
  %358 = load float, ptr %318, align 4, !tbaa !9
  %359 = load <2 x float>, ptr %31, align 8, !tbaa !9
  %360 = load float, ptr %322, align 4, !tbaa !9
  %361 = extractelement <2 x float> %359, i64 1
  %362 = call float @llvm.fmuladd.f32(float %361, float %360, float %358)
  %363 = extractelement <2 x float> %359, i64 0
  %364 = fmul float %363, %362
  %365 = fneg float %364
  %366 = call float @llvm.fmuladd.f32(float %365, float %361, float %360)
  %367 = load float, ptr %116, align 8, !tbaa !9
  %368 = fmul float %367, %364
  %369 = insertelement <2 x float> poison, float %366, i64 0
  %370 = insertelement <2 x float> %369, float %368, i64 1
  %371 = fcmp oge <2 x float> %370, zeroinitializer
  %372 = fneg <2 x float> %370
  %373 = select <2 x i1> %371, <2 x float> %370, <2 x float> %372
  %374 = fpext <2 x float> %373 to <2 x double>
  %shift = shufflevector <2 x double> %374, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %375 = fadd <2 x double> %shift, %374
  %376 = extractelement <2 x double> %375, i64 0
  %377 = getelementptr float, ptr %44, i64 %294
  %378 = getelementptr float, ptr %377, i64 %316
  %379 = load float, ptr %378, align 4, !tbaa !9
  %380 = fcmp oge float %379, 0.000000e+00
  %381 = fneg float %379
  %382 = select i1 %380, float %379, float %381
  %383 = fpext float %382 to double
  %384 = load float, ptr %348, align 4, !tbaa !9
  %385 = fcmp oge float %384, 0.000000e+00
  %386 = fneg float %384
  %387 = select i1 %385, float %384, float %386
  %388 = fpext float %387 to double
  %389 = fadd double %383, %388
  %390 = getelementptr float, ptr %321, i64 %341
  %391 = load float, ptr %390, align 4, !tbaa !9
  %392 = fcmp oge float %391, 0.000000e+00
  %393 = fneg float %391
  %394 = select i1 %392, float %391, float %393
  %395 = fpext float %394 to double
  %396 = fadd double %389, %395
  %397 = fmul double %396, %117
  %398 = fcmp ogt double %376, %397
  br i1 %398, label %399, label %401

399:                                              ; preds = %347
  %400 = load float, ptr %35, align 4, !tbaa !9
  store float %400, ptr %318, align 4, !tbaa !9
  store float 0.000000e+00, ptr %322, align 4, !tbaa !9
  store float 0.000000e+00, ptr %328, align 4, !tbaa !9
  br label %403

401:                                              ; preds = %347
  %402 = fsub float %358, %364
  store float %402, ptr %318, align 4, !tbaa !9
  store float 0.000000e+00, ptr %322, align 4, !tbaa !9
  store float 0.000000e+00, ptr %328, align 4, !tbaa !9
  store <2 x float> %359, ptr %331, align 4, !tbaa !9
  store float %367, ptr %330, align 4, !tbaa !9
  br label %403

403:                                              ; preds = %298, %399, %401, %345
  %404 = add i64 %.013911515, 1
  %exitcond.not = icmp eq i64 %.013911515, %280
  br i1 %exitcond.not, label %._crit_edge1518, label %292, !llvm.loop !13

._crit_edge1518:                                  ; preds = %403, %288
  %405 = mul nsw i64 %280, 3
  %406 = add nsw i64 %405, %.013691580
  br i1 %289, label %407, label %441

407:                                              ; preds = %._crit_edge1518
  %408 = load i64, ptr %4, align 8, !tbaa !5
  %409 = add nsw i64 %408, -1
  %410 = icmp eq i64 %406, %409
  %411 = mul nsw i64 %281, %48
  %412 = getelementptr float, ptr %50, i64 %411
  br i1 %410, label %413, label %428

413:                                              ; preds = %407
  %414 = add nsw i64 %406, 1
  %415 = mul i64 %414, %118
  %416 = getelementptr inbounds float, ptr %44, i64 %415
  %417 = shl nsw i64 %281, 1
  %418 = add nsw i64 %417, -1
  %419 = getelementptr inbounds float, ptr %40, i64 %418
  %420 = getelementptr inbounds float, ptr %41, i64 %418
  %421 = getelementptr inbounds float, ptr %40, i64 %417
  %422 = getelementptr inbounds float, ptr %41, i64 %417
  %423 = getelementptr i8, ptr %412, i64 4
  %424 = call i32 @slaqr1_(ptr noundef nonnull @c__2, ptr noundef %416, ptr noundef nonnull %10, ptr noundef nonnull %419, ptr noundef nonnull %420, ptr noundef nonnull %421, ptr noundef nonnull %422, ptr noundef %423) #5
  %425 = load float, ptr %423, align 4, !tbaa !9
  store float %425, ptr %35, align 4, !tbaa !9
  %426 = getelementptr i8, ptr %412, i64 8
  %427 = call i32 @slarfg_(ptr noundef nonnull @c__2, ptr noundef nonnull %35, ptr noundef %426, ptr noundef nonnull @c__1, ptr noundef nonnull %423) #5
  br label %441

428:                                              ; preds = %407
  %429 = mul nsw i64 %406, %42
  %430 = getelementptr float, ptr %44, i64 %406
  %431 = getelementptr i8, ptr %430, i64 4
  %432 = getelementptr float, ptr %431, i64 %429
  %433 = load float, ptr %432, align 4, !tbaa !9
  store float %433, ptr %35, align 4, !tbaa !9
  %434 = getelementptr i8, ptr %430, i64 8
  %435 = getelementptr float, ptr %434, i64 %429
  %436 = load float, ptr %435, align 4, !tbaa !9
  %437 = getelementptr i8, ptr %412, i64 8
  store float %436, ptr %437, align 4, !tbaa !9
  %438 = getelementptr i8, ptr %412, i64 4
  %439 = call i32 @slarfg_(ptr noundef nonnull @c__2, ptr noundef nonnull %35, ptr noundef nonnull %437, ptr noundef nonnull @c__1, ptr noundef %438) #5
  %440 = load float, ptr %35, align 4, !tbaa !9
  store float %440, ptr %432, align 4, !tbaa !9
  store float 0.000000e+00, ptr %435, align 4, !tbaa !9
  br label %441

441:                                              ; preds = %413, %428, %._crit_edge1518
  br i1 %switch, label %442, label %444

442:                                              ; preds = %441
  %443 = load i64, ptr %5, align 8, !tbaa !5
  %. = call i64 @llvm.smin.i64(i64 %232, i64 %443)
  br label %450

444:                                              ; preds = %441
  %445 = load i64, ptr %0, align 8, !tbaa !5
  %.not1453 = icmp eq i64 %445, 0
  br i1 %.not1453, label %448, label %446

446:                                              ; preds = %444
  %447 = load i64, ptr %3, align 8, !tbaa !5
  br label %450

448:                                              ; preds = %444
  %449 = load i64, ptr %5, align 8, !tbaa !5
  br label %450

450:                                              ; preds = %446, %448, %442
  %.01374 = phi i64 [ %., %442 ], [ %447, %446 ], [ %449, %448 ]
  %451 = load i64, ptr %4, align 8, !tbaa !5
  %.01369. = call i64 @llvm.smax.i64(i64 %451, i64 %.013691580)
  %.not14561524 = icmp sgt i64 %.01369., %.01374
  br i1 %.not14561524, label %658, label %.lr.ph1527

.lr.ph1527:                                       ; preds = %450
  %452 = getelementptr float, ptr %44, i64 %.013691580
  %453 = mul i64 %168, %.01369.
  %454 = mul i64 %277, 12
  %455 = mul i64 %182, %.01369.
  %456 = mul i64 %277, 12
  %457 = shl i64 %277, 2
  %458 = add i64 %457, -4
  %459 = mul i64 %48, %458
  %scevgep2178 = getelementptr i8, ptr %scevgep2177, i64 %459
  %scevgep2183 = getelementptr i8, ptr %scevgep2182, i64 %459
  %scevgep2189 = getelementptr i8, ptr %15, i64 %459
  %460 = getelementptr i8, ptr %241, i64 %249
  %461 = getelementptr i8, ptr %460, i64 %455
  %462 = getelementptr i8, ptr %461, i64 %456
  %463 = getelementptr i8, ptr %242, i64 %249
  %464 = getelementptr i8, ptr %463, i64 %455
  %465 = getelementptr i8, ptr %243, i64 %250
  %466 = getelementptr i8, ptr %465, i64 %453
  %467 = getelementptr i8, ptr %466, i64 %454
  %468 = getelementptr i8, ptr %244, i64 %250
  %469 = getelementptr i8, ptr %468, i64 %453
  %470 = getelementptr i8, ptr %469, i64 %454
  %471 = getelementptr i8, ptr %245, i64 %250
  %472 = getelementptr i8, ptr %471, i64 %453
  %473 = getelementptr i8, ptr %472, i64 %454
  br label %474

474:                                              ; preds = %.lr.ph1527, %._crit_edge1523
  %indvar2162 = phi i64 [ 0, %.lr.ph1527 ], [ %indvar.next2163, %._crit_edge1523 ]
  %.013851525 = phi i64 [ %.01369., %.lr.ph1527 ], [ %657, %._crit_edge1523 ]
  %475 = mul i64 %183, %indvar2162
  %scevgep2174 = getelementptr i8, ptr %462, i64 %475
  %scevgep2175 = getelementptr i8, ptr %464, i64 %475
  %476 = mul i64 %169, %indvar2162
  %scevgep2164 = getelementptr i8, ptr %467, i64 %476
  %scevgep2165 = getelementptr i8, ptr %470, i64 %476
  %scevgep2169 = getelementptr i8, ptr %473, i64 %476
  %reass.sub = sub i64 %.013851525, %.013691580
  %477 = add i64 %reass.sub, 2
  %478 = sdiv i64 %477, 3
  %479 = call i64 @llvm.smin.i64(i64 %280, i64 %478)
  %.not14831519 = icmp sgt i64 %277, %479
  br i1 %.not14831519, label %._crit_edge1523, label %.lr.ph1522

.lr.ph1522:                                       ; preds = %474
  %480 = mul nsw i64 %.013851525, %42
  %invariant.gep = getelementptr float, ptr %452, i64 %480
  %reass.sub2221 = sub i64 %479, %277
  %481 = add i64 %reass.sub2221, 1
  %min.iters.check2207 = icmp ult i64 %481, 12
  br i1 %min.iters.check2207, label %scalar.ph2206.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph1522
  %482 = sub i64 %479, %277
  %mul = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %482, i64 12)
  %mul.result = extractvalue { i64, i1 } %mul, 0
  %mul.overflow = extractvalue { i64, i1 } %mul, 1
  %483 = getelementptr i8, ptr %scevgep2164, i64 %mul.result
  %484 = icmp ult ptr %483, %scevgep2164
  %485 = or i1 %484, %mul.overflow
  %mul2166 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %482, i64 12)
  %mul.result2167 = extractvalue { i64, i1 } %mul2166, 0
  %mul.overflow2168 = extractvalue { i64, i1 } %mul2166, 1
  %486 = getelementptr i8, ptr %scevgep2165, i64 %mul.result2167
  %487 = icmp ult ptr %486, %scevgep2165
  %488 = or i1 %487, %mul.overflow2168
  %mul2170 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %482, i64 12)
  %mul.result2171 = extractvalue { i64, i1 } %mul2170, 0
  %mul.overflow2172 = extractvalue { i64, i1 } %mul2170, 1
  %489 = getelementptr i8, ptr %scevgep2169, i64 %mul.result2171
  %490 = icmp ult ptr %489, %scevgep2169
  %491 = or i1 %490, %mul.overflow2172
  %492 = or i1 %485, %488
  %493 = or i1 %492, %491
  br i1 %493, label %scalar.ph2206.preheader, label %vector.memcheck2173

vector.memcheck2173:                              ; preds = %vector.scevcheck
  %494 = mul i64 %479, 12
  %scevgep2176 = getelementptr i8, ptr %scevgep2175, i64 %494
  %495 = shl i64 %479, 2
  %496 = add i64 %495, -4
  %497 = mul i64 %48, %496
  %scevgep2180 = getelementptr i8, ptr %scevgep2179, i64 %497
  %498 = icmp ult ptr %scevgep2178, %scevgep2180
  %umin = select i1 %498, ptr %scevgep2178, ptr %scevgep2180
  %499 = icmp ugt ptr %scevgep2178, %scevgep2180
  %umax = select i1 %499, ptr %scevgep2178, ptr %scevgep2180
  %scevgep2181 = getelementptr i8, ptr %umax, i64 4
  %scevgep2185 = getelementptr i8, ptr %scevgep2184, i64 %497
  %500 = icmp ult ptr %scevgep2183, %scevgep2185
  %umin2186 = select i1 %500, ptr %scevgep2183, ptr %scevgep2185
  %501 = icmp ugt ptr %scevgep2183, %scevgep2185
  %umax2187 = select i1 %501, ptr %scevgep2183, ptr %scevgep2185
  %scevgep2188 = getelementptr i8, ptr %umax2187, i64 4
  %scevgep2190 = getelementptr i8, ptr %15, i64 %497
  %502 = icmp ult ptr %scevgep2189, %scevgep2190
  %umin2191 = select i1 %502, ptr %scevgep2189, ptr %scevgep2190
  %503 = icmp ugt ptr %scevgep2189, %scevgep2190
  %umax2192 = select i1 %503, ptr %scevgep2189, ptr %scevgep2190
  %scevgep2193 = getelementptr i8, ptr %umax2192, i64 4
  %bound02194 = icmp ult ptr %scevgep2174, %scevgep2181
  %bound12195 = icmp ult ptr %umin, %scevgep2176
  %found.conflict2196 = and i1 %bound02194, %bound12195
  %bound02197 = icmp ult ptr %scevgep2174, %scevgep2188
  %bound12198 = icmp ult ptr %umin2186, %scevgep2176
  %found.conflict2199 = and i1 %bound02197, %bound12198
  %conflict.rdx2200 = or i1 %found.conflict2196, %found.conflict2199
  %bound02201 = icmp ult ptr %scevgep2174, %scevgep2193
  %bound12202 = icmp ult ptr %umin2191, %scevgep2176
  %found.conflict2203 = and i1 %bound02201, %bound12202
  %conflict.rdx2204 = or i1 %conflict.rdx2200, %found.conflict2203
  br i1 %conflict.rdx2204, label %scalar.ph2206.preheader, label %vector.ph2208

vector.ph2208:                                    ; preds = %vector.memcheck2173
  %n.vec2210 = and i64 %481, -4
  %ind.end2211 = add i64 %277, %n.vec2210
  br label %vector.body2213

vector.body2213:                                  ; preds = %vector.body2213, %vector.ph2208
  %index2214 = phi i64 [ 0, %vector.ph2208 ], [ %index.next2216, %vector.body2213 ]
  %offset.idx2215 = add i64 %277, %index2214
  %504 = add i64 %offset.idx2215, 1
  %505 = add i64 %offset.idx2215, 2
  %506 = add i64 %offset.idx2215, 3
  %507 = mul i64 %offset.idx2215, 3
  %508 = mul i64 %504, 3
  %509 = mul i64 %505, 3
  %510 = mul i64 %506, 3
  %511 = mul nsw i64 %offset.idx2215, %48
  %512 = mul nsw i64 %504, %48
  %513 = mul nsw i64 %505, %48
  %514 = mul nsw i64 %506, %48
  %515 = getelementptr float, ptr %50, i64 %511
  %516 = getelementptr float, ptr %50, i64 %512
  %517 = getelementptr float, ptr %50, i64 %513
  %518 = getelementptr float, ptr %50, i64 %514
  %519 = getelementptr i8, ptr %515, i64 4
  %520 = getelementptr i8, ptr %516, i64 4
  %521 = getelementptr i8, ptr %517, i64 4
  %522 = getelementptr i8, ptr %518, i64 4
  %523 = load float, ptr %519, align 4, !tbaa !9, !alias.scope !14
  %524 = load float, ptr %520, align 4, !tbaa !9, !alias.scope !14
  %525 = load float, ptr %521, align 4, !tbaa !9, !alias.scope !14
  %526 = load float, ptr %522, align 4, !tbaa !9, !alias.scope !14
  %527 = insertelement <4 x float> poison, float %523, i64 0
  %528 = insertelement <4 x float> %527, float %524, i64 1
  %529 = insertelement <4 x float> %528, float %525, i64 2
  %530 = insertelement <4 x float> %529, float %526, i64 3
  %531 = getelementptr float, ptr %452, i64 %507
  %532 = getelementptr float, ptr %452, i64 %508
  %533 = getelementptr float, ptr %452, i64 %509
  %534 = getelementptr float, ptr %452, i64 %510
  %535 = getelementptr i8, ptr %531, i64 -8
  %536 = getelementptr i8, ptr %532, i64 -8
  %537 = getelementptr i8, ptr %533, i64 -8
  %538 = getelementptr i8, ptr %534, i64 -8
  %539 = getelementptr float, ptr %535, i64 %480
  %540 = getelementptr float, ptr %536, i64 %480
  %541 = getelementptr float, ptr %537, i64 %480
  %542 = getelementptr float, ptr %538, i64 %480
  %543 = load float, ptr %539, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %544 = load float, ptr %540, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %545 = load float, ptr %541, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %546 = load float, ptr %542, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %547 = insertelement <4 x float> poison, float %543, i64 0
  %548 = insertelement <4 x float> %547, float %544, i64 1
  %549 = insertelement <4 x float> %548, float %545, i64 2
  %550 = insertelement <4 x float> %549, float %546, i64 3
  %551 = getelementptr i8, ptr %515, i64 8
  %552 = getelementptr i8, ptr %516, i64 8
  %553 = getelementptr i8, ptr %517, i64 8
  %554 = getelementptr i8, ptr %518, i64 8
  %555 = load float, ptr %551, align 4, !tbaa !9, !alias.scope !22
  %556 = load float, ptr %552, align 4, !tbaa !9, !alias.scope !22
  %557 = load float, ptr %553, align 4, !tbaa !9, !alias.scope !22
  %558 = load float, ptr %554, align 4, !tbaa !9, !alias.scope !22
  %559 = insertelement <4 x float> poison, float %555, i64 0
  %560 = insertelement <4 x float> %559, float %556, i64 1
  %561 = insertelement <4 x float> %560, float %557, i64 2
  %562 = insertelement <4 x float> %561, float %558, i64 3
  %563 = getelementptr i8, ptr %531, i64 -4
  %564 = getelementptr i8, ptr %532, i64 -4
  %565 = getelementptr i8, ptr %533, i64 -4
  %566 = getelementptr i8, ptr %534, i64 -4
  %567 = getelementptr float, ptr %563, i64 %480
  %568 = getelementptr float, ptr %564, i64 %480
  %569 = getelementptr float, ptr %565, i64 %480
  %570 = getelementptr float, ptr %566, i64 %480
  %571 = load float, ptr %567, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %572 = load float, ptr %568, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %573 = load float, ptr %569, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %574 = load float, ptr %570, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %575 = insertelement <4 x float> poison, float %571, i64 0
  %576 = insertelement <4 x float> %575, float %572, i64 1
  %577 = insertelement <4 x float> %576, float %573, i64 2
  %578 = insertelement <4 x float> %577, float %574, i64 3
  %579 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %562, <4 x float> %578, <4 x float> %550)
  %580 = getelementptr i8, ptr %515, i64 12
  %581 = getelementptr i8, ptr %516, i64 12
  %582 = getelementptr i8, ptr %517, i64 12
  %583 = getelementptr i8, ptr %518, i64 12
  %584 = load float, ptr %580, align 4, !tbaa !9, !alias.scope !23
  %585 = load float, ptr %581, align 4, !tbaa !9, !alias.scope !23
  %586 = load float, ptr %582, align 4, !tbaa !9, !alias.scope !23
  %587 = load float, ptr %583, align 4, !tbaa !9, !alias.scope !23
  %588 = insertelement <4 x float> poison, float %584, i64 0
  %589 = insertelement <4 x float> %588, float %585, i64 1
  %590 = insertelement <4 x float> %589, float %586, i64 2
  %591 = insertelement <4 x float> %590, float %587, i64 3
  %592 = getelementptr float, ptr %invariant.gep, i64 %507
  %593 = getelementptr float, ptr %invariant.gep, i64 %508
  %594 = getelementptr float, ptr %invariant.gep, i64 %509
  %595 = getelementptr float, ptr %invariant.gep, i64 %510
  %596 = load float, ptr %592, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %597 = load float, ptr %593, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %598 = load float, ptr %594, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %599 = load float, ptr %595, align 4, !tbaa !9, !alias.scope !17, !noalias !19
  %600 = insertelement <4 x float> poison, float %596, i64 0
  %601 = insertelement <4 x float> %600, float %597, i64 1
  %602 = insertelement <4 x float> %601, float %598, i64 2
  %603 = insertelement <4 x float> %602, float %599, i64 3
  %604 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %591, <4 x float> %603, <4 x float> %579)
  %605 = fmul <4 x float> %530, %604
  %606 = fsub <4 x float> %550, %605
  %607 = load float, ptr %551, align 4, !tbaa !9, !alias.scope !22
  %608 = load float, ptr %552, align 4, !tbaa !9, !alias.scope !22
  %609 = load float, ptr %553, align 4, !tbaa !9, !alias.scope !22
  %610 = load float, ptr %554, align 4, !tbaa !9, !alias.scope !22
  %611 = insertelement <4 x float> poison, float %607, i64 0
  %612 = insertelement <4 x float> %611, float %608, i64 1
  %613 = insertelement <4 x float> %612, float %609, i64 2
  %614 = insertelement <4 x float> %613, float %610, i64 3
  %615 = fneg <4 x float> %605
  %616 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %615, <4 x float> %614, <4 x float> %578)
  %617 = load float, ptr %580, align 4, !tbaa !9, !alias.scope !23
  %618 = load float, ptr %581, align 4, !tbaa !9, !alias.scope !23
  %619 = load float, ptr %582, align 4, !tbaa !9, !alias.scope !23
  %620 = load float, ptr %583, align 4, !tbaa !9, !alias.scope !23
  %621 = insertelement <4 x float> poison, float %617, i64 0
  %622 = insertelement <4 x float> %621, float %618, i64 1
  %623 = insertelement <4 x float> %622, float %619, i64 2
  %624 = insertelement <4 x float> %623, float %620, i64 3
  %625 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %615, <4 x float> %624, <4 x float> %603)
  %626 = getelementptr i8, ptr %592, i64 -8
  %627 = shufflevector <4 x float> %606, <4 x float> %616, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
  %628 = shufflevector <4 x float> %625, <4 x float> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 poison, i32 poison, i32 poison, i32 poison>
  %interleaved.vec = shufflevector <8 x float> %627, <8 x float> %628, <12 x i32> <i32 0, i32 4, i32 8, i32 1, i32 5, i32 9, i32 2, i32 6, i32 10, i32 3, i32 7, i32 11>
  store <12 x float> %interleaved.vec, ptr %626, align 4, !tbaa !9
  %index.next2216 = add nuw i64 %index2214, 4
  %629 = icmp eq i64 %index.next2216, %n.vec2210
  br i1 %629, label %middle.block2205, label %vector.body2213, !llvm.loop !24

middle.block2205:                                 ; preds = %vector.body2213
  %cmp.n2217 = icmp eq i64 %481, %n.vec2210
  br i1 %cmp.n2217, label %._crit_edge1523, label %scalar.ph2206.preheader

scalar.ph2206.preheader:                          ; preds = %middle.block2205, %vector.memcheck2173, %vector.scevcheck, %.lr.ph1522
  %.113921520.ph = phi i64 [ %277, %vector.memcheck2173 ], [ %277, %vector.scevcheck ], [ %277, %.lr.ph1522 ], [ %ind.end2211, %middle.block2205 ]
  br label %scalar.ph2206

scalar.ph2206:                                    ; preds = %scalar.ph2206.preheader, %scalar.ph2206
  %.113921520 = phi i64 [ %656, %scalar.ph2206 ], [ %.113921520.ph, %scalar.ph2206.preheader ]
  %630 = mul i64 %.113921520, 3
  %631 = mul nsw i64 %.113921520, %48
  %632 = getelementptr float, ptr %50, i64 %631
  %633 = getelementptr i8, ptr %632, i64 4
  %634 = load float, ptr %633, align 4, !tbaa !9
  %635 = getelementptr float, ptr %452, i64 %630
  %636 = getelementptr i8, ptr %635, i64 -8
  %637 = getelementptr float, ptr %636, i64 %480
  %638 = load float, ptr %637, align 4, !tbaa !9
  %639 = getelementptr i8, ptr %632, i64 8
  %640 = load float, ptr %639, align 4, !tbaa !9
  %641 = getelementptr i8, ptr %635, i64 -4
  %642 = getelementptr float, ptr %641, i64 %480
  %643 = load float, ptr %642, align 4, !tbaa !9
  %644 = call float @llvm.fmuladd.f32(float %640, float %643, float %638)
  %645 = getelementptr i8, ptr %632, i64 12
  %646 = load float, ptr %645, align 4, !tbaa !9
  %gep = getelementptr float, ptr %invariant.gep, i64 %630
  %647 = load float, ptr %gep, align 4, !tbaa !9
  %648 = call float @llvm.fmuladd.f32(float %646, float %647, float %644)
  %649 = fmul float %634, %648
  %650 = fsub float %638, %649
  store float %650, ptr %637, align 4, !tbaa !9
  %651 = load float, ptr %639, align 4, !tbaa !9
  %652 = fneg float %649
  %653 = call float @llvm.fmuladd.f32(float %652, float %651, float %643)
  store float %653, ptr %642, align 4, !tbaa !9
  %654 = load float, ptr %645, align 4, !tbaa !9
  %655 = call float @llvm.fmuladd.f32(float %652, float %654, float %647)
  store float %655, ptr %gep, align 4, !tbaa !9
  %656 = add i64 %.113921520, 1
  %exitcond1666.not = icmp eq i64 %.113921520, %479
  br i1 %exitcond1666.not, label %._crit_edge1523, label %scalar.ph2206, !llvm.loop !27

._crit_edge1523:                                  ; preds = %scalar.ph2206, %middle.block2205, %474
  %657 = add nsw i64 %.013851525, 1
  %.not1456.not = icmp slt i64 %.013851525, %.01374
  %indvar.next2163 = add i64 %indvar2162, 1
  br i1 %.not1456.not, label %474, label %._crit_edge1528, !llvm.loop !28

._crit_edge1528:                                  ; preds = %._crit_edge1523
  store i64 %479, ptr %26, align 8, !tbaa !5
  br label %658

658:                                              ; preds = %._crit_edge1528, %450
  br i1 %289, label %659, label %.loopexit1508

659:                                              ; preds = %658
  %660 = add nsw i64 %406, 1
  %.1484 = call i64 @llvm.smax.i64(i64 %660, i64 %451)
  %.not14581529 = icmp sgt i64 %.1484, %.01374
  br i1 %.not14581529, label %.loopexit1508, label %.lver.check

.lver.check:                                      ; preds = %659
  %661 = mul nsw i64 %281, %48
  %662 = getelementptr float, ptr %50, i64 %661
  %663 = getelementptr i8, ptr %662, i64 4
  %664 = getelementptr float, ptr %44, i64 %660
  %665 = getelementptr i8, ptr %662, i64 8
  %gep1578 = getelementptr float, ptr %invariant.gep1577, i64 %406
  br i1 %ident.check.not, label %.ph, label %.ph.lver.orig

.ph.lver.orig:                                    ; preds = %.lver.check, %.ph.lver.orig
  %.113861530.lver.orig = phi i64 [ %679, %.ph.lver.orig ], [ %.1484, %.lver.check ]
  %666 = load float, ptr %663, align 4, !tbaa !9
  %667 = mul nsw i64 %.113861530.lver.orig, %42
  %668 = getelementptr float, ptr %664, i64 %667
  %669 = load float, ptr %668, align 4, !tbaa !9
  %670 = load float, ptr %665, align 4, !tbaa !9
  %671 = getelementptr float, ptr %gep1578, i64 %667
  %672 = load float, ptr %671, align 4, !tbaa !9
  %673 = call float @llvm.fmuladd.f32(float %670, float %672, float %669)
  %674 = fmul float %666, %673
  %675 = fsub float %669, %674
  store float %675, ptr %668, align 4, !tbaa !9
  %676 = load float, ptr %665, align 4, !tbaa !9
  %677 = fneg float %674
  %678 = call float @llvm.fmuladd.f32(float %677, float %676, float %672)
  store float %678, ptr %671, align 4, !tbaa !9
  %679 = add nsw i64 %.113861530.lver.orig, 1
  %.not1458.not.lver.orig = icmp slt i64 %.113861530.lver.orig, %.01374
  br i1 %.not1458.not.lver.orig, label %.ph.lver.orig, label %.loopexit1508, !llvm.loop !29

.ph:                                              ; preds = %.lver.check
  %680 = mul i64 %280, 12
  %681 = shl i64 %.1484, 2
  %682 = getelementptr i8, ptr %scevgep2219, i64 %680
  %scevgep2220 = getelementptr i8, ptr %682, i64 %681
  %load_initial = load float, ptr %scevgep2220, align 4
  br label %683

683:                                              ; preds = %.ph, %683
  %store_forwarded = phi float [ %load_initial, %.ph ], [ %695, %683 ]
  %.113861530 = phi i64 [ %.1484, %.ph ], [ %696, %683 ]
  %684 = load float, ptr %663, align 4, !tbaa !9
  %685 = mul nuw nsw i64 %.113861530, %42
  %686 = getelementptr float, ptr %664, i64 %685
  %687 = load float, ptr %665, align 4, !tbaa !9
  %688 = getelementptr float, ptr %gep1578, i64 %685
  %689 = load float, ptr %688, align 4, !tbaa !9
  %690 = call float @llvm.fmuladd.f32(float %687, float %689, float %store_forwarded)
  %691 = fmul float %684, %690
  %692 = fsub float %store_forwarded, %691
  store float %692, ptr %686, align 4, !tbaa !9
  %693 = load float, ptr %665, align 4, !tbaa !9
  %694 = fneg float %691
  %695 = call float @llvm.fmuladd.f32(float %694, float %693, float %689)
  store float %695, ptr %688, align 4, !tbaa !9
  %696 = add nsw i64 %.113861530, 1
  %.not1458.not = icmp slt i64 %.113861530, %.01374
  br i1 %.not1458.not, label %683, label %.loopexit1508, !llvm.loop !29

.loopexit1508:                                    ; preds = %.ph.lver.orig, %683, %659, %658
  br i1 %switch, label %697, label %698

697:                                              ; preds = %.loopexit1508
  %.01370. = call i64 @llvm.smax.i64(i64 %451, i64 %.013701657)
  br label %700

698:                                              ; preds = %.loopexit1508
  %699 = load i64, ptr %0, align 8, !tbaa !5
  %.not1459 = icmp eq i64 %699, 0
  %spec.select1501 = select i1 %.not1459, i64 %451, i64 1
  br label %700

700:                                              ; preds = %698, %697
  %.01372 = phi i64 [ %.01370., %697 ], [ %spec.select1501, %698 ]
  br i1 %.not14521514, label %._crit_edge1550, label %.lr.ph1549

.lr.ph1549:                                       ; preds = %700
  %701 = add i64 %.013691580, -3
  %702 = sub i64 %451, %.013701657
  %703 = load i64, ptr %32, align 8
  %704 = call i64 @llvm.smax.i64(i64 %702, i64 1)
  %.not14811542 = icmp sgt i64 %704, %703
  %705 = mul i64 %277, 3
  %706 = add i64 %.013691580, %705
  %707 = mul i64 %277, 12
  %708 = add i64 %260, %707
  %709 = mul i64 %51, %708
  %710 = shl i64 %704, 2
  %711 = getelementptr i8, ptr %scevgep1829, i64 %709
  %scevgep1830 = getelementptr i8, ptr %711, i64 %710
  %712 = mul i64 %280, 12
  %713 = add i64 %260, %712
  %714 = mul i64 %51, %713
  %715 = shl i64 %703, 2
  %716 = getelementptr i8, ptr %17, i64 %714
  %scevgep1831 = getelementptr i8, ptr %716, i64 %715
  %717 = add i64 %261, %707
  %718 = mul i64 %51, %717
  %719 = getelementptr i8, ptr %scevgep1832, i64 %718
  %scevgep1833 = getelementptr i8, ptr %719, i64 %710
  %720 = add i64 %261, %712
  %721 = mul i64 %51, %720
  %722 = getelementptr i8, ptr %17, i64 %721
  %scevgep1834 = getelementptr i8, ptr %722, i64 %715
  %723 = add i64 %262, %707
  %724 = mul i64 %51, %723
  %725 = getelementptr i8, ptr %scevgep1835, i64 %724
  %scevgep1836 = getelementptr i8, ptr %725, i64 %710
  %726 = add i64 %262, %712
  %727 = mul i64 %51, %726
  %728 = getelementptr i8, ptr %17, i64 %727
  %scevgep1837 = getelementptr i8, ptr %728, i64 %715
  %729 = shl i64 %277, 2
  %730 = add i64 %729, -4
  %731 = mul i64 %48, %730
  %scevgep1838 = getelementptr i8, ptr %15, i64 %731
  %732 = shl i64 %280, 2
  %733 = add i64 %732, -4
  %734 = mul i64 %48, %733
  %scevgep1840 = getelementptr i8, ptr %scevgep1839, i64 %734
  %scevgep1842 = getelementptr i8, ptr %scevgep1841, i64 %731
  %scevgep1844 = getelementptr i8, ptr %scevgep1843, i64 %734
  %scevgep1846 = getelementptr i8, ptr %scevgep1845, i64 %731
  %scevgep1848 = getelementptr i8, ptr %scevgep1847, i64 %734
  %735 = add i64 %703, 1
  %736 = sub i64 %735, %704
  %737 = mul i64 %277, 12
  %738 = add i64 %256, %737
  %739 = mul i64 %45, %738
  %740 = add i64 %257, %737
  %741 = mul i64 %45, %740
  %742 = add i64 %258, %737
  %743 = mul i64 %45, %742
  %744 = shl i64 %277, 2
  %745 = add i64 %744, -4
  %746 = mul i64 %48, %745
  %scevgep1962 = getelementptr i8, ptr %15, i64 %746
  %747 = shl i64 %280, 2
  %748 = add i64 %747, -4
  %749 = mul i64 %48, %748
  %scevgep1964 = getelementptr i8, ptr %scevgep1963, i64 %749
  %scevgep1966 = getelementptr i8, ptr %scevgep1965, i64 %746
  %scevgep1968 = getelementptr i8, ptr %scevgep1967, i64 %749
  %scevgep1970 = getelementptr i8, ptr %scevgep1969, i64 %746
  %scevgep1972 = getelementptr i8, ptr %scevgep1971, i64 %749
  %750 = mul i64 %277, 12
  %751 = add i64 %252, %750
  %752 = mul i64 %42, %751
  %753 = shl i64 %.01372, 2
  %754 = add i64 %253, %750
  %755 = mul i64 %42, %754
  %756 = add i64 %254, %750
  %757 = mul i64 %42, %756
  %758 = shl i64 %277, 2
  %759 = add i64 %758, -4
  %760 = mul i64 %48, %759
  %scevgep2067 = getelementptr i8, ptr %15, i64 %760
  %761 = shl i64 %280, 2
  %762 = add i64 %761, -4
  %763 = mul i64 %48, %762
  %scevgep2069 = getelementptr i8, ptr %scevgep2068, i64 %763
  %scevgep2071 = getelementptr i8, ptr %scevgep2070, i64 %760
  %scevgep2073 = getelementptr i8, ptr %scevgep2072, i64 %763
  %scevgep2075 = getelementptr i8, ptr %scevgep2074, i64 %760
  %scevgep2077 = getelementptr i8, ptr %scevgep2076, i64 %763
  %gep2230 = getelementptr i8, ptr %invariant.gep2229, i64 %752
  %764 = getelementptr i8, ptr %gep2230, i64 %753
  %765 = getelementptr i8, ptr %9, i64 %752
  %gep2232 = getelementptr i8, ptr %invariant.gep2231, i64 %755
  %766 = getelementptr i8, ptr %gep2232, i64 %753
  %767 = getelementptr i8, ptr %9, i64 %755
  %gep2234 = getelementptr i8, ptr %invariant.gep2233, i64 %757
  %768 = getelementptr i8, ptr %gep2234, i64 %753
  %769 = getelementptr i8, ptr %9, i64 %757
  %gep2236 = getelementptr i8, ptr %invariant.gep2235, i64 %739
  %770 = getelementptr i8, ptr %13, i64 %739
  %gep2238 = getelementptr i8, ptr %invariant.gep2237, i64 %741
  %771 = getelementptr i8, ptr %13, i64 %741
  %gep2240 = getelementptr i8, ptr %invariant.gep2239, i64 %743
  %772 = getelementptr i8, ptr %13, i64 %743
  %773 = getelementptr float, ptr %44, i64 %.01372
  %min.iters.check1921 = icmp ult i64 %736, 16
  %bound01849 = icmp ult ptr %scevgep1830, %scevgep1834
  %bound11850 = icmp ult ptr %scevgep1833, %scevgep1831
  %found.conflict1851 = and i1 %bound01849, %bound11850
  %bound01853 = icmp ult ptr %scevgep1830, %scevgep1837
  %bound11854 = icmp ult ptr %scevgep1836, %scevgep1831
  %found.conflict1855 = and i1 %bound01853, %bound11854
  %774 = or i1 %found.conflict1855, %stride.check1856
  %conflict.rdx1858 = or i1 %found.conflict1851, %774
  %bound01859 = icmp ult ptr %scevgep1830, %scevgep1840
  %bound11860 = icmp ult ptr %scevgep1838, %scevgep1831
  %found.conflict1861 = and i1 %bound01859, %bound11860
  %775 = or i1 %found.conflict1861, %196
  %conflict.rdx1864 = or i1 %conflict.rdx1858, %775
  %bound01865 = icmp ult ptr %scevgep1830, %scevgep1844
  %bound11866 = icmp ult ptr %scevgep1842, %scevgep1831
  %found.conflict1867 = and i1 %bound01865, %bound11866
  %776 = or i1 %found.conflict1867, %198
  %conflict.rdx1870 = or i1 %conflict.rdx1864, %776
  %bound01871 = icmp ult ptr %scevgep1830, %scevgep1848
  %bound11872 = icmp ult ptr %scevgep1846, %scevgep1831
  %found.conflict1873 = and i1 %bound01871, %bound11872
  %777 = or i1 %found.conflict1873, %200
  %conflict.rdx1876 = or i1 %conflict.rdx1870, %777
  %bound01877 = icmp ult ptr %scevgep1833, %scevgep1837
  %bound11878 = icmp ult ptr %scevgep1836, %scevgep1834
  %found.conflict1879 = and i1 %bound01877, %bound11878
  %conflict.rdx1882 = or i1 %found.conflict1879, %conflict.rdx1876
  %bound01883 = icmp ult ptr %scevgep1833, %scevgep1840
  %bound11884 = icmp ult ptr %scevgep1838, %scevgep1834
  %found.conflict1885 = and i1 %bound01883, %bound11884
  %778 = or i1 %found.conflict1885, %202
  %conflict.rdx1888 = or i1 %conflict.rdx1882, %778
  %bound01889 = icmp ult ptr %scevgep1833, %scevgep1844
  %bound11890 = icmp ult ptr %scevgep1842, %scevgep1834
  %found.conflict1891 = and i1 %bound01889, %bound11890
  %779 = or i1 %found.conflict1891, %204
  %conflict.rdx1894 = or i1 %conflict.rdx1888, %779
  %bound01895 = icmp ult ptr %scevgep1833, %scevgep1848
  %bound11896 = icmp ult ptr %scevgep1846, %scevgep1834
  %found.conflict1897 = and i1 %bound01895, %bound11896
  %780 = or i1 %found.conflict1897, %206
  %conflict.rdx1900 = or i1 %conflict.rdx1894, %780
  %bound01901 = icmp ult ptr %scevgep1836, %scevgep1840
  %bound11902 = icmp ult ptr %scevgep1838, %scevgep1837
  %found.conflict1903 = and i1 %bound01901, %bound11902
  %781 = or i1 %found.conflict1903, %208
  %conflict.rdx1906 = or i1 %conflict.rdx1900, %781
  %bound01907 = icmp ult ptr %scevgep1836, %scevgep1844
  %bound11908 = icmp ult ptr %scevgep1842, %scevgep1837
  %found.conflict1909 = and i1 %bound01907, %bound11908
  %782 = or i1 %found.conflict1909, %210
  %conflict.rdx1912 = or i1 %conflict.rdx1906, %782
  %bound01913 = icmp ult ptr %scevgep1836, %scevgep1848
  %bound11914 = icmp ult ptr %scevgep1846, %scevgep1837
  %found.conflict1915 = and i1 %bound01913, %bound11914
  %783 = or i1 %found.conflict1915, %212
  %conflict.rdx1918 = or i1 %conflict.rdx1912, %783
  %n.vec1924 = and i64 %736, -4
  %ind.end1925 = add i64 %704, %n.vec1924
  %784 = getelementptr float, ptr %53, i64 %704
  %cmp.n1946 = icmp eq i64 %736, %n.vec1924
  br label %785

785:                                              ; preds = %.lr.ph1549, %.loopexit
  %indvar1948 = phi i64 [ 0, %.lr.ph1549 ], [ %indvar.next1949, %.loopexit ]
  %indvars.iv = phi i64 [ %706, %.lr.ph1549 ], [ %indvars.iv.next, %.loopexit ]
  %.213931547 = phi i64 [ %277, %.lr.ph1549 ], [ %956, %.loopexit ]
  %786 = mul i64 %156, %indvar1948
  %scevgep2058 = getelementptr i8, ptr %764, i64 %786
  %scevgep2059 = getelementptr i8, ptr %765, i64 %786
  %scevgep2061 = getelementptr i8, ptr %766, i64 %786
  %scevgep2062 = getelementptr i8, ptr %767, i64 %786
  %scevgep2064 = getelementptr i8, ptr %768, i64 %786
  %scevgep2065 = getelementptr i8, ptr %769, i64 %786
  %787 = mul i64 %146, %indvar1948
  %scevgep1950 = getelementptr i8, ptr %gep2236, i64 %787
  %scevgep1952 = getelementptr i8, ptr %770, i64 %787
  %scevgep1954 = getelementptr i8, ptr %gep2238, i64 %787
  %scevgep1956 = getelementptr i8, ptr %771, i64 %787
  %scevgep1958 = getelementptr i8, ptr %gep2240, i64 %787
  %scevgep1960 = getelementptr i8, ptr %772, i64 %787
  %788 = mul nsw i64 %.213931547, %48
  %789 = getelementptr float, ptr %50, i64 %788
  %790 = getelementptr i8, ptr %789, i64 4
  %791 = load float, ptr %790, align 4, !tbaa !9
  %792 = fcmp une float %791, 0.000000e+00
  br i1 %792, label %793, label %.loopexit

793:                                              ; preds = %785
  %794 = mul i64 %.213931547, 3
  %795 = add i64 %701, %794
  %796 = load i64, ptr %5, align 8, !tbaa !5
  %797 = add i64 %794, %.013691580
  store i64 %797, ptr %27, align 8, !tbaa !5
  %798 = call i64 @llvm.smin.i64(i64 %796, i64 %797)
  %.not14781533 = icmp sgt i64 %.01372, %798
  br i1 %.not14781533, label %._crit_edge1537, label %.lr.ph1536

.lr.ph1536:                                       ; preds = %793
  %799 = add nsw i64 %795, 1
  %800 = mul nsw i64 %799, %42
  %801 = getelementptr i8, ptr %789, i64 8
  %802 = add nsw i64 %795, 2
  %803 = mul nsw i64 %802, %42
  %804 = getelementptr i8, ptr %789, i64 12
  %805 = mul nsw i64 %797, %42
  %smin = call i64 @llvm.smin.i64(i64 %796, i64 %indvars.iv)
  %reass.sub2222 = sub i64 %smin, %.01372
  %806 = add i64 %reass.sub2222, 1
  %min.iters.check2136 = icmp ult i64 %806, 12
  br i1 %min.iters.check2136, label %scalar.ph2135.preheader, label %vector.memcheck2057

vector.memcheck2057:                              ; preds = %.lr.ph1536
  %807 = shl i64 %smin, 2
  %scevgep2060 = getelementptr i8, ptr %scevgep2059, i64 %807
  %scevgep2063 = getelementptr i8, ptr %scevgep2062, i64 %807
  %scevgep2066 = getelementptr i8, ptr %scevgep2065, i64 %807
  %bound02078 = icmp ult ptr %scevgep2058, %scevgep2063
  %bound12079 = icmp ult ptr %scevgep2061, %scevgep2060
  %found.conflict2080 = and i1 %bound02078, %bound12079
  %bound02081 = icmp ult ptr %scevgep2058, %scevgep2066
  %bound12082 = icmp ult ptr %scevgep2064, %scevgep2060
  %found.conflict2083 = and i1 %bound02081, %bound12082
  %conflict.rdx2084 = or i1 %found.conflict2080, %found.conflict2083
  %bound02085 = icmp ult ptr %scevgep2058, %scevgep2069
  %bound12086 = icmp ult ptr %scevgep2067, %scevgep2060
  %found.conflict2087 = and i1 %bound02085, %bound12086
  %808 = or i1 %found.conflict2087, %stride.check2088
  %conflict.rdx2089 = or i1 %conflict.rdx2084, %808
  %bound02090 = icmp ult ptr %scevgep2058, %scevgep2073
  %bound12091 = icmp ult ptr %scevgep2071, %scevgep2060
  %found.conflict2092 = and i1 %bound02090, %bound12091
  %conflict.rdx2094 = or i1 %found.conflict2092, %conflict.rdx2089
  %bound02095 = icmp ult ptr %scevgep2058, %scevgep2077
  %bound12096 = icmp ult ptr %scevgep2075, %scevgep2060
  %found.conflict2097 = and i1 %bound02095, %bound12096
  %conflict.rdx2099 = or i1 %found.conflict2097, %conflict.rdx2094
  %bound02100 = icmp ult ptr %scevgep2061, %scevgep2066
  %bound12101 = icmp ult ptr %scevgep2064, %scevgep2063
  %found.conflict2102 = and i1 %bound02100, %bound12101
  %conflict.rdx2103 = or i1 %conflict.rdx2099, %found.conflict2102
  %bound02104 = icmp ult ptr %scevgep2061, %scevgep2069
  %bound12105 = icmp ult ptr %scevgep2067, %scevgep2063
  %found.conflict2106 = and i1 %bound02104, %bound12105
  %conflict.rdx2108 = or i1 %found.conflict2106, %conflict.rdx2103
  %bound02109 = icmp ult ptr %scevgep2061, %scevgep2073
  %bound12110 = icmp ult ptr %scevgep2071, %scevgep2063
  %found.conflict2111 = and i1 %bound02109, %bound12110
  %conflict.rdx2113 = or i1 %found.conflict2111, %conflict.rdx2108
  %bound02114 = icmp ult ptr %scevgep2061, %scevgep2077
  %bound12115 = icmp ult ptr %scevgep2075, %scevgep2063
  %found.conflict2116 = and i1 %bound02114, %bound12115
  %conflict.rdx2118 = or i1 %found.conflict2116, %conflict.rdx2113
  %bound02119 = icmp ult ptr %scevgep2064, %scevgep2069
  %bound12120 = icmp ult ptr %scevgep2067, %scevgep2066
  %found.conflict2121 = and i1 %bound02119, %bound12120
  %conflict.rdx2123 = or i1 %found.conflict2121, %conflict.rdx2118
  %bound02124 = icmp ult ptr %scevgep2064, %scevgep2073
  %bound12125 = icmp ult ptr %scevgep2071, %scevgep2066
  %found.conflict2126 = and i1 %bound02124, %bound12125
  %809 = or i1 %found.conflict2126, %stride.check2127
  %conflict.rdx2128 = or i1 %conflict.rdx2123, %809
  %bound02129 = icmp ult ptr %scevgep2064, %scevgep2077
  %bound12130 = icmp ult ptr %scevgep2075, %scevgep2066
  %found.conflict2131 = and i1 %bound02129, %bound12130
  %conflict.rdx2133 = or i1 %found.conflict2131, %conflict.rdx2128
  br i1 %conflict.rdx2133, label %scalar.ph2135.preheader, label %vector.ph2137

vector.ph2137:                                    ; preds = %vector.memcheck2057
  %n.vec2139 = and i64 %806, -4
  %ind.end2140 = add i64 %.01372, %n.vec2139
  %810 = load float, ptr %790, align 4, !tbaa !9, !alias.scope !30
  %broadcast.splatinsert2152 = insertelement <4 x float> poison, float %810, i64 0
  %broadcast.splat2153 = shufflevector <4 x float> %broadcast.splatinsert2152, <4 x float> poison, <4 x i32> zeroinitializer
  %811 = load float, ptr %801, align 4, !tbaa !9, !alias.scope !33
  %broadcast.splatinsert2147 = insertelement <4 x float> poison, float %811, i64 0
  %broadcast.splat2148 = shufflevector <4 x float> %broadcast.splatinsert2147, <4 x float> poison, <4 x i32> zeroinitializer
  %812 = load float, ptr %804, align 4, !tbaa !9, !alias.scope !35
  %broadcast.splatinsert2150 = insertelement <4 x float> poison, float %812, i64 0
  %broadcast.splat2151 = shufflevector <4 x float> %broadcast.splatinsert2150, <4 x float> poison, <4 x i32> zeroinitializer
  %813 = load float, ptr %801, align 4, !tbaa !9, !alias.scope !33
  %broadcast.splatinsert2155 = insertelement <4 x float> poison, float %813, i64 0
  %broadcast.splat2156 = shufflevector <4 x float> %broadcast.splatinsert2155, <4 x float> poison, <4 x i32> zeroinitializer
  %814 = load float, ptr %804, align 4, !tbaa !9, !alias.scope !35
  %broadcast.splatinsert2158 = insertelement <4 x float> poison, float %814, i64 0
  %broadcast.splat2159 = shufflevector <4 x float> %broadcast.splatinsert2158, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body2142

vector.body2142:                                  ; preds = %vector.body2142, %vector.ph2137
  %index2143 = phi i64 [ 0, %vector.ph2137 ], [ %index.next2160, %vector.body2142 ]
  %815 = getelementptr float, ptr %773, i64 %index2143
  %816 = getelementptr float, ptr %815, i64 %800
  %wide.load2145 = load <4 x float>, ptr %816, align 4, !tbaa !9, !alias.scope !37, !noalias !39
  %817 = getelementptr float, ptr %815, i64 %803
  %wide.load2146 = load <4 x float>, ptr %817, align 4, !tbaa !9, !alias.scope !42, !noalias !43
  %818 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2148, <4 x float> %wide.load2146, <4 x float> %wide.load2145)
  %819 = getelementptr float, ptr %815, i64 %805
  %wide.load2149 = load <4 x float>, ptr %819, align 4, !tbaa !9, !alias.scope !44, !noalias !45
  %820 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2151, <4 x float> %wide.load2149, <4 x float> %818)
  %821 = fmul <4 x float> %broadcast.splat2153, %820
  %822 = fsub <4 x float> %wide.load2145, %821
  store <4 x float> %822, ptr %816, align 4, !tbaa !9, !alias.scope !37, !noalias !39
  %wide.load2154 = load <4 x float>, ptr %817, align 4, !tbaa !9, !alias.scope !42, !noalias !43
  %823 = fneg <4 x float> %821
  %824 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %823, <4 x float> %broadcast.splat2156, <4 x float> %wide.load2154)
  store <4 x float> %824, ptr %817, align 4, !tbaa !9, !alias.scope !42, !noalias !43
  %wide.load2157 = load <4 x float>, ptr %819, align 4, !tbaa !9, !alias.scope !44, !noalias !45
  %825 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %823, <4 x float> %broadcast.splat2159, <4 x float> %wide.load2157)
  store <4 x float> %825, ptr %819, align 4, !tbaa !9, !alias.scope !44, !noalias !45
  %index.next2160 = add nuw i64 %index2143, 4
  %826 = icmp eq i64 %index.next2160, %n.vec2139
  br i1 %826, label %middle.block2134, label %vector.body2142, !llvm.loop !46

middle.block2134:                                 ; preds = %vector.body2142
  %cmp.n2161 = icmp eq i64 %806, %n.vec2139
  br i1 %cmp.n2161, label %._crit_edge1537, label %scalar.ph2135.preheader

scalar.ph2135.preheader:                          ; preds = %middle.block2134, %vector.memcheck2057, %.lr.ph1536
  %.213871534.ph = phi i64 [ %.01372, %vector.memcheck2057 ], [ %.01372, %.lr.ph1536 ], [ %ind.end2140, %middle.block2134 ]
  br label %scalar.ph2135

scalar.ph2135:                                    ; preds = %scalar.ph2135.preheader, %scalar.ph2135
  %.213871534 = phi i64 [ %848, %scalar.ph2135 ], [ %.213871534.ph, %scalar.ph2135.preheader ]
  %827 = load float, ptr %790, align 4, !tbaa !9
  %828 = getelementptr float, ptr %44, i64 %.213871534
  %829 = getelementptr float, ptr %828, i64 %800
  %830 = load float, ptr %829, align 4, !tbaa !9
  %831 = load float, ptr %801, align 4, !tbaa !9
  %832 = getelementptr float, ptr %828, i64 %803
  %833 = load float, ptr %832, align 4, !tbaa !9
  %834 = call float @llvm.fmuladd.f32(float %831, float %833, float %830)
  %835 = load float, ptr %804, align 4, !tbaa !9
  %836 = getelementptr float, ptr %828, i64 %805
  %837 = load float, ptr %836, align 4, !tbaa !9
  %838 = call float @llvm.fmuladd.f32(float %835, float %837, float %834)
  %839 = fmul float %827, %838
  %840 = fsub float %830, %839
  store float %840, ptr %829, align 4, !tbaa !9
  %841 = load float, ptr %801, align 4, !tbaa !9
  %842 = load float, ptr %832, align 4, !tbaa !9
  %843 = fneg float %839
  %844 = call float @llvm.fmuladd.f32(float %843, float %841, float %842)
  store float %844, ptr %832, align 4, !tbaa !9
  %845 = load float, ptr %804, align 4, !tbaa !9
  %846 = load float, ptr %836, align 4, !tbaa !9
  %847 = call float @llvm.fmuladd.f32(float %843, float %845, float %846)
  store float %847, ptr %836, align 4, !tbaa !9
  %848 = add i64 %.213871534, 1
  %exitcond1667.not = icmp eq i64 %.213871534, %smin
  br i1 %exitcond1667.not, label %._crit_edge1537, label %scalar.ph2135, !llvm.loop !47

._crit_edge1537:                                  ; preds = %scalar.ph2135, %middle.block2134, %793
  br i1 %switch, label %849, label %898

849:                                              ; preds = %._crit_edge1537
  store i64 %703, ptr %27, align 8, !tbaa !5
  br i1 %.not14811542, label %.loopexit, label %.lr.ph1545

.lr.ph1545:                                       ; preds = %849
  %850 = sub nsw i64 %795, %.013701657
  %851 = add nsw i64 %850, 1
  %852 = mul nsw i64 %851, %51
  %853 = getelementptr i8, ptr %789, i64 8
  %854 = add nsw i64 %850, 2
  %855 = mul nsw i64 %854, %51
  %856 = getelementptr i8, ptr %789, i64 12
  %857 = add nsw i64 %850, 3
  %858 = mul nsw i64 %857, %51
  %brmerge = select i1 %min.iters.check1921, i1 true, i1 %conflict.rdx1918
  br i1 %brmerge, label %scalar.ph1920.preheader, label %vector.ph1922

vector.ph1922:                                    ; preds = %.lr.ph1545
  %859 = load float, ptr %790, align 4, !tbaa !9, !alias.scope !48
  %broadcast.splatinsert1937 = insertelement <4 x float> poison, float %859, i64 0
  %broadcast.splat1938 = shufflevector <4 x float> %broadcast.splatinsert1937, <4 x float> poison, <4 x i32> zeroinitializer
  %860 = load float, ptr %853, align 4, !tbaa !9, !alias.scope !51
  %broadcast.splatinsert1932 = insertelement <4 x float> poison, float %860, i64 0
  %broadcast.splat1933 = shufflevector <4 x float> %broadcast.splatinsert1932, <4 x float> poison, <4 x i32> zeroinitializer
  %861 = load float, ptr %856, align 4, !tbaa !9, !alias.scope !53
  %broadcast.splatinsert1935 = insertelement <4 x float> poison, float %861, i64 0
  %broadcast.splat1936 = shufflevector <4 x float> %broadcast.splatinsert1935, <4 x float> poison, <4 x i32> zeroinitializer
  %862 = load float, ptr %853, align 4, !tbaa !9, !alias.scope !51
  %broadcast.splatinsert1940 = insertelement <4 x float> poison, float %862, i64 0
  %broadcast.splat1941 = shufflevector <4 x float> %broadcast.splatinsert1940, <4 x float> poison, <4 x i32> zeroinitializer
  %863 = load float, ptr %856, align 4, !tbaa !9, !alias.scope !53
  %broadcast.splatinsert1943 = insertelement <4 x float> poison, float %863, i64 0
  %broadcast.splat1944 = shufflevector <4 x float> %broadcast.splatinsert1943, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1927

vector.body1927:                                  ; preds = %vector.body1927, %vector.ph1922
  %index1928 = phi i64 [ 0, %vector.ph1922 ], [ %index.next1945, %vector.body1927 ]
  %864 = getelementptr float, ptr %784, i64 %index1928
  %865 = getelementptr float, ptr %864, i64 %852
  %wide.load1930 = load <4 x float>, ptr %865, align 4, !tbaa !9, !alias.scope !55, !noalias !57
  %866 = getelementptr float, ptr %864, i64 %855
  %wide.load1931 = load <4 x float>, ptr %866, align 4, !tbaa !9, !alias.scope !60, !noalias !61
  %867 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1933, <4 x float> %wide.load1931, <4 x float> %wide.load1930)
  %868 = getelementptr float, ptr %864, i64 %858
  %wide.load1934 = load <4 x float>, ptr %868, align 4, !tbaa !9, !alias.scope !62, !noalias !63
  %869 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1936, <4 x float> %wide.load1934, <4 x float> %867)
  %870 = fmul <4 x float> %broadcast.splat1938, %869
  %871 = fsub <4 x float> %wide.load1930, %870
  store <4 x float> %871, ptr %865, align 4, !tbaa !9, !alias.scope !55, !noalias !57
  %wide.load1939 = load <4 x float>, ptr %866, align 4, !tbaa !9, !alias.scope !60, !noalias !61
  %872 = fneg <4 x float> %870
  %873 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %872, <4 x float> %broadcast.splat1941, <4 x float> %wide.load1939)
  store <4 x float> %873, ptr %866, align 4, !tbaa !9, !alias.scope !60, !noalias !61
  %wide.load1942 = load <4 x float>, ptr %868, align 4, !tbaa !9, !alias.scope !62, !noalias !63
  %874 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %872, <4 x float> %broadcast.splat1944, <4 x float> %wide.load1942)
  store <4 x float> %874, ptr %868, align 4, !tbaa !9, !alias.scope !62, !noalias !63
  %index.next1945 = add nuw i64 %index1928, 4
  %875 = icmp eq i64 %index.next1945, %n.vec1924
  br i1 %875, label %middle.block1919, label %vector.body1927, !llvm.loop !64

middle.block1919:                                 ; preds = %vector.body1927
  br i1 %cmp.n1946, label %.loopexit, label %scalar.ph1920.preheader

scalar.ph1920.preheader:                          ; preds = %.lr.ph1545, %middle.block1919
  %.313881543.ph = phi i64 [ %704, %.lr.ph1545 ], [ %ind.end1925, %middle.block1919 ]
  br label %scalar.ph1920

scalar.ph1920:                                    ; preds = %scalar.ph1920.preheader, %scalar.ph1920
  %.313881543 = phi i64 [ %897, %scalar.ph1920 ], [ %.313881543.ph, %scalar.ph1920.preheader ]
  %876 = load float, ptr %790, align 4, !tbaa !9
  %877 = getelementptr float, ptr %53, i64 %.313881543
  %878 = getelementptr float, ptr %877, i64 %852
  %879 = load float, ptr %878, align 4, !tbaa !9
  %880 = load float, ptr %853, align 4, !tbaa !9
  %881 = getelementptr float, ptr %877, i64 %855
  %882 = load float, ptr %881, align 4, !tbaa !9
  %883 = call float @llvm.fmuladd.f32(float %880, float %882, float %879)
  %884 = load float, ptr %856, align 4, !tbaa !9
  %885 = getelementptr float, ptr %877, i64 %858
  %886 = load float, ptr %885, align 4, !tbaa !9
  %887 = call float @llvm.fmuladd.f32(float %884, float %886, float %883)
  %888 = fmul float %876, %887
  %889 = fsub float %879, %888
  store float %889, ptr %878, align 4, !tbaa !9
  %890 = load float, ptr %853, align 4, !tbaa !9
  %891 = load float, ptr %881, align 4, !tbaa !9
  %892 = fneg float %888
  %893 = call float @llvm.fmuladd.f32(float %892, float %890, float %891)
  store float %893, ptr %881, align 4, !tbaa !9
  %894 = load float, ptr %856, align 4, !tbaa !9
  %895 = load float, ptr %885, align 4, !tbaa !9
  %896 = call float @llvm.fmuladd.f32(float %892, float %894, float %895)
  store float %896, ptr %885, align 4, !tbaa !9
  %897 = add nuw nsw i64 %.313881543, 1
  %.not1481.not = icmp slt i64 %.313881543, %703
  br i1 %.not1481.not, label %scalar.ph1920, label %.loopexit, !llvm.loop !65

898:                                              ; preds = %._crit_edge1537
  %899 = load i64, ptr %1, align 8, !tbaa !5
  %.not1479 = icmp eq i64 %899, 0
  br i1 %.not1479, label %.loopexit, label %900

900:                                              ; preds = %898
  %901 = load i64, ptr %12, align 8, !tbaa !5
  store i64 %901, ptr %27, align 8, !tbaa !5
  %902 = load i64, ptr %11, align 8, !tbaa !5
  %.not14801538 = icmp sgt i64 %902, %901
  br i1 %.not14801538, label %.loopexit, label %.lr.ph1541

.lr.ph1541:                                       ; preds = %900
  %903 = add nsw i64 %795, 1
  %904 = mul nsw i64 %903, %45
  %905 = getelementptr i8, ptr %789, i64 8
  %906 = add nsw i64 %795, 2
  %907 = mul nsw i64 %906, %45
  %908 = getelementptr i8, ptr %789, i64 12
  %909 = mul nsw i64 %797, %45
  %910 = add i64 %901, 1
  %911 = sub i64 %910, %902
  %min.iters.check2031 = icmp ult i64 %911, 12
  br i1 %min.iters.check2031, label %scalar.ph2030.preheader, label %vector.memcheck1947

vector.memcheck1947:                              ; preds = %.lr.ph1541
  %912 = shl i64 %902, 2
  %scevgep1951 = getelementptr i8, ptr %scevgep1950, i64 %912
  %913 = shl i64 %901, 2
  %scevgep1953 = getelementptr i8, ptr %scevgep1952, i64 %913
  %scevgep1955 = getelementptr i8, ptr %scevgep1954, i64 %912
  %scevgep1957 = getelementptr i8, ptr %scevgep1956, i64 %913
  %scevgep1959 = getelementptr i8, ptr %scevgep1958, i64 %912
  %scevgep1961 = getelementptr i8, ptr %scevgep1960, i64 %913
  %bound01973 = icmp ult ptr %scevgep1951, %scevgep1957
  %bound11974 = icmp ult ptr %scevgep1955, %scevgep1953
  %found.conflict1975 = and i1 %bound01973, %bound11974
  %bound01976 = icmp ult ptr %scevgep1951, %scevgep1961
  %bound11977 = icmp ult ptr %scevgep1959, %scevgep1953
  %found.conflict1978 = and i1 %bound01976, %bound11977
  %conflict.rdx1979 = or i1 %found.conflict1975, %found.conflict1978
  %bound01980 = icmp ult ptr %scevgep1951, %scevgep1964
  %bound11981 = icmp ult ptr %scevgep1962, %scevgep1953
  %found.conflict1982 = and i1 %bound01980, %bound11981
  %914 = or i1 %found.conflict1982, %stride.check1983
  %conflict.rdx1984 = or i1 %conflict.rdx1979, %914
  %bound01985 = icmp ult ptr %scevgep1951, %scevgep1968
  %bound11986 = icmp ult ptr %scevgep1966, %scevgep1953
  %found.conflict1987 = and i1 %bound01985, %bound11986
  %conflict.rdx1989 = or i1 %found.conflict1987, %conflict.rdx1984
  %bound01990 = icmp ult ptr %scevgep1951, %scevgep1972
  %bound11991 = icmp ult ptr %scevgep1970, %scevgep1953
  %found.conflict1992 = and i1 %bound01990, %bound11991
  %conflict.rdx1994 = or i1 %found.conflict1992, %conflict.rdx1989
  %bound01995 = icmp ult ptr %scevgep1955, %scevgep1961
  %bound11996 = icmp ult ptr %scevgep1959, %scevgep1957
  %found.conflict1997 = and i1 %bound01995, %bound11996
  %conflict.rdx1998 = or i1 %conflict.rdx1994, %found.conflict1997
  %bound01999 = icmp ult ptr %scevgep1955, %scevgep1964
  %bound12000 = icmp ult ptr %scevgep1962, %scevgep1957
  %found.conflict2001 = and i1 %bound01999, %bound12000
  %conflict.rdx2003 = or i1 %found.conflict2001, %conflict.rdx1998
  %bound02004 = icmp ult ptr %scevgep1955, %scevgep1968
  %bound12005 = icmp ult ptr %scevgep1966, %scevgep1957
  %found.conflict2006 = and i1 %bound02004, %bound12005
  %conflict.rdx2008 = or i1 %found.conflict2006, %conflict.rdx2003
  %bound02009 = icmp ult ptr %scevgep1955, %scevgep1972
  %bound12010 = icmp ult ptr %scevgep1970, %scevgep1957
  %found.conflict2011 = and i1 %bound02009, %bound12010
  %conflict.rdx2013 = or i1 %found.conflict2011, %conflict.rdx2008
  %bound02014 = icmp ult ptr %scevgep1959, %scevgep1964
  %bound12015 = icmp ult ptr %scevgep1962, %scevgep1961
  %found.conflict2016 = and i1 %bound02014, %bound12015
  %conflict.rdx2018 = or i1 %found.conflict2016, %conflict.rdx2013
  %bound02019 = icmp ult ptr %scevgep1959, %scevgep1968
  %bound12020 = icmp ult ptr %scevgep1966, %scevgep1961
  %found.conflict2021 = and i1 %bound02019, %bound12020
  %915 = or i1 %found.conflict2021, %stride.check2022
  %conflict.rdx2023 = or i1 %conflict.rdx2018, %915
  %bound02024 = icmp ult ptr %scevgep1959, %scevgep1972
  %bound12025 = icmp ult ptr %scevgep1970, %scevgep1961
  %found.conflict2026 = and i1 %bound02024, %bound12025
  %conflict.rdx2028 = or i1 %found.conflict2026, %conflict.rdx2023
  br i1 %conflict.rdx2028, label %scalar.ph2030.preheader, label %vector.ph2032

vector.ph2032:                                    ; preds = %vector.memcheck1947
  %n.vec2034 = and i64 %911, -4
  %ind.end2035 = add i64 %902, %n.vec2034
  %916 = load float, ptr %790, align 4, !tbaa !9, !alias.scope !66
  %broadcast.splatinsert2047 = insertelement <4 x float> poison, float %916, i64 0
  %broadcast.splat2048 = shufflevector <4 x float> %broadcast.splatinsert2047, <4 x float> poison, <4 x i32> zeroinitializer
  %917 = getelementptr float, ptr %47, i64 %902
  %918 = load float, ptr %905, align 4, !tbaa !9, !alias.scope !69
  %broadcast.splatinsert2042 = insertelement <4 x float> poison, float %918, i64 0
  %broadcast.splat2043 = shufflevector <4 x float> %broadcast.splatinsert2042, <4 x float> poison, <4 x i32> zeroinitializer
  %919 = load float, ptr %908, align 4, !tbaa !9, !alias.scope !71
  %broadcast.splatinsert2045 = insertelement <4 x float> poison, float %919, i64 0
  %broadcast.splat2046 = shufflevector <4 x float> %broadcast.splatinsert2045, <4 x float> poison, <4 x i32> zeroinitializer
  %920 = load float, ptr %905, align 4, !tbaa !9, !alias.scope !69
  %broadcast.splatinsert2050 = insertelement <4 x float> poison, float %920, i64 0
  %broadcast.splat2051 = shufflevector <4 x float> %broadcast.splatinsert2050, <4 x float> poison, <4 x i32> zeroinitializer
  %921 = load float, ptr %908, align 4, !tbaa !9, !alias.scope !71
  %broadcast.splatinsert2053 = insertelement <4 x float> poison, float %921, i64 0
  %broadcast.splat2054 = shufflevector <4 x float> %broadcast.splatinsert2053, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body2037

vector.body2037:                                  ; preds = %vector.body2037, %vector.ph2032
  %index2038 = phi i64 [ 0, %vector.ph2032 ], [ %index.next2055, %vector.body2037 ]
  %922 = getelementptr float, ptr %917, i64 %index2038
  %923 = getelementptr float, ptr %922, i64 %904
  %wide.load2040 = load <4 x float>, ptr %923, align 4, !tbaa !9, !alias.scope !73, !noalias !75
  %924 = getelementptr float, ptr %922, i64 %907
  %wide.load2041 = load <4 x float>, ptr %924, align 4, !tbaa !9, !alias.scope !78, !noalias !79
  %925 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2043, <4 x float> %wide.load2041, <4 x float> %wide.load2040)
  %926 = getelementptr float, ptr %922, i64 %909
  %wide.load2044 = load <4 x float>, ptr %926, align 4, !tbaa !9, !alias.scope !80, !noalias !81
  %927 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2046, <4 x float> %wide.load2044, <4 x float> %925)
  %928 = fmul <4 x float> %broadcast.splat2048, %927
  %929 = fsub <4 x float> %wide.load2040, %928
  store <4 x float> %929, ptr %923, align 4, !tbaa !9, !alias.scope !73, !noalias !75
  %wide.load2049 = load <4 x float>, ptr %924, align 4, !tbaa !9, !alias.scope !78, !noalias !79
  %930 = fneg <4 x float> %928
  %931 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %930, <4 x float> %broadcast.splat2051, <4 x float> %wide.load2049)
  store <4 x float> %931, ptr %924, align 4, !tbaa !9, !alias.scope !78, !noalias !79
  %wide.load2052 = load <4 x float>, ptr %926, align 4, !tbaa !9, !alias.scope !80, !noalias !81
  %932 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %930, <4 x float> %broadcast.splat2054, <4 x float> %wide.load2052)
  store <4 x float> %932, ptr %926, align 4, !tbaa !9, !alias.scope !80, !noalias !81
  %index.next2055 = add nuw i64 %index2038, 4
  %933 = icmp eq i64 %index.next2055, %n.vec2034
  br i1 %933, label %middle.block2029, label %vector.body2037, !llvm.loop !82

middle.block2029:                                 ; preds = %vector.body2037
  %cmp.n2056 = icmp eq i64 %911, %n.vec2034
  br i1 %cmp.n2056, label %.loopexit, label %scalar.ph2030.preheader

scalar.ph2030.preheader:                          ; preds = %middle.block2029, %vector.memcheck1947, %.lr.ph1541
  %.413891539.ph = phi i64 [ %902, %vector.memcheck1947 ], [ %902, %.lr.ph1541 ], [ %ind.end2035, %middle.block2029 ]
  br label %scalar.ph2030

scalar.ph2030:                                    ; preds = %scalar.ph2030.preheader, %scalar.ph2030
  %.413891539 = phi i64 [ %955, %scalar.ph2030 ], [ %.413891539.ph, %scalar.ph2030.preheader ]
  %934 = load float, ptr %790, align 4, !tbaa !9
  %935 = getelementptr float, ptr %47, i64 %.413891539
  %936 = getelementptr float, ptr %935, i64 %904
  %937 = load float, ptr %936, align 4, !tbaa !9
  %938 = load float, ptr %905, align 4, !tbaa !9
  %939 = getelementptr float, ptr %935, i64 %907
  %940 = load float, ptr %939, align 4, !tbaa !9
  %941 = call float @llvm.fmuladd.f32(float %938, float %940, float %937)
  %942 = load float, ptr %908, align 4, !tbaa !9
  %943 = getelementptr float, ptr %935, i64 %909
  %944 = load float, ptr %943, align 4, !tbaa !9
  %945 = call float @llvm.fmuladd.f32(float %942, float %944, float %941)
  %946 = fmul float %934, %945
  %947 = fsub float %937, %946
  store float %947, ptr %936, align 4, !tbaa !9
  %948 = load float, ptr %905, align 4, !tbaa !9
  %949 = load float, ptr %939, align 4, !tbaa !9
  %950 = fneg float %946
  %951 = call float @llvm.fmuladd.f32(float %950, float %948, float %949)
  store float %951, ptr %939, align 4, !tbaa !9
  %952 = load float, ptr %908, align 4, !tbaa !9
  %953 = load float, ptr %943, align 4, !tbaa !9
  %954 = call float @llvm.fmuladd.f32(float %950, float %952, float %953)
  store float %954, ptr %943, align 4, !tbaa !9
  %955 = add i64 %.413891539, 1
  %exitcond1668.not = icmp eq i64 %.413891539, %901
  br i1 %exitcond1668.not, label %.loopexit, label %scalar.ph2030, !llvm.loop !83

.loopexit:                                        ; preds = %scalar.ph2030, %scalar.ph1920, %middle.block2029, %middle.block1919, %900, %849, %785, %898
  %956 = add i64 %.213931547, 1
  %indvars.iv.next = add i64 %indvars.iv, 3
  %exitcond1669.not = icmp eq i64 %.213931547, %280
  %indvar.next1949 = add i64 %indvar1948, 1
  br i1 %exitcond1669.not, label %._crit_edge1550, label %785, !llvm.loop !84

._crit_edge1550:                                  ; preds = %.loopexit, %700
  br i1 %289, label %957, label %._crit_edge1550..loopexit1506_crit_edge

._crit_edge1550..loopexit1506_crit_edge:          ; preds = %._crit_edge1550
  %.pre1679 = load i64, ptr %5, align 8, !tbaa !5
  br label %.loopexit1506

957:                                              ; preds = %._crit_edge1550
  %958 = mul nsw i64 %281, %48
  %959 = getelementptr float, ptr %50, i64 %958
  %960 = getelementptr i8, ptr %959, i64 4
  %961 = load float, ptr %960, align 4, !tbaa !9
  %962 = fcmp une float %961, 0.000000e+00
  %.pre1680 = load i64, ptr %5, align 8, !tbaa !5
  br i1 %962, label %963, label %.loopexit1506

963:                                              ; preds = %957
  store i64 %.pre1680, ptr %27, align 8, !tbaa !5
  %964 = add nsw i64 %406, 3
  %965 = call i64 @llvm.smin.i64(i64 %.pre1680, i64 %964)
  store i64 %965, ptr %26, align 8, !tbaa !5
  %.not14631551 = icmp sgt i64 %.01372, %965
  br i1 %.not14631551, label %._crit_edge1555, label %.lr.ph1554

.lr.ph1554:                                       ; preds = %963
  %966 = add nsw i64 %406, 1
  %967 = mul nsw i64 %966, %42
  %968 = getelementptr i8, ptr %959, i64 8
  %969 = add nsw i64 %406, 2
  %970 = mul nsw i64 %969, %42
  %971 = add i64 %indvars.iv1672, %405
  %smin1674 = call i64 @llvm.smin.i64(i64 %.pre1680, i64 %971)
  %972 = add i64 %smin1674, 1
  %973 = sub i64 %972, %.01372
  %min.iters.check1808 = icmp ult i64 %973, 8
  br i1 %min.iters.check1808, label %scalar.ph1807.preheader, label %vector.memcheck1778

vector.memcheck1778:                              ; preds = %.lr.ph1554
  %974 = mul i64 %280, 12
  %975 = add i64 %264, %974
  %976 = mul i64 %42, %975
  %977 = shl i64 %.01372, 2
  %978 = getelementptr i8, ptr %scevgep1779, i64 %976
  %scevgep1780 = getelementptr i8, ptr %978, i64 %977
  %979 = shl i64 %smin1674, 2
  %980 = getelementptr i8, ptr %9, i64 %976
  %scevgep1781 = getelementptr i8, ptr %980, i64 %979
  %981 = add i64 %265, %974
  %982 = mul i64 %42, %981
  %983 = getelementptr i8, ptr %scevgep1782, i64 %982
  %scevgep1783 = getelementptr i8, ptr %983, i64 %977
  %984 = getelementptr i8, ptr %9, i64 %982
  %scevgep1784 = getelementptr i8, ptr %984, i64 %979
  %985 = mul i64 %139, %280
  %scevgep1786 = getelementptr i8, ptr %scevgep1785, i64 %985
  %bound01787 = icmp ult ptr %scevgep1780, %scevgep1784
  %bound11788 = icmp ult ptr %scevgep1783, %scevgep1781
  %found.conflict1789 = and i1 %bound01787, %bound11788
  %bound01790 = icmp ult ptr %scevgep1780, %968
  %bound11791 = icmp ult ptr %960, %scevgep1781
  %found.conflict1792 = and i1 %bound01790, %bound11791
  %conflict.rdx1793 = or i1 %found.conflict1789, %found.conflict1792
  %bound01794 = icmp ult ptr %scevgep1780, %scevgep1786
  %bound11795 = icmp ult ptr %968, %scevgep1781
  %found.conflict1796 = and i1 %bound01794, %bound11795
  %conflict.rdx1797 = or i1 %conflict.rdx1793, %found.conflict1796
  %bound01798 = icmp ult ptr %scevgep1783, %968
  %bound11799 = icmp ult ptr %960, %scevgep1784
  %found.conflict1800 = and i1 %bound01798, %bound11799
  %conflict.rdx1801 = or i1 %conflict.rdx1797, %found.conflict1800
  %bound01802 = icmp ult ptr %scevgep1783, %scevgep1786
  %bound11803 = icmp ult ptr %968, %scevgep1784
  %found.conflict1804 = and i1 %bound01802, %bound11803
  %conflict.rdx1805 = or i1 %conflict.rdx1801, %found.conflict1804
  br i1 %conflict.rdx1805, label %scalar.ph1807.preheader, label %vector.ph1809

vector.ph1809:                                    ; preds = %vector.memcheck1778
  %n.vec1811 = and i64 %973, -4
  %ind.end1812 = add i64 %.01372, %n.vec1811
  %986 = load float, ptr %960, align 4, !tbaa !9, !alias.scope !85
  %broadcast.splatinsert1821 = insertelement <4 x float> poison, float %986, i64 0
  %broadcast.splat1822 = shufflevector <4 x float> %broadcast.splatinsert1821, <4 x float> poison, <4 x i32> zeroinitializer
  %987 = getelementptr float, ptr %44, i64 %.01372
  %988 = load float, ptr %968, align 4, !tbaa !9, !alias.scope !88
  %broadcast.splatinsert1819 = insertelement <4 x float> poison, float %988, i64 0
  %broadcast.splat1820 = shufflevector <4 x float> %broadcast.splatinsert1819, <4 x float> poison, <4 x i32> zeroinitializer
  %989 = load float, ptr %968, align 4, !tbaa !9, !alias.scope !88
  %broadcast.splatinsert1824 = insertelement <4 x float> poison, float %989, i64 0
  %broadcast.splat1825 = shufflevector <4 x float> %broadcast.splatinsert1824, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1814

vector.body1814:                                  ; preds = %vector.body1814, %vector.ph1809
  %index1815 = phi i64 [ 0, %vector.ph1809 ], [ %index.next1826, %vector.body1814 ]
  %990 = getelementptr float, ptr %987, i64 %index1815
  %991 = getelementptr float, ptr %990, i64 %967
  %wide.load1817 = load <4 x float>, ptr %991, align 4, !tbaa !9, !alias.scope !90, !noalias !92
  %992 = getelementptr float, ptr %990, i64 %970
  %wide.load1818 = load <4 x float>, ptr %992, align 4, !tbaa !9, !alias.scope !94, !noalias !95
  %993 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1820, <4 x float> %wide.load1818, <4 x float> %wide.load1817)
  %994 = fmul <4 x float> %broadcast.splat1822, %993
  %995 = fsub <4 x float> %wide.load1817, %994
  store <4 x float> %995, ptr %991, align 4, !tbaa !9, !alias.scope !90, !noalias !92
  %wide.load1823 = load <4 x float>, ptr %992, align 4, !tbaa !9, !alias.scope !94, !noalias !95
  %996 = fneg <4 x float> %994
  %997 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %996, <4 x float> %broadcast.splat1825, <4 x float> %wide.load1823)
  store <4 x float> %997, ptr %992, align 4, !tbaa !9, !alias.scope !94, !noalias !95
  %index.next1826 = add nuw i64 %index1815, 4
  %998 = icmp eq i64 %index.next1826, %n.vec1811
  br i1 %998, label %middle.block1806, label %vector.body1814, !llvm.loop !96

middle.block1806:                                 ; preds = %vector.body1814
  %cmp.n1827 = icmp eq i64 %973, %n.vec1811
  br i1 %cmp.n1827, label %._crit_edge1555, label %scalar.ph1807.preheader

scalar.ph1807.preheader:                          ; preds = %middle.block1806, %vector.memcheck1778, %.lr.ph1554
  %.513901552.ph = phi i64 [ %.01372, %vector.memcheck1778 ], [ %.01372, %.lr.ph1554 ], [ %ind.end1812, %middle.block1806 ]
  br label %scalar.ph1807

scalar.ph1807:                                    ; preds = %scalar.ph1807.preheader, %scalar.ph1807
  %.513901552 = phi i64 [ %1013, %scalar.ph1807 ], [ %.513901552.ph, %scalar.ph1807.preheader ]
  %999 = load float, ptr %960, align 4, !tbaa !9
  %1000 = getelementptr float, ptr %44, i64 %.513901552
  %1001 = getelementptr float, ptr %1000, i64 %967
  %1002 = load float, ptr %1001, align 4, !tbaa !9
  %1003 = load float, ptr %968, align 4, !tbaa !9
  %1004 = getelementptr float, ptr %1000, i64 %970
  %1005 = load float, ptr %1004, align 4, !tbaa !9
  %1006 = call float @llvm.fmuladd.f32(float %1003, float %1005, float %1002)
  %1007 = fmul float %999, %1006
  %1008 = fsub float %1002, %1007
  store float %1008, ptr %1001, align 4, !tbaa !9
  %1009 = load float, ptr %968, align 4, !tbaa !9
  %1010 = load float, ptr %1004, align 4, !tbaa !9
  %1011 = fneg float %1007
  %1012 = call float @llvm.fmuladd.f32(float %1011, float %1009, float %1010)
  store float %1012, ptr %1004, align 4, !tbaa !9
  %1013 = add i64 %.513901552, 1
  %exitcond1675.not = icmp eq i64 %.513901552, %smin1674
  br i1 %exitcond1675.not, label %._crit_edge1555, label %scalar.ph1807, !llvm.loop !97

._crit_edge1555:                                  ; preds = %scalar.ph1807, %middle.block1806, %963
  br i1 %switch, label %1014, label %1066

1014:                                             ; preds = %._crit_edge1555
  %1015 = sub nsw i64 %451, %.013701657
  store i64 %1015, ptr %27, align 8, !tbaa !5
  %1016 = load i64, ptr %32, align 8, !tbaa !5
  %1017 = call i64 @llvm.smax.i64(i64 %1015, i64 1)
  %.not14661560 = icmp sgt i64 %1017, %1016
  br i1 %.not14661560, label %.loopexit1506, label %.lr.ph1563

.lr.ph1563:                                       ; preds = %1014
  %1018 = sub nsw i64 %406, %.013701657
  %1019 = add nsw i64 %1018, 1
  %1020 = mul nsw i64 %1019, %51
  %1021 = getelementptr i8, ptr %959, i64 8
  %1022 = add nsw i64 %1018, 2
  %1023 = mul nsw i64 %1022, %51
  %1024 = add i64 %1016, 1
  %1025 = sub i64 %1024, %1017
  %min.iters.check = icmp ult i64 %1025, 8
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph1563
  %1026 = mul i64 %280, 12
  %1027 = add i64 %269, %1026
  %1028 = mul i64 %51, %1027
  %1029 = shl i64 %1017, 2
  %1030 = getelementptr i8, ptr %scevgep, i64 %1028
  %scevgep1698 = getelementptr i8, ptr %1030, i64 %1029
  %1031 = shl i64 %1016, 2
  %1032 = getelementptr i8, ptr %17, i64 %1028
  %scevgep1699 = getelementptr i8, ptr %1032, i64 %1031
  %1033 = add i64 %270, %1026
  %1034 = mul i64 %51, %1033
  %1035 = getelementptr i8, ptr %scevgep1700, i64 %1034
  %scevgep1701 = getelementptr i8, ptr %1035, i64 %1029
  %1036 = getelementptr i8, ptr %17, i64 %1034
  %scevgep1702 = getelementptr i8, ptr %1036, i64 %1031
  %1037 = mul i64 %123, %280
  %scevgep1704 = getelementptr i8, ptr %scevgep1703, i64 %1037
  %bound0 = icmp ult ptr %scevgep1698, %scevgep1702
  %bound1 = icmp ult ptr %scevgep1701, %scevgep1699
  %found.conflict = and i1 %bound0, %bound1
  %bound01705 = icmp ult ptr %scevgep1698, %1021
  %bound11706 = icmp ult ptr %960, %scevgep1699
  %found.conflict1707 = and i1 %bound01705, %bound11706
  %conflict.rdx = or i1 %found.conflict, %found.conflict1707
  %bound01708 = icmp ult ptr %scevgep1698, %scevgep1704
  %bound11709 = icmp ult ptr %1021, %scevgep1699
  %found.conflict1710 = and i1 %bound01708, %bound11709
  %conflict.rdx1711 = or i1 %conflict.rdx, %found.conflict1710
  %bound01712 = icmp ult ptr %scevgep1701, %1021
  %bound11713 = icmp ult ptr %960, %scevgep1702
  %found.conflict1714 = and i1 %bound01712, %bound11713
  %conflict.rdx1715 = or i1 %conflict.rdx1711, %found.conflict1714
  %bound01716 = icmp ult ptr %scevgep1701, %scevgep1704
  %bound11717 = icmp ult ptr %1021, %scevgep1702
  %found.conflict1718 = and i1 %bound01716, %bound11717
  %conflict.rdx1719 = or i1 %conflict.rdx1715, %found.conflict1718
  br i1 %conflict.rdx1719, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %1025, -4
  %ind.end = add i64 %1017, %n.vec
  %1038 = load float, ptr %960, align 4, !tbaa !9, !alias.scope !98
  %broadcast.splatinsert1721 = insertelement <4 x float> poison, float %1038, i64 0
  %broadcast.splat1722 = shufflevector <4 x float> %broadcast.splatinsert1721, <4 x float> poison, <4 x i32> zeroinitializer
  %1039 = getelementptr float, ptr %53, i64 %1017
  %1040 = load float, ptr %1021, align 4, !tbaa !9, !alias.scope !101
  %broadcast.splatinsert = insertelement <4 x float> poison, float %1040, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %1041 = load float, ptr %1021, align 4, !tbaa !9, !alias.scope !101
  %broadcast.splatinsert1724 = insertelement <4 x float> poison, float %1041, i64 0
  %broadcast.splat1725 = shufflevector <4 x float> %broadcast.splatinsert1724, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %1042 = getelementptr float, ptr %1039, i64 %index
  %1043 = getelementptr float, ptr %1042, i64 %1020
  %wide.load = load <4 x float>, ptr %1043, align 4, !tbaa !9, !alias.scope !103, !noalias !105
  %1044 = getelementptr float, ptr %1042, i64 %1023
  %wide.load1720 = load <4 x float>, ptr %1044, align 4, !tbaa !9, !alias.scope !107, !noalias !108
  %1045 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat, <4 x float> %wide.load1720, <4 x float> %wide.load)
  %1046 = fmul <4 x float> %broadcast.splat1722, %1045
  %1047 = fsub <4 x float> %wide.load, %1046
  store <4 x float> %1047, ptr %1043, align 4, !tbaa !9, !alias.scope !103, !noalias !105
  %wide.load1723 = load <4 x float>, ptr %1044, align 4, !tbaa !9, !alias.scope !107, !noalias !108
  %1048 = fneg <4 x float> %1046
  %1049 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %1048, <4 x float> %broadcast.splat1725, <4 x float> %wide.load1723)
  store <4 x float> %1049, ptr %1044, align 4, !tbaa !9, !alias.scope !107, !noalias !108
  %index.next = add nuw i64 %index, 4
  %1050 = icmp eq i64 %index.next, %n.vec
  br i1 %1050, label %middle.block, label %vector.body, !llvm.loop !109

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %1025, %n.vec
  br i1 %cmp.n, label %.loopexit1506, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph1563
  %.61561.ph = phi i64 [ %1017, %vector.memcheck ], [ %1017, %.lr.ph1563 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.61561 = phi i64 [ %1065, %scalar.ph ], [ %.61561.ph, %scalar.ph.preheader ]
  %1051 = load float, ptr %960, align 4, !tbaa !9
  %1052 = getelementptr float, ptr %53, i64 %.61561
  %1053 = getelementptr float, ptr %1052, i64 %1020
  %1054 = load float, ptr %1053, align 4, !tbaa !9
  %1055 = load float, ptr %1021, align 4, !tbaa !9
  %1056 = getelementptr float, ptr %1052, i64 %1023
  %1057 = load float, ptr %1056, align 4, !tbaa !9
  %1058 = call float @llvm.fmuladd.f32(float %1055, float %1057, float %1054)
  %1059 = fmul float %1051, %1058
  %1060 = fsub float %1054, %1059
  store float %1060, ptr %1053, align 4, !tbaa !9
  %1061 = load float, ptr %1021, align 4, !tbaa !9
  %1062 = load float, ptr %1056, align 4, !tbaa !9
  %1063 = fneg float %1059
  %1064 = call float @llvm.fmuladd.f32(float %1063, float %1061, float %1062)
  store float %1064, ptr %1056, align 4, !tbaa !9
  %1065 = add nuw nsw i64 %.61561, 1
  %.not1466.not = icmp slt i64 %.61561, %1016
  br i1 %.not1466.not, label %scalar.ph, label %.loopexit1506, !llvm.loop !110

1066:                                             ; preds = %._crit_edge1555
  %1067 = load i64, ptr %1, align 8, !tbaa !5
  %.not1464 = icmp eq i64 %1067, 0
  br i1 %.not1464, label %.loopexit1506, label %1068

1068:                                             ; preds = %1066
  %1069 = load i64, ptr %12, align 8, !tbaa !5
  %1070 = load i64, ptr %11, align 8, !tbaa !5
  %.not14651556 = icmp sgt i64 %1070, %1069
  br i1 %.not14651556, label %.loopexit1506, label %.lr.ph1559

.lr.ph1559:                                       ; preds = %1068
  %1071 = add nsw i64 %406, 1
  %1072 = mul nsw i64 %1071, %45
  %1073 = getelementptr i8, ptr %959, i64 8
  %1074 = add nsw i64 %406, 2
  %1075 = mul nsw i64 %1074, %45
  %1076 = add i64 %1069, 1
  %1077 = sub i64 %1076, %1070
  %min.iters.check1758 = icmp ult i64 %1077, 8
  br i1 %min.iters.check1758, label %scalar.ph1757.preheader, label %vector.memcheck1726

vector.memcheck1726:                              ; preds = %.lr.ph1559
  %1078 = mul i64 %280, 12
  %1079 = add i64 %267, %1078
  %1080 = mul i64 %45, %1079
  %1081 = shl i64 %1070, 2
  %1082 = getelementptr i8, ptr %scevgep1727, i64 %1080
  %scevgep1730 = getelementptr i8, ptr %1082, i64 %1081
  %1083 = shl i64 %1069, 2
  %1084 = getelementptr i8, ptr %13, i64 %1080
  %scevgep1731 = getelementptr i8, ptr %1084, i64 %1083
  %1085 = add i64 %268, %1078
  %1086 = mul i64 %45, %1085
  %1087 = getelementptr i8, ptr %scevgep1732, i64 %1086
  %scevgep1733 = getelementptr i8, ptr %1087, i64 %1081
  %1088 = getelementptr i8, ptr %13, i64 %1086
  %scevgep1734 = getelementptr i8, ptr %1088, i64 %1083
  %1089 = mul i64 %131, %280
  %scevgep1736 = getelementptr i8, ptr %scevgep1735, i64 %1089
  %bound01737 = icmp ult ptr %scevgep1730, %scevgep1734
  %bound11738 = icmp ult ptr %scevgep1733, %scevgep1731
  %found.conflict1739 = and i1 %bound01737, %bound11738
  %bound01740 = icmp ult ptr %scevgep1730, %1073
  %bound11741 = icmp ult ptr %960, %scevgep1731
  %found.conflict1742 = and i1 %bound01740, %bound11741
  %conflict.rdx1743 = or i1 %found.conflict1739, %found.conflict1742
  %bound01744 = icmp ult ptr %scevgep1730, %scevgep1736
  %bound11745 = icmp ult ptr %1073, %scevgep1731
  %found.conflict1746 = and i1 %bound01744, %bound11745
  %conflict.rdx1747 = or i1 %conflict.rdx1743, %found.conflict1746
  %bound01748 = icmp ult ptr %scevgep1733, %1073
  %bound11749 = icmp ult ptr %960, %scevgep1734
  %found.conflict1750 = and i1 %bound01748, %bound11749
  %conflict.rdx1751 = or i1 %conflict.rdx1747, %found.conflict1750
  %bound01752 = icmp ult ptr %scevgep1733, %scevgep1736
  %bound11753 = icmp ult ptr %1073, %scevgep1734
  %found.conflict1754 = and i1 %bound01752, %bound11753
  %conflict.rdx1755 = or i1 %conflict.rdx1751, %found.conflict1754
  br i1 %conflict.rdx1755, label %scalar.ph1757.preheader, label %vector.ph1759

vector.ph1759:                                    ; preds = %vector.memcheck1726
  %n.vec1761 = and i64 %1077, -4
  %ind.end1762 = add i64 %1070, %n.vec1761
  %1090 = load float, ptr %960, align 4, !tbaa !9, !alias.scope !111
  %broadcast.splatinsert1771 = insertelement <4 x float> poison, float %1090, i64 0
  %broadcast.splat1772 = shufflevector <4 x float> %broadcast.splatinsert1771, <4 x float> poison, <4 x i32> zeroinitializer
  %1091 = getelementptr float, ptr %47, i64 %1070
  %1092 = load float, ptr %1073, align 4, !tbaa !9, !alias.scope !114
  %broadcast.splatinsert1769 = insertelement <4 x float> poison, float %1092, i64 0
  %broadcast.splat1770 = shufflevector <4 x float> %broadcast.splatinsert1769, <4 x float> poison, <4 x i32> zeroinitializer
  %1093 = load float, ptr %1073, align 4, !tbaa !9, !alias.scope !114
  %broadcast.splatinsert1774 = insertelement <4 x float> poison, float %1093, i64 0
  %broadcast.splat1775 = shufflevector <4 x float> %broadcast.splatinsert1774, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body1764

vector.body1764:                                  ; preds = %vector.body1764, %vector.ph1759
  %index1765 = phi i64 [ 0, %vector.ph1759 ], [ %index.next1776, %vector.body1764 ]
  %1094 = getelementptr float, ptr %1091, i64 %index1765
  %1095 = getelementptr float, ptr %1094, i64 %1072
  %wide.load1767 = load <4 x float>, ptr %1095, align 4, !tbaa !9, !alias.scope !116, !noalias !118
  %1096 = getelementptr float, ptr %1094, i64 %1075
  %wide.load1768 = load <4 x float>, ptr %1096, align 4, !tbaa !9, !alias.scope !120, !noalias !121
  %1097 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat1770, <4 x float> %wide.load1768, <4 x float> %wide.load1767)
  %1098 = fmul <4 x float> %broadcast.splat1772, %1097
  %1099 = fsub <4 x float> %wide.load1767, %1098
  store <4 x float> %1099, ptr %1095, align 4, !tbaa !9, !alias.scope !116, !noalias !118
  %wide.load1773 = load <4 x float>, ptr %1096, align 4, !tbaa !9, !alias.scope !120, !noalias !121
  %1100 = fneg <4 x float> %1098
  %1101 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %1100, <4 x float> %broadcast.splat1775, <4 x float> %wide.load1773)
  store <4 x float> %1101, ptr %1096, align 4, !tbaa !9, !alias.scope !120, !noalias !121
  %index.next1776 = add nuw i64 %index1765, 4
  %1102 = icmp eq i64 %index.next1776, %n.vec1761
  br i1 %1102, label %middle.block1756, label %vector.body1764, !llvm.loop !122

middle.block1756:                                 ; preds = %vector.body1764
  %cmp.n1777 = icmp eq i64 %1077, %n.vec1761
  br i1 %cmp.n1777, label %.loopexit1506, label %scalar.ph1757.preheader

scalar.ph1757.preheader:                          ; preds = %middle.block1756, %vector.memcheck1726, %.lr.ph1559
  %.71557.ph = phi i64 [ %1070, %vector.memcheck1726 ], [ %1070, %.lr.ph1559 ], [ %ind.end1762, %middle.block1756 ]
  br label %scalar.ph1757

scalar.ph1757:                                    ; preds = %scalar.ph1757.preheader, %scalar.ph1757
  %.71557 = phi i64 [ %1117, %scalar.ph1757 ], [ %.71557.ph, %scalar.ph1757.preheader ]
  %1103 = load float, ptr %960, align 4, !tbaa !9
  %1104 = getelementptr float, ptr %47, i64 %.71557
  %1105 = getelementptr float, ptr %1104, i64 %1072
  %1106 = load float, ptr %1105, align 4, !tbaa !9
  %1107 = load float, ptr %1073, align 4, !tbaa !9
  %1108 = getelementptr float, ptr %1104, i64 %1075
  %1109 = load float, ptr %1108, align 4, !tbaa !9
  %1110 = call float @llvm.fmuladd.f32(float %1107, float %1109, float %1106)
  %1111 = fmul float %1103, %1110
  %1112 = fsub float %1106, %1111
  store float %1112, ptr %1105, align 4, !tbaa !9
  %1113 = load float, ptr %1073, align 4, !tbaa !9
  %1114 = load float, ptr %1108, align 4, !tbaa !9
  %1115 = fneg float %1111
  %1116 = call float @llvm.fmuladd.f32(float %1115, float %1113, float %1114)
  store float %1116, ptr %1108, align 4, !tbaa !9
  %1117 = add i64 %.71557, 1
  %exitcond1676.not = icmp eq i64 %.71557, %1069
  br i1 %exitcond1676.not, label %.loopexit1506, label %scalar.ph1757, !llvm.loop !123

.loopexit1506:                                    ; preds = %scalar.ph1757, %scalar.ph, %middle.block1756, %middle.block, %._crit_edge1550..loopexit1506_crit_edge, %1068, %1014, %1066, %957
  %1118 = phi i64 [ %.pre1680, %1066 ], [ %.pre1680, %957 ], [ %.pre1679, %._crit_edge1550..loopexit1506_crit_edge ], [ %.pre1680, %1014 ], [ %.pre1680, %1068 ], [ %.pre1680, %middle.block ], [ %.pre1680, %middle.block1756 ], [ %.pre1680, %scalar.ph ], [ %.pre1680, %scalar.ph1757 ]
  %.01378 = phi i64 [ %281, %1066 ], [ %281, %957 ], [ %280, %._crit_edge1550..loopexit1506_crit_edge ], [ %281, %1014 ], [ %281, %1068 ], [ %281, %middle.block ], [ %281, %middle.block1756 ], [ %281, %scalar.ph ], [ %281, %scalar.ph1757 ]
  %1119 = mul i64 %277, 3
  %1120 = add i64 %.013691580, -3
  %1121 = add i64 %1120, %1119
  %1122 = icmp slt i64 %1121, %451
  %1123 = zext i1 %1122 to i64
  %spec.select1485 = add nsw i64 %277, %1123
  %1124 = add nsw i64 %1118, -2
  %1125 = icmp eq i64 %.013691580, %1124
  %1126 = zext i1 %1125 to i64
  %.11379 = add nsw i64 %.01378, %1126
  %.not14671564 = icmp sgt i64 %spec.select1485, %.11379
  br i1 %.not14671564, label %1259, label %.lr.ph1567

.lr.ph1567:                                       ; preds = %.loopexit1506
  %1127 = add nsw i64 %1118, -1
  %1128 = add nsw i64 %451, 2
  %1129 = add nsw i64 %451, 3
  %1130 = add nsw i64 %1118, -3
  %1131 = add nsw i64 %1118, -4
  %1132 = add nsw i64 %.01378, 1
  %1133 = add nsw i64 %1132, %1126
  br label %1134

1134:                                             ; preds = %.lr.ph1567, %1257
  %.313941565 = phi i64 [ %spec.select1485, %.lr.ph1567 ], [ %1258, %1257 ]
  %1135 = mul i64 %.313941565, 3
  %1136 = add i64 %1120, %1135
  %1137 = call i64 @llvm.smin.i64(i64 %1127, i64 %1136)
  %1138 = add nsw i64 %1137, 1
  %1139 = mul nsw i64 %1137, %42
  %1140 = getelementptr float, ptr %44, i64 %1138
  %1141 = getelementptr float, ptr %1140, i64 %1139
  %1142 = load float, ptr %1141, align 4, !tbaa !9
  %1143 = fcmp une float %1142, 0.000000e+00
  br i1 %1143, label %1144, label %1257

1144:                                             ; preds = %1134
  %1145 = getelementptr float, ptr %44, i64 %1137
  %1146 = getelementptr float, ptr %1145, i64 %1139
  %1147 = load float, ptr %1146, align 4, !tbaa !9
  %1148 = fcmp oge float %1147, 0.000000e+00
  %1149 = fneg float %1147
  %1150 = select i1 %1148, float %1147, float %1149
  %1151 = mul nsw i64 %1138, %42
  %1152 = getelementptr float, ptr %1140, i64 %1151
  %1153 = load float, ptr %1152, align 4, !tbaa !9
  %1154 = fcmp oge float %1153, 0.000000e+00
  %1155 = fneg float %1153
  %1156 = select i1 %1154, float %1153, float %1155
  %1157 = fadd float %1150, %1156
  %1158 = fcmp oeq float %1157, 0.000000e+00
  br i1 %1158, label %1159, label %1216

1159:                                             ; preds = %1144
  %.not1471.not = icmp sgt i64 %1137, %451
  br i1 %.not1471.not, label %1160, label %1169

1160:                                             ; preds = %1159
  %1161 = add nsw i64 %1137, -1
  %1162 = mul nsw i64 %1161, %42
  %1163 = getelementptr float, ptr %1145, i64 %1162
  %1164 = load float, ptr %1163, align 4, !tbaa !9
  %1165 = fcmp oge float %1164, 0.000000e+00
  %1166 = fneg float %1164
  %1167 = select i1 %1165, float %1164, float %1166
  %1168 = fadd float %1157, %1167
  br label %1169

1169:                                             ; preds = %1160, %1159
  %.01380 = phi float [ %1168, %1160 ], [ %1157, %1159 ]
  %.not1472 = icmp slt i64 %1137, %1128
  br i1 %.not1472, label %1179, label %1170

1170:                                             ; preds = %1169
  %1171 = add nsw i64 %1137, -2
  %1172 = mul nsw i64 %1171, %42
  %1173 = getelementptr float, ptr %1145, i64 %1172
  %1174 = load float, ptr %1173, align 4, !tbaa !9
  %1175 = fcmp oge float %1174, 0.000000e+00
  %1176 = fneg float %1174
  %1177 = select i1 %1175, float %1174, float %1176
  %1178 = fadd float %.01380, %1177
  br label %1179

1179:                                             ; preds = %1170, %1169
  %.11381 = phi float [ %1178, %1170 ], [ %.01380, %1169 ]
  %.not1473 = icmp slt i64 %1137, %1129
  br i1 %.not1473, label %1189, label %1180

1180:                                             ; preds = %1179
  %1181 = add nsw i64 %1137, -3
  %1182 = mul nsw i64 %1181, %42
  %1183 = getelementptr float, ptr %1145, i64 %1182
  %1184 = load float, ptr %1183, align 4, !tbaa !9
  %1185 = fcmp oge float %1184, 0.000000e+00
  %1186 = fneg float %1184
  %1187 = select i1 %1185, float %1184, float %1186
  %1188 = fadd float %.11381, %1187
  br label %1189

1189:                                             ; preds = %1180, %1179
  %.21382 = phi float [ %1188, %1180 ], [ %.11381, %1179 ]
  %.not1474 = icmp sgt i64 %1136, %1124
  br i1 %.not1474, label %1198, label %1190

1190:                                             ; preds = %1189
  %1191 = getelementptr i8, ptr %1145, i64 8
  %1192 = getelementptr float, ptr %1191, i64 %1151
  %1193 = load float, ptr %1192, align 4, !tbaa !9
  %1194 = fcmp oge float %1193, 0.000000e+00
  %1195 = fneg float %1193
  %1196 = select i1 %1194, float %1193, float %1195
  %1197 = fadd float %.21382, %1196
  br label %1198

1198:                                             ; preds = %1190, %1189
  %.31383 = phi float [ %1197, %1190 ], [ %.21382, %1189 ]
  %.not1475 = icmp sgt i64 %1136, %1130
  br i1 %.not1475, label %1207, label %1199

1199:                                             ; preds = %1198
  %1200 = getelementptr i8, ptr %1145, i64 12
  %1201 = getelementptr float, ptr %1200, i64 %1151
  %1202 = load float, ptr %1201, align 4, !tbaa !9
  %1203 = fcmp oge float %1202, 0.000000e+00
  %1204 = fneg float %1202
  %1205 = select i1 %1203, float %1202, float %1204
  %1206 = fadd float %.31383, %1205
  br label %1207

1207:                                             ; preds = %1199, %1198
  %.4 = phi float [ %1206, %1199 ], [ %.31383, %1198 ]
  %.not1476 = icmp sgt i64 %1136, %1131
  br i1 %.not1476, label %1216, label %1208

1208:                                             ; preds = %1207
  %1209 = getelementptr i8, ptr %1145, i64 16
  %1210 = getelementptr float, ptr %1209, i64 %1151
  %1211 = load float, ptr %1210, align 4, !tbaa !9
  %1212 = fcmp oge float %1211, 0.000000e+00
  %1213 = fneg float %1211
  %1214 = select i1 %1212, float %1211, float %1213
  %1215 = fadd float %.4, %1214
  br label %1216

1216:                                             ; preds = %1207, %1208, %1144
  %.5 = phi float [ %1215, %1208 ], [ %.4, %1207 ], [ %1157, %1144 ]
  %1217 = fmul float %.5, %87
  %1218 = fcmp oge float %1142, 0.000000e+00
  %1219 = fneg float %1142
  %1220 = select i1 %1218, float %1142, float %1219
  %1221 = fcmp oge float %92, %1217
  %1222 = select i1 %1221, float %92, float %1217
  %1223 = fcmp ugt float %1220, %1222
  br i1 %1223, label %1257, label %1224

1224:                                             ; preds = %1216
  %1225 = getelementptr float, ptr %1145, i64 %1151
  %1226 = load float, ptr %1225, align 4, !tbaa !9
  %1227 = fsub float %1147, %1153
  %1228 = insertelement <2 x float> poison, float %1227, i64 0
  %1229 = insertelement <2 x float> %1228, float %1226, i64 1
  %1230 = fcmp oge <2 x float> %1229, zeroinitializer
  %1231 = fneg <2 x float> %1229
  %1232 = select <2 x i1> %1230, <2 x float> %1229, <2 x float> %1231
  %1233 = insertelement <2 x float> poison, float %1156, i64 0
  %1234 = insertelement <2 x float> %1233, float %1220, i64 1
  %1235 = fcmp oge <2 x float> %1234, %1232
  %1236 = select <2 x i1> %1235, <2 x float> %1234, <2 x float> %1232
  %1237 = extractelement <2 x float> %1232, i64 0
  %1238 = fcmp ole float %1156, %1237
  %1239 = select i1 %1238, float %1156, float %1237
  %1240 = extractelement <2 x float> %1236, i64 0
  %1241 = extractelement <2 x float> %1236, i64 1
  %1242 = fadd float %1240, %1241
  %1243 = fdiv float %1240, %1242
  %1244 = fmul float %1239, %1243
  %1245 = fcmp oeq float %1244, 0.000000e+00
  br i1 %1245, label %1256, label %1246

1246:                                             ; preds = %1224
  %1247 = fmul float %1244, %87
  %1248 = extractelement <2 x float> %1232, i64 1
  %1249 = fcmp ole float %1220, %1248
  %1250 = select i1 %1249, float %1220, float %1248
  %1251 = fdiv float %1241, %1242
  %1252 = fmul float %1250, %1251
  %1253 = fcmp oge float %92, %1247
  %1254 = select i1 %1253, float %92, float %1247
  %1255 = fcmp ugt float %1252, %1254
  br i1 %1255, label %1257, label %1256

1256:                                             ; preds = %1246, %1224
  store float 0.000000e+00, ptr %1141, align 4, !tbaa !9
  br label %1257

1257:                                             ; preds = %1134, %1246, %1256, %1216
  %1258 = add i64 %.313941565, 1
  %exitcond1677.not = icmp eq i64 %1258, %1133
  br i1 %exitcond1677.not, label %._crit_edge1568, label %1134, !llvm.loop !124

._crit_edge1568:                                  ; preds = %1257
  store i64 %1136, ptr %27, align 8, !tbaa !5
  br label %1259

1259:                                             ; preds = %._crit_edge1568, %.loopexit1506
  %1260 = add i64 %1118, %271
  %1261 = sdiv i64 %1260, 3
  store i64 %1261, ptr %26, align 8, !tbaa !5
  %1262 = call i64 @llvm.smin.i64(i64 %104, i64 %1261)
  %.not14691572 = icmp sgt i64 %277, %1262
  br i1 %.not14691572, label %._crit_edge1576, label %.lr.ph1575

.lr.ph1575:                                       ; preds = %1259, %.lr.ph1575
  %.413951573 = phi i64 [ %1290, %.lr.ph1575 ], [ %277, %1259 ]
  %1263 = mul i64 %.413951573, 3
  %1264 = add i64 %1120, %1263
  %1265 = mul nsw i64 %.413951573, %48
  %1266 = getelementptr float, ptr %50, i64 %1265
  %1267 = getelementptr i8, ptr %1266, i64 4
  %1268 = load float, ptr %1267, align 4, !tbaa !9
  %1269 = getelementptr i8, ptr %1266, i64 12
  %1270 = load float, ptr %1269, align 4, !tbaa !9
  %1271 = add i64 %1263, %.013691580
  %1272 = mul nsw i64 %1271, %42
  %gep1571 = getelementptr float, ptr %invariant.gep1570, i64 %1264
  %1273 = getelementptr float, ptr %gep1571, i64 %1272
  %1274 = load float, ptr %1273, align 4, !tbaa !9
  %1275 = fneg float %1268
  %1276 = fmul float %1270, %1275
  %1277 = fmul float %1276, %1274
  %1278 = add nsw i64 %1264, 1
  %1279 = mul nsw i64 %1278, %42
  %1280 = getelementptr float, ptr %gep1571, i64 %1279
  store float %1277, ptr %1280, align 4, !tbaa !9
  %1281 = getelementptr i8, ptr %1266, i64 8
  %1282 = load float, ptr %1281, align 4, !tbaa !9
  %1283 = fmul float %1277, %1282
  %1284 = add nsw i64 %1264, 2
  %1285 = mul nsw i64 %1284, %42
  %1286 = getelementptr float, ptr %gep1571, i64 %1285
  store float %1283, ptr %1286, align 4, !tbaa !9
  %1287 = load float, ptr %1269, align 4, !tbaa !9
  %1288 = load float, ptr %1273, align 4, !tbaa !9
  %1289 = call float @llvm.fmuladd.f32(float %1277, float %1287, float %1288)
  store float %1289, ptr %1273, align 4, !tbaa !9
  %1290 = add i64 %.413951573, 1
  %exitcond1678.not = icmp eq i64 %.413951573, %1262
  br i1 %exitcond1678.not, label %._crit_edge1576, label %.lr.ph1575, !llvm.loop !125

._crit_edge1576:                                  ; preds = %.lr.ph1575, %1259
  %1291 = add nsw i64 %.013691580, 1
  %.not1429.not = icmp slt i64 %.013691580, %239
  %indvars.iv.next1673 = add i64 %indvars.iv1672, 1
  %indvar.next = add i64 %indvar, 1
  br i1 %.not1429.not, label %.lr.ph1582, label %._crit_edge1583, !llvm.loop !126

._crit_edge1583:                                  ; preds = %._crit_edge1576, %235
  br i1 %switch, label %1292, label %.loopexit1509

1292:                                             ; preds = %._crit_edge1583
  %1293 = load i64, ptr %0, align 8, !tbaa !5
  %.not1430 = icmp eq i64 %1293, 0
  %.pre1682.pre = load i64, ptr %4, align 8, !tbaa !5
  %spec.select1692 = select i1 %.not1430, ptr %5, ptr %3
  %spec.select1693 = select i1 %.not1430, i64 %.pre1682.pre, i64 1
  %.11375 = load i64, ptr %spec.select1692, align 8, !tbaa !5
  br i1 %spec.select, label %1294, label %._crit_edge1683

._crit_edge1683:                                  ; preds = %1292
  %.pre1684 = load i64, ptr %5, align 8, !tbaa !5
  br label %1297

1294:                                             ; preds = %1292
  %1295 = icmp slt i64 %.013701657, %.pre1682.pre
  %.pre1685 = load i64, ptr %5, align 8, !tbaa !5
  %1296 = icmp sgt i64 %232, %.pre1685
  %or.cond = select i1 %1295, i1 true, i1 %1296
  br i1 %or.cond, label %1297, label %1371

1297:                                             ; preds = %._crit_edge1683, %1294
  %1298 = phi i64 [ %.pre1684, %._crit_edge1683 ], [ %.pre1685, %1294 ]
  %1299 = sub nsw i64 %.pre1682.pre, %.013701657
  %1300 = call i64 @llvm.smax.i64(i64 %1299, i64 1)
  %1301 = sub nsw i64 %232, %1298
  %1302 = load i64, ptr %32, align 8, !tbaa !5
  %1303 = call i64 @llvm.smax.i64(i64 %1301, i64 0)
  %1304 = add i64 %1302, 1
  %1305 = add nuw i64 %1300, %1303
  %1306 = sub i64 %1304, %1305
  store i64 %1306, ptr %30, align 8, !tbaa !5
  %1307 = load i64, ptr %22, align 8, !tbaa !5
  %.1486 = call i64 @llvm.smin.i64(i64 %232, i64 %1298)
  %1308 = add nsw i64 %.1486, 1
  %1309 = icmp slt i64 %1307, 0
  %1310 = icmp sge i64 %1308, %.11375
  %1311 = icmp slt i64 %.1486, %.11375
  %.in14421636 = select i1 %1309, i1 %1310, i1 %1311
  br i1 %.in14421636, label %.lr.ph1639, label %._crit_edge1640

.lr.ph1639:                                       ; preds = %1297
  %1312 = mul i64 %1300, %120
  %1313 = getelementptr inbounds float, ptr %53, i64 %1312
  %1314 = getelementptr float, ptr %44, i64 %.013701657
  %1315 = getelementptr float, ptr %1314, i64 %1300
  br label %1316

1316:                                             ; preds = %.lr.ph1639, %1316
  %.013761637 = phi i64 [ %1308, %.lr.ph1639 ], [ %1325, %1316 ]
  %1317 = load i64, ptr %22, align 8, !tbaa !5
  store i64 %1317, ptr %26, align 8, !tbaa !5
  %1318 = sub nsw i64 %.11375, %.013761637
  %1319 = add nsw i64 %1318, 1
  store i64 %1319, ptr %27, align 8, !tbaa !5
  %1320 = call i64 @llvm.smin.i64(i64 %1317, i64 %1319)
  store i64 %1320, ptr %36, align 8, !tbaa !5
  %1321 = mul nsw i64 %.013761637, %42
  %1322 = getelementptr float, ptr %1315, i64 %1321
  %1323 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %30, ptr noundef nonnull %36, ptr noundef nonnull %30, ptr noundef nonnull @c_b8, ptr noundef %1313, ptr noundef nonnull %18, ptr noundef %1322, ptr noundef nonnull %10, ptr noundef nonnull @c_b7, ptr noundef %23, ptr noundef %24) #5
  %1324 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %30, ptr noundef nonnull %36, ptr noundef %23, ptr noundef %24, ptr noundef %1322, ptr noundef nonnull %10) #5
  %1325 = add nsw i64 %.013761637, %1307
  %1326 = icmp sge i64 %1325, %.11375
  %1327 = icmp sle i64 %1325, %.11375
  %.in1442 = select i1 %1309, i1 %1326, i1 %1327
  br i1 %.in1442, label %1316, label %._crit_edge1640.loopexit, !llvm.loop !127

._crit_edge1640.loopexit:                         ; preds = %1316
  %.pre1686 = load i64, ptr %4, align 8, !tbaa !5
  br label %._crit_edge1640

._crit_edge1640:                                  ; preds = %._crit_edge1640.loopexit, %1297
  %1328 = phi i64 [ %.pre1686, %._crit_edge1640.loopexit ], [ %.pre1682.pre, %1297 ]
  %.01370.1487 = call i64 @llvm.smax.i64(i64 %1328, i64 %.013701657)
  %1329 = add nsw i64 %.01370.1487, -1
  %1330 = load i64, ptr %19, align 8, !tbaa !5
  %1331 = icmp slt i64 %1330, 0
  %1332 = icmp sge i64 %spec.select1693, %1329
  %1333 = icmp slt i64 %spec.select1693, %.01370.1487
  %.in14441641 = select i1 %1331, i1 %1332, i1 %1333
  br i1 %.in14441641, label %.lr.ph1644, label %._crit_edge1645

.lr.ph1644:                                       ; preds = %._crit_edge1640
  %1334 = add nsw i64 %1300, %.013701657
  %1335 = mul nsw i64 %1334, %42
  %invariant.gep1646 = getelementptr float, ptr %44, i64 %1335
  %1336 = mul i64 %1300, %120
  %1337 = getelementptr inbounds float, ptr %53, i64 %1336
  br label %1338

1338:                                             ; preds = %.lr.ph1644, %1338
  %.013711642 = phi i64 [ %spec.select1693, %.lr.ph1644 ], [ %1345, %1338 ]
  %1339 = load i64, ptr %19, align 8, !tbaa !5
  store i64 %1339, ptr %26, align 8, !tbaa !5
  %1340 = load i64, ptr %4, align 8, !tbaa !5
  %.01370.1488 = call i64 @llvm.smax.i64(i64 %1340, i64 %.013701657)
  %1341 = sub nsw i64 %.01370.1488, %.013711642
  store i64 %1341, ptr %27, align 8, !tbaa !5
  %1342 = call i64 @llvm.smin.i64(i64 %1339, i64 %1341)
  store i64 %1342, ptr %36, align 8, !tbaa !5
  %gep1647 = getelementptr float, ptr %invariant.gep1646, i64 %.013711642
  %1343 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b8, ptr noundef %gep1647, ptr noundef nonnull %10, ptr noundef %1337, ptr noundef nonnull %18, ptr noundef nonnull @c_b7, ptr noundef %20, ptr noundef nonnull %21) #5
  %1344 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %30, ptr noundef %20, ptr noundef nonnull %21, ptr noundef %gep1647, ptr noundef nonnull %10) #5
  %1345 = add nsw i64 %.013711642, %1330
  %1346 = icmp sge i64 %1345, %1329
  %1347 = icmp slt i64 %1345, %.01370.1487
  %.in1444 = select i1 %1331, i1 %1346, i1 %1347
  br i1 %.in1444, label %1338, label %._crit_edge1645, !llvm.loop !128

._crit_edge1645:                                  ; preds = %1338, %._crit_edge1640
  %1348 = load i64, ptr %1, align 8, !tbaa !5
  %.not1445 = icmp eq i64 %1348, 0
  br i1 %.not1445, label %.loopexit1509, label %1349

1349:                                             ; preds = %._crit_edge1645
  %1350 = load i64, ptr %12, align 8, !tbaa !5
  %1351 = load i64, ptr %19, align 8, !tbaa !5
  %1352 = load i64, ptr %11, align 8, !tbaa !5
  %1353 = icmp slt i64 %1351, 0
  %1354 = icmp sge i64 %1352, %1350
  %1355 = icmp sle i64 %1352, %1350
  %.in14461648 = select i1 %1353, i1 %1354, i1 %1355
  br i1 %.in14461648, label %.lr.ph1651, label %.loopexit1509

.lr.ph1651:                                       ; preds = %1349
  %1356 = add nsw i64 %1300, %.013701657
  %1357 = mul nsw i64 %1356, %45
  %invariant.gep1652 = getelementptr float, ptr %47, i64 %1357
  %1358 = mul i64 %1300, %120
  %1359 = getelementptr inbounds float, ptr %53, i64 %1358
  br label %1360

1360:                                             ; preds = %.lr.ph1651, %1360
  %.11649 = phi i64 [ %1352, %.lr.ph1651 ], [ %1368, %1360 ]
  %1361 = load i64, ptr %19, align 8, !tbaa !5
  store i64 %1361, ptr %26, align 8, !tbaa !5
  %1362 = load i64, ptr %12, align 8, !tbaa !5
  %1363 = sub nsw i64 %1362, %.11649
  %1364 = add nsw i64 %1363, 1
  store i64 %1364, ptr %27, align 8, !tbaa !5
  %1365 = call i64 @llvm.smin.i64(i64 %1361, i64 %1364)
  store i64 %1365, ptr %36, align 8, !tbaa !5
  %gep1653 = getelementptr float, ptr %invariant.gep1652, i64 %.11649
  %1366 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %30, ptr noundef nonnull %30, ptr noundef nonnull @c_b8, ptr noundef %gep1653, ptr noundef nonnull %14, ptr noundef %1359, ptr noundef nonnull %18, ptr noundef nonnull @c_b7, ptr noundef %20, ptr noundef nonnull %21) #5
  %1367 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %30, ptr noundef %20, ptr noundef nonnull %21, ptr noundef %gep1653, ptr noundef nonnull %14) #5
  %1368 = add nsw i64 %.11649, %1351
  %1369 = icmp sge i64 %1368, %1350
  %1370 = icmp sle i64 %1368, %1350
  %.in1446 = select i1 %1353, i1 %1369, i1 %1370
  br i1 %.in1446, label %1360, label %.loopexit1509, !llvm.loop !129

1371:                                             ; preds = %1294
  %1372 = load i64, ptr %32, align 8, !tbaa !5
  %1373 = add nsw i64 %1372, 1
  %1374 = sdiv i64 %1373, 2
  store i64 %1374, ptr %28, align 8, !tbaa !5
  %1375 = sub nsw i64 %1372, %1374
  store i64 %1375, ptr %29, align 8, !tbaa !5
  %1376 = sub nsw i64 %1374, %119
  store i64 %1376, ptr %34, align 8, !tbaa !5
  store i64 %119, ptr %33, align 8, !tbaa !5
  %1377 = load i64, ptr %22, align 8, !tbaa !5
  %1378 = add nsw i64 %232, 1
  %1379 = icmp slt i64 %1377, 0
  %1380 = icmp sge i64 %1378, %.11375
  %1381 = icmp slt i64 %232, %.11375
  %.in14321590 = select i1 %1379, i1 %1380, i1 %1381
  br i1 %.in14321590, label %.lr.ph1593, label %._crit_edge1594

.lr.ph1593:                                       ; preds = %1371
  %gep1655 = getelementptr float, ptr %invariant.gep1654, i64 %.013701657
  br label %1382

1382:                                             ; preds = %.lr.ph1593, %1382
  %.113771591 = phi i64 [ %1378, %.lr.ph1593 ], [ %1424, %1382 ]
  %1383 = load i64, ptr %22, align 8, !tbaa !5
  store i64 %1383, ptr %26, align 8, !tbaa !5
  %1384 = sub nsw i64 %.11375, %.113771591
  %1385 = add nsw i64 %1384, 1
  store i64 %1385, ptr %27, align 8, !tbaa !5
  %1386 = call i64 @llvm.smin.i64(i64 %1383, i64 %1385)
  store i64 %1386, ptr %36, align 8, !tbaa !5
  %1387 = load i64, ptr %29, align 8, !tbaa !5
  %1388 = mul nsw i64 %.113771591, %42
  %1389 = getelementptr float, ptr %gep1655, i64 %1387
  %1390 = getelementptr float, ptr %1389, i64 %1388
  %1391 = load i64, ptr %34, align 8, !tbaa !5
  %1392 = getelementptr inbounds float, ptr %23, i64 %1391
  %1393 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %33, ptr noundef nonnull %36, ptr noundef %1390, ptr noundef nonnull %10, ptr noundef %1392, ptr noundef nonnull %24) #5
  %1394 = call i32 @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %34, ptr noundef nonnull %36, ptr noundef nonnull @c_b7, ptr noundef nonnull @c_b7, ptr noundef %23, ptr noundef nonnull %24) #5
  %1395 = load i64, ptr %29, align 8, !tbaa !5
  %1396 = load i64, ptr %34, align 8, !tbaa !5
  %1397 = add nsw i64 %1396, 1
  %1398 = mul nsw i64 %1397, %51
  %gep1585 = getelementptr float, ptr %invariant.gep1584, i64 %1395
  %1399 = getelementptr float, ptr %gep1585, i64 %1398
  %1400 = getelementptr inbounds float, ptr %23, i64 %1396
  %1401 = call i32 @f2c_strmm(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %33, ptr noundef nonnull %36, ptr noundef nonnull @c_b8, ptr noundef %1399, ptr noundef nonnull %18, ptr noundef %1400, ptr noundef nonnull %24) #5
  %1402 = getelementptr float, ptr %gep1655, i64 %1388
  %1403 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %28, ptr noundef nonnull %36, ptr noundef nonnull %29, ptr noundef nonnull @c_b8, ptr noundef %17, ptr noundef nonnull %18, ptr noundef %1402, ptr noundef nonnull %10, ptr noundef nonnull @c_b8, ptr noundef %23, ptr noundef nonnull %24) #5
  %1404 = load i64, ptr %28, align 8, !tbaa !5
  %1405 = getelementptr inbounds float, ptr %23, i64 %1404
  %1406 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %29, ptr noundef nonnull %36, ptr noundef %1402, ptr noundef nonnull %10, ptr noundef %1405, ptr noundef nonnull %24) #5
  %1407 = load i64, ptr %28, align 8, !tbaa !5
  %1408 = add nsw i64 %1407, 1
  %1409 = mul nsw i64 %1408, %51
  %gep1587 = getelementptr float, ptr %invariant.gep1584, i64 %1409
  %1410 = getelementptr inbounds float, ptr %23, i64 %1407
  %1411 = call i32 @f2c_strmm(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %29, ptr noundef nonnull %36, ptr noundef nonnull @c_b8, ptr noundef %gep1587, ptr noundef nonnull %18, ptr noundef %1410, ptr noundef nonnull %24) #5
  %1412 = load i64, ptr %28, align 8, !tbaa !5
  %1413 = sub nsw i64 %1372, %1412
  store i64 %1413, ptr %26, align 8, !tbaa !5
  %1414 = load i64, ptr %29, align 8, !tbaa !5
  %1415 = sub nsw i64 %1372, %1414
  store i64 %1415, ptr %27, align 8, !tbaa !5
  %1416 = add nsw i64 %1412, 1
  %1417 = mul nsw i64 %1416, %51
  %gep1589 = getelementptr float, ptr %invariant.gep1584, i64 %1414
  %1418 = getelementptr float, ptr %gep1589, i64 %1417
  %1419 = getelementptr float, ptr %gep1655, i64 %1414
  %1420 = getelementptr float, ptr %1419, i64 %1388
  %1421 = getelementptr inbounds float, ptr %23, i64 %1412
  %1422 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, ptr noundef nonnull %26, ptr noundef nonnull %36, ptr noundef nonnull %27, ptr noundef nonnull @c_b8, ptr noundef %1418, ptr noundef nonnull %18, ptr noundef %1420, ptr noundef nonnull %10, ptr noundef nonnull @c_b8, ptr noundef %1421, ptr noundef nonnull %24) #5
  %1423 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %32, ptr noundef nonnull %36, ptr noundef %23, ptr noundef nonnull %24, ptr noundef %1402, ptr noundef nonnull %10) #5
  %1424 = add nsw i64 %.113771591, %1377
  %1425 = icmp sge i64 %1424, %.11375
  %1426 = icmp sle i64 %1424, %.11375
  %.in1432 = select i1 %1379, i1 %1425, i1 %1426
  br i1 %.in1432, label %1382, label %._crit_edge1594.loopexit, !llvm.loop !130

._crit_edge1594.loopexit:                         ; preds = %1382
  %.pre1681 = load i64, ptr %4, align 8, !tbaa !5
  br label %._crit_edge1594

._crit_edge1594:                                  ; preds = %._crit_edge1594.loopexit, %1371
  %1427 = phi i64 [ %.pre1681, %._crit_edge1594.loopexit ], [ %.pre1682.pre, %1371 ]
  %..01370 = call i64 @llvm.smax.i64(i64 %.013701657, i64 %1427)
  %1428 = add nsw i64 %..01370, -1
  %1429 = load i64, ptr %19, align 8, !tbaa !5
  %1430 = icmp slt i64 %1429, 0
  %1431 = icmp sge i64 %spec.select1693, %1428
  %1432 = icmp slt i64 %spec.select1693, %..01370
  %.in14341611 = select i1 %1430, i1 %1431, i1 %1432
  br i1 %.in14341611, label %.lr.ph1614, label %._crit_edge1615

.lr.ph1614:                                       ; preds = %._crit_edge1594
  %1433 = add nsw i64 %.013701657, 1
  %1434 = mul nsw i64 %1433, %42
  br label %1435

1435:                                             ; preds = %.lr.ph1614, %1435
  %.21612 = phi i64 [ %spec.select1693, %.lr.ph1614 ], [ %1482, %1435 ]
  %1436 = load i64, ptr %19, align 8, !tbaa !5
  store i64 %1436, ptr %26, align 8, !tbaa !5
  %1437 = load i64, ptr %4, align 8, !tbaa !5
  %..013701490 = call i64 @llvm.smax.i64(i64 %.013701657, i64 %1437)
  %1438 = sub nsw i64 %..013701490, %.21612
  store i64 %1438, ptr %27, align 8, !tbaa !5
  %1439 = call i64 @llvm.smin.i64(i64 %1436, i64 %1438)
  store i64 %1439, ptr %36, align 8, !tbaa !5
  %1440 = load i64, ptr %29, align 8, !tbaa !5
  %1441 = add nsw i64 %1440, %1433
  %1442 = mul nsw i64 %1441, %42
  %1443 = getelementptr float, ptr %44, i64 %.21612
  %1444 = getelementptr float, ptr %1443, i64 %1442
  %1445 = load i64, ptr %34, align 8, !tbaa !5
  %1446 = add nsw i64 %1445, 1
  %1447 = mul nsw i64 %1446, %54
  %gep1596 = getelementptr float, ptr %invariant.gep1595, i64 %1447
  %1448 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef %1444, ptr noundef nonnull %10, ptr noundef %gep1596, ptr noundef nonnull %21) #5
  %1449 = call i32 @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef nonnull @c_b7, ptr noundef nonnull @c_b7, ptr noundef %20, ptr noundef nonnull %21) #5
  %1450 = load i64, ptr %29, align 8, !tbaa !5
  %1451 = load i64, ptr %34, align 8, !tbaa !5
  %1452 = add nsw i64 %1451, 1
  %1453 = mul nsw i64 %1452, %51
  %gep1598 = getelementptr float, ptr %invariant.gep1584, i64 %1450
  %1454 = getelementptr float, ptr %gep1598, i64 %1453
  %1455 = mul nsw i64 %1452, %54
  %gep1600 = getelementptr float, ptr %invariant.gep1595, i64 %1455
  %1456 = call i32 @f2c_strmm(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef nonnull @c_b8, ptr noundef %1454, ptr noundef nonnull %18, ptr noundef %gep1600, ptr noundef nonnull %21) #5
  %1457 = getelementptr float, ptr %1443, i64 %1434
  %1458 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b8, ptr noundef %1457, ptr noundef nonnull %10, ptr noundef %17, ptr noundef nonnull %18, ptr noundef nonnull @c_b8, ptr noundef %20, ptr noundef nonnull %21) #5
  %1459 = load i64, ptr %28, align 8, !tbaa !5
  %1460 = add nsw i64 %1459, 1
  %1461 = mul nsw i64 %1460, %54
  %gep1602 = getelementptr float, ptr %invariant.gep1595, i64 %1461
  %1462 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %29, ptr noundef %1457, ptr noundef nonnull %10, ptr noundef %gep1602, ptr noundef nonnull %21) #5
  %1463 = load i64, ptr %28, align 8, !tbaa !5
  %1464 = sub nsw i64 %1372, %1463
  store i64 %1464, ptr %26, align 8, !tbaa !5
  %1465 = add nsw i64 %1463, 1
  %1466 = mul nsw i64 %1465, %51
  %gep1604 = getelementptr float, ptr %invariant.gep1584, i64 %1466
  %1467 = mul nsw i64 %1465, %54
  %gep1606 = getelementptr float, ptr %invariant.gep1595, i64 %1467
  %1468 = call i32 @f2c_strmm(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %26, ptr noundef nonnull @c_b8, ptr noundef %gep1604, ptr noundef nonnull %18, ptr noundef %gep1606, ptr noundef nonnull %21) #5
  %1469 = load i64, ptr %28, align 8, !tbaa !5
  %1470 = sub nsw i64 %1372, %1469
  store i64 %1470, ptr %26, align 8, !tbaa !5
  %1471 = load i64, ptr %29, align 8, !tbaa !5
  %1472 = sub nsw i64 %1372, %1471
  store i64 %1472, ptr %27, align 8, !tbaa !5
  %1473 = add nsw i64 %1471, %1433
  %1474 = mul nsw i64 %1473, %42
  %1475 = getelementptr float, ptr %1443, i64 %1474
  %1476 = add nsw i64 %1469, 1
  %1477 = mul nsw i64 %1476, %51
  %gep1608 = getelementptr float, ptr %invariant.gep1584, i64 %1471
  %1478 = getelementptr float, ptr %gep1608, i64 %1477
  %1479 = mul nsw i64 %1476, %54
  %gep1610 = getelementptr float, ptr %invariant.gep1595, i64 %1479
  %1480 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull @c_b8, ptr noundef %1475, ptr noundef nonnull %10, ptr noundef %1478, ptr noundef nonnull %18, ptr noundef nonnull @c_b8, ptr noundef %gep1610, ptr noundef nonnull %21) #5
  %1481 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %32, ptr noundef %20, ptr noundef nonnull %21, ptr noundef %1457, ptr noundef nonnull %10) #5
  %1482 = add nsw i64 %.21612, %1429
  %1483 = icmp sge i64 %1482, %1428
  %1484 = icmp slt i64 %1482, %..01370
  %.in1434 = select i1 %1430, i1 %1483, i1 %1484
  br i1 %.in1434, label %1435, label %._crit_edge1615, !llvm.loop !131

._crit_edge1615:                                  ; preds = %1435, %._crit_edge1594
  %1485 = load i64, ptr %1, align 8, !tbaa !5
  %.not1435 = icmp eq i64 %1485, 0
  br i1 %.not1435, label %.loopexit1509, label %1486

1486:                                             ; preds = %._crit_edge1615
  %1487 = load i64, ptr %12, align 8, !tbaa !5
  %1488 = load i64, ptr %19, align 8, !tbaa !5
  %1489 = load i64, ptr %11, align 8, !tbaa !5
  %1490 = icmp slt i64 %1488, 0
  %1491 = icmp sge i64 %1489, %1487
  %1492 = icmp sle i64 %1489, %1487
  %.in14361632 = select i1 %1490, i1 %1491, i1 %1492
  br i1 %.in14361632, label %.lr.ph1635, label %.loopexit1509

.lr.ph1635:                                       ; preds = %1486
  %1493 = add nsw i64 %.013701657, 1
  %1494 = mul nsw i64 %1493, %45
  br label %1495

1495:                                             ; preds = %.lr.ph1635, %1495
  %.31633 = phi i64 [ %1489, %.lr.ph1635 ], [ %1543, %1495 ]
  %1496 = load i64, ptr %19, align 8, !tbaa !5
  store i64 %1496, ptr %26, align 8, !tbaa !5
  %1497 = load i64, ptr %12, align 8, !tbaa !5
  %1498 = sub nsw i64 %1497, %.31633
  %1499 = add nsw i64 %1498, 1
  store i64 %1499, ptr %27, align 8, !tbaa !5
  %1500 = call i64 @llvm.smin.i64(i64 %1496, i64 %1499)
  store i64 %1500, ptr %36, align 8, !tbaa !5
  %1501 = load i64, ptr %29, align 8, !tbaa !5
  %1502 = add nsw i64 %1501, %1493
  %1503 = mul nsw i64 %1502, %45
  %1504 = getelementptr float, ptr %47, i64 %.31633
  %1505 = getelementptr float, ptr %1504, i64 %1503
  %1506 = load i64, ptr %34, align 8, !tbaa !5
  %1507 = add nsw i64 %1506, 1
  %1508 = mul nsw i64 %1507, %54
  %gep1617 = getelementptr float, ptr %invariant.gep1595, i64 %1508
  %1509 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef %1505, ptr noundef nonnull %14, ptr noundef %gep1617, ptr noundef nonnull %21) #5
  %1510 = call i32 @slaset_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %34, ptr noundef nonnull @c_b7, ptr noundef nonnull @c_b7, ptr noundef %20, ptr noundef nonnull %21) #5
  %1511 = load i64, ptr %29, align 8, !tbaa !5
  %1512 = load i64, ptr %34, align 8, !tbaa !5
  %1513 = add nsw i64 %1512, 1
  %1514 = mul nsw i64 %1513, %51
  %gep1619 = getelementptr float, ptr %invariant.gep1584, i64 %1511
  %1515 = getelementptr float, ptr %gep1619, i64 %1514
  %1516 = mul nsw i64 %1513, %54
  %gep1621 = getelementptr float, ptr %invariant.gep1595, i64 %1516
  %1517 = call i32 @f2c_strmm(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef nonnull @c_b8, ptr noundef %1515, ptr noundef nonnull %18, ptr noundef %gep1621, ptr noundef nonnull %21) #5
  %1518 = getelementptr float, ptr %1504, i64 %1494
  %1519 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull @c_b8, ptr noundef %1518, ptr noundef nonnull %14, ptr noundef %17, ptr noundef nonnull %18, ptr noundef nonnull @c_b8, ptr noundef %20, ptr noundef nonnull %21) #5
  %1520 = load i64, ptr %28, align 8, !tbaa !5
  %1521 = add nsw i64 %1520, 1
  %1522 = mul nsw i64 %1521, %54
  %gep1623 = getelementptr float, ptr %invariant.gep1595, i64 %1522
  %1523 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %29, ptr noundef %1518, ptr noundef nonnull %14, ptr noundef %gep1623, ptr noundef nonnull %21) #5
  %1524 = load i64, ptr %28, align 8, !tbaa !5
  %1525 = sub nsw i64 %1372, %1524
  store i64 %1525, ptr %26, align 8, !tbaa !5
  %1526 = add nsw i64 %1524, 1
  %1527 = mul nsw i64 %1526, %51
  %gep1625 = getelementptr float, ptr %invariant.gep1584, i64 %1527
  %1528 = mul nsw i64 %1526, %54
  %gep1627 = getelementptr float, ptr %invariant.gep1595, i64 %1528
  %1529 = call i32 @f2c_strmm(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %26, ptr noundef nonnull @c_b8, ptr noundef %gep1625, ptr noundef nonnull %18, ptr noundef %gep1627, ptr noundef nonnull %21) #5
  %1530 = load i64, ptr %28, align 8, !tbaa !5
  %1531 = sub nsw i64 %1372, %1530
  store i64 %1531, ptr %26, align 8, !tbaa !5
  %1532 = load i64, ptr %29, align 8, !tbaa !5
  %1533 = sub nsw i64 %1372, %1532
  store i64 %1533, ptr %27, align 8, !tbaa !5
  %1534 = add nsw i64 %1532, %1493
  %1535 = mul nsw i64 %1534, %45
  %1536 = getelementptr float, ptr %1504, i64 %1535
  %1537 = add nsw i64 %1530, 1
  %1538 = mul nsw i64 %1537, %51
  %gep1629 = getelementptr float, ptr %invariant.gep1584, i64 %1532
  %1539 = getelementptr float, ptr %gep1629, i64 %1538
  %1540 = mul nsw i64 %1537, %54
  %gep1631 = getelementptr float, ptr %invariant.gep1595, i64 %1540
  %1541 = call i32 @f2c_sgemm(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.4, ptr noundef nonnull %36, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull @c_b8, ptr noundef %1536, ptr noundef nonnull %14, ptr noundef %1539, ptr noundef nonnull %18, ptr noundef nonnull @c_b8, ptr noundef %gep1631, ptr noundef nonnull %21) #5
  %1542 = call i32 @slacpy_(ptr noundef nonnull @.str.2, ptr noundef nonnull %36, ptr noundef nonnull %32, ptr noundef %20, ptr noundef nonnull %21, ptr noundef %1518, ptr noundef nonnull %14) #5
  %1543 = add nsw i64 %.31633, %1488
  %1544 = icmp sge i64 %1543, %1487
  %1545 = icmp sle i64 %1543, %1487
  %.in1436 = select i1 %1490, i1 %1544, i1 %1545
  br i1 %.in1436, label %1495, label %.loopexit1509, !llvm.loop !132

.loopexit1509:                                    ; preds = %1495, %1360, %1486, %1349, %._crit_edge1583, %._crit_edge1615, %._crit_edge1645
  %1546 = add nsw i64 %109, %.013701657
  %.not1502 = icmp sgt i64 %1546, %107
  %indvars.iv.next1671 = add i64 %indvars.iv1670, %109
  %indvar.next1729 = add i64 %indvar1728, 1
  br i1 %.not1502, label %.loopexit1511, label %213, !llvm.loop !133

.loopexit1511:                                    ; preds = %.loopexit1509, %103, %59, %25
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  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 double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smin.i64(i64, i64) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 x float>) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = !{!15}
!15 = distinct !{!15, !16}
!16 = distinct !{!16, !"LVerDomain"}
!17 = !{!18}
!18 = distinct !{!18, !16}
!19 = !{!20, !21, !15}
!20 = distinct !{!20, !16}
!21 = distinct !{!21, !16}
!22 = !{!21}
!23 = !{!20}
!24 = distinct !{!24, !12, !25, !26}
!25 = !{!"llvm.loop.isvectorized", i32 1}
!26 = !{!"llvm.loop.unroll.runtime.disable"}
!27 = distinct !{!27, !12, !25}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = !{!31}
!31 = distinct !{!31, !32}
!32 = distinct !{!32, !"LVerDomain"}
!33 = !{!34}
!34 = distinct !{!34, !32}
!35 = !{!36}
!36 = distinct !{!36, !32}
!37 = !{!38}
!38 = distinct !{!38, !32}
!39 = !{!40, !41, !31, !34, !36}
!40 = distinct !{!40, !32}
!41 = distinct !{!41, !32}
!42 = !{!40}
!43 = !{!41, !31, !34, !36}
!44 = !{!41}
!45 = !{!31, !34, !36}
!46 = distinct !{!46, !12, !25, !26}
!47 = distinct !{!47, !12, !25}
!48 = !{!49}
!49 = distinct !{!49, !50}
!50 = distinct !{!50, !"LVerDomain"}
!51 = !{!52}
!52 = distinct !{!52, !50}
!53 = !{!54}
!54 = distinct !{!54, !50}
!55 = !{!56}
!56 = distinct !{!56, !50}
!57 = !{!58, !59, !49, !52, !54}
!58 = distinct !{!58, !50}
!59 = distinct !{!59, !50}
!60 = !{!58}
!61 = !{!59, !49, !52, !54}
!62 = !{!59}
!63 = !{!49, !52, !54}
!64 = distinct !{!64, !12, !25, !26}
!65 = distinct !{!65, !12, !25}
!66 = !{!67}
!67 = distinct !{!67, !68}
!68 = distinct !{!68, !"LVerDomain"}
!69 = !{!70}
!70 = distinct !{!70, !68}
!71 = !{!72}
!72 = distinct !{!72, !68}
!73 = !{!74}
!74 = distinct !{!74, !68}
!75 = !{!76, !77, !67, !70, !72}
!76 = distinct !{!76, !68}
!77 = distinct !{!77, !68}
!78 = !{!76}
!79 = !{!77, !67, !70, !72}
!80 = !{!77}
!81 = !{!67, !70, !72}
!82 = distinct !{!82, !12, !25, !26}
!83 = distinct !{!83, !12, !25}
!84 = distinct !{!84, !12}
!85 = !{!86}
!86 = distinct !{!86, !87}
!87 = distinct !{!87, !"LVerDomain"}
!88 = !{!89}
!89 = distinct !{!89, !87}
!90 = !{!91}
!91 = distinct !{!91, !87}
!92 = !{!93, !86, !89}
!93 = distinct !{!93, !87}
!94 = !{!93}
!95 = !{!86, !89}
!96 = distinct !{!96, !12, !25, !26}
!97 = distinct !{!97, !12, !25}
!98 = !{!99}
!99 = distinct !{!99, !100}
!100 = distinct !{!100, !"LVerDomain"}
!101 = !{!102}
!102 = distinct !{!102, !100}
!103 = !{!104}
!104 = distinct !{!104, !100}
!105 = !{!106, !99, !102}
!106 = distinct !{!106, !100}
!107 = !{!106}
!108 = !{!99, !102}
!109 = distinct !{!109, !12, !25, !26}
!110 = distinct !{!110, !12, !25}
!111 = !{!112}
!112 = distinct !{!112, !113}
!113 = distinct !{!113, !"LVerDomain"}
!114 = !{!115}
!115 = distinct !{!115, !113}
!116 = !{!117}
!117 = distinct !{!117, !113}
!118 = !{!119, !112, !115}
!119 = distinct !{!119, !113}
!120 = !{!119}
!121 = !{!112, !115}
!122 = distinct !{!122, !12, !25, !26}
!123 = distinct !{!123, !12, !25}
!124 = distinct !{!124, !12}
!125 = distinct !{!125, !12}
!126 = distinct !{!126, !12}
!127 = distinct !{!127, !12}
!128 = distinct !{!128, !12}
!129 = distinct !{!129, !12}
!130 = distinct !{!130, !12}
!131 = distinct !{!131, !12}
!132 = distinct !{!132, !12}
!133 = distinct !{!133, !12}


; Effective O3 passes: ConstraintEliminationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass