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

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

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

156:                                              ; preds = %16
  store i64 1, ptr %115, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  store i64 0, ptr %102, align 8, !tbaa !9
  br label %170

157:                                              ; preds = %16
  %158 = load ptr, ptr %19, align 8, !tbaa !5
  %159 = call i64 @lsame_(ptr noundef %158, ptr noundef @.str.1)
  %160 = icmp ne i64 %159, 0
  br i1 %160, label %161, label %162

161:                                              ; preds = %157
  store i64 2, ptr %115, align 8, !tbaa !9
  store i64 0, ptr %84, align 8, !tbaa !9
  store i64 0, ptr %102, align 8, !tbaa !9
  br label %169

162:                                              ; preds = %157
  %163 = load ptr, ptr %19, align 8, !tbaa !5
  %164 = call i64 @lsame_(ptr noundef %163, ptr noundef @.str.2)
  %165 = icmp ne i64 %164, 0
  br i1 %165, label %166, label %167

166:                                              ; preds = %162
  store i64 3, ptr %115, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  store i64 1, ptr %102, align 8, !tbaa !9
  br label %168

167:                                              ; preds = %162
  store i64 -1, ptr %115, align 8, !tbaa !9
  store i64 1, ptr %84, align 8, !tbaa !9
  br label %168

168:                                              ; preds = %167, %166
  br label %169

169:                                              ; preds = %168, %161
  br label %170

170:                                              ; preds = %169, %156
  %171 = load ptr, ptr %18, align 8, !tbaa !5
  %172 = call i64 @lsame_(ptr noundef %171, ptr noundef @.str.3)
  %173 = icmp ne i64 %172, 0
  br i1 %173, label %174, label %175

174:                                              ; preds = %170
  store i64 1, ptr %85, align 8, !tbaa !9
  store i64 0, ptr %90, align 8, !tbaa !9
  store i64 1, ptr %93, align 8, !tbaa !9
  br label %188

175:                                              ; preds = %170
  %176 = load ptr, ptr %18, align 8, !tbaa !5
  %177 = call i64 @lsame_(ptr noundef %176, ptr noundef @.str.4)
  %178 = icmp ne i64 %177, 0
  br i1 %178, label %179, label %180

179:                                              ; preds = %175
  store i64 2, ptr %85, align 8, !tbaa !9
  store i64 1, ptr %90, align 8, !tbaa !9
  store i64 0, ptr %93, align 8, !tbaa !9
  br label %187

180:                                              ; preds = %175
  %181 = load ptr, ptr %18, align 8, !tbaa !5
  %182 = call i64 @lsame_(ptr noundef %181, ptr noundef @.str.2)
  %183 = icmp ne i64 %182, 0
  br i1 %183, label %184, label %185

184:                                              ; preds = %180
  store i64 3, ptr %85, align 8, !tbaa !9
  store i64 1, ptr %90, align 8, !tbaa !9
  store i64 1, ptr %93, align 8, !tbaa !9
  br label %186

185:                                              ; preds = %180
  store i64 -1, ptr %85, align 8, !tbaa !9
  br label %186

186:                                              ; preds = %185, %184
  br label %187

187:                                              ; preds = %186, %179
  br label %188

188:                                              ; preds = %187, %174
  %189 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 0, ptr %189, align 8, !tbaa !9
  %190 = load i64, ptr %85, align 8, !tbaa !9
  %191 = icmp slt i64 %190, 0
  br i1 %191, label %192, label %194

192:                                              ; preds = %188
  %193 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 -1, ptr %193, align 8, !tbaa !9
  br label %239

194:                                              ; preds = %188
  %195 = load i64, ptr %115, align 8, !tbaa !9
  %196 = icmp slt i64 %195, 0
  br i1 %196, label %197, label %199

197:                                              ; preds = %194
  %198 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 -2, ptr %198, align 8, !tbaa !9
  br label %238

199:                                              ; preds = %194
  %200 = load ptr, ptr %21, align 8, !tbaa !5
  %201 = load i64, ptr %200, align 8, !tbaa !9
  %202 = icmp slt i64 %201, 0
  br i1 %202, label %203, label %205

203:                                              ; preds = %199
  %204 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 -4, ptr %204, align 8, !tbaa !9
  br label %237

205:                                              ; preds = %199
  %206 = load ptr, ptr %23, align 8, !tbaa !5
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = load ptr, ptr %21, align 8, !tbaa !5
  %209 = load i64, ptr %208, align 8, !tbaa !9
  %210 = icmp sge i64 1, %209
  br i1 %210, label %211, label %212

211:                                              ; preds = %205
  br label %215

212:                                              ; preds = %205
  %213 = load ptr, ptr %21, align 8, !tbaa !5
  %214 = load i64, ptr %213, align 8, !tbaa !9
  br label %215

215:                                              ; preds = %212, %211
  %216 = phi i64 [ 1, %211 ], [ %214, %212 ]
  %217 = icmp slt i64 %207, %216
  br i1 %217, label %218, label %220

218:                                              ; preds = %215
  %219 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 -6, ptr %219, align 8, !tbaa !9
  br label %236

220:                                              ; preds = %215
  %221 = load ptr, ptr %25, align 8, !tbaa !5
  %222 = load i64, ptr %221, align 8, !tbaa !9
  %223 = load ptr, ptr %21, align 8, !tbaa !5
  %224 = load i64, ptr %223, align 8, !tbaa !9
  %225 = icmp sge i64 1, %224
  br i1 %225, label %226, label %227

226:                                              ; preds = %220
  br label %230

227:                                              ; preds = %220
  %228 = load ptr, ptr %21, align 8, !tbaa !5
  %229 = load i64, ptr %228, align 8, !tbaa !9
  br label %230

230:                                              ; preds = %227, %226
  %231 = phi i64 [ 1, %226 ], [ %229, %227 ]
  %232 = icmp slt i64 %222, %231
  br i1 %232, label %233, label %235

233:                                              ; preds = %230
  %234 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 -8, ptr %234, align 8, !tbaa !9
  br label %235

235:                                              ; preds = %233, %230
  br label %236

236:                                              ; preds = %235, %218
  br label %237

237:                                              ; preds = %236, %203
  br label %238

238:                                              ; preds = %237, %197
  br label %239

239:                                              ; preds = %238, %192
  %240 = load ptr, ptr %33, align 8, !tbaa !5
  %241 = load i64, ptr %240, align 8, !tbaa !9
  %242 = icmp ne i64 %241, 0
  br i1 %242, label %243, label %248

243:                                              ; preds = %239
  %244 = load ptr, ptr %33, align 8, !tbaa !5
  %245 = load i64, ptr %244, align 8, !tbaa !9
  %246 = sub nsw i64 0, %245
  store i64 %246, ptr %42, align 8, !tbaa !9
  %247 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %42)
  store i32 0, ptr %17, align 4
  store i32 1, ptr %116, align 4
  br label %4760

248:                                              ; preds = %239
  %249 = load i64, ptr %84, align 8, !tbaa !9
  %250 = icmp ne i64 %249, 0
  br i1 %250, label %316, label %251

251:                                              ; preds = %248
  store i64 0, ptr %59, align 8, !tbaa !9
  store i64 0, ptr %114, align 8, !tbaa !9
  %252 = load ptr, ptr %21, align 8, !tbaa !5
  %253 = load i64, ptr %252, align 8, !tbaa !9
  store i64 %253, ptr %42, align 8, !tbaa !9
  store i64 1, ptr %54, align 8, !tbaa !9
  br label %254

254:                                              ; preds = %312, %251
  %255 = load i64, ptr %54, align 8, !tbaa !9
  %256 = load i64, ptr %42, align 8, !tbaa !9
  %257 = icmp sle i64 %255, %256
  br i1 %257, label %258, label %315

258:                                              ; preds = %254
  %259 = load i64, ptr %114, align 8, !tbaa !9
  %260 = icmp ne i64 %259, 0
  br i1 %260, label %261, label %262

261:                                              ; preds = %258
  store i64 0, ptr %114, align 8, !tbaa !9
  br label %311

262:                                              ; preds = %258
  %263 = load i64, ptr %54, align 8, !tbaa !9
  %264 = load ptr, ptr %21, align 8, !tbaa !5
  %265 = load i64, ptr %264, align 8, !tbaa !9
  %266 = icmp slt i64 %263, %265
  br i1 %266, label %267, label %280

267:                                              ; preds = %262
  %268 = load ptr, ptr %22, align 8, !tbaa !5
  %269 = load i64, ptr %54, align 8, !tbaa !9
  %270 = add nsw i64 %269, 1
  %271 = load i64, ptr %54, align 8, !tbaa !9
  %272 = load i64, ptr %36, align 8, !tbaa !9
  %273 = mul nsw i64 %271, %272
  %274 = add nsw i64 %270, %273
  %275 = getelementptr inbounds float, ptr %268, i64 %274
  %276 = load float, ptr %275, align 4, !tbaa !11
  %277 = fcmp une float %276, 0.000000e+00
  br i1 %277, label %278, label %279

278:                                              ; preds = %267
  store i64 1, ptr %114, align 8, !tbaa !9
  br label %279

279:                                              ; preds = %278, %267
  br label %280

280:                                              ; preds = %279, %262
  %281 = load i64, ptr %114, align 8, !tbaa !9
  %282 = icmp ne i64 %281, 0
  br i1 %282, label %283, label %300

283:                                              ; preds = %280
  %284 = load ptr, ptr %20, align 8, !tbaa !5
  %285 = load i64, ptr %54, align 8, !tbaa !9
  %286 = getelementptr inbounds i64, ptr %284, i64 %285
  %287 = load i64, ptr %286, align 8, !tbaa !9
  %288 = icmp ne i64 %287, 0
  br i1 %288, label %296, label %289

289:                                              ; preds = %283
  %290 = load ptr, ptr %20, align 8, !tbaa !5
  %291 = load i64, ptr %54, align 8, !tbaa !9
  %292 = add nsw i64 %291, 1
  %293 = getelementptr inbounds i64, ptr %290, i64 %292
  %294 = load i64, ptr %293, align 8, !tbaa !9
  %295 = icmp ne i64 %294, 0
  br i1 %295, label %296, label %299

296:                                              ; preds = %289, %283
  %297 = load i64, ptr %59, align 8, !tbaa !9
  %298 = add nsw i64 %297, 2
  store i64 %298, ptr %59, align 8, !tbaa !9
  br label %299

299:                                              ; preds = %296, %289
  br label %310

300:                                              ; preds = %280
  %301 = load ptr, ptr %20, align 8, !tbaa !5
  %302 = load i64, ptr %54, align 8, !tbaa !9
  %303 = getelementptr inbounds i64, ptr %301, i64 %302
  %304 = load i64, ptr %303, align 8, !tbaa !9
  %305 = icmp ne i64 %304, 0
  br i1 %305, label %306, label %309

306:                                              ; preds = %300
  %307 = load i64, ptr %59, align 8, !tbaa !9
  %308 = add nsw i64 %307, 1
  store i64 %308, ptr %59, align 8, !tbaa !9
  br label %309

309:                                              ; preds = %306, %300
  br label %310

310:                                              ; preds = %309, %299
  br label %311

311:                                              ; preds = %310, %261
  br label %312

312:                                              ; preds = %311
  %313 = load i64, ptr %54, align 8, !tbaa !9
  %314 = add nsw i64 %313, 1
  store i64 %314, ptr %54, align 8, !tbaa !9
  br label %254, !llvm.loop !13

315:                                              ; preds = %254
  br label %319

316:                                              ; preds = %248
  %317 = load ptr, ptr %21, align 8, !tbaa !5
  %318 = load i64, ptr %317, align 8, !tbaa !9
  store i64 %318, ptr %59, align 8, !tbaa !9
  br label %319

319:                                              ; preds = %316, %315
  store i64 0, ptr %96, align 8, !tbaa !9
  store i64 0, ptr %97, align 8, !tbaa !9
  %320 = load ptr, ptr %21, align 8, !tbaa !5
  %321 = load i64, ptr %320, align 8, !tbaa !9
  %322 = sub nsw i64 %321, 1
  store i64 %322, ptr %42, align 8, !tbaa !9
  store i64 1, ptr %54, align 8, !tbaa !9
  br label %323

323:                                              ; preds = %394, %319
  %324 = load i64, ptr %54, align 8, !tbaa !9
  %325 = load i64, ptr %42, align 8, !tbaa !9
  %326 = icmp sle i64 %324, %325
  br i1 %326, label %327, label %397

327:                                              ; preds = %323
  %328 = load ptr, ptr %22, align 8, !tbaa !5
  %329 = load i64, ptr %54, align 8, !tbaa !9
  %330 = add nsw i64 %329, 1
  %331 = load i64, ptr %54, align 8, !tbaa !9
  %332 = load i64, ptr %36, align 8, !tbaa !9
  %333 = mul nsw i64 %331, %332
  %334 = add nsw i64 %330, %333
  %335 = getelementptr inbounds float, ptr %328, i64 %334
  %336 = load float, ptr %335, align 4, !tbaa !11
  %337 = fcmp une float %336, 0.000000e+00
  br i1 %337, label %338, label %393

338:                                              ; preds = %327
  %339 = load ptr, ptr %24, align 8, !tbaa !5
  %340 = load i64, ptr %54, align 8, !tbaa !9
  %341 = load i64, ptr %54, align 8, !tbaa !9
  %342 = load i64, ptr %34, align 8, !tbaa !9
  %343 = mul nsw i64 %341, %342
  %344 = add nsw i64 %340, %343
  %345 = getelementptr inbounds float, ptr %339, i64 %344
  %346 = load float, ptr %345, align 4, !tbaa !11
  %347 = fcmp oeq float %346, 0.000000e+00
  br i1 %347, label %371, label %348

348:                                              ; preds = %338
  %349 = load ptr, ptr %24, align 8, !tbaa !5
  %350 = load i64, ptr %54, align 8, !tbaa !9
  %351 = add nsw i64 %350, 1
  %352 = load i64, ptr %54, align 8, !tbaa !9
  %353 = add nsw i64 %352, 1
  %354 = load i64, ptr %34, align 8, !tbaa !9
  %355 = mul nsw i64 %353, %354
  %356 = add nsw i64 %351, %355
  %357 = getelementptr inbounds float, ptr %349, i64 %356
  %358 = load float, ptr %357, align 4, !tbaa !11
  %359 = fcmp oeq float %358, 0.000000e+00
  br i1 %359, label %371, label %360

360:                                              ; preds = %348
  %361 = load ptr, ptr %24, align 8, !tbaa !5
  %362 = load i64, ptr %54, align 8, !tbaa !9
  %363 = load i64, ptr %54, align 8, !tbaa !9
  %364 = add nsw i64 %363, 1
  %365 = load i64, ptr %34, align 8, !tbaa !9
  %366 = mul nsw i64 %364, %365
  %367 = add nsw i64 %362, %366
  %368 = getelementptr inbounds float, ptr %361, i64 %367
  %369 = load float, ptr %368, align 4, !tbaa !11
  %370 = fcmp une float %369, 0.000000e+00
  br i1 %370, label %371, label %372

371:                                              ; preds = %360, %348, %338
  store i64 1, ptr %97, align 8, !tbaa !9
  br label %372

372:                                              ; preds = %371, %360
  %373 = load i64, ptr %54, align 8, !tbaa !9
  %374 = load ptr, ptr %21, align 8, !tbaa !5
  %375 = load i64, ptr %374, align 8, !tbaa !9
  %376 = sub nsw i64 %375, 1
  %377 = icmp slt i64 %373, %376
  br i1 %377, label %378, label %392

378:                                              ; preds = %372
  %379 = load ptr, ptr %22, align 8, !tbaa !5
  %380 = load i64, ptr %54, align 8, !tbaa !9
  %381 = add nsw i64 %380, 2
  %382 = load i64, ptr %54, align 8, !tbaa !9
  %383 = add nsw i64 %382, 1
  %384 = load i64, ptr %36, align 8, !tbaa !9
  %385 = mul nsw i64 %383, %384
  %386 = add nsw i64 %381, %385
  %387 = getelementptr inbounds float, ptr %379, i64 %386
  %388 = load float, ptr %387, align 4, !tbaa !11
  %389 = fcmp une float %388, 0.000000e+00
  br i1 %389, label %390, label %391

390:                                              ; preds = %378
  store i64 1, ptr %96, align 8, !tbaa !9
  br label %391

391:                                              ; preds = %390, %378
  br label %392

392:                                              ; preds = %391, %372
  br label %393

393:                                              ; preds = %392, %327
  br label %394

394:                                              ; preds = %393
  %395 = load i64, ptr %54, align 8, !tbaa !9
  %396 = add nsw i64 %395, 1
  store i64 %396, ptr %54, align 8, !tbaa !9
  br label %323, !llvm.loop !15

397:                                              ; preds = %323
  %398 = load i64, ptr %96, align 8, !tbaa !9
  %399 = icmp ne i64 %398, 0
  br i1 %399, label %400, label %402

400:                                              ; preds = %397
  %401 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 -5, ptr %401, align 8, !tbaa !9
  br label %448

402:                                              ; preds = %397
  %403 = load i64, ptr %97, align 8, !tbaa !9
  %404 = icmp ne i64 %403, 0
  br i1 %404, label %405, label %407

405:                                              ; preds = %402
  %406 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 -7, ptr %406, align 8, !tbaa !9
  br label %447

407:                                              ; preds = %402
  %408 = load i64, ptr %90, align 8, !tbaa !9
  %409 = icmp ne i64 %408, 0
  br i1 %409, label %410, label %416

410:                                              ; preds = %407
  %411 = load ptr, ptr %27, align 8, !tbaa !5
  %412 = load i64, ptr %411, align 8, !tbaa !9
  %413 = load ptr, ptr %21, align 8, !tbaa !5
  %414 = load i64, ptr %413, align 8, !tbaa !9
  %415 = icmp slt i64 %412, %414
  br i1 %415, label %420, label %416

416:                                              ; preds = %410, %407
  %417 = load ptr, ptr %27, align 8, !tbaa !5
  %418 = load i64, ptr %417, align 8, !tbaa !9
  %419 = icmp slt i64 %418, 1
  br i1 %419, label %420, label %422

420:                                              ; preds = %416, %410
  %421 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 -10, ptr %421, align 8, !tbaa !9
  br label %446

422:                                              ; preds = %416
  %423 = load i64, ptr %93, align 8, !tbaa !9
  %424 = icmp ne i64 %423, 0
  br i1 %424, label %425, label %431

425:                                              ; preds = %422
  %426 = load ptr, ptr %29, align 8, !tbaa !5
  %427 = load i64, ptr %426, align 8, !tbaa !9
  %428 = load ptr, ptr %21, align 8, !tbaa !5
  %429 = load i64, ptr %428, align 8, !tbaa !9
  %430 = icmp slt i64 %427, %429
  br i1 %430, label %435, label %431

431:                                              ; preds = %425, %422
  %432 = load ptr, ptr %29, align 8, !tbaa !5
  %433 = load i64, ptr %432, align 8, !tbaa !9
  %434 = icmp slt i64 %433, 1
  br i1 %434, label %435, label %437

435:                                              ; preds = %431, %425
  %436 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 -12, ptr %436, align 8, !tbaa !9
  br label %445

437:                                              ; preds = %431
  %438 = load ptr, ptr %30, align 8, !tbaa !5
  %439 = load i64, ptr %438, align 8, !tbaa !9
  %440 = load i64, ptr %59, align 8, !tbaa !9
  %441 = icmp slt i64 %439, %440
  br i1 %441, label %442, label %444

442:                                              ; preds = %437
  %443 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 -13, ptr %443, align 8, !tbaa !9
  br label %444

444:                                              ; preds = %442, %437
  br label %445

445:                                              ; preds = %444, %435
  br label %446

446:                                              ; preds = %445, %420
  br label %447

447:                                              ; preds = %446, %405
  br label %448

448:                                              ; preds = %447, %400
  %449 = load ptr, ptr %33, align 8, !tbaa !5
  %450 = load i64, ptr %449, align 8, !tbaa !9
  %451 = icmp ne i64 %450, 0
  br i1 %451, label %452, label %457

452:                                              ; preds = %448
  %453 = load ptr, ptr %33, align 8, !tbaa !5
  %454 = load i64, ptr %453, align 8, !tbaa !9
  %455 = sub nsw i64 0, %454
  store i64 %455, ptr %42, align 8, !tbaa !9
  %456 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %42)
  store i32 0, ptr %17, align 4
  store i32 1, ptr %116, align 4
  br label %4760

457:                                              ; preds = %448
  %458 = load i64, ptr %59, align 8, !tbaa !9
  %459 = load ptr, ptr %31, align 8, !tbaa !5
  store i64 %458, ptr %459, align 8, !tbaa !9
  %460 = load ptr, ptr %21, align 8, !tbaa !5
  %461 = load i64, ptr %460, align 8, !tbaa !9
  %462 = icmp eq i64 %461, 0
  br i1 %462, label %463, label %464

463:                                              ; preds = %457
  store i32 0, ptr %17, align 4
  store i32 1, ptr %116, align 4
  br label %4760

464:                                              ; preds = %457
  %465 = call double @slamch_(ptr noundef @.str.6)
  %466 = fptrunc double %465 to float
  store float %466, ptr %110, align 4, !tbaa !11
  %467 = load float, ptr %110, align 4, !tbaa !11
  %468 = fdiv float 1.000000e+00, %467
  store float %468, ptr %63, align 4, !tbaa !11
  %469 = call i32 @slabad_(ptr noundef %110, ptr noundef %63)
  %470 = call double @slamch_(ptr noundef @.str.7)
  %471 = call double @slamch_(ptr noundef @.str.8)
  %472 = fmul double %470, %471
  %473 = fptrunc double %472 to float
  store float %473, ptr %66, align 4, !tbaa !11
  %474 = load float, ptr %110, align 4, !tbaa !11
  %475 = load ptr, ptr %21, align 8, !tbaa !5
  %476 = load i64, ptr %475, align 8, !tbaa !9
  %477 = sitofp i64 %476 to float
  %478 = fmul float %474, %477
  %479 = load float, ptr %66, align 4, !tbaa !11
  %480 = fdiv float %478, %479
  store float %480, ptr %89, align 4, !tbaa !11
  %481 = load float, ptr %89, align 4, !tbaa !11
  %482 = fdiv float 1.000000e+00, %481
  store float %482, ptr %63, align 4, !tbaa !11
  %483 = load float, ptr %110, align 4, !tbaa !11
  %484 = load ptr, ptr %21, align 8, !tbaa !5
  %485 = load i64, ptr %484, align 8, !tbaa !9
  %486 = sitofp i64 %485 to float
  %487 = fmul float %483, %486
  %488 = fdiv float 1.000000e+00, %487
  store float %488, ptr %112, align 4, !tbaa !11
  %489 = load ptr, ptr %22, align 8, !tbaa !5
  %490 = load i64, ptr %36, align 8, !tbaa !9
  %491 = add nsw i64 %490, 1
  %492 = getelementptr inbounds float, ptr %489, i64 %491
  %493 = load float, ptr %492, align 4, !tbaa !11
  store float %493, ptr %47, align 4, !tbaa !11
  %494 = load float, ptr %47, align 4, !tbaa !11
  %495 = fcmp oge float %494, 0.000000e+00
  br i1 %495, label %496, label %498

496:                                              ; preds = %464
  %497 = load float, ptr %47, align 4, !tbaa !11
  br label %501

498:                                              ; preds = %464
  %499 = load float, ptr %47, align 4, !tbaa !11
  %500 = fneg float %499
  br label %501

501:                                              ; preds = %498, %496
  %502 = phi float [ %497, %496 ], [ %500, %498 ]
  %503 = fpext float %502 to double
  %504 = fptrunc double %503 to float
  store float %504, ptr %91, align 4, !tbaa !11
  %505 = load ptr, ptr %21, align 8, !tbaa !5
  %506 = load i64, ptr %505, align 8, !tbaa !9
  %507 = icmp sgt i64 %506, 1
  br i1 %507, label %508, label %528

508:                                              ; preds = %501
  %509 = load ptr, ptr %22, align 8, !tbaa !5
  %510 = load i64, ptr %36, align 8, !tbaa !9
  %511 = add nsw i64 %510, 2
  %512 = getelementptr inbounds float, ptr %509, i64 %511
  %513 = load float, ptr %512, align 4, !tbaa !11
  store float %513, ptr %47, align 4, !tbaa !11
  %514 = load float, ptr %47, align 4, !tbaa !11
  %515 = fcmp oge float %514, 0.000000e+00
  br i1 %515, label %516, label %518

516:                                              ; preds = %508
  %517 = load float, ptr %47, align 4, !tbaa !11
  br label %521

518:                                              ; preds = %508
  %519 = load float, ptr %47, align 4, !tbaa !11
  %520 = fneg float %519
  br label %521

521:                                              ; preds = %518, %516
  %522 = phi float [ %517, %516 ], [ %520, %518 ]
  %523 = fpext float %522 to double
  %524 = load float, ptr %91, align 4, !tbaa !11
  %525 = fpext float %524 to double
  %526 = fadd double %525, %523
  %527 = fptrunc double %526 to float
  store float %527, ptr %91, align 4, !tbaa !11
  br label %528

528:                                              ; preds = %521, %501
  %529 = load ptr, ptr %24, align 8, !tbaa !5
  %530 = load i64, ptr %34, align 8, !tbaa !9
  %531 = add nsw i64 %530, 1
  %532 = getelementptr inbounds float, ptr %529, i64 %531
  %533 = load float, ptr %532, align 4, !tbaa !11
  store float %533, ptr %47, align 4, !tbaa !11
  %534 = load float, ptr %47, align 4, !tbaa !11
  %535 = fcmp oge float %534, 0.000000e+00
  br i1 %535, label %536, label %538

536:                                              ; preds = %528
  %537 = load float, ptr %47, align 4, !tbaa !11
  br label %541

538:                                              ; preds = %528
  %539 = load float, ptr %47, align 4, !tbaa !11
  %540 = fneg float %539
  br label %541

541:                                              ; preds = %538, %536
  %542 = phi float [ %537, %536 ], [ %540, %538 ]
  %543 = fpext float %542 to double
  %544 = fptrunc double %543 to float
  store float %544, ptr %92, align 4, !tbaa !11
  %545 = load ptr, ptr %32, align 8, !tbaa !5
  %546 = getelementptr inbounds float, ptr %545, i64 1
  store float 0.000000e+00, ptr %546, align 4, !tbaa !11
  %547 = load ptr, ptr %32, align 8, !tbaa !5
  %548 = load ptr, ptr %21, align 8, !tbaa !5
  %549 = load i64, ptr %548, align 8, !tbaa !9
  %550 = add nsw i64 %549, 1
  %551 = getelementptr inbounds float, ptr %547, i64 %550
  store float 0.000000e+00, ptr %551, align 4, !tbaa !11
  %552 = load ptr, ptr %21, align 8, !tbaa !5
  %553 = load i64, ptr %552, align 8, !tbaa !9
  store i64 %553, ptr %42, align 8, !tbaa !9
  store i64 2, ptr %54, align 8, !tbaa !9
  br label %554

554:                                              ; preds = %731, %541
  %555 = load i64, ptr %54, align 8, !tbaa !9
  %556 = load i64, ptr %42, align 8, !tbaa !9
  %557 = icmp sle i64 %555, %556
  br i1 %557, label %558, label %734

558:                                              ; preds = %554
  store float 0.000000e+00, ptr %72, align 4, !tbaa !11
  store float 0.000000e+00, ptr %80, align 4, !tbaa !11
  %559 = load ptr, ptr %22, align 8, !tbaa !5
  %560 = load i64, ptr %54, align 8, !tbaa !9
  %561 = load i64, ptr %54, align 8, !tbaa !9
  %562 = sub nsw i64 %561, 1
  %563 = load i64, ptr %36, align 8, !tbaa !9
  %564 = mul nsw i64 %562, %563
  %565 = add nsw i64 %560, %564
  %566 = getelementptr inbounds float, ptr %559, i64 %565
  %567 = load float, ptr %566, align 4, !tbaa !11
  %568 = fcmp oeq float %567, 0.000000e+00
  br i1 %568, label %569, label %572

569:                                              ; preds = %558
  %570 = load i64, ptr %54, align 8, !tbaa !9
  %571 = sub nsw i64 %570, 1
  store i64 %571, ptr %70, align 8, !tbaa !9
  br label %575

572:                                              ; preds = %558
  %573 = load i64, ptr %54, align 8, !tbaa !9
  %574 = sub nsw i64 %573, 2
  store i64 %574, ptr %70, align 8, !tbaa !9
  br label %575

575:                                              ; preds = %572, %569
  %576 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %576, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  br label %577

577:                                              ; preds = %626, %575
  %578 = load i64, ptr %53, align 8, !tbaa !9
  %579 = load i64, ptr %43, align 8, !tbaa !9
  %580 = icmp sle i64 %578, %579
  br i1 %580, label %581, label %629

581:                                              ; preds = %577
  %582 = load ptr, ptr %22, align 8, !tbaa !5
  %583 = load i64, ptr %53, align 8, !tbaa !9
  %584 = load i64, ptr %54, align 8, !tbaa !9
  %585 = load i64, ptr %36, align 8, !tbaa !9
  %586 = mul nsw i64 %584, %585
  %587 = add nsw i64 %583, %586
  %588 = getelementptr inbounds float, ptr %582, i64 %587
  %589 = load float, ptr %588, align 4, !tbaa !11
  store float %589, ptr %47, align 4, !tbaa !11
  %590 = load float, ptr %47, align 4, !tbaa !11
  %591 = fcmp oge float %590, 0.000000e+00
  br i1 %591, label %592, label %594

592:                                              ; preds = %581
  %593 = load float, ptr %47, align 4, !tbaa !11
  br label %597

594:                                              ; preds = %581
  %595 = load float, ptr %47, align 4, !tbaa !11
  %596 = fneg float %595
  br label %597

597:                                              ; preds = %594, %592
  %598 = phi float [ %593, %592 ], [ %596, %594 ]
  %599 = fpext float %598 to double
  %600 = load float, ptr %72, align 4, !tbaa !11
  %601 = fpext float %600 to double
  %602 = fadd double %601, %599
  %603 = fptrunc double %602 to float
  store float %603, ptr %72, align 4, !tbaa !11
  %604 = load ptr, ptr %24, align 8, !tbaa !5
  %605 = load i64, ptr %53, align 8, !tbaa !9
  %606 = load i64, ptr %54, align 8, !tbaa !9
  %607 = load i64, ptr %34, align 8, !tbaa !9
  %608 = mul nsw i64 %606, %607
  %609 = add nsw i64 %605, %608
  %610 = getelementptr inbounds float, ptr %604, i64 %609
  %611 = load float, ptr %610, align 4, !tbaa !11
  store float %611, ptr %47, align 4, !tbaa !11
  %612 = load float, ptr %47, align 4, !tbaa !11
  %613 = fcmp oge float %612, 0.000000e+00
  br i1 %613, label %614, label %616

614:                                              ; preds = %597
  %615 = load float, ptr %47, align 4, !tbaa !11
  br label %619

616:                                              ; preds = %597
  %617 = load float, ptr %47, align 4, !tbaa !11
  %618 = fneg float %617
  br label %619

619:                                              ; preds = %616, %614
  %620 = phi float [ %615, %614 ], [ %618, %616 ]
  %621 = fpext float %620 to double
  %622 = load float, ptr %80, align 4, !tbaa !11
  %623 = fpext float %622 to double
  %624 = fadd double %623, %621
  %625 = fptrunc double %624 to float
  store float %625, ptr %80, align 4, !tbaa !11
  br label %626

626:                                              ; preds = %619
  %627 = load i64, ptr %53, align 8, !tbaa !9
  %628 = add nsw i64 %627, 1
  store i64 %628, ptr %53, align 8, !tbaa !9
  br label %577, !llvm.loop !16

629:                                              ; preds = %577
  %630 = load float, ptr %72, align 4, !tbaa !11
  %631 = load ptr, ptr %32, align 8, !tbaa !5
  %632 = load i64, ptr %54, align 8, !tbaa !9
  %633 = getelementptr inbounds float, ptr %631, i64 %632
  store float %630, ptr %633, align 4, !tbaa !11
  %634 = load float, ptr %80, align 4, !tbaa !11
  %635 = load ptr, ptr %32, align 8, !tbaa !5
  %636 = load ptr, ptr %21, align 8, !tbaa !5
  %637 = load i64, ptr %636, align 8, !tbaa !9
  %638 = load i64, ptr %54, align 8, !tbaa !9
  %639 = add nsw i64 %637, %638
  %640 = getelementptr inbounds float, ptr %635, i64 %639
  store float %634, ptr %640, align 4, !tbaa !11
  %641 = load i64, ptr %54, align 8, !tbaa !9
  %642 = add nsw i64 %641, 1
  store i64 %642, ptr %44, align 8, !tbaa !9
  %643 = load i64, ptr %44, align 8, !tbaa !9
  %644 = load ptr, ptr %21, align 8, !tbaa !5
  %645 = load i64, ptr %644, align 8, !tbaa !9
  %646 = icmp sle i64 %643, %645
  br i1 %646, label %647, label %649

647:                                              ; preds = %629
  %648 = load i64, ptr %44, align 8, !tbaa !9
  br label %652

649:                                              ; preds = %629
  %650 = load ptr, ptr %21, align 8, !tbaa !5
  %651 = load i64, ptr %650, align 8, !tbaa !9
  br label %652

652:                                              ; preds = %649, %647
  %653 = phi i64 [ %648, %647 ], [ %651, %649 ]
  store i64 %653, ptr %43, align 8, !tbaa !9
  %654 = load i64, ptr %70, align 8, !tbaa !9
  %655 = add nsw i64 %654, 1
  store i64 %655, ptr %53, align 8, !tbaa !9
  br label %656

656:                                              ; preds = %705, %652
  %657 = load i64, ptr %53, align 8, !tbaa !9
  %658 = load i64, ptr %43, align 8, !tbaa !9
  %659 = icmp sle i64 %657, %658
  br i1 %659, label %660, label %708

660:                                              ; preds = %656
  %661 = load ptr, ptr %22, align 8, !tbaa !5
  %662 = load i64, ptr %53, align 8, !tbaa !9
  %663 = load i64, ptr %54, align 8, !tbaa !9
  %664 = load i64, ptr %36, align 8, !tbaa !9
  %665 = mul nsw i64 %663, %664
  %666 = add nsw i64 %662, %665
  %667 = getelementptr inbounds float, ptr %661, i64 %666
  %668 = load float, ptr %667, align 4, !tbaa !11
  store float %668, ptr %47, align 4, !tbaa !11
  %669 = load float, ptr %47, align 4, !tbaa !11
  %670 = fcmp oge float %669, 0.000000e+00
  br i1 %670, label %671, label %673

671:                                              ; preds = %660
  %672 = load float, ptr %47, align 4, !tbaa !11
  br label %676

673:                                              ; preds = %660
  %674 = load float, ptr %47, align 4, !tbaa !11
  %675 = fneg float %674
  br label %676

676:                                              ; preds = %673, %671
  %677 = phi float [ %672, %671 ], [ %675, %673 ]
  %678 = fpext float %677 to double
  %679 = load float, ptr %72, align 4, !tbaa !11
  %680 = fpext float %679 to double
  %681 = fadd double %680, %678
  %682 = fptrunc double %681 to float
  store float %682, ptr %72, align 4, !tbaa !11
  %683 = load ptr, ptr %24, align 8, !tbaa !5
  %684 = load i64, ptr %53, align 8, !tbaa !9
  %685 = load i64, ptr %54, align 8, !tbaa !9
  %686 = load i64, ptr %34, align 8, !tbaa !9
  %687 = mul nsw i64 %685, %686
  %688 = add nsw i64 %684, %687
  %689 = getelementptr inbounds float, ptr %683, i64 %688
  %690 = load float, ptr %689, align 4, !tbaa !11
  store float %690, ptr %47, align 4, !tbaa !11
  %691 = load float, ptr %47, align 4, !tbaa !11
  %692 = fcmp oge float %691, 0.000000e+00
  br i1 %692, label %693, label %695

693:                                              ; preds = %676
  %694 = load float, ptr %47, align 4, !tbaa !11
  br label %698

695:                                              ; preds = %676
  %696 = load float, ptr %47, align 4, !tbaa !11
  %697 = fneg float %696
  br label %698

698:                                              ; preds = %695, %693
  %699 = phi float [ %694, %693 ], [ %697, %695 ]
  %700 = fpext float %699 to double
  %701 = load float, ptr %80, align 4, !tbaa !11
  %702 = fpext float %701 to double
  %703 = fadd double %702, %700
  %704 = fptrunc double %703 to float
  store float %704, ptr %80, align 4, !tbaa !11
  br label %705

705:                                              ; preds = %698
  %706 = load i64, ptr %53, align 8, !tbaa !9
  %707 = add nsw i64 %706, 1
  store i64 %707, ptr %53, align 8, !tbaa !9
  br label %656, !llvm.loop !17

708:                                              ; preds = %656
  %709 = load float, ptr %91, align 4, !tbaa !11
  %710 = load float, ptr %72, align 4, !tbaa !11
  %711 = fcmp oge float %709, %710
  br i1 %711, label %712, label %714

712:                                              ; preds = %708
  %713 = load float, ptr %91, align 4, !tbaa !11
  br label %716

714:                                              ; preds = %708
  %715 = load float, ptr %72, align 4, !tbaa !11
  br label %716

716:                                              ; preds = %714, %712
  %717 = phi float [ %713, %712 ], [ %715, %714 ]
  %718 = fpext float %717 to double
  %719 = fptrunc double %718 to float
  store float %719, ptr %91, align 4, !tbaa !11
  %720 = load float, ptr %92, align 4, !tbaa !11
  %721 = load float, ptr %80, align 4, !tbaa !11
  %722 = fcmp oge float %720, %721
  br i1 %722, label %723, label %725

723:                                              ; preds = %716
  %724 = load float, ptr %92, align 4, !tbaa !11
  br label %727

725:                                              ; preds = %716
  %726 = load float, ptr %80, align 4, !tbaa !11
  br label %727

727:                                              ; preds = %725, %723
  %728 = phi float [ %724, %723 ], [ %726, %725 ]
  %729 = fpext float %728 to double
  %730 = fptrunc double %729 to float
  store float %730, ptr %92, align 4, !tbaa !11
  br label %731

731:                                              ; preds = %727
  %732 = load i64, ptr %54, align 8, !tbaa !9
  %733 = add nsw i64 %732, 1
  store i64 %733, ptr %54, align 8, !tbaa !9
  br label %554, !llvm.loop !18

734:                                              ; preds = %554
  %735 = load float, ptr %91, align 4, !tbaa !11
  %736 = load float, ptr %110, align 4, !tbaa !11
  %737 = fcmp oge float %735, %736
  br i1 %737, label %738, label %740

738:                                              ; preds = %734
  %739 = load float, ptr %91, align 4, !tbaa !11
  br label %742

740:                                              ; preds = %734
  %741 = load float, ptr %110, align 4, !tbaa !11
  br label %742

742:                                              ; preds = %740, %738
  %743 = phi float [ %739, %738 ], [ %741, %740 ]
  %744 = fpext float %743 to double
  %745 = fdiv double 1.000000e+00, %744
  %746 = fptrunc double %745 to float
  store float %746, ptr %104, align 4, !tbaa !11
  %747 = load float, ptr %92, align 4, !tbaa !11
  %748 = load float, ptr %110, align 4, !tbaa !11
  %749 = fcmp oge float %747, %748
  br i1 %749, label %750, label %752

750:                                              ; preds = %742
  %751 = load float, ptr %92, align 4, !tbaa !11
  br label %754

752:                                              ; preds = %742
  %753 = load float, ptr %110, align 4, !tbaa !11
  br label %754

754:                                              ; preds = %752, %750
  %755 = phi float [ %751, %750 ], [ %753, %752 ]
  %756 = fpext float %755 to double
  %757 = fdiv double 1.000000e+00, %756
  %758 = fptrunc double %757 to float
  store float %758, ptr %105, align 4, !tbaa !11
  %759 = load i64, ptr %90, align 8, !tbaa !9
  %760 = icmp ne i64 %759, 0
  br i1 %760, label %761, label %2520

761:                                              ; preds = %754
  store i64 0, ptr %69, align 8, !tbaa !9
  store i64 0, ptr %114, align 8, !tbaa !9
  %762 = load ptr, ptr %21, align 8, !tbaa !5
  %763 = load i64, ptr %762, align 8, !tbaa !9
  store i64 %763, ptr %42, align 8, !tbaa !9
  store i64 1, ptr %57, align 8, !tbaa !9
  br label %764

764:                                              ; preds = %2516, %761
  %765 = load i64, ptr %57, align 8, !tbaa !9
  %766 = load i64, ptr %42, align 8, !tbaa !9
  %767 = icmp sle i64 %765, %766
  br i1 %767, label %768, label %2519

768:                                              ; preds = %764
  %769 = load i64, ptr %114, align 8, !tbaa !9
  %770 = icmp ne i64 %769, 0
  br i1 %770, label %771, label %772

771:                                              ; preds = %768
  store i64 0, ptr %114, align 8, !tbaa !9
  br label %2515

772:                                              ; preds = %768
  store i64 1, ptr %62, align 8, !tbaa !9
  %773 = load i64, ptr %57, align 8, !tbaa !9
  %774 = load ptr, ptr %21, align 8, !tbaa !5
  %775 = load i64, ptr %774, align 8, !tbaa !9
  %776 = icmp slt i64 %773, %775
  br i1 %776, label %777, label %790

777:                                              ; preds = %772
  %778 = load ptr, ptr %22, align 8, !tbaa !5
  %779 = load i64, ptr %57, align 8, !tbaa !9
  %780 = add nsw i64 %779, 1
  %781 = load i64, ptr %57, align 8, !tbaa !9
  %782 = load i64, ptr %36, align 8, !tbaa !9
  %783 = mul nsw i64 %781, %782
  %784 = add nsw i64 %780, %783
  %785 = getelementptr inbounds float, ptr %778, i64 %784
  %786 = load float, ptr %785, align 4, !tbaa !11
  %787 = fcmp une float %786, 0.000000e+00
  br i1 %787, label %788, label %789

788:                                              ; preds = %777
  store i64 1, ptr %114, align 8, !tbaa !9
  store i64 2, ptr %62, align 8, !tbaa !9
  br label %789

789:                                              ; preds = %788, %777
  br label %790

790:                                              ; preds = %789, %772
  %791 = load i64, ptr %84, align 8, !tbaa !9
  %792 = icmp ne i64 %791, 0
  br i1 %792, label %793, label %794

793:                                              ; preds = %790
  store i64 1, ptr %113, align 8, !tbaa !9
  br label %820

794:                                              ; preds = %790
  %795 = load i64, ptr %114, align 8, !tbaa !9
  %796 = icmp ne i64 %795, 0
  br i1 %796, label %797, label %814

797:                                              ; preds = %794
  %798 = load ptr, ptr %20, align 8, !tbaa !5
  %799 = load i64, ptr %57, align 8, !tbaa !9
  %800 = getelementptr inbounds i64, ptr %798, i64 %799
  %801 = load i64, ptr %800, align 8, !tbaa !9
  %802 = icmp ne i64 %801, 0
  br i1 %802, label %810, label %803

803:                                              ; preds = %797
  %804 = load ptr, ptr %20, align 8, !tbaa !5
  %805 = load i64, ptr %57, align 8, !tbaa !9
  %806 = add nsw i64 %805, 1
  %807 = getelementptr inbounds i64, ptr %804, i64 %806
  %808 = load i64, ptr %807, align 8, !tbaa !9
  %809 = icmp ne i64 %808, 0
  br label %810

810:                                              ; preds = %803, %797
  %811 = phi i1 [ true, %797 ], [ %809, %803 ]
  %812 = zext i1 %811 to i32
  %813 = sext i32 %812 to i64
  store i64 %813, ptr %113, align 8, !tbaa !9
  br label %819

814:                                              ; preds = %794
  %815 = load ptr, ptr %20, align 8, !tbaa !5
  %816 = load i64, ptr %57, align 8, !tbaa !9
  %817 = getelementptr inbounds i64, ptr %815, i64 %816
  %818 = load i64, ptr %817, align 8, !tbaa !9
  store i64 %818, ptr %113, align 8, !tbaa !9
  br label %819

819:                                              ; preds = %814, %810
  br label %820

820:                                              ; preds = %819, %793
  %821 = load i64, ptr %113, align 8, !tbaa !9
  %822 = icmp ne i64 %821, 0
  br i1 %822, label %824, label %823

823:                                              ; preds = %820
  br label %2515

824:                                              ; preds = %820
  %825 = load i64, ptr %114, align 8, !tbaa !9
  %826 = icmp ne i64 %825, 0
  br i1 %826, label %900, label %827

827:                                              ; preds = %824
  %828 = load ptr, ptr %22, align 8, !tbaa !5
  %829 = load i64, ptr %57, align 8, !tbaa !9
  %830 = load i64, ptr %57, align 8, !tbaa !9
  %831 = load i64, ptr %36, align 8, !tbaa !9
  %832 = mul nsw i64 %830, %831
  %833 = add nsw i64 %829, %832
  %834 = getelementptr inbounds float, ptr %828, i64 %833
  %835 = load float, ptr %834, align 4, !tbaa !11
  store float %835, ptr %47, align 4, !tbaa !11
  %836 = load float, ptr %47, align 4, !tbaa !11
  %837 = fcmp oge float %836, 0.000000e+00
  br i1 %837, label %838, label %840

838:                                              ; preds = %827
  %839 = load float, ptr %47, align 4, !tbaa !11
  br label %843

840:                                              ; preds = %827
  %841 = load float, ptr %47, align 4, !tbaa !11
  %842 = fneg float %841
  br label %843

843:                                              ; preds = %840, %838
  %844 = phi float [ %839, %838 ], [ %842, %840 ]
  %845 = fpext float %844 to double
  %846 = load float, ptr %110, align 4, !tbaa !11
  %847 = fpext float %846 to double
  %848 = fcmp ole double %845, %847
  br i1 %848, label %849, label %899

849:                                              ; preds = %843
  %850 = load ptr, ptr %24, align 8, !tbaa !5
  %851 = load i64, ptr %57, align 8, !tbaa !9
  %852 = load i64, ptr %57, align 8, !tbaa !9
  %853 = load i64, ptr %34, align 8, !tbaa !9
  %854 = mul nsw i64 %852, %853
  %855 = add nsw i64 %851, %854
  %856 = getelementptr inbounds float, ptr %850, i64 %855
  %857 = load float, ptr %856, align 4, !tbaa !11
  store float %857, ptr %48, align 4, !tbaa !11
  %858 = load float, ptr %48, align 4, !tbaa !11
  %859 = fcmp oge float %858, 0.000000e+00
  br i1 %859, label %860, label %862

860:                                              ; preds = %849
  %861 = load float, ptr %48, align 4, !tbaa !11
  br label %865

862:                                              ; preds = %849
  %863 = load float, ptr %48, align 4, !tbaa !11
  %864 = fneg float %863
  br label %865

865:                                              ; preds = %862, %860
  %866 = phi float [ %861, %860 ], [ %864, %862 ]
  %867 = fpext float %866 to double
  %868 = load float, ptr %110, align 4, !tbaa !11
  %869 = fpext float %868 to double
  %870 = fcmp ole double %867, %869
  br i1 %870, label %871, label %899

871:                                              ; preds = %865
  %872 = load i64, ptr %69, align 8, !tbaa !9
  %873 = add nsw i64 %872, 1
  store i64 %873, ptr %69, align 8, !tbaa !9
  %874 = load ptr, ptr %21, align 8, !tbaa !5
  %875 = load i64, ptr %874, align 8, !tbaa !9
  store i64 %875, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %876

876:                                              ; preds = %888, %871
  %877 = load i64, ptr %60, align 8, !tbaa !9
  %878 = load i64, ptr %43, align 8, !tbaa !9
  %879 = icmp sle i64 %877, %878
  br i1 %879, label %880, label %891

880:                                              ; preds = %876
  %881 = load ptr, ptr %26, align 8, !tbaa !5
  %882 = load i64, ptr %60, align 8, !tbaa !9
  %883 = load i64, ptr %69, align 8, !tbaa !9
  %884 = load i64, ptr %38, align 8, !tbaa !9
  %885 = mul nsw i64 %883, %884
  %886 = add nsw i64 %882, %885
  %887 = getelementptr inbounds float, ptr %881, i64 %886
  store float 0.000000e+00, ptr %887, align 4, !tbaa !11
  br label %888

888:                                              ; preds = %880
  %889 = load i64, ptr %60, align 8, !tbaa !9
  %890 = add nsw i64 %889, 1
  store i64 %890, ptr %60, align 8, !tbaa !9
  br label %876, !llvm.loop !19

891:                                              ; preds = %876
  %892 = load ptr, ptr %26, align 8, !tbaa !5
  %893 = load i64, ptr %69, align 8, !tbaa !9
  %894 = load i64, ptr %69, align 8, !tbaa !9
  %895 = load i64, ptr %38, align 8, !tbaa !9
  %896 = mul nsw i64 %894, %895
  %897 = add nsw i64 %893, %896
  %898 = getelementptr inbounds float, ptr %892, i64 %897
  store float 1.000000e+00, ptr %898, align 4, !tbaa !11
  br label %2515

899:                                              ; preds = %865, %843
  br label %900

900:                                              ; preds = %899, %824
  %901 = load i64, ptr %62, align 8, !tbaa !9
  %902 = load ptr, ptr %21, align 8, !tbaa !5
  %903 = load i64, ptr %902, align 8, !tbaa !9
  %904 = mul nsw i64 %901, %903
  store i64 %904, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %905

905:                                              ; preds = %917, %900
  %906 = load i64, ptr %60, align 8, !tbaa !9
  %907 = load i64, ptr %43, align 8, !tbaa !9
  %908 = icmp sle i64 %906, %907
  br i1 %908, label %909, label %920

909:                                              ; preds = %905
  %910 = load ptr, ptr %32, align 8, !tbaa !5
  %911 = load ptr, ptr %21, align 8, !tbaa !5
  %912 = load i64, ptr %911, align 8, !tbaa !9
  %913 = shl i64 %912, 1
  %914 = load i64, ptr %60, align 8, !tbaa !9
  %915 = add nsw i64 %913, %914
  %916 = getelementptr inbounds float, ptr %910, i64 %915
  store float 0.000000e+00, ptr %916, align 4, !tbaa !11
  br label %917

917:                                              ; preds = %909
  %918 = load i64, ptr %60, align 8, !tbaa !9
  %919 = add nsw i64 %918, 1
  store i64 %919, ptr %60, align 8, !tbaa !9
  br label %905, !llvm.loop !20

920:                                              ; preds = %905
  %921 = load i64, ptr %114, align 8, !tbaa !9
  %922 = icmp ne i64 %921, 0
  br i1 %922, label %1271, label %923

923:                                              ; preds = %920
  %924 = load ptr, ptr %22, align 8, !tbaa !5
  %925 = load i64, ptr %57, align 8, !tbaa !9
  %926 = load i64, ptr %57, align 8, !tbaa !9
  %927 = load i64, ptr %36, align 8, !tbaa !9
  %928 = mul nsw i64 %926, %927
  %929 = add nsw i64 %925, %928
  %930 = getelementptr inbounds float, ptr %924, i64 %929
  %931 = load float, ptr %930, align 4, !tbaa !11
  store float %931, ptr %47, align 4, !tbaa !11
  %932 = load float, ptr %47, align 4, !tbaa !11
  %933 = fcmp oge float %932, 0.000000e+00
  br i1 %933, label %934, label %936

934:                                              ; preds = %923
  %935 = load float, ptr %47, align 4, !tbaa !11
  br label %939

936:                                              ; preds = %923
  %937 = load float, ptr %47, align 4, !tbaa !11
  %938 = fneg float %937
  br label %939

939:                                              ; preds = %936, %934
  %940 = phi float [ %935, %934 ], [ %938, %936 ]
  %941 = fpext float %940 to double
  %942 = load float, ptr %104, align 4, !tbaa !11
  %943 = fpext float %942 to double
  %944 = fmul double %941, %943
  %945 = fptrunc double %944 to float
  store float %945, ptr %49, align 4, !tbaa !11
  %946 = load ptr, ptr %24, align 8, !tbaa !5
  %947 = load i64, ptr %57, align 8, !tbaa !9
  %948 = load i64, ptr %57, align 8, !tbaa !9
  %949 = load i64, ptr %34, align 8, !tbaa !9
  %950 = mul nsw i64 %948, %949
  %951 = add nsw i64 %947, %950
  %952 = getelementptr inbounds float, ptr %946, i64 %951
  %953 = load float, ptr %952, align 4, !tbaa !11
  store float %953, ptr %48, align 4, !tbaa !11
  %954 = load float, ptr %48, align 4, !tbaa !11
  %955 = fcmp oge float %954, 0.000000e+00
  br i1 %955, label %956, label %958

956:                                              ; preds = %939
  %957 = load float, ptr %48, align 4, !tbaa !11
  br label %961

958:                                              ; preds = %939
  %959 = load float, ptr %48, align 4, !tbaa !11
  %960 = fneg float %959
  br label %961

961:                                              ; preds = %958, %956
  %962 = phi float [ %957, %956 ], [ %960, %958 ]
  %963 = fpext float %962 to double
  %964 = load float, ptr %105, align 4, !tbaa !11
  %965 = fpext float %964 to double
  %966 = fmul double %963, %965
  %967 = fptrunc double %966 to float
  store float %967, ptr %50, align 4, !tbaa !11
  %968 = load float, ptr %49, align 4, !tbaa !11
  %969 = load float, ptr %50, align 4, !tbaa !11
  %970 = fcmp oge float %968, %969
  br i1 %970, label %971, label %973

971:                                              ; preds = %961
  %972 = load float, ptr %49, align 4, !tbaa !11
  br label %975

973:                                              ; preds = %961
  %974 = load float, ptr %50, align 4, !tbaa !11
  br label %975

975:                                              ; preds = %973, %971
  %976 = phi float [ %972, %971 ], [ %974, %973 ]
  store float %976, ptr %49, align 4, !tbaa !11
  %977 = load float, ptr %49, align 4, !tbaa !11
  %978 = load float, ptr %110, align 4, !tbaa !11
  %979 = fcmp oge float %977, %978
  br i1 %979, label %980, label %982

980:                                              ; preds = %975
  %981 = load float, ptr %49, align 4, !tbaa !11
  br label %984

982:                                              ; preds = %975
  %983 = load float, ptr %110, align 4, !tbaa !11
  br label %984

984:                                              ; preds = %982, %980
  %985 = phi float [ %981, %980 ], [ %983, %982 ]
  %986 = fpext float %985 to double
  %987 = fdiv double 1.000000e+00, %986
  %988 = fptrunc double %987 to float
  store float %988, ptr %72, align 4, !tbaa !11
  %989 = load float, ptr %72, align 4, !tbaa !11
  %990 = load ptr, ptr %22, align 8, !tbaa !5
  %991 = load i64, ptr %57, align 8, !tbaa !9
  %992 = load i64, ptr %57, align 8, !tbaa !9
  %993 = load i64, ptr %36, align 8, !tbaa !9
  %994 = mul nsw i64 %992, %993
  %995 = add nsw i64 %991, %994
  %996 = getelementptr inbounds float, ptr %990, i64 %995
  %997 = load float, ptr %996, align 4, !tbaa !11
  %998 = fmul float %989, %997
  %999 = load float, ptr %104, align 4, !tbaa !11
  %1000 = fmul float %998, %999
  store float %1000, ptr %109, align 4, !tbaa !11
  %1001 = load float, ptr %72, align 4, !tbaa !11
  %1002 = load ptr, ptr %24, align 8, !tbaa !5
  %1003 = load i64, ptr %57, align 8, !tbaa !9
  %1004 = load i64, ptr %57, align 8, !tbaa !9
  %1005 = load i64, ptr %34, align 8, !tbaa !9
  %1006 = mul nsw i64 %1004, %1005
  %1007 = add nsw i64 %1003, %1006
  %1008 = getelementptr inbounds float, ptr %1002, i64 %1007
  %1009 = load float, ptr %1008, align 4, !tbaa !11
  %1010 = fmul float %1001, %1009
  %1011 = load float, ptr %105, align 4, !tbaa !11
  %1012 = fmul float %1010, %1011
  store float %1012, ptr %86, align 4, !tbaa !11
  %1013 = load float, ptr %86, align 4, !tbaa !11
  %1014 = load float, ptr %104, align 4, !tbaa !11
  %1015 = fmul float %1013, %1014
  store float %1015, ptr %82, align 4, !tbaa !11
  %1016 = load float, ptr %109, align 4, !tbaa !11
  %1017 = load float, ptr %105, align 4, !tbaa !11
  %1018 = fmul float %1016, %1017
  store float %1018, ptr %108, align 4, !tbaa !11
  store float 0.000000e+00, ptr %103, align 4, !tbaa !11
  store float 1.000000e+00, ptr %83, align 4, !tbaa !11
  %1019 = load float, ptr %86, align 4, !tbaa !11
  %1020 = fcmp oge float %1019, 0.000000e+00
  br i1 %1020, label %1021, label %1023

1021:                                             ; preds = %984
  %1022 = load float, ptr %86, align 4, !tbaa !11
  br label %1026

1023:                                             ; preds = %984
  %1024 = load float, ptr %86, align 4, !tbaa !11
  %1025 = fneg float %1024
  br label %1026

1026:                                             ; preds = %1023, %1021
  %1027 = phi float [ %1022, %1021 ], [ %1025, %1023 ]
  %1028 = fpext float %1027 to double
  %1029 = load float, ptr %110, align 4, !tbaa !11
  %1030 = fpext float %1029 to double
  %1031 = fcmp oge double %1028, %1030
  br i1 %1031, label %1032, label %1046

1032:                                             ; preds = %1026
  %1033 = load float, ptr %82, align 4, !tbaa !11
  %1034 = fcmp oge float %1033, 0.000000e+00
  br i1 %1034, label %1035, label %1037

1035:                                             ; preds = %1032
  %1036 = load float, ptr %82, align 4, !tbaa !11
  br label %1040

1037:                                             ; preds = %1032
  %1038 = load float, ptr %82, align 4, !tbaa !11
  %1039 = fneg float %1038
  br label %1040

1040:                                             ; preds = %1037, %1035
  %1041 = phi float [ %1036, %1035 ], [ %1039, %1037 ]
  %1042 = fpext float %1041 to double
  %1043 = load float, ptr %89, align 4, !tbaa !11
  %1044 = fpext float %1043 to double
  %1045 = fcmp olt double %1042, %1044
  br label %1046

1046:                                             ; preds = %1040, %1026
  %1047 = phi i1 [ false, %1026 ], [ %1045, %1040 ]
  %1048 = zext i1 %1047 to i32
  %1049 = sext i32 %1048 to i64
  store i64 %1049, ptr %64, align 8, !tbaa !9
  %1050 = load float, ptr %109, align 4, !tbaa !11
  %1051 = fcmp oge float %1050, 0.000000e+00
  br i1 %1051, label %1052, label %1054

1052:                                             ; preds = %1046
  %1053 = load float, ptr %109, align 4, !tbaa !11
  br label %1057

1054:                                             ; preds = %1046
  %1055 = load float, ptr %109, align 4, !tbaa !11
  %1056 = fneg float %1055
  br label %1057

1057:                                             ; preds = %1054, %1052
  %1058 = phi float [ %1053, %1052 ], [ %1056, %1054 ]
  %1059 = fpext float %1058 to double
  %1060 = load float, ptr %110, align 4, !tbaa !11
  %1061 = fpext float %1060 to double
  %1062 = fcmp oge double %1059, %1061
  br i1 %1062, label %1063, label %1077

1063:                                             ; preds = %1057
  %1064 = load float, ptr %108, align 4, !tbaa !11
  %1065 = fcmp oge float %1064, 0.000000e+00
  br i1 %1065, label %1066, label %1068

1066:                                             ; preds = %1063
  %1067 = load float, ptr %108, align 4, !tbaa !11
  br label %1071

1068:                                             ; preds = %1063
  %1069 = load float, ptr %108, align 4, !tbaa !11
  %1070 = fneg float %1069
  br label %1071

1071:                                             ; preds = %1068, %1066
  %1072 = phi float [ %1067, %1066 ], [ %1070, %1068 ]
  %1073 = fpext float %1072 to double
  %1074 = load float, ptr %89, align 4, !tbaa !11
  %1075 = fpext float %1074 to double
  %1076 = fcmp olt double %1073, %1075
  br label %1077

1077:                                             ; preds = %1071, %1057
  %1078 = phi i1 [ false, %1057 ], [ %1076, %1071 ]
  %1079 = zext i1 %1078 to i32
  %1080 = sext i32 %1079 to i64
  store i64 %1080, ptr %65, align 8, !tbaa !9
  %1081 = load i64, ptr %64, align 8, !tbaa !9
  %1082 = icmp ne i64 %1081, 0
  br i1 %1082, label %1083, label %1109

1083:                                             ; preds = %1077
  %1084 = load float, ptr %89, align 4, !tbaa !11
  %1085 = fpext float %1084 to double
  %1086 = load float, ptr %86, align 4, !tbaa !11
  %1087 = fcmp oge float %1086, 0.000000e+00
  br i1 %1087, label %1088, label %1090

1088:                                             ; preds = %1083
  %1089 = load float, ptr %86, align 4, !tbaa !11
  br label %1093

1090:                                             ; preds = %1083
  %1091 = load float, ptr %86, align 4, !tbaa !11
  %1092 = fneg float %1091
  br label %1093

1093:                                             ; preds = %1090, %1088
  %1094 = phi float [ %1089, %1088 ], [ %1092, %1090 ]
  %1095 = fpext float %1094 to double
  %1096 = fdiv double %1085, %1095
  %1097 = load float, ptr %91, align 4, !tbaa !11
  %1098 = load float, ptr %63, align 4, !tbaa !11
  %1099 = fcmp ole float %1097, %1098
  br i1 %1099, label %1100, label %1102

1100:                                             ; preds = %1093
  %1101 = load float, ptr %91, align 4, !tbaa !11
  br label %1104

1102:                                             ; preds = %1093
  %1103 = load float, ptr %63, align 4, !tbaa !11
  br label %1104

1104:                                             ; preds = %1102, %1100
  %1105 = phi float [ %1101, %1100 ], [ %1103, %1102 ]
  %1106 = fpext float %1105 to double
  %1107 = fmul double %1096, %1106
  %1108 = fptrunc double %1107 to float
  store float %1108, ptr %83, align 4, !tbaa !11
  br label %1109

1109:                                             ; preds = %1104, %1077
  %1110 = load i64, ptr %65, align 8, !tbaa !9
  %1111 = icmp ne i64 %1110, 0
  br i1 %1111, label %1112, label %1150

1112:                                             ; preds = %1109
  %1113 = load float, ptr %83, align 4, !tbaa !11
  store float %1113, ptr %47, align 4, !tbaa !11
  %1114 = load float, ptr %89, align 4, !tbaa !11
  %1115 = fpext float %1114 to double
  %1116 = load float, ptr %109, align 4, !tbaa !11
  %1117 = fcmp oge float %1116, 0.000000e+00
  br i1 %1117, label %1118, label %1120

1118:                                             ; preds = %1112
  %1119 = load float, ptr %109, align 4, !tbaa !11
  br label %1123

1120:                                             ; preds = %1112
  %1121 = load float, ptr %109, align 4, !tbaa !11
  %1122 = fneg float %1121
  br label %1123

1123:                                             ; preds = %1120, %1118
  %1124 = phi float [ %1119, %1118 ], [ %1122, %1120 ]
  %1125 = fpext float %1124 to double
  %1126 = fdiv double %1115, %1125
  %1127 = load float, ptr %92, align 4, !tbaa !11
  %1128 = load float, ptr %63, align 4, !tbaa !11
  %1129 = fcmp ole float %1127, %1128
  br i1 %1129, label %1130, label %1132

1130:                                             ; preds = %1123
  %1131 = load float, ptr %92, align 4, !tbaa !11
  br label %1134

1132:                                             ; preds = %1123
  %1133 = load float, ptr %63, align 4, !tbaa !11
  br label %1134

1134:                                             ; preds = %1132, %1130
  %1135 = phi float [ %1131, %1130 ], [ %1133, %1132 ]
  %1136 = fpext float %1135 to double
  %1137 = fmul double %1126, %1136
  %1138 = fptrunc double %1137 to float
  store float %1138, ptr %48, align 4, !tbaa !11
  %1139 = load float, ptr %47, align 4, !tbaa !11
  %1140 = load float, ptr %48, align 4, !tbaa !11
  %1141 = fcmp oge float %1139, %1140
  br i1 %1141, label %1142, label %1144

1142:                                             ; preds = %1134
  %1143 = load float, ptr %47, align 4, !tbaa !11
  br label %1146

1144:                                             ; preds = %1134
  %1145 = load float, ptr %48, align 4, !tbaa !11
  br label %1146

1146:                                             ; preds = %1144, %1142
  %1147 = phi float [ %1143, %1142 ], [ %1145, %1144 ]
  %1148 = fpext float %1147 to double
  %1149 = fptrunc double %1148 to float
  store float %1149, ptr %83, align 4, !tbaa !11
  br label %1150

1150:                                             ; preds = %1146, %1109
  %1151 = load i64, ptr %64, align 8, !tbaa !9
  %1152 = icmp ne i64 %1151, 0
  br i1 %1152, label %1156, label %1153

1153:                                             ; preds = %1150
  %1154 = load i64, ptr %65, align 8, !tbaa !9
  %1155 = icmp ne i64 %1154, 0
  br i1 %1155, label %1156, label %1241

1156:                                             ; preds = %1153, %1150
  store float 1.000000e+00, ptr %49, align 4, !tbaa !11
  %1157 = load float, ptr %82, align 4, !tbaa !11
  %1158 = fcmp oge float %1157, 0.000000e+00
  br i1 %1158, label %1159, label %1161

1159:                                             ; preds = %1156
  %1160 = load float, ptr %82, align 4, !tbaa !11
  br label %1164

1161:                                             ; preds = %1156
  %1162 = load float, ptr %82, align 4, !tbaa !11
  %1163 = fneg float %1162
  br label %1164

1164:                                             ; preds = %1161, %1159
  %1165 = phi float [ %1160, %1159 ], [ %1163, %1161 ]
  %1166 = fpext float %1165 to double
  %1167 = fptrunc double %1166 to float
  store float %1167, ptr %50, align 4, !tbaa !11
  %1168 = load float, ptr %49, align 4, !tbaa !11
  %1169 = load float, ptr %50, align 4, !tbaa !11
  %1170 = fcmp oge float %1168, %1169
  br i1 %1170, label %1171, label %1173

1171:                                             ; preds = %1164
  %1172 = load float, ptr %49, align 4, !tbaa !11
  br label %1175

1173:                                             ; preds = %1164
  %1174 = load float, ptr %50, align 4, !tbaa !11
  br label %1175

1175:                                             ; preds = %1173, %1171
  %1176 = phi float [ %1172, %1171 ], [ %1174, %1173 ]
  store float %1176, ptr %49, align 4, !tbaa !11
  %1177 = load float, ptr %108, align 4, !tbaa !11
  %1178 = fcmp oge float %1177, 0.000000e+00
  br i1 %1178, label %1179, label %1181

1179:                                             ; preds = %1175
  %1180 = load float, ptr %108, align 4, !tbaa !11
  br label %1184

1181:                                             ; preds = %1175
  %1182 = load float, ptr %108, align 4, !tbaa !11
  %1183 = fneg float %1182
  br label %1184

1184:                                             ; preds = %1181, %1179
  %1185 = phi float [ %1180, %1179 ], [ %1183, %1181 ]
  %1186 = fpext float %1185 to double
  %1187 = fptrunc double %1186 to float
  store float %1187, ptr %50, align 4, !tbaa !11
  %1188 = load float, ptr %83, align 4, !tbaa !11
  store float %1188, ptr %47, align 4, !tbaa !11
  %1189 = load float, ptr %110, align 4, !tbaa !11
  %1190 = fpext float %1189 to double
  %1191 = load float, ptr %49, align 4, !tbaa !11
  %1192 = load float, ptr %50, align 4, !tbaa !11
  %1193 = fcmp oge float %1191, %1192
  br i1 %1193, label %1194, label %1196

1194:                                             ; preds = %1184
  %1195 = load float, ptr %49, align 4, !tbaa !11
  br label %1198

1196:                                             ; preds = %1184
  %1197 = load float, ptr %50, align 4, !tbaa !11
  br label %1198

1198:                                             ; preds = %1196, %1194
  %1199 = phi float [ %1195, %1194 ], [ %1197, %1196 ]
  %1200 = fpext float %1199 to double
  %1201 = fmul double %1190, %1200
  %1202 = fdiv double 1.000000e+00, %1201
  %1203 = fptrunc double %1202 to float
  store float %1203, ptr %48, align 4, !tbaa !11
  %1204 = load float, ptr %47, align 4, !tbaa !11
  %1205 = load float, ptr %48, align 4, !tbaa !11
  %1206 = fcmp ole float %1204, %1205
  br i1 %1206, label %1207, label %1209

1207:                                             ; preds = %1198
  %1208 = load float, ptr %47, align 4, !tbaa !11
  br label %1211

1209:                                             ; preds = %1198
  %1210 = load float, ptr %48, align 4, !tbaa !11
  br label %1211

1211:                                             ; preds = %1209, %1207
  %1212 = phi float [ %1208, %1207 ], [ %1210, %1209 ]
  %1213 = fpext float %1212 to double
  %1214 = fptrunc double %1213 to float
  store float %1214, ptr %83, align 4, !tbaa !11
  %1215 = load i64, ptr %64, align 8, !tbaa !9
  %1216 = icmp ne i64 %1215, 0
  br i1 %1216, label %1217, label %1223

1217:                                             ; preds = %1211
  %1218 = load float, ptr %104, align 4, !tbaa !11
  %1219 = load float, ptr %83, align 4, !tbaa !11
  %1220 = load float, ptr %86, align 4, !tbaa !11
  %1221 = fmul float %1219, %1220
  %1222 = fmul float %1218, %1221
  store float %1222, ptr %82, align 4, !tbaa !11
  br label %1227

1223:                                             ; preds = %1211
  %1224 = load float, ptr %83, align 4, !tbaa !11
  %1225 = load float, ptr %82, align 4, !tbaa !11
  %1226 = fmul float %1224, %1225
  store float %1226, ptr %82, align 4, !tbaa !11
  br label %1227

1227:                                             ; preds = %1223, %1217
  %1228 = load i64, ptr %65, align 8, !tbaa !9
  %1229 = icmp ne i64 %1228, 0
  br i1 %1229, label %1230, label %1236

1230:                                             ; preds = %1227
  %1231 = load float, ptr %105, align 4, !tbaa !11
  %1232 = load float, ptr %83, align 4, !tbaa !11
  %1233 = load float, ptr %109, align 4, !tbaa !11
  %1234 = fmul float %1232, %1233
  %1235 = fmul float %1231, %1234
  store float %1235, ptr %108, align 4, !tbaa !11
  br label %1240

1236:                                             ; preds = %1227
  %1237 = load float, ptr %83, align 4, !tbaa !11
  %1238 = load float, ptr %108, align 4, !tbaa !11
  %1239 = fmul float %1237, %1238
  store float %1239, ptr %108, align 4, !tbaa !11
  br label %1240

1240:                                             ; preds = %1236, %1230
  br label %1241

1241:                                             ; preds = %1240, %1153
  %1242 = load float, ptr %82, align 4, !tbaa !11
  %1243 = fcmp oge float %1242, 0.000000e+00
  br i1 %1243, label %1244, label %1246

1244:                                             ; preds = %1241
  %1245 = load float, ptr %82, align 4, !tbaa !11
  br label %1249

1246:                                             ; preds = %1241
  %1247 = load float, ptr %82, align 4, !tbaa !11
  %1248 = fneg float %1247
  br label %1249

1249:                                             ; preds = %1246, %1244
  %1250 = phi float [ %1245, %1244 ], [ %1248, %1246 ]
  %1251 = fpext float %1250 to double
  %1252 = fptrunc double %1251 to float
  store float %1252, ptr %98, align 4, !tbaa !11
  %1253 = load float, ptr %108, align 4, !tbaa !11
  %1254 = fcmp oge float %1253, 0.000000e+00
  br i1 %1254, label %1255, label %1257

1255:                                             ; preds = %1249
  %1256 = load float, ptr %108, align 4, !tbaa !11
  br label %1260

1257:                                             ; preds = %1249
  %1258 = load float, ptr %108, align 4, !tbaa !11
  %1259 = fneg float %1258
  br label %1260

1260:                                             ; preds = %1257, %1255
  %1261 = phi float [ %1256, %1255 ], [ %1259, %1257 ]
  %1262 = fpext float %1261 to double
  %1263 = fptrunc double %1262 to float
  store float %1263, ptr %99, align 4, !tbaa !11
  %1264 = load ptr, ptr %32, align 8, !tbaa !5
  %1265 = load ptr, ptr %21, align 8, !tbaa !5
  %1266 = load i64, ptr %1265, align 8, !tbaa !9
  %1267 = shl i64 %1266, 1
  %1268 = load i64, ptr %57, align 8, !tbaa !9
  %1269 = add nsw i64 %1267, %1268
  %1270 = getelementptr inbounds float, ptr %1264, i64 %1269
  store float 1.000000e+00, ptr %1270, align 4, !tbaa !11
  store float 1.000000e+00, ptr %73, align 4, !tbaa !11
  br label %1745

1271:                                             ; preds = %920
  %1272 = load float, ptr %110, align 4, !tbaa !11
  %1273 = fmul float %1272, 1.000000e+02
  store float %1273, ptr %47, align 4, !tbaa !11
  %1274 = load ptr, ptr %22, align 8, !tbaa !5
  %1275 = load i64, ptr %57, align 8, !tbaa !9
  %1276 = load i64, ptr %57, align 8, !tbaa !9
  %1277 = load i64, ptr %36, align 8, !tbaa !9
  %1278 = mul nsw i64 %1276, %1277
  %1279 = add nsw i64 %1275, %1278
  %1280 = getelementptr inbounds float, ptr %1274, i64 %1279
  %1281 = load ptr, ptr %23, align 8, !tbaa !5
  %1282 = load ptr, ptr %24, align 8, !tbaa !5
  %1283 = load i64, ptr %57, align 8, !tbaa !9
  %1284 = load i64, ptr %57, align 8, !tbaa !9
  %1285 = load i64, ptr %34, align 8, !tbaa !9
  %1286 = mul nsw i64 %1284, %1285
  %1287 = add nsw i64 %1283, %1286
  %1288 = getelementptr inbounds float, ptr %1282, i64 %1287
  %1289 = load ptr, ptr %25, align 8, !tbaa !5
  %1290 = call i32 @slag2_(ptr noundef %1280, ptr noundef %1281, ptr noundef %1288, ptr noundef %1289, ptr noundef %47, ptr noundef %82, ptr noundef %72, ptr noundef %108, ptr noundef %80, ptr noundef %103)
  %1291 = load float, ptr %103, align 4, !tbaa !11
  %1292 = fneg float %1291
  store float %1292, ptr %103, align 4, !tbaa !11
  %1293 = load float, ptr %103, align 4, !tbaa !11
  %1294 = fcmp oeq float %1293, 0.000000e+00
  br i1 %1294, label %1295, label %1298

1295:                                             ; preds = %1271
  %1296 = load i64, ptr %57, align 8, !tbaa !9
  %1297 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 %1296, ptr %1297, align 8, !tbaa !9
  store i32 0, ptr %17, align 4
  store i32 1, ptr %116, align 4
  br label %4760

1298:                                             ; preds = %1271
  %1299 = load float, ptr %82, align 4, !tbaa !11
  %1300 = fcmp oge float %1299, 0.000000e+00
  br i1 %1300, label %1301, label %1303

1301:                                             ; preds = %1298
  %1302 = load float, ptr %82, align 4, !tbaa !11
  br label %1306

1303:                                             ; preds = %1298
  %1304 = load float, ptr %82, align 4, !tbaa !11
  %1305 = fneg float %1304
  br label %1306

1306:                                             ; preds = %1303, %1301
  %1307 = phi float [ %1302, %1301 ], [ %1305, %1303 ]
  %1308 = fpext float %1307 to double
  %1309 = fptrunc double %1308 to float
  store float %1309, ptr %98, align 4, !tbaa !11
  %1310 = load float, ptr %108, align 4, !tbaa !11
  %1311 = fcmp oge float %1310, 0.000000e+00
  br i1 %1311, label %1312, label %1314

1312:                                             ; preds = %1306
  %1313 = load float, ptr %108, align 4, !tbaa !11
  br label %1317

1314:                                             ; preds = %1306
  %1315 = load float, ptr %108, align 4, !tbaa !11
  %1316 = fneg float %1315
  br label %1317

1317:                                             ; preds = %1314, %1312
  %1318 = phi float [ %1313, %1312 ], [ %1316, %1314 ]
  %1319 = fpext float %1318 to double
  %1320 = load float, ptr %103, align 4, !tbaa !11
  %1321 = fcmp oge float %1320, 0.000000e+00
  br i1 %1321, label %1322, label %1324

1322:                                             ; preds = %1317
  %1323 = load float, ptr %103, align 4, !tbaa !11
  br label %1327

1324:                                             ; preds = %1317
  %1325 = load float, ptr %103, align 4, !tbaa !11
  %1326 = fneg float %1325
  br label %1327

1327:                                             ; preds = %1324, %1322
  %1328 = phi float [ %1323, %1322 ], [ %1326, %1324 ]
  %1329 = fpext float %1328 to double
  %1330 = fadd double %1319, %1329
  %1331 = fptrunc double %1330 to float
  store float %1331, ptr %99, align 4, !tbaa !11
  store float 1.000000e+00, ptr %83, align 4, !tbaa !11
  %1332 = load float, ptr %98, align 4, !tbaa !11
  %1333 = load float, ptr %66, align 4, !tbaa !11
  %1334 = fmul float %1332, %1333
  %1335 = load float, ptr %110, align 4, !tbaa !11
  %1336 = fcmp olt float %1334, %1335
  br i1 %1336, label %1337, label %1347

1337:                                             ; preds = %1327
  %1338 = load float, ptr %98, align 4, !tbaa !11
  %1339 = load float, ptr %110, align 4, !tbaa !11
  %1340 = fcmp oge float %1338, %1339
  br i1 %1340, label %1341, label %1347

1341:                                             ; preds = %1337
  %1342 = load float, ptr %110, align 4, !tbaa !11
  %1343 = load float, ptr %66, align 4, !tbaa !11
  %1344 = fdiv float %1342, %1343
  %1345 = load float, ptr %98, align 4, !tbaa !11
  %1346 = fdiv float %1344, %1345
  store float %1346, ptr %83, align 4, !tbaa !11
  br label %1347

1347:                                             ; preds = %1341, %1337, %1327
  %1348 = load float, ptr %99, align 4, !tbaa !11
  %1349 = load float, ptr %66, align 4, !tbaa !11
  %1350 = fmul float %1348, %1349
  %1351 = load float, ptr %110, align 4, !tbaa !11
  %1352 = fcmp olt float %1350, %1351
  br i1 %1352, label %1353, label %1375

1353:                                             ; preds = %1347
  %1354 = load float, ptr %99, align 4, !tbaa !11
  %1355 = load float, ptr %110, align 4, !tbaa !11
  %1356 = fcmp oge float %1354, %1355
  br i1 %1356, label %1357, label %1375

1357:                                             ; preds = %1353
  %1358 = load float, ptr %83, align 4, !tbaa !11
  store float %1358, ptr %47, align 4, !tbaa !11
  %1359 = load float, ptr %110, align 4, !tbaa !11
  %1360 = load float, ptr %66, align 4, !tbaa !11
  %1361 = fdiv float %1359, %1360
  %1362 = load float, ptr %99, align 4, !tbaa !11
  %1363 = fdiv float %1361, %1362
  store float %1363, ptr %48, align 4, !tbaa !11
  %1364 = load float, ptr %47, align 4, !tbaa !11
  %1365 = load float, ptr %48, align 4, !tbaa !11
  %1366 = fcmp oge float %1364, %1365
  br i1 %1366, label %1367, label %1369

1367:                                             ; preds = %1357
  %1368 = load float, ptr %47, align 4, !tbaa !11
  br label %1371

1369:                                             ; preds = %1357
  %1370 = load float, ptr %48, align 4, !tbaa !11
  br label %1371

1371:                                             ; preds = %1369, %1367
  %1372 = phi float [ %1368, %1367 ], [ %1370, %1369 ]
  %1373 = fpext float %1372 to double
  %1374 = fptrunc double %1373 to float
  store float %1374, ptr %83, align 4, !tbaa !11
  br label %1375

1375:                                             ; preds = %1371, %1353, %1347
  %1376 = load float, ptr %110, align 4, !tbaa !11
  %1377 = load float, ptr %98, align 4, !tbaa !11
  %1378 = fmul float %1376, %1377
  %1379 = load float, ptr %104, align 4, !tbaa !11
  %1380 = fcmp ogt float %1378, %1379
  br i1 %1380, label %1381, label %1387

1381:                                             ; preds = %1375
  %1382 = load float, ptr %104, align 4, !tbaa !11
  %1383 = load float, ptr %110, align 4, !tbaa !11
  %1384 = load float, ptr %98, align 4, !tbaa !11
  %1385 = fmul float %1383, %1384
  %1386 = fdiv float %1382, %1385
  store float %1386, ptr %83, align 4, !tbaa !11
  br label %1387

1387:                                             ; preds = %1381, %1375
  %1388 = load float, ptr %110, align 4, !tbaa !11
  %1389 = load float, ptr %99, align 4, !tbaa !11
  %1390 = fmul float %1388, %1389
  %1391 = load float, ptr %105, align 4, !tbaa !11
  %1392 = fcmp ogt float %1390, %1391
  br i1 %1392, label %1393, label %1411

1393:                                             ; preds = %1387
  %1394 = load float, ptr %83, align 4, !tbaa !11
  store float %1394, ptr %47, align 4, !tbaa !11
  %1395 = load float, ptr %105, align 4, !tbaa !11
  %1396 = load float, ptr %110, align 4, !tbaa !11
  %1397 = load float, ptr %99, align 4, !tbaa !11
  %1398 = fmul float %1396, %1397
  %1399 = fdiv float %1395, %1398
  store float %1399, ptr %48, align 4, !tbaa !11
  %1400 = load float, ptr %47, align 4, !tbaa !11
  %1401 = load float, ptr %48, align 4, !tbaa !11
  %1402 = fcmp ole float %1400, %1401
  br i1 %1402, label %1403, label %1405

1403:                                             ; preds = %1393
  %1404 = load float, ptr %47, align 4, !tbaa !11
  br label %1407

1405:                                             ; preds = %1393
  %1406 = load float, ptr %48, align 4, !tbaa !11
  br label %1407

1407:                                             ; preds = %1405, %1403
  %1408 = phi float [ %1404, %1403 ], [ %1406, %1405 ]
  %1409 = fpext float %1408 to double
  %1410 = fptrunc double %1409 to float
  store float %1410, ptr %83, align 4, !tbaa !11
  br label %1411

1411:                                             ; preds = %1407, %1387
  %1412 = load float, ptr %83, align 4, !tbaa !11
  %1413 = fcmp une float %1412, 1.000000e+00
  br i1 %1413, label %1414, label %1457

1414:                                             ; preds = %1411
  %1415 = load float, ptr %83, align 4, !tbaa !11
  %1416 = load float, ptr %82, align 4, !tbaa !11
  %1417 = fmul float %1415, %1416
  store float %1417, ptr %82, align 4, !tbaa !11
  %1418 = load float, ptr %82, align 4, !tbaa !11
  %1419 = fcmp oge float %1418, 0.000000e+00
  br i1 %1419, label %1420, label %1422

1420:                                             ; preds = %1414
  %1421 = load float, ptr %82, align 4, !tbaa !11
  br label %1425

1422:                                             ; preds = %1414
  %1423 = load float, ptr %82, align 4, !tbaa !11
  %1424 = fneg float %1423
  br label %1425

1425:                                             ; preds = %1422, %1420
  %1426 = phi float [ %1421, %1420 ], [ %1424, %1422 ]
  %1427 = fpext float %1426 to double
  %1428 = fptrunc double %1427 to float
  store float %1428, ptr %98, align 4, !tbaa !11
  %1429 = load float, ptr %83, align 4, !tbaa !11
  %1430 = load float, ptr %108, align 4, !tbaa !11
  %1431 = fmul float %1429, %1430
  store float %1431, ptr %108, align 4, !tbaa !11
  %1432 = load float, ptr %83, align 4, !tbaa !11
  %1433 = load float, ptr %103, align 4, !tbaa !11
  %1434 = fmul float %1432, %1433
  store float %1434, ptr %103, align 4, !tbaa !11
  %1435 = load float, ptr %108, align 4, !tbaa !11
  %1436 = fcmp oge float %1435, 0.000000e+00
  br i1 %1436, label %1437, label %1439

1437:                                             ; preds = %1425
  %1438 = load float, ptr %108, align 4, !tbaa !11
  br label %1442

1439:                                             ; preds = %1425
  %1440 = load float, ptr %108, align 4, !tbaa !11
  %1441 = fneg float %1440
  br label %1442

1442:                                             ; preds = %1439, %1437
  %1443 = phi float [ %1438, %1437 ], [ %1441, %1439 ]
  %1444 = fpext float %1443 to double
  %1445 = load float, ptr %103, align 4, !tbaa !11
  %1446 = fcmp oge float %1445, 0.000000e+00
  br i1 %1446, label %1447, label %1449

1447:                                             ; preds = %1442
  %1448 = load float, ptr %103, align 4, !tbaa !11
  br label %1452

1449:                                             ; preds = %1442
  %1450 = load float, ptr %103, align 4, !tbaa !11
  %1451 = fneg float %1450
  br label %1452

1452:                                             ; preds = %1449, %1447
  %1453 = phi float [ %1448, %1447 ], [ %1451, %1449 ]
  %1454 = fpext float %1453 to double
  %1455 = fadd double %1444, %1454
  %1456 = fptrunc double %1455 to float
  store float %1456, ptr %99, align 4, !tbaa !11
  br label %1457

1457:                                             ; preds = %1452, %1411
  %1458 = load float, ptr %82, align 4, !tbaa !11
  %1459 = load ptr, ptr %22, align 8, !tbaa !5
  %1460 = load i64, ptr %57, align 8, !tbaa !9
  %1461 = add nsw i64 %1460, 1
  %1462 = load i64, ptr %57, align 8, !tbaa !9
  %1463 = load i64, ptr %36, align 8, !tbaa !9
  %1464 = mul nsw i64 %1462, %1463
  %1465 = add nsw i64 %1461, %1464
  %1466 = getelementptr inbounds float, ptr %1459, i64 %1465
  %1467 = load float, ptr %1466, align 4, !tbaa !11
  %1468 = fmul float %1458, %1467
  store float %1468, ptr %72, align 4, !tbaa !11
  %1469 = load float, ptr %82, align 4, !tbaa !11
  %1470 = load ptr, ptr %22, align 8, !tbaa !5
  %1471 = load i64, ptr %57, align 8, !tbaa !9
  %1472 = load i64, ptr %57, align 8, !tbaa !9
  %1473 = load i64, ptr %36, align 8, !tbaa !9
  %1474 = mul nsw i64 %1472, %1473
  %1475 = add nsw i64 %1471, %1474
  %1476 = getelementptr inbounds float, ptr %1470, i64 %1475
  %1477 = load float, ptr %1476, align 4, !tbaa !11
  %1478 = load float, ptr %108, align 4, !tbaa !11
  %1479 = load ptr, ptr %24, align 8, !tbaa !5
  %1480 = load i64, ptr %57, align 8, !tbaa !9
  %1481 = load i64, ptr %57, align 8, !tbaa !9
  %1482 = load i64, ptr %34, align 8, !tbaa !9
  %1483 = mul nsw i64 %1481, %1482
  %1484 = add nsw i64 %1480, %1483
  %1485 = getelementptr inbounds float, ptr %1479, i64 %1484
  %1486 = load float, ptr %1485, align 4, !tbaa !11
  %1487 = fmul float %1478, %1486
  %1488 = fneg float %1487
  %1489 = call float @llvm.fmuladd.f32(float %1469, float %1477, float %1488)
  store float %1489, ptr %95, align 4, !tbaa !11
  %1490 = load float, ptr %103, align 4, !tbaa !11
  %1491 = fneg float %1490
  %1492 = load ptr, ptr %24, align 8, !tbaa !5
  %1493 = load i64, ptr %57, align 8, !tbaa !9
  %1494 = load i64, ptr %57, align 8, !tbaa !9
  %1495 = load i64, ptr %34, align 8, !tbaa !9
  %1496 = mul nsw i64 %1494, %1495
  %1497 = add nsw i64 %1493, %1496
  %1498 = getelementptr inbounds float, ptr %1492, i64 %1497
  %1499 = load float, ptr %1498, align 4, !tbaa !11
  %1500 = fmul float %1491, %1499
  store float %1500, ptr %94, align 4, !tbaa !11
  %1501 = load float, ptr %72, align 4, !tbaa !11
  %1502 = fcmp oge float %1501, 0.000000e+00
  br i1 %1502, label %1503, label %1505

1503:                                             ; preds = %1457
  %1504 = load float, ptr %72, align 4, !tbaa !11
  br label %1508

1505:                                             ; preds = %1457
  %1506 = load float, ptr %72, align 4, !tbaa !11
  %1507 = fneg float %1506
  br label %1508

1508:                                             ; preds = %1505, %1503
  %1509 = phi float [ %1504, %1503 ], [ %1507, %1505 ]
  %1510 = fpext float %1509 to double
  %1511 = load float, ptr %95, align 4, !tbaa !11
  %1512 = fcmp oge float %1511, 0.000000e+00
  br i1 %1512, label %1513, label %1515

1513:                                             ; preds = %1508
  %1514 = load float, ptr %95, align 4, !tbaa !11
  br label %1518

1515:                                             ; preds = %1508
  %1516 = load float, ptr %95, align 4, !tbaa !11
  %1517 = fneg float %1516
  br label %1518

1518:                                             ; preds = %1515, %1513
  %1519 = phi float [ %1514, %1513 ], [ %1517, %1515 ]
  %1520 = fpext float %1519 to double
  %1521 = load float, ptr %94, align 4, !tbaa !11
  %1522 = fcmp oge float %1521, 0.000000e+00
  br i1 %1522, label %1523, label %1525

1523:                                             ; preds = %1518
  %1524 = load float, ptr %94, align 4, !tbaa !11
  br label %1528

1525:                                             ; preds = %1518
  %1526 = load float, ptr %94, align 4, !tbaa !11
  %1527 = fneg float %1526
  br label %1528

1528:                                             ; preds = %1525, %1523
  %1529 = phi float [ %1524, %1523 ], [ %1527, %1525 ]
  %1530 = fpext float %1529 to double
  %1531 = fadd double %1520, %1530
  %1532 = fcmp ogt double %1510, %1531
  br i1 %1532, label %1533, label %1572

1533:                                             ; preds = %1528
  %1534 = load ptr, ptr %32, align 8, !tbaa !5
  %1535 = load ptr, ptr %21, align 8, !tbaa !5
  %1536 = load i64, ptr %1535, align 8, !tbaa !9
  %1537 = shl i64 %1536, 1
  %1538 = load i64, ptr %57, align 8, !tbaa !9
  %1539 = add nsw i64 %1537, %1538
  %1540 = getelementptr inbounds float, ptr %1534, i64 %1539
  store float 1.000000e+00, ptr %1540, align 4, !tbaa !11
  %1541 = load ptr, ptr %32, align 8, !tbaa !5
  %1542 = load ptr, ptr %21, align 8, !tbaa !5
  %1543 = load i64, ptr %1542, align 8, !tbaa !9
  %1544 = mul nsw i64 %1543, 3
  %1545 = load i64, ptr %57, align 8, !tbaa !9
  %1546 = add nsw i64 %1544, %1545
  %1547 = getelementptr inbounds float, ptr %1541, i64 %1546
  store float 0.000000e+00, ptr %1547, align 4, !tbaa !11
  %1548 = load float, ptr %95, align 4, !tbaa !11
  %1549 = fneg float %1548
  %1550 = load float, ptr %72, align 4, !tbaa !11
  %1551 = fdiv float %1549, %1550
  %1552 = load ptr, ptr %32, align 8, !tbaa !5
  %1553 = load ptr, ptr %21, align 8, !tbaa !5
  %1554 = load i64, ptr %1553, align 8, !tbaa !9
  %1555 = shl i64 %1554, 1
  %1556 = load i64, ptr %57, align 8, !tbaa !9
  %1557 = add nsw i64 %1555, %1556
  %1558 = add nsw i64 %1557, 1
  %1559 = getelementptr inbounds float, ptr %1552, i64 %1558
  store float %1551, ptr %1559, align 4, !tbaa !11
  %1560 = load float, ptr %94, align 4, !tbaa !11
  %1561 = fneg float %1560
  %1562 = load float, ptr %72, align 4, !tbaa !11
  %1563 = fdiv float %1561, %1562
  %1564 = load ptr, ptr %32, align 8, !tbaa !5
  %1565 = load ptr, ptr %21, align 8, !tbaa !5
  %1566 = load i64, ptr %1565, align 8, !tbaa !9
  %1567 = mul nsw i64 %1566, 3
  %1568 = load i64, ptr %57, align 8, !tbaa !9
  %1569 = add nsw i64 %1567, %1568
  %1570 = add nsw i64 %1569, 1
  %1571 = getelementptr inbounds float, ptr %1564, i64 %1570
  store float %1563, ptr %1571, align 4, !tbaa !11
  br label %1655

1572:                                             ; preds = %1528
  %1573 = load ptr, ptr %32, align 8, !tbaa !5
  %1574 = load ptr, ptr %21, align 8, !tbaa !5
  %1575 = load i64, ptr %1574, align 8, !tbaa !9
  %1576 = shl i64 %1575, 1
  %1577 = load i64, ptr %57, align 8, !tbaa !9
  %1578 = add nsw i64 %1576, %1577
  %1579 = add nsw i64 %1578, 1
  %1580 = getelementptr inbounds float, ptr %1573, i64 %1579
  store float 1.000000e+00, ptr %1580, align 4, !tbaa !11
  %1581 = load ptr, ptr %32, align 8, !tbaa !5
  %1582 = load ptr, ptr %21, align 8, !tbaa !5
  %1583 = load i64, ptr %1582, align 8, !tbaa !9
  %1584 = mul nsw i64 %1583, 3
  %1585 = load i64, ptr %57, align 8, !tbaa !9
  %1586 = add nsw i64 %1584, %1585
  %1587 = add nsw i64 %1586, 1
  %1588 = getelementptr inbounds float, ptr %1581, i64 %1587
  store float 0.000000e+00, ptr %1588, align 4, !tbaa !11
  %1589 = load float, ptr %82, align 4, !tbaa !11
  %1590 = load ptr, ptr %22, align 8, !tbaa !5
  %1591 = load i64, ptr %57, align 8, !tbaa !9
  %1592 = load i64, ptr %57, align 8, !tbaa !9
  %1593 = add nsw i64 %1592, 1
  %1594 = load i64, ptr %36, align 8, !tbaa !9
  %1595 = mul nsw i64 %1593, %1594
  %1596 = add nsw i64 %1591, %1595
  %1597 = getelementptr inbounds float, ptr %1590, i64 %1596
  %1598 = load float, ptr %1597, align 4, !tbaa !11
  %1599 = fmul float %1589, %1598
  store float %1599, ptr %72, align 4, !tbaa !11
  %1600 = load float, ptr %108, align 4, !tbaa !11
  %1601 = load ptr, ptr %24, align 8, !tbaa !5
  %1602 = load i64, ptr %57, align 8, !tbaa !9
  %1603 = add nsw i64 %1602, 1
  %1604 = load i64, ptr %57, align 8, !tbaa !9
  %1605 = add nsw i64 %1604, 1
  %1606 = load i64, ptr %34, align 8, !tbaa !9
  %1607 = mul nsw i64 %1605, %1606
  %1608 = add nsw i64 %1603, %1607
  %1609 = getelementptr inbounds float, ptr %1601, i64 %1608
  %1610 = load float, ptr %1609, align 4, !tbaa !11
  %1611 = load float, ptr %82, align 4, !tbaa !11
  %1612 = load ptr, ptr %22, align 8, !tbaa !5
  %1613 = load i64, ptr %57, align 8, !tbaa !9
  %1614 = add nsw i64 %1613, 1
  %1615 = load i64, ptr %57, align 8, !tbaa !9
  %1616 = add nsw i64 %1615, 1
  %1617 = load i64, ptr %36, align 8, !tbaa !9
  %1618 = mul nsw i64 %1616, %1617
  %1619 = add nsw i64 %1614, %1618
  %1620 = getelementptr inbounds float, ptr %1612, i64 %1619
  %1621 = load float, ptr %1620, align 4, !tbaa !11
  %1622 = fmul float %1611, %1621
  %1623 = fneg float %1622
  %1624 = call float @llvm.fmuladd.f32(float %1600, float %1610, float %1623)
  %1625 = load float, ptr %72, align 4, !tbaa !11
  %1626 = fdiv float %1624, %1625
  %1627 = load ptr, ptr %32, align 8, !tbaa !5
  %1628 = load ptr, ptr %21, align 8, !tbaa !5
  %1629 = load i64, ptr %1628, align 8, !tbaa !9
  %1630 = shl i64 %1629, 1
  %1631 = load i64, ptr %57, align 8, !tbaa !9
  %1632 = add nsw i64 %1630, %1631
  %1633 = getelementptr inbounds float, ptr %1627, i64 %1632
  store float %1626, ptr %1633, align 4, !tbaa !11
  %1634 = load float, ptr %103, align 4, !tbaa !11
  %1635 = load ptr, ptr %24, align 8, !tbaa !5
  %1636 = load i64, ptr %57, align 8, !tbaa !9
  %1637 = add nsw i64 %1636, 1
  %1638 = load i64, ptr %57, align 8, !tbaa !9
  %1639 = add nsw i64 %1638, 1
  %1640 = load i64, ptr %34, align 8, !tbaa !9
  %1641 = mul nsw i64 %1639, %1640
  %1642 = add nsw i64 %1637, %1641
  %1643 = getelementptr inbounds float, ptr %1635, i64 %1642
  %1644 = load float, ptr %1643, align 4, !tbaa !11
  %1645 = fmul float %1634, %1644
  %1646 = load float, ptr %72, align 4, !tbaa !11
  %1647 = fdiv float %1645, %1646
  %1648 = load ptr, ptr %32, align 8, !tbaa !5
  %1649 = load ptr, ptr %21, align 8, !tbaa !5
  %1650 = load i64, ptr %1649, align 8, !tbaa !9
  %1651 = mul nsw i64 %1650, 3
  %1652 = load i64, ptr %57, align 8, !tbaa !9
  %1653 = add nsw i64 %1651, %1652
  %1654 = getelementptr inbounds float, ptr %1648, i64 %1653
  store float %1647, ptr %1654, align 4, !tbaa !11
  br label %1655

1655:                                             ; preds = %1572, %1533
  %1656 = load ptr, ptr %32, align 8, !tbaa !5
  %1657 = load ptr, ptr %21, align 8, !tbaa !5
  %1658 = load i64, ptr %1657, align 8, !tbaa !9
  %1659 = shl i64 %1658, 1
  %1660 = load i64, ptr %57, align 8, !tbaa !9
  %1661 = add nsw i64 %1659, %1660
  %1662 = getelementptr inbounds float, ptr %1656, i64 %1661
  %1663 = load float, ptr %1662, align 4, !tbaa !11
  store float %1663, ptr %47, align 4, !tbaa !11
  %1664 = load float, ptr %47, align 4, !tbaa !11
  %1665 = fcmp oge float %1664, 0.000000e+00
  br i1 %1665, label %1666, label %1668

1666:                                             ; preds = %1655
  %1667 = load float, ptr %47, align 4, !tbaa !11
  br label %1671

1668:                                             ; preds = %1655
  %1669 = load float, ptr %47, align 4, !tbaa !11
  %1670 = fneg float %1669
  br label %1671

1671:                                             ; preds = %1668, %1666
  %1672 = phi float [ %1667, %1666 ], [ %1670, %1668 ]
  %1673 = fpext float %1672 to double
  %1674 = load ptr, ptr %32, align 8, !tbaa !5
  %1675 = load ptr, ptr %21, align 8, !tbaa !5
  %1676 = load i64, ptr %1675, align 8, !tbaa !9
  %1677 = mul nsw i64 %1676, 3
  %1678 = load i64, ptr %57, align 8, !tbaa !9
  %1679 = add nsw i64 %1677, %1678
  %1680 = getelementptr inbounds float, ptr %1674, i64 %1679
  %1681 = load float, ptr %1680, align 4, !tbaa !11
  store float %1681, ptr %48, align 4, !tbaa !11
  %1682 = load float, ptr %48, align 4, !tbaa !11
  %1683 = fcmp oge float %1682, 0.000000e+00
  br i1 %1683, label %1684, label %1686

1684:                                             ; preds = %1671
  %1685 = load float, ptr %48, align 4, !tbaa !11
  br label %1689

1686:                                             ; preds = %1671
  %1687 = load float, ptr %48, align 4, !tbaa !11
  %1688 = fneg float %1687
  br label %1689

1689:                                             ; preds = %1686, %1684
  %1690 = phi float [ %1685, %1684 ], [ %1688, %1686 ]
  %1691 = fpext float %1690 to double
  %1692 = fadd double %1673, %1691
  %1693 = fptrunc double %1692 to float
  store float %1693, ptr %51, align 4, !tbaa !11
  %1694 = load ptr, ptr %32, align 8, !tbaa !5
  %1695 = load ptr, ptr %21, align 8, !tbaa !5
  %1696 = load i64, ptr %1695, align 8, !tbaa !9
  %1697 = shl i64 %1696, 1
  %1698 = load i64, ptr %57, align 8, !tbaa !9
  %1699 = add nsw i64 %1697, %1698
  %1700 = add nsw i64 %1699, 1
  %1701 = getelementptr inbounds float, ptr %1694, i64 %1700
  %1702 = load float, ptr %1701, align 4, !tbaa !11
  store float %1702, ptr %49, align 4, !tbaa !11
  %1703 = load float, ptr %49, align 4, !tbaa !11
  %1704 = fcmp oge float %1703, 0.000000e+00
  br i1 %1704, label %1705, label %1707

1705:                                             ; preds = %1689
  %1706 = load float, ptr %49, align 4, !tbaa !11
  br label %1710

1707:                                             ; preds = %1689
  %1708 = load float, ptr %49, align 4, !tbaa !11
  %1709 = fneg float %1708
  br label %1710

1710:                                             ; preds = %1707, %1705
  %1711 = phi float [ %1706, %1705 ], [ %1709, %1707 ]
  %1712 = fpext float %1711 to double
  %1713 = load ptr, ptr %32, align 8, !tbaa !5
  %1714 = load ptr, ptr %21, align 8, !tbaa !5
  %1715 = load i64, ptr %1714, align 8, !tbaa !9
  %1716 = mul nsw i64 %1715, 3
  %1717 = load i64, ptr %57, align 8, !tbaa !9
  %1718 = add nsw i64 %1716, %1717
  %1719 = add nsw i64 %1718, 1
  %1720 = getelementptr inbounds float, ptr %1713, i64 %1719
  %1721 = load float, ptr %1720, align 4, !tbaa !11
  store float %1721, ptr %50, align 4, !tbaa !11
  %1722 = load float, ptr %50, align 4, !tbaa !11
  %1723 = fcmp oge float %1722, 0.000000e+00
  br i1 %1723, label %1724, label %1726

1724:                                             ; preds = %1710
  %1725 = load float, ptr %50, align 4, !tbaa !11
  br label %1729

1726:                                             ; preds = %1710
  %1727 = load float, ptr %50, align 4, !tbaa !11
  %1728 = fneg float %1727
  br label %1729

1729:                                             ; preds = %1726, %1724
  %1730 = phi float [ %1725, %1724 ], [ %1728, %1726 ]
  %1731 = fpext float %1730 to double
  %1732 = fadd double %1712, %1731
  %1733 = fptrunc double %1732 to float
  store float %1733, ptr %52, align 4, !tbaa !11
  %1734 = load float, ptr %51, align 4, !tbaa !11
  %1735 = load float, ptr %52, align 4, !tbaa !11
  %1736 = fcmp oge float %1734, %1735
  br i1 %1736, label %1737, label %1739

1737:                                             ; preds = %1729
  %1738 = load float, ptr %51, align 4, !tbaa !11
  br label %1741

1739:                                             ; preds = %1729
  %1740 = load float, ptr %52, align 4, !tbaa !11
  br label %1741

1741:                                             ; preds = %1739, %1737
  %1742 = phi float [ %1738, %1737 ], [ %1740, %1739 ]
  %1743 = fpext float %1742 to double
  %1744 = fptrunc double %1743 to float
  store float %1744, ptr %73, align 4, !tbaa !11
  br label %1745

1745:                                             ; preds = %1741, %1260
  %1746 = load float, ptr %66, align 4, !tbaa !11
  %1747 = load float, ptr %98, align 4, !tbaa !11
  %1748 = fmul float %1746, %1747
  %1749 = load float, ptr %91, align 4, !tbaa !11
  %1750 = fmul float %1748, %1749
  store float %1750, ptr %47, align 4, !tbaa !11
  %1751 = load float, ptr %66, align 4, !tbaa !11
  %1752 = load float, ptr %99, align 4, !tbaa !11
  %1753 = fmul float %1751, %1752
  %1754 = load float, ptr %92, align 4, !tbaa !11
  %1755 = fmul float %1753, %1754
  store float %1755, ptr %48, align 4, !tbaa !11
  %1756 = load float, ptr %47, align 4, !tbaa !11
  %1757 = load float, ptr %48, align 4, !tbaa !11
  %1758 = fcmp oge float %1756, %1757
  br i1 %1758, label %1759, label %1761

1759:                                             ; preds = %1745
  %1760 = load float, ptr %47, align 4, !tbaa !11
  br label %1763

1761:                                             ; preds = %1745
  %1762 = load float, ptr %48, align 4, !tbaa !11
  br label %1763

1763:                                             ; preds = %1761, %1759
  %1764 = phi float [ %1760, %1759 ], [ %1762, %1761 ]
  store float %1764, ptr %47, align 4, !tbaa !11
  %1765 = load float, ptr %47, align 4, !tbaa !11
  %1766 = load float, ptr %110, align 4, !tbaa !11
  %1767 = fcmp oge float %1765, %1766
  br i1 %1767, label %1768, label %1770

1768:                                             ; preds = %1763
  %1769 = load float, ptr %47, align 4, !tbaa !11
  br label %1772

1770:                                             ; preds = %1763
  %1771 = load float, ptr %110, align 4, !tbaa !11
  br label %1772

1772:                                             ; preds = %1770, %1768
  %1773 = phi float [ %1769, %1768 ], [ %1771, %1770 ]
  %1774 = fpext float %1773 to double
  %1775 = fptrunc double %1774 to float
  store float %1775, ptr %71, align 4, !tbaa !11
  store i64 0, ptr %87, align 8, !tbaa !9
  %1776 = load ptr, ptr %21, align 8, !tbaa !5
  %1777 = load i64, ptr %1776, align 8, !tbaa !9
  store i64 %1777, ptr %43, align 8, !tbaa !9
  %1778 = load i64, ptr %57, align 8, !tbaa !9
  %1779 = load i64, ptr %62, align 8, !tbaa !9
  %1780 = add nsw i64 %1778, %1779
  store i64 %1780, ptr %54, align 8, !tbaa !9
  br label %1781

1781:                                             ; preds = %2263, %1772
  %1782 = load i64, ptr %54, align 8, !tbaa !9
  %1783 = load i64, ptr %43, align 8, !tbaa !9
  %1784 = icmp sle i64 %1782, %1783
  br i1 %1784, label %1785, label %2266

1785:                                             ; preds = %1781
  %1786 = load i64, ptr %87, align 8, !tbaa !9
  %1787 = icmp ne i64 %1786, 0
  br i1 %1787, label %1788, label %1789

1788:                                             ; preds = %1785
  store i64 0, ptr %87, align 8, !tbaa !9
  br label %2262

1789:                                             ; preds = %1785
  store i64 1, ptr %58, align 8, !tbaa !9
  %1790 = load ptr, ptr %24, align 8, !tbaa !5
  %1791 = load i64, ptr %54, align 8, !tbaa !9
  %1792 = load i64, ptr %54, align 8, !tbaa !9
  %1793 = load i64, ptr %34, align 8, !tbaa !9
  %1794 = mul nsw i64 %1792, %1793
  %1795 = add nsw i64 %1791, %1794
  %1796 = getelementptr inbounds float, ptr %1790, i64 %1795
  %1797 = load float, ptr %1796, align 4, !tbaa !11
  %1798 = getelementptr inbounds [2 x float], ptr %81, i64 0, i64 0
  store float %1797, ptr %1798, align 4, !tbaa !11
  %1799 = load i64, ptr %54, align 8, !tbaa !9
  %1800 = load ptr, ptr %21, align 8, !tbaa !5
  %1801 = load i64, ptr %1800, align 8, !tbaa !9
  %1802 = icmp slt i64 %1799, %1801
  br i1 %1802, label %1803, label %1827

1803:                                             ; preds = %1789
  %1804 = load ptr, ptr %22, align 8, !tbaa !5
  %1805 = load i64, ptr %54, align 8, !tbaa !9
  %1806 = add nsw i64 %1805, 1
  %1807 = load i64, ptr %54, align 8, !tbaa !9
  %1808 = load i64, ptr %36, align 8, !tbaa !9
  %1809 = mul nsw i64 %1807, %1808
  %1810 = add nsw i64 %1806, %1809
  %1811 = getelementptr inbounds float, ptr %1804, i64 %1810
  %1812 = load float, ptr %1811, align 4, !tbaa !11
  %1813 = fcmp une float %1812, 0.000000e+00
  br i1 %1813, label %1814, label %1826

1814:                                             ; preds = %1803
  store i64 1, ptr %87, align 8, !tbaa !9
  %1815 = load ptr, ptr %24, align 8, !tbaa !5
  %1816 = load i64, ptr %54, align 8, !tbaa !9
  %1817 = add nsw i64 %1816, 1
  %1818 = load i64, ptr %54, align 8, !tbaa !9
  %1819 = add nsw i64 %1818, 1
  %1820 = load i64, ptr %34, align 8, !tbaa !9
  %1821 = mul nsw i64 %1819, %1820
  %1822 = add nsw i64 %1817, %1821
  %1823 = getelementptr inbounds float, ptr %1815, i64 %1822
  %1824 = load float, ptr %1823, align 4, !tbaa !11
  %1825 = getelementptr inbounds [2 x float], ptr %81, i64 0, i64 1
  store float %1824, ptr %1825, align 4, !tbaa !11
  store i64 2, ptr %58, align 8, !tbaa !9
  br label %1826

1826:                                             ; preds = %1814, %1803
  br label %1827

1827:                                             ; preds = %1826, %1789
  %1828 = load float, ptr %73, align 4, !tbaa !11
  %1829 = fcmp oge float 1.000000e+00, %1828
  br i1 %1829, label %1830, label %1831

1830:                                             ; preds = %1827
  br label %1833

1831:                                             ; preds = %1827
  %1832 = load float, ptr %73, align 4, !tbaa !11
  br label %1833

1833:                                             ; preds = %1831, %1830
  %1834 = phi float [ 1.000000e+00, %1830 ], [ %1832, %1831 ]
  %1835 = fpext float %1834 to double
  %1836 = fdiv double 1.000000e+00, %1835
  %1837 = fptrunc double %1836 to float
  store float %1837, ptr %111, align 4, !tbaa !11
  %1838 = load ptr, ptr %32, align 8, !tbaa !5
  %1839 = load i64, ptr %54, align 8, !tbaa !9
  %1840 = getelementptr inbounds float, ptr %1838, i64 %1839
  %1841 = load float, ptr %1840, align 4, !tbaa !11
  store float %1841, ptr %47, align 4, !tbaa !11
  %1842 = load ptr, ptr %32, align 8, !tbaa !5
  %1843 = load ptr, ptr %21, align 8, !tbaa !5
  %1844 = load i64, ptr %1843, align 8, !tbaa !9
  %1845 = load i64, ptr %54, align 8, !tbaa !9
  %1846 = add nsw i64 %1844, %1845
  %1847 = getelementptr inbounds float, ptr %1842, i64 %1846
  %1848 = load float, ptr %1847, align 4, !tbaa !11
  store float %1848, ptr %48, align 4, !tbaa !11
  %1849 = load float, ptr %47, align 4, !tbaa !11
  %1850 = load float, ptr %48, align 4, !tbaa !11
  %1851 = fcmp oge float %1849, %1850
  br i1 %1851, label %1852, label %1854

1852:                                             ; preds = %1833
  %1853 = load float, ptr %47, align 4, !tbaa !11
  br label %1856

1854:                                             ; preds = %1833
  %1855 = load float, ptr %48, align 4, !tbaa !11
  br label %1856

1856:                                             ; preds = %1854, %1852
  %1857 = phi float [ %1853, %1852 ], [ %1855, %1854 ]
  store float %1857, ptr %47, align 4, !tbaa !11
  %1858 = load float, ptr %98, align 4, !tbaa !11
  %1859 = load ptr, ptr %32, align 8, !tbaa !5
  %1860 = load i64, ptr %54, align 8, !tbaa !9
  %1861 = getelementptr inbounds float, ptr %1859, i64 %1860
  %1862 = load float, ptr %1861, align 4, !tbaa !11
  %1863 = load float, ptr %99, align 4, !tbaa !11
  %1864 = load ptr, ptr %32, align 8, !tbaa !5
  %1865 = load ptr, ptr %21, align 8, !tbaa !5
  %1866 = load i64, ptr %1865, align 8, !tbaa !9
  %1867 = load i64, ptr %54, align 8, !tbaa !9
  %1868 = add nsw i64 %1866, %1867
  %1869 = getelementptr inbounds float, ptr %1864, i64 %1868
  %1870 = load float, ptr %1869, align 4, !tbaa !11
  %1871 = fmul float %1863, %1870
  %1872 = call float @llvm.fmuladd.f32(float %1858, float %1862, float %1871)
  store float %1872, ptr %48, align 4, !tbaa !11
  %1873 = load float, ptr %47, align 4, !tbaa !11
  %1874 = load float, ptr %48, align 4, !tbaa !11
  %1875 = fcmp oge float %1873, %1874
  br i1 %1875, label %1876, label %1878

1876:                                             ; preds = %1856
  %1877 = load float, ptr %47, align 4, !tbaa !11
  br label %1880

1878:                                             ; preds = %1856
  %1879 = load float, ptr %48, align 4, !tbaa !11
  br label %1880

1880:                                             ; preds = %1878, %1876
  %1881 = phi float [ %1877, %1876 ], [ %1879, %1878 ]
  %1882 = fpext float %1881 to double
  %1883 = fptrunc double %1882 to float
  store float %1883, ptr %72, align 4, !tbaa !11
  %1884 = load i64, ptr %87, align 8, !tbaa !9
  %1885 = icmp ne i64 %1884, 0
  br i1 %1885, label %1886, label %1947

1886:                                             ; preds = %1880
  %1887 = load float, ptr %72, align 4, !tbaa !11
  store float %1887, ptr %47, align 4, !tbaa !11
  %1888 = load ptr, ptr %32, align 8, !tbaa !5
  %1889 = load i64, ptr %54, align 8, !tbaa !9
  %1890 = add nsw i64 %1889, 1
  %1891 = getelementptr inbounds float, ptr %1888, i64 %1890
  %1892 = load float, ptr %1891, align 4, !tbaa !11
  store float %1892, ptr %48, align 4, !tbaa !11
  %1893 = load float, ptr %47, align 4, !tbaa !11
  %1894 = load float, ptr %48, align 4, !tbaa !11
  %1895 = fcmp oge float %1893, %1894
  br i1 %1895, label %1896, label %1898

1896:                                             ; preds = %1886
  %1897 = load float, ptr %47, align 4, !tbaa !11
  br label %1900

1898:                                             ; preds = %1886
  %1899 = load float, ptr %48, align 4, !tbaa !11
  br label %1900

1900:                                             ; preds = %1898, %1896
  %1901 = phi float [ %1897, %1896 ], [ %1899, %1898 ]
  store float %1901, ptr %47, align 4, !tbaa !11
  %1902 = load ptr, ptr %32, align 8, !tbaa !5
  %1903 = load ptr, ptr %21, align 8, !tbaa !5
  %1904 = load i64, ptr %1903, align 8, !tbaa !9
  %1905 = load i64, ptr %54, align 8, !tbaa !9
  %1906 = add nsw i64 %1904, %1905
  %1907 = add nsw i64 %1906, 1
  %1908 = getelementptr inbounds float, ptr %1902, i64 %1907
  %1909 = load float, ptr %1908, align 4, !tbaa !11
  store float %1909, ptr %48, align 4, !tbaa !11
  %1910 = load float, ptr %47, align 4, !tbaa !11
  %1911 = load float, ptr %48, align 4, !tbaa !11
  %1912 = fcmp oge float %1910, %1911
  br i1 %1912, label %1913, label %1915

1913:                                             ; preds = %1900
  %1914 = load float, ptr %47, align 4, !tbaa !11
  br label %1917

1915:                                             ; preds = %1900
  %1916 = load float, ptr %48, align 4, !tbaa !11
  br label %1917

1917:                                             ; preds = %1915, %1913
  %1918 = phi float [ %1914, %1913 ], [ %1916, %1915 ]
  store float %1918, ptr %47, align 4, !tbaa !11
  %1919 = load float, ptr %98, align 4, !tbaa !11
  %1920 = load ptr, ptr %32, align 8, !tbaa !5
  %1921 = load i64, ptr %54, align 8, !tbaa !9
  %1922 = add nsw i64 %1921, 1
  %1923 = getelementptr inbounds float, ptr %1920, i64 %1922
  %1924 = load float, ptr %1923, align 4, !tbaa !11
  %1925 = load float, ptr %99, align 4, !tbaa !11
  %1926 = load ptr, ptr %32, align 8, !tbaa !5
  %1927 = load ptr, ptr %21, align 8, !tbaa !5
  %1928 = load i64, ptr %1927, align 8, !tbaa !9
  %1929 = load i64, ptr %54, align 8, !tbaa !9
  %1930 = add nsw i64 %1928, %1929
  %1931 = add nsw i64 %1930, 1
  %1932 = getelementptr inbounds float, ptr %1926, i64 %1931
  %1933 = load float, ptr %1932, align 4, !tbaa !11
  %1934 = fmul float %1925, %1933
  %1935 = call float @llvm.fmuladd.f32(float %1919, float %1924, float %1934)
  store float %1935, ptr %48, align 4, !tbaa !11
  %1936 = load float, ptr %47, align 4, !tbaa !11
  %1937 = load float, ptr %48, align 4, !tbaa !11
  %1938 = fcmp oge float %1936, %1937
  br i1 %1938, label %1939, label %1941

1939:                                             ; preds = %1917
  %1940 = load float, ptr %47, align 4, !tbaa !11
  br label %1943

1941:                                             ; preds = %1917
  %1942 = load float, ptr %48, align 4, !tbaa !11
  br label %1943

1943:                                             ; preds = %1941, %1939
  %1944 = phi float [ %1940, %1939 ], [ %1942, %1941 ]
  %1945 = fpext float %1944 to double
  %1946 = fptrunc double %1945 to float
  store float %1946, ptr %72, align 4, !tbaa !11
  br label %1947

1947:                                             ; preds = %1943, %1880
  %1948 = load float, ptr %72, align 4, !tbaa !11
  %1949 = load float, ptr %112, align 4, !tbaa !11
  %1950 = load float, ptr %111, align 4, !tbaa !11
  %1951 = fmul float %1949, %1950
  %1952 = fcmp ogt float %1948, %1951
  br i1 %1952, label %1953, label %2001

1953:                                             ; preds = %1947
  %1954 = load i64, ptr %62, align 8, !tbaa !9
  %1955 = sub nsw i64 %1954, 1
  store i64 %1955, ptr %44, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %1956

1956:                                             ; preds = %1994, %1953
  %1957 = load i64, ptr %61, align 8, !tbaa !9
  %1958 = load i64, ptr %44, align 8, !tbaa !9
  %1959 = icmp sle i64 %1957, %1958
  br i1 %1959, label %1960, label %1997

1960:                                             ; preds = %1956
  %1961 = load i64, ptr %54, align 8, !tbaa !9
  %1962 = sub nsw i64 %1961, 1
  store i64 %1962, ptr %45, align 8, !tbaa !9
  %1963 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %1963, ptr %60, align 8, !tbaa !9
  br label %1964

1964:                                             ; preds = %1990, %1960
  %1965 = load i64, ptr %60, align 8, !tbaa !9
  %1966 = load i64, ptr %45, align 8, !tbaa !9
  %1967 = icmp sle i64 %1965, %1966
  br i1 %1967, label %1968, label %1993

1968:                                             ; preds = %1964
  %1969 = load float, ptr %111, align 4, !tbaa !11
  %1970 = load ptr, ptr %32, align 8, !tbaa !5
  %1971 = load i64, ptr %61, align 8, !tbaa !9
  %1972 = add nsw i64 %1971, 2
  %1973 = load ptr, ptr %21, align 8, !tbaa !5
  %1974 = load i64, ptr %1973, align 8, !tbaa !9
  %1975 = mul nsw i64 %1972, %1974
  %1976 = load i64, ptr %60, align 8, !tbaa !9
  %1977 = add nsw i64 %1975, %1976
  %1978 = getelementptr inbounds float, ptr %1970, i64 %1977
  %1979 = load float, ptr %1978, align 4, !tbaa !11
  %1980 = fmul float %1969, %1979
  %1981 = load ptr, ptr %32, align 8, !tbaa !5
  %1982 = load i64, ptr %61, align 8, !tbaa !9
  %1983 = add nsw i64 %1982, 2
  %1984 = load ptr, ptr %21, align 8, !tbaa !5
  %1985 = load i64, ptr %1984, align 8, !tbaa !9
  %1986 = mul nsw i64 %1983, %1985
  %1987 = load i64, ptr %60, align 8, !tbaa !9
  %1988 = add nsw i64 %1986, %1987
  %1989 = getelementptr inbounds float, ptr %1981, i64 %1988
  store float %1980, ptr %1989, align 4, !tbaa !11
  br label %1990

1990:                                             ; preds = %1968
  %1991 = load i64, ptr %60, align 8, !tbaa !9
  %1992 = add nsw i64 %1991, 1
  store i64 %1992, ptr %60, align 8, !tbaa !9
  br label %1964, !llvm.loop !21

1993:                                             ; preds = %1964
  br label %1994

1994:                                             ; preds = %1993
  %1995 = load i64, ptr %61, align 8, !tbaa !9
  %1996 = add nsw i64 %1995, 1
  store i64 %1996, ptr %61, align 8, !tbaa !9
  br label %1956, !llvm.loop !22

1997:                                             ; preds = %1956
  %1998 = load float, ptr %111, align 4, !tbaa !11
  %1999 = load float, ptr %73, align 4, !tbaa !11
  %2000 = fmul float %1999, %1998
  store float %2000, ptr %73, align 4, !tbaa !11
  br label %2001

2001:                                             ; preds = %1997, %1947
  %2002 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %2002, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %2003

2003:                                             ; preds = %2100, %2001
  %2004 = load i64, ptr %61, align 8, !tbaa !9
  %2005 = load i64, ptr %44, align 8, !tbaa !9
  %2006 = icmp sle i64 %2004, %2005
  br i1 %2006, label %2007, label %2103

2007:                                             ; preds = %2003
  %2008 = load i64, ptr %58, align 8, !tbaa !9
  store i64 %2008, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %55, align 8, !tbaa !9
  br label %2009

2009:                                             ; preds = %2096, %2007
  %2010 = load i64, ptr %55, align 8, !tbaa !9
  %2011 = load i64, ptr %45, align 8, !tbaa !9
  %2012 = icmp sle i64 %2010, %2011
  br i1 %2012, label %2013, label %2099

2013:                                             ; preds = %2009
  %2014 = load i64, ptr %55, align 8, !tbaa !9
  %2015 = load i64, ptr %61, align 8, !tbaa !9
  %2016 = shl i64 %2015, 1
  %2017 = add nsw i64 %2014, %2016
  %2018 = sub nsw i64 %2017, 3
  %2019 = getelementptr inbounds [4 x float], ptr %75, i64 0, i64 %2018
  store float 0.000000e+00, ptr %2019, align 4, !tbaa !11
  %2020 = load i64, ptr %55, align 8, !tbaa !9
  %2021 = load i64, ptr %61, align 8, !tbaa !9
  %2022 = shl i64 %2021, 1
  %2023 = add nsw i64 %2020, %2022
  %2024 = sub nsw i64 %2023, 3
  %2025 = getelementptr inbounds [4 x float], ptr %74, i64 0, i64 %2024
  store float 0.000000e+00, ptr %2025, align 4, !tbaa !11
  %2026 = load i64, ptr %54, align 8, !tbaa !9
  %2027 = sub nsw i64 %2026, 1
  store i64 %2027, ptr %46, align 8, !tbaa !9
  %2028 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %2028, ptr %60, align 8, !tbaa !9
  br label %2029

2029:                                             ; preds = %2092, %2013
  %2030 = load i64, ptr %60, align 8, !tbaa !9
  %2031 = load i64, ptr %46, align 8, !tbaa !9
  %2032 = icmp sle i64 %2030, %2031
  br i1 %2032, label %2033, label %2095

2033:                                             ; preds = %2029
  %2034 = load ptr, ptr %22, align 8, !tbaa !5
  %2035 = load i64, ptr %60, align 8, !tbaa !9
  %2036 = load i64, ptr %54, align 8, !tbaa !9
  %2037 = load i64, ptr %55, align 8, !tbaa !9
  %2038 = add nsw i64 %2036, %2037
  %2039 = sub nsw i64 %2038, 1
  %2040 = load i64, ptr %36, align 8, !tbaa !9
  %2041 = mul nsw i64 %2039, %2040
  %2042 = add nsw i64 %2035, %2041
  %2043 = getelementptr inbounds float, ptr %2034, i64 %2042
  %2044 = load float, ptr %2043, align 4, !tbaa !11
  %2045 = load ptr, ptr %32, align 8, !tbaa !5
  %2046 = load i64, ptr %61, align 8, !tbaa !9
  %2047 = add nsw i64 %2046, 1
  %2048 = load ptr, ptr %21, align 8, !tbaa !5
  %2049 = load i64, ptr %2048, align 8, !tbaa !9
  %2050 = mul nsw i64 %2047, %2049
  %2051 = load i64, ptr %60, align 8, !tbaa !9
  %2052 = add nsw i64 %2050, %2051
  %2053 = getelementptr inbounds float, ptr %2045, i64 %2052
  %2054 = load float, ptr %2053, align 4, !tbaa !11
  %2055 = load i64, ptr %55, align 8, !tbaa !9
  %2056 = load i64, ptr %61, align 8, !tbaa !9
  %2057 = shl i64 %2056, 1
  %2058 = add nsw i64 %2055, %2057
  %2059 = sub nsw i64 %2058, 3
  %2060 = getelementptr inbounds [4 x float], ptr %75, i64 0, i64 %2059
  %2061 = load float, ptr %2060, align 4, !tbaa !11
  %2062 = call float @llvm.fmuladd.f32(float %2044, float %2054, float %2061)
  store float %2062, ptr %2060, align 4, !tbaa !11
  %2063 = load ptr, ptr %24, align 8, !tbaa !5
  %2064 = load i64, ptr %60, align 8, !tbaa !9
  %2065 = load i64, ptr %54, align 8, !tbaa !9
  %2066 = load i64, ptr %55, align 8, !tbaa !9
  %2067 = add nsw i64 %2065, %2066
  %2068 = sub nsw i64 %2067, 1
  %2069 = load i64, ptr %34, align 8, !tbaa !9
  %2070 = mul nsw i64 %2068, %2069
  %2071 = add nsw i64 %2064, %2070
  %2072 = getelementptr inbounds float, ptr %2063, i64 %2071
  %2073 = load float, ptr %2072, align 4, !tbaa !11
  %2074 = load ptr, ptr %32, align 8, !tbaa !5
  %2075 = load i64, ptr %61, align 8, !tbaa !9
  %2076 = add nsw i64 %2075, 1
  %2077 = load ptr, ptr %21, align 8, !tbaa !5
  %2078 = load i64, ptr %2077, align 8, !tbaa !9
  %2079 = mul nsw i64 %2076, %2078
  %2080 = load i64, ptr %60, align 8, !tbaa !9
  %2081 = add nsw i64 %2079, %2080
  %2082 = getelementptr inbounds float, ptr %2074, i64 %2081
  %2083 = load float, ptr %2082, align 4, !tbaa !11
  %2084 = load i64, ptr %55, align 8, !tbaa !9
  %2085 = load i64, ptr %61, align 8, !tbaa !9
  %2086 = shl i64 %2085, 1
  %2087 = add nsw i64 %2084, %2086
  %2088 = sub nsw i64 %2087, 3
  %2089 = getelementptr inbounds [4 x float], ptr %74, i64 0, i64 %2088
  %2090 = load float, ptr %2089, align 4, !tbaa !11
  %2091 = call float @llvm.fmuladd.f32(float %2073, float %2083, float %2090)
  store float %2091, ptr %2089, align 4, !tbaa !11
  br label %2092

2092:                                             ; preds = %2033
  %2093 = load i64, ptr %60, align 8, !tbaa !9
  %2094 = add nsw i64 %2093, 1
  store i64 %2094, ptr %60, align 8, !tbaa !9
  br label %2029, !llvm.loop !23

2095:                                             ; preds = %2029
  br label %2096

2096:                                             ; preds = %2095
  %2097 = load i64, ptr %55, align 8, !tbaa !9
  %2098 = add nsw i64 %2097, 1
  store i64 %2098, ptr %55, align 8, !tbaa !9
  br label %2009, !llvm.loop !24

2099:                                             ; preds = %2009
  br label %2100

2100:                                             ; preds = %2099
  %2101 = load i64, ptr %61, align 8, !tbaa !9
  %2102 = add nsw i64 %2101, 1
  store i64 %2102, ptr %61, align 8, !tbaa !9
  br label %2003, !llvm.loop !25

2103:                                             ; preds = %2003
  %2104 = load i64, ptr %58, align 8, !tbaa !9
  store i64 %2104, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %55, align 8, !tbaa !9
  br label %2105

2105:                                             ; preds = %2176, %2103
  %2106 = load i64, ptr %55, align 8, !tbaa !9
  %2107 = load i64, ptr %44, align 8, !tbaa !9
  %2108 = icmp sle i64 %2106, %2107
  br i1 %2108, label %2109, label %2179

2109:                                             ; preds = %2105
  %2110 = load i64, ptr %114, align 8, !tbaa !9
  %2111 = icmp ne i64 %2110, 0
  br i1 %2111, label %2112, label %2158

2112:                                             ; preds = %2109
  %2113 = load float, ptr %82, align 4, !tbaa !11
  %2114 = fneg float %2113
  %2115 = load i64, ptr %55, align 8, !tbaa !9
  %2116 = sub nsw i64 %2115, 1
  %2117 = getelementptr inbounds [4 x float], ptr %75, i64 0, i64 %2116
  %2118 = load float, ptr %2117, align 4, !tbaa !11
  %2119 = load float, ptr %108, align 4, !tbaa !11
  %2120 = load i64, ptr %55, align 8, !tbaa !9
  %2121 = sub nsw i64 %2120, 1
  %2122 = getelementptr inbounds [4 x float], ptr %74, i64 0, i64 %2121
  %2123 = load float, ptr %2122, align 4, !tbaa !11
  %2124 = fmul float %2119, %2123
  %2125 = call float @llvm.fmuladd.f32(float %2114, float %2118, float %2124)
  %2126 = load float, ptr %103, align 4, !tbaa !11
  %2127 = load i64, ptr %55, align 8, !tbaa !9
  %2128 = add nsw i64 %2127, 1
  %2129 = getelementptr inbounds [4 x float], ptr %74, i64 0, i64 %2128
  %2130 = load float, ptr %2129, align 4, !tbaa !11
  %2131 = fneg float %2126
  %2132 = call float @llvm.fmuladd.f32(float %2131, float %2130, float %2125)
  %2133 = load i64, ptr %55, align 8, !tbaa !9
  %2134 = sub nsw i64 %2133, 1
  %2135 = getelementptr inbounds [4 x float], ptr %67, i64 0, i64 %2134
  store float %2132, ptr %2135, align 4, !tbaa !11
  %2136 = load float, ptr %82, align 4, !tbaa !11
  %2137 = fneg float %2136
  %2138 = load i64, ptr %55, align 8, !tbaa !9
  %2139 = add nsw i64 %2138, 1
  %2140 = getelementptr inbounds [4 x float], ptr %75, i64 0, i64 %2139
  %2141 = load float, ptr %2140, align 4, !tbaa !11
  %2142 = load float, ptr %108, align 4, !tbaa !11
  %2143 = load i64, ptr %55, align 8, !tbaa !9
  %2144 = add nsw i64 %2143, 1
  %2145 = getelementptr inbounds [4 x float], ptr %74, i64 0, i64 %2144
  %2146 = load float, ptr %2145, align 4, !tbaa !11
  %2147 = fmul float %2142, %2146
  %2148 = call float @llvm.fmuladd.f32(float %2137, float %2141, float %2147)
  %2149 = load float, ptr %103, align 4, !tbaa !11
  %2150 = load i64, ptr %55, align 8, !tbaa !9
  %2151 = sub nsw i64 %2150, 1
  %2152 = getelementptr inbounds [4 x float], ptr %74, i64 0, i64 %2151
  %2153 = load float, ptr %2152, align 4, !tbaa !11
  %2154 = call float @llvm.fmuladd.f32(float %2149, float %2153, float %2148)
  %2155 = load i64, ptr %55, align 8, !tbaa !9
  %2156 = add nsw i64 %2155, 1
  %2157 = getelementptr inbounds [4 x float], ptr %67, i64 0, i64 %2156
  store float %2154, ptr %2157, align 4, !tbaa !11
  br label %2175

2158:                                             ; preds = %2109
  %2159 = load float, ptr %82, align 4, !tbaa !11
  %2160 = fneg float %2159
  %2161 = load i64, ptr %55, align 8, !tbaa !9
  %2162 = sub nsw i64 %2161, 1
  %2163 = getelementptr inbounds [4 x float], ptr %75, i64 0, i64 %2162
  %2164 = load float, ptr %2163, align 4, !tbaa !11
  %2165 = load float, ptr %108, align 4, !tbaa !11
  %2166 = load i64, ptr %55, align 8, !tbaa !9
  %2167 = sub nsw i64 %2166, 1
  %2168 = getelementptr inbounds [4 x float], ptr %74, i64 0, i64 %2167
  %2169 = load float, ptr %2168, align 4, !tbaa !11
  %2170 = fmul float %2165, %2169
  %2171 = call float @llvm.fmuladd.f32(float %2160, float %2164, float %2170)
  %2172 = load i64, ptr %55, align 8, !tbaa !9
  %2173 = sub nsw i64 %2172, 1
  %2174 = getelementptr inbounds [4 x float], ptr %67, i64 0, i64 %2173
  store float %2171, ptr %2174, align 4, !tbaa !11
  br label %2175

2175:                                             ; preds = %2158, %2112
  br label %2176

2176:                                             ; preds = %2175
  %2177 = load i64, ptr %55, align 8, !tbaa !9
  %2178 = add nsw i64 %2177, 1
  store i64 %2178, ptr %55, align 8, !tbaa !9
  br label %2105, !llvm.loop !26

2179:                                             ; preds = %2105
  %2180 = load ptr, ptr %22, align 8, !tbaa !5
  %2181 = load i64, ptr %54, align 8, !tbaa !9
  %2182 = load i64, ptr %54, align 8, !tbaa !9
  %2183 = load i64, ptr %36, align 8, !tbaa !9
  %2184 = mul nsw i64 %2182, %2183
  %2185 = add nsw i64 %2181, %2184
  %2186 = getelementptr inbounds float, ptr %2180, i64 %2185
  %2187 = load ptr, ptr %23, align 8, !tbaa !5
  %2188 = getelementptr inbounds [2 x float], ptr %81, i64 0, i64 0
  %2189 = getelementptr inbounds [2 x float], ptr %81, i64 0, i64 1
  %2190 = getelementptr inbounds [4 x float], ptr %67, i64 0, i64 0
  %2191 = load ptr, ptr %32, align 8, !tbaa !5
  %2192 = load ptr, ptr %21, align 8, !tbaa !5
  %2193 = load i64, ptr %2192, align 8, !tbaa !9
  %2194 = shl i64 %2193, 1
  %2195 = load i64, ptr %54, align 8, !tbaa !9
  %2196 = add nsw i64 %2194, %2195
  %2197 = getelementptr inbounds float, ptr %2191, i64 %2196
  %2198 = load ptr, ptr %21, align 8, !tbaa !5
  %2199 = call i32 @slaln2_(ptr noundef @c_true, ptr noundef %58, ptr noundef %62, ptr noundef %71, ptr noundef %82, ptr noundef %2186, ptr noundef %2187, ptr noundef %2188, ptr noundef %2189, ptr noundef %2190, ptr noundef @c__2, ptr noundef %108, ptr noundef %103, ptr noundef %2197, ptr noundef %2198, ptr noundef %83, ptr noundef %72, ptr noundef %88)
  %2200 = load float, ptr %83, align 4, !tbaa !11
  %2201 = fcmp olt float %2200, 1.000000e+00
  br i1 %2201, label %2202, label %2250

2202:                                             ; preds = %2179
  %2203 = load i64, ptr %62, align 8, !tbaa !9
  %2204 = sub nsw i64 %2203, 1
  store i64 %2204, ptr %44, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %2205

2205:                                             ; preds = %2243, %2202
  %2206 = load i64, ptr %61, align 8, !tbaa !9
  %2207 = load i64, ptr %44, align 8, !tbaa !9
  %2208 = icmp sle i64 %2206, %2207
  br i1 %2208, label %2209, label %2246

2209:                                             ; preds = %2205
  %2210 = load i64, ptr %54, align 8, !tbaa !9
  %2211 = sub nsw i64 %2210, 1
  store i64 %2211, ptr %45, align 8, !tbaa !9
  %2212 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %2212, ptr %60, align 8, !tbaa !9
  br label %2213

2213:                                             ; preds = %2239, %2209
  %2214 = load i64, ptr %60, align 8, !tbaa !9
  %2215 = load i64, ptr %45, align 8, !tbaa !9
  %2216 = icmp sle i64 %2214, %2215
  br i1 %2216, label %2217, label %2242

2217:                                             ; preds = %2213
  %2218 = load float, ptr %83, align 4, !tbaa !11
  %2219 = load ptr, ptr %32, align 8, !tbaa !5
  %2220 = load i64, ptr %61, align 8, !tbaa !9
  %2221 = add nsw i64 %2220, 2
  %2222 = load ptr, ptr %21, align 8, !tbaa !5
  %2223 = load i64, ptr %2222, align 8, !tbaa !9
  %2224 = mul nsw i64 %2221, %2223
  %2225 = load i64, ptr %60, align 8, !tbaa !9
  %2226 = add nsw i64 %2224, %2225
  %2227 = getelementptr inbounds float, ptr %2219, i64 %2226
  %2228 = load float, ptr %2227, align 4, !tbaa !11
  %2229 = fmul float %2218, %2228
  %2230 = load ptr, ptr %32, align 8, !tbaa !5
  %2231 = load i64, ptr %61, align 8, !tbaa !9
  %2232 = add nsw i64 %2231, 2
  %2233 = load ptr, ptr %21, align 8, !tbaa !5
  %2234 = load i64, ptr %2233, align 8, !tbaa !9
  %2235 = mul nsw i64 %2232, %2234
  %2236 = load i64, ptr %60, align 8, !tbaa !9
  %2237 = add nsw i64 %2235, %2236
  %2238 = getelementptr inbounds float, ptr %2230, i64 %2237
  store float %2229, ptr %2238, align 4, !tbaa !11
  br label %2239

2239:                                             ; preds = %2217
  %2240 = load i64, ptr %60, align 8, !tbaa !9
  %2241 = add nsw i64 %2240, 1
  store i64 %2241, ptr %60, align 8, !tbaa !9
  br label %2213, !llvm.loop !27

2242:                                             ; preds = %2213
  br label %2243

2243:                                             ; preds = %2242
  %2244 = load i64, ptr %61, align 8, !tbaa !9
  %2245 = add nsw i64 %2244, 1
  store i64 %2245, ptr %61, align 8, !tbaa !9
  br label %2205, !llvm.loop !28

2246:                                             ; preds = %2205
  %2247 = load float, ptr %83, align 4, !tbaa !11
  %2248 = load float, ptr %73, align 4, !tbaa !11
  %2249 = fmul float %2247, %2248
  store float %2249, ptr %73, align 4, !tbaa !11
  br label %2250

2250:                                             ; preds = %2246, %2179
  %2251 = load float, ptr %73, align 4, !tbaa !11
  %2252 = load float, ptr %72, align 4, !tbaa !11
  %2253 = fcmp oge float %2251, %2252
  br i1 %2253, label %2254, label %2256

2254:                                             ; preds = %2250
  %2255 = load float, ptr %73, align 4, !tbaa !11
  br label %2258

2256:                                             ; preds = %2250
  %2257 = load float, ptr %72, align 4, !tbaa !11
  br label %2258

2258:                                             ; preds = %2256, %2254
  %2259 = phi float [ %2255, %2254 ], [ %2257, %2256 ]
  %2260 = fpext float %2259 to double
  %2261 = fptrunc double %2260 to float
  store float %2261, ptr %73, align 4, !tbaa !11
  br label %2262

2262:                                             ; preds = %2258, %1788
  br label %2263

2263:                                             ; preds = %2262
  %2264 = load i64, ptr %54, align 8, !tbaa !9
  %2265 = add nsw i64 %2264, 1
  store i64 %2265, ptr %54, align 8, !tbaa !9
  br label %1781, !llvm.loop !29

2266:                                             ; preds = %1781
  %2267 = load i64, ptr %69, align 8, !tbaa !9
  %2268 = add nsw i64 %2267, 1
  store i64 %2268, ptr %69, align 8, !tbaa !9
  %2269 = load i64, ptr %102, align 8, !tbaa !9
  %2270 = icmp ne i64 %2269, 0
  br i1 %2270, label %2271, label %2330

2271:                                             ; preds = %2266
  %2272 = load i64, ptr %62, align 8, !tbaa !9
  %2273 = sub nsw i64 %2272, 1
  store i64 %2273, ptr %43, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %2274

2274:                                             ; preds = %2310, %2271
  %2275 = load i64, ptr %61, align 8, !tbaa !9
  %2276 = load i64, ptr %43, align 8, !tbaa !9
  %2277 = icmp sle i64 %2275, %2276
  br i1 %2277, label %2278, label %2313

2278:                                             ; preds = %2274
  %2279 = load ptr, ptr %21, align 8, !tbaa !5
  %2280 = load i64, ptr %2279, align 8, !tbaa !9
  %2281 = add nsw i64 %2280, 1
  %2282 = load i64, ptr %57, align 8, !tbaa !9
  %2283 = sub nsw i64 %2281, %2282
  store i64 %2283, ptr %44, align 8, !tbaa !9
  %2284 = load ptr, ptr %21, align 8, !tbaa !5
  %2285 = load ptr, ptr %26, align 8, !tbaa !5
  %2286 = load i64, ptr %57, align 8, !tbaa !9
  %2287 = load i64, ptr %38, align 8, !tbaa !9
  %2288 = mul nsw i64 %2286, %2287
  %2289 = add nsw i64 %2288, 1
  %2290 = getelementptr inbounds float, ptr %2285, i64 %2289
  %2291 = load ptr, ptr %27, align 8, !tbaa !5
  %2292 = load ptr, ptr %32, align 8, !tbaa !5
  %2293 = load i64, ptr %61, align 8, !tbaa !9
  %2294 = add nsw i64 %2293, 2
  %2295 = load ptr, ptr %21, align 8, !tbaa !5
  %2296 = load i64, ptr %2295, align 8, !tbaa !9
  %2297 = mul nsw i64 %2294, %2296
  %2298 = load i64, ptr %57, align 8, !tbaa !9
  %2299 = add nsw i64 %2297, %2298
  %2300 = getelementptr inbounds float, ptr %2292, i64 %2299
  %2301 = load ptr, ptr %32, align 8, !tbaa !5
  %2302 = load i64, ptr %61, align 8, !tbaa !9
  %2303 = add nsw i64 %2302, 4
  %2304 = load ptr, ptr %21, align 8, !tbaa !5
  %2305 = load i64, ptr %2304, align 8, !tbaa !9
  %2306 = mul nsw i64 %2303, %2305
  %2307 = add nsw i64 %2306, 1
  %2308 = getelementptr inbounds float, ptr %2301, i64 %2307
  %2309 = call i32 @f2c_sgemv(ptr noundef @.str.9, ptr noundef %2284, ptr noundef %44, ptr noundef @c_b34, ptr noundef %2290, ptr noundef %2291, ptr noundef %2300, ptr noundef @c__1, ptr noundef @c_b36, ptr noundef %2308, ptr noundef @c__1)
  br label %2310

2310:                                             ; preds = %2278
  %2311 = load i64, ptr %61, align 8, !tbaa !9
  %2312 = add nsw i64 %2311, 1
  store i64 %2312, ptr %61, align 8, !tbaa !9
  br label %2274, !llvm.loop !30

2313:                                             ; preds = %2274
  %2314 = load ptr, ptr %21, align 8, !tbaa !5
  %2315 = load ptr, ptr %32, align 8, !tbaa !5
  %2316 = load ptr, ptr %21, align 8, !tbaa !5
  %2317 = load i64, ptr %2316, align 8, !tbaa !9
  %2318 = shl i64 %2317, 2
  %2319 = add nsw i64 %2318, 1
  %2320 = getelementptr inbounds float, ptr %2315, i64 %2319
  %2321 = load ptr, ptr %21, align 8, !tbaa !5
  %2322 = load ptr, ptr %26, align 8, !tbaa !5
  %2323 = load i64, ptr %57, align 8, !tbaa !9
  %2324 = load i64, ptr %38, align 8, !tbaa !9
  %2325 = mul nsw i64 %2323, %2324
  %2326 = add nsw i64 %2325, 1
  %2327 = getelementptr inbounds float, ptr %2322, i64 %2326
  %2328 = load ptr, ptr %27, align 8, !tbaa !5
  %2329 = call i32 @slacpy_(ptr noundef @.str.10, ptr noundef %2314, ptr noundef %62, ptr noundef %2320, ptr noundef %2321, ptr noundef %2327, ptr noundef %2328)
  store i64 1, ptr %68, align 8, !tbaa !9
  br label %2348

2330:                                             ; preds = %2266
  %2331 = load ptr, ptr %21, align 8, !tbaa !5
  %2332 = load ptr, ptr %32, align 8, !tbaa !5
  %2333 = load ptr, ptr %21, align 8, !tbaa !5
  %2334 = load i64, ptr %2333, align 8, !tbaa !9
  %2335 = shl i64 %2334, 1
  %2336 = add nsw i64 %2335, 1
  %2337 = getelementptr inbounds float, ptr %2332, i64 %2336
  %2338 = load ptr, ptr %21, align 8, !tbaa !5
  %2339 = load ptr, ptr %26, align 8, !tbaa !5
  %2340 = load i64, ptr %69, align 8, !tbaa !9
  %2341 = load i64, ptr %38, align 8, !tbaa !9
  %2342 = mul nsw i64 %2340, %2341
  %2343 = add nsw i64 %2342, 1
  %2344 = getelementptr inbounds float, ptr %2339, i64 %2343
  %2345 = load ptr, ptr %27, align 8, !tbaa !5
  %2346 = call i32 @slacpy_(ptr noundef @.str.10, ptr noundef %2331, ptr noundef %62, ptr noundef %2337, ptr noundef %2338, ptr noundef %2344, ptr noundef %2345)
  %2347 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %2347, ptr %68, align 8, !tbaa !9
  br label %2348

2348:                                             ; preds = %2330, %2313
  store float 0.000000e+00, ptr %73, align 4, !tbaa !11
  %2349 = load i64, ptr %114, align 8, !tbaa !9
  %2350 = icmp ne i64 %2349, 0
  br i1 %2350, label %2351, label %2415

2351:                                             ; preds = %2348
  %2352 = load ptr, ptr %21, align 8, !tbaa !5
  %2353 = load i64, ptr %2352, align 8, !tbaa !9
  store i64 %2353, ptr %43, align 8, !tbaa !9
  %2354 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %2354, ptr %54, align 8, !tbaa !9
  br label %2355

2355:                                             ; preds = %2411, %2351
  %2356 = load i64, ptr %54, align 8, !tbaa !9
  %2357 = load i64, ptr %43, align 8, !tbaa !9
  %2358 = icmp sle i64 %2356, %2357
  br i1 %2358, label %2359, label %2414

2359:                                             ; preds = %2355
  %2360 = load float, ptr %73, align 4, !tbaa !11
  store float %2360, ptr %49, align 4, !tbaa !11
  %2361 = load ptr, ptr %26, align 8, !tbaa !5
  %2362 = load i64, ptr %54, align 8, !tbaa !9
  %2363 = load i64, ptr %69, align 8, !tbaa !9
  %2364 = load i64, ptr %38, align 8, !tbaa !9
  %2365 = mul nsw i64 %2363, %2364
  %2366 = add nsw i64 %2362, %2365
  %2367 = getelementptr inbounds float, ptr %2361, i64 %2366
  %2368 = load float, ptr %2367, align 4, !tbaa !11
  store float %2368, ptr %47, align 4, !tbaa !11
  %2369 = load float, ptr %47, align 4, !tbaa !11
  %2370 = fcmp oge float %2369, 0.000000e+00
  br i1 %2370, label %2371, label %2373

2371:                                             ; preds = %2359
  %2372 = load float, ptr %47, align 4, !tbaa !11
  br label %2376

2373:                                             ; preds = %2359
  %2374 = load float, ptr %47, align 4, !tbaa !11
  %2375 = fneg float %2374
  br label %2376

2376:                                             ; preds = %2373, %2371
  %2377 = phi float [ %2372, %2371 ], [ %2375, %2373 ]
  %2378 = fpext float %2377 to double
  %2379 = load ptr, ptr %26, align 8, !tbaa !5
  %2380 = load i64, ptr %54, align 8, !tbaa !9
  %2381 = load i64, ptr %69, align 8, !tbaa !9
  %2382 = add nsw i64 %2381, 1
  %2383 = load i64, ptr %38, align 8, !tbaa !9
  %2384 = mul nsw i64 %2382, %2383
  %2385 = add nsw i64 %2380, %2384
  %2386 = getelementptr inbounds float, ptr %2379, i64 %2385
  %2387 = load float, ptr %2386, align 4, !tbaa !11
  store float %2387, ptr %48, align 4, !tbaa !11
  %2388 = load float, ptr %48, align 4, !tbaa !11
  %2389 = fcmp oge float %2388, 0.000000e+00
  br i1 %2389, label %2390, label %2392

2390:                                             ; preds = %2376
  %2391 = load float, ptr %48, align 4, !tbaa !11
  br label %2395

2392:                                             ; preds = %2376
  %2393 = load float, ptr %48, align 4, !tbaa !11
  %2394 = fneg float %2393
  br label %2395

2395:                                             ; preds = %2392, %2390
  %2396 = phi float [ %2391, %2390 ], [ %2394, %2392 ]
  %2397 = fpext float %2396 to double
  %2398 = fadd double %2378, %2397
  %2399 = fptrunc double %2398 to float
  store float %2399, ptr %50, align 4, !tbaa !11
  %2400 = load float, ptr %49, align 4, !tbaa !11
  %2401 = load float, ptr %50, align 4, !tbaa !11
  %2402 = fcmp oge float %2400, %2401
  br i1 %2402, label %2403, label %2405

2403:                                             ; preds = %2395
  %2404 = load float, ptr %49, align 4, !tbaa !11
  br label %2407

2405:                                             ; preds = %2395
  %2406 = load float, ptr %50, align 4, !tbaa !11
  br label %2407

2407:                                             ; preds = %2405, %2403
  %2408 = phi float [ %2404, %2403 ], [ %2406, %2405 ]
  %2409 = fpext float %2408 to double
  %2410 = fptrunc double %2409 to float
  store float %2410, ptr %73, align 4, !tbaa !11
  br label %2411

2411:                                             ; preds = %2407
  %2412 = load i64, ptr %54, align 8, !tbaa !9
  %2413 = add nsw i64 %2412, 1
  store i64 %2413, ptr %54, align 8, !tbaa !9
  br label %2355, !llvm.loop !31

2414:                                             ; preds = %2355
  br label %2459

2415:                                             ; preds = %2348
  %2416 = load ptr, ptr %21, align 8, !tbaa !5
  %2417 = load i64, ptr %2416, align 8, !tbaa !9
  store i64 %2417, ptr %43, align 8, !tbaa !9
  %2418 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %2418, ptr %54, align 8, !tbaa !9
  br label %2419

2419:                                             ; preds = %2455, %2415
  %2420 = load i64, ptr %54, align 8, !tbaa !9
  %2421 = load i64, ptr %43, align 8, !tbaa !9
  %2422 = icmp sle i64 %2420, %2421
  br i1 %2422, label %2423, label %2458

2423:                                             ; preds = %2419
  %2424 = load float, ptr %73, align 4, !tbaa !11
  store float %2424, ptr %48, align 4, !tbaa !11
  %2425 = load ptr, ptr %26, align 8, !tbaa !5
  %2426 = load i64, ptr %54, align 8, !tbaa !9
  %2427 = load i64, ptr %69, align 8, !tbaa !9
  %2428 = load i64, ptr %38, align 8, !tbaa !9
  %2429 = mul nsw i64 %2427, %2428
  %2430 = add nsw i64 %2426, %2429
  %2431 = getelementptr inbounds float, ptr %2425, i64 %2430
  %2432 = load float, ptr %2431, align 4, !tbaa !11
  store float %2432, ptr %47, align 4, !tbaa !11
  %2433 = load float, ptr %47, align 4, !tbaa !11
  %2434 = fcmp oge float %2433, 0.000000e+00
  br i1 %2434, label %2435, label %2437

2435:                                             ; preds = %2423
  %2436 = load float, ptr %47, align 4, !tbaa !11
  br label %2440

2437:                                             ; preds = %2423
  %2438 = load float, ptr %47, align 4, !tbaa !11
  %2439 = fneg float %2438
  br label %2440

2440:                                             ; preds = %2437, %2435
  %2441 = phi float [ %2436, %2435 ], [ %2439, %2437 ]
  %2442 = fpext float %2441 to double
  %2443 = fptrunc double %2442 to float
  store float %2443, ptr %49, align 4, !tbaa !11
  %2444 = load float, ptr %48, align 4, !tbaa !11
  %2445 = load float, ptr %49, align 4, !tbaa !11
  %2446 = fcmp oge float %2444, %2445
  br i1 %2446, label %2447, label %2449

2447:                                             ; preds = %2440
  %2448 = load float, ptr %48, align 4, !tbaa !11
  br label %2451

2449:                                             ; preds = %2440
  %2450 = load float, ptr %49, align 4, !tbaa !11
  br label %2451

2451:                                             ; preds = %2449, %2447
  %2452 = phi float [ %2448, %2447 ], [ %2450, %2449 ]
  %2453 = fpext float %2452 to double
  %2454 = fptrunc double %2453 to float
  store float %2454, ptr %73, align 4, !tbaa !11
  br label %2455

2455:                                             ; preds = %2451
  %2456 = load i64, ptr %54, align 8, !tbaa !9
  %2457 = add nsw i64 %2456, 1
  store i64 %2457, ptr %54, align 8, !tbaa !9
  br label %2419, !llvm.loop !32

2458:                                             ; preds = %2419
  br label %2459

2459:                                             ; preds = %2458, %2414
  %2460 = load float, ptr %73, align 4, !tbaa !11
  %2461 = load float, ptr %110, align 4, !tbaa !11
  %2462 = fcmp ogt float %2460, %2461
  br i1 %2462, label %2463, label %2510

2463:                                             ; preds = %2459
  %2464 = load float, ptr %73, align 4, !tbaa !11
  %2465 = fdiv float 1.000000e+00, %2464
  store float %2465, ptr %111, align 4, !tbaa !11
  %2466 = load i64, ptr %62, align 8, !tbaa !9
  %2467 = sub nsw i64 %2466, 1
  store i64 %2467, ptr %43, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %2468

2468:                                             ; preds = %2506, %2463
  %2469 = load i64, ptr %61, align 8, !tbaa !9
  %2470 = load i64, ptr %43, align 8, !tbaa !9
  %2471 = icmp sle i64 %2469, %2470
  br i1 %2471, label %2472, label %2509

2472:                                             ; preds = %2468
  %2473 = load ptr, ptr %21, align 8, !tbaa !5
  %2474 = load i64, ptr %2473, align 8, !tbaa !9
  store i64 %2474, ptr %44, align 8, !tbaa !9
  %2475 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %2475, ptr %60, align 8, !tbaa !9
  br label %2476

2476:                                             ; preds = %2502, %2472
  %2477 = load i64, ptr %60, align 8, !tbaa !9
  %2478 = load i64, ptr %44, align 8, !tbaa !9
  %2479 = icmp sle i64 %2477, %2478
  br i1 %2479, label %2480, label %2505

2480:                                             ; preds = %2476
  %2481 = load float, ptr %111, align 4, !tbaa !11
  %2482 = load ptr, ptr %26, align 8, !tbaa !5
  %2483 = load i64, ptr %60, align 8, !tbaa !9
  %2484 = load i64, ptr %69, align 8, !tbaa !9
  %2485 = load i64, ptr %61, align 8, !tbaa !9
  %2486 = add nsw i64 %2484, %2485
  %2487 = load i64, ptr %38, align 8, !tbaa !9
  %2488 = mul nsw i64 %2486, %2487
  %2489 = add nsw i64 %2483, %2488
  %2490 = getelementptr inbounds float, ptr %2482, i64 %2489
  %2491 = load float, ptr %2490, align 4, !tbaa !11
  %2492 = fmul float %2481, %2491
  %2493 = load ptr, ptr %26, align 8, !tbaa !5
  %2494 = load i64, ptr %60, align 8, !tbaa !9
  %2495 = load i64, ptr %69, align 8, !tbaa !9
  %2496 = load i64, ptr %61, align 8, !tbaa !9
  %2497 = add nsw i64 %2495, %2496
  %2498 = load i64, ptr %38, align 8, !tbaa !9
  %2499 = mul nsw i64 %2497, %2498
  %2500 = add nsw i64 %2494, %2499
  %2501 = getelementptr inbounds float, ptr %2493, i64 %2500
  store float %2492, ptr %2501, align 4, !tbaa !11
  br label %2502

2502:                                             ; preds = %2480
  %2503 = load i64, ptr %60, align 8, !tbaa !9
  %2504 = add nsw i64 %2503, 1
  store i64 %2504, ptr %60, align 8, !tbaa !9
  br label %2476, !llvm.loop !33

2505:                                             ; preds = %2476
  br label %2506

2506:                                             ; preds = %2505
  %2507 = load i64, ptr %61, align 8, !tbaa !9
  %2508 = add nsw i64 %2507, 1
  store i64 %2508, ptr %61, align 8, !tbaa !9
  br label %2468, !llvm.loop !34

2509:                                             ; preds = %2468
  br label %2510

2510:                                             ; preds = %2509, %2459
  %2511 = load i64, ptr %69, align 8, !tbaa !9
  %2512 = load i64, ptr %62, align 8, !tbaa !9
  %2513 = add nsw i64 %2511, %2512
  %2514 = sub nsw i64 %2513, 1
  store i64 %2514, ptr %69, align 8, !tbaa !9
  br label %2515

2515:                                             ; preds = %2510, %891, %823, %771
  br label %2516

2516:                                             ; preds = %2515
  %2517 = load i64, ptr %57, align 8, !tbaa !9
  %2518 = add nsw i64 %2517, 1
  store i64 %2518, ptr %57, align 8, !tbaa !9
  br label %764, !llvm.loop !35

2519:                                             ; preds = %764
  br label %2520

2520:                                             ; preds = %2519, %754
  %2521 = load i64, ptr %93, align 8, !tbaa !9
  %2522 = icmp ne i64 %2521, 0
  br i1 %2522, label %2523, label %4759

2523:                                             ; preds = %2520
  %2524 = load i64, ptr %59, align 8, !tbaa !9
  %2525 = add nsw i64 %2524, 1
  store i64 %2525, ptr %69, align 8, !tbaa !9
  store i64 0, ptr %114, align 8, !tbaa !9
  %2526 = load ptr, ptr %21, align 8, !tbaa !5
  %2527 = load i64, ptr %2526, align 8, !tbaa !9
  store i64 %2527, ptr %57, align 8, !tbaa !9
  br label %2528

2528:                                             ; preds = %4755, %2523
  %2529 = load i64, ptr %57, align 8, !tbaa !9
  %2530 = icmp sge i64 %2529, 1
  br i1 %2530, label %2531, label %4758

2531:                                             ; preds = %2528
  %2532 = load i64, ptr %114, align 8, !tbaa !9
  %2533 = icmp ne i64 %2532, 0
  br i1 %2533, label %2534, label %2535

2534:                                             ; preds = %2531
  store i64 0, ptr %114, align 8, !tbaa !9
  br label %4754

2535:                                             ; preds = %2531
  store i64 1, ptr %62, align 8, !tbaa !9
  %2536 = load i64, ptr %57, align 8, !tbaa !9
  %2537 = icmp sgt i64 %2536, 1
  br i1 %2537, label %2538, label %2551

2538:                                             ; preds = %2535
  %2539 = load ptr, ptr %22, align 8, !tbaa !5
  %2540 = load i64, ptr %57, align 8, !tbaa !9
  %2541 = load i64, ptr %57, align 8, !tbaa !9
  %2542 = sub nsw i64 %2541, 1
  %2543 = load i64, ptr %36, align 8, !tbaa !9
  %2544 = mul nsw i64 %2542, %2543
  %2545 = add nsw i64 %2540, %2544
  %2546 = getelementptr inbounds float, ptr %2539, i64 %2545
  %2547 = load float, ptr %2546, align 4, !tbaa !11
  %2548 = fcmp une float %2547, 0.000000e+00
  br i1 %2548, label %2549, label %2550

2549:                                             ; preds = %2538
  store i64 1, ptr %114, align 8, !tbaa !9
  store i64 2, ptr %62, align 8, !tbaa !9
  br label %2550

2550:                                             ; preds = %2549, %2538
  br label %2551

2551:                                             ; preds = %2550, %2535
  %2552 = load i64, ptr %84, align 8, !tbaa !9
  %2553 = icmp ne i64 %2552, 0
  br i1 %2553, label %2554, label %2555

2554:                                             ; preds = %2551
  store i64 1, ptr %113, align 8, !tbaa !9
  br label %2581

2555:                                             ; preds = %2551
  %2556 = load i64, ptr %114, align 8, !tbaa !9
  %2557 = icmp ne i64 %2556, 0
  br i1 %2557, label %2558, label %2575

2558:                                             ; preds = %2555
  %2559 = load ptr, ptr %20, align 8, !tbaa !5
  %2560 = load i64, ptr %57, align 8, !tbaa !9
  %2561 = getelementptr inbounds i64, ptr %2559, i64 %2560
  %2562 = load i64, ptr %2561, align 8, !tbaa !9
  %2563 = icmp ne i64 %2562, 0
  br i1 %2563, label %2571, label %2564

2564:                                             ; preds = %2558
  %2565 = load ptr, ptr %20, align 8, !tbaa !5
  %2566 = load i64, ptr %57, align 8, !tbaa !9
  %2567 = sub nsw i64 %2566, 1
  %2568 = getelementptr inbounds i64, ptr %2565, i64 %2567
  %2569 = load i64, ptr %2568, align 8, !tbaa !9
  %2570 = icmp ne i64 %2569, 0
  br label %2571

2571:                                             ; preds = %2564, %2558
  %2572 = phi i1 [ true, %2558 ], [ %2570, %2564 ]
  %2573 = zext i1 %2572 to i32
  %2574 = sext i32 %2573 to i64
  store i64 %2574, ptr %113, align 8, !tbaa !9
  br label %2580

2575:                                             ; preds = %2555
  %2576 = load ptr, ptr %20, align 8, !tbaa !5
  %2577 = load i64, ptr %57, align 8, !tbaa !9
  %2578 = getelementptr inbounds i64, ptr %2576, i64 %2577
  %2579 = load i64, ptr %2578, align 8, !tbaa !9
  store i64 %2579, ptr %113, align 8, !tbaa !9
  br label %2580

2580:                                             ; preds = %2575, %2571
  br label %2581

2581:                                             ; preds = %2580, %2554
  %2582 = load i64, ptr %113, align 8, !tbaa !9
  %2583 = icmp ne i64 %2582, 0
  br i1 %2583, label %2585, label %2584

2584:                                             ; preds = %2581
  br label %4754

2585:                                             ; preds = %2581
  %2586 = load i64, ptr %114, align 8, !tbaa !9
  %2587 = icmp ne i64 %2586, 0
  br i1 %2587, label %2661, label %2588

2588:                                             ; preds = %2585
  %2589 = load ptr, ptr %22, align 8, !tbaa !5
  %2590 = load i64, ptr %57, align 8, !tbaa !9
  %2591 = load i64, ptr %57, align 8, !tbaa !9
  %2592 = load i64, ptr %36, align 8, !tbaa !9
  %2593 = mul nsw i64 %2591, %2592
  %2594 = add nsw i64 %2590, %2593
  %2595 = getelementptr inbounds float, ptr %2589, i64 %2594
  %2596 = load float, ptr %2595, align 4, !tbaa !11
  store float %2596, ptr %47, align 4, !tbaa !11
  %2597 = load float, ptr %47, align 4, !tbaa !11
  %2598 = fcmp oge float %2597, 0.000000e+00
  br i1 %2598, label %2599, label %2601

2599:                                             ; preds = %2588
  %2600 = load float, ptr %47, align 4, !tbaa !11
  br label %2604

2601:                                             ; preds = %2588
  %2602 = load float, ptr %47, align 4, !tbaa !11
  %2603 = fneg float %2602
  br label %2604

2604:                                             ; preds = %2601, %2599
  %2605 = phi float [ %2600, %2599 ], [ %2603, %2601 ]
  %2606 = fpext float %2605 to double
  %2607 = load float, ptr %110, align 4, !tbaa !11
  %2608 = fpext float %2607 to double
  %2609 = fcmp ole double %2606, %2608
  br i1 %2609, label %2610, label %2660

2610:                                             ; preds = %2604
  %2611 = load ptr, ptr %24, align 8, !tbaa !5
  %2612 = load i64, ptr %57, align 8, !tbaa !9
  %2613 = load i64, ptr %57, align 8, !tbaa !9
  %2614 = load i64, ptr %34, align 8, !tbaa !9
  %2615 = mul nsw i64 %2613, %2614
  %2616 = add nsw i64 %2612, %2615
  %2617 = getelementptr inbounds float, ptr %2611, i64 %2616
  %2618 = load float, ptr %2617, align 4, !tbaa !11
  store float %2618, ptr %48, align 4, !tbaa !11
  %2619 = load float, ptr %48, align 4, !tbaa !11
  %2620 = fcmp oge float %2619, 0.000000e+00
  br i1 %2620, label %2621, label %2623

2621:                                             ; preds = %2610
  %2622 = load float, ptr %48, align 4, !tbaa !11
  br label %2626

2623:                                             ; preds = %2610
  %2624 = load float, ptr %48, align 4, !tbaa !11
  %2625 = fneg float %2624
  br label %2626

2626:                                             ; preds = %2623, %2621
  %2627 = phi float [ %2622, %2621 ], [ %2625, %2623 ]
  %2628 = fpext float %2627 to double
  %2629 = load float, ptr %110, align 4, !tbaa !11
  %2630 = fpext float %2629 to double
  %2631 = fcmp ole double %2628, %2630
  br i1 %2631, label %2632, label %2660

2632:                                             ; preds = %2626
  %2633 = load i64, ptr %69, align 8, !tbaa !9
  %2634 = add nsw i64 %2633, -1
  store i64 %2634, ptr %69, align 8, !tbaa !9
  %2635 = load ptr, ptr %21, align 8, !tbaa !5
  %2636 = load i64, ptr %2635, align 8, !tbaa !9
  store i64 %2636, ptr %42, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %2637

2637:                                             ; preds = %2649, %2632
  %2638 = load i64, ptr %60, align 8, !tbaa !9
  %2639 = load i64, ptr %42, align 8, !tbaa !9
  %2640 = icmp sle i64 %2638, %2639
  br i1 %2640, label %2641, label %2652

2641:                                             ; preds = %2637
  %2642 = load ptr, ptr %28, align 8, !tbaa !5
  %2643 = load i64, ptr %60, align 8, !tbaa !9
  %2644 = load i64, ptr %69, align 8, !tbaa !9
  %2645 = load i64, ptr %40, align 8, !tbaa !9
  %2646 = mul nsw i64 %2644, %2645
  %2647 = add nsw i64 %2643, %2646
  %2648 = getelementptr inbounds float, ptr %2642, i64 %2647
  store float 0.000000e+00, ptr %2648, align 4, !tbaa !11
  br label %2649

2649:                                             ; preds = %2641
  %2650 = load i64, ptr %60, align 8, !tbaa !9
  %2651 = add nsw i64 %2650, 1
  store i64 %2651, ptr %60, align 8, !tbaa !9
  br label %2637, !llvm.loop !36

2652:                                             ; preds = %2637
  %2653 = load ptr, ptr %28, align 8, !tbaa !5
  %2654 = load i64, ptr %69, align 8, !tbaa !9
  %2655 = load i64, ptr %69, align 8, !tbaa !9
  %2656 = load i64, ptr %40, align 8, !tbaa !9
  %2657 = mul nsw i64 %2655, %2656
  %2658 = add nsw i64 %2654, %2657
  %2659 = getelementptr inbounds float, ptr %2653, i64 %2658
  store float 1.000000e+00, ptr %2659, align 4, !tbaa !11
  br label %4754

2660:                                             ; preds = %2626, %2604
  br label %2661

2661:                                             ; preds = %2660, %2585
  %2662 = load i64, ptr %62, align 8, !tbaa !9
  %2663 = sub nsw i64 %2662, 1
  store i64 %2663, ptr %42, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %2664

2664:                                             ; preds = %2689, %2661
  %2665 = load i64, ptr %61, align 8, !tbaa !9
  %2666 = load i64, ptr %42, align 8, !tbaa !9
  %2667 = icmp sle i64 %2665, %2666
  br i1 %2667, label %2668, label %2692

2668:                                             ; preds = %2664
  %2669 = load ptr, ptr %21, align 8, !tbaa !5
  %2670 = load i64, ptr %2669, align 8, !tbaa !9
  store i64 %2670, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %2671

2671:                                             ; preds = %2685, %2668
  %2672 = load i64, ptr %60, align 8, !tbaa !9
  %2673 = load i64, ptr %43, align 8, !tbaa !9
  %2674 = icmp sle i64 %2672, %2673
  br i1 %2674, label %2675, label %2688

2675:                                             ; preds = %2671
  %2676 = load ptr, ptr %32, align 8, !tbaa !5
  %2677 = load i64, ptr %61, align 8, !tbaa !9
  %2678 = add nsw i64 %2677, 2
  %2679 = load ptr, ptr %21, align 8, !tbaa !5
  %2680 = load i64, ptr %2679, align 8, !tbaa !9
  %2681 = mul nsw i64 %2678, %2680
  %2682 = load i64, ptr %60, align 8, !tbaa !9
  %2683 = add nsw i64 %2681, %2682
  %2684 = getelementptr inbounds float, ptr %2676, i64 %2683
  store float 0.000000e+00, ptr %2684, align 4, !tbaa !11
  br label %2685

2685:                                             ; preds = %2675
  %2686 = load i64, ptr %60, align 8, !tbaa !9
  %2687 = add nsw i64 %2686, 1
  store i64 %2687, ptr %60, align 8, !tbaa !9
  br label %2671, !llvm.loop !37

2688:                                             ; preds = %2671
  br label %2689

2689:                                             ; preds = %2688
  %2690 = load i64, ptr %61, align 8, !tbaa !9
  %2691 = add nsw i64 %2690, 1
  store i64 %2691, ptr %61, align 8, !tbaa !9
  br label %2664, !llvm.loop !38

2692:                                             ; preds = %2664
  %2693 = load i64, ptr %114, align 8, !tbaa !9
  %2694 = icmp ne i64 %2693, 0
  br i1 %2694, label %3082, label %2695

2695:                                             ; preds = %2692
  %2696 = load ptr, ptr %22, align 8, !tbaa !5
  %2697 = load i64, ptr %57, align 8, !tbaa !9
  %2698 = load i64, ptr %57, align 8, !tbaa !9
  %2699 = load i64, ptr %36, align 8, !tbaa !9
  %2700 = mul nsw i64 %2698, %2699
  %2701 = add nsw i64 %2697, %2700
  %2702 = getelementptr inbounds float, ptr %2696, i64 %2701
  %2703 = load float, ptr %2702, align 4, !tbaa !11
  store float %2703, ptr %47, align 4, !tbaa !11
  %2704 = load float, ptr %47, align 4, !tbaa !11
  %2705 = fcmp oge float %2704, 0.000000e+00
  br i1 %2705, label %2706, label %2708

2706:                                             ; preds = %2695
  %2707 = load float, ptr %47, align 4, !tbaa !11
  br label %2711

2708:                                             ; preds = %2695
  %2709 = load float, ptr %47, align 4, !tbaa !11
  %2710 = fneg float %2709
  br label %2711

2711:                                             ; preds = %2708, %2706
  %2712 = phi float [ %2707, %2706 ], [ %2710, %2708 ]
  %2713 = fpext float %2712 to double
  %2714 = load float, ptr %104, align 4, !tbaa !11
  %2715 = fpext float %2714 to double
  %2716 = fmul double %2713, %2715
  %2717 = fptrunc double %2716 to float
  store float %2717, ptr %49, align 4, !tbaa !11
  %2718 = load ptr, ptr %24, align 8, !tbaa !5
  %2719 = load i64, ptr %57, align 8, !tbaa !9
  %2720 = load i64, ptr %57, align 8, !tbaa !9
  %2721 = load i64, ptr %34, align 8, !tbaa !9
  %2722 = mul nsw i64 %2720, %2721
  %2723 = add nsw i64 %2719, %2722
  %2724 = getelementptr inbounds float, ptr %2718, i64 %2723
  %2725 = load float, ptr %2724, align 4, !tbaa !11
  store float %2725, ptr %48, align 4, !tbaa !11
  %2726 = load float, ptr %48, align 4, !tbaa !11
  %2727 = fcmp oge float %2726, 0.000000e+00
  br i1 %2727, label %2728, label %2730

2728:                                             ; preds = %2711
  %2729 = load float, ptr %48, align 4, !tbaa !11
  br label %2733

2730:                                             ; preds = %2711
  %2731 = load float, ptr %48, align 4, !tbaa !11
  %2732 = fneg float %2731
  br label %2733

2733:                                             ; preds = %2730, %2728
  %2734 = phi float [ %2729, %2728 ], [ %2732, %2730 ]
  %2735 = fpext float %2734 to double
  %2736 = load float, ptr %105, align 4, !tbaa !11
  %2737 = fpext float %2736 to double
  %2738 = fmul double %2735, %2737
  %2739 = fptrunc double %2738 to float
  store float %2739, ptr %50, align 4, !tbaa !11
  %2740 = load float, ptr %49, align 4, !tbaa !11
  %2741 = load float, ptr %50, align 4, !tbaa !11
  %2742 = fcmp oge float %2740, %2741
  br i1 %2742, label %2743, label %2745

2743:                                             ; preds = %2733
  %2744 = load float, ptr %49, align 4, !tbaa !11
  br label %2747

2745:                                             ; preds = %2733
  %2746 = load float, ptr %50, align 4, !tbaa !11
  br label %2747

2747:                                             ; preds = %2745, %2743
  %2748 = phi float [ %2744, %2743 ], [ %2746, %2745 ]
  store float %2748, ptr %49, align 4, !tbaa !11
  %2749 = load float, ptr %49, align 4, !tbaa !11
  %2750 = load float, ptr %110, align 4, !tbaa !11
  %2751 = fcmp oge float %2749, %2750
  br i1 %2751, label %2752, label %2754

2752:                                             ; preds = %2747
  %2753 = load float, ptr %49, align 4, !tbaa !11
  br label %2756

2754:                                             ; preds = %2747
  %2755 = load float, ptr %110, align 4, !tbaa !11
  br label %2756

2756:                                             ; preds = %2754, %2752
  %2757 = phi float [ %2753, %2752 ], [ %2755, %2754 ]
  %2758 = fpext float %2757 to double
  %2759 = fdiv double 1.000000e+00, %2758
  %2760 = fptrunc double %2759 to float
  store float %2760, ptr %72, align 4, !tbaa !11
  %2761 = load float, ptr %72, align 4, !tbaa !11
  %2762 = load ptr, ptr %22, align 8, !tbaa !5
  %2763 = load i64, ptr %57, align 8, !tbaa !9
  %2764 = load i64, ptr %57, align 8, !tbaa !9
  %2765 = load i64, ptr %36, align 8, !tbaa !9
  %2766 = mul nsw i64 %2764, %2765
  %2767 = add nsw i64 %2763, %2766
  %2768 = getelementptr inbounds float, ptr %2762, i64 %2767
  %2769 = load float, ptr %2768, align 4, !tbaa !11
  %2770 = fmul float %2761, %2769
  %2771 = load float, ptr %104, align 4, !tbaa !11
  %2772 = fmul float %2770, %2771
  store float %2772, ptr %109, align 4, !tbaa !11
  %2773 = load float, ptr %72, align 4, !tbaa !11
  %2774 = load ptr, ptr %24, align 8, !tbaa !5
  %2775 = load i64, ptr %57, align 8, !tbaa !9
  %2776 = load i64, ptr %57, align 8, !tbaa !9
  %2777 = load i64, ptr %34, align 8, !tbaa !9
  %2778 = mul nsw i64 %2776, %2777
  %2779 = add nsw i64 %2775, %2778
  %2780 = getelementptr inbounds float, ptr %2774, i64 %2779
  %2781 = load float, ptr %2780, align 4, !tbaa !11
  %2782 = fmul float %2773, %2781
  %2783 = load float, ptr %105, align 4, !tbaa !11
  %2784 = fmul float %2782, %2783
  store float %2784, ptr %86, align 4, !tbaa !11
  %2785 = load float, ptr %86, align 4, !tbaa !11
  %2786 = load float, ptr %104, align 4, !tbaa !11
  %2787 = fmul float %2785, %2786
  store float %2787, ptr %82, align 4, !tbaa !11
  %2788 = load float, ptr %109, align 4, !tbaa !11
  %2789 = load float, ptr %105, align 4, !tbaa !11
  %2790 = fmul float %2788, %2789
  store float %2790, ptr %108, align 4, !tbaa !11
  store float 0.000000e+00, ptr %103, align 4, !tbaa !11
  store float 1.000000e+00, ptr %83, align 4, !tbaa !11
  %2791 = load float, ptr %86, align 4, !tbaa !11
  %2792 = fcmp oge float %2791, 0.000000e+00
  br i1 %2792, label %2793, label %2795

2793:                                             ; preds = %2756
  %2794 = load float, ptr %86, align 4, !tbaa !11
  br label %2798

2795:                                             ; preds = %2756
  %2796 = load float, ptr %86, align 4, !tbaa !11
  %2797 = fneg float %2796
  br label %2798

2798:                                             ; preds = %2795, %2793
  %2799 = phi float [ %2794, %2793 ], [ %2797, %2795 ]
  %2800 = fpext float %2799 to double
  %2801 = load float, ptr %110, align 4, !tbaa !11
  %2802 = fpext float %2801 to double
  %2803 = fcmp oge double %2800, %2802
  br i1 %2803, label %2804, label %2818

2804:                                             ; preds = %2798
  %2805 = load float, ptr %82, align 4, !tbaa !11
  %2806 = fcmp oge float %2805, 0.000000e+00
  br i1 %2806, label %2807, label %2809

2807:                                             ; preds = %2804
  %2808 = load float, ptr %82, align 4, !tbaa !11
  br label %2812

2809:                                             ; preds = %2804
  %2810 = load float, ptr %82, align 4, !tbaa !11
  %2811 = fneg float %2810
  br label %2812

2812:                                             ; preds = %2809, %2807
  %2813 = phi float [ %2808, %2807 ], [ %2811, %2809 ]
  %2814 = fpext float %2813 to double
  %2815 = load float, ptr %89, align 4, !tbaa !11
  %2816 = fpext float %2815 to double
  %2817 = fcmp olt double %2814, %2816
  br label %2818

2818:                                             ; preds = %2812, %2798
  %2819 = phi i1 [ false, %2798 ], [ %2817, %2812 ]
  %2820 = zext i1 %2819 to i32
  %2821 = sext i32 %2820 to i64
  store i64 %2821, ptr %64, align 8, !tbaa !9
  %2822 = load float, ptr %109, align 4, !tbaa !11
  %2823 = fcmp oge float %2822, 0.000000e+00
  br i1 %2823, label %2824, label %2826

2824:                                             ; preds = %2818
  %2825 = load float, ptr %109, align 4, !tbaa !11
  br label %2829

2826:                                             ; preds = %2818
  %2827 = load float, ptr %109, align 4, !tbaa !11
  %2828 = fneg float %2827
  br label %2829

2829:                                             ; preds = %2826, %2824
  %2830 = phi float [ %2825, %2824 ], [ %2828, %2826 ]
  %2831 = fpext float %2830 to double
  %2832 = load float, ptr %110, align 4, !tbaa !11
  %2833 = fpext float %2832 to double
  %2834 = fcmp oge double %2831, %2833
  br i1 %2834, label %2835, label %2849

2835:                                             ; preds = %2829
  %2836 = load float, ptr %108, align 4, !tbaa !11
  %2837 = fcmp oge float %2836, 0.000000e+00
  br i1 %2837, label %2838, label %2840

2838:                                             ; preds = %2835
  %2839 = load float, ptr %108, align 4, !tbaa !11
  br label %2843

2840:                                             ; preds = %2835
  %2841 = load float, ptr %108, align 4, !tbaa !11
  %2842 = fneg float %2841
  br label %2843

2843:                                             ; preds = %2840, %2838
  %2844 = phi float [ %2839, %2838 ], [ %2842, %2840 ]
  %2845 = fpext float %2844 to double
  %2846 = load float, ptr %89, align 4, !tbaa !11
  %2847 = fpext float %2846 to double
  %2848 = fcmp olt double %2845, %2847
  br label %2849

2849:                                             ; preds = %2843, %2829
  %2850 = phi i1 [ false, %2829 ], [ %2848, %2843 ]
  %2851 = zext i1 %2850 to i32
  %2852 = sext i32 %2851 to i64
  store i64 %2852, ptr %65, align 8, !tbaa !9
  %2853 = load i64, ptr %64, align 8, !tbaa !9
  %2854 = icmp ne i64 %2853, 0
  br i1 %2854, label %2855, label %2881

2855:                                             ; preds = %2849
  %2856 = load float, ptr %89, align 4, !tbaa !11
  %2857 = fpext float %2856 to double
  %2858 = load float, ptr %86, align 4, !tbaa !11
  %2859 = fcmp oge float %2858, 0.000000e+00
  br i1 %2859, label %2860, label %2862

2860:                                             ; preds = %2855
  %2861 = load float, ptr %86, align 4, !tbaa !11
  br label %2865

2862:                                             ; preds = %2855
  %2863 = load float, ptr %86, align 4, !tbaa !11
  %2864 = fneg float %2863
  br label %2865

2865:                                             ; preds = %2862, %2860
  %2866 = phi float [ %2861, %2860 ], [ %2864, %2862 ]
  %2867 = fpext float %2866 to double
  %2868 = fdiv double %2857, %2867
  %2869 = load float, ptr %91, align 4, !tbaa !11
  %2870 = load float, ptr %63, align 4, !tbaa !11
  %2871 = fcmp ole float %2869, %2870
  br i1 %2871, label %2872, label %2874

2872:                                             ; preds = %2865
  %2873 = load float, ptr %91, align 4, !tbaa !11
  br label %2876

2874:                                             ; preds = %2865
  %2875 = load float, ptr %63, align 4, !tbaa !11
  br label %2876

2876:                                             ; preds = %2874, %2872
  %2877 = phi float [ %2873, %2872 ], [ %2875, %2874 ]
  %2878 = fpext float %2877 to double
  %2879 = fmul double %2868, %2878
  %2880 = fptrunc double %2879 to float
  store float %2880, ptr %83, align 4, !tbaa !11
  br label %2881

2881:                                             ; preds = %2876, %2849
  %2882 = load i64, ptr %65, align 8, !tbaa !9
  %2883 = icmp ne i64 %2882, 0
  br i1 %2883, label %2884, label %2922

2884:                                             ; preds = %2881
  %2885 = load float, ptr %83, align 4, !tbaa !11
  store float %2885, ptr %47, align 4, !tbaa !11
  %2886 = load float, ptr %89, align 4, !tbaa !11
  %2887 = fpext float %2886 to double
  %2888 = load float, ptr %109, align 4, !tbaa !11
  %2889 = fcmp oge float %2888, 0.000000e+00
  br i1 %2889, label %2890, label %2892

2890:                                             ; preds = %2884
  %2891 = load float, ptr %109, align 4, !tbaa !11
  br label %2895

2892:                                             ; preds = %2884
  %2893 = load float, ptr %109, align 4, !tbaa !11
  %2894 = fneg float %2893
  br label %2895

2895:                                             ; preds = %2892, %2890
  %2896 = phi float [ %2891, %2890 ], [ %2894, %2892 ]
  %2897 = fpext float %2896 to double
  %2898 = fdiv double %2887, %2897
  %2899 = load float, ptr %92, align 4, !tbaa !11
  %2900 = load float, ptr %63, align 4, !tbaa !11
  %2901 = fcmp ole float %2899, %2900
  br i1 %2901, label %2902, label %2904

2902:                                             ; preds = %2895
  %2903 = load float, ptr %92, align 4, !tbaa !11
  br label %2906

2904:                                             ; preds = %2895
  %2905 = load float, ptr %63, align 4, !tbaa !11
  br label %2906

2906:                                             ; preds = %2904, %2902
  %2907 = phi float [ %2903, %2902 ], [ %2905, %2904 ]
  %2908 = fpext float %2907 to double
  %2909 = fmul double %2898, %2908
  %2910 = fptrunc double %2909 to float
  store float %2910, ptr %48, align 4, !tbaa !11
  %2911 = load float, ptr %47, align 4, !tbaa !11
  %2912 = load float, ptr %48, align 4, !tbaa !11
  %2913 = fcmp oge float %2911, %2912
  br i1 %2913, label %2914, label %2916

2914:                                             ; preds = %2906
  %2915 = load float, ptr %47, align 4, !tbaa !11
  br label %2918

2916:                                             ; preds = %2906
  %2917 = load float, ptr %48, align 4, !tbaa !11
  br label %2918

2918:                                             ; preds = %2916, %2914
  %2919 = phi float [ %2915, %2914 ], [ %2917, %2916 ]
  %2920 = fpext float %2919 to double
  %2921 = fptrunc double %2920 to float
  store float %2921, ptr %83, align 4, !tbaa !11
  br label %2922

2922:                                             ; preds = %2918, %2881
  %2923 = load i64, ptr %64, align 8, !tbaa !9
  %2924 = icmp ne i64 %2923, 0
  br i1 %2924, label %2928, label %2925

2925:                                             ; preds = %2922
  %2926 = load i64, ptr %65, align 8, !tbaa !9
  %2927 = icmp ne i64 %2926, 0
  br i1 %2927, label %2928, label %3013

2928:                                             ; preds = %2925, %2922
  store float 1.000000e+00, ptr %49, align 4, !tbaa !11
  %2929 = load float, ptr %82, align 4, !tbaa !11
  %2930 = fcmp oge float %2929, 0.000000e+00
  br i1 %2930, label %2931, label %2933

2931:                                             ; preds = %2928
  %2932 = load float, ptr %82, align 4, !tbaa !11
  br label %2936

2933:                                             ; preds = %2928
  %2934 = load float, ptr %82, align 4, !tbaa !11
  %2935 = fneg float %2934
  br label %2936

2936:                                             ; preds = %2933, %2931
  %2937 = phi float [ %2932, %2931 ], [ %2935, %2933 ]
  %2938 = fpext float %2937 to double
  %2939 = fptrunc double %2938 to float
  store float %2939, ptr %50, align 4, !tbaa !11
  %2940 = load float, ptr %49, align 4, !tbaa !11
  %2941 = load float, ptr %50, align 4, !tbaa !11
  %2942 = fcmp oge float %2940, %2941
  br i1 %2942, label %2943, label %2945

2943:                                             ; preds = %2936
  %2944 = load float, ptr %49, align 4, !tbaa !11
  br label %2947

2945:                                             ; preds = %2936
  %2946 = load float, ptr %50, align 4, !tbaa !11
  br label %2947

2947:                                             ; preds = %2945, %2943
  %2948 = phi float [ %2944, %2943 ], [ %2946, %2945 ]
  store float %2948, ptr %49, align 4, !tbaa !11
  %2949 = load float, ptr %108, align 4, !tbaa !11
  %2950 = fcmp oge float %2949, 0.000000e+00
  br i1 %2950, label %2951, label %2953

2951:                                             ; preds = %2947
  %2952 = load float, ptr %108, align 4, !tbaa !11
  br label %2956

2953:                                             ; preds = %2947
  %2954 = load float, ptr %108, align 4, !tbaa !11
  %2955 = fneg float %2954
  br label %2956

2956:                                             ; preds = %2953, %2951
  %2957 = phi float [ %2952, %2951 ], [ %2955, %2953 ]
  %2958 = fpext float %2957 to double
  %2959 = fptrunc double %2958 to float
  store float %2959, ptr %50, align 4, !tbaa !11
  %2960 = load float, ptr %83, align 4, !tbaa !11
  store float %2960, ptr %47, align 4, !tbaa !11
  %2961 = load float, ptr %110, align 4, !tbaa !11
  %2962 = fpext float %2961 to double
  %2963 = load float, ptr %49, align 4, !tbaa !11
  %2964 = load float, ptr %50, align 4, !tbaa !11
  %2965 = fcmp oge float %2963, %2964
  br i1 %2965, label %2966, label %2968

2966:                                             ; preds = %2956
  %2967 = load float, ptr %49, align 4, !tbaa !11
  br label %2970

2968:                                             ; preds = %2956
  %2969 = load float, ptr %50, align 4, !tbaa !11
  br label %2970

2970:                                             ; preds = %2968, %2966
  %2971 = phi float [ %2967, %2966 ], [ %2969, %2968 ]
  %2972 = fpext float %2971 to double
  %2973 = fmul double %2962, %2972
  %2974 = fdiv double 1.000000e+00, %2973
  %2975 = fptrunc double %2974 to float
  store float %2975, ptr %48, align 4, !tbaa !11
  %2976 = load float, ptr %47, align 4, !tbaa !11
  %2977 = load float, ptr %48, align 4, !tbaa !11
  %2978 = fcmp ole float %2976, %2977
  br i1 %2978, label %2979, label %2981

2979:                                             ; preds = %2970
  %2980 = load float, ptr %47, align 4, !tbaa !11
  br label %2983

2981:                                             ; preds = %2970
  %2982 = load float, ptr %48, align 4, !tbaa !11
  br label %2983

2983:                                             ; preds = %2981, %2979
  %2984 = phi float [ %2980, %2979 ], [ %2982, %2981 ]
  %2985 = fpext float %2984 to double
  %2986 = fptrunc double %2985 to float
  store float %2986, ptr %83, align 4, !tbaa !11
  %2987 = load i64, ptr %64, align 8, !tbaa !9
  %2988 = icmp ne i64 %2987, 0
  br i1 %2988, label %2989, label %2995

2989:                                             ; preds = %2983
  %2990 = load float, ptr %104, align 4, !tbaa !11
  %2991 = load float, ptr %83, align 4, !tbaa !11
  %2992 = load float, ptr %86, align 4, !tbaa !11
  %2993 = fmul float %2991, %2992
  %2994 = fmul float %2990, %2993
  store float %2994, ptr %82, align 4, !tbaa !11
  br label %2999

2995:                                             ; preds = %2983
  %2996 = load float, ptr %83, align 4, !tbaa !11
  %2997 = load float, ptr %82, align 4, !tbaa !11
  %2998 = fmul float %2996, %2997
  store float %2998, ptr %82, align 4, !tbaa !11
  br label %2999

2999:                                             ; preds = %2995, %2989
  %3000 = load i64, ptr %65, align 8, !tbaa !9
  %3001 = icmp ne i64 %3000, 0
  br i1 %3001, label %3002, label %3008

3002:                                             ; preds = %2999
  %3003 = load float, ptr %105, align 4, !tbaa !11
  %3004 = load float, ptr %83, align 4, !tbaa !11
  %3005 = load float, ptr %109, align 4, !tbaa !11
  %3006 = fmul float %3004, %3005
  %3007 = fmul float %3003, %3006
  store float %3007, ptr %108, align 4, !tbaa !11
  br label %3012

3008:                                             ; preds = %2999
  %3009 = load float, ptr %83, align 4, !tbaa !11
  %3010 = load float, ptr %108, align 4, !tbaa !11
  %3011 = fmul float %3009, %3010
  store float %3011, ptr %108, align 4, !tbaa !11
  br label %3012

3012:                                             ; preds = %3008, %3002
  br label %3013

3013:                                             ; preds = %3012, %2925
  %3014 = load float, ptr %82, align 4, !tbaa !11
  %3015 = fcmp oge float %3014, 0.000000e+00
  br i1 %3015, label %3016, label %3018

3016:                                             ; preds = %3013
  %3017 = load float, ptr %82, align 4, !tbaa !11
  br label %3021

3018:                                             ; preds = %3013
  %3019 = load float, ptr %82, align 4, !tbaa !11
  %3020 = fneg float %3019
  br label %3021

3021:                                             ; preds = %3018, %3016
  %3022 = phi float [ %3017, %3016 ], [ %3020, %3018 ]
  %3023 = fpext float %3022 to double
  %3024 = fptrunc double %3023 to float
  store float %3024, ptr %98, align 4, !tbaa !11
  %3025 = load float, ptr %108, align 4, !tbaa !11
  %3026 = fcmp oge float %3025, 0.000000e+00
  br i1 %3026, label %3027, label %3029

3027:                                             ; preds = %3021
  %3028 = load float, ptr %108, align 4, !tbaa !11
  br label %3032

3029:                                             ; preds = %3021
  %3030 = load float, ptr %108, align 4, !tbaa !11
  %3031 = fneg float %3030
  br label %3032

3032:                                             ; preds = %3029, %3027
  %3033 = phi float [ %3028, %3027 ], [ %3031, %3029 ]
  %3034 = fpext float %3033 to double
  %3035 = fptrunc double %3034 to float
  store float %3035, ptr %99, align 4, !tbaa !11
  %3036 = load ptr, ptr %32, align 8, !tbaa !5
  %3037 = load ptr, ptr %21, align 8, !tbaa !5
  %3038 = load i64, ptr %3037, align 8, !tbaa !9
  %3039 = shl i64 %3038, 1
  %3040 = load i64, ptr %57, align 8, !tbaa !9
  %3041 = add nsw i64 %3039, %3040
  %3042 = getelementptr inbounds float, ptr %3036, i64 %3041
  store float 1.000000e+00, ptr %3042, align 4, !tbaa !11
  store float 1.000000e+00, ptr %73, align 4, !tbaa !11
  %3043 = load i64, ptr %57, align 8, !tbaa !9
  %3044 = sub nsw i64 %3043, 1
  store i64 %3044, ptr %42, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %3045

3045:                                             ; preds = %3078, %3032
  %3046 = load i64, ptr %60, align 8, !tbaa !9
  %3047 = load i64, ptr %42, align 8, !tbaa !9
  %3048 = icmp sle i64 %3046, %3047
  br i1 %3048, label %3049, label %3081

3049:                                             ; preds = %3045
  %3050 = load float, ptr %108, align 4, !tbaa !11
  %3051 = load ptr, ptr %24, align 8, !tbaa !5
  %3052 = load i64, ptr %60, align 8, !tbaa !9
  %3053 = load i64, ptr %57, align 8, !tbaa !9
  %3054 = load i64, ptr %34, align 8, !tbaa !9
  %3055 = mul nsw i64 %3053, %3054
  %3056 = add nsw i64 %3052, %3055
  %3057 = getelementptr inbounds float, ptr %3051, i64 %3056
  %3058 = load float, ptr %3057, align 4, !tbaa !11
  %3059 = load float, ptr %82, align 4, !tbaa !11
  %3060 = load ptr, ptr %22, align 8, !tbaa !5
  %3061 = load i64, ptr %60, align 8, !tbaa !9
  %3062 = load i64, ptr %57, align 8, !tbaa !9
  %3063 = load i64, ptr %36, align 8, !tbaa !9
  %3064 = mul nsw i64 %3062, %3063
  %3065 = add nsw i64 %3061, %3064
  %3066 = getelementptr inbounds float, ptr %3060, i64 %3065
  %3067 = load float, ptr %3066, align 4, !tbaa !11
  %3068 = fmul float %3059, %3067
  %3069 = fneg float %3068
  %3070 = call float @llvm.fmuladd.f32(float %3050, float %3058, float %3069)
  %3071 = load ptr, ptr %32, align 8, !tbaa !5
  %3072 = load ptr, ptr %21, align 8, !tbaa !5
  %3073 = load i64, ptr %3072, align 8, !tbaa !9
  %3074 = shl i64 %3073, 1
  %3075 = load i64, ptr %60, align 8, !tbaa !9
  %3076 = add nsw i64 %3074, %3075
  %3077 = getelementptr inbounds float, ptr %3071, i64 %3076
  store float %3070, ptr %3077, align 4, !tbaa !11
  br label %3078

3078:                                             ; preds = %3049
  %3079 = load i64, ptr %60, align 8, !tbaa !9
  %3080 = add nsw i64 %3079, 1
  store i64 %3080, ptr %60, align 8, !tbaa !9
  br label %3045, !llvm.loop !39

3081:                                             ; preds = %3045
  br label %3800

3082:                                             ; preds = %2692
  %3083 = load float, ptr %110, align 4, !tbaa !11
  %3084 = fmul float %3083, 1.000000e+02
  store float %3084, ptr %47, align 4, !tbaa !11
  %3085 = load ptr, ptr %22, align 8, !tbaa !5
  %3086 = load i64, ptr %57, align 8, !tbaa !9
  %3087 = sub nsw i64 %3086, 1
  %3088 = load i64, ptr %57, align 8, !tbaa !9
  %3089 = sub nsw i64 %3088, 1
  %3090 = load i64, ptr %36, align 8, !tbaa !9
  %3091 = mul nsw i64 %3089, %3090
  %3092 = add nsw i64 %3087, %3091
  %3093 = getelementptr inbounds float, ptr %3085, i64 %3092
  %3094 = load ptr, ptr %23, align 8, !tbaa !5
  %3095 = load ptr, ptr %24, align 8, !tbaa !5
  %3096 = load i64, ptr %57, align 8, !tbaa !9
  %3097 = sub nsw i64 %3096, 1
  %3098 = load i64, ptr %57, align 8, !tbaa !9
  %3099 = sub nsw i64 %3098, 1
  %3100 = load i64, ptr %34, align 8, !tbaa !9
  %3101 = mul nsw i64 %3099, %3100
  %3102 = add nsw i64 %3097, %3101
  %3103 = getelementptr inbounds float, ptr %3095, i64 %3102
  %3104 = load ptr, ptr %25, align 8, !tbaa !5
  %3105 = call i32 @slag2_(ptr noundef %3093, ptr noundef %3094, ptr noundef %3103, ptr noundef %3104, ptr noundef %47, ptr noundef %82, ptr noundef %72, ptr noundef %108, ptr noundef %80, ptr noundef %103)
  %3106 = load float, ptr %103, align 4, !tbaa !11
  %3107 = fcmp oeq float %3106, 0.000000e+00
  br i1 %3107, label %3108, label %3112

3108:                                             ; preds = %3082
  %3109 = load i64, ptr %57, align 8, !tbaa !9
  %3110 = sub nsw i64 %3109, 1
  %3111 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 %3110, ptr %3111, align 8, !tbaa !9
  store i32 0, ptr %17, align 4
  store i32 1, ptr %116, align 4
  br label %4760

3112:                                             ; preds = %3082
  %3113 = load float, ptr %82, align 4, !tbaa !11
  %3114 = fcmp oge float %3113, 0.000000e+00
  br i1 %3114, label %3115, label %3117

3115:                                             ; preds = %3112
  %3116 = load float, ptr %82, align 4, !tbaa !11
  br label %3120

3117:                                             ; preds = %3112
  %3118 = load float, ptr %82, align 4, !tbaa !11
  %3119 = fneg float %3118
  br label %3120

3120:                                             ; preds = %3117, %3115
  %3121 = phi float [ %3116, %3115 ], [ %3119, %3117 ]
  %3122 = fpext float %3121 to double
  %3123 = fptrunc double %3122 to float
  store float %3123, ptr %98, align 4, !tbaa !11
  %3124 = load float, ptr %108, align 4, !tbaa !11
  %3125 = fcmp oge float %3124, 0.000000e+00
  br i1 %3125, label %3126, label %3128

3126:                                             ; preds = %3120
  %3127 = load float, ptr %108, align 4, !tbaa !11
  br label %3131

3128:                                             ; preds = %3120
  %3129 = load float, ptr %108, align 4, !tbaa !11
  %3130 = fneg float %3129
  br label %3131

3131:                                             ; preds = %3128, %3126
  %3132 = phi float [ %3127, %3126 ], [ %3130, %3128 ]
  %3133 = fpext float %3132 to double
  %3134 = load float, ptr %103, align 4, !tbaa !11
  %3135 = fcmp oge float %3134, 0.000000e+00
  br i1 %3135, label %3136, label %3138

3136:                                             ; preds = %3131
  %3137 = load float, ptr %103, align 4, !tbaa !11
  br label %3141

3138:                                             ; preds = %3131
  %3139 = load float, ptr %103, align 4, !tbaa !11
  %3140 = fneg float %3139
  br label %3141

3141:                                             ; preds = %3138, %3136
  %3142 = phi float [ %3137, %3136 ], [ %3140, %3138 ]
  %3143 = fpext float %3142 to double
  %3144 = fadd double %3133, %3143
  %3145 = fptrunc double %3144 to float
  store float %3145, ptr %99, align 4, !tbaa !11
  store float 1.000000e+00, ptr %83, align 4, !tbaa !11
  %3146 = load float, ptr %98, align 4, !tbaa !11
  %3147 = load float, ptr %66, align 4, !tbaa !11
  %3148 = fmul float %3146, %3147
  %3149 = load float, ptr %110, align 4, !tbaa !11
  %3150 = fcmp olt float %3148, %3149
  br i1 %3150, label %3151, label %3161

3151:                                             ; preds = %3141
  %3152 = load float, ptr %98, align 4, !tbaa !11
  %3153 = load float, ptr %110, align 4, !tbaa !11
  %3154 = fcmp oge float %3152, %3153
  br i1 %3154, label %3155, label %3161

3155:                                             ; preds = %3151
  %3156 = load float, ptr %110, align 4, !tbaa !11
  %3157 = load float, ptr %66, align 4, !tbaa !11
  %3158 = fdiv float %3156, %3157
  %3159 = load float, ptr %98, align 4, !tbaa !11
  %3160 = fdiv float %3158, %3159
  store float %3160, ptr %83, align 4, !tbaa !11
  br label %3161

3161:                                             ; preds = %3155, %3151, %3141
  %3162 = load float, ptr %99, align 4, !tbaa !11
  %3163 = load float, ptr %66, align 4, !tbaa !11
  %3164 = fmul float %3162, %3163
  %3165 = load float, ptr %110, align 4, !tbaa !11
  %3166 = fcmp olt float %3164, %3165
  br i1 %3166, label %3167, label %3189

3167:                                             ; preds = %3161
  %3168 = load float, ptr %99, align 4, !tbaa !11
  %3169 = load float, ptr %110, align 4, !tbaa !11
  %3170 = fcmp oge float %3168, %3169
  br i1 %3170, label %3171, label %3189

3171:                                             ; preds = %3167
  %3172 = load float, ptr %83, align 4, !tbaa !11
  store float %3172, ptr %47, align 4, !tbaa !11
  %3173 = load float, ptr %110, align 4, !tbaa !11
  %3174 = load float, ptr %66, align 4, !tbaa !11
  %3175 = fdiv float %3173, %3174
  %3176 = load float, ptr %99, align 4, !tbaa !11
  %3177 = fdiv float %3175, %3176
  store float %3177, ptr %48, align 4, !tbaa !11
  %3178 = load float, ptr %47, align 4, !tbaa !11
  %3179 = load float, ptr %48, align 4, !tbaa !11
  %3180 = fcmp oge float %3178, %3179
  br i1 %3180, label %3181, label %3183

3181:                                             ; preds = %3171
  %3182 = load float, ptr %47, align 4, !tbaa !11
  br label %3185

3183:                                             ; preds = %3171
  %3184 = load float, ptr %48, align 4, !tbaa !11
  br label %3185

3185:                                             ; preds = %3183, %3181
  %3186 = phi float [ %3182, %3181 ], [ %3184, %3183 ]
  %3187 = fpext float %3186 to double
  %3188 = fptrunc double %3187 to float
  store float %3188, ptr %83, align 4, !tbaa !11
  br label %3189

3189:                                             ; preds = %3185, %3167, %3161
  %3190 = load float, ptr %110, align 4, !tbaa !11
  %3191 = load float, ptr %98, align 4, !tbaa !11
  %3192 = fmul float %3190, %3191
  %3193 = load float, ptr %104, align 4, !tbaa !11
  %3194 = fcmp ogt float %3192, %3193
  br i1 %3194, label %3195, label %3201

3195:                                             ; preds = %3189
  %3196 = load float, ptr %104, align 4, !tbaa !11
  %3197 = load float, ptr %110, align 4, !tbaa !11
  %3198 = load float, ptr %98, align 4, !tbaa !11
  %3199 = fmul float %3197, %3198
  %3200 = fdiv float %3196, %3199
  store float %3200, ptr %83, align 4, !tbaa !11
  br label %3201

3201:                                             ; preds = %3195, %3189
  %3202 = load float, ptr %110, align 4, !tbaa !11
  %3203 = load float, ptr %99, align 4, !tbaa !11
  %3204 = fmul float %3202, %3203
  %3205 = load float, ptr %105, align 4, !tbaa !11
  %3206 = fcmp ogt float %3204, %3205
  br i1 %3206, label %3207, label %3225

3207:                                             ; preds = %3201
  %3208 = load float, ptr %83, align 4, !tbaa !11
  store float %3208, ptr %47, align 4, !tbaa !11
  %3209 = load float, ptr %105, align 4, !tbaa !11
  %3210 = load float, ptr %110, align 4, !tbaa !11
  %3211 = load float, ptr %99, align 4, !tbaa !11
  %3212 = fmul float %3210, %3211
  %3213 = fdiv float %3209, %3212
  store float %3213, ptr %48, align 4, !tbaa !11
  %3214 = load float, ptr %47, align 4, !tbaa !11
  %3215 = load float, ptr %48, align 4, !tbaa !11
  %3216 = fcmp ole float %3214, %3215
  br i1 %3216, label %3217, label %3219

3217:                                             ; preds = %3207
  %3218 = load float, ptr %47, align 4, !tbaa !11
  br label %3221

3219:                                             ; preds = %3207
  %3220 = load float, ptr %48, align 4, !tbaa !11
  br label %3221

3221:                                             ; preds = %3219, %3217
  %3222 = phi float [ %3218, %3217 ], [ %3220, %3219 ]
  %3223 = fpext float %3222 to double
  %3224 = fptrunc double %3223 to float
  store float %3224, ptr %83, align 4, !tbaa !11
  br label %3225

3225:                                             ; preds = %3221, %3201
  %3226 = load float, ptr %83, align 4, !tbaa !11
  %3227 = fcmp une float %3226, 1.000000e+00
  br i1 %3227, label %3228, label %3271

3228:                                             ; preds = %3225
  %3229 = load float, ptr %83, align 4, !tbaa !11
  %3230 = load float, ptr %82, align 4, !tbaa !11
  %3231 = fmul float %3229, %3230
  store float %3231, ptr %82, align 4, !tbaa !11
  %3232 = load float, ptr %82, align 4, !tbaa !11
  %3233 = fcmp oge float %3232, 0.000000e+00
  br i1 %3233, label %3234, label %3236

3234:                                             ; preds = %3228
  %3235 = load float, ptr %82, align 4, !tbaa !11
  br label %3239

3236:                                             ; preds = %3228
  %3237 = load float, ptr %82, align 4, !tbaa !11
  %3238 = fneg float %3237
  br label %3239

3239:                                             ; preds = %3236, %3234
  %3240 = phi float [ %3235, %3234 ], [ %3238, %3236 ]
  %3241 = fpext float %3240 to double
  %3242 = fptrunc double %3241 to float
  store float %3242, ptr %98, align 4, !tbaa !11
  %3243 = load float, ptr %83, align 4, !tbaa !11
  %3244 = load float, ptr %108, align 4, !tbaa !11
  %3245 = fmul float %3243, %3244
  store float %3245, ptr %108, align 4, !tbaa !11
  %3246 = load float, ptr %83, align 4, !tbaa !11
  %3247 = load float, ptr %103, align 4, !tbaa !11
  %3248 = fmul float %3246, %3247
  store float %3248, ptr %103, align 4, !tbaa !11
  %3249 = load float, ptr %108, align 4, !tbaa !11
  %3250 = fcmp oge float %3249, 0.000000e+00
  br i1 %3250, label %3251, label %3253

3251:                                             ; preds = %3239
  %3252 = load float, ptr %108, align 4, !tbaa !11
  br label %3256

3253:                                             ; preds = %3239
  %3254 = load float, ptr %108, align 4, !tbaa !11
  %3255 = fneg float %3254
  br label %3256

3256:                                             ; preds = %3253, %3251
  %3257 = phi float [ %3252, %3251 ], [ %3255, %3253 ]
  %3258 = fpext float %3257 to double
  %3259 = load float, ptr %103, align 4, !tbaa !11
  %3260 = fcmp oge float %3259, 0.000000e+00
  br i1 %3260, label %3261, label %3263

3261:                                             ; preds = %3256
  %3262 = load float, ptr %103, align 4, !tbaa !11
  br label %3266

3263:                                             ; preds = %3256
  %3264 = load float, ptr %103, align 4, !tbaa !11
  %3265 = fneg float %3264
  br label %3266

3266:                                             ; preds = %3263, %3261
  %3267 = phi float [ %3262, %3261 ], [ %3265, %3263 ]
  %3268 = fpext float %3267 to double
  %3269 = fadd double %3258, %3268
  %3270 = fptrunc double %3269 to float
  store float %3270, ptr %99, align 4, !tbaa !11
  br label %3271

3271:                                             ; preds = %3266, %3225
  %3272 = load float, ptr %82, align 4, !tbaa !11
  %3273 = load ptr, ptr %22, align 8, !tbaa !5
  %3274 = load i64, ptr %57, align 8, !tbaa !9
  %3275 = load i64, ptr %57, align 8, !tbaa !9
  %3276 = sub nsw i64 %3275, 1
  %3277 = load i64, ptr %36, align 8, !tbaa !9
  %3278 = mul nsw i64 %3276, %3277
  %3279 = add nsw i64 %3274, %3278
  %3280 = getelementptr inbounds float, ptr %3273, i64 %3279
  %3281 = load float, ptr %3280, align 4, !tbaa !11
  %3282 = fmul float %3272, %3281
  store float %3282, ptr %72, align 4, !tbaa !11
  %3283 = load float, ptr %82, align 4, !tbaa !11
  %3284 = load ptr, ptr %22, align 8, !tbaa !5
  %3285 = load i64, ptr %57, align 8, !tbaa !9
  %3286 = load i64, ptr %57, align 8, !tbaa !9
  %3287 = load i64, ptr %36, align 8, !tbaa !9
  %3288 = mul nsw i64 %3286, %3287
  %3289 = add nsw i64 %3285, %3288
  %3290 = getelementptr inbounds float, ptr %3284, i64 %3289
  %3291 = load float, ptr %3290, align 4, !tbaa !11
  %3292 = load float, ptr %108, align 4, !tbaa !11
  %3293 = load ptr, ptr %24, align 8, !tbaa !5
  %3294 = load i64, ptr %57, align 8, !tbaa !9
  %3295 = load i64, ptr %57, align 8, !tbaa !9
  %3296 = load i64, ptr %34, align 8, !tbaa !9
  %3297 = mul nsw i64 %3295, %3296
  %3298 = add nsw i64 %3294, %3297
  %3299 = getelementptr inbounds float, ptr %3293, i64 %3298
  %3300 = load float, ptr %3299, align 4, !tbaa !11
  %3301 = fmul float %3292, %3300
  %3302 = fneg float %3301
  %3303 = call float @llvm.fmuladd.f32(float %3283, float %3291, float %3302)
  store float %3303, ptr %95, align 4, !tbaa !11
  %3304 = load float, ptr %103, align 4, !tbaa !11
  %3305 = fneg float %3304
  %3306 = load ptr, ptr %24, align 8, !tbaa !5
  %3307 = load i64, ptr %57, align 8, !tbaa !9
  %3308 = load i64, ptr %57, align 8, !tbaa !9
  %3309 = load i64, ptr %34, align 8, !tbaa !9
  %3310 = mul nsw i64 %3308, %3309
  %3311 = add nsw i64 %3307, %3310
  %3312 = getelementptr inbounds float, ptr %3306, i64 %3311
  %3313 = load float, ptr %3312, align 4, !tbaa !11
  %3314 = fmul float %3305, %3313
  store float %3314, ptr %94, align 4, !tbaa !11
  %3315 = load float, ptr %72, align 4, !tbaa !11
  %3316 = fcmp oge float %3315, 0.000000e+00
  br i1 %3316, label %3317, label %3319

3317:                                             ; preds = %3271
  %3318 = load float, ptr %72, align 4, !tbaa !11
  br label %3322

3319:                                             ; preds = %3271
  %3320 = load float, ptr %72, align 4, !tbaa !11
  %3321 = fneg float %3320
  br label %3322

3322:                                             ; preds = %3319, %3317
  %3323 = phi float [ %3318, %3317 ], [ %3321, %3319 ]
  %3324 = fpext float %3323 to double
  %3325 = load float, ptr %95, align 4, !tbaa !11
  %3326 = fcmp oge float %3325, 0.000000e+00
  br i1 %3326, label %3327, label %3329

3327:                                             ; preds = %3322
  %3328 = load float, ptr %95, align 4, !tbaa !11
  br label %3332

3329:                                             ; preds = %3322
  %3330 = load float, ptr %95, align 4, !tbaa !11
  %3331 = fneg float %3330
  br label %3332

3332:                                             ; preds = %3329, %3327
  %3333 = phi float [ %3328, %3327 ], [ %3331, %3329 ]
  %3334 = fpext float %3333 to double
  %3335 = load float, ptr %94, align 4, !tbaa !11
  %3336 = fcmp oge float %3335, 0.000000e+00
  br i1 %3336, label %3337, label %3339

3337:                                             ; preds = %3332
  %3338 = load float, ptr %94, align 4, !tbaa !11
  br label %3342

3339:                                             ; preds = %3332
  %3340 = load float, ptr %94, align 4, !tbaa !11
  %3341 = fneg float %3340
  br label %3342

3342:                                             ; preds = %3339, %3337
  %3343 = phi float [ %3338, %3337 ], [ %3341, %3339 ]
  %3344 = fpext float %3343 to double
  %3345 = fadd double %3334, %3344
  %3346 = fcmp oge double %3324, %3345
  br i1 %3346, label %3347, label %3386

3347:                                             ; preds = %3342
  %3348 = load ptr, ptr %32, align 8, !tbaa !5
  %3349 = load ptr, ptr %21, align 8, !tbaa !5
  %3350 = load i64, ptr %3349, align 8, !tbaa !9
  %3351 = shl i64 %3350, 1
  %3352 = load i64, ptr %57, align 8, !tbaa !9
  %3353 = add nsw i64 %3351, %3352
  %3354 = getelementptr inbounds float, ptr %3348, i64 %3353
  store float 1.000000e+00, ptr %3354, align 4, !tbaa !11
  %3355 = load ptr, ptr %32, align 8, !tbaa !5
  %3356 = load ptr, ptr %21, align 8, !tbaa !5
  %3357 = load i64, ptr %3356, align 8, !tbaa !9
  %3358 = mul nsw i64 %3357, 3
  %3359 = load i64, ptr %57, align 8, !tbaa !9
  %3360 = add nsw i64 %3358, %3359
  %3361 = getelementptr inbounds float, ptr %3355, i64 %3360
  store float 0.000000e+00, ptr %3361, align 4, !tbaa !11
  %3362 = load float, ptr %95, align 4, !tbaa !11
  %3363 = fneg float %3362
  %3364 = load float, ptr %72, align 4, !tbaa !11
  %3365 = fdiv float %3363, %3364
  %3366 = load ptr, ptr %32, align 8, !tbaa !5
  %3367 = load ptr, ptr %21, align 8, !tbaa !5
  %3368 = load i64, ptr %3367, align 8, !tbaa !9
  %3369 = shl i64 %3368, 1
  %3370 = load i64, ptr %57, align 8, !tbaa !9
  %3371 = add nsw i64 %3369, %3370
  %3372 = sub nsw i64 %3371, 1
  %3373 = getelementptr inbounds float, ptr %3366, i64 %3372
  store float %3365, ptr %3373, align 4, !tbaa !11
  %3374 = load float, ptr %94, align 4, !tbaa !11
  %3375 = fneg float %3374
  %3376 = load float, ptr %72, align 4, !tbaa !11
  %3377 = fdiv float %3375, %3376
  %3378 = load ptr, ptr %32, align 8, !tbaa !5
  %3379 = load ptr, ptr %21, align 8, !tbaa !5
  %3380 = load i64, ptr %3379, align 8, !tbaa !9
  %3381 = mul nsw i64 %3380, 3
  %3382 = load i64, ptr %57, align 8, !tbaa !9
  %3383 = add nsw i64 %3381, %3382
  %3384 = sub nsw i64 %3383, 1
  %3385 = getelementptr inbounds float, ptr %3378, i64 %3384
  store float %3377, ptr %3385, align 4, !tbaa !11
  br label %3469

3386:                                             ; preds = %3342
  %3387 = load ptr, ptr %32, align 8, !tbaa !5
  %3388 = load ptr, ptr %21, align 8, !tbaa !5
  %3389 = load i64, ptr %3388, align 8, !tbaa !9
  %3390 = shl i64 %3389, 1
  %3391 = load i64, ptr %57, align 8, !tbaa !9
  %3392 = add nsw i64 %3390, %3391
  %3393 = sub nsw i64 %3392, 1
  %3394 = getelementptr inbounds float, ptr %3387, i64 %3393
  store float 1.000000e+00, ptr %3394, align 4, !tbaa !11
  %3395 = load ptr, ptr %32, align 8, !tbaa !5
  %3396 = load ptr, ptr %21, align 8, !tbaa !5
  %3397 = load i64, ptr %3396, align 8, !tbaa !9
  %3398 = mul nsw i64 %3397, 3
  %3399 = load i64, ptr %57, align 8, !tbaa !9
  %3400 = add nsw i64 %3398, %3399
  %3401 = sub nsw i64 %3400, 1
  %3402 = getelementptr inbounds float, ptr %3395, i64 %3401
  store float 0.000000e+00, ptr %3402, align 4, !tbaa !11
  %3403 = load float, ptr %82, align 4, !tbaa !11
  %3404 = load ptr, ptr %22, align 8, !tbaa !5
  %3405 = load i64, ptr %57, align 8, !tbaa !9
  %3406 = sub nsw i64 %3405, 1
  %3407 = load i64, ptr %57, align 8, !tbaa !9
  %3408 = load i64, ptr %36, align 8, !tbaa !9
  %3409 = mul nsw i64 %3407, %3408
  %3410 = add nsw i64 %3406, %3409
  %3411 = getelementptr inbounds float, ptr %3404, i64 %3410
  %3412 = load float, ptr %3411, align 4, !tbaa !11
  %3413 = fmul float %3403, %3412
  store float %3413, ptr %72, align 4, !tbaa !11
  %3414 = load float, ptr %108, align 4, !tbaa !11
  %3415 = load ptr, ptr %24, align 8, !tbaa !5
  %3416 = load i64, ptr %57, align 8, !tbaa !9
  %3417 = sub nsw i64 %3416, 1
  %3418 = load i64, ptr %57, align 8, !tbaa !9
  %3419 = sub nsw i64 %3418, 1
  %3420 = load i64, ptr %34, align 8, !tbaa !9
  %3421 = mul nsw i64 %3419, %3420
  %3422 = add nsw i64 %3417, %3421
  %3423 = getelementptr inbounds float, ptr %3415, i64 %3422
  %3424 = load float, ptr %3423, align 4, !tbaa !11
  %3425 = load float, ptr %82, align 4, !tbaa !11
  %3426 = load ptr, ptr %22, align 8, !tbaa !5
  %3427 = load i64, ptr %57, align 8, !tbaa !9
  %3428 = sub nsw i64 %3427, 1
  %3429 = load i64, ptr %57, align 8, !tbaa !9
  %3430 = sub nsw i64 %3429, 1
  %3431 = load i64, ptr %36, align 8, !tbaa !9
  %3432 = mul nsw i64 %3430, %3431
  %3433 = add nsw i64 %3428, %3432
  %3434 = getelementptr inbounds float, ptr %3426, i64 %3433
  %3435 = load float, ptr %3434, align 4, !tbaa !11
  %3436 = fmul float %3425, %3435
  %3437 = fneg float %3436
  %3438 = call float @llvm.fmuladd.f32(float %3414, float %3424, float %3437)
  %3439 = load float, ptr %72, align 4, !tbaa !11
  %3440 = fdiv float %3438, %3439
  %3441 = load ptr, ptr %32, align 8, !tbaa !5
  %3442 = load ptr, ptr %21, align 8, !tbaa !5
  %3443 = load i64, ptr %3442, align 8, !tbaa !9
  %3444 = shl i64 %3443, 1
  %3445 = load i64, ptr %57, align 8, !tbaa !9
  %3446 = add nsw i64 %3444, %3445
  %3447 = getelementptr inbounds float, ptr %3441, i64 %3446
  store float %3440, ptr %3447, align 4, !tbaa !11
  %3448 = load float, ptr %103, align 4, !tbaa !11
  %3449 = load ptr, ptr %24, align 8, !tbaa !5
  %3450 = load i64, ptr %57, align 8, !tbaa !9
  %3451 = sub nsw i64 %3450, 1
  %3452 = load i64, ptr %57, align 8, !tbaa !9
  %3453 = sub nsw i64 %3452, 1
  %3454 = load i64, ptr %34, align 8, !tbaa !9
  %3455 = mul nsw i64 %3453, %3454
  %3456 = add nsw i64 %3451, %3455
  %3457 = getelementptr inbounds float, ptr %3449, i64 %3456
  %3458 = load float, ptr %3457, align 4, !tbaa !11
  %3459 = fmul float %3448, %3458
  %3460 = load float, ptr %72, align 4, !tbaa !11
  %3461 = fdiv float %3459, %3460
  %3462 = load ptr, ptr %32, align 8, !tbaa !5
  %3463 = load ptr, ptr %21, align 8, !tbaa !5
  %3464 = load i64, ptr %3463, align 8, !tbaa !9
  %3465 = mul nsw i64 %3464, 3
  %3466 = load i64, ptr %57, align 8, !tbaa !9
  %3467 = add nsw i64 %3465, %3466
  %3468 = getelementptr inbounds float, ptr %3462, i64 %3467
  store float %3461, ptr %3468, align 4, !tbaa !11
  br label %3469

3469:                                             ; preds = %3386, %3347
  %3470 = load ptr, ptr %32, align 8, !tbaa !5
  %3471 = load ptr, ptr %21, align 8, !tbaa !5
  %3472 = load i64, ptr %3471, align 8, !tbaa !9
  %3473 = shl i64 %3472, 1
  %3474 = load i64, ptr %57, align 8, !tbaa !9
  %3475 = add nsw i64 %3473, %3474
  %3476 = getelementptr inbounds float, ptr %3470, i64 %3475
  %3477 = load float, ptr %3476, align 4, !tbaa !11
  store float %3477, ptr %47, align 4, !tbaa !11
  %3478 = load float, ptr %47, align 4, !tbaa !11
  %3479 = fcmp oge float %3478, 0.000000e+00
  br i1 %3479, label %3480, label %3482

3480:                                             ; preds = %3469
  %3481 = load float, ptr %47, align 4, !tbaa !11
  br label %3485

3482:                                             ; preds = %3469
  %3483 = load float, ptr %47, align 4, !tbaa !11
  %3484 = fneg float %3483
  br label %3485

3485:                                             ; preds = %3482, %3480
  %3486 = phi float [ %3481, %3480 ], [ %3484, %3482 ]
  %3487 = fpext float %3486 to double
  %3488 = load ptr, ptr %32, align 8, !tbaa !5
  %3489 = load ptr, ptr %21, align 8, !tbaa !5
  %3490 = load i64, ptr %3489, align 8, !tbaa !9
  %3491 = mul nsw i64 %3490, 3
  %3492 = load i64, ptr %57, align 8, !tbaa !9
  %3493 = add nsw i64 %3491, %3492
  %3494 = getelementptr inbounds float, ptr %3488, i64 %3493
  %3495 = load float, ptr %3494, align 4, !tbaa !11
  store float %3495, ptr %48, align 4, !tbaa !11
  %3496 = load float, ptr %48, align 4, !tbaa !11
  %3497 = fcmp oge float %3496, 0.000000e+00
  br i1 %3497, label %3498, label %3500

3498:                                             ; preds = %3485
  %3499 = load float, ptr %48, align 4, !tbaa !11
  br label %3503

3500:                                             ; preds = %3485
  %3501 = load float, ptr %48, align 4, !tbaa !11
  %3502 = fneg float %3501
  br label %3503

3503:                                             ; preds = %3500, %3498
  %3504 = phi float [ %3499, %3498 ], [ %3502, %3500 ]
  %3505 = fpext float %3504 to double
  %3506 = fadd double %3487, %3505
  %3507 = fptrunc double %3506 to float
  store float %3507, ptr %51, align 4, !tbaa !11
  %3508 = load ptr, ptr %32, align 8, !tbaa !5
  %3509 = load ptr, ptr %21, align 8, !tbaa !5
  %3510 = load i64, ptr %3509, align 8, !tbaa !9
  %3511 = shl i64 %3510, 1
  %3512 = load i64, ptr %57, align 8, !tbaa !9
  %3513 = add nsw i64 %3511, %3512
  %3514 = sub nsw i64 %3513, 1
  %3515 = getelementptr inbounds float, ptr %3508, i64 %3514
  %3516 = load float, ptr %3515, align 4, !tbaa !11
  store float %3516, ptr %49, align 4, !tbaa !11
  %3517 = load float, ptr %49, align 4, !tbaa !11
  %3518 = fcmp oge float %3517, 0.000000e+00
  br i1 %3518, label %3519, label %3521

3519:                                             ; preds = %3503
  %3520 = load float, ptr %49, align 4, !tbaa !11
  br label %3524

3521:                                             ; preds = %3503
  %3522 = load float, ptr %49, align 4, !tbaa !11
  %3523 = fneg float %3522
  br label %3524

3524:                                             ; preds = %3521, %3519
  %3525 = phi float [ %3520, %3519 ], [ %3523, %3521 ]
  %3526 = fpext float %3525 to double
  %3527 = load ptr, ptr %32, align 8, !tbaa !5
  %3528 = load ptr, ptr %21, align 8, !tbaa !5
  %3529 = load i64, ptr %3528, align 8, !tbaa !9
  %3530 = mul nsw i64 %3529, 3
  %3531 = load i64, ptr %57, align 8, !tbaa !9
  %3532 = add nsw i64 %3530, %3531
  %3533 = sub nsw i64 %3532, 1
  %3534 = getelementptr inbounds float, ptr %3527, i64 %3533
  %3535 = load float, ptr %3534, align 4, !tbaa !11
  store float %3535, ptr %50, align 4, !tbaa !11
  %3536 = load float, ptr %50, align 4, !tbaa !11
  %3537 = fcmp oge float %3536, 0.000000e+00
  br i1 %3537, label %3538, label %3540

3538:                                             ; preds = %3524
  %3539 = load float, ptr %50, align 4, !tbaa !11
  br label %3543

3540:                                             ; preds = %3524
  %3541 = load float, ptr %50, align 4, !tbaa !11
  %3542 = fneg float %3541
  br label %3543

3543:                                             ; preds = %3540, %3538
  %3544 = phi float [ %3539, %3538 ], [ %3542, %3540 ]
  %3545 = fpext float %3544 to double
  %3546 = fadd double %3526, %3545
  %3547 = fptrunc double %3546 to float
  store float %3547, ptr %52, align 4, !tbaa !11
  %3548 = load float, ptr %51, align 4, !tbaa !11
  %3549 = load float, ptr %52, align 4, !tbaa !11
  %3550 = fcmp oge float %3548, %3549
  br i1 %3550, label %3551, label %3553

3551:                                             ; preds = %3543
  %3552 = load float, ptr %51, align 4, !tbaa !11
  br label %3555

3553:                                             ; preds = %3543
  %3554 = load float, ptr %52, align 4, !tbaa !11
  br label %3555

3555:                                             ; preds = %3553, %3551
  %3556 = phi float [ %3552, %3551 ], [ %3554, %3553 ]
  %3557 = fpext float %3556 to double
  %3558 = fptrunc double %3557 to float
  store float %3558, ptr %73, align 4, !tbaa !11
  %3559 = load float, ptr %82, align 4, !tbaa !11
  %3560 = load ptr, ptr %32, align 8, !tbaa !5
  %3561 = load ptr, ptr %21, align 8, !tbaa !5
  %3562 = load i64, ptr %3561, align 8, !tbaa !9
  %3563 = shl i64 %3562, 1
  %3564 = load i64, ptr %57, align 8, !tbaa !9
  %3565 = add nsw i64 %3563, %3564
  %3566 = sub nsw i64 %3565, 1
  %3567 = getelementptr inbounds float, ptr %3560, i64 %3566
  %3568 = load float, ptr %3567, align 4, !tbaa !11
  %3569 = fmul float %3559, %3568
  store float %3569, ptr %106, align 4, !tbaa !11
  %3570 = load float, ptr %82, align 4, !tbaa !11
  %3571 = load ptr, ptr %32, align 8, !tbaa !5
  %3572 = load ptr, ptr %21, align 8, !tbaa !5
  %3573 = load i64, ptr %3572, align 8, !tbaa !9
  %3574 = mul nsw i64 %3573, 3
  %3575 = load i64, ptr %57, align 8, !tbaa !9
  %3576 = add nsw i64 %3574, %3575
  %3577 = sub nsw i64 %3576, 1
  %3578 = getelementptr inbounds float, ptr %3571, i64 %3577
  %3579 = load float, ptr %3578, align 4, !tbaa !11
  %3580 = fmul float %3570, %3579
  store float %3580, ptr %100, align 4, !tbaa !11
  %3581 = load float, ptr %108, align 4, !tbaa !11
  %3582 = load ptr, ptr %32, align 8, !tbaa !5
  %3583 = load ptr, ptr %21, align 8, !tbaa !5
  %3584 = load i64, ptr %3583, align 8, !tbaa !9
  %3585 = shl i64 %3584, 1
  %3586 = load i64, ptr %57, align 8, !tbaa !9
  %3587 = add nsw i64 %3585, %3586
  %3588 = sub nsw i64 %3587, 1
  %3589 = getelementptr inbounds float, ptr %3582, i64 %3588
  %3590 = load float, ptr %3589, align 4, !tbaa !11
  %3591 = load float, ptr %103, align 4, !tbaa !11
  %3592 = load ptr, ptr %32, align 8, !tbaa !5
  %3593 = load ptr, ptr %21, align 8, !tbaa !5
  %3594 = load i64, ptr %3593, align 8, !tbaa !9
  %3595 = mul nsw i64 %3594, 3
  %3596 = load i64, ptr %57, align 8, !tbaa !9
  %3597 = add nsw i64 %3595, %3596
  %3598 = sub nsw i64 %3597, 1
  %3599 = getelementptr inbounds float, ptr %3592, i64 %3598
  %3600 = load float, ptr %3599, align 4, !tbaa !11
  %3601 = fmul float %3591, %3600
  %3602 = fneg float %3601
  %3603 = call float @llvm.fmuladd.f32(float %3581, float %3590, float %3602)
  store float %3603, ptr %107, align 4, !tbaa !11
  %3604 = load float, ptr %103, align 4, !tbaa !11
  %3605 = load ptr, ptr %32, align 8, !tbaa !5
  %3606 = load ptr, ptr %21, align 8, !tbaa !5
  %3607 = load i64, ptr %3606, align 8, !tbaa !9
  %3608 = shl i64 %3607, 1
  %3609 = load i64, ptr %57, align 8, !tbaa !9
  %3610 = add nsw i64 %3608, %3609
  %3611 = sub nsw i64 %3610, 1
  %3612 = getelementptr inbounds float, ptr %3605, i64 %3611
  %3613 = load float, ptr %3612, align 4, !tbaa !11
  %3614 = load float, ptr %108, align 4, !tbaa !11
  %3615 = load ptr, ptr %32, align 8, !tbaa !5
  %3616 = load ptr, ptr %21, align 8, !tbaa !5
  %3617 = load i64, ptr %3616, align 8, !tbaa !9
  %3618 = mul nsw i64 %3617, 3
  %3619 = load i64, ptr %57, align 8, !tbaa !9
  %3620 = add nsw i64 %3618, %3619
  %3621 = sub nsw i64 %3620, 1
  %3622 = getelementptr inbounds float, ptr %3615, i64 %3621
  %3623 = load float, ptr %3622, align 4, !tbaa !11
  %3624 = fmul float %3614, %3623
  %3625 = call float @llvm.fmuladd.f32(float %3604, float %3613, float %3624)
  store float %3625, ptr %101, align 4, !tbaa !11
  %3626 = load float, ptr %82, align 4, !tbaa !11
  %3627 = load ptr, ptr %32, align 8, !tbaa !5
  %3628 = load ptr, ptr %21, align 8, !tbaa !5
  %3629 = load i64, ptr %3628, align 8, !tbaa !9
  %3630 = shl i64 %3629, 1
  %3631 = load i64, ptr %57, align 8, !tbaa !9
  %3632 = add nsw i64 %3630, %3631
  %3633 = getelementptr inbounds float, ptr %3627, i64 %3632
  %3634 = load float, ptr %3633, align 4, !tbaa !11
  %3635 = fmul float %3626, %3634
  store float %3635, ptr %78, align 4, !tbaa !11
  %3636 = load float, ptr %82, align 4, !tbaa !11
  %3637 = load ptr, ptr %32, align 8, !tbaa !5
  %3638 = load ptr, ptr %21, align 8, !tbaa !5
  %3639 = load i64, ptr %3638, align 8, !tbaa !9
  %3640 = mul nsw i64 %3639, 3
  %3641 = load i64, ptr %57, align 8, !tbaa !9
  %3642 = add nsw i64 %3640, %3641
  %3643 = getelementptr inbounds float, ptr %3637, i64 %3642
  %3644 = load float, ptr %3643, align 4, !tbaa !11
  %3645 = fmul float %3636, %3644
  store float %3645, ptr %76, align 4, !tbaa !11
  %3646 = load float, ptr %108, align 4, !tbaa !11
  %3647 = load ptr, ptr %32, align 8, !tbaa !5
  %3648 = load ptr, ptr %21, align 8, !tbaa !5
  %3649 = load i64, ptr %3648, align 8, !tbaa !9
  %3650 = shl i64 %3649, 1
  %3651 = load i64, ptr %57, align 8, !tbaa !9
  %3652 = add nsw i64 %3650, %3651
  %3653 = getelementptr inbounds float, ptr %3647, i64 %3652
  %3654 = load float, ptr %3653, align 4, !tbaa !11
  %3655 = load float, ptr %103, align 4, !tbaa !11
  %3656 = load ptr, ptr %32, align 8, !tbaa !5
  %3657 = load ptr, ptr %21, align 8, !tbaa !5
  %3658 = load i64, ptr %3657, align 8, !tbaa !9
  %3659 = mul nsw i64 %3658, 3
  %3660 = load i64, ptr %57, align 8, !tbaa !9
  %3661 = add nsw i64 %3659, %3660
  %3662 = getelementptr inbounds float, ptr %3656, i64 %3661
  %3663 = load float, ptr %3662, align 4, !tbaa !11
  %3664 = fmul float %3655, %3663
  %3665 = fneg float %3664
  %3666 = call float @llvm.fmuladd.f32(float %3646, float %3654, float %3665)
  store float %3666, ptr %79, align 4, !tbaa !11
  %3667 = load float, ptr %103, align 4, !tbaa !11
  %3668 = load ptr, ptr %32, align 8, !tbaa !5
  %3669 = load ptr, ptr %21, align 8, !tbaa !5
  %3670 = load i64, ptr %3669, align 8, !tbaa !9
  %3671 = shl i64 %3670, 1
  %3672 = load i64, ptr %57, align 8, !tbaa !9
  %3673 = add nsw i64 %3671, %3672
  %3674 = getelementptr inbounds float, ptr %3668, i64 %3673
  %3675 = load float, ptr %3674, align 4, !tbaa !11
  %3676 = load float, ptr %108, align 4, !tbaa !11
  %3677 = load ptr, ptr %32, align 8, !tbaa !5
  %3678 = load ptr, ptr %21, align 8, !tbaa !5
  %3679 = load i64, ptr %3678, align 8, !tbaa !9
  %3680 = mul nsw i64 %3679, 3
  %3681 = load i64, ptr %57, align 8, !tbaa !9
  %3682 = add nsw i64 %3680, %3681
  %3683 = getelementptr inbounds float, ptr %3677, i64 %3682
  %3684 = load float, ptr %3683, align 4, !tbaa !11
  %3685 = fmul float %3676, %3684
  %3686 = call float @llvm.fmuladd.f32(float %3667, float %3675, float %3685)
  store float %3686, ptr %77, align 4, !tbaa !11
  %3687 = load i64, ptr %57, align 8, !tbaa !9
  %3688 = sub nsw i64 %3687, 2
  store i64 %3688, ptr %42, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %3689

3689:                                             ; preds = %3796, %3555
  %3690 = load i64, ptr %60, align 8, !tbaa !9
  %3691 = load i64, ptr %42, align 8, !tbaa !9
  %3692 = icmp sle i64 %3690, %3691
  br i1 %3692, label %3693, label %3799

3693:                                             ; preds = %3689
  %3694 = load float, ptr %106, align 4, !tbaa !11
  %3695 = fneg float %3694
  %3696 = load ptr, ptr %22, align 8, !tbaa !5
  %3697 = load i64, ptr %60, align 8, !tbaa !9
  %3698 = load i64, ptr %57, align 8, !tbaa !9
  %3699 = sub nsw i64 %3698, 1
  %3700 = load i64, ptr %36, align 8, !tbaa !9
  %3701 = mul nsw i64 %3699, %3700
  %3702 = add nsw i64 %3697, %3701
  %3703 = getelementptr inbounds float, ptr %3696, i64 %3702
  %3704 = load float, ptr %3703, align 4, !tbaa !11
  %3705 = load float, ptr %107, align 4, !tbaa !11
  %3706 = load ptr, ptr %24, align 8, !tbaa !5
  %3707 = load i64, ptr %60, align 8, !tbaa !9
  %3708 = load i64, ptr %57, align 8, !tbaa !9
  %3709 = sub nsw i64 %3708, 1
  %3710 = load i64, ptr %34, align 8, !tbaa !9
  %3711 = mul nsw i64 %3709, %3710
  %3712 = add nsw i64 %3707, %3711
  %3713 = getelementptr inbounds float, ptr %3706, i64 %3712
  %3714 = load float, ptr %3713, align 4, !tbaa !11
  %3715 = fmul float %3705, %3714
  %3716 = call float @llvm.fmuladd.f32(float %3695, float %3704, float %3715)
  %3717 = load float, ptr %78, align 4, !tbaa !11
  %3718 = load ptr, ptr %22, align 8, !tbaa !5
  %3719 = load i64, ptr %60, align 8, !tbaa !9
  %3720 = load i64, ptr %57, align 8, !tbaa !9
  %3721 = load i64, ptr %36, align 8, !tbaa !9
  %3722 = mul nsw i64 %3720, %3721
  %3723 = add nsw i64 %3719, %3722
  %3724 = getelementptr inbounds float, ptr %3718, i64 %3723
  %3725 = load float, ptr %3724, align 4, !tbaa !11
  %3726 = fneg float %3717
  %3727 = call float @llvm.fmuladd.f32(float %3726, float %3725, float %3716)
  %3728 = load float, ptr %79, align 4, !tbaa !11
  %3729 = load ptr, ptr %24, align 8, !tbaa !5
  %3730 = load i64, ptr %60, align 8, !tbaa !9
  %3731 = load i64, ptr %57, align 8, !tbaa !9
  %3732 = load i64, ptr %34, align 8, !tbaa !9
  %3733 = mul nsw i64 %3731, %3732
  %3734 = add nsw i64 %3730, %3733
  %3735 = getelementptr inbounds float, ptr %3729, i64 %3734
  %3736 = load float, ptr %3735, align 4, !tbaa !11
  %3737 = call float @llvm.fmuladd.f32(float %3728, float %3736, float %3727)
  %3738 = load ptr, ptr %32, align 8, !tbaa !5
  %3739 = load ptr, ptr %21, align 8, !tbaa !5
  %3740 = load i64, ptr %3739, align 8, !tbaa !9
  %3741 = shl i64 %3740, 1
  %3742 = load i64, ptr %60, align 8, !tbaa !9
  %3743 = add nsw i64 %3741, %3742
  %3744 = getelementptr inbounds float, ptr %3738, i64 %3743
  store float %3737, ptr %3744, align 4, !tbaa !11
  %3745 = load float, ptr %100, align 4, !tbaa !11
  %3746 = fneg float %3745
  %3747 = load ptr, ptr %22, align 8, !tbaa !5
  %3748 = load i64, ptr %60, align 8, !tbaa !9
  %3749 = load i64, ptr %57, align 8, !tbaa !9
  %3750 = sub nsw i64 %3749, 1
  %3751 = load i64, ptr %36, align 8, !tbaa !9
  %3752 = mul nsw i64 %3750, %3751
  %3753 = add nsw i64 %3748, %3752
  %3754 = getelementptr inbounds float, ptr %3747, i64 %3753
  %3755 = load float, ptr %3754, align 4, !tbaa !11
  %3756 = load float, ptr %101, align 4, !tbaa !11
  %3757 = load ptr, ptr %24, align 8, !tbaa !5
  %3758 = load i64, ptr %60, align 8, !tbaa !9
  %3759 = load i64, ptr %57, align 8, !tbaa !9
  %3760 = sub nsw i64 %3759, 1
  %3761 = load i64, ptr %34, align 8, !tbaa !9
  %3762 = mul nsw i64 %3760, %3761
  %3763 = add nsw i64 %3758, %3762
  %3764 = getelementptr inbounds float, ptr %3757, i64 %3763
  %3765 = load float, ptr %3764, align 4, !tbaa !11
  %3766 = fmul float %3756, %3765
  %3767 = call float @llvm.fmuladd.f32(float %3746, float %3755, float %3766)
  %3768 = load float, ptr %76, align 4, !tbaa !11
  %3769 = load ptr, ptr %22, align 8, !tbaa !5
  %3770 = load i64, ptr %60, align 8, !tbaa !9
  %3771 = load i64, ptr %57, align 8, !tbaa !9
  %3772 = load i64, ptr %36, align 8, !tbaa !9
  %3773 = mul nsw i64 %3771, %3772
  %3774 = add nsw i64 %3770, %3773
  %3775 = getelementptr inbounds float, ptr %3769, i64 %3774
  %3776 = load float, ptr %3775, align 4, !tbaa !11
  %3777 = fneg float %3768
  %3778 = call float @llvm.fmuladd.f32(float %3777, float %3776, float %3767)
  %3779 = load float, ptr %77, align 4, !tbaa !11
  %3780 = load ptr, ptr %24, align 8, !tbaa !5
  %3781 = load i64, ptr %60, align 8, !tbaa !9
  %3782 = load i64, ptr %57, align 8, !tbaa !9
  %3783 = load i64, ptr %34, align 8, !tbaa !9
  %3784 = mul nsw i64 %3782, %3783
  %3785 = add nsw i64 %3781, %3784
  %3786 = getelementptr inbounds float, ptr %3780, i64 %3785
  %3787 = load float, ptr %3786, align 4, !tbaa !11
  %3788 = call float @llvm.fmuladd.f32(float %3779, float %3787, float %3778)
  %3789 = load ptr, ptr %32, align 8, !tbaa !5
  %3790 = load ptr, ptr %21, align 8, !tbaa !5
  %3791 = load i64, ptr %3790, align 8, !tbaa !9
  %3792 = mul nsw i64 %3791, 3
  %3793 = load i64, ptr %60, align 8, !tbaa !9
  %3794 = add nsw i64 %3792, %3793
  %3795 = getelementptr inbounds float, ptr %3789, i64 %3794
  store float %3788, ptr %3795, align 4, !tbaa !11
  br label %3796

3796:                                             ; preds = %3693
  %3797 = load i64, ptr %60, align 8, !tbaa !9
  %3798 = add nsw i64 %3797, 1
  store i64 %3798, ptr %60, align 8, !tbaa !9
  br label %3689, !llvm.loop !40

3799:                                             ; preds = %3689
  br label %3800

3800:                                             ; preds = %3799, %3081
  %3801 = load float, ptr %66, align 4, !tbaa !11
  %3802 = load float, ptr %98, align 4, !tbaa !11
  %3803 = fmul float %3801, %3802
  %3804 = load float, ptr %91, align 4, !tbaa !11
  %3805 = fmul float %3803, %3804
  store float %3805, ptr %47, align 4, !tbaa !11
  %3806 = load float, ptr %66, align 4, !tbaa !11
  %3807 = load float, ptr %99, align 4, !tbaa !11
  %3808 = fmul float %3806, %3807
  %3809 = load float, ptr %92, align 4, !tbaa !11
  %3810 = fmul float %3808, %3809
  store float %3810, ptr %48, align 4, !tbaa !11
  %3811 = load float, ptr %47, align 4, !tbaa !11
  %3812 = load float, ptr %48, align 4, !tbaa !11
  %3813 = fcmp oge float %3811, %3812
  br i1 %3813, label %3814, label %3816

3814:                                             ; preds = %3800
  %3815 = load float, ptr %47, align 4, !tbaa !11
  br label %3818

3816:                                             ; preds = %3800
  %3817 = load float, ptr %48, align 4, !tbaa !11
  br label %3818

3818:                                             ; preds = %3816, %3814
  %3819 = phi float [ %3815, %3814 ], [ %3817, %3816 ]
  store float %3819, ptr %47, align 4, !tbaa !11
  %3820 = load float, ptr %47, align 4, !tbaa !11
  %3821 = load float, ptr %110, align 4, !tbaa !11
  %3822 = fcmp oge float %3820, %3821
  br i1 %3822, label %3823, label %3825

3823:                                             ; preds = %3818
  %3824 = load float, ptr %47, align 4, !tbaa !11
  br label %3827

3825:                                             ; preds = %3818
  %3826 = load float, ptr %110, align 4, !tbaa !11
  br label %3827

3827:                                             ; preds = %3825, %3823
  %3828 = phi float [ %3824, %3823 ], [ %3826, %3825 ]
  %3829 = fpext float %3828 to double
  %3830 = fptrunc double %3829 to float
  store float %3830, ptr %71, align 4, !tbaa !11
  store i64 0, ptr %87, align 8, !tbaa !9
  %3831 = load i64, ptr %57, align 8, !tbaa !9
  %3832 = load i64, ptr %62, align 8, !tbaa !9
  %3833 = sub nsw i64 %3831, %3832
  store i64 %3833, ptr %54, align 8, !tbaa !9
  br label %3834

3834:                                             ; preds = %4404, %3827
  %3835 = load i64, ptr %54, align 8, !tbaa !9
  %3836 = icmp sge i64 %3835, 1
  br i1 %3836, label %3837, label %4407

3837:                                             ; preds = %3834
  %3838 = load i64, ptr %87, align 8, !tbaa !9
  %3839 = icmp ne i64 %3838, 0
  br i1 %3839, label %3856, label %3840

3840:                                             ; preds = %3837
  %3841 = load i64, ptr %54, align 8, !tbaa !9
  %3842 = icmp sgt i64 %3841, 1
  br i1 %3842, label %3843, label %3856

3843:                                             ; preds = %3840
  %3844 = load ptr, ptr %22, align 8, !tbaa !5
  %3845 = load i64, ptr %54, align 8, !tbaa !9
  %3846 = load i64, ptr %54, align 8, !tbaa !9
  %3847 = sub nsw i64 %3846, 1
  %3848 = load i64, ptr %36, align 8, !tbaa !9
  %3849 = mul nsw i64 %3847, %3848
  %3850 = add nsw i64 %3845, %3849
  %3851 = getelementptr inbounds float, ptr %3844, i64 %3850
  %3852 = load float, ptr %3851, align 4, !tbaa !11
  %3853 = fcmp une float %3852, 0.000000e+00
  br i1 %3853, label %3854, label %3855

3854:                                             ; preds = %3843
  store i64 1, ptr %87, align 8, !tbaa !9
  br label %4403

3855:                                             ; preds = %3843
  br label %3856

3856:                                             ; preds = %3855, %3840, %3837
  %3857 = load ptr, ptr %24, align 8, !tbaa !5
  %3858 = load i64, ptr %54, align 8, !tbaa !9
  %3859 = load i64, ptr %54, align 8, !tbaa !9
  %3860 = load i64, ptr %34, align 8, !tbaa !9
  %3861 = mul nsw i64 %3859, %3860
  %3862 = add nsw i64 %3858, %3861
  %3863 = getelementptr inbounds float, ptr %3857, i64 %3862
  %3864 = load float, ptr %3863, align 4, !tbaa !11
  %3865 = getelementptr inbounds [2 x float], ptr %81, i64 0, i64 0
  store float %3864, ptr %3865, align 4, !tbaa !11
  %3866 = load i64, ptr %87, align 8, !tbaa !9
  %3867 = icmp ne i64 %3866, 0
  br i1 %3867, label %3868, label %3880

3868:                                             ; preds = %3856
  store i64 2, ptr %58, align 8, !tbaa !9
  %3869 = load ptr, ptr %24, align 8, !tbaa !5
  %3870 = load i64, ptr %54, align 8, !tbaa !9
  %3871 = add nsw i64 %3870, 1
  %3872 = load i64, ptr %54, align 8, !tbaa !9
  %3873 = add nsw i64 %3872, 1
  %3874 = load i64, ptr %34, align 8, !tbaa !9
  %3875 = mul nsw i64 %3873, %3874
  %3876 = add nsw i64 %3871, %3875
  %3877 = getelementptr inbounds float, ptr %3869, i64 %3876
  %3878 = load float, ptr %3877, align 4, !tbaa !11
  %3879 = getelementptr inbounds [2 x float], ptr %81, i64 0, i64 1
  store float %3878, ptr %3879, align 4, !tbaa !11
  br label %3881

3880:                                             ; preds = %3856
  store i64 1, ptr %58, align 8, !tbaa !9
  br label %3881

3881:                                             ; preds = %3880, %3868
  %3882 = load ptr, ptr %22, align 8, !tbaa !5
  %3883 = load i64, ptr %54, align 8, !tbaa !9
  %3884 = load i64, ptr %54, align 8, !tbaa !9
  %3885 = load i64, ptr %36, align 8, !tbaa !9
  %3886 = mul nsw i64 %3884, %3885
  %3887 = add nsw i64 %3883, %3886
  %3888 = getelementptr inbounds float, ptr %3882, i64 %3887
  %3889 = load ptr, ptr %23, align 8, !tbaa !5
  %3890 = getelementptr inbounds [2 x float], ptr %81, i64 0, i64 0
  %3891 = getelementptr inbounds [2 x float], ptr %81, i64 0, i64 1
  %3892 = load ptr, ptr %32, align 8, !tbaa !5
  %3893 = load ptr, ptr %21, align 8, !tbaa !5
  %3894 = load i64, ptr %3893, align 8, !tbaa !9
  %3895 = shl i64 %3894, 1
  %3896 = load i64, ptr %54, align 8, !tbaa !9
  %3897 = add nsw i64 %3895, %3896
  %3898 = getelementptr inbounds float, ptr %3892, i64 %3897
  %3899 = load ptr, ptr %21, align 8, !tbaa !5
  %3900 = getelementptr inbounds [4 x float], ptr %67, i64 0, i64 0
  %3901 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef %58, ptr noundef %62, ptr noundef %71, ptr noundef %82, ptr noundef %3888, ptr noundef %3889, ptr noundef %3890, ptr noundef %3891, ptr noundef %3898, ptr noundef %3899, ptr noundef %108, ptr noundef %103, ptr noundef %3900, ptr noundef @c__2, ptr noundef %83, ptr noundef %72, ptr noundef %88)
  %3902 = load float, ptr %83, align 4, !tbaa !11
  %3903 = fcmp olt float %3902, 1.000000e+00
  br i1 %3903, label %3904, label %3947

3904:                                             ; preds = %3881
  %3905 = load i64, ptr %62, align 8, !tbaa !9
  %3906 = sub nsw i64 %3905, 1
  store i64 %3906, ptr %42, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %3907

3907:                                             ; preds = %3943, %3904
  %3908 = load i64, ptr %61, align 8, !tbaa !9
  %3909 = load i64, ptr %42, align 8, !tbaa !9
  %3910 = icmp sle i64 %3908, %3909
  br i1 %3910, label %3911, label %3946

3911:                                             ; preds = %3907
  %3912 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %3912, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %3913

3913:                                             ; preds = %3939, %3911
  %3914 = load i64, ptr %60, align 8, !tbaa !9
  %3915 = load i64, ptr %43, align 8, !tbaa !9
  %3916 = icmp sle i64 %3914, %3915
  br i1 %3916, label %3917, label %3942

3917:                                             ; preds = %3913
  %3918 = load float, ptr %83, align 4, !tbaa !11
  %3919 = load ptr, ptr %32, align 8, !tbaa !5
  %3920 = load i64, ptr %61, align 8, !tbaa !9
  %3921 = add nsw i64 %3920, 2
  %3922 = load ptr, ptr %21, align 8, !tbaa !5
  %3923 = load i64, ptr %3922, align 8, !tbaa !9
  %3924 = mul nsw i64 %3921, %3923
  %3925 = load i64, ptr %60, align 8, !tbaa !9
  %3926 = add nsw i64 %3924, %3925
  %3927 = getelementptr inbounds float, ptr %3919, i64 %3926
  %3928 = load float, ptr %3927, align 4, !tbaa !11
  %3929 = fmul float %3918, %3928
  %3930 = load ptr, ptr %32, align 8, !tbaa !5
  %3931 = load i64, ptr %61, align 8, !tbaa !9
  %3932 = add nsw i64 %3931, 2
  %3933 = load ptr, ptr %21, align 8, !tbaa !5
  %3934 = load i64, ptr %3933, align 8, !tbaa !9
  %3935 = mul nsw i64 %3932, %3934
  %3936 = load i64, ptr %60, align 8, !tbaa !9
  %3937 = add nsw i64 %3935, %3936
  %3938 = getelementptr inbounds float, ptr %3930, i64 %3937
  store float %3929, ptr %3938, align 4, !tbaa !11
  br label %3939

3939:                                             ; preds = %3917
  %3940 = load i64, ptr %60, align 8, !tbaa !9
  %3941 = add nsw i64 %3940, 1
  store i64 %3941, ptr %60, align 8, !tbaa !9
  br label %3913, !llvm.loop !41

3942:                                             ; preds = %3913
  br label %3943

3943:                                             ; preds = %3942
  %3944 = load i64, ptr %61, align 8, !tbaa !9
  %3945 = add nsw i64 %3944, 1
  store i64 %3945, ptr %61, align 8, !tbaa !9
  br label %3907, !llvm.loop !42

3946:                                             ; preds = %3907
  br label %3947

3947:                                             ; preds = %3946, %3881
  %3948 = load float, ptr %83, align 4, !tbaa !11
  %3949 = load float, ptr %73, align 4, !tbaa !11
  %3950 = fmul float %3948, %3949
  store float %3950, ptr %47, align 4, !tbaa !11
  %3951 = load float, ptr %47, align 4, !tbaa !11
  %3952 = load float, ptr %72, align 4, !tbaa !11
  %3953 = fcmp oge float %3951, %3952
  br i1 %3953, label %3954, label %3956

3954:                                             ; preds = %3947
  %3955 = load float, ptr %47, align 4, !tbaa !11
  br label %3958

3956:                                             ; preds = %3947
  %3957 = load float, ptr %72, align 4, !tbaa !11
  br label %3958

3958:                                             ; preds = %3956, %3954
  %3959 = phi float [ %3955, %3954 ], [ %3957, %3956 ]
  %3960 = fpext float %3959 to double
  %3961 = fptrunc double %3960 to float
  store float %3961, ptr %73, align 4, !tbaa !11
  %3962 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %3962, ptr %42, align 8, !tbaa !9
  store i64 1, ptr %61, align 8, !tbaa !9
  br label %3963

3963:                                             ; preds = %3997, %3958
  %3964 = load i64, ptr %61, align 8, !tbaa !9
  %3965 = load i64, ptr %42, align 8, !tbaa !9
  %3966 = icmp sle i64 %3964, %3965
  br i1 %3966, label %3967, label %4000

3967:                                             ; preds = %3963
  %3968 = load i64, ptr %58, align 8, !tbaa !9
  store i64 %3968, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %55, align 8, !tbaa !9
  br label %3969

3969:                                             ; preds = %3993, %3967
  %3970 = load i64, ptr %55, align 8, !tbaa !9
  %3971 = load i64, ptr %43, align 8, !tbaa !9
  %3972 = icmp sle i64 %3970, %3971
  br i1 %3972, label %3973, label %3996

3973:                                             ; preds = %3969
  %3974 = load i64, ptr %55, align 8, !tbaa !9
  %3975 = load i64, ptr %61, align 8, !tbaa !9
  %3976 = shl i64 %3975, 1
  %3977 = add nsw i64 %3974, %3976
  %3978 = sub nsw i64 %3977, 3
  %3979 = getelementptr inbounds [4 x float], ptr %67, i64 0, i64 %3978
  %3980 = load float, ptr %3979, align 4, !tbaa !11
  %3981 = load ptr, ptr %32, align 8, !tbaa !5
  %3982 = load i64, ptr %61, align 8, !tbaa !9
  %3983 = add nsw i64 %3982, 1
  %3984 = load ptr, ptr %21, align 8, !tbaa !5
  %3985 = load i64, ptr %3984, align 8, !tbaa !9
  %3986 = mul nsw i64 %3983, %3985
  %3987 = load i64, ptr %54, align 8, !tbaa !9
  %3988 = add nsw i64 %3986, %3987
  %3989 = load i64, ptr %55, align 8, !tbaa !9
  %3990 = add nsw i64 %3988, %3989
  %3991 = sub nsw i64 %3990, 1
  %3992 = getelementptr inbounds float, ptr %3981, i64 %3991
  store float %3980, ptr %3992, align 4, !tbaa !11
  br label %3993

3993:                                             ; preds = %3973
  %3994 = load i64, ptr %55, align 8, !tbaa !9
  %3995 = add nsw i64 %3994, 1
  store i64 %3995, ptr %55, align 8, !tbaa !9
  br label %3969, !llvm.loop !43

3996:                                             ; preds = %3969
  br label %3997

3997:                                             ; preds = %3996
  %3998 = load i64, ptr %61, align 8, !tbaa !9
  %3999 = add nsw i64 %3998, 1
  store i64 %3999, ptr %61, align 8, !tbaa !9
  br label %3963, !llvm.loop !44

4000:                                             ; preds = %3963
  %4001 = load i64, ptr %54, align 8, !tbaa !9
  %4002 = icmp sgt i64 %4001, 1
  br i1 %4002, label %4003, label %4402

4003:                                             ; preds = %4000
  %4004 = load float, ptr %73, align 4, !tbaa !11
  %4005 = fcmp oge float 1.000000e+00, %4004
  br i1 %4005, label %4006, label %4007

4006:                                             ; preds = %4003
  br label %4009

4007:                                             ; preds = %4003
  %4008 = load float, ptr %73, align 4, !tbaa !11
  br label %4009

4009:                                             ; preds = %4007, %4006
  %4010 = phi float [ 1.000000e+00, %4006 ], [ %4008, %4007 ]
  %4011 = fpext float %4010 to double
  %4012 = fdiv double 1.000000e+00, %4011
  %4013 = fptrunc double %4012 to float
  store float %4013, ptr %111, align 4, !tbaa !11
  %4014 = load float, ptr %98, align 4, !tbaa !11
  %4015 = load ptr, ptr %32, align 8, !tbaa !5
  %4016 = load i64, ptr %54, align 8, !tbaa !9
  %4017 = getelementptr inbounds float, ptr %4015, i64 %4016
  %4018 = load float, ptr %4017, align 4, !tbaa !11
  %4019 = load float, ptr %99, align 4, !tbaa !11
  %4020 = load ptr, ptr %32, align 8, !tbaa !5
  %4021 = load ptr, ptr %21, align 8, !tbaa !5
  %4022 = load i64, ptr %4021, align 8, !tbaa !9
  %4023 = load i64, ptr %54, align 8, !tbaa !9
  %4024 = add nsw i64 %4022, %4023
  %4025 = getelementptr inbounds float, ptr %4020, i64 %4024
  %4026 = load float, ptr %4025, align 4, !tbaa !11
  %4027 = fmul float %4019, %4026
  %4028 = call float @llvm.fmuladd.f32(float %4014, float %4018, float %4027)
  store float %4028, ptr %72, align 4, !tbaa !11
  %4029 = load i64, ptr %87, align 8, !tbaa !9
  %4030 = icmp ne i64 %4029, 0
  br i1 %4030, label %4031, label %4061

4031:                                             ; preds = %4009
  %4032 = load float, ptr %72, align 4, !tbaa !11
  store float %4032, ptr %47, align 4, !tbaa !11
  %4033 = load float, ptr %98, align 4, !tbaa !11
  %4034 = load ptr, ptr %32, align 8, !tbaa !5
  %4035 = load i64, ptr %54, align 8, !tbaa !9
  %4036 = add nsw i64 %4035, 1
  %4037 = getelementptr inbounds float, ptr %4034, i64 %4036
  %4038 = load float, ptr %4037, align 4, !tbaa !11
  %4039 = load float, ptr %99, align 4, !tbaa !11
  %4040 = load ptr, ptr %32, align 8, !tbaa !5
  %4041 = load ptr, ptr %21, align 8, !tbaa !5
  %4042 = load i64, ptr %4041, align 8, !tbaa !9
  %4043 = load i64, ptr %54, align 8, !tbaa !9
  %4044 = add nsw i64 %4042, %4043
  %4045 = add nsw i64 %4044, 1
  %4046 = getelementptr inbounds float, ptr %4040, i64 %4045
  %4047 = load float, ptr %4046, align 4, !tbaa !11
  %4048 = fmul float %4039, %4047
  %4049 = call float @llvm.fmuladd.f32(float %4033, float %4038, float %4048)
  store float %4049, ptr %48, align 4, !tbaa !11
  %4050 = load float, ptr %47, align 4, !tbaa !11
  %4051 = load float, ptr %48, align 4, !tbaa !11
  %4052 = fcmp oge float %4050, %4051
  br i1 %4052, label %4053, label %4055

4053:                                             ; preds = %4031
  %4054 = load float, ptr %47, align 4, !tbaa !11
  br label %4057

4055:                                             ; preds = %4031
  %4056 = load float, ptr %48, align 4, !tbaa !11
  br label %4057

4057:                                             ; preds = %4055, %4053
  %4058 = phi float [ %4054, %4053 ], [ %4056, %4055 ]
  %4059 = fpext float %4058 to double
  %4060 = fptrunc double %4059 to float
  store float %4060, ptr %72, align 4, !tbaa !11
  br label %4061

4061:                                             ; preds = %4057, %4009
  %4062 = load float, ptr %72, align 4, !tbaa !11
  %4063 = load float, ptr %98, align 4, !tbaa !11
  %4064 = fcmp oge float %4062, %4063
  br i1 %4064, label %4065, label %4067

4065:                                             ; preds = %4061
  %4066 = load float, ptr %72, align 4, !tbaa !11
  br label %4069

4067:                                             ; preds = %4061
  %4068 = load float, ptr %98, align 4, !tbaa !11
  br label %4069

4069:                                             ; preds = %4067, %4065
  %4070 = phi float [ %4066, %4065 ], [ %4068, %4067 ]
  store float %4070, ptr %47, align 4, !tbaa !11
  %4071 = load float, ptr %47, align 4, !tbaa !11
  %4072 = load float, ptr %99, align 4, !tbaa !11
  %4073 = fcmp oge float %4071, %4072
  br i1 %4073, label %4074, label %4076

4074:                                             ; preds = %4069
  %4075 = load float, ptr %47, align 4, !tbaa !11
  br label %4078

4076:                                             ; preds = %4069
  %4077 = load float, ptr %99, align 4, !tbaa !11
  br label %4078

4078:                                             ; preds = %4076, %4074
  %4079 = phi float [ %4075, %4074 ], [ %4077, %4076 ]
  %4080 = fpext float %4079 to double
  %4081 = fptrunc double %4080 to float
  store float %4081, ptr %72, align 4, !tbaa !11
  %4082 = load float, ptr %72, align 4, !tbaa !11
  %4083 = load float, ptr %112, align 4, !tbaa !11
  %4084 = load float, ptr %111, align 4, !tbaa !11
  %4085 = fmul float %4083, %4084
  %4086 = fcmp ogt float %4082, %4085
  br i1 %4086, label %4087, label %4133

4087:                                             ; preds = %4078
  %4088 = load i64, ptr %62, align 8, !tbaa !9
  %4089 = sub nsw i64 %4088, 1
  store i64 %4089, ptr %42, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %4090

4090:                                             ; preds = %4126, %4087
  %4091 = load i64, ptr %61, align 8, !tbaa !9
  %4092 = load i64, ptr %42, align 8, !tbaa !9
  %4093 = icmp sle i64 %4091, %4092
  br i1 %4093, label %4094, label %4129

4094:                                             ; preds = %4090
  %4095 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %4095, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %4096

4096:                                             ; preds = %4122, %4094
  %4097 = load i64, ptr %60, align 8, !tbaa !9
  %4098 = load i64, ptr %43, align 8, !tbaa !9
  %4099 = icmp sle i64 %4097, %4098
  br i1 %4099, label %4100, label %4125

4100:                                             ; preds = %4096
  %4101 = load float, ptr %111, align 4, !tbaa !11
  %4102 = load ptr, ptr %32, align 8, !tbaa !5
  %4103 = load i64, ptr %61, align 8, !tbaa !9
  %4104 = add nsw i64 %4103, 2
  %4105 = load ptr, ptr %21, align 8, !tbaa !5
  %4106 = load i64, ptr %4105, align 8, !tbaa !9
  %4107 = mul nsw i64 %4104, %4106
  %4108 = load i64, ptr %60, align 8, !tbaa !9
  %4109 = add nsw i64 %4107, %4108
  %4110 = getelementptr inbounds float, ptr %4102, i64 %4109
  %4111 = load float, ptr %4110, align 4, !tbaa !11
  %4112 = fmul float %4101, %4111
  %4113 = load ptr, ptr %32, align 8, !tbaa !5
  %4114 = load i64, ptr %61, align 8, !tbaa !9
  %4115 = add nsw i64 %4114, 2
  %4116 = load ptr, ptr %21, align 8, !tbaa !5
  %4117 = load i64, ptr %4116, align 8, !tbaa !9
  %4118 = mul nsw i64 %4115, %4117
  %4119 = load i64, ptr %60, align 8, !tbaa !9
  %4120 = add nsw i64 %4118, %4119
  %4121 = getelementptr inbounds float, ptr %4113, i64 %4120
  store float %4112, ptr %4121, align 4, !tbaa !11
  br label %4122

4122:                                             ; preds = %4100
  %4123 = load i64, ptr %60, align 8, !tbaa !9
  %4124 = add nsw i64 %4123, 1
  store i64 %4124, ptr %60, align 8, !tbaa !9
  br label %4096, !llvm.loop !45

4125:                                             ; preds = %4096
  br label %4126

4126:                                             ; preds = %4125
  %4127 = load i64, ptr %61, align 8, !tbaa !9
  %4128 = add nsw i64 %4127, 1
  store i64 %4128, ptr %61, align 8, !tbaa !9
  br label %4090, !llvm.loop !46

4129:                                             ; preds = %4090
  %4130 = load float, ptr %111, align 4, !tbaa !11
  %4131 = load float, ptr %73, align 4, !tbaa !11
  %4132 = fmul float %4131, %4130
  store float %4132, ptr %73, align 4, !tbaa !11
  br label %4133

4133:                                             ; preds = %4129, %4078
  %4134 = load i64, ptr %58, align 8, !tbaa !9
  store i64 %4134, ptr %42, align 8, !tbaa !9
  store i64 1, ptr %55, align 8, !tbaa !9
  br label %4135

4135:                                             ; preds = %4398, %4133
  %4136 = load i64, ptr %55, align 8, !tbaa !9
  %4137 = load i64, ptr %42, align 8, !tbaa !9
  %4138 = icmp sle i64 %4136, %4137
  br i1 %4138, label %4139, label %4401

4139:                                             ; preds = %4135
  %4140 = load i64, ptr %114, align 8, !tbaa !9
  %4141 = icmp ne i64 %4140, 0
  br i1 %4141, label %4142, label %4317

4142:                                             ; preds = %4139
  %4143 = load float, ptr %82, align 4, !tbaa !11
  %4144 = load ptr, ptr %32, align 8, !tbaa !5
  %4145 = load ptr, ptr %21, align 8, !tbaa !5
  %4146 = load i64, ptr %4145, align 8, !tbaa !9
  %4147 = shl i64 %4146, 1
  %4148 = load i64, ptr %54, align 8, !tbaa !9
  %4149 = add nsw i64 %4147, %4148
  %4150 = load i64, ptr %55, align 8, !tbaa !9
  %4151 = add nsw i64 %4149, %4150
  %4152 = sub nsw i64 %4151, 1
  %4153 = getelementptr inbounds float, ptr %4144, i64 %4152
  %4154 = load float, ptr %4153, align 4, !tbaa !11
  %4155 = fmul float %4143, %4154
  store float %4155, ptr %106, align 4, !tbaa !11
  %4156 = load float, ptr %82, align 4, !tbaa !11
  %4157 = load ptr, ptr %32, align 8, !tbaa !5
  %4158 = load ptr, ptr %21, align 8, !tbaa !5
  %4159 = load i64, ptr %4158, align 8, !tbaa !9
  %4160 = mul nsw i64 %4159, 3
  %4161 = load i64, ptr %54, align 8, !tbaa !9
  %4162 = add nsw i64 %4160, %4161
  %4163 = load i64, ptr %55, align 8, !tbaa !9
  %4164 = add nsw i64 %4162, %4163
  %4165 = sub nsw i64 %4164, 1
  %4166 = getelementptr inbounds float, ptr %4157, i64 %4165
  %4167 = load float, ptr %4166, align 4, !tbaa !11
  %4168 = fmul float %4156, %4167
  store float %4168, ptr %100, align 4, !tbaa !11
  %4169 = load float, ptr %108, align 4, !tbaa !11
  %4170 = load ptr, ptr %32, align 8, !tbaa !5
  %4171 = load ptr, ptr %21, align 8, !tbaa !5
  %4172 = load i64, ptr %4171, align 8, !tbaa !9
  %4173 = shl i64 %4172, 1
  %4174 = load i64, ptr %54, align 8, !tbaa !9
  %4175 = add nsw i64 %4173, %4174
  %4176 = load i64, ptr %55, align 8, !tbaa !9
  %4177 = add nsw i64 %4175, %4176
  %4178 = sub nsw i64 %4177, 1
  %4179 = getelementptr inbounds float, ptr %4170, i64 %4178
  %4180 = load float, ptr %4179, align 4, !tbaa !11
  %4181 = load float, ptr %103, align 4, !tbaa !11
  %4182 = load ptr, ptr %32, align 8, !tbaa !5
  %4183 = load ptr, ptr %21, align 8, !tbaa !5
  %4184 = load i64, ptr %4183, align 8, !tbaa !9
  %4185 = mul nsw i64 %4184, 3
  %4186 = load i64, ptr %54, align 8, !tbaa !9
  %4187 = add nsw i64 %4185, %4186
  %4188 = load i64, ptr %55, align 8, !tbaa !9
  %4189 = add nsw i64 %4187, %4188
  %4190 = sub nsw i64 %4189, 1
  %4191 = getelementptr inbounds float, ptr %4182, i64 %4190
  %4192 = load float, ptr %4191, align 4, !tbaa !11
  %4193 = fmul float %4181, %4192
  %4194 = fneg float %4193
  %4195 = call float @llvm.fmuladd.f32(float %4169, float %4180, float %4194)
  store float %4195, ptr %107, align 4, !tbaa !11
  %4196 = load float, ptr %103, align 4, !tbaa !11
  %4197 = load ptr, ptr %32, align 8, !tbaa !5
  %4198 = load ptr, ptr %21, align 8, !tbaa !5
  %4199 = load i64, ptr %4198, align 8, !tbaa !9
  %4200 = shl i64 %4199, 1
  %4201 = load i64, ptr %54, align 8, !tbaa !9
  %4202 = add nsw i64 %4200, %4201
  %4203 = load i64, ptr %55, align 8, !tbaa !9
  %4204 = add nsw i64 %4202, %4203
  %4205 = sub nsw i64 %4204, 1
  %4206 = getelementptr inbounds float, ptr %4197, i64 %4205
  %4207 = load float, ptr %4206, align 4, !tbaa !11
  %4208 = load float, ptr %108, align 4, !tbaa !11
  %4209 = load ptr, ptr %32, align 8, !tbaa !5
  %4210 = load ptr, ptr %21, align 8, !tbaa !5
  %4211 = load i64, ptr %4210, align 8, !tbaa !9
  %4212 = mul nsw i64 %4211, 3
  %4213 = load i64, ptr %54, align 8, !tbaa !9
  %4214 = add nsw i64 %4212, %4213
  %4215 = load i64, ptr %55, align 8, !tbaa !9
  %4216 = add nsw i64 %4214, %4215
  %4217 = sub nsw i64 %4216, 1
  %4218 = getelementptr inbounds float, ptr %4209, i64 %4217
  %4219 = load float, ptr %4218, align 4, !tbaa !11
  %4220 = fmul float %4208, %4219
  %4221 = call float @llvm.fmuladd.f32(float %4196, float %4207, float %4220)
  store float %4221, ptr %101, align 4, !tbaa !11
  %4222 = load i64, ptr %54, align 8, !tbaa !9
  %4223 = sub nsw i64 %4222, 1
  store i64 %4223, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %4224

4224:                                             ; preds = %4313, %4142
  %4225 = load i64, ptr %60, align 8, !tbaa !9
  %4226 = load i64, ptr %43, align 8, !tbaa !9
  %4227 = icmp sle i64 %4225, %4226
  br i1 %4227, label %4228, label %4316

4228:                                             ; preds = %4224
  %4229 = load ptr, ptr %32, align 8, !tbaa !5
  %4230 = load ptr, ptr %21, align 8, !tbaa !5
  %4231 = load i64, ptr %4230, align 8, !tbaa !9
  %4232 = shl i64 %4231, 1
  %4233 = load i64, ptr %60, align 8, !tbaa !9
  %4234 = add nsw i64 %4232, %4233
  %4235 = getelementptr inbounds float, ptr %4229, i64 %4234
  %4236 = load float, ptr %4235, align 4, !tbaa !11
  %4237 = load float, ptr %106, align 4, !tbaa !11
  %4238 = load ptr, ptr %22, align 8, !tbaa !5
  %4239 = load i64, ptr %60, align 8, !tbaa !9
  %4240 = load i64, ptr %54, align 8, !tbaa !9
  %4241 = load i64, ptr %55, align 8, !tbaa !9
  %4242 = add nsw i64 %4240, %4241
  %4243 = sub nsw i64 %4242, 1
  %4244 = load i64, ptr %36, align 8, !tbaa !9
  %4245 = mul nsw i64 %4243, %4244
  %4246 = add nsw i64 %4239, %4245
  %4247 = getelementptr inbounds float, ptr %4238, i64 %4246
  %4248 = load float, ptr %4247, align 4, !tbaa !11
  %4249 = fneg float %4237
  %4250 = call float @llvm.fmuladd.f32(float %4249, float %4248, float %4236)
  %4251 = load float, ptr %107, align 4, !tbaa !11
  %4252 = load ptr, ptr %24, align 8, !tbaa !5
  %4253 = load i64, ptr %60, align 8, !tbaa !9
  %4254 = load i64, ptr %54, align 8, !tbaa !9
  %4255 = load i64, ptr %55, align 8, !tbaa !9
  %4256 = add nsw i64 %4254, %4255
  %4257 = sub nsw i64 %4256, 1
  %4258 = load i64, ptr %34, align 8, !tbaa !9
  %4259 = mul nsw i64 %4257, %4258
  %4260 = add nsw i64 %4253, %4259
  %4261 = getelementptr inbounds float, ptr %4252, i64 %4260
  %4262 = load float, ptr %4261, align 4, !tbaa !11
  %4263 = call float @llvm.fmuladd.f32(float %4251, float %4262, float %4250)
  %4264 = load ptr, ptr %32, align 8, !tbaa !5
  %4265 = load ptr, ptr %21, align 8, !tbaa !5
  %4266 = load i64, ptr %4265, align 8, !tbaa !9
  %4267 = shl i64 %4266, 1
  %4268 = load i64, ptr %60, align 8, !tbaa !9
  %4269 = add nsw i64 %4267, %4268
  %4270 = getelementptr inbounds float, ptr %4264, i64 %4269
  store float %4263, ptr %4270, align 4, !tbaa !11
  %4271 = load ptr, ptr %32, align 8, !tbaa !5
  %4272 = load ptr, ptr %21, align 8, !tbaa !5
  %4273 = load i64, ptr %4272, align 8, !tbaa !9
  %4274 = mul nsw i64 %4273, 3
  %4275 = load i64, ptr %60, align 8, !tbaa !9
  %4276 = add nsw i64 %4274, %4275
  %4277 = getelementptr inbounds float, ptr %4271, i64 %4276
  %4278 = load float, ptr %4277, align 4, !tbaa !11
  %4279 = load float, ptr %100, align 4, !tbaa !11
  %4280 = load ptr, ptr %22, align 8, !tbaa !5
  %4281 = load i64, ptr %60, align 8, !tbaa !9
  %4282 = load i64, ptr %54, align 8, !tbaa !9
  %4283 = load i64, ptr %55, align 8, !tbaa !9
  %4284 = add nsw i64 %4282, %4283
  %4285 = sub nsw i64 %4284, 1
  %4286 = load i64, ptr %36, align 8, !tbaa !9
  %4287 = mul nsw i64 %4285, %4286
  %4288 = add nsw i64 %4281, %4287
  %4289 = getelementptr inbounds float, ptr %4280, i64 %4288
  %4290 = load float, ptr %4289, align 4, !tbaa !11
  %4291 = fneg float %4279
  %4292 = call float @llvm.fmuladd.f32(float %4291, float %4290, float %4278)
  %4293 = load float, ptr %101, align 4, !tbaa !11
  %4294 = load ptr, ptr %24, align 8, !tbaa !5
  %4295 = load i64, ptr %60, align 8, !tbaa !9
  %4296 = load i64, ptr %54, align 8, !tbaa !9
  %4297 = load i64, ptr %55, align 8, !tbaa !9
  %4298 = add nsw i64 %4296, %4297
  %4299 = sub nsw i64 %4298, 1
  %4300 = load i64, ptr %34, align 8, !tbaa !9
  %4301 = mul nsw i64 %4299, %4300
  %4302 = add nsw i64 %4295, %4301
  %4303 = getelementptr inbounds float, ptr %4294, i64 %4302
  %4304 = load float, ptr %4303, align 4, !tbaa !11
  %4305 = call float @llvm.fmuladd.f32(float %4293, float %4304, float %4292)
  %4306 = load ptr, ptr %32, align 8, !tbaa !5
  %4307 = load ptr, ptr %21, align 8, !tbaa !5
  %4308 = load i64, ptr %4307, align 8, !tbaa !9
  %4309 = mul nsw i64 %4308, 3
  %4310 = load i64, ptr %60, align 8, !tbaa !9
  %4311 = add nsw i64 %4309, %4310
  %4312 = getelementptr inbounds float, ptr %4306, i64 %4311
  store float %4305, ptr %4312, align 4, !tbaa !11
  br label %4313

4313:                                             ; preds = %4228
  %4314 = load i64, ptr %60, align 8, !tbaa !9
  %4315 = add nsw i64 %4314, 1
  store i64 %4315, ptr %60, align 8, !tbaa !9
  br label %4224, !llvm.loop !47

4316:                                             ; preds = %4224
  br label %4397

4317:                                             ; preds = %4139
  %4318 = load float, ptr %82, align 4, !tbaa !11
  %4319 = load ptr, ptr %32, align 8, !tbaa !5
  %4320 = load ptr, ptr %21, align 8, !tbaa !5
  %4321 = load i64, ptr %4320, align 8, !tbaa !9
  %4322 = shl i64 %4321, 1
  %4323 = load i64, ptr %54, align 8, !tbaa !9
  %4324 = add nsw i64 %4322, %4323
  %4325 = load i64, ptr %55, align 8, !tbaa !9
  %4326 = add nsw i64 %4324, %4325
  %4327 = sub nsw i64 %4326, 1
  %4328 = getelementptr inbounds float, ptr %4319, i64 %4327
  %4329 = load float, ptr %4328, align 4, !tbaa !11
  %4330 = fmul float %4318, %4329
  store float %4330, ptr %106, align 4, !tbaa !11
  %4331 = load float, ptr %108, align 4, !tbaa !11
  %4332 = load ptr, ptr %32, align 8, !tbaa !5
  %4333 = load ptr, ptr %21, align 8, !tbaa !5
  %4334 = load i64, ptr %4333, align 8, !tbaa !9
  %4335 = shl i64 %4334, 1
  %4336 = load i64, ptr %54, align 8, !tbaa !9
  %4337 = add nsw i64 %4335, %4336
  %4338 = load i64, ptr %55, align 8, !tbaa !9
  %4339 = add nsw i64 %4337, %4338
  %4340 = sub nsw i64 %4339, 1
  %4341 = getelementptr inbounds float, ptr %4332, i64 %4340
  %4342 = load float, ptr %4341, align 4, !tbaa !11
  %4343 = fmul float %4331, %4342
  store float %4343, ptr %107, align 4, !tbaa !11
  %4344 = load i64, ptr %54, align 8, !tbaa !9
  %4345 = sub nsw i64 %4344, 1
  store i64 %4345, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %4346

4346:                                             ; preds = %4393, %4317
  %4347 = load i64, ptr %60, align 8, !tbaa !9
  %4348 = load i64, ptr %43, align 8, !tbaa !9
  %4349 = icmp sle i64 %4347, %4348
  br i1 %4349, label %4350, label %4396

4350:                                             ; preds = %4346
  %4351 = load ptr, ptr %32, align 8, !tbaa !5
  %4352 = load ptr, ptr %21, align 8, !tbaa !5
  %4353 = load i64, ptr %4352, align 8, !tbaa !9
  %4354 = shl i64 %4353, 1
  %4355 = load i64, ptr %60, align 8, !tbaa !9
  %4356 = add nsw i64 %4354, %4355
  %4357 = getelementptr inbounds float, ptr %4351, i64 %4356
  %4358 = load float, ptr %4357, align 4, !tbaa !11
  %4359 = load float, ptr %106, align 4, !tbaa !11
  %4360 = load ptr, ptr %22, align 8, !tbaa !5
  %4361 = load i64, ptr %60, align 8, !tbaa !9
  %4362 = load i64, ptr %54, align 8, !tbaa !9
  %4363 = load i64, ptr %55, align 8, !tbaa !9
  %4364 = add nsw i64 %4362, %4363
  %4365 = sub nsw i64 %4364, 1
  %4366 = load i64, ptr %36, align 8, !tbaa !9
  %4367 = mul nsw i64 %4365, %4366
  %4368 = add nsw i64 %4361, %4367
  %4369 = getelementptr inbounds float, ptr %4360, i64 %4368
  %4370 = load float, ptr %4369, align 4, !tbaa !11
  %4371 = fneg float %4359
  %4372 = call float @llvm.fmuladd.f32(float %4371, float %4370, float %4358)
  %4373 = load float, ptr %107, align 4, !tbaa !11
  %4374 = load ptr, ptr %24, align 8, !tbaa !5
  %4375 = load i64, ptr %60, align 8, !tbaa !9
  %4376 = load i64, ptr %54, align 8, !tbaa !9
  %4377 = load i64, ptr %55, align 8, !tbaa !9
  %4378 = add nsw i64 %4376, %4377
  %4379 = sub nsw i64 %4378, 1
  %4380 = load i64, ptr %34, align 8, !tbaa !9
  %4381 = mul nsw i64 %4379, %4380
  %4382 = add nsw i64 %4375, %4381
  %4383 = getelementptr inbounds float, ptr %4374, i64 %4382
  %4384 = load float, ptr %4383, align 4, !tbaa !11
  %4385 = call float @llvm.fmuladd.f32(float %4373, float %4384, float %4372)
  %4386 = load ptr, ptr %32, align 8, !tbaa !5
  %4387 = load ptr, ptr %21, align 8, !tbaa !5
  %4388 = load i64, ptr %4387, align 8, !tbaa !9
  %4389 = shl i64 %4388, 1
  %4390 = load i64, ptr %60, align 8, !tbaa !9
  %4391 = add nsw i64 %4389, %4390
  %4392 = getelementptr inbounds float, ptr %4386, i64 %4391
  store float %4385, ptr %4392, align 4, !tbaa !11
  br label %4393

4393:                                             ; preds = %4350
  %4394 = load i64, ptr %60, align 8, !tbaa !9
  %4395 = add nsw i64 %4394, 1
  store i64 %4395, ptr %60, align 8, !tbaa !9
  br label %4346, !llvm.loop !48

4396:                                             ; preds = %4346
  br label %4397

4397:                                             ; preds = %4396, %4316
  br label %4398

4398:                                             ; preds = %4397
  %4399 = load i64, ptr %55, align 8, !tbaa !9
  %4400 = add nsw i64 %4399, 1
  store i64 %4400, ptr %55, align 8, !tbaa !9
  br label %4135, !llvm.loop !49

4401:                                             ; preds = %4135
  br label %4402

4402:                                             ; preds = %4401, %4000
  store i64 0, ptr %87, align 8, !tbaa !9
  br label %4403

4403:                                             ; preds = %4402, %3854
  br label %4404

4404:                                             ; preds = %4403
  %4405 = load i64, ptr %54, align 8, !tbaa !9
  %4406 = add nsw i64 %4405, -1
  store i64 %4406, ptr %54, align 8, !tbaa !9
  br label %3834, !llvm.loop !50

4407:                                             ; preds = %3834
  %4408 = load i64, ptr %62, align 8, !tbaa !9
  %4409 = load i64, ptr %69, align 8, !tbaa !9
  %4410 = sub nsw i64 %4409, %4408
  store i64 %4410, ptr %69, align 8, !tbaa !9
  %4411 = load i64, ptr %102, align 8, !tbaa !9
  %4412 = icmp ne i64 %4411, 0
  br i1 %4412, label %4413, label %4554

4413:                                             ; preds = %4407
  %4414 = load i64, ptr %62, align 8, !tbaa !9
  %4415 = sub nsw i64 %4414, 1
  store i64 %4415, ptr %42, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %4416

4416:                                             ; preds = %4507, %4413
  %4417 = load i64, ptr %61, align 8, !tbaa !9
  %4418 = load i64, ptr %42, align 8, !tbaa !9
  %4419 = icmp sle i64 %4417, %4418
  br i1 %4419, label %4420, label %4510

4420:                                             ; preds = %4416
  %4421 = load ptr, ptr %21, align 8, !tbaa !5
  %4422 = load i64, ptr %4421, align 8, !tbaa !9
  store i64 %4422, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %4423

4423:                                             ; preds = %4453, %4420
  %4424 = load i64, ptr %60, align 8, !tbaa !9
  %4425 = load i64, ptr %43, align 8, !tbaa !9
  %4426 = icmp sle i64 %4424, %4425
  br i1 %4426, label %4427, label %4456

4427:                                             ; preds = %4423
  %4428 = load ptr, ptr %32, align 8, !tbaa !5
  %4429 = load i64, ptr %61, align 8, !tbaa !9
  %4430 = add nsw i64 %4429, 2
  %4431 = load ptr, ptr %21, align 8, !tbaa !5
  %4432 = load i64, ptr %4431, align 8, !tbaa !9
  %4433 = mul nsw i64 %4430, %4432
  %4434 = add nsw i64 %4433, 1
  %4435 = getelementptr inbounds float, ptr %4428, i64 %4434
  %4436 = load float, ptr %4435, align 4, !tbaa !11
  %4437 = load ptr, ptr %28, align 8, !tbaa !5
  %4438 = load i64, ptr %60, align 8, !tbaa !9
  %4439 = load i64, ptr %40, align 8, !tbaa !9
  %4440 = add nsw i64 %4438, %4439
  %4441 = getelementptr inbounds float, ptr %4437, i64 %4440
  %4442 = load float, ptr %4441, align 4, !tbaa !11
  %4443 = fmul float %4436, %4442
  %4444 = load ptr, ptr %32, align 8, !tbaa !5
  %4445 = load i64, ptr %61, align 8, !tbaa !9
  %4446 = add nsw i64 %4445, 4
  %4447 = load ptr, ptr %21, align 8, !tbaa !5
  %4448 = load i64, ptr %4447, align 8, !tbaa !9
  %4449 = mul nsw i64 %4446, %4448
  %4450 = load i64, ptr %60, align 8, !tbaa !9
  %4451 = add nsw i64 %4449, %4450
  %4452 = getelementptr inbounds float, ptr %4444, i64 %4451
  store float %4443, ptr %4452, align 4, !tbaa !11
  br label %4453

4453:                                             ; preds = %4427
  %4454 = load i64, ptr %60, align 8, !tbaa !9
  %4455 = add nsw i64 %4454, 1
  store i64 %4455, ptr %60, align 8, !tbaa !9
  br label %4423, !llvm.loop !51

4456:                                             ; preds = %4423
  %4457 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %4457, ptr %43, align 8, !tbaa !9
  store i64 2, ptr %56, align 8, !tbaa !9
  br label %4458

4458:                                             ; preds = %4503, %4456
  %4459 = load i64, ptr %56, align 8, !tbaa !9
  %4460 = load i64, ptr %43, align 8, !tbaa !9
  %4461 = icmp sle i64 %4459, %4460
  br i1 %4461, label %4462, label %4506

4462:                                             ; preds = %4458
  %4463 = load ptr, ptr %21, align 8, !tbaa !5
  %4464 = load i64, ptr %4463, align 8, !tbaa !9
  store i64 %4464, ptr %44, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %4465

4465:                                             ; preds = %4499, %4462
  %4466 = load i64, ptr %60, align 8, !tbaa !9
  %4467 = load i64, ptr %44, align 8, !tbaa !9
  %4468 = icmp sle i64 %4466, %4467
  br i1 %4468, label %4469, label %4502

4469:                                             ; preds = %4465
  %4470 = load ptr, ptr %32, align 8, !tbaa !5
  %4471 = load i64, ptr %61, align 8, !tbaa !9
  %4472 = add nsw i64 %4471, 2
  %4473 = load ptr, ptr %21, align 8, !tbaa !5
  %4474 = load i64, ptr %4473, align 8, !tbaa !9
  %4475 = mul nsw i64 %4472, %4474
  %4476 = load i64, ptr %56, align 8, !tbaa !9
  %4477 = add nsw i64 %4475, %4476
  %4478 = getelementptr inbounds float, ptr %4470, i64 %4477
  %4479 = load float, ptr %4478, align 4, !tbaa !11
  %4480 = load ptr, ptr %28, align 8, !tbaa !5
  %4481 = load i64, ptr %60, align 8, !tbaa !9
  %4482 = load i64, ptr %56, align 8, !tbaa !9
  %4483 = load i64, ptr %40, align 8, !tbaa !9
  %4484 = mul nsw i64 %4482, %4483
  %4485 = add nsw i64 %4481, %4484
  %4486 = getelementptr inbounds float, ptr %4480, i64 %4485
  %4487 = load float, ptr %4486, align 4, !tbaa !11
  %4488 = load ptr, ptr %32, align 8, !tbaa !5
  %4489 = load i64, ptr %61, align 8, !tbaa !9
  %4490 = add nsw i64 %4489, 4
  %4491 = load ptr, ptr %21, align 8, !tbaa !5
  %4492 = load i64, ptr %4491, align 8, !tbaa !9
  %4493 = mul nsw i64 %4490, %4492
  %4494 = load i64, ptr %60, align 8, !tbaa !9
  %4495 = add nsw i64 %4493, %4494
  %4496 = getelementptr inbounds float, ptr %4488, i64 %4495
  %4497 = load float, ptr %4496, align 4, !tbaa !11
  %4498 = call float @llvm.fmuladd.f32(float %4479, float %4487, float %4497)
  store float %4498, ptr %4496, align 4, !tbaa !11
  br label %4499

4499:                                             ; preds = %4469
  %4500 = load i64, ptr %60, align 8, !tbaa !9
  %4501 = add nsw i64 %4500, 1
  store i64 %4501, ptr %60, align 8, !tbaa !9
  br label %4465, !llvm.loop !52

4502:                                             ; preds = %4465
  br label %4503

4503:                                             ; preds = %4502
  %4504 = load i64, ptr %56, align 8, !tbaa !9
  %4505 = add nsw i64 %4504, 1
  store i64 %4505, ptr %56, align 8, !tbaa !9
  br label %4458, !llvm.loop !53

4506:                                             ; preds = %4458
  br label %4507

4507:                                             ; preds = %4506
  %4508 = load i64, ptr %61, align 8, !tbaa !9
  %4509 = add nsw i64 %4508, 1
  store i64 %4509, ptr %61, align 8, !tbaa !9
  br label %4416, !llvm.loop !54

4510:                                             ; preds = %4416
  %4511 = load i64, ptr %62, align 8, !tbaa !9
  %4512 = sub nsw i64 %4511, 1
  store i64 %4512, ptr %42, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %4513

4513:                                             ; preds = %4548, %4510
  %4514 = load i64, ptr %61, align 8, !tbaa !9
  %4515 = load i64, ptr %42, align 8, !tbaa !9
  %4516 = icmp sle i64 %4514, %4515
  br i1 %4516, label %4517, label %4551

4517:                                             ; preds = %4513
  %4518 = load ptr, ptr %21, align 8, !tbaa !5
  %4519 = load i64, ptr %4518, align 8, !tbaa !9
  store i64 %4519, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %4520

4520:                                             ; preds = %4544, %4517
  %4521 = load i64, ptr %60, align 8, !tbaa !9
  %4522 = load i64, ptr %43, align 8, !tbaa !9
  %4523 = icmp sle i64 %4521, %4522
  br i1 %4523, label %4524, label %4547

4524:                                             ; preds = %4520
  %4525 = load ptr, ptr %32, align 8, !tbaa !5
  %4526 = load i64, ptr %61, align 8, !tbaa !9
  %4527 = add nsw i64 %4526, 4
  %4528 = load ptr, ptr %21, align 8, !tbaa !5
  %4529 = load i64, ptr %4528, align 8, !tbaa !9
  %4530 = mul nsw i64 %4527, %4529
  %4531 = load i64, ptr %60, align 8, !tbaa !9
  %4532 = add nsw i64 %4530, %4531
  %4533 = getelementptr inbounds float, ptr %4525, i64 %4532
  %4534 = load float, ptr %4533, align 4, !tbaa !11
  %4535 = load ptr, ptr %28, align 8, !tbaa !5
  %4536 = load i64, ptr %60, align 8, !tbaa !9
  %4537 = load i64, ptr %69, align 8, !tbaa !9
  %4538 = load i64, ptr %61, align 8, !tbaa !9
  %4539 = add nsw i64 %4537, %4538
  %4540 = load i64, ptr %40, align 8, !tbaa !9
  %4541 = mul nsw i64 %4539, %4540
  %4542 = add nsw i64 %4536, %4541
  %4543 = getelementptr inbounds float, ptr %4535, i64 %4542
  store float %4534, ptr %4543, align 4, !tbaa !11
  br label %4544

4544:                                             ; preds = %4524
  %4545 = load i64, ptr %60, align 8, !tbaa !9
  %4546 = add nsw i64 %4545, 1
  store i64 %4546, ptr %60, align 8, !tbaa !9
  br label %4520, !llvm.loop !55

4547:                                             ; preds = %4520
  br label %4548

4548:                                             ; preds = %4547
  %4549 = load i64, ptr %61, align 8, !tbaa !9
  %4550 = add nsw i64 %4549, 1
  store i64 %4550, ptr %61, align 8, !tbaa !9
  br label %4513, !llvm.loop !56

4551:                                             ; preds = %4513
  %4552 = load ptr, ptr %21, align 8, !tbaa !5
  %4553 = load i64, ptr %4552, align 8, !tbaa !9
  store i64 %4553, ptr %70, align 8, !tbaa !9
  br label %4597

4554:                                             ; preds = %4407
  %4555 = load i64, ptr %62, align 8, !tbaa !9
  %4556 = sub nsw i64 %4555, 1
  store i64 %4556, ptr %42, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %4557

4557:                                             ; preds = %4592, %4554
  %4558 = load i64, ptr %61, align 8, !tbaa !9
  %4559 = load i64, ptr %42, align 8, !tbaa !9
  %4560 = icmp sle i64 %4558, %4559
  br i1 %4560, label %4561, label %4595

4561:                                             ; preds = %4557
  %4562 = load ptr, ptr %21, align 8, !tbaa !5
  %4563 = load i64, ptr %4562, align 8, !tbaa !9
  store i64 %4563, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %4564

4564:                                             ; preds = %4588, %4561
  %4565 = load i64, ptr %60, align 8, !tbaa !9
  %4566 = load i64, ptr %43, align 8, !tbaa !9
  %4567 = icmp sle i64 %4565, %4566
  br i1 %4567, label %4568, label %4591

4568:                                             ; preds = %4564
  %4569 = load ptr, ptr %32, align 8, !tbaa !5
  %4570 = load i64, ptr %61, align 8, !tbaa !9
  %4571 = add nsw i64 %4570, 2
  %4572 = load ptr, ptr %21, align 8, !tbaa !5
  %4573 = load i64, ptr %4572, align 8, !tbaa !9
  %4574 = mul nsw i64 %4571, %4573
  %4575 = load i64, ptr %60, align 8, !tbaa !9
  %4576 = add nsw i64 %4574, %4575
  %4577 = getelementptr inbounds float, ptr %4569, i64 %4576
  %4578 = load float, ptr %4577, align 4, !tbaa !11
  %4579 = load ptr, ptr %28, align 8, !tbaa !5
  %4580 = load i64, ptr %60, align 8, !tbaa !9
  %4581 = load i64, ptr %69, align 8, !tbaa !9
  %4582 = load i64, ptr %61, align 8, !tbaa !9
  %4583 = add nsw i64 %4581, %4582
  %4584 = load i64, ptr %40, align 8, !tbaa !9
  %4585 = mul nsw i64 %4583, %4584
  %4586 = add nsw i64 %4580, %4585
  %4587 = getelementptr inbounds float, ptr %4579, i64 %4586
  store float %4578, ptr %4587, align 4, !tbaa !11
  br label %4588

4588:                                             ; preds = %4568
  %4589 = load i64, ptr %60, align 8, !tbaa !9
  %4590 = add nsw i64 %4589, 1
  store i64 %4590, ptr %60, align 8, !tbaa !9
  br label %4564, !llvm.loop !57

4591:                                             ; preds = %4564
  br label %4592

4592:                                             ; preds = %4591
  %4593 = load i64, ptr %61, align 8, !tbaa !9
  %4594 = add nsw i64 %4593, 1
  store i64 %4594, ptr %61, align 8, !tbaa !9
  br label %4557, !llvm.loop !58

4595:                                             ; preds = %4557
  %4596 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %4596, ptr %70, align 8, !tbaa !9
  br label %4597

4597:                                             ; preds = %4595, %4551
  store float 0.000000e+00, ptr %73, align 4, !tbaa !11
  %4598 = load i64, ptr %114, align 8, !tbaa !9
  %4599 = icmp ne i64 %4598, 0
  br i1 %4599, label %4600, label %4662

4600:                                             ; preds = %4597
  %4601 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %4601, ptr %42, align 8, !tbaa !9
  store i64 1, ptr %54, align 8, !tbaa !9
  br label %4602

4602:                                             ; preds = %4658, %4600
  %4603 = load i64, ptr %54, align 8, !tbaa !9
  %4604 = load i64, ptr %42, align 8, !tbaa !9
  %4605 = icmp sle i64 %4603, %4604
  br i1 %4605, label %4606, label %4661

4606:                                             ; preds = %4602
  %4607 = load float, ptr %73, align 4, !tbaa !11
  store float %4607, ptr %49, align 4, !tbaa !11
  %4608 = load ptr, ptr %28, align 8, !tbaa !5
  %4609 = load i64, ptr %54, align 8, !tbaa !9
  %4610 = load i64, ptr %69, align 8, !tbaa !9
  %4611 = load i64, ptr %40, align 8, !tbaa !9
  %4612 = mul nsw i64 %4610, %4611
  %4613 = add nsw i64 %4609, %4612
  %4614 = getelementptr inbounds float, ptr %4608, i64 %4613
  %4615 = load float, ptr %4614, align 4, !tbaa !11
  store float %4615, ptr %47, align 4, !tbaa !11
  %4616 = load float, ptr %47, align 4, !tbaa !11
  %4617 = fcmp oge float %4616, 0.000000e+00
  br i1 %4617, label %4618, label %4620

4618:                                             ; preds = %4606
  %4619 = load float, ptr %47, align 4, !tbaa !11
  br label %4623

4620:                                             ; preds = %4606
  %4621 = load float, ptr %47, align 4, !tbaa !11
  %4622 = fneg float %4621
  br label %4623

4623:                                             ; preds = %4620, %4618
  %4624 = phi float [ %4619, %4618 ], [ %4622, %4620 ]
  %4625 = fpext float %4624 to double
  %4626 = load ptr, ptr %28, align 8, !tbaa !5
  %4627 = load i64, ptr %54, align 8, !tbaa !9
  %4628 = load i64, ptr %69, align 8, !tbaa !9
  %4629 = add nsw i64 %4628, 1
  %4630 = load i64, ptr %40, align 8, !tbaa !9
  %4631 = mul nsw i64 %4629, %4630
  %4632 = add nsw i64 %4627, %4631
  %4633 = getelementptr inbounds float, ptr %4626, i64 %4632
  %4634 = load float, ptr %4633, align 4, !tbaa !11
  store float %4634, ptr %48, align 4, !tbaa !11
  %4635 = load float, ptr %48, align 4, !tbaa !11
  %4636 = fcmp oge float %4635, 0.000000e+00
  br i1 %4636, label %4637, label %4639

4637:                                             ; preds = %4623
  %4638 = load float, ptr %48, align 4, !tbaa !11
  br label %4642

4639:                                             ; preds = %4623
  %4640 = load float, ptr %48, align 4, !tbaa !11
  %4641 = fneg float %4640
  br label %4642

4642:                                             ; preds = %4639, %4637
  %4643 = phi float [ %4638, %4637 ], [ %4641, %4639 ]
  %4644 = fpext float %4643 to double
  %4645 = fadd double %4625, %4644
  %4646 = fptrunc double %4645 to float
  store float %4646, ptr %50, align 4, !tbaa !11
  %4647 = load float, ptr %49, align 4, !tbaa !11
  %4648 = load float, ptr %50, align 4, !tbaa !11
  %4649 = fcmp oge float %4647, %4648
  br i1 %4649, label %4650, label %4652

4650:                                             ; preds = %4642
  %4651 = load float, ptr %49, align 4, !tbaa !11
  br label %4654

4652:                                             ; preds = %4642
  %4653 = load float, ptr %50, align 4, !tbaa !11
  br label %4654

4654:                                             ; preds = %4652, %4650
  %4655 = phi float [ %4651, %4650 ], [ %4653, %4652 ]
  %4656 = fpext float %4655 to double
  %4657 = fptrunc double %4656 to float
  store float %4657, ptr %73, align 4, !tbaa !11
  br label %4658

4658:                                             ; preds = %4654
  %4659 = load i64, ptr %54, align 8, !tbaa !9
  %4660 = add nsw i64 %4659, 1
  store i64 %4660, ptr %54, align 8, !tbaa !9
  br label %4602, !llvm.loop !59

4661:                                             ; preds = %4602
  br label %4704

4662:                                             ; preds = %4597
  %4663 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %4663, ptr %42, align 8, !tbaa !9
  store i64 1, ptr %54, align 8, !tbaa !9
  br label %4664

4664:                                             ; preds = %4700, %4662
  %4665 = load i64, ptr %54, align 8, !tbaa !9
  %4666 = load i64, ptr %42, align 8, !tbaa !9
  %4667 = icmp sle i64 %4665, %4666
  br i1 %4667, label %4668, label %4703

4668:                                             ; preds = %4664
  %4669 = load float, ptr %73, align 4, !tbaa !11
  store float %4669, ptr %48, align 4, !tbaa !11
  %4670 = load ptr, ptr %28, align 8, !tbaa !5
  %4671 = load i64, ptr %54, align 8, !tbaa !9
  %4672 = load i64, ptr %69, align 8, !tbaa !9
  %4673 = load i64, ptr %40, align 8, !tbaa !9
  %4674 = mul nsw i64 %4672, %4673
  %4675 = add nsw i64 %4671, %4674
  %4676 = getelementptr inbounds float, ptr %4670, i64 %4675
  %4677 = load float, ptr %4676, align 4, !tbaa !11
  store float %4677, ptr %47, align 4, !tbaa !11
  %4678 = load float, ptr %47, align 4, !tbaa !11
  %4679 = fcmp oge float %4678, 0.000000e+00
  br i1 %4679, label %4680, label %4682

4680:                                             ; preds = %4668
  %4681 = load float, ptr %47, align 4, !tbaa !11
  br label %4685

4682:                                             ; preds = %4668
  %4683 = load float, ptr %47, align 4, !tbaa !11
  %4684 = fneg float %4683
  br label %4685

4685:                                             ; preds = %4682, %4680
  %4686 = phi float [ %4681, %4680 ], [ %4684, %4682 ]
  %4687 = fpext float %4686 to double
  %4688 = fptrunc double %4687 to float
  store float %4688, ptr %49, align 4, !tbaa !11
  %4689 = load float, ptr %48, align 4, !tbaa !11
  %4690 = load float, ptr %49, align 4, !tbaa !11
  %4691 = fcmp oge float %4689, %4690
  br i1 %4691, label %4692, label %4694

4692:                                             ; preds = %4685
  %4693 = load float, ptr %48, align 4, !tbaa !11
  br label %4696

4694:                                             ; preds = %4685
  %4695 = load float, ptr %49, align 4, !tbaa !11
  br label %4696

4696:                                             ; preds = %4694, %4692
  %4697 = phi float [ %4693, %4692 ], [ %4695, %4694 ]
  %4698 = fpext float %4697 to double
  %4699 = fptrunc double %4698 to float
  store float %4699, ptr %73, align 4, !tbaa !11
  br label %4700

4700:                                             ; preds = %4696
  %4701 = load i64, ptr %54, align 8, !tbaa !9
  %4702 = add nsw i64 %4701, 1
  store i64 %4702, ptr %54, align 8, !tbaa !9
  br label %4664, !llvm.loop !60

4703:                                             ; preds = %4664
  br label %4704

4704:                                             ; preds = %4703, %4661
  %4705 = load float, ptr %73, align 4, !tbaa !11
  %4706 = load float, ptr %110, align 4, !tbaa !11
  %4707 = fcmp ogt float %4705, %4706
  br i1 %4707, label %4708, label %4753

4708:                                             ; preds = %4704
  %4709 = load float, ptr %73, align 4, !tbaa !11
  %4710 = fdiv float 1.000000e+00, %4709
  store float %4710, ptr %111, align 4, !tbaa !11
  %4711 = load i64, ptr %62, align 8, !tbaa !9
  %4712 = sub nsw i64 %4711, 1
  store i64 %4712, ptr %42, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  br label %4713

4713:                                             ; preds = %4749, %4708
  %4714 = load i64, ptr %61, align 8, !tbaa !9
  %4715 = load i64, ptr %42, align 8, !tbaa !9
  %4716 = icmp sle i64 %4714, %4715
  br i1 %4716, label %4717, label %4752

4717:                                             ; preds = %4713
  %4718 = load i64, ptr %70, align 8, !tbaa !9
  store i64 %4718, ptr %43, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  br label %4719

4719:                                             ; preds = %4745, %4717
  %4720 = load i64, ptr %60, align 8, !tbaa !9
  %4721 = load i64, ptr %43, align 8, !tbaa !9
  %4722 = icmp sle i64 %4720, %4721
  br i1 %4722, label %4723, label %4748

4723:                                             ; preds = %4719
  %4724 = load float, ptr %111, align 4, !tbaa !11
  %4725 = load ptr, ptr %28, align 8, !tbaa !5
  %4726 = load i64, ptr %60, align 8, !tbaa !9
  %4727 = load i64, ptr %69, align 8, !tbaa !9
  %4728 = load i64, ptr %61, align 8, !tbaa !9
  %4729 = add nsw i64 %4727, %4728
  %4730 = load i64, ptr %40, align 8, !tbaa !9
  %4731 = mul nsw i64 %4729, %4730
  %4732 = add nsw i64 %4726, %4731
  %4733 = getelementptr inbounds float, ptr %4725, i64 %4732
  %4734 = load float, ptr %4733, align 4, !tbaa !11
  %4735 = fmul float %4724, %4734
  %4736 = load ptr, ptr %28, align 8, !tbaa !5
  %4737 = load i64, ptr %60, align 8, !tbaa !9
  %4738 = load i64, ptr %69, align 8, !tbaa !9
  %4739 = load i64, ptr %61, align 8, !tbaa !9
  %4740 = add nsw i64 %4738, %4739
  %4741 = load i64, ptr %40, align 8, !tbaa !9
  %4742 = mul nsw i64 %4740, %4741
  %4743 = add nsw i64 %4737, %4742
  %4744 = getelementptr inbounds float, ptr %4736, i64 %4743
  store float %4735, ptr %4744, align 4, !tbaa !11
  br label %4745

4745:                                             ; preds = %4723
  %4746 = load i64, ptr %60, align 8, !tbaa !9
  %4747 = add nsw i64 %4746, 1
  store i64 %4747, ptr %60, align 8, !tbaa !9
  br label %4719, !llvm.loop !61

4748:                                             ; preds = %4719
  br label %4749

4749:                                             ; preds = %4748
  %4750 = load i64, ptr %61, align 8, !tbaa !9
  %4751 = add nsw i64 %4750, 1
  store i64 %4751, ptr %61, align 8, !tbaa !9
  br label %4713, !llvm.loop !62

4752:                                             ; preds = %4713
  br label %4753

4753:                                             ; preds = %4752, %4704
  br label %4754

4754:                                             ; preds = %4753, %2652, %2584, %2534
  br label %4755

4755:                                             ; preds = %4754
  %4756 = load i64, ptr %57, align 8, !tbaa !9
  %4757 = add nsw i64 %4756, -1
  store i64 %4757, ptr %57, align 8, !tbaa !9
  br label %2528, !llvm.loop !63

4758:                                             ; preds = %2528
  br label %4759

4759:                                             ; preds = %4758, %2520
  store i32 0, ptr %17, align 4
  store i32 1, ptr %116, align 4
  br label %4760

4760:                                             ; preds = %4759, %3108, %1295, %463, %452, %243
  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 8, ptr %113) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 16, 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 16, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, 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 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  %4761 = load i32, ptr %17, align 4
  ret i32 %4761
}

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

declare i64 @lsame_(ptr noundef, ptr noundef) #2

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

; 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}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = distinct !{!48, !14}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = distinct !{!51, !14}
!52 = distinct !{!52, !14}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}
!55 = distinct !{!55, !14}
!56 = distinct !{!56, !14}
!57 = distinct !{!57, !14}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14}
!60 = distinct !{!60, !14}
!61 = distinct !{!61, !14}
!62 = distinct !{!62, !14}
!63 = distinct !{!63, !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 [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@c_true = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@.str.9 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b34 = external hidden global float, align 4
@c__1 = external hidden global i64, align 8
@c_b36 = external hidden global float, align 4
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i64, align 8

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

54:                                               ; preds = %16
  %55 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #7
  %.not1486 = icmp eq i64 %55, 0
  br i1 %.not1486, label %56, label %58

56:                                               ; preds = %54
  %57 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #7
  %.not1487 = icmp eq i64 %57, 0
  br label %58

58:                                               ; preds = %56, %54, %16
  %.not1492 = phi i1 [ false, %16 ], [ true, %54 ], [ false, %56 ]
  %.not1529 = phi i1 [ true, %16 ], [ true, %54 ], [ false, %56 ]
  %59 = phi i1 [ false, %16 ], [ false, %54 ], [ %.not1487, %56 ]
  %60 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #7
  %.not1488.not2268 = icmp eq i64 %60, 0
  br i1 %.not1488.not2268, label %61, label %.thread

61:                                               ; preds = %58
  %62 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #7
  %.not1489 = icmp eq i64 %62, 0
  br i1 %.not1489, label %63, label %.thread

.thread:                                          ; preds = %58, %61
  store i64 0, ptr %15, align 8, !tbaa !5
  br label %65

63:                                               ; preds = %61
  %64 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #7
  %.not1490 = icmp eq i64 %64, 0
  store i64 0, ptr %15, align 8, !tbaa !5
  br i1 %.not1490, label %.thread1623, label %65

65:                                               ; preds = %.thread, %63
  %.not15031620 = phi i1 [ %.not1488.not2268, %.thread ], [ false, %63 ]
  br i1 %59, label %.thread1623, label %66

66:                                               ; preds = %65
  %67 = load i64, ptr %3, align 8, !tbaa !5
  %68 = icmp slt i64 %67, 0
  br i1 %68, label %.thread1623, label %69

69:                                               ; preds = %66
  %70 = load i64, ptr %5, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %67, i64 1)
  %71 = icmp slt i64 %70, %spec.select
  br i1 %71, label %.thread1623, label %72

72:                                               ; preds = %69
  %73 = load i64, ptr %7, align 8, !tbaa !5
  %74 = icmp slt i64 %73, %spec.select
  br i1 %74, label %.thread1623, label %76

.thread1623:                                      ; preds = %72, %69, %66, %65, %63
  %.sink = phi i64 [ -1, %63 ], [ -2, %65 ], [ -4, %66 ], [ -6, %69 ], [ -8, %72 ]
  %.neg2177 = phi i64 [ 1, %63 ], [ 2, %65 ], [ 4, %66 ], [ 6, %69 ], [ 8, %72 ]
  store i64 %.sink, ptr %15, align 8, !tbaa !5
  store i64 %.neg2177, ptr %20, align 8, !tbaa !5
  %75 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %20) #7
  br label %.loopexit1713

76:                                               ; preds = %72
  br i1 %.not1492, label %77, label %.loopexit1720

77:                                               ; preds = %76
  %invariant.gep = getelementptr i8, ptr %42, i64 4
  %.not14931722 = icmp eq i64 %67, 0
  br i1 %.not14931722, label %.loopexit1720.thread, label %.lr.ph

.loopexit1720.thread:                             ; preds = %77
  store i64 -1, ptr %20, align 8, !tbaa !5
  br label %.thread2188

.lr.ph:                                           ; preds = %77, %96
  %.013641726 = phi i64 [ %.2, %96 ], [ 0, %77 ]
  %.014391725 = phi i64 [ %.11440, %96 ], [ 0, %77 ]
  %.014491723 = phi i64 [ %97, %96 ], [ 1, %77 ]
  %.not1494 = icmp eq i64 %.013641726, 0
  br i1 %.not1494, label %78, label %96

78:                                               ; preds = %.lr.ph
  %79 = icmp slt i64 %.014491723, %67
  br i1 %79, label %80, label %92

80:                                               ; preds = %78
  %81 = mul nsw i64 %.014491723, %40
  %gep = getelementptr float, ptr %invariant.gep, i64 %.014491723
  %82 = getelementptr float, ptr %gep, i64 %81
  %83 = load float, ptr %82, align 4, !tbaa !9
  %84 = fcmp une float %83, 0.000000e+00
  br i1 %84, label %.critedge, label %92

.critedge:                                        ; preds = %80
  %85 = getelementptr inbounds i64, ptr %39, i64 %.014491723
  %86 = load i64, ptr %85, align 8, !tbaa !5
  %.not1497 = icmp eq i64 %86, 0
  br i1 %.not1497, label %87, label %90

87:                                               ; preds = %.critedge
  %88 = getelementptr i64, ptr %2, i64 %.014491723
  %89 = load i64, ptr %88, align 8, !tbaa !5
  %.not1498 = icmp eq i64 %89, 0
  br i1 %.not1498, label %96, label %90

90:                                               ; preds = %87, %.critedge
  %91 = add nsw i64 %.014391725, 2
  br label %96

92:                                               ; preds = %78, %80
  %93 = getelementptr inbounds i64, ptr %39, i64 %.014491723
  %94 = load i64, ptr %93, align 8, !tbaa !5
  %.not1496 = icmp ne i64 %94, 0
  %95 = zext i1 %.not1496 to i64
  %spec.select1609 = add nsw i64 %.014391725, %95
  br label %96

96:                                               ; preds = %92, %.lr.ph, %87, %90
  %.11440 = phi i64 [ %91, %90 ], [ %.014391725, %87 ], [ %.014391725, %.lr.ph ], [ %spec.select1609, %92 ]
  %.2 = phi i64 [ 1, %90 ], [ 1, %87 ], [ 0, %.lr.ph ], [ 0, %92 ]
  %97 = add nuw i64 %.014491723, 1
  %exitcond.not = icmp eq i64 %.014491723, %67
  br i1 %exitcond.not, label %.loopexit1720, label %.lr.ph, !llvm.loop !11

.loopexit1720:                                    ; preds = %96, %76
  %.21441 = phi i64 [ %67, %76 ], [ %.11440, %96 ]
  %98 = add nsw i64 %67, -1
  store i64 %98, ptr %20, align 8, !tbaa !5
  %invariant.gep1727 = getelementptr i8, ptr %42, i64 8
  %.not1499.not1729 = icmp sgt i64 %67, 1
  br i1 %.not1499.not1729, label %.lr.ph1733, label %.thread2188

.lr.ph1733:                                       ; preds = %.loopexit1720
  %99 = add i64 %43, 1
  br label %100

100:                                              ; preds = %.lr.ph1733, %132
  %.013771732 = phi i64 [ 0, %.lr.ph1733 ], [ %.21379, %132 ]
  %.013801731 = phi i64 [ 0, %.lr.ph1733 ], [ %.11381, %132 ]
  %.114501730 = phi i64 [ 1, %.lr.ph1733 ], [ %101, %132 ]
  %101 = add nuw nsw i64 %.114501730, 1
  %102 = mul nsw i64 %.114501730, %40
  %103 = getelementptr float, ptr %42, i64 %101
  %104 = getelementptr float, ptr %103, i64 %102
  %105 = load float, ptr %104, align 4, !tbaa !9
  %106 = fcmp une float %105, 0.000000e+00
  br i1 %106, label %107, label %132

107:                                              ; preds = %100
  %108 = mul i64 %.114501730, %99
  %109 = getelementptr inbounds float, ptr %45, i64 %108
  %110 = load float, ptr %109, align 4, !tbaa !9
  %111 = fcmp oeq float %110, 0.000000e+00
  br i1 %111, label %123, label %112

112:                                              ; preds = %107
  %113 = mul nsw i64 %101, %43
  %114 = getelementptr float, ptr %45, i64 %101
  %115 = getelementptr float, ptr %114, i64 %113
  %116 = load float, ptr %115, align 4, !tbaa !9
  %117 = fcmp oeq float %116, 0.000000e+00
  br i1 %117, label %123, label %118

118:                                              ; preds = %112
  %119 = getelementptr float, ptr %45, i64 %.114501730
  %120 = getelementptr float, ptr %119, i64 %113
  %121 = load float, ptr %120, align 4, !tbaa !9
  %122 = fcmp une float %121, 0.000000e+00
  br i1 %122, label %123, label %124

123:                                              ; preds = %118, %112, %107
  br label %124

124:                                              ; preds = %123, %118
  %.11378 = phi i64 [ 1, %123 ], [ %.013771732, %118 ]
  %125 = icmp slt i64 %.114501730, %98
  br i1 %125, label %126, label %132

126:                                              ; preds = %124
  %127 = mul nsw i64 %101, %40
  %gep1728 = getelementptr float, ptr %invariant.gep1727, i64 %.114501730
  %128 = getelementptr float, ptr %gep1728, i64 %127
  %129 = load float, ptr %128, align 4, !tbaa !9
  %130 = fcmp une float %129, 0.000000e+00
  br i1 %130, label %131, label %132

131:                                              ; preds = %126
  br label %132

132:                                              ; preds = %100, %126, %131, %124
  %.11381 = phi i64 [ 1, %131 ], [ %.013801731, %126 ], [ %.013801731, %124 ], [ %.013801731, %100 ]
  %.21379 = phi i64 [ %.11378, %131 ], [ %.11378, %126 ], [ %.11378, %124 ], [ %.013771732, %100 ]
  %exitcond2106.not = icmp eq i64 %101, %67
  br i1 %exitcond2106.not, label %._crit_edge, label %100, !llvm.loop !13

._crit_edge:                                      ; preds = %132
  %.not1500 = icmp eq i64 %.11381, 0
  br i1 %.not1500, label %133, label %.thread1635

133:                                              ; preds = %._crit_edge
  %.not1501 = icmp eq i64 %.21379, 0
  br i1 %.not1501, label %.thread2188, label %.thread1635

.thread2188:                                      ; preds = %.loopexit1720, %.loopexit1720.thread, %133
  %.21441218121862192 = phi i64 [ %.21441, %133 ], [ 0, %.loopexit1720.thread ], [ %.21441, %.loopexit1720 ]
  %.pr1628 = load i64, ptr %9, align 8, !tbaa !5
  %134 = icmp slt i64 %.pr1628, %67
  %or.cond2263 = select i1 %.not1488.not2268, i1 %134, i1 false
  %135 = icmp slt i64 %.pr1628, 1
  %or.cond2264 = select i1 %or.cond2263, i1 true, i1 %135
  br i1 %or.cond2264, label %.thread1635, label %136

136:                                              ; preds = %.thread2188
  %.pr1630 = load i64, ptr %11, align 8, !tbaa !5
  %.not15031620.not2265 = xor i1 %.not15031620, true
  %137 = icmp slt i64 %.pr1630, %67
  %or.cond2266 = select i1 %.not15031620.not2265, i1 %137, i1 false
  %138 = icmp slt i64 %.pr1630, 1
  %or.cond2267 = select i1 %or.cond2266, i1 true, i1 %138
  br i1 %or.cond2267, label %.thread1635, label %139

139:                                              ; preds = %136
  %140 = load i64, ptr %12, align 8, !tbaa !5
  %141 = icmp slt i64 %140, %.21441218121862192
  br i1 %141, label %.thread1635, label %143

.thread1635:                                      ; preds = %139, %136, %.thread2188, %133, %._crit_edge
  %.sink2253 = phi i64 [ -5, %._crit_edge ], [ -7, %133 ], [ -10, %.thread2188 ], [ -12, %136 ], [ -13, %139 ]
  %.neg = phi i64 [ 5, %._crit_edge ], [ 7, %133 ], [ 10, %.thread2188 ], [ 12, %136 ], [ 13, %139 ]
  store i64 %.sink2253, ptr %15, align 8, !tbaa !5
  store i64 %.neg, ptr %20, align 8, !tbaa !5
  %142 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %20) #7
  br label %.loopexit1713

143:                                              ; preds = %139
  store i64 %.21441218121862192, ptr %13, align 8, !tbaa !5
  %144 = load i64, ptr %3, align 8, !tbaa !5
  %145 = icmp eq i64 %144, 0
  br i1 %145, label %.loopexit1713, label %146

146:                                              ; preds = %143
  %147 = tail call double @slamch_(ptr noundef nonnull @.str.6) #7
  %148 = fptrunc double %147 to float
  store float %148, ptr %38, align 4, !tbaa !9
  %149 = fdiv float 1.000000e+00, %148
  store float %149, ptr %25, align 4, !tbaa !9
  %150 = call i32 @slabad_(ptr noundef nonnull %38, ptr noundef nonnull %25) #7
  %151 = call double @slamch_(ptr noundef nonnull @.str.7) #7
  %152 = call double @slamch_(ptr noundef nonnull @.str.8) #7
  %153 = fmul double %151, %152
  %154 = fptrunc double %153 to float
  %155 = load float, ptr %38, align 4
  %156 = load i64, ptr %3, align 8, !tbaa !5
  %157 = sitofp i64 %156 to float
  %158 = fmul float %155, %157
  %159 = fdiv float %158, %154
  %160 = fdiv float 1.000000e+00, %159
  store float %160, ptr %25, align 4, !tbaa !9
  %161 = fdiv float 1.000000e+00, %158
  %162 = load float, ptr %4, align 4, !tbaa !9
  %163 = fcmp oge float %162, 0.000000e+00
  %164 = fneg float %162
  %165 = select i1 %163, float %162, float %164
  %166 = icmp sgt i64 %156, 1
  br i1 %166, label %167, label %174

167:                                              ; preds = %146
  %168 = getelementptr inbounds i8, ptr %4, i64 4
  %169 = load float, ptr %168, align 4, !tbaa !9
  store float %169, ptr %22, align 4, !tbaa !9
  %170 = fcmp oge float %169, 0.000000e+00
  %171 = fneg float %169
  %172 = select i1 %170, float %169, float %171
  %173 = fadd float %165, %172
  br label %174

174:                                              ; preds = %167, %146
  %.01384 = phi float [ %173, %167 ], [ %165, %146 ]
  %175 = load float, ptr %6, align 4, !tbaa !9
  %176 = fcmp oge float %175, 0.000000e+00
  %177 = fneg float %175
  %178 = select i1 %176, float %175, float %177
  store float 0.000000e+00, ptr %14, align 4, !tbaa !9
  %179 = getelementptr float, ptr %14, i64 %156
  store float 0.000000e+00, ptr %179, align 4, !tbaa !9
  %.not15051768 = icmp slt i64 %156, 2
  %180 = insertelement <2 x float> poison, float %.01384, i64 0
  %181 = insertelement <2 x float> %180, float %178, i64 1
  br i1 %.not15051768, label %265, label %.lr.ph1773

.lr.ph1773:                                       ; preds = %174
  %182 = getelementptr float, ptr %52, i64 %156
  %183 = add nuw i64 %156, 1
  br label %184

184:                                              ; preds = %.lr.ph1773, %259
  %.214511769 = phi i64 [ 2, %.lr.ph1773 ], [ %229, %259 ]
  %185 = phi <2 x float> [ %181, %.lr.ph1773 ], [ %262, %259 ]
  %186 = add nsw i64 %.214511769, -1
  %187 = mul nsw i64 %186, %40
  %188 = getelementptr float, ptr %42, i64 %.214511769
  %189 = getelementptr float, ptr %188, i64 %187
  %190 = load float, ptr %189, align 4, !tbaa !9
  %191 = fcmp oeq float %190, 0.000000e+00
  %192 = add nsw i64 %.214511769, -2
  %.01403 = select i1 %191, i64 %186, i64 %192
  %.not16021737 = icmp slt i64 %.01403, 1
  br i1 %.not16021737, label %._crit_edge1741, label %.lr.ph1740

.lr.ph1740:                                       ; preds = %184
  %193 = mul nsw i64 %.214511769, %40
  %invariant.gep1742 = getelementptr float, ptr %42, i64 %193
  %194 = mul nsw i64 %.214511769, %43
  %invariant.gep1744 = getelementptr float, ptr %45, i64 %194
  %xtraiter = and i64 %.01403, 1
  %195 = icmp eq i64 %.01403, 1
  br i1 %195, label %._crit_edge1741.loopexit.unr-lcssa, label %.lr.ph1740.new

.lr.ph1740.new:                                   ; preds = %.lr.ph1740
  %unroll_iter = and i64 %.01403, 9223372036854775806
  br label %196

196:                                              ; preds = %196, %.lr.ph1740.new
  %.014581738 = phi i64 [ 1, %.lr.ph1740.new ], [ %215, %196 ]
  %197 = phi <2 x float> [ zeroinitializer, %.lr.ph1740.new ], [ %214, %196 ]
  %niter = phi i64 [ 0, %.lr.ph1740.new ], [ %niter.next.1, %196 ]
  %gep1743 = getelementptr float, ptr %invariant.gep1742, i64 %.014581738
  %198 = load float, ptr %gep1743, align 4, !tbaa !9
  %gep1745 = getelementptr float, ptr %invariant.gep1744, i64 %.014581738
  %199 = load float, ptr %gep1745, align 4, !tbaa !9
  %200 = insertelement <2 x float> poison, float %198, i64 0
  %201 = insertelement <2 x float> %200, float %199, i64 1
  %202 = fcmp oge <2 x float> %201, zeroinitializer
  %203 = fneg <2 x float> %201
  %204 = select <2 x i1> %202, <2 x float> %201, <2 x float> %203
  %205 = fadd <2 x float> %197, %204
  %206 = add nuw i64 %.014581738, 1
  %gep1743.1 = getelementptr float, ptr %invariant.gep1742, i64 %206
  %207 = load float, ptr %gep1743.1, align 4, !tbaa !9
  %gep1745.1 = getelementptr float, ptr %invariant.gep1744, i64 %206
  %208 = load float, ptr %gep1745.1, align 4, !tbaa !9
  %209 = insertelement <2 x float> poison, float %207, i64 0
  %210 = insertelement <2 x float> %209, float %208, i64 1
  %211 = fcmp oge <2 x float> %210, zeroinitializer
  %212 = fneg <2 x float> %210
  %213 = select <2 x i1> %211, <2 x float> %210, <2 x float> %212
  %214 = fadd <2 x float> %205, %213
  %215 = add nuw i64 %.014581738, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge1741.loopexit.unr-lcssa, label %196, !llvm.loop !14

._crit_edge1741.loopexit.unr-lcssa:               ; preds = %196, %.lr.ph1740
  %.lcssa2663.ph = phi <2 x float> [ poison, %.lr.ph1740 ], [ %214, %196 ]
  %.014581738.unr = phi i64 [ 1, %.lr.ph1740 ], [ %215, %196 ]
  %.unr = phi <2 x float> [ zeroinitializer, %.lr.ph1740 ], [ %214, %196 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge1741, label %._crit_edge1741.loopexit.epilog-lcssa

._crit_edge1741.loopexit.epilog-lcssa:            ; preds = %._crit_edge1741.loopexit.unr-lcssa
  %gep1743.epil = getelementptr float, ptr %invariant.gep1742, i64 %.014581738.unr
  %216 = load float, ptr %gep1743.epil, align 4, !tbaa !9
  %gep1745.epil = getelementptr float, ptr %invariant.gep1744, i64 %.014581738.unr
  %217 = load float, ptr %gep1745.epil, align 4, !tbaa !9
  %218 = insertelement <2 x float> poison, float %216, i64 0
  %219 = insertelement <2 x float> %218, float %217, i64 1
  %220 = fcmp oge <2 x float> %219, zeroinitializer
  %221 = fneg <2 x float> %219
  %222 = select <2 x i1> %220, <2 x float> %219, <2 x float> %221
  %223 = fadd <2 x float> %.unr, %222
  br label %._crit_edge1741

._crit_edge1741:                                  ; preds = %._crit_edge1741.loopexit.epilog-lcssa, %._crit_edge1741.loopexit.unr-lcssa, %184
  %224 = phi <2 x float> [ zeroinitializer, %184 ], [ %.lcssa2663.ph, %._crit_edge1741.loopexit.unr-lcssa ], [ %223, %._crit_edge1741.loopexit.epilog-lcssa ]
  %225 = getelementptr inbounds float, ptr %52, i64 %.214511769
  %226 = extractelement <2 x float> %224, i64 0
  store float %226, ptr %225, align 4, !tbaa !9
  %227 = getelementptr float, ptr %182, i64 %.214511769
  %228 = extractelement <2 x float> %224, i64 1
  store float %228, ptr %227, align 4, !tbaa !9
  %229 = add nuw i64 %.214511769, 1
  %.not1603.not = icmp slt i64 %.214511769, %156
  %.1610 = select i1 %.not1603.not, i64 %229, i64 %156
  %.not1604.not1751 = icmp slt i64 %.01403, %.1610
  br i1 %.not1604.not1751, label %.lr.ph1754, label %259

.lr.ph1754:                                       ; preds = %._crit_edge1741
  %230 = mul nsw i64 %.214511769, %40
  %invariant.gep1756 = getelementptr float, ptr %42, i64 %230
  %231 = mul nsw i64 %.214511769, %43
  %invariant.gep1758 = getelementptr float, ptr %45, i64 %231
  %232 = sub i64 %.1610, %.01403
  %.neg2711 = add nsw i64 %.01403, 1
  %xtraiter2669 = and i64 %232, 1
  %lcmp.mod2670.not = icmp eq i64 %xtraiter2669, 0
  br i1 %lcmp.mod2670.not, label %.prol.loopexit, label %.prol.loopexit.unr-lcssa

.prol.loopexit.unr-lcssa:                         ; preds = %.lr.ph1754
  %.11459.prol = add nsw i64 %.01403, 1
  %gep1757.prol = getelementptr float, ptr %invariant.gep1756, i64 %.11459.prol
  %233 = load float, ptr %gep1757.prol, align 4, !tbaa !9
  %gep1759.prol = getelementptr float, ptr %invariant.gep1758, i64 %.11459.prol
  %234 = load float, ptr %gep1759.prol, align 4, !tbaa !9
  %235 = insertelement <2 x float> poison, float %233, i64 0
  %236 = insertelement <2 x float> %235, float %234, i64 1
  %237 = fcmp oge <2 x float> %236, zeroinitializer
  %238 = fneg <2 x float> %236
  %239 = select <2 x i1> %237, <2 x float> %236, <2 x float> %238
  %240 = fadd <2 x float> %224, %239
  br label %.prol.loopexit

.prol.loopexit:                                   ; preds = %.prol.loopexit.unr-lcssa, %.lr.ph1754
  %.lcssa2665.unr = phi float [ poison, %.lr.ph1754 ], [ %234, %.prol.loopexit.unr-lcssa ]
  %.lcssa2664.unr = phi <2 x float> [ poison, %.lr.ph1754 ], [ %240, %.prol.loopexit.unr-lcssa ]
  %.11459.in1752.unr = phi i64 [ %.01403, %.lr.ph1754 ], [ %.11459.prol, %.prol.loopexit.unr-lcssa ]
  %.unr2671 = phi <2 x float> [ %224, %.lr.ph1754 ], [ %240, %.prol.loopexit.unr-lcssa ]
  %241 = icmp eq i64 %.1610, %.neg2711
  br i1 %241, label %._crit_edge1755, label %.lr.ph1754.new

.lr.ph1754.new:                                   ; preds = %.prol.loopexit, %.lr.ph1754.new
  %.11459.in1752 = phi i64 [ %.11459.1, %.lr.ph1754.new ], [ %.11459.in1752.unr, %.prol.loopexit ]
  %242 = phi <2 x float> [ %258, %.lr.ph1754.new ], [ %.unr2671, %.prol.loopexit ]
  %.11459 = add nsw i64 %.11459.in1752, 1
  %gep1757 = getelementptr float, ptr %invariant.gep1756, i64 %.11459
  %243 = load float, ptr %gep1757, align 4, !tbaa !9
  %gep1759 = getelementptr float, ptr %invariant.gep1758, i64 %.11459
  %244 = load float, ptr %gep1759, align 4, !tbaa !9
  %245 = insertelement <2 x float> poison, float %243, i64 0
  %246 = insertelement <2 x float> %245, float %244, i64 1
  %247 = fcmp oge <2 x float> %246, zeroinitializer
  %248 = fneg <2 x float> %246
  %249 = select <2 x i1> %247, <2 x float> %246, <2 x float> %248
  %250 = fadd <2 x float> %242, %249
  %.11459.1 = add nsw i64 %.11459.in1752, 2
  %gep1757.1 = getelementptr float, ptr %invariant.gep1756, i64 %.11459.1
  %251 = load float, ptr %gep1757.1, align 4, !tbaa !9
  %gep1759.1 = getelementptr float, ptr %invariant.gep1758, i64 %.11459.1
  %252 = load float, ptr %gep1759.1, align 4, !tbaa !9
  %253 = insertelement <2 x float> poison, float %251, i64 0
  %254 = insertelement <2 x float> %253, float %252, i64 1
  %255 = fcmp oge <2 x float> %254, zeroinitializer
  %256 = fneg <2 x float> %254
  %257 = select <2 x i1> %255, <2 x float> %254, <2 x float> %256
  %258 = fadd <2 x float> %250, %257
  %exitcond2108.not.1 = icmp eq i64 %.11459.1, %.1610
  br i1 %exitcond2108.not.1, label %._crit_edge1755, label %.lr.ph1754.new, !llvm.loop !15

._crit_edge1755:                                  ; preds = %.lr.ph1754.new, %.prol.loopexit
  %.lcssa2665 = phi float [ %.lcssa2665.unr, %.prol.loopexit ], [ %252, %.lr.ph1754.new ]
  %.lcssa2664 = phi <2 x float> [ %.lcssa2664.unr, %.prol.loopexit ], [ %258, %.lr.ph1754.new ]
  store float %.lcssa2665, ptr %22, align 4, !tbaa !9
  br label %259

259:                                              ; preds = %._crit_edge1755, %._crit_edge1741
  %260 = phi <2 x float> [ %.lcssa2664, %._crit_edge1755 ], [ %224, %._crit_edge1741 ]
  %261 = fcmp oge <2 x float> %185, %260
  %262 = select <2 x i1> %261, <2 x float> %185, <2 x float> %260
  %exitcond2109.not = icmp eq i64 %.214511769, %156
  br i1 %exitcond2109.not, label %._crit_edge1774, label %184, !llvm.loop !16

._crit_edge1774:                                  ; preds = %259
  %263 = extractelement <2 x float> %260, i64 0
  store float %263, ptr %28, align 4, !tbaa !9
  %264 = extractelement <2 x float> %260, i64 1
  store float %264, ptr %31, align 4, !tbaa !9
  store i64 %183, ptr %21, align 8, !tbaa !5
  br label %265

265:                                              ; preds = %._crit_edge1774, %174
  %266 = phi <2 x float> [ %262, %._crit_edge1774 ], [ %181, %174 ]
  %267 = insertelement <2 x float> poison, float %155, i64 0
  %268 = shufflevector <2 x float> %267, <2 x float> poison, <2 x i32> zeroinitializer
  %269 = fcmp oge <2 x float> %266, %268
  %270 = select <2 x i1> %269, <2 x float> %266, <2 x float> %268
  %271 = fdiv <2 x float> <float 1.000000e+00, float 1.000000e+00>, %270
  br i1 %.not1488.not2268, label %272, label %.loopexit1719

272:                                              ; preds = %265
  store i64 %156, ptr %20, align 8, !tbaa !5
  %invariant.gep1876 = getelementptr i8, ptr %42, i64 4
  %invariant.gep1878 = getelementptr i8, ptr %48, i64 4
  %.not15071882 = icmp slt i64 %156, 1
  br i1 %.not15071882, label %.loopexit1719, label %.lr.ph1894

.lr.ph1894:                                       ; preds = %272
  %273 = add i64 %40, 1
  %274 = add i64 %43, 1
  %275 = add i64 %46, 1
  %276 = fpext float %159 to double
  %277 = getelementptr inbounds i8, ptr %32, i64 4
  %278 = shl i64 %46, 2
  %279 = extractelement <2 x float> %266, i64 0
  %280 = extractelement <2 x float> %266, i64 1
  %281 = extractelement <2 x float> %271, i64 0
  %282 = extractelement <2 x float> %271, i64 1
  %283 = insertelement <2 x float> poison, float %154, i64 0
  %284 = shufflevector <2 x float> %283, <2 x float> poison, <2 x i32> zeroinitializer
  %285 = shufflevector <2 x float> %271, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %286 = getelementptr inbounds i8, ptr %29, i64 8
  %287 = getelementptr inbounds i8, ptr %30, i64 8
  %288 = getelementptr inbounds i8, ptr %26, i64 8
  %289 = getelementptr inbounds i8, ptr %30, i64 4
  %290 = getelementptr inbounds i8, ptr %29, i64 4
  %291 = getelementptr inbounds i8, ptr %29, i64 12
  %292 = getelementptr inbounds i8, ptr %26, i64 4
  %293 = getelementptr inbounds i8, ptr %30, i64 12
  %294 = getelementptr inbounds i8, ptr %26, i64 12
  %295 = getelementptr inbounds i8, ptr %30, i64 4
  %296 = getelementptr inbounds i8, ptr %29, i64 4
  %297 = getelementptr inbounds i8, ptr %26, i64 4
  br label %298

298:                                              ; preds = %.lr.ph1894, %945
  %299 = phi i64 [ %156, %.lr.ph1894 ], [ %946, %945 ]
  %300 = phi float [ %155, %.lr.ph1894 ], [ %947, %945 ]
  %301 = phi i64 [ %156, %.lr.ph1894 ], [ %948, %945 ]
  %.31892 = phi i64 [ 0, %.lr.ph1894 ], [ %.5, %945 ]
  %.014051889 = phi i64 [ 0, %.lr.ph1894 ], [ %.11406, %945 ]
  %.014421883 = phi i64 [ 1, %.lr.ph1894 ], [ %949, %945 ]
  %.not1562 = icmp eq i64 %.31892, 0
  br i1 %.not1562, label %302, label %945

302:                                              ; preds = %298
  store i64 1, ptr %24, align 8, !tbaa !5
  %303 = icmp slt i64 %.014421883, %301
  br i1 %303, label %304, label %309

304:                                              ; preds = %302
  %305 = mul nsw i64 %.014421883, %40
  %gep1877 = getelementptr float, ptr %invariant.gep1876, i64 %.014421883
  %306 = getelementptr float, ptr %gep1877, i64 %305
  %307 = load float, ptr %306, align 4, !tbaa !9
  %308 = fcmp une float %307, 0.000000e+00
  br i1 %308, label %.thread1638, label %309

309:                                              ; preds = %304, %302
  br i1 %.not1492, label %313, label %.thread1651.thread

.thread1638:                                      ; preds = %304
  store i64 2, ptr %24, align 8, !tbaa !5
  br i1 %.not1492, label %310, label %.thread1651

310:                                              ; preds = %.thread1638
  %311 = getelementptr inbounds i64, ptr %39, i64 %.014421883
  %312 = load i64, ptr %311, align 8, !tbaa !5
  %.not1564 = icmp eq i64 %312, 0
  br i1 %.not1564, label %.thread2193, label %.thread1651

313:                                              ; preds = %309
  %314 = getelementptr inbounds i64, ptr %39, i64 %.014421883
  %315 = load i64, ptr %314, align 8, !tbaa !5
  %.not1565 = icmp eq i64 %315, 0
  br i1 %.not1565, label %945, label %.thread1651.thread

.thread2193:                                      ; preds = %310
  %316 = getelementptr i64, ptr %2, i64 %.014421883
  %317 = load i64, ptr %316, align 8, !tbaa !5
  %.not2269 = icmp eq i64 %317, 0
  br i1 %.not2269, label %945, label %.thread1651

.thread1651.thread:                               ; preds = %313, %309
  %318 = mul i64 %.014421883, %273
  %319 = getelementptr inbounds float, ptr %42, i64 %318
  %320 = load float, ptr %319, align 4, !tbaa !9
  %321 = fcmp oge float %320, 0.000000e+00
  %322 = fneg float %320
  %323 = select i1 %321, float %320, float %322
  %324 = fcmp ugt float %323, %300
  br i1 %324, label %.thread1651, label %325

325:                                              ; preds = %.thread1651.thread
  %326 = mul i64 %.014421883, %274
  %327 = getelementptr inbounds float, ptr %45, i64 %326
  %328 = load float, ptr %327, align 4, !tbaa !9
  %329 = fcmp oge float %328, 0.000000e+00
  %330 = fneg float %328
  %331 = select i1 %329, float %328, float %330
  %332 = fcmp ugt float %331, %300
  br i1 %332, label %.thread1651, label %333

333:                                              ; preds = %325
  %334 = add nsw i64 %.014051889, 1
  %.not15671778 = icmp slt i64 %301, 1
  br i1 %.not15671778, label %._crit_edge1782, label %.lr.ph1781

.lr.ph1781:                                       ; preds = %333
  %335 = mul i64 %278, %.014051889
  %scevgep = getelementptr i8, ptr %8, i64 %335
  %336 = shl nuw i64 %301, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %336, i1 false), !tbaa !9
  br label %._crit_edge1782

._crit_edge1782:                                  ; preds = %.lr.ph1781, %333
  %337 = mul i64 %334, %275
  %338 = getelementptr inbounds float, ptr %48, i64 %337
  store float 1.000000e+00, ptr %338, align 4, !tbaa !9
  br label %945

.thread1651:                                      ; preds = %310, %.thread2193, %.thread1638, %.thread1651.thread, %325
  %339 = phi i64 [ 1, %.thread1651.thread ], [ 1, %325 ], [ 2, %.thread1638 ], [ 2, %.thread2193 ], [ 2, %310 ]
  %.4164316561660 = phi i64 [ 0, %.thread1651.thread ], [ 0, %325 ], [ 1, %.thread1638 ], [ 1, %.thread2193 ], [ 1, %310 ]
  %.not1563164216571658 = phi i1 [ true, %.thread1651.thread ], [ true, %325 ], [ false, %.thread1638 ], [ false, %.thread2193 ], [ false, %310 ]
  %340 = mul nsw i64 %339, %301
  %.not15681785 = icmp slt i64 %340, 1
  br i1 %.not15681785, label %._crit_edge1788, label %.lr.ph1787

.lr.ph1787:                                       ; preds = %.thread1651
  %.idx1601 = shl i64 %301, 3
  %scevgep2110 = getelementptr i8, ptr %14, i64 %.idx1601
  %341 = shl nuw nsw i64 %339, 2
  %342 = mul i64 %341, %301
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep2110, i8 0, i64 %342, i1 false), !tbaa !9
  br label %._crit_edge1788

._crit_edge1788:                                  ; preds = %.lr.ph1787, %.thread1651
  br i1 %.not1563164216571658, label %343, label %463

343:                                              ; preds = %._crit_edge1788
  %344 = mul i64 %.014421883, %273
  %345 = getelementptr inbounds float, ptr %42, i64 %344
  %346 = load float, ptr %345, align 4, !tbaa !9
  %347 = mul i64 %.014421883, %274
  %348 = getelementptr inbounds float, ptr %45, i64 %347
  %349 = load float, ptr %348, align 4, !tbaa !9
  %350 = insertelement <2 x float> poison, float %346, i64 0
  %351 = insertelement <2 x float> %350, float %349, i64 1
  %352 = fcmp oge <2 x float> %351, zeroinitializer
  %353 = fneg <2 x float> %351
  %354 = select <2 x i1> %352, <2 x float> %351, <2 x float> %353
  %355 = fmul <2 x float> %271, %354
  %356 = extractelement <2 x float> %355, i64 0
  %357 = extractelement <2 x float> %355, i64 1
  %358 = fcmp oge float %356, %357
  %359 = select i1 %358, float %356, float %357
  %360 = fcmp oge float %359, %300
  %361 = select i1 %360, float %359, float %300
  %362 = fdiv float 1.000000e+00, %361
  store float %362, ptr %28, align 4, !tbaa !9
  %363 = insertelement <2 x float> poison, float %349, i64 0
  %364 = insertelement <2 x float> %363, float %346, i64 1
  %365 = insertelement <2 x float> poison, float %362, i64 0
  %366 = shufflevector <2 x float> %365, <2 x float> poison, <2 x i32> zeroinitializer
  %367 = fmul <2 x float> %364, %366
  %368 = fmul <2 x float> %285, %367
  %369 = fmul <2 x float> %271, %368
  %370 = extractelement <2 x float> %369, i64 0
  store float %370, ptr %33, align 4, !tbaa !9
  %371 = extractelement <2 x float> %369, i64 1
  store float %371, ptr %37, align 4, !tbaa !9
  store float 0.000000e+00, ptr %36, align 4, !tbaa !9
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  %372 = extractelement <2 x float> %368, i64 0
  %373 = fcmp oge float %372, 0.000000e+00
  %374 = fneg float %372
  %375 = select i1 %373, float %372, float %374
  %376 = fpext float %375 to double
  %377 = fcmp ult float %375, %300
  br i1 %377, label %.thread2225, label %378

378:                                              ; preds = %343
  %379 = fcmp oge float %370, 0.000000e+00
  %380 = fneg float %370
  %381 = select i1 %379, float %370, float %380
  %382 = fcmp olt float %381, %159
  %383 = extractelement <2 x float> %368, i64 1
  %384 = fcmp oge float %383, 0.000000e+00
  %385 = fneg float %383
  %386 = select i1 %384, float %383, float %385
  %387 = fcmp ult float %386, %300
  br i1 %387, label %.thread2222, label %397

.thread2225:                                      ; preds = %343
  %388 = extractelement <2 x float> %368, i64 1
  %389 = fcmp oge float %388, 0.000000e+00
  %390 = fneg float %388
  %391 = select i1 %389, float %388, float %390
  %392 = fcmp ult float %391, %300
  br i1 %392, label %.thread2204, label %.thread2227

.thread2227:                                      ; preds = %.thread2225
  %393 = fcmp oge float %371, 0.000000e+00
  %394 = fneg float %371
  %395 = select i1 %393, float %371, float %394
  %396 = fcmp olt float %395, %159
  br i1 %396, label %.thread1662, label %.thread2204

397:                                              ; preds = %378
  %398 = fcmp oge float %371, 0.000000e+00
  %399 = fneg float %371
  %400 = select i1 %398, float %371, float %399
  %401 = fcmp olt float %400, %159
  br i1 %382, label %402, label %.thread2203

.thread2222:                                      ; preds = %378
  br i1 %382, label %402, label %.thread2204

402:                                              ; preds = %.thread2222, %397
  %403 = phi i1 [ false, %.thread2222 ], [ %401, %397 ]
  %404 = fdiv double %276, %376
  %405 = load float, ptr %25, align 4
  %406 = fcmp ole float %279, %405
  %407 = select i1 %406, float %279, float %405
  %408 = fpext float %407 to double
  %409 = fmul double %404, %408
  %410 = fptrunc double %409 to float
  br i1 %403, label %.thread1662, label %423

.thread2203:                                      ; preds = %397
  br i1 %401, label %.thread1662, label %.thread2204

.thread1662:                                      ; preds = %.thread2227, %.thread2203, %402
  %.in = phi float [ %386, %.thread2203 ], [ %386, %402 ], [ %391, %.thread2227 ]
  %411 = phi i1 [ false, %.thread2203 ], [ true, %402 ], [ false, %.thread2227 ]
  %412 = phi float [ 1.000000e+00, %.thread2203 ], [ %410, %402 ], [ 1.000000e+00, %.thread2227 ]
  %413 = fpext float %.in to double
  store float %412, ptr %22, align 4, !tbaa !9
  %414 = fdiv double %276, %413
  %415 = load float, ptr %25, align 4
  %416 = fcmp ole float %280, %415
  %417 = select i1 %416, float %280, float %415
  %418 = fpext float %417 to double
  %419 = fmul double %414, %418
  %420 = fptrunc double %419 to float
  %421 = fcmp oge float %412, %420
  %422 = select i1 %421, float %412, float %420
  br label %423

423:                                              ; preds = %402, %.thread1662
  %424 = phi i1 [ %411, %.thread1662 ], [ true, %402 ]
  %425 = phi i1 [ true, %.thread1662 ], [ false, %402 ]
  %426 = phi float [ %422, %.thread1662 ], [ %410, %402 ]
  %427 = fcmp oge float %370, 0.000000e+00
  %428 = fneg float %370
  %429 = select i1 %427, float %370, float %428
  %430 = fcmp ole float %429, 1.000000e+00
  %431 = select i1 %430, float 1.000000e+00, float %429
  %432 = fcmp oge float %371, 0.000000e+00
  %433 = fneg float %371
  %434 = select i1 %432, float %371, float %433
  %435 = fpext float %300 to double
  %436 = fcmp oge float %431, %434
  %437 = select i1 %436, float %431, float %434
  %438 = fpext float %437 to double
  %439 = fmul double %435, %438
  %440 = fdiv double 1.000000e+00, %439
  %441 = fptrunc double %440 to float
  %442 = fcmp ole float %426, %441
  %443 = select i1 %442, float %426, float %441
  store float %443, ptr %34, align 4, !tbaa !9
  %444 = fmul float %370, %443
  %445 = fmul float %372, %443
  %446 = fmul float %281, %445
  %storemerge1569 = select i1 %424, float %446, float %444
  store float %storemerge1569, ptr %33, align 4, !tbaa !9
  br i1 %425, label %447, label %453

447:                                              ; preds = %423
  %448 = extractelement <2 x float> %368, i64 1
  %449 = fmul float %448, %443
  %450 = fmul float %282, %449
  store float %450, ptr %37, align 4, !tbaa !9
  %451 = insertelement <2 x float> poison, float %storemerge1569, i64 0
  %452 = insertelement <2 x float> %451, float %450, i64 1
  br label %.thread2204

453:                                              ; preds = %423
  %454 = fmul float %371, %443
  store float %454, ptr %37, align 4, !tbaa !9
  %455 = insertelement <2 x float> poison, float %storemerge1569, i64 0
  %456 = insertelement <2 x float> %455, float %454, i64 1
  br label %.thread2204

.thread2204:                                      ; preds = %.thread2227, %.thread2225, %.thread2222, %.thread2203, %447, %453
  %457 = phi <2 x float> [ %452, %447 ], [ %456, %453 ], [ %369, %.thread2203 ], [ %369, %.thread2222 ], [ %369, %.thread2225 ], [ %369, %.thread2227 ]
  %458 = fcmp oge <2 x float> %457, zeroinitializer
  %459 = fneg <2 x float> %457
  %460 = select <2 x i1> %458, <2 x float> %457, <2 x float> %459
  %.idx1570 = shl i64 %301, 3
  %461 = getelementptr i8, ptr %52, i64 %.idx1570
  %462 = getelementptr float, ptr %461, i64 %.014421883
  store float 1.000000e+00, ptr %462, align 4, !tbaa !9
  br label %619

463:                                              ; preds = %._crit_edge1788
  %464 = fmul float %300, 1.000000e+02
  store float %464, ptr %22, align 4, !tbaa !9
  %465 = mul nsw i64 %.014421883, %40
  %466 = getelementptr float, ptr %42, i64 %.014421883
  %467 = getelementptr float, ptr %466, i64 %465
  %468 = mul i64 %.014421883, %274
  %469 = getelementptr inbounds float, ptr %45, i64 %468
  %470 = call i32 @slag2_(ptr noundef %467, ptr noundef nonnull %5, ptr noundef nonnull %469, ptr noundef nonnull %7, ptr noundef nonnull %22, ptr noundef nonnull %33, ptr noundef nonnull %28, ptr noundef nonnull %37, ptr noundef nonnull %31, ptr noundef nonnull %36) #7
  %471 = load float, ptr %36, align 4, !tbaa !9
  %472 = fneg float %471
  store float %472, ptr %36, align 4, !tbaa !9
  %473 = fcmp oeq float %471, 0.000000e+00
  br i1 %473, label %474, label %475

474:                                              ; preds = %463
  store i64 %.014421883, ptr %15, align 8, !tbaa !5
  br label %.loopexit1713

475:                                              ; preds = %463
  %476 = load float, ptr %33, align 4
  %477 = fcmp oge float %476, 0.000000e+00
  %478 = fneg float %476
  %479 = select i1 %477, float %476, float %478
  %480 = load float, ptr %37, align 4
  %481 = fcmp oge float %480, 0.000000e+00
  %482 = fneg float %480
  %483 = select i1 %481, float %480, float %482
  %484 = fcmp ole float %471, 0.000000e+00
  %485 = select i1 %484, float %472, float %471
  %486 = fadd float %485, %483
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  %487 = fmul float %479, %154
  %488 = load float, ptr %38, align 4
  %489 = fcmp uge float %487, %488
  %490 = fcmp ult float %479, %488
  %or.cond1611 = or i1 %489, %490
  br i1 %or.cond1611, label %494, label %491

491:                                              ; preds = %475
  %492 = fdiv float %488, %154
  %493 = fdiv float %492, %479
  store float %493, ptr %34, align 4, !tbaa !9
  br label %494

494:                                              ; preds = %491, %475
  %495 = phi float [ %493, %491 ], [ 1.000000e+00, %475 ]
  %496 = fmul float %486, %154
  %497 = fcmp uge float %496, %488
  %498 = fcmp ult float %486, %488
  %or.cond1612 = or i1 %498, %497
  br i1 %or.cond1612, label %504, label %499

499:                                              ; preds = %494
  %500 = fdiv float %488, %154
  %501 = fdiv float %500, %486
  %502 = fcmp oge float %495, %501
  %503 = select i1 %502, float %495, float %501
  store float %503, ptr %34, align 4, !tbaa !9
  br label %504

504:                                              ; preds = %499, %494
  %.pr16652162 = phi float [ %503, %499 ], [ %495, %494 ]
  %505 = fmul float %479, %488
  %506 = fcmp ogt float %505, %281
  br i1 %506, label %507, label %509

507:                                              ; preds = %504
  %508 = fdiv float %281, %505
  store float %508, ptr %34, align 4, !tbaa !9
  br label %509

509:                                              ; preds = %507, %504
  %510 = phi float [ %508, %507 ], [ %.pr16652162, %504 ]
  %511 = fmul float %488, %486
  %512 = fcmp ogt float %511, %282
  br i1 %512, label %513, label %thread-pre-split1664

513:                                              ; preds = %509
  store float %510, ptr %22, align 4, !tbaa !9
  %514 = fdiv float %282, %511
  %515 = fcmp ole float %510, %514
  %516 = select i1 %515, float %510, float %514
  store float %516, ptr %34, align 4, !tbaa !9
  br label %thread-pre-split1664

thread-pre-split1664:                             ; preds = %509, %513
  %517 = phi float [ %516, %513 ], [ %510, %509 ]
  %518 = fcmp une float %517, 1.000000e+00
  %519 = insertelement <2 x float> poison, float %479, i64 0
  %520 = insertelement <2 x float> %519, float %486, i64 1
  br i1 %518, label %521, label %._crit_edge2172

521:                                              ; preds = %thread-pre-split1664
  %522 = fmul float %476, %517
  store float %522, ptr %33, align 4, !tbaa !9
  %523 = fcmp oge float %522, 0.000000e+00
  %524 = fneg float %522
  %525 = select i1 %523, float %522, float %524
  %526 = fmul float %480, %517
  store float %526, ptr %37, align 4, !tbaa !9
  %527 = fmul float %517, %472
  store float %527, ptr %36, align 4, !tbaa !9
  %528 = fcmp oge float %526, 0.000000e+00
  %529 = fneg float %526
  %530 = select i1 %528, float %526, float %529
  %531 = fcmp oge float %527, 0.000000e+00
  %532 = fneg float %527
  %533 = select i1 %531, float %527, float %532
  %534 = fadd float %530, %533
  %535 = insertelement <2 x float> poison, float %525, i64 0
  %536 = insertelement <2 x float> %535, float %534, i64 1
  br label %._crit_edge2172

._crit_edge2172:                                  ; preds = %thread-pre-split1664, %521
  %.pre-phi2176 = phi float [ %532, %521 ], [ %471, %thread-pre-split1664 ]
  %.pre-phi2171 = phi float [ %529, %521 ], [ %482, %thread-pre-split1664 ]
  %537 = phi float [ %527, %521 ], [ %472, %thread-pre-split1664 ]
  %538 = phi float [ %526, %521 ], [ %480, %thread-pre-split1664 ]
  %539 = phi float [ %522, %521 ], [ %476, %thread-pre-split1664 ]
  %540 = phi <2 x float> [ %536, %521 ], [ %520, %thread-pre-split1664 ]
  %541 = add nuw nsw i64 %.014421883, 1
  %542 = getelementptr float, ptr %42, i64 %541
  %543 = getelementptr float, ptr %542, i64 %465
  %544 = load float, ptr %543, align 4, !tbaa !9
  %545 = fmul float %539, %544
  store float %545, ptr %28, align 4, !tbaa !9
  %546 = load float, ptr %467, align 4, !tbaa !9
  %547 = load float, ptr %469, align 4, !tbaa !9
  %548 = fmul float %547, %.pre-phi2171
  %549 = call float @llvm.fmuladd.f32(float %539, float %546, float %548)
  %550 = fmul float %547, %.pre-phi2176
  %551 = fcmp oge float %545, 0.000000e+00
  %552 = fneg float %545
  %553 = select i1 %551, float %545, float %552
  %554 = fpext float %553 to double
  %555 = insertelement <2 x float> poison, float %549, i64 0
  %556 = insertelement <2 x float> %555, float %550, i64 1
  %557 = fcmp oge <2 x float> %556, zeroinitializer
  %558 = fneg <2 x float> %556
  %559 = select <2 x i1> %557, <2 x float> %556, <2 x float> %558
  %560 = fpext <2 x float> %559 to <2 x double>
  %shift = shufflevector <2 x double> %560, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %561 = fadd <2 x double> %shift, %560
  %562 = extractelement <2 x double> %561, i64 0
  %563 = fcmp olt double %562, %554
  %564 = load i64, ptr %3, align 8, !tbaa !5
  %.idx1575 = shl i64 %564, 3
  %.idx1576 = mul i64 %564, 12
  br i1 %563, label %565, label %576

565:                                              ; preds = %._crit_edge2172
  %566 = getelementptr i8, ptr %52, i64 %.idx1575
  %567 = getelementptr float, ptr %566, i64 %.014421883
  store float 1.000000e+00, ptr %567, align 4, !tbaa !9
  %568 = getelementptr i8, ptr %52, i64 %.idx1576
  %569 = getelementptr float, ptr %568, i64 %.014421883
  store float 0.000000e+00, ptr %569, align 4, !tbaa !9
  %570 = extractelement <2 x float> %558, i64 0
  %571 = fdiv float %570, %545
  %572 = getelementptr i8, ptr %14, i64 %.idx1575
  %573 = getelementptr float, ptr %572, i64 %.014421883
  store float %571, ptr %573, align 4, !tbaa !9
  %574 = extractelement <2 x float> %558, i64 1
  %575 = fdiv float %574, %545
  br label %599

576:                                              ; preds = %._crit_edge2172
  %577 = getelementptr i8, ptr %14, i64 %.idx1575
  %578 = getelementptr float, ptr %577, i64 %.014421883
  store float 1.000000e+00, ptr %578, align 4, !tbaa !9
  %579 = getelementptr i8, ptr %14, i64 %.idx1576
  %580 = getelementptr float, ptr %579, i64 %.014421883
  store float 0.000000e+00, ptr %580, align 4, !tbaa !9
  %581 = mul nsw i64 %541, %40
  %582 = getelementptr float, ptr %466, i64 %581
  %583 = load float, ptr %582, align 4, !tbaa !9
  %584 = fmul float %539, %583
  store float %584, ptr %28, align 4, !tbaa !9
  %585 = mul i64 %541, %274
  %586 = getelementptr inbounds float, ptr %45, i64 %585
  %587 = load float, ptr %586, align 4, !tbaa !9
  %588 = getelementptr float, ptr %542, i64 %581
  %589 = load float, ptr %588, align 4, !tbaa !9
  %590 = fneg float %539
  %591 = fmul float %589, %590
  %592 = call float @llvm.fmuladd.f32(float %538, float %587, float %591)
  %593 = fdiv float %592, %584
  %594 = getelementptr i8, ptr %52, i64 %.idx1575
  %595 = getelementptr float, ptr %594, i64 %.014421883
  store float %593, ptr %595, align 4, !tbaa !9
  %596 = load float, ptr %586, align 4, !tbaa !9
  %597 = fmul float %537, %596
  %598 = fdiv float %597, %584
  br label %599

599:                                              ; preds = %576, %565
  %.sink2257 = phi ptr [ %52, %576 ], [ %14, %565 ]
  %.sink2254 = phi float [ %598, %576 ], [ %575, %565 ]
  %600 = getelementptr i8, ptr %.sink2257, i64 %.idx1576
  %601 = getelementptr float, ptr %600, i64 %.014421883
  store float %.sink2254, ptr %601, align 4, !tbaa !9
  %602 = getelementptr i8, ptr %52, i64 %.idx1575
  %603 = getelementptr float, ptr %602, i64 %.014421883
  %.idx2645 = mul i64 %564, 12
  %604 = getelementptr i8, ptr %52, i64 %.idx2645
  %605 = getelementptr float, ptr %604, i64 %.014421883
  %606 = load <2 x float>, ptr %603, align 4, !tbaa !9
  %607 = fcmp oge <2 x float> %606, zeroinitializer
  %608 = fneg <2 x float> %606
  %609 = select <2 x i1> %607, <2 x float> %606, <2 x float> %608
  %610 = load <2 x float>, ptr %605, align 4, !tbaa !9
  %611 = fcmp oge <2 x float> %610, zeroinitializer
  %612 = fneg <2 x float> %610
  %613 = select <2 x i1> %611, <2 x float> %610, <2 x float> %612
  %614 = fadd <2 x float> %609, %613
  %615 = extractelement <2 x float> %614, i64 0
  %616 = extractelement <2 x float> %614, i64 1
  %617 = fcmp oge float %615, %616
  %618 = select i1 %617, float %615, float %616
  %.pre = load i64, ptr %24, align 8, !tbaa !5
  br label %619

619:                                              ; preds = %599, %.thread2204
  %620 = phi i64 [ %.pre, %599 ], [ %339, %.thread2204 ]
  %621 = phi i64 [ %564, %599 ], [ %301, %.thread2204 ]
  %622 = phi float [ %488, %599 ], [ %300, %.thread2204 ]
  %.01394 = phi float [ %618, %599 ], [ 1.000000e+00, %.thread2204 ]
  %623 = phi <2 x float> [ %540, %599 ], [ %460, %.thread2204 ]
  %624 = fmul <2 x float> %623, %284
  %625 = fmul <2 x float> %266, %624
  %626 = extractelement <2 x float> %625, i64 0
  %627 = extractelement <2 x float> %625, i64 1
  %628 = fcmp oge float %626, %627
  %629 = select i1 %628, float %626, float %627
  store float %629, ptr %22, align 4, !tbaa !9
  %630 = fcmp oge float %629, %622
  %631 = select i1 %630, float %629, float %622
  store float %631, ptr %27, align 4, !tbaa !9
  %632 = add nsw i64 %620, %.014421883
  %.not15811830 = icmp sgt i64 %632, %621
  br i1 %.not15811830, label %._crit_edge1839, label %.lr.ph1838.preheader

.lr.ph1838.preheader:                             ; preds = %619
  %633 = add i64 %620, -1
  %634 = extractelement <2 x float> %623, i64 1
  %635 = extractelement <2 x float> %623, i64 0
  %636 = add nuw nsw i64 %.014421883, 1
  %637 = add nuw nsw i64 %.014421883, 1
  br label %.lr.ph1838

.lr.ph1838:                                       ; preds = %.lr.ph1838.preheader, %857
  %indvar2298 = phi i64 [ %indvar.next2299, %857 ], [ 0, %.lr.ph1838.preheader ]
  %.013871836 = phi i64 [ %.21389, %857 ], [ 0, %.lr.ph1838.preheader ]
  %.113951835 = phi float [ %.41398, %857 ], [ %.01394, %.lr.ph1838.preheader ]
  %.314521831 = phi i64 [ %858, %857 ], [ %632, %.lr.ph1838.preheader ]
  %638 = add i64 %620, %indvar2298
  %639 = add i64 %633, %indvar2298
  %640 = add i64 %620, %indvar2298
  %641 = add i64 %620, %indvar2298
  %.not1590 = icmp eq i64 %.013871836, 0
  br i1 %.not1590, label %642, label %857

642:                                              ; preds = %.lr.ph1838
  store i64 1, ptr %23, align 8, !tbaa !5
  %643 = mul i64 %.314521831, %274
  %644 = getelementptr inbounds float, ptr %45, i64 %643
  %645 = load float, ptr %644, align 4, !tbaa !9
  store float %645, ptr %32, align 4, !tbaa !9
  %646 = load i64, ptr %3, align 8, !tbaa !5
  %647 = icmp slt i64 %.314521831, %646
  br i1 %647, label %648, label %659

648:                                              ; preds = %642
  %649 = add nsw i64 %.314521831, 1
  %650 = mul nsw i64 %.314521831, %40
  %651 = getelementptr float, ptr %42, i64 %649
  %652 = getelementptr float, ptr %651, i64 %650
  %653 = load float, ptr %652, align 4, !tbaa !9
  %654 = fcmp une float %653, 0.000000e+00
  br i1 %654, label %655, label %659

655:                                              ; preds = %648
  %656 = mul i64 %649, %274
  %657 = getelementptr inbounds float, ptr %45, i64 %656
  %658 = load float, ptr %657, align 4, !tbaa !9
  store float %658, ptr %277, align 4, !tbaa !9
  store i64 2, ptr %23, align 8, !tbaa !5
  br label %659

659:                                              ; preds = %648, %655, %642
  %660 = phi i64 [ 2, %655 ], [ 1, %648 ], [ 1, %642 ]
  %.not1591 = phi i1 [ false, %655 ], [ true, %648 ], [ true, %642 ]
  %.11388 = phi i64 [ 1, %655 ], [ 0, %648 ], [ 0, %642 ]
  %661 = fcmp ole float %.113951835, 1.000000e+00
  %662 = select i1 %661, float 1.000000e+00, float %.113951835
  %663 = fdiv float 1.000000e+00, %662
  %664 = getelementptr inbounds float, ptr %52, i64 %.314521831
  %665 = load float, ptr %664, align 4, !tbaa !9
  %666 = getelementptr float, ptr %52, i64 %646
  %667 = getelementptr float, ptr %666, i64 %.314521831
  %668 = load float, ptr %667, align 4, !tbaa !9
  %669 = fcmp oge float %665, %668
  %670 = select i1 %669, float %665, float %668
  store float %670, ptr %22, align 4, !tbaa !9
  %671 = fmul float %634, %668
  %672 = call float @llvm.fmuladd.f32(float %635, float %665, float %671)
  %673 = fcmp oge float %670, %672
  %674 = select i1 %673, float %670, float %672
  store float %674, ptr %28, align 4, !tbaa !9
  br i1 %.not1591, label %689, label %675

675:                                              ; preds = %659
  %676 = getelementptr float, ptr %14, i64 %.314521831
  %677 = load float, ptr %676, align 4, !tbaa !9
  %678 = fcmp oge float %674, %677
  %679 = select i1 %678, float %674, float %677
  %680 = getelementptr float, ptr %14, i64 %646
  %681 = getelementptr float, ptr %680, i64 %.314521831
  %682 = load float, ptr %681, align 4, !tbaa !9
  %683 = fcmp oge float %679, %682
  %684 = select i1 %683, float %679, float %682
  store float %684, ptr %22, align 4, !tbaa !9
  %685 = fmul float %634, %682
  %686 = call float @llvm.fmuladd.f32(float %635, float %677, float %685)
  %687 = fcmp oge float %684, %686
  %688 = select i1 %687, float %684, float %686
  store float %688, ptr %28, align 4, !tbaa !9
  br label %689

689:                                              ; preds = %675, %659
  %690 = phi float [ %688, %675 ], [ %674, %659 ]
  %691 = fmul float %161, %663
  %692 = fcmp ogt float %690, %691
  %.pre2163 = load i64, ptr %24, align 8, !tbaa !5
  br i1 %692, label %693, label %710

693:                                              ; preds = %689
  %694 = add nsw i64 %.pre2163, -1
  store i64 %694, ptr %21, align 8, !tbaa !5
  %.not1592.not1793 = icmp sgt i64 %.pre2163, 0
  %.not1600.not1789 = icmp slt i64 %.014421883, %.314521831
  %or.cond = select i1 %.not1592.not1793, i1 %.not1600.not1789, i1 false
  br i1 %or.cond, label %.preheader1715.us.preheader, label %._crit_edge1795

.preheader1715.us.preheader:                      ; preds = %693
  %min.iters.check2319 = icmp ult i64 %640, 8
  %n.vec2322 = and i64 %640, -8
  %ind.end2323 = add i64 %.014421883, %n.vec2322
  %broadcast.splatinsert2330 = insertelement <4 x float> poison, float %663, i64 0
  %broadcast.splat2331 = shufflevector <4 x float> %broadcast.splatinsert2330, <4 x float> poison, <4 x i32> zeroinitializer
  %cmp.n2333 = icmp eq i64 %640, %n.vec2322
  br label %.preheader1715.us

.preheader1715.us:                                ; preds = %.preheader1715.us.preheader, %._crit_edge1792.us
  %.014101794.us = phi i64 [ %708, %._crit_edge1792.us ], [ 0, %.preheader1715.us.preheader ]
  %695 = add nuw nsw i64 %.014101794.us, 2
  %696 = mul nsw i64 %695, %646
  %697 = getelementptr float, ptr %52, i64 %696
  br i1 %min.iters.check2319, label %scalar.ph2318.preheader, label %vector.ph2320

vector.ph2320:                                    ; preds = %.preheader1715.us
  %698 = getelementptr float, ptr %697, i64 %.014421883
  br label %vector.body2325

vector.body2325:                                  ; preds = %vector.body2325, %vector.ph2320
  %index2326 = phi i64 [ 0, %vector.ph2320 ], [ %index.next2332, %vector.body2325 ]
  %699 = getelementptr float, ptr %698, i64 %index2326
  %700 = getelementptr i8, ptr %699, i64 16
  %wide.load2328 = load <4 x float>, ptr %699, align 4, !tbaa !9
  %wide.load2329 = load <4 x float>, ptr %700, align 4, !tbaa !9
  %701 = fmul <4 x float> %broadcast.splat2331, %wide.load2328
  %702 = fmul <4 x float> %broadcast.splat2331, %wide.load2329
  store <4 x float> %701, ptr %699, align 4, !tbaa !9
  store <4 x float> %702, ptr %700, align 4, !tbaa !9
  %index.next2332 = add nuw i64 %index2326, 8
  %703 = icmp eq i64 %index.next2332, %n.vec2322
  br i1 %703, label %middle.block2317, label %vector.body2325, !llvm.loop !17

middle.block2317:                                 ; preds = %vector.body2325
  br i1 %cmp.n2333, label %._crit_edge1792.us, label %scalar.ph2318.preheader

scalar.ph2318.preheader:                          ; preds = %middle.block2317, %.preheader1715.us
  %.214251790.us.ph = phi i64 [ %.014421883, %.preheader1715.us ], [ %ind.end2323, %middle.block2317 ]
  br label %scalar.ph2318

scalar.ph2318:                                    ; preds = %scalar.ph2318.preheader, %scalar.ph2318
  %.214251790.us = phi i64 [ %707, %scalar.ph2318 ], [ %.214251790.us.ph, %scalar.ph2318.preheader ]
  %704 = getelementptr float, ptr %697, i64 %.214251790.us
  %705 = load float, ptr %704, align 4, !tbaa !9
  %706 = fmul float %663, %705
  store float %706, ptr %704, align 4, !tbaa !9
  %707 = add nuw nsw i64 %.214251790.us, 1
  %exitcond2111.not = icmp eq i64 %707, %.314521831
  br i1 %exitcond2111.not, label %._crit_edge1792.us, label %scalar.ph2318, !llvm.loop !20

._crit_edge1792.us:                               ; preds = %scalar.ph2318, %middle.block2317
  %708 = add nuw nsw i64 %.014101794.us, 1
  %exitcond2112.not = icmp eq i64 %708, %.pre2163
  br i1 %exitcond2112.not, label %._crit_edge1795, label %.preheader1715.us, !llvm.loop !21

._crit_edge1795:                                  ; preds = %._crit_edge1792.us, %693
  %709 = fmul float %.113951835, %663
  br label %710

710:                                              ; preds = %._crit_edge1795, %689
  %.21396 = phi float [ %709, %._crit_edge1795 ], [ %.113951835, %689 ]
  %.not15931813 = icmp slt i64 %.pre2163, 1
  br i1 %.not15931813, label %.lr.ph1821, label %.lr.ph1811.preheader

.lr.ph1811.preheader:                             ; preds = %710
  %.not1599.not1796 = icmp slt i64 %.014421883, %.314521831
  %711 = shl nuw nsw i64 %660, 2
  %712 = mul nsw i64 %.314521831, %40
  %invariant.gep1801.us = getelementptr float, ptr %42, i64 %712
  %713 = mul nsw i64 %.314521831, %43
  %invariant.gep1803.us = getelementptr float, ptr %45, i64 %713
  %xtraiter2674 = and i64 %638, 1
  %lcmp.mod2675.not = icmp eq i64 %xtraiter2674, 0
  %gep1802.us.prol = getelementptr float, ptr %invariant.gep1801.us, i64 %.014421883
  %gep1804.us.prol = getelementptr float, ptr %invariant.gep1803.us, i64 %.014421883
  %714 = icmp eq i64 %639, 0
  %715 = add i64 %.314521831, 1
  %716 = mul nsw i64 %715, %40
  %invariant.gep1801.us.1 = getelementptr float, ptr %42, i64 %716
  %717 = mul nsw i64 %715, %43
  %invariant.gep1803.us.1 = getelementptr float, ptr %45, i64 %717
  %xtraiter2674.1 = and i64 %638, 1
  %lcmp.mod2675.1.not = icmp eq i64 %xtraiter2674.1, 0
  %gep1802.us.prol.1 = getelementptr float, ptr %invariant.gep1801.us.1, i64 %.014421883
  %gep1804.us.prol.1 = getelementptr float, ptr %invariant.gep1803.us.1, i64 %.014421883
  %718 = icmp eq i64 %639, 0
  br label %.lr.ph1811

.lr.ph1811:                                       ; preds = %.lr.ph1811.preheader, %._crit_edge1812
  %indvar = phi i64 [ 0, %.lr.ph1811.preheader ], [ %indvar.next, %._crit_edge1812 ]
  %.114111814 = phi i64 [ 1, %.lr.ph1811.preheader ], [ %720, %._crit_edge1812 ]
  %719 = shl nuw i64 %.114111814, 1
  %720 = add nuw nsw i64 %.114111814, 1
  %721 = mul nsw i64 %720, %646
  %722 = getelementptr float, ptr %52, i64 %721
  br i1 %.not1599.not1796, label %.lr.ph1799.us, label %.lr.ph1811.split.preheader

.lr.ph1811.split.preheader:                       ; preds = %.lr.ph1811
  %723 = shl i64 %indvar, 3
  %scevgep2113 = getelementptr i8, ptr %30, i64 %723
  %scevgep2114 = getelementptr i8, ptr %29, i64 %723
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep2113, i8 0, i64 %711, i1 false), !tbaa !9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %scevgep2114, i8 0, i64 %711, i1 false), !tbaa !9
  br label %._crit_edge1812

.lr.ph1799.us:                                    ; preds = %.lr.ph1811
  %724 = add i64 %719, -2
  %725 = getelementptr inbounds [4 x float], ptr %30, i64 0, i64 %724
  %726 = getelementptr inbounds [4 x float], ptr %29, i64 0, i64 %724
  br i1 %lcmp.mod2675.not, label %.prol.loopexit2673, label %.prol.loopexit2673.unr-lcssa

.prol.loopexit2673.unr-lcssa:                     ; preds = %.lr.ph1799.us
  %727 = load float, ptr %gep1802.us.prol, align 4, !tbaa !9
  %728 = getelementptr float, ptr %722, i64 %.014421883
  %729 = load float, ptr %728, align 4, !tbaa !9
  %730 = load float, ptr %gep1804.us.prol, align 4, !tbaa !9
  %731 = insertelement <2 x float> poison, float %730, i64 0
  %732 = insertelement <2 x float> %731, float %727, i64 1
  %733 = insertelement <2 x float> poison, float %729, i64 0
  %734 = shufflevector <2 x float> %733, <2 x float> poison, <2 x i32> zeroinitializer
  %735 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %732, <2 x float> %734, <2 x float> zeroinitializer)
  br label %.prol.loopexit2673

.prol.loopexit2673:                               ; preds = %.prol.loopexit2673.unr-lcssa, %.lr.ph1799.us
  %.lcssa2655.unr = phi <2 x float> [ poison, %.lr.ph1799.us ], [ %735, %.prol.loopexit2673.unr-lcssa ]
  %.314261797.us.unr = phi i64 [ %.014421883, %.lr.ph1799.us ], [ %636, %.prol.loopexit2673.unr-lcssa ]
  %.unr2676 = phi <2 x float> [ zeroinitializer, %.lr.ph1799.us ], [ %735, %.prol.loopexit2673.unr-lcssa ]
  br i1 %714, label %._crit_edge1800.us, label %.lr.ph1799.us.new

.lr.ph1799.us.new:                                ; preds = %.prol.loopexit2673, %.lr.ph1799.us.new
  %.314261797.us = phi i64 [ %756, %.lr.ph1799.us.new ], [ %.314261797.us.unr, %.prol.loopexit2673 ]
  %736 = phi <2 x float> [ %755, %.lr.ph1799.us.new ], [ %.unr2676, %.prol.loopexit2673 ]
  %gep1802.us = getelementptr float, ptr %invariant.gep1801.us, i64 %.314261797.us
  %737 = load float, ptr %gep1802.us, align 4, !tbaa !9
  %738 = getelementptr float, ptr %722, i64 %.314261797.us
  %739 = load float, ptr %738, align 4, !tbaa !9
  %gep1804.us = getelementptr float, ptr %invariant.gep1803.us, i64 %.314261797.us
  %740 = load float, ptr %gep1804.us, align 4, !tbaa !9
  %741 = insertelement <2 x float> poison, float %740, i64 0
  %742 = insertelement <2 x float> %741, float %737, i64 1
  %743 = insertelement <2 x float> poison, float %739, i64 0
  %744 = shufflevector <2 x float> %743, <2 x float> poison, <2 x i32> zeroinitializer
  %745 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %742, <2 x float> %744, <2 x float> %736)
  %746 = add nuw nsw i64 %.314261797.us, 1
  %gep1802.us.1 = getelementptr float, ptr %invariant.gep1801.us, i64 %746
  %747 = load float, ptr %gep1802.us.1, align 4, !tbaa !9
  %748 = getelementptr float, ptr %722, i64 %746
  %749 = load float, ptr %748, align 4, !tbaa !9
  %gep1804.us.1 = getelementptr float, ptr %invariant.gep1803.us, i64 %746
  %750 = load float, ptr %gep1804.us.1, align 4, !tbaa !9
  %751 = insertelement <2 x float> poison, float %750, i64 0
  %752 = insertelement <2 x float> %751, float %747, i64 1
  %753 = insertelement <2 x float> poison, float %749, i64 0
  %754 = shufflevector <2 x float> %753, <2 x float> poison, <2 x i32> zeroinitializer
  %755 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %752, <2 x float> %754, <2 x float> %745)
  %756 = add nuw nsw i64 %.314261797.us, 2
  %exitcond2115.not.1 = icmp eq i64 %756, %.314521831
  br i1 %exitcond2115.not.1, label %._crit_edge1800.us, label %.lr.ph1799.us.new, !llvm.loop !22

._crit_edge1800.us:                               ; preds = %.lr.ph1799.us.new, %.prol.loopexit2673
  %.lcssa2655 = phi <2 x float> [ %.lcssa2655.unr, %.prol.loopexit2673 ], [ %755, %.lr.ph1799.us.new ]
  %757 = extractelement <2 x float> %.lcssa2655, i64 1
  store float %757, ptr %725, align 8, !tbaa !9
  %758 = extractelement <2 x float> %.lcssa2655, i64 0
  store float %758, ptr %726, align 8, !tbaa !9
  br i1 %.not1591, label %._crit_edge1812, label %.lr.ph1799.us.1, !llvm.loop !23

.lr.ph1799.us.1:                                  ; preds = %._crit_edge1800.us
  %759 = add i64 %719, -1
  %760 = getelementptr inbounds [4 x float], ptr %30, i64 0, i64 %759
  %761 = getelementptr inbounds [4 x float], ptr %29, i64 0, i64 %759
  br i1 %lcmp.mod2675.1.not, label %.prol.loopexit2673.1, label %.prol.loopexit2673.unr-lcssa.1

.prol.loopexit2673.unr-lcssa.1:                   ; preds = %.lr.ph1799.us.1
  %762 = load float, ptr %gep1802.us.prol.1, align 4, !tbaa !9
  %763 = getelementptr float, ptr %722, i64 %.014421883
  %764 = load float, ptr %763, align 4, !tbaa !9
  %765 = load float, ptr %gep1804.us.prol.1, align 4, !tbaa !9
  %766 = insertelement <2 x float> poison, float %765, i64 0
  %767 = insertelement <2 x float> %766, float %762, i64 1
  %768 = insertelement <2 x float> poison, float %764, i64 0
  %769 = shufflevector <2 x float> %768, <2 x float> poison, <2 x i32> zeroinitializer
  %770 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %767, <2 x float> %769, <2 x float> zeroinitializer)
  br label %.prol.loopexit2673.1

.prol.loopexit2673.1:                             ; preds = %.prol.loopexit2673.unr-lcssa.1, %.lr.ph1799.us.1
  %.lcssa2655.unr.1 = phi <2 x float> [ poison, %.lr.ph1799.us.1 ], [ %770, %.prol.loopexit2673.unr-lcssa.1 ]
  %.314261797.us.unr.1 = phi i64 [ %.014421883, %.lr.ph1799.us.1 ], [ %637, %.prol.loopexit2673.unr-lcssa.1 ]
  %.unr2676.1 = phi <2 x float> [ zeroinitializer, %.lr.ph1799.us.1 ], [ %770, %.prol.loopexit2673.unr-lcssa.1 ]
  br i1 %718, label %._crit_edge1800.us.1, label %.lr.ph1799.us.new.1

.lr.ph1799.us.new.1:                              ; preds = %.prol.loopexit2673.1, %.lr.ph1799.us.new.1
  %.314261797.us.1 = phi i64 [ %791, %.lr.ph1799.us.new.1 ], [ %.314261797.us.unr.1, %.prol.loopexit2673.1 ]
  %771 = phi <2 x float> [ %790, %.lr.ph1799.us.new.1 ], [ %.unr2676.1, %.prol.loopexit2673.1 ]
  %gep1802.us.12677 = getelementptr float, ptr %invariant.gep1801.us.1, i64 %.314261797.us.1
  %772 = load float, ptr %gep1802.us.12677, align 4, !tbaa !9
  %773 = getelementptr float, ptr %722, i64 %.314261797.us.1
  %774 = load float, ptr %773, align 4, !tbaa !9
  %gep1804.us.12678 = getelementptr float, ptr %invariant.gep1803.us.1, i64 %.314261797.us.1
  %775 = load float, ptr %gep1804.us.12678, align 4, !tbaa !9
  %776 = insertelement <2 x float> poison, float %775, i64 0
  %777 = insertelement <2 x float> %776, float %772, i64 1
  %778 = insertelement <2 x float> poison, float %774, i64 0
  %779 = shufflevector <2 x float> %778, <2 x float> poison, <2 x i32> zeroinitializer
  %780 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %777, <2 x float> %779, <2 x float> %771)
  %781 = add nuw nsw i64 %.314261797.us.1, 1
  %gep1802.us.1.1 = getelementptr float, ptr %invariant.gep1801.us.1, i64 %781
  %782 = load float, ptr %gep1802.us.1.1, align 4, !tbaa !9
  %783 = getelementptr float, ptr %722, i64 %781
  %784 = load float, ptr %783, align 4, !tbaa !9
  %gep1804.us.1.1 = getelementptr float, ptr %invariant.gep1803.us.1, i64 %781
  %785 = load float, ptr %gep1804.us.1.1, align 4, !tbaa !9
  %786 = insertelement <2 x float> poison, float %785, i64 0
  %787 = insertelement <2 x float> %786, float %782, i64 1
  %788 = insertelement <2 x float> poison, float %784, i64 0
  %789 = shufflevector <2 x float> %788, <2 x float> poison, <2 x i32> zeroinitializer
  %790 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %787, <2 x float> %789, <2 x float> %780)
  %791 = add nuw nsw i64 %.314261797.us.1, 2
  %exitcond2115.not.1.1 = icmp eq i64 %791, %.314521831
  br i1 %exitcond2115.not.1.1, label %._crit_edge1800.us.1, label %.lr.ph1799.us.new.1, !llvm.loop !22

._crit_edge1800.us.1:                             ; preds = %.lr.ph1799.us.new.1, %.prol.loopexit2673.1
  %.lcssa2655.1 = phi <2 x float> [ %.lcssa2655.unr.1, %.prol.loopexit2673.1 ], [ %790, %.lr.ph1799.us.new.1 ]
  %792 = extractelement <2 x float> %.lcssa2655.1, i64 1
  store float %792, ptr %760, align 4, !tbaa !9
  %793 = extractelement <2 x float> %.lcssa2655.1, i64 0
  store float %793, ptr %761, align 4, !tbaa !9
  br label %._crit_edge1812

._crit_edge1812:                                  ; preds = %._crit_edge1800.us, %._crit_edge1800.us.1, %.lr.ph1811.split.preheader
  %indvar.next = add nuw nsw i64 %indvar, 1
  %exitcond2119.not = icmp eq i64 %indvar.next, %.pre2163
  br i1 %exitcond2119.not, label %.lr.ph1821, label %.lr.ph1811, !llvm.loop !24

.lr.ph1821:                                       ; preds = %._crit_edge1812, %710
  store i64 %660, ptr %21, align 8, !tbaa !5
  %794 = load float, ptr %33, align 4
  %795 = fneg float %794
  %796 = load float, ptr %37, align 4
  %797 = load float, ptr %36, align 4
  %798 = fneg float %797
  br i1 %.not1563164216571658, label %.lr.ph1821.split.us, label %.lr.ph1821.split

.lr.ph1821.split.us:                              ; preds = %.lr.ph1821
  %799 = load float, ptr %30, align 16, !tbaa !9
  %800 = load float, ptr %29, align 16, !tbaa !9
  %801 = fmul float %796, %800
  %802 = call float @llvm.fmuladd.f32(float %795, float %799, float %801)
  store float %802, ptr %26, align 16, !tbaa !9
  br i1 %.not1591, label %._crit_edge1822, label %.lr.ph1821.split.us.1, !llvm.loop !25

.lr.ph1821.split.us.1:                            ; preds = %.lr.ph1821.split.us
  %803 = load float, ptr %295, align 4, !tbaa !9
  %804 = load float, ptr %296, align 4, !tbaa !9
  %805 = fmul float %796, %804
  %806 = call float @llvm.fmuladd.f32(float %795, float %803, float %805)
  store float %806, ptr %297, align 4, !tbaa !9
  br label %._crit_edge1822

.lr.ph1821.split:                                 ; preds = %.lr.ph1821
  %807 = load float, ptr %30, align 16, !tbaa !9
  %808 = load float, ptr %29, align 16, !tbaa !9
  %809 = fmul float %796, %808
  %810 = call float @llvm.fmuladd.f32(float %795, float %807, float %809)
  %811 = load float, ptr %286, align 8, !tbaa !9
  %812 = call float @llvm.fmuladd.f32(float %798, float %811, float %810)
  store float %812, ptr %26, align 16, !tbaa !9
  %813 = load float, ptr %287, align 8, !tbaa !9
  %814 = fmul float %796, %811
  %815 = call float @llvm.fmuladd.f32(float %795, float %813, float %814)
  %816 = call float @llvm.fmuladd.f32(float %797, float %808, float %815)
  store float %816, ptr %288, align 8, !tbaa !9
  br i1 %.not1591, label %._crit_edge1822, label %.lr.ph1821.split.1, !llvm.loop !25

.lr.ph1821.split.1:                               ; preds = %.lr.ph1821.split
  %817 = load float, ptr %289, align 4, !tbaa !9
  %818 = load float, ptr %290, align 4, !tbaa !9
  %819 = fmul float %796, %818
  %820 = call float @llvm.fmuladd.f32(float %795, float %817, float %819)
  %821 = load float, ptr %291, align 4, !tbaa !9
  %822 = call float @llvm.fmuladd.f32(float %798, float %821, float %820)
  store float %822, ptr %292, align 4, !tbaa !9
  %823 = load float, ptr %293, align 4, !tbaa !9
  %824 = fmul float %796, %821
  %825 = call float @llvm.fmuladd.f32(float %795, float %823, float %824)
  %826 = call float @llvm.fmuladd.f32(float %797, float %818, float %825)
  store float %826, ptr %294, align 4, !tbaa !9
  br label %._crit_edge1822

._crit_edge1822:                                  ; preds = %.lr.ph1821.split, %.lr.ph1821.split.1, %.lr.ph1821.split.us, %.lr.ph1821.split.us.1
  %827 = mul i64 %.314521831, %273
  %828 = getelementptr inbounds float, ptr %42, i64 %827
  %.idx1595 = shl i64 %646, 3
  %829 = getelementptr i8, ptr %52, i64 %.idx1595
  %830 = getelementptr float, ptr %829, i64 %.314521831
  %831 = call i32 @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull %33, ptr noundef nonnull %828, ptr noundef nonnull %5, ptr noundef nonnull %32, ptr noundef nonnull %277, ptr noundef nonnull %26, ptr noundef nonnull @c__2, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef %830, ptr noundef nonnull %3, ptr noundef nonnull %34, ptr noundef nonnull %28, ptr noundef nonnull %35) #7
  %832 = load float, ptr %34, align 4, !tbaa !9
  %833 = fcmp olt float %832, 1.000000e+00
  br i1 %833, label %834, label %853

834:                                              ; preds = %._crit_edge1822
  %835 = load i64, ptr %24, align 8, !tbaa !5
  %836 = add nsw i64 %835, -1
  store i64 %836, ptr %21, align 8, !tbaa !5
  %.not1596.not1827 = icmp sgt i64 %835, 0
  %.not1597.not1823 = icmp slt i64 %.014421883, %.314521831
  %or.cond2258 = select i1 %.not1596.not1827, i1 %.not1597.not1823, i1 false
  br i1 %or.cond2258, label %.preheader1714.lr.ph.split.us, label %._crit_edge1829

.preheader1714.lr.ph.split.us:                    ; preds = %834
  %837 = load i64, ptr %3, align 8, !tbaa !5
  %min.iters.check2302 = icmp ult i64 %641, 8
  %n.vec2305 = and i64 %641, -8
  %ind.end2306 = add i64 %.014421883, %n.vec2305
  %broadcast.splatinsert2313 = insertelement <4 x float> poison, float %832, i64 0
  %broadcast.splat2314 = shufflevector <4 x float> %broadcast.splatinsert2313, <4 x float> poison, <4 x i32> zeroinitializer
  %cmp.n2316 = icmp eq i64 %641, %n.vec2305
  br label %.preheader1714.us

.preheader1714.us:                                ; preds = %._crit_edge1826.us, %.preheader1714.lr.ph.split.us
  %.214121828.us = phi i64 [ 0, %.preheader1714.lr.ph.split.us ], [ %851, %._crit_edge1826.us ]
  %838 = add nuw nsw i64 %.214121828.us, 2
  %839 = mul nsw i64 %837, %838
  %840 = getelementptr float, ptr %52, i64 %839
  br i1 %min.iters.check2302, label %scalar.ph2301.preheader, label %vector.ph2303

vector.ph2303:                                    ; preds = %.preheader1714.us
  %841 = getelementptr float, ptr %840, i64 %.014421883
  br label %vector.body2308

vector.body2308:                                  ; preds = %vector.body2308, %vector.ph2303
  %index2309 = phi i64 [ 0, %vector.ph2303 ], [ %index.next2315, %vector.body2308 ]
  %842 = getelementptr float, ptr %841, i64 %index2309
  %843 = getelementptr i8, ptr %842, i64 16
  %wide.load2311 = load <4 x float>, ptr %842, align 4, !tbaa !9
  %wide.load2312 = load <4 x float>, ptr %843, align 4, !tbaa !9
  %844 = fmul <4 x float> %broadcast.splat2314, %wide.load2311
  %845 = fmul <4 x float> %broadcast.splat2314, %wide.load2312
  store <4 x float> %844, ptr %842, align 4, !tbaa !9
  store <4 x float> %845, ptr %843, align 4, !tbaa !9
  %index.next2315 = add nuw i64 %index2309, 8
  %846 = icmp eq i64 %index.next2315, %n.vec2305
  br i1 %846, label %middle.block2300, label %vector.body2308, !llvm.loop !26

middle.block2300:                                 ; preds = %vector.body2308
  br i1 %cmp.n2316, label %._crit_edge1826.us, label %scalar.ph2301.preheader

scalar.ph2301.preheader:                          ; preds = %middle.block2300, %.preheader1714.us
  %.414271824.us.ph = phi i64 [ %.014421883, %.preheader1714.us ], [ %ind.end2306, %middle.block2300 ]
  br label %scalar.ph2301

scalar.ph2301:                                    ; preds = %scalar.ph2301.preheader, %scalar.ph2301
  %.414271824.us = phi i64 [ %850, %scalar.ph2301 ], [ %.414271824.us.ph, %scalar.ph2301.preheader ]
  %847 = getelementptr float, ptr %840, i64 %.414271824.us
  %848 = load float, ptr %847, align 4, !tbaa !9
  %849 = fmul float %832, %848
  store float %849, ptr %847, align 4, !tbaa !9
  %850 = add nuw nsw i64 %.414271824.us, 1
  %exitcond2122.not = icmp eq i64 %850, %.314521831
  br i1 %exitcond2122.not, label %._crit_edge1826.us, label %scalar.ph2301, !llvm.loop !27

._crit_edge1826.us:                               ; preds = %scalar.ph2301, %middle.block2300
  %851 = add nuw nsw i64 %.214121828.us, 1
  %exitcond2123.not = icmp eq i64 %851, %835
  br i1 %exitcond2123.not, label %._crit_edge1829, label %.preheader1714.us, !llvm.loop !28

._crit_edge1829:                                  ; preds = %._crit_edge1826.us, %834
  %852 = fmul float %.21396, %832
  br label %853

853:                                              ; preds = %._crit_edge1829, %._crit_edge1822
  %.31397 = phi float [ %852, %._crit_edge1829 ], [ %.21396, %._crit_edge1822 ]
  %854 = load float, ptr %28, align 4
  %855 = fcmp oge float %.31397, %854
  %856 = select i1 %855, float %.31397, float %854
  br label %857

857:                                              ; preds = %.lr.ph1838, %853
  %.41398 = phi float [ %856, %853 ], [ %.113951835, %.lr.ph1838 ]
  %.21389 = phi i64 [ %.11388, %853 ], [ 0, %.lr.ph1838 ]
  %858 = add nsw i64 %.314521831, 1
  %.not1581.not = icmp slt i64 %.314521831, %621
  %indvar.next2299 = add i64 %indvar2298, 1
  br i1 %.not1581.not, label %.lr.ph1838, label %._crit_edge1839, !llvm.loop !29

._crit_edge1839:                                  ; preds = %857, %619
  %859 = add nsw i64 %.014051889, 1
  br i1 %.not1529, label %874, label %860

860:                                              ; preds = %._crit_edge1839
  %861 = load i64, ptr %24, align 8, !tbaa !5
  %invariant.gep1842 = getelementptr float, ptr %52, i64 %.014421883
  %.not1584.not1844 = icmp sgt i64 %861, 0
  %862 = mul nsw i64 %.014421883, %46
  br i1 %.not1584.not1844, label %.lr.ph1847, label %._crit_edge1848

.lr.ph1847:                                       ; preds = %860
  %gep1841 = getelementptr float, ptr %invariant.gep1878, i64 %862
  br label %863

863:                                              ; preds = %.lr.ph1847, %863
  %.314131845 = phi i64 [ 0, %.lr.ph1847 ], [ %872, %863 ]
  %864 = load i64, ptr %3, align 8, !tbaa !5
  %reass.sub = sub i64 %864, %.014421883
  %865 = add i64 %reass.sub, 1
  store i64 %865, ptr %21, align 8, !tbaa !5
  %866 = add nuw nsw i64 %.314131845, 2
  %867 = mul nsw i64 %864, %866
  %gep1843 = getelementptr float, ptr %invariant.gep1842, i64 %867
  %868 = add nuw nsw i64 %.314131845, 4
  %869 = mul nsw i64 %864, %868
  %870 = getelementptr float, ptr %14, i64 %869
  %871 = call i32 @f2c_sgemv(ptr noundef nonnull @.str.9, ptr noundef nonnull %3, ptr noundef nonnull %21, ptr noundef nonnull @c_b34, ptr noundef %gep1841, ptr noundef nonnull %9, ptr noundef %gep1843, ptr noundef nonnull @c__1, ptr noundef nonnull @c_b36, ptr noundef %870, ptr noundef nonnull @c__1) #7
  %872 = add nuw nsw i64 %.314131845, 1
  %exitcond2124.not = icmp eq i64 %872, %861
  br i1 %exitcond2124.not, label %._crit_edge1848, label %863, !llvm.loop !30

._crit_edge1848:                                  ; preds = %863, %860
  %873 = load i64, ptr %3, align 8, !tbaa !5
  %.idx1585 = shl i64 %873, 4
  br label %877

874:                                              ; preds = %._crit_edge1839
  %875 = load i64, ptr %3, align 8, !tbaa !5
  %.idx1583 = shl i64 %875, 3
  %876 = mul nsw i64 %859, %46
  br label %877

877:                                              ; preds = %874, %._crit_edge1848
  %.sink2260 = phi i64 [ %876, %874 ], [ %862, %._crit_edge1848 ]
  %.idx1583.pn = phi i64 [ %.idx1583, %874 ], [ %.idx1585, %._crit_edge1848 ]
  %.01409 = phi i64 [ %.014421883, %874 ], [ 1, %._crit_edge1848 ]
  %.sink2259 = getelementptr i8, ptr %14, i64 %.idx1583.pn
  %gep1881 = getelementptr float, ptr %invariant.gep1878, i64 %.sink2260
  %878 = call i32 @slacpy_(ptr noundef nonnull @.str.10, ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %.sink2259, ptr noundef nonnull %3, ptr noundef %gep1881, ptr noundef nonnull %9) #7
  %879 = load i64, ptr %3, align 8, !tbaa !5
  %.not15861856 = icmp sgt i64 %.01409, %879
  br i1 %.not1563164216571658, label %900, label %880

880:                                              ; preds = %877
  br i1 %.not15861856, label %.loopexit1717, label %.lr.ph1853

.lr.ph1853:                                       ; preds = %880
  %881 = mul nsw i64 %859, %46
  %882 = add nsw i64 %.014051889, 2
  %883 = mul nsw i64 %882, %46
  br label %884

884:                                              ; preds = %.lr.ph1853, %884
  %.513991851 = phi float [ 0.000000e+00, %.lr.ph1853 ], [ %898, %884 ]
  %.414531850 = phi i64 [ %.01409, %.lr.ph1853 ], [ %899, %884 ]
  %885 = getelementptr float, ptr %48, i64 %.414531850
  %886 = getelementptr float, ptr %885, i64 %881
  %887 = load float, ptr %886, align 4, !tbaa !9
  %888 = fcmp oge float %887, 0.000000e+00
  %889 = fneg float %887
  %890 = select i1 %888, float %887, float %889
  %891 = getelementptr float, ptr %885, i64 %883
  %892 = load float, ptr %891, align 4, !tbaa !9
  %893 = fcmp oge float %892, 0.000000e+00
  %894 = fneg float %892
  %895 = select i1 %893, float %892, float %894
  %896 = fadd float %890, %895
  %897 = fcmp oge float %.513991851, %896
  %898 = select i1 %897, float %.513991851, float %896
  %899 = add nuw i64 %.414531850, 1
  %exitcond2125.not = icmp eq i64 %.414531850, %879
  br i1 %exitcond2125.not, label %..loopexit1718_crit_edge, label %884, !llvm.loop !31

900:                                              ; preds = %877
  br i1 %.not15861856, label %.loopexit1717, label %.lr.ph1860

.lr.ph1860:                                       ; preds = %900
  %901 = mul nsw i64 %859, %46
  %invariant.gep1862 = getelementptr float, ptr %48, i64 %901
  %902 = add i64 %879, %.01409
  %903 = and i64 %902, 1
  %lcmp.mod2682.not.not = icmp eq i64 %903, 0
  br i1 %lcmp.mod2682.not.not, label %.prol.loopexit2680.unr-lcssa, label %.prol.loopexit2680

.prol.loopexit2680.unr-lcssa:                     ; preds = %.lr.ph1860
  %gep1863.prol = getelementptr float, ptr %invariant.gep1862, i64 %.01409
  %904 = load float, ptr %gep1863.prol, align 4, !tbaa !9
  %905 = fcmp oge float %904, 0.000000e+00
  %906 = fneg float %904
  %907 = select i1 %905, float %904, float %906
  %908 = fcmp ole float %907, 0.000000e+00
  %909 = select i1 %908, float 0.000000e+00, float %907
  %910 = add nuw i64 %.01409, 1
  br label %.prol.loopexit2680

.prol.loopexit2680:                               ; preds = %.prol.loopexit2680.unr-lcssa, %.lr.ph1860
  %.lcssa2659.unr = phi float [ poison, %.lr.ph1860 ], [ %904, %.prol.loopexit2680.unr-lcssa ]
  %.lcssa2658.unr = phi float [ poison, %.lr.ph1860 ], [ %909, %.prol.loopexit2680.unr-lcssa ]
  %.614001858.unr = phi float [ 0.000000e+00, %.lr.ph1860 ], [ %909, %.prol.loopexit2680.unr-lcssa ]
  %.514541857.unr = phi i64 [ %.01409, %.lr.ph1860 ], [ %910, %.prol.loopexit2680.unr-lcssa ]
  %911 = icmp eq i64 %879, %.01409
  br i1 %911, label %..loopexit1717_crit_edge, label %.lr.ph1860.new

.lr.ph1860.new:                                   ; preds = %.prol.loopexit2680, %.lr.ph1860.new
  %.614001858 = phi float [ %924, %.lr.ph1860.new ], [ %.614001858.unr, %.prol.loopexit2680 ]
  %.514541857 = phi i64 [ %925, %.lr.ph1860.new ], [ %.514541857.unr, %.prol.loopexit2680 ]
  %gep1863 = getelementptr float, ptr %invariant.gep1862, i64 %.514541857
  %912 = load float, ptr %gep1863, align 4, !tbaa !9
  %913 = fcmp oge float %912, 0.000000e+00
  %914 = fneg float %912
  %915 = select i1 %913, float %912, float %914
  %916 = fcmp oge float %.614001858, %915
  %917 = select i1 %916, float %.614001858, float %915
  %918 = add nuw i64 %.514541857, 1
  %gep1863.1 = getelementptr float, ptr %invariant.gep1862, i64 %918
  %919 = load float, ptr %gep1863.1, align 4, !tbaa !9
  %920 = fcmp oge float %919, 0.000000e+00
  %921 = fneg float %919
  %922 = select i1 %920, float %919, float %921
  %923 = fcmp oge float %917, %922
  %924 = select i1 %923, float %917, float %922
  %925 = add nuw i64 %.514541857, 2
  %exitcond2126.not.1 = icmp eq i64 %918, %879
  br i1 %exitcond2126.not.1, label %..loopexit1717_crit_edge, label %.lr.ph1860.new, !llvm.loop !32

..loopexit1717_crit_edge:                         ; preds = %.lr.ph1860.new, %.prol.loopexit2680
  %.lcssa2659 = phi float [ %.lcssa2659.unr, %.prol.loopexit2680 ], [ %919, %.lr.ph1860.new ]
  %.lcssa2658 = phi float [ %.lcssa2658.unr, %.prol.loopexit2680 ], [ %924, %.lr.ph1860.new ]
  store float %.lcssa2659, ptr %22, align 4, !tbaa !9
  br label %.loopexit1717

..loopexit1718_crit_edge:                         ; preds = %884
  store float %887, ptr %22, align 4, !tbaa !9
  br label %.loopexit1717

.loopexit1717:                                    ; preds = %880, %..loopexit1718_crit_edge, %900, %..loopexit1717_crit_edge
  %.71401 = phi float [ %.lcssa2658, %..loopexit1717_crit_edge ], [ 0.000000e+00, %900 ], [ %898, %..loopexit1718_crit_edge ], [ 0.000000e+00, %880 ]
  %926 = load float, ptr %38, align 4
  %927 = fcmp ogt float %.71401, %926
  %.pre2164 = load i64, ptr %24, align 8, !tbaa !5
  br i1 %927, label %928, label %.loopexit1716

928:                                              ; preds = %.loopexit1717
  %929 = fdiv float 1.000000e+00, %.71401
  %.not1588.not1872 = icmp sgt i64 %.pre2164, 0
  br i1 %.not1588.not1872, label %.lr.ph1875, label %.loopexit1716

.lr.ph1875:                                       ; preds = %928
  %.not15891865 = icmp sgt i64 %.01409, %879
  br i1 %.not15891865, label %..loopexit1716_crit_edge, label %.lr.ph1868.preheader

.lr.ph1868.preheader:                             ; preds = %.lr.ph1875
  %930 = add i64 %879, 1
  %931 = sub i64 %930, %.01409
  %min.iters.check = icmp ult i64 %931, 8
  %n.vec = and i64 %931, -8
  %ind.end = add i64 %.01409, %n.vec
  %broadcast.splatinsert = insertelement <4 x float> poison, float %929, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %cmp.n = icmp eq i64 %931, %n.vec
  br label %.lr.ph1868

.lr.ph1868:                                       ; preds = %.lr.ph1868.preheader, %._crit_edge1869
  %.414141873 = phi i64 [ %943, %._crit_edge1869 ], [ 0, %.lr.ph1868.preheader ]
  %932 = add nsw i64 %.414141873, %859
  %933 = mul nsw i64 %932, %46
  %invariant.gep1870 = getelementptr float, ptr %48, i64 %933
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph1868
  %934 = getelementptr float, ptr %invariant.gep1870, i64 %.01409
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %935 = getelementptr float, ptr %934, i64 %index
  %936 = getelementptr i8, ptr %935, i64 16
  %wide.load = load <4 x float>, ptr %935, align 4, !tbaa !9
  %wide.load2297 = load <4 x float>, ptr %936, align 4, !tbaa !9
  %937 = fmul <4 x float> %broadcast.splat, %wide.load
  %938 = fmul <4 x float> %broadcast.splat, %wide.load2297
  store <4 x float> %937, ptr %935, align 4, !tbaa !9
  store <4 x float> %938, ptr %936, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %939 = icmp eq i64 %index.next, %n.vec
  br i1 %939, label %middle.block, label %vector.body, !llvm.loop !33

middle.block:                                     ; preds = %vector.body
  br i1 %cmp.n, label %._crit_edge1869, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph1868
  %.514281866.ph = phi i64 [ %.01409, %.lr.ph1868 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.514281866 = phi i64 [ %942, %scalar.ph ], [ %.514281866.ph, %scalar.ph.preheader ]
  %gep1871 = getelementptr float, ptr %invariant.gep1870, i64 %.514281866
  %940 = load float, ptr %gep1871, align 4, !tbaa !9
  %941 = fmul float %929, %940
  store float %941, ptr %gep1871, align 4, !tbaa !9
  %942 = add nuw i64 %.514281866, 1
  %exitcond2127.not = icmp eq i64 %.514281866, %879
  br i1 %exitcond2127.not, label %._crit_edge1869, label %scalar.ph, !llvm.loop !34

._crit_edge1869:                                  ; preds = %scalar.ph, %middle.block
  %943 = add nuw nsw i64 %.414141873, 1
  %exitcond2128.not = icmp eq i64 %943, %.pre2164
  br i1 %exitcond2128.not, label %..loopexit1716_crit_edge, label %.lr.ph1868, !llvm.loop !35

..loopexit1716_crit_edge:                         ; preds = %._crit_edge1869, %.lr.ph1875
  store i64 %879, ptr %21, align 8, !tbaa !5
  br label %.loopexit1716

.loopexit1716:                                    ; preds = %928, %..loopexit1716_crit_edge, %.loopexit1717
  %944 = add i64 %.pre2164, %.014051889
  %.pre2165 = load i64, ptr %20, align 8, !tbaa !5
  br label %945

945:                                              ; preds = %.thread2193, %298, %._crit_edge1782, %.loopexit1716, %313
  %946 = phi i64 [ %.pre2165, %.loopexit1716 ], [ %299, %._crit_edge1782 ], [ %299, %313 ], [ %299, %298 ], [ %299, %.thread2193 ]
  %947 = phi float [ %926, %.loopexit1716 ], [ %300, %._crit_edge1782 ], [ %300, %313 ], [ %300, %298 ], [ %300, %.thread2193 ]
  %948 = phi i64 [ %879, %.loopexit1716 ], [ %301, %._crit_edge1782 ], [ %301, %313 ], [ %301, %298 ], [ %301, %.thread2193 ]
  %.11406 = phi i64 [ %944, %.loopexit1716 ], [ %334, %._crit_edge1782 ], [ %.014051889, %313 ], [ %.014051889, %298 ], [ %.014051889, %.thread2193 ]
  %.5 = phi i64 [ %.4164316561660, %.loopexit1716 ], [ 0, %._crit_edge1782 ], [ 0, %313 ], [ 0, %298 ], [ 1, %.thread2193 ]
  %949 = add nuw nsw i64 %.014421883, 1
  %.not1507.not = icmp slt i64 %.014421883, %946
  br i1 %.not1507.not, label %298, label %.loopexit1719, !llvm.loop !36

.loopexit1719:                                    ; preds = %945, %272, %265
  %950 = phi float [ %155, %272 ], [ %155, %265 ], [ %947, %945 ]
  %951 = phi i64 [ %156, %272 ], [ %156, %265 ], [ %948, %945 ]
  %952 = icmp slt i64 %951, 1
  %or.cond2261.not = select i1 %.not15031620, i1 true, i1 %952
  br i1 %or.cond2261.not, label %.loopexit1713, label %.lr.ph2070

.lr.ph2070:                                       ; preds = %.loopexit1719
  %953 = add nsw i64 %.21441218121862192, 1
  %954 = add i64 %40, 1
  %955 = add i64 %43, 1
  %956 = add i64 %49, 1
  %957 = fpext float %159 to double
  %958 = getelementptr inbounds i8, ptr %32, i64 4
  %invariant.gep1991 = getelementptr i8, ptr %10, i64 -4
  %959 = shl i64 %951, 2
  %960 = add i64 %959, -4
  %961 = shl i64 %49, 2
  %962 = mul i64 %40, -4
  %963 = shl i64 %40, 2
  %964 = sub nuw nsw i64 -4, %963
  %965 = shl i64 %40, 2
  %966 = mul i64 %43, -4
  %967 = shl i64 %43, 2
  %968 = sub nuw nsw i64 -4, %967
  %969 = shl i64 %43, 2
  %970 = shl i64 %951, 2
  %971 = add i64 %970, -4
  %972 = mul i64 %40, -4
  %973 = shl i64 %40, 2
  %974 = sub nuw nsw i64 -4, %973
  %975 = shl i64 %40, 2
  %976 = mul i64 %43, -4
  %977 = shl i64 %43, 2
  %978 = sub nuw nsw i64 -4, %977
  %979 = shl i64 %43, 2
  %980 = shl i64 %951, 2
  %981 = add i64 %980, -4
  %982 = mul i64 %43, %981
  %983 = add i64 %982, %18
  %984 = sub i64 %19, %983
  %985 = shl i64 %43, 2
  %986 = mul i64 %40, %981
  %987 = add i64 %986, %17
  %988 = sub i64 %19, %987
  %989 = shl i64 %40, 2
  %990 = shl i64 %951, 2
  %991 = add i64 %990, -8
  %992 = mul i64 %40, %991
  %993 = mul i64 %40, -4
  %994 = shl i64 %40, 2
  %995 = sub nuw nsw i64 -4, %994
  %996 = mul i64 %43, %991
  %997 = mul i64 %43, -4
  %998 = shl i64 %43, 2
  %999 = sub nuw nsw i64 -4, %998
  %1000 = add i64 %990, -4
  %1001 = mul i64 %40, %1000
  %1002 = mul i64 %43, %1000
  %1003 = add nsw i64 %951, -2
  %1004 = insertelement <2 x float> poison, float %154, i64 0
  %1005 = shufflevector <2 x float> %1004, <2 x float> poison, <2 x i32> zeroinitializer
  %1006 = shufflevector <2 x float> %271, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  %1007 = extractelement <2 x float> %266, i64 0
  %1008 = extractelement <2 x float> %266, i64 1
  %1009 = extractelement <2 x float> %271, i64 0
  %1010 = extractelement <2 x float> %271, i64 1
  %1011 = getelementptr i8, ptr %4, i64 %992
  %1012 = getelementptr i8, ptr %4, i64 %992
  %1013 = getelementptr i8, ptr %1012, i64 %990
  %1014 = getelementptr i8, ptr %1013, i64 -8
  %1015 = getelementptr i8, ptr %6, i64 %996
  %1016 = getelementptr i8, ptr %6, i64 %996
  %1017 = getelementptr i8, ptr %1016, i64 %990
  %1018 = getelementptr i8, ptr %1017, i64 -8
  %1019 = getelementptr i8, ptr %4, i64 %1001
  %1020 = getelementptr i8, ptr %4, i64 %1001
  %1021 = getelementptr i8, ptr %1020, i64 %990
  %1022 = getelementptr i8, ptr %1021, i64 -8
  %1023 = getelementptr i8, ptr %6, i64 %1002
  %1024 = getelementptr i8, ptr %6, i64 %1002
  %1025 = getelementptr i8, ptr %1024, i64 %990
  %1026 = getelementptr i8, ptr %1025, i64 -8
  %stride.check2455 = icmp slt i64 %973, 0
  %stride.check2460 = icmp slt i64 %977, 0
  %stride.check2409 = icmp slt i64 %963, 0
  %stride.check2413 = icmp slt i64 %967, 0
  br label %1027

1027:                                             ; preds = %.lr.ph2070, %.loopexit1707
  %1028 = phi float [ %950, %.lr.ph2070 ], [ %1929, %.loopexit1707 ]
  %indvar2133 = phi i64 [ 0, %.lr.ph2070 ], [ %indvar.next2134, %.loopexit1707 ]
  %.62068 = phi i64 [ 0, %.lr.ph2070 ], [ %.8, %.loopexit1707 ]
  %.214072067 = phi i64 [ %953, %.lr.ph2070 ], [ %.31408, %.loopexit1707 ]
  %.114432064 = phi i64 [ %951, %.lr.ph2070 ], [ %1930, %.loopexit1707 ]
  %1029 = sub i64 %1003, %indvar2133
  %1030 = shl i64 %indvar2133, 2
  %1031 = sub i64 %991, %1030
  %scevgep2560 = getelementptr i8, ptr %14, i64 %1031
  %1032 = mul i64 %993, %indvar2133
  %scevgep2564 = getelementptr i8, ptr %1011, i64 %1032
  %1033 = mul i64 %995, %indvar2133
  %scevgep2565 = getelementptr i8, ptr %1014, i64 %1033
  %1034 = mul i64 %997, %indvar2133
  %scevgep2566 = getelementptr i8, ptr %1015, i64 %1034
  %1035 = mul i64 %999, %indvar2133
  %scevgep2567 = getelementptr i8, ptr %1018, i64 %1035
  %scevgep2568 = getelementptr i8, ptr %1019, i64 %1032
  %scevgep2569 = getelementptr i8, ptr %1022, i64 %1033
  %scevgep2570 = getelementptr i8, ptr %1023, i64 %1034
  %scevgep2571 = getelementptr i8, ptr %1026, i64 %1035
  %1036 = xor i64 %indvar2133, -1
  %1037 = add nsw i64 %951, %1036
  %1038 = mul i64 %985, %indvar2133
  %1039 = add i64 %984, %1038
  %1040 = mul i64 %989, %indvar2133
  %1041 = add i64 %988, %1040
  %smax2516 = call i64 @llvm.smax.i64(i64 %.114432064, i64 1)
  %smax = call i64 @llvm.smax.i64(i64 %.114432064, i64 1)
  %1042 = xor i64 %indvar2133, -1
  %1043 = add nsw i64 %951, %1042
  %1044 = shl i64 %indvar2133, 2
  %1045 = sub i64 %971, %1044
  %1046 = xor i64 %indvar2133, -1
  %1047 = add nsw i64 %951, %1046
  %1048 = shl i64 %indvar2133, 2
  %1049 = sub i64 %960, %1048
  %.not1509 = icmp eq i64 %.62068, 0
  br i1 %.not1509, label %1050, label %.loopexit1707

1050:                                             ; preds = %1027
  store i64 1, ptr %24, align 8, !tbaa !5
  %.not1510 = icmp eq i64 %.114432064, 1
  br i1 %.not1510, label %1058, label %1051

1051:                                             ; preds = %1050
  %1052 = add nsw i64 %.114432064, -1
  %1053 = mul nsw i64 %1052, %40
  %1054 = getelementptr float, ptr %42, i64 %.114432064
  %1055 = getelementptr float, ptr %1054, i64 %1053
  %1056 = load float, ptr %1055, align 4, !tbaa !9
  %1057 = fcmp une float %1056, 0.000000e+00
  br i1 %1057, label %.thread1666, label %1058

1058:                                             ; preds = %1051, %1050
  br i1 %.not1492, label %1062, label %.thread1679.thread

.thread1666:                                      ; preds = %1051
  store i64 2, ptr %24, align 8, !tbaa !5
  br i1 %.not1492, label %1059, label %.lr.ph1909

1059:                                             ; preds = %.thread1666
  %1060 = getelementptr inbounds i64, ptr %39, i64 %.114432064
  %1061 = load i64, ptr %1060, align 8, !tbaa !5
  %.not1512 = icmp eq i64 %1061, 0
  br i1 %.not1512, label %.thread2205, label %.lr.ph1909

1062:                                             ; preds = %1058
  %1063 = getelementptr inbounds i64, ptr %39, i64 %.114432064
  %1064 = load i64, ptr %1063, align 8, !tbaa !5
  %.not1513 = icmp eq i64 %1064, 0
  br i1 %.not1513, label %.loopexit1707, label %.thread1679.thread

.thread2205:                                      ; preds = %1059
  %1065 = getelementptr i8, ptr %1060, i64 -8
  %1066 = load i64, ptr %1065, align 8, !tbaa !5
  %.not2271 = icmp eq i64 %1066, 0
  br i1 %.not2271, label %.loopexit1707, label %.lr.ph1909

.thread1679.thread:                               ; preds = %1062, %1058
  %1067 = mul i64 %.114432064, %954
  %1068 = getelementptr inbounds float, ptr %42, i64 %1067
  %1069 = load float, ptr %1068, align 4, !tbaa !9
  %1070 = fcmp oge float %1069, 0.000000e+00
  %1071 = fneg float %1069
  %1072 = select i1 %1070, float %1069, float %1071
  %1073 = fcmp ugt float %1072, %1028
  br i1 %1073, label %.lr.ph1909, label %1074

1074:                                             ; preds = %.thread1679.thread
  %1075 = mul i64 %.114432064, %955
  %1076 = getelementptr inbounds float, ptr %45, i64 %1075
  %1077 = load float, ptr %1076, align 4, !tbaa !9
  %1078 = fcmp oge float %1077, 0.000000e+00
  %1079 = fneg float %1077
  %1080 = select i1 %1078, float %1077, float %1079
  %1081 = fcmp ugt float %1080, %1028
  br i1 %1081, label %.lr.ph1909, label %1082

1082:                                             ; preds = %1074
  %1083 = add nsw i64 %.214072067, -1
  %1084 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %1084, ptr %20, align 8, !tbaa !5
  %.not15151895 = icmp slt i64 %1084, 1
  br i1 %.not15151895, label %._crit_edge1899, label %.lr.ph1898

.lr.ph1898:                                       ; preds = %1082
  %1085 = shl i64 %.214072067, 2
  %1086 = add i64 %1085, -8
  %1087 = mul i64 %49, %1086
  %scevgep2129 = getelementptr i8, ptr %10, i64 %1087
  %1088 = shl nuw i64 %1084, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep2129, i8 0, i64 %1088, i1 false), !tbaa !9
  br label %._crit_edge1899

._crit_edge1899:                                  ; preds = %.lr.ph1898, %1082
  %1089 = mul i64 %1083, %956
  %1090 = getelementptr inbounds float, ptr %51, i64 %1089
  store float 1.000000e+00, ptr %1090, align 4, !tbaa !9
  br label %.loopexit1707

.lr.ph1909:                                       ; preds = %1059, %.thread2205, %1074, %.thread1679.thread, %.thread1666
  %1091 = phi i64 [ 1, %.thread1679.thread ], [ 1, %1074 ], [ 2, %.thread1666 ], [ 2, %.thread2205 ], [ 2, %1059 ]
  %.7167116841688 = phi i64 [ 0, %.thread1679.thread ], [ 0, %1074 ], [ 1, %.thread1666 ], [ 1, %.thread2205 ], [ 1, %1059 ]
  %.not1511167016851686 = phi i1 [ true, %.thread1679.thread ], [ true, %1074 ], [ false, %.thread1666 ], [ false, %.thread2205 ], [ false, %1059 ]
  %1092 = add nsw i64 %1091, -1
  store i64 %1092, ptr %20, align 8, !tbaa !5
  %1093 = load i64, ptr %3, align 8, !tbaa !5
  %.not15611902 = icmp slt i64 %1093, 1
  br i1 %.not15611902, label %._crit_edge1910, label %.lr.ph1905.preheader

.lr.ph1905.preheader:                             ; preds = %.lr.ph1909
  %1094 = shl i64 %1093, 3
  %scevgep2131 = getelementptr i8, ptr %14, i64 %1094
  %1095 = shl nuw nsw i64 %1091, 2
  %1096 = mul i64 %1095, %1093
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep2131, i8 0, i64 %1096, i1 false), !tbaa !9
  br label %._crit_edge1910

._crit_edge1910:                                  ; preds = %.lr.ph1909, %.lr.ph1905.preheader
  br i1 %.not1511167016851686, label %1097, label %1242

1097:                                             ; preds = %._crit_edge1910
  %1098 = mul nsw i64 %.114432064, %40
  %1099 = getelementptr float, ptr %42, i64 %.114432064
  %1100 = getelementptr float, ptr %1099, i64 %1098
  %1101 = load float, ptr %1100, align 4, !tbaa !9
  %1102 = mul nsw i64 %.114432064, %43
  %1103 = getelementptr float, ptr %45, i64 %.114432064
  %1104 = getelementptr float, ptr %1103, i64 %1102
  %1105 = load float, ptr %1104, align 4, !tbaa !9
  %1106 = insertelement <2 x float> poison, float %1101, i64 0
  %1107 = insertelement <2 x float> %1106, float %1105, i64 1
  %1108 = fcmp oge <2 x float> %1107, zeroinitializer
  %1109 = fneg <2 x float> %1107
  %1110 = select <2 x i1> %1108, <2 x float> %1107, <2 x float> %1109
  %1111 = fmul <2 x float> %271, %1110
  %1112 = extractelement <2 x float> %1111, i64 0
  %1113 = extractelement <2 x float> %1111, i64 1
  %1114 = fcmp oge float %1112, %1113
  %1115 = select i1 %1114, float %1112, float %1113
  %1116 = fcmp oge float %1115, %1028
  %1117 = select i1 %1116, float %1115, float %1028
  %1118 = fdiv float 1.000000e+00, %1117
  store float %1118, ptr %28, align 4, !tbaa !9
  %1119 = insertelement <2 x float> poison, float %1105, i64 0
  %1120 = insertelement <2 x float> %1119, float %1101, i64 1
  %1121 = insertelement <2 x float> poison, float %1118, i64 0
  %1122 = shufflevector <2 x float> %1121, <2 x float> poison, <2 x i32> zeroinitializer
  %1123 = fmul <2 x float> %1120, %1122
  %1124 = fmul <2 x float> %1006, %1123
  %1125 = fmul <2 x float> %271, %1124
  %1126 = extractelement <2 x float> %1125, i64 0
  store float %1126, ptr %33, align 4, !tbaa !9
  %1127 = extractelement <2 x float> %1125, i64 1
  store float %1127, ptr %37, align 4, !tbaa !9
  store float 0.000000e+00, ptr %36, align 4, !tbaa !9
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  %1128 = extractelement <2 x float> %1124, i64 0
  %1129 = fcmp oge float %1128, 0.000000e+00
  %1130 = fneg float %1128
  %1131 = select i1 %1129, float %1128, float %1130
  %1132 = fpext float %1131 to double
  %1133 = fcmp ult float %1131, %1028
  br i1 %1133, label %.thread2226, label %1134

1134:                                             ; preds = %1097
  %1135 = fcmp oge float %1126, 0.000000e+00
  %1136 = fneg float %1126
  %1137 = select i1 %1135, float %1126, float %1136
  %1138 = fcmp olt float %1137, %159
  %1139 = extractelement <2 x float> %1124, i64 1
  %1140 = fcmp oge float %1139, 0.000000e+00
  %1141 = fneg float %1139
  %1142 = select i1 %1140, float %1139, float %1141
  %1143 = fcmp ult float %1142, %1028
  br i1 %1143, label %.thread2224, label %1153

.thread2226:                                      ; preds = %1097
  %1144 = extractelement <2 x float> %1124, i64 1
  %1145 = fcmp oge float %1144, 0.000000e+00
  %1146 = fneg float %1144
  %1147 = select i1 %1145, float %1144, float %1146
  %1148 = fcmp ult float %1147, %1028
  br i1 %1148, label %.thread2216, label %.thread2228

.thread2228:                                      ; preds = %.thread2226
  %1149 = fcmp oge float %1127, 0.000000e+00
  %1150 = fneg float %1127
  %1151 = select i1 %1149, float %1127, float %1150
  %1152 = fcmp olt float %1151, %159
  br i1 %1152, label %.thread1690, label %.thread2216

1153:                                             ; preds = %1134
  %1154 = fcmp oge float %1127, 0.000000e+00
  %1155 = fneg float %1127
  %1156 = select i1 %1154, float %1127, float %1155
  %1157 = fcmp olt float %1156, %159
  br i1 %1138, label %1158, label %.thread2215

.thread2224:                                      ; preds = %1134
  br i1 %1138, label %1158, label %.thread2216

1158:                                             ; preds = %.thread2224, %1153
  %1159 = phi i1 [ false, %.thread2224 ], [ %1157, %1153 ]
  %1160 = fdiv double %957, %1132
  %1161 = load float, ptr %25, align 4
  %1162 = fcmp ole float %1007, %1161
  %1163 = select i1 %1162, float %1007, float %1161
  %1164 = fpext float %1163 to double
  %1165 = fmul double %1160, %1164
  %1166 = fptrunc double %1165 to float
  br i1 %1159, label %.thread1690, label %1179

.thread2215:                                      ; preds = %1153
  br i1 %1157, label %.thread1690, label %.thread2216

.thread1690:                                      ; preds = %.thread2228, %.thread2215, %1158
  %.in2272 = phi float [ %1142, %.thread2215 ], [ %1142, %1158 ], [ %1147, %.thread2228 ]
  %1167 = phi i1 [ false, %.thread2215 ], [ true, %1158 ], [ false, %.thread2228 ]
  %1168 = phi float [ 1.000000e+00, %.thread2215 ], [ %1166, %1158 ], [ 1.000000e+00, %.thread2228 ]
  %1169 = fpext float %.in2272 to double
  %1170 = fdiv double %957, %1169
  %1171 = load float, ptr %25, align 4
  %1172 = fcmp ole float %1008, %1171
  %1173 = select i1 %1172, float %1008, float %1171
  %1174 = fpext float %1173 to double
  %1175 = fmul double %1170, %1174
  %1176 = fptrunc double %1175 to float
  %1177 = fcmp oge float %1168, %1176
  %1178 = select i1 %1177, float %1168, float %1176
  br label %1179

1179:                                             ; preds = %1158, %.thread1690
  %1180 = phi i1 [ %1167, %.thread1690 ], [ true, %1158 ]
  %1181 = phi i1 [ true, %.thread1690 ], [ false, %1158 ]
  %1182 = phi float [ %1178, %.thread1690 ], [ %1166, %1158 ]
  %1183 = fcmp oge float %1126, 0.000000e+00
  %1184 = fneg float %1126
  %1185 = select i1 %1183, float %1126, float %1184
  %1186 = fcmp ole float %1185, 1.000000e+00
  %1187 = select i1 %1186, float 1.000000e+00, float %1185
  %1188 = fcmp oge float %1127, 0.000000e+00
  %1189 = fneg float %1127
  %1190 = select i1 %1188, float %1127, float %1189
  store float %1182, ptr %22, align 4, !tbaa !9
  %1191 = fpext float %1028 to double
  %1192 = fcmp oge float %1187, %1190
  %1193 = select i1 %1192, float %1187, float %1190
  %1194 = fpext float %1193 to double
  %1195 = fmul double %1191, %1194
  %1196 = fdiv double 1.000000e+00, %1195
  %1197 = fptrunc double %1196 to float
  %1198 = fcmp ole float %1182, %1197
  %1199 = select i1 %1198, float %1182, float %1197
  store float %1199, ptr %34, align 4, !tbaa !9
  %1200 = fmul float %1126, %1199
  %1201 = fmul float %1128, %1199
  %1202 = fmul float %1009, %1201
  %storemerge = select i1 %1180, float %1202, float %1200
  store float %storemerge, ptr %33, align 4, !tbaa !9
  br i1 %1181, label %1203, label %1209

1203:                                             ; preds = %1179
  %1204 = extractelement <2 x float> %1124, i64 1
  %1205 = fmul float %1204, %1199
  %1206 = fmul float %1010, %1205
  store float %1206, ptr %37, align 4, !tbaa !9
  %1207 = insertelement <2 x float> poison, float %storemerge, i64 0
  %1208 = insertelement <2 x float> %1207, float %1206, i64 1
  br label %.thread2216

1209:                                             ; preds = %1179
  %1210 = fmul float %1127, %1199
  store float %1210, ptr %37, align 4, !tbaa !9
  %1211 = insertelement <2 x float> poison, float %storemerge, i64 0
  %1212 = insertelement <2 x float> %1211, float %1210, i64 1
  br label %.thread2216

.thread2216:                                      ; preds = %.thread2228, %.thread2226, %.thread2224, %.thread2215, %1203, %1209
  %1213 = phi <2 x float> [ %1208, %1203 ], [ %1212, %1209 ], [ %1125, %.thread2215 ], [ %1125, %.thread2224 ], [ %1125, %.thread2226 ], [ %1125, %.thread2228 ]
  %1214 = fcmp oge <2 x float> %1213, zeroinitializer
  %1215 = fneg <2 x float> %1213
  %1216 = select <2 x i1> %1214, <2 x float> %1213, <2 x float> %1215
  %1217 = load i64, ptr %3, align 8, !tbaa !5
  %.idx = shl i64 %1217, 3
  %1218 = getelementptr i8, ptr %52, i64 %.idx
  %1219 = getelementptr float, ptr %1218, i64 %.114432064
  store float 1.000000e+00, ptr %1219, align 4, !tbaa !9
  %1220 = add nsw i64 %.114432064, -1
  store i64 %1220, ptr %20, align 8, !tbaa !5
  %invariant.gep1915 = getelementptr float, ptr %45, i64 %1102
  %invariant.gep1917 = getelementptr float, ptr %42, i64 %1098
  %.not1517.not1919 = icmp sgt i64 %.114432064, 1
  br i1 %.not1517.not1919, label %.lr.ph1922.preheader, label %.loopexit1711

.lr.ph1922.preheader:                             ; preds = %.thread2216
  %min.iters.check2539 = icmp ult i64 %1037, 8
  br i1 %min.iters.check2539, label %.lr.ph1922.preheader2648, label %vector.memcheck2534

vector.memcheck2534:                              ; preds = %.lr.ph1922.preheader
  %1221 = add i64 %1039, %.idx
  %diff.check = icmp ult i64 %1221, 32
  %1222 = add i64 %1041, %.idx
  %diff.check2535 = icmp ult i64 %1222, 32
  %conflict.rdx2536 = or i1 %diff.check, %diff.check2535
  br i1 %conflict.rdx2536, label %.lr.ph1922.preheader2648, label %vector.ph2540

vector.ph2540:                                    ; preds = %vector.memcheck2534
  %n.vec2542 = and i64 %1037, -8
  %ind.end2543 = or disjoint i64 %n.vec2542, 1
  %broadcast.splat2553 = shufflevector <2 x float> %1215, <2 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splat2555 = shufflevector <2 x float> %1213, <2 x float> poison, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
  br label %vector.body2545

vector.body2545:                                  ; preds = %vector.body2545, %vector.ph2540
  %index2546 = phi i64 [ 0, %vector.ph2540 ], [ %index.next2556, %vector.body2545 ]
  %offset.idx2547 = or disjoint i64 %index2546, 1
  %1223 = getelementptr float, ptr %invariant.gep1915, i64 %offset.idx2547
  %1224 = getelementptr i8, ptr %1223, i64 16
  %wide.load2548 = load <4 x float>, ptr %1223, align 4, !tbaa !9
  %wide.load2549 = load <4 x float>, ptr %1224, align 4, !tbaa !9
  %1225 = getelementptr float, ptr %invariant.gep1917, i64 %offset.idx2547
  %1226 = getelementptr i8, ptr %1225, i64 16
  %wide.load2550 = load <4 x float>, ptr %1225, align 4, !tbaa !9
  %wide.load2551 = load <4 x float>, ptr %1226, align 4, !tbaa !9
  %1227 = fmul <4 x float> %wide.load2550, %broadcast.splat2553
  %1228 = fmul <4 x float> %wide.load2551, %broadcast.splat2553
  %1229 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2555, <4 x float> %wide.load2548, <4 x float> %1227)
  %1230 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2555, <4 x float> %wide.load2549, <4 x float> %1228)
  %1231 = getelementptr float, ptr %1218, i64 %offset.idx2547
  %1232 = getelementptr i8, ptr %1231, i64 16
  store <4 x float> %1229, ptr %1231, align 4, !tbaa !9
  store <4 x float> %1230, ptr %1232, align 4, !tbaa !9
  %index.next2556 = add nuw i64 %index2546, 8
  %1233 = icmp eq i64 %index.next2556, %n.vec2542
  br i1 %1233, label %middle.block2537, label %vector.body2545, !llvm.loop !37

middle.block2537:                                 ; preds = %vector.body2545
  %cmp.n2557 = icmp eq i64 %1037, %n.vec2542
  br i1 %cmp.n2557, label %.loopexit1711, label %.lr.ph1922.preheader2648

.lr.ph1922.preheader2648:                         ; preds = %middle.block2537, %vector.memcheck2534, %.lr.ph1922.preheader
  %.814311920.ph = phi i64 [ 1, %vector.memcheck2534 ], [ 1, %.lr.ph1922.preheader ], [ %ind.end2543, %middle.block2537 ]
  %1234 = extractelement <2 x float> %1215, i64 0
  %1235 = extractelement <2 x float> %1213, i64 1
  br label %.lr.ph1922

.lr.ph1922:                                       ; preds = %.lr.ph1922.preheader2648, %.lr.ph1922
  %.814311920 = phi i64 [ %1241, %.lr.ph1922 ], [ %.814311920.ph, %.lr.ph1922.preheader2648 ]
  %gep1916 = getelementptr float, ptr %invariant.gep1915, i64 %.814311920
  %1236 = load float, ptr %gep1916, align 4, !tbaa !9
  %gep1918 = getelementptr float, ptr %invariant.gep1917, i64 %.814311920
  %1237 = load float, ptr %gep1918, align 4, !tbaa !9
  %1238 = fmul float %1237, %1234
  %1239 = call float @llvm.fmuladd.f32(float %1235, float %1236, float %1238)
  %1240 = getelementptr float, ptr %1218, i64 %.814311920
  store float %1239, ptr %1240, align 4, !tbaa !9
  %1241 = add nuw nsw i64 %.814311920, 1
  %.not1517.not = icmp slt i64 %1241, %.114432064
  br i1 %.not1517.not, label %.lr.ph1922, label %.loopexit1711, !llvm.loop !38

1242:                                             ; preds = %._crit_edge1910
  %1243 = fmul float %1028, 1.000000e+02
  store float %1243, ptr %22, align 4, !tbaa !9
  %1244 = add nsw i64 %.114432064, -1
  %1245 = mul nsw i64 %1244, %40
  %1246 = getelementptr float, ptr %42, i64 %1244
  %1247 = getelementptr float, ptr %1246, i64 %1245
  %1248 = mul nsw i64 %1244, %43
  %1249 = getelementptr float, ptr %45, i64 %1244
  %1250 = getelementptr float, ptr %1249, i64 %1248
  %1251 = call i32 @slag2_(ptr noundef %1247, ptr noundef nonnull %5, ptr noundef %1250, ptr noundef nonnull %7, ptr noundef nonnull %22, ptr noundef nonnull %33, ptr noundef nonnull %28, ptr noundef nonnull %37, ptr noundef nonnull %31, ptr noundef nonnull %36) #7
  %1252 = load float, ptr %36, align 4
  %1253 = fcmp oeq float %1252, 0.000000e+00
  br i1 %1253, label %1254, label %1255

1254:                                             ; preds = %1242
  store i64 %1244, ptr %15, align 8, !tbaa !5
  br label %.loopexit1713

1255:                                             ; preds = %1242
  %1256 = load float, ptr %33, align 4
  %1257 = fcmp oge float %1256, 0.000000e+00
  %1258 = fneg float %1256
  %1259 = select i1 %1257, float %1256, float %1258
  %1260 = load float, ptr %37, align 4
  %1261 = fcmp oge float %1260, 0.000000e+00
  %1262 = fneg float %1260
  %1263 = select i1 %1261, float %1260, float %1262
  %1264 = fcmp oge float %1252, 0.000000e+00
  %1265 = fneg float %1252
  %1266 = select i1 %1264, float %1252, float %1265
  %1267 = fadd float %1266, %1263
  store float 1.000000e+00, ptr %34, align 4, !tbaa !9
  %1268 = fmul float %1259, %154
  %1269 = load float, ptr %38, align 4
  %1270 = fcmp uge float %1268, %1269
  %1271 = fcmp ult float %1259, %1269
  %or.cond1613 = or i1 %1270, %1271
  br i1 %or.cond1613, label %1275, label %1272

1272:                                             ; preds = %1255
  %1273 = fdiv float %1269, %154
  %1274 = fdiv float %1273, %1259
  store float %1274, ptr %34, align 4, !tbaa !9
  br label %1275

1275:                                             ; preds = %1272, %1255
  %1276 = phi float [ %1274, %1272 ], [ 1.000000e+00, %1255 ]
  %1277 = fmul float %1267, %154
  %1278 = fcmp uge float %1277, %1269
  %1279 = fcmp ult float %1267, %1269
  %or.cond1614 = or i1 %1279, %1278
  br i1 %or.cond1614, label %1285, label %1280

1280:                                             ; preds = %1275
  %1281 = fdiv float %1269, %154
  %1282 = fdiv float %1281, %1267
  %1283 = fcmp oge float %1276, %1282
  %1284 = select i1 %1283, float %1276, float %1282
  store float %1284, ptr %34, align 4, !tbaa !9
  br label %1285

1285:                                             ; preds = %1280, %1275
  %.pr16932167 = phi float [ %1284, %1280 ], [ %1276, %1275 ]
  %1286 = fmul float %1259, %1269
  %1287 = fcmp ogt float %1286, %1009
  br i1 %1287, label %1288, label %1290

1288:                                             ; preds = %1285
  %1289 = fdiv float %1009, %1286
  store float %1289, ptr %34, align 4, !tbaa !9
  br label %1290

1290:                                             ; preds = %1288, %1285
  %1291 = phi float [ %1289, %1288 ], [ %.pr16932167, %1285 ]
  %1292 = fmul float %1269, %1267
  %1293 = fcmp ogt float %1292, %1010
  br i1 %1293, label %1294, label %thread-pre-split1692

1294:                                             ; preds = %1290
  store float %1291, ptr %22, align 4, !tbaa !9
  %1295 = fdiv float %1010, %1292
  %1296 = fcmp ole float %1291, %1295
  %1297 = select i1 %1296, float %1291, float %1295
  store float %1297, ptr %34, align 4, !tbaa !9
  br label %thread-pre-split1692

thread-pre-split1692:                             ; preds = %1290, %1294
  %1298 = phi float [ %1297, %1294 ], [ %1291, %1290 ]
  %1299 = fcmp une float %1298, 1.000000e+00
  %1300 = insertelement <2 x float> poison, float %1259, i64 0
  %1301 = insertelement <2 x float> %1300, float %1267, i64 1
  br i1 %1299, label %1302, label %1318

1302:                                             ; preds = %thread-pre-split1692
  %1303 = fmul float %1256, %1298
  store float %1303, ptr %33, align 4, !tbaa !9
  %1304 = fcmp oge float %1303, 0.000000e+00
  %1305 = fneg float %1303
  %1306 = select i1 %1304, float %1303, float %1305
  %1307 = fmul float %1260, %1298
  store float %1307, ptr %37, align 4, !tbaa !9
  %1308 = fmul float %1252, %1298
  store float %1308, ptr %36, align 4, !tbaa !9
  %1309 = fcmp oge float %1307, 0.000000e+00
  %1310 = fneg float %1307
  %1311 = select i1 %1309, float %1307, float %1310
  %1312 = fcmp oge float %1308, 0.000000e+00
  %1313 = fneg float %1308
  %1314 = select i1 %1312, float %1308, float %1313
  %1315 = fadd float %1311, %1314
  %1316 = insertelement <2 x float> poison, float %1306, i64 0
  %1317 = insertelement <2 x float> %1316, float %1315, i64 1
  br label %1318

1318:                                             ; preds = %1302, %thread-pre-split1692
  %.pre-phi2170 = phi float [ %1313, %1302 ], [ %1265, %thread-pre-split1692 ]
  %.pre-phi = phi float [ %1310, %1302 ], [ %1262, %thread-pre-split1692 ]
  %1319 = phi float [ %1308, %1302 ], [ %1252, %thread-pre-split1692 ]
  %1320 = phi float [ %1307, %1302 ], [ %1260, %thread-pre-split1692 ]
  %1321 = phi float [ %1303, %1302 ], [ %1256, %thread-pre-split1692 ]
  %1322 = phi <2 x float> [ %1317, %1302 ], [ %1301, %thread-pre-split1692 ]
  %1323 = getelementptr float, ptr %42, i64 %.114432064
  %1324 = getelementptr float, ptr %1323, i64 %1245
  %1325 = load float, ptr %1324, align 4, !tbaa !9
  %1326 = fmul float %1321, %1325
  store float %1326, ptr %28, align 4, !tbaa !9
  %1327 = mul nsw i64 %.114432064, %40
  %1328 = getelementptr float, ptr %1323, i64 %1327
  %1329 = load float, ptr %1328, align 4, !tbaa !9
  %1330 = mul nsw i64 %.114432064, %43
  %1331 = getelementptr float, ptr %45, i64 %.114432064
  %1332 = getelementptr float, ptr %1331, i64 %1330
  %1333 = load float, ptr %1332, align 4, !tbaa !9
  %1334 = fmul float %1333, %.pre-phi
  %1335 = call float @llvm.fmuladd.f32(float %1321, float %1329, float %1334)
  %1336 = fmul float %1333, %.pre-phi2170
  %1337 = fcmp oge float %1326, 0.000000e+00
  %1338 = fneg float %1326
  %1339 = select i1 %1337, float %1326, float %1338
  %1340 = fpext float %1339 to double
  %1341 = insertelement <2 x float> poison, float %1335, i64 0
  %1342 = insertelement <2 x float> %1341, float %1336, i64 1
  %1343 = fcmp oge <2 x float> %1342, zeroinitializer
  %1344 = fneg <2 x float> %1342
  %1345 = select <2 x i1> %1343, <2 x float> %1342, <2 x float> %1344
  %1346 = fpext <2 x float> %1345 to <2 x double>
  %shift2644 = shufflevector <2 x double> %1346, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %1347 = fadd <2 x double> %shift2644, %1346
  %1348 = extractelement <2 x double> %1347, i64 0
  %1349 = fcmp ugt double %1348, %1340
  %1350 = load i64, ptr %3, align 8, !tbaa !5
  %.idx1519 = shl i64 %1350, 3
  %1351 = getelementptr i8, ptr %52, i64 %.idx1519
  %1352 = getelementptr float, ptr %1351, i64 %.114432064
  br i1 %1349, label %1362, label %1353

1353:                                             ; preds = %1318
  store float 1.000000e+00, ptr %1352, align 4, !tbaa !9
  %.idx1524 = mul i64 %1350, 12
  %1354 = getelementptr i8, ptr %52, i64 %.idx1524
  %1355 = getelementptr float, ptr %1354, i64 %.114432064
  store float 0.000000e+00, ptr %1355, align 4, !tbaa !9
  %1356 = extractelement <2 x float> %1344, i64 0
  %1357 = fdiv float %1356, %1326
  %1358 = getelementptr i8, ptr %1352, i64 -4
  store float %1357, ptr %1358, align 4, !tbaa !9
  %1359 = extractelement <2 x float> %1344, i64 1
  %1360 = fdiv float %1359, %1326
  %1361 = getelementptr i8, ptr %1355, i64 -4
  store float %1360, ptr %1361, align 4, !tbaa !9
  br label %1379

1362:                                             ; preds = %1318
  %1363 = getelementptr i8, ptr %1352, i64 -4
  store float 1.000000e+00, ptr %1363, align 4, !tbaa !9
  %.idx1520 = mul i64 %1350, 12
  %1364 = getelementptr i8, ptr %52, i64 %.idx1520
  %1365 = getelementptr float, ptr %1364, i64 %.114432064
  %1366 = getelementptr i8, ptr %1365, i64 -4
  store float 0.000000e+00, ptr %1366, align 4, !tbaa !9
  %1367 = getelementptr float, ptr %1246, i64 %1327
  %1368 = load float, ptr %1367, align 4, !tbaa !9
  %1369 = fmul float %1321, %1368
  store float %1369, ptr %28, align 4, !tbaa !9
  %1370 = load float, ptr %1250, align 4, !tbaa !9
  %1371 = load float, ptr %1247, align 4, !tbaa !9
  %1372 = fneg float %1321
  %1373 = fmul float %1371, %1372
  %1374 = call float @llvm.fmuladd.f32(float %1320, float %1370, float %1373)
  %1375 = fdiv float %1374, %1369
  store float %1375, ptr %1352, align 4, !tbaa !9
  %1376 = load float, ptr %1250, align 4, !tbaa !9
  %1377 = fmul float %1319, %1376
  %1378 = fdiv float %1377, %1369
  store float %1378, ptr %1365, align 4, !tbaa !9
  br label %1379

1379:                                             ; preds = %1362, %1353
  %.idx1699.pre-phi = phi i64 [ %.idx1520, %1362 ], [ %.idx1524, %1353 ]
  %1380 = getelementptr i8, ptr %52, i64 %.idx1519
  %1381 = getelementptr float, ptr %1380, i64 %.114432064
  %1382 = getelementptr i8, ptr %52, i64 %.idx1699.pre-phi
  %1383 = getelementptr float, ptr %1382, i64 %.114432064
  %1384 = getelementptr i8, ptr %1381, i64 -4
  %1385 = getelementptr i8, ptr %1383, i64 -4
  %1386 = load <2 x float>, ptr %1384, align 4, !tbaa !9
  %1387 = fcmp oge <2 x float> %1386, zeroinitializer
  %1388 = fneg <2 x float> %1386
  %1389 = select <2 x i1> %1387, <2 x float> %1386, <2 x float> %1388
  %1390 = load <2 x float>, ptr %1385, align 4, !tbaa !9
  %1391 = fcmp oge <2 x float> %1390, zeroinitializer
  %1392 = fneg <2 x float> %1390
  %1393 = select <2 x i1> %1391, <2 x float> %1390, <2 x float> %1392
  %1394 = fadd <2 x float> %1389, %1393
  %1395 = extractelement <2 x float> %1394, i64 0
  %1396 = extractelement <2 x float> %1394, i64 1
  %1397 = fcmp oge float %1396, %1395
  %1398 = select i1 %1397, float %1396, float %1395
  %1399 = extractelement <2 x float> %1390, i64 0
  %1400 = fmul float %1399, %.pre-phi2170
  %1401 = extractelement <2 x float> %1386, i64 0
  %1402 = call float @llvm.fmuladd.f32(float %1320, float %1401, float %1400)
  %1403 = fmul float %1320, %1399
  %1404 = call float @llvm.fmuladd.f32(float %1319, float %1401, float %1403)
  %1405 = extractelement <2 x float> %1390, i64 1
  %1406 = fmul float %1405, %.pre-phi2170
  %1407 = extractelement <2 x float> %1386, i64 1
  %1408 = call float @llvm.fmuladd.f32(float %1320, float %1407, float %1406)
  %1409 = fmul float %1320, %1405
  %1410 = call float @llvm.fmuladd.f32(float %1319, float %1407, float %1409)
  %1411 = add nsw i64 %.114432064, -2
  store i64 %1411, ptr %20, align 8, !tbaa !5
  %.not15281911 = icmp slt i64 %.114432064, 3
  br i1 %.not15281911, label %.loopexit1711, label %.lr.ph1914

.lr.ph1914:                                       ; preds = %1379
  %1412 = fneg float %1321
  %1413 = fmul float %1401, %1412
  %1414 = fmul float %1407, %1412
  %1415 = fmul float %1399, %1412
  %1416 = fmul float %1405, %1412
  %min.iters.check2609 = icmp ult i64 %1029, 8
  br i1 %min.iters.check2609, label %scalar.ph2608.preheader, label %vector.memcheck2558

vector.memcheck2558:                              ; preds = %.lr.ph1914
  %scevgep2559 = getelementptr i8, ptr %14, i64 %.idx1519
  %scevgep2561 = getelementptr i8, ptr %scevgep2560, i64 %.idx1519
  %scevgep2562 = getelementptr i8, ptr %14, i64 %.idx1699.pre-phi
  %scevgep2563 = getelementptr i8, ptr %scevgep2560, i64 %.idx1699.pre-phi
  %bound02572 = icmp ult ptr %scevgep2559, %scevgep2563
  %bound12573 = icmp ult ptr %scevgep2562, %scevgep2561
  %found.conflict2574 = and i1 %bound02572, %bound12573
  %bound02575 = icmp ult ptr %scevgep2559, %scevgep2565
  %bound12576 = icmp ult ptr %scevgep2564, %scevgep2561
  %found.conflict2577 = and i1 %bound02575, %bound12576
  %conflict.rdx2578 = or i1 %found.conflict2574, %found.conflict2577
  %bound02579 = icmp ult ptr %scevgep2559, %scevgep2567
  %bound12580 = icmp ult ptr %scevgep2566, %scevgep2561
  %found.conflict2581 = and i1 %bound02579, %bound12580
  %conflict.rdx2582 = or i1 %conflict.rdx2578, %found.conflict2581
  %bound02583 = icmp ult ptr %scevgep2559, %scevgep2569
  %bound12584 = icmp ult ptr %scevgep2568, %scevgep2561
  %found.conflict2585 = and i1 %bound02583, %bound12584
  %conflict.rdx2586 = or i1 %conflict.rdx2582, %found.conflict2585
  %bound02587 = icmp ult ptr %scevgep2559, %scevgep2571
  %bound12588 = icmp ult ptr %scevgep2570, %scevgep2561
  %found.conflict2589 = and i1 %bound02587, %bound12588
  %conflict.rdx2590 = or i1 %conflict.rdx2586, %found.conflict2589
  %bound02591 = icmp ult ptr %scevgep2562, %scevgep2565
  %bound12592 = icmp ult ptr %scevgep2564, %scevgep2563
  %found.conflict2593 = and i1 %bound02591, %bound12592
  %conflict.rdx2594 = or i1 %conflict.rdx2590, %found.conflict2593
  %bound02595 = icmp ult ptr %scevgep2562, %scevgep2567
  %bound12596 = icmp ult ptr %scevgep2566, %scevgep2563
  %found.conflict2597 = and i1 %bound02595, %bound12596
  %conflict.rdx2598 = or i1 %conflict.rdx2594, %found.conflict2597
  %bound02599 = icmp ult ptr %scevgep2562, %scevgep2569
  %bound12600 = icmp ult ptr %scevgep2568, %scevgep2563
  %found.conflict2601 = and i1 %bound02599, %bound12600
  %conflict.rdx2602 = or i1 %conflict.rdx2598, %found.conflict2601
  %bound02603 = icmp ult ptr %scevgep2562, %scevgep2571
  %bound12604 = icmp ult ptr %scevgep2570, %scevgep2563
  %found.conflict2605 = and i1 %bound02603, %bound12604
  %conflict.rdx2606 = or i1 %conflict.rdx2602, %found.conflict2605
  br i1 %conflict.rdx2606, label %scalar.ph2608.preheader, label %vector.ph2610

vector.ph2610:                                    ; preds = %vector.memcheck2558
  %n.vec2612 = and i64 %1029, -4
  %ind.end2613 = or disjoint i64 %n.vec2612, 1
  %broadcast.splatinsert2620 = insertelement <4 x float> poison, float %1402, i64 0
  %broadcast.splat2621 = shufflevector <4 x float> %broadcast.splatinsert2620, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2622 = insertelement <4 x float> poison, float %1413, i64 0
  %broadcast.splat2623 = shufflevector <4 x float> %broadcast.splatinsert2622, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2625 = insertelement <4 x float> poison, float %1414, i64 0
  %broadcast.splat2626 = shufflevector <4 x float> %broadcast.splatinsert2625, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2628 = insertelement <4 x float> poison, float %1408, i64 0
  %broadcast.splat2629 = shufflevector <4 x float> %broadcast.splatinsert2628, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2632 = insertelement <4 x float> poison, float %1404, i64 0
  %broadcast.splat2633 = shufflevector <4 x float> %broadcast.splatinsert2632, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2634 = insertelement <4 x float> poison, float %1415, i64 0
  %broadcast.splat2635 = shufflevector <4 x float> %broadcast.splatinsert2634, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2637 = insertelement <4 x float> poison, float %1416, i64 0
  %broadcast.splat2638 = shufflevector <4 x float> %broadcast.splatinsert2637, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2640 = insertelement <4 x float> poison, float %1410, i64 0
  %broadcast.splat2641 = shufflevector <4 x float> %broadcast.splatinsert2640, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body2615

vector.body2615:                                  ; preds = %vector.body2615, %vector.ph2610
  %index2616 = phi i64 [ 0, %vector.ph2610 ], [ %index.next2642, %vector.body2615 ]
  %offset.idx2617 = or disjoint i64 %index2616, 1
  %1417 = getelementptr float, ptr %42, i64 %offset.idx2617
  %1418 = getelementptr float, ptr %1417, i64 %1245
  %wide.load2618 = load <4 x float>, ptr %1418, align 4, !tbaa !9, !alias.scope !39
  %1419 = getelementptr float, ptr %45, i64 %offset.idx2617
  %1420 = getelementptr float, ptr %1419, i64 %1248
  %wide.load2619 = load <4 x float>, ptr %1420, align 4, !tbaa !9, !alias.scope !42
  %1421 = fmul <4 x float> %broadcast.splat2621, %wide.load2619
  %1422 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2623, <4 x float> %wide.load2618, <4 x float> %1421)
  %1423 = getelementptr float, ptr %1417, i64 %1327
  %wide.load2624 = load <4 x float>, ptr %1423, align 4, !tbaa !9, !alias.scope !44
  %1424 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2626, <4 x float> %wide.load2624, <4 x float> %1422)
  %1425 = getelementptr float, ptr %1419, i64 %1330
  %wide.load2627 = load <4 x float>, ptr %1425, align 4, !tbaa !9, !alias.scope !46
  %1426 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2629, <4 x float> %wide.load2627, <4 x float> %1424)
  %1427 = getelementptr float, ptr %1380, i64 %offset.idx2617
  store <4 x float> %1426, ptr %1427, align 4, !tbaa !9, !alias.scope !48, !noalias !50
  %wide.load2630 = load <4 x float>, ptr %1418, align 4, !tbaa !9, !alias.scope !39
  %wide.load2631 = load <4 x float>, ptr %1420, align 4, !tbaa !9, !alias.scope !42
  %1428 = fmul <4 x float> %broadcast.splat2633, %wide.load2631
  %1429 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2635, <4 x float> %wide.load2630, <4 x float> %1428)
  %wide.load2636 = load <4 x float>, ptr %1423, align 4, !tbaa !9, !alias.scope !44
  %1430 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2638, <4 x float> %wide.load2636, <4 x float> %1429)
  %wide.load2639 = load <4 x float>, ptr %1425, align 4, !tbaa !9, !alias.scope !46
  %1431 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2641, <4 x float> %wide.load2639, <4 x float> %1430)
  %1432 = getelementptr float, ptr %1382, i64 %offset.idx2617
  store <4 x float> %1431, ptr %1432, align 4, !tbaa !9, !alias.scope !52, !noalias !53
  %index.next2642 = add nuw i64 %index2616, 4
  %1433 = icmp eq i64 %index.next2642, %n.vec2612
  br i1 %1433, label %middle.block2607, label %vector.body2615, !llvm.loop !54

middle.block2607:                                 ; preds = %vector.body2615
  %cmp.n2643 = icmp eq i64 %1029, %n.vec2612
  br i1 %cmp.n2643, label %.loopexit1711, label %scalar.ph2608.preheader

scalar.ph2608.preheader:                          ; preds = %middle.block2607, %vector.memcheck2558, %.lr.ph1914
  %.914321912.ph = phi i64 [ 1, %vector.memcheck2558 ], [ 1, %.lr.ph1914 ], [ %ind.end2613, %middle.block2607 ]
  br label %scalar.ph2608

scalar.ph2608:                                    ; preds = %scalar.ph2608.preheader, %scalar.ph2608
  %.914321912 = phi i64 [ %1458, %scalar.ph2608 ], [ %.914321912.ph, %scalar.ph2608.preheader ]
  %1434 = getelementptr float, ptr %42, i64 %.914321912
  %1435 = getelementptr float, ptr %1434, i64 %1245
  %1436 = load float, ptr %1435, align 4, !tbaa !9
  %1437 = getelementptr float, ptr %45, i64 %.914321912
  %1438 = getelementptr float, ptr %1437, i64 %1248
  %1439 = load float, ptr %1438, align 4, !tbaa !9
  %1440 = fmul float %1402, %1439
  %1441 = call float @llvm.fmuladd.f32(float %1413, float %1436, float %1440)
  %1442 = getelementptr float, ptr %1434, i64 %1327
  %1443 = load float, ptr %1442, align 4, !tbaa !9
  %1444 = call float @llvm.fmuladd.f32(float %1414, float %1443, float %1441)
  %1445 = getelementptr float, ptr %1437, i64 %1330
  %1446 = load float, ptr %1445, align 4, !tbaa !9
  %1447 = call float @llvm.fmuladd.f32(float %1408, float %1446, float %1444)
  %1448 = getelementptr float, ptr %1380, i64 %.914321912
  store float %1447, ptr %1448, align 4, !tbaa !9
  %1449 = load float, ptr %1435, align 4, !tbaa !9
  %1450 = load float, ptr %1438, align 4, !tbaa !9
  %1451 = fmul float %1404, %1450
  %1452 = call float @llvm.fmuladd.f32(float %1415, float %1449, float %1451)
  %1453 = load float, ptr %1442, align 4, !tbaa !9
  %1454 = call float @llvm.fmuladd.f32(float %1416, float %1453, float %1452)
  %1455 = load float, ptr %1445, align 4, !tbaa !9
  %1456 = call float @llvm.fmuladd.f32(float %1410, float %1455, float %1454)
  %1457 = getelementptr float, ptr %1382, i64 %.914321912
  store float %1456, ptr %1457, align 4, !tbaa !9
  %1458 = add nuw nsw i64 %.914321912, 1
  %.not1528.not = icmp slt i64 %.914321912, %1411
  br i1 %.not1528.not, label %scalar.ph2608, label %.loopexit1711, !llvm.loop !55

.loopexit1711:                                    ; preds = %scalar.ph2608, %.lr.ph1922, %middle.block2607, %middle.block2537, %1379, %.thread2216
  %1459 = phi float [ %1028, %.thread2216 ], [ %1269, %1379 ], [ %1028, %middle.block2537 ], [ %1269, %middle.block2607 ], [ %1028, %.lr.ph1922 ], [ %1269, %scalar.ph2608 ]
  %.81402 = phi float [ 1.000000e+00, %.thread2216 ], [ %1398, %1379 ], [ 1.000000e+00, %middle.block2537 ], [ %1398, %middle.block2607 ], [ 1.000000e+00, %.lr.ph1922 ], [ %1398, %scalar.ph2608 ]
  %1460 = phi <2 x float> [ %1216, %.thread2216 ], [ %1322, %1379 ], [ %1216, %middle.block2537 ], [ %1322, %middle.block2607 ], [ %1216, %.lr.ph1922 ], [ %1322, %scalar.ph2608 ]
  %1461 = fmul <2 x float> %1460, %1005
  %1462 = fmul <2 x float> %266, %1461
  %1463 = extractelement <2 x float> %1462, i64 0
  %1464 = extractelement <2 x float> %1462, i64 1
  %1465 = fcmp oge float %1463, %1464
  %1466 = select i1 %1465, float %1463, float %1464
  store float %1466, ptr %22, align 4, !tbaa !9
  %1467 = fcmp oge float %1466, %1459
  %1468 = select i1 %1467, float %1466, float %1459
  store float %1468, ptr %27, align 4, !tbaa !9
  %1469 = load i64, ptr %24, align 8, !tbaa !5
  %1470 = sub nsw i64 %.114432064, %1469
  %1471 = icmp sgt i64 %1470, 0
  br i1 %1471, label %.lr.ph1989, label %._crit_edge1990

.lr.ph1989:                                       ; preds = %.loopexit1711
  %1472 = add i64 %indvar2133, %1469
  %1473 = shl i64 %1469, 2
  %1474 = sub i64 %1049, %1473
  %1475 = mul i64 %40, %1474
  %1476 = add i64 %1049, %1475
  %1477 = sub i64 %1476, %1473
  %1478 = mul i64 %43, %1474
  %1479 = add i64 %1049, %1478
  %1480 = sub i64 %1479, %1473
  %1481 = shl i64 %1469, 2
  %1482 = sub i64 %1045, %1481
  %1483 = mul i64 %40, %1482
  %1484 = add i64 %1045, %1483
  %1485 = sub i64 %1484, %1481
  %1486 = mul i64 %43, %1482
  %1487 = add i64 %1045, %1486
  %1488 = sub i64 %1487, %1481
  %1489 = extractelement <2 x float> %1460, i64 0
  %1490 = extractelement <2 x float> %1460, i64 1
  %1491 = getelementptr i8, ptr %4, i64 %1483
  %1492 = getelementptr i8, ptr %4, i64 %1485
  %1493 = getelementptr i8, ptr %6, i64 %1486
  %1494 = getelementptr i8, ptr %6, i64 %1488
  %1495 = getelementptr i8, ptr %4, i64 %1475
  %1496 = getelementptr i8, ptr %4, i64 %1477
  %1497 = getelementptr i8, ptr %6, i64 %1478
  %1498 = getelementptr i8, ptr %6, i64 %1480
  %min.iters.check2519 = icmp slt i64 %.114432064, 8
  %n.vec2522 = and i64 %smax2516, 9223372036854775800
  %ind.end2523 = or disjoint i64 %n.vec2522, 1
  %cmp.n2533 = icmp eq i64 %smax2516, %n.vec2522
  %min.iters.check2501 = icmp slt i64 %.114432064, 8
  %n.vec2504 = and i64 %smax, 9223372036854775800
  %ind.end2505 = or disjoint i64 %n.vec2504, 1
  %cmp.n2515 = icmp eq i64 %smax, %n.vec2504
  br label %1499

1499:                                             ; preds = %.lr.ph1989, %.loopexit1705
  %1500 = phi i64 [ %1469, %.lr.ph1989 ], [ %1711, %.loopexit1705 ]
  %indvar2135 = phi i64 [ 0, %.lr.ph1989 ], [ %indvar.next2136, %.loopexit1705 ]
  %.313901987 = phi i64 [ 0, %.lr.ph1989 ], [ %.41391, %.loopexit1705 ]
  %.91985 = phi float [ %.81402, %.lr.ph1989 ], [ %.12, %.loopexit1705 ]
  %.614551981 = phi i64 [ %1470, %.lr.ph1989 ], [ %1712, %.loopexit1705 ]
  %1501 = add i64 %1469, %indvar2135
  %1502 = sub i64 %1043, %1501
  %1503 = shl i64 %indvar2135, 2
  %1504 = sub i64 %1482, %1503
  %scevgep2439 = getelementptr i8, ptr %14, i64 %1504
  %1505 = mul i64 %972, %indvar2135
  %scevgep2443 = getelementptr i8, ptr %1491, i64 %1505
  %1506 = mul i64 %974, %indvar2135
  %scevgep2444 = getelementptr i8, ptr %1492, i64 %1506
  %1507 = mul i64 %976, %indvar2135
  %scevgep2446 = getelementptr i8, ptr %1493, i64 %1507
  %1508 = mul i64 %978, %indvar2135
  %scevgep2447 = getelementptr i8, ptr %1494, i64 %1508
  %1509 = add i64 %1469, %indvar2135
  %1510 = sub i64 %1047, %1509
  %1511 = shl i64 %indvar2135, 2
  %1512 = sub i64 %1474, %1511
  %scevgep2398 = getelementptr i8, ptr %14, i64 %1512
  %1513 = mul i64 %962, %indvar2135
  %scevgep2400 = getelementptr i8, ptr %1495, i64 %1513
  %1514 = mul i64 %964, %indvar2135
  %scevgep2401 = getelementptr i8, ptr %1496, i64 %1514
  %1515 = mul i64 %966, %indvar2135
  %scevgep2403 = getelementptr i8, ptr %1497, i64 %1515
  %1516 = mul i64 %968, %indvar2135
  %scevgep2404 = getelementptr i8, ptr %1498, i64 %1516
  %1517 = add i64 %1472, %indvar2135
  %1518 = shl i64 %1517, 2
  %1519 = sub i64 %960, %1518
  %1520 = icmp eq i64 %.313901987, 0
  %1521 = icmp ne i64 %.614551981, 1
  %or.cond5 = and i1 %1521, %1520
  br i1 %or.cond5, label %1522, label %1532

1522:                                             ; preds = %1499
  %1523 = add nsw i64 %.614551981, -1
  %1524 = mul nsw i64 %1523, %40
  %1525 = getelementptr float, ptr %42, i64 %.614551981
  %1526 = getelementptr float, ptr %1525, i64 %1524
  %1527 = load float, ptr %1526, align 4, !tbaa !9
  %1528 = fcmp une float %1527, 0.000000e+00
  br i1 %1528, label %.loopexit1705, label %.thread1694

.thread1694:                                      ; preds = %1522
  %1529 = mul i64 %.614551981, %955
  %1530 = getelementptr inbounds float, ptr %45, i64 %1529
  %1531 = load float, ptr %1530, align 4, !tbaa !9
  store float %1531, ptr %32, align 4, !tbaa !9
  br label %1541

1532:                                             ; preds = %1499
  %1533 = mul i64 %.614551981, %955
  %1534 = getelementptr inbounds float, ptr %45, i64 %1533
  %1535 = load float, ptr %1534, align 4, !tbaa !9
  store float %1535, ptr %32, align 4, !tbaa !9
  br i1 %1520, label %1541, label %1536

1536:                                             ; preds = %1532
  store i64 2, ptr %23, align 8, !tbaa !5
  %1537 = add nuw nsw i64 %.614551981, 1
  %1538 = mul i64 %1537, %955
  %1539 = getelementptr inbounds float, ptr %45, i64 %1538
  %1540 = load float, ptr %1539, align 4, !tbaa !9
  store float %1540, ptr %958, align 4, !tbaa !9
  br label %1542

1541:                                             ; preds = %.thread1694, %1532
  store i64 1, ptr %23, align 8, !tbaa !5
  br label %1542

1542:                                             ; preds = %1541, %1536
  %1543 = mul i64 %.614551981, %954
  %1544 = getelementptr inbounds float, ptr %42, i64 %1543
  %1545 = load i64, ptr %3, align 8, !tbaa !5
  %.idx1543 = shl i64 %1545, 3
  %1546 = getelementptr i8, ptr %52, i64 %.idx1543
  %1547 = getelementptr float, ptr %1546, i64 %.614551981
  %1548 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull %23, ptr noundef nonnull %24, ptr noundef nonnull %27, ptr noundef nonnull %33, ptr noundef nonnull %1544, ptr noundef nonnull %5, ptr noundef nonnull %32, ptr noundef nonnull %958, ptr noundef %1547, ptr noundef nonnull %3, ptr noundef nonnull %37, ptr noundef nonnull %36, ptr noundef nonnull %26, ptr noundef nonnull @c__2, ptr noundef nonnull %34, ptr noundef nonnull %28, ptr noundef nonnull %35) #7
  %1549 = load float, ptr %34, align 4, !tbaa !9
  %1550 = fcmp olt float %1549, 1.000000e+00
  %.pre2168 = load i64, ptr %24, align 8, !tbaa !5
  br i1 %1550, label %1551, label %.loopexit1706

1551:                                             ; preds = %1542
  %1552 = add nsw i64 %.pre2168, -1
  store i64 %1552, ptr %20, align 8, !tbaa !5
  %.not1544.not1927 = icmp sgt i64 %.pre2168, 0
  br i1 %.not1544.not1927, label %.preheader1702.lr.ph.split, label %.loopexit1706

.preheader1702.lr.ph.split:                       ; preds = %1551
  %1553 = load i64, ptr %3, align 8, !tbaa !5
  %broadcast.splatinsert2530 = insertelement <4 x float> poison, float %1549, i64 0
  %broadcast.splat2531 = shufflevector <4 x float> %broadcast.splatinsert2530, <4 x float> poison, <4 x i32> zeroinitializer
  br label %.preheader1702

.preheader1702:                                   ; preds = %.preheader1702.lr.ph.split, %._crit_edge1926
  %.614161928 = phi i64 [ 0, %.preheader1702.lr.ph.split ], [ %1566, %._crit_edge1926 ]
  %1554 = add nuw nsw i64 %.614161928, 2
  %1555 = mul nsw i64 %1553, %1554
  %1556 = getelementptr float, ptr %52, i64 %1555
  br i1 %min.iters.check2519, label %scalar.ph2518.preheader, label %vector.body2525

vector.body2525:                                  ; preds = %.preheader1702, %vector.body2525
  %index2526 = phi i64 [ %index.next2532, %vector.body2525 ], [ 0, %.preheader1702 ]
  %offset.idx2527 = or disjoint i64 %index2526, 1
  %1557 = getelementptr float, ptr %1556, i64 %offset.idx2527
  %1558 = getelementptr i8, ptr %1557, i64 16
  %wide.load2528 = load <4 x float>, ptr %1557, align 4, !tbaa !9
  %wide.load2529 = load <4 x float>, ptr %1558, align 4, !tbaa !9
  %1559 = fmul <4 x float> %broadcast.splat2531, %wide.load2528
  %1560 = fmul <4 x float> %broadcast.splat2531, %wide.load2529
  store <4 x float> %1559, ptr %1557, align 4, !tbaa !9
  store <4 x float> %1560, ptr %1558, align 4, !tbaa !9
  %index.next2532 = add nuw i64 %index2526, 8
  %1561 = icmp eq i64 %index.next2532, %n.vec2522
  br i1 %1561, label %middle.block2517, label %vector.body2525, !llvm.loop !56

middle.block2517:                                 ; preds = %vector.body2525
  br i1 %cmp.n2533, label %._crit_edge1926, label %scalar.ph2518.preheader

scalar.ph2518.preheader:                          ; preds = %middle.block2517, %.preheader1702
  %.1014331924.ph = phi i64 [ 1, %.preheader1702 ], [ %ind.end2523, %middle.block2517 ]
  br label %scalar.ph2518

scalar.ph2518:                                    ; preds = %scalar.ph2518.preheader, %scalar.ph2518
  %.1014331924 = phi i64 [ %1565, %scalar.ph2518 ], [ %.1014331924.ph, %scalar.ph2518.preheader ]
  %1562 = getelementptr float, ptr %1556, i64 %.1014331924
  %1563 = load float, ptr %1562, align 4, !tbaa !9
  %1564 = fmul float %1549, %1563
  store float %1564, ptr %1562, align 4, !tbaa !9
  %1565 = add nuw nsw i64 %.1014331924, 1
  %.not1558.not = icmp slt i64 %.1014331924, %.114432064
  br i1 %.not1558.not, label %scalar.ph2518, label %._crit_edge1926, !llvm.loop !57

._crit_edge1926:                                  ; preds = %scalar.ph2518, %middle.block2517
  %1566 = add nuw nsw i64 %.614161928, 1
  %exitcond2132.not = icmp eq i64 %1566, %.pre2168
  br i1 %exitcond2132.not, label %.loopexit1706, label %.preheader1702, !llvm.loop !58

.loopexit1706:                                    ; preds = %._crit_edge1926, %1551, %1542
  %1567 = fmul float %.91985, %1549
  store float %1567, ptr %22, align 4, !tbaa !9
  %1568 = load float, ptr %28, align 4
  %1569 = fcmp oge float %1567, %1568
  %1570 = select i1 %1569, float %1567, float %1568
  %.not15451938 = icmp slt i64 %.pre2168, 1
  br i1 %.not15451938, label %._crit_edge1942, label %.lr.ph1941

.lr.ph1941:                                       ; preds = %.loopexit1706
  %1571 = load i64, ptr %23, align 8, !tbaa !5
  %.not15571931 = icmp slt i64 %1571, 1
  br i1 %.not15571931, label %._crit_edge1942, label %.lr.ph1941.split

.lr.ph1941.split:                                 ; preds = %.lr.ph1941
  %1572 = load i64, ptr %3, align 8, !tbaa !5
  %1573 = shl i64 %1572, 3
  %1574 = shl i64 %1572, 2
  %1575 = shl nuw i64 %1571, 2
  %1576 = getelementptr i8, ptr %14, i64 %1519
  %1577 = getelementptr i8, ptr %1576, i64 %1573
  %xtraiter2683 = and i64 %.pre2168, 1
  %1578 = icmp eq i64 %.pre2168, 1
  br i1 %1578, label %._crit_edge1942.loopexit.unr-lcssa, label %.lr.ph1941.split.new

.lr.ph1941.split.new:                             ; preds = %.lr.ph1941.split
  %unroll_iter2685 = and i64 %.pre2168, 9223372036854775806
  br label %.lr.ph1934

.lr.ph1934:                                       ; preds = %.lr.ph1934, %.lr.ph1941.split.new
  %indvar2137 = phi i64 [ 0, %.lr.ph1941.split.new ], [ %indvar.next2138.1, %.lr.ph1934 ]
  %niter2686 = phi i64 [ 0, %.lr.ph1941.split.new ], [ %niter2686.next.1, %.lr.ph1934 ]
  %1579 = mul i64 %1574, %indvar2137
  %scevgep2139 = getelementptr i8, ptr %1577, i64 %1579
  %1580 = shl i64 %indvar2137, 3
  %scevgep2140 = getelementptr i8, ptr %26, i64 %1580
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %scevgep2139, ptr align 16 %scevgep2140, i64 %1575, i1 false), !tbaa !9
  %indvar.next2138 = or disjoint i64 %indvar2137, 1
  %1581 = mul i64 %1574, %indvar.next2138
  %scevgep2139.1 = getelementptr i8, ptr %1577, i64 %1581
  %1582 = shl i64 %indvar.next2138, 3
  %scevgep2140.1 = getelementptr i8, ptr %26, i64 %1582
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %scevgep2139.1, ptr align 8 %scevgep2140.1, i64 %1575, i1 false), !tbaa !9
  %indvar.next2138.1 = add nuw nsw i64 %indvar2137, 2
  %niter2686.next.1 = add i64 %niter2686, 2
  %niter2686.ncmp.1 = icmp eq i64 %niter2686.next.1, %unroll_iter2685
  br i1 %niter2686.ncmp.1, label %._crit_edge1942.loopexit.unr-lcssa, label %.lr.ph1934, !llvm.loop !59

._crit_edge1942.loopexit.unr-lcssa:               ; preds = %.lr.ph1934, %.lr.ph1941.split
  %indvar2137.unr = phi i64 [ 0, %.lr.ph1941.split ], [ %indvar.next2138.1, %.lr.ph1934 ]
  %lcmp.mod2684.not = icmp eq i64 %xtraiter2683, 0
  br i1 %lcmp.mod2684.not, label %._crit_edge1942, label %.lr.ph1934.epil

.lr.ph1934.epil:                                  ; preds = %._crit_edge1942.loopexit.unr-lcssa
  %1583 = mul i64 %1574, %indvar2137.unr
  %scevgep2139.epil = getelementptr i8, ptr %1577, i64 %1583
  %1584 = shl i64 %indvar2137.unr, 3
  %scevgep2140.epil = getelementptr i8, ptr %26, i64 %1584
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %scevgep2139.epil, ptr align 8 %scevgep2140.epil, i64 %1575, i1 false), !tbaa !9
  br label %._crit_edge1942

._crit_edge1942:                                  ; preds = %.lr.ph1934.epil, %._crit_edge1942.loopexit.unr-lcssa, %.lr.ph1941, %.loopexit1706
  br i1 %1521, label %1585, label %._crit_edge1990

1585:                                             ; preds = %._crit_edge1942
  %1586 = fcmp ole float %1570, 1.000000e+00
  %1587 = select i1 %1586, float 1.000000e+00, float %1570
  %1588 = fdiv float 1.000000e+00, %1587
  %1589 = getelementptr inbounds float, ptr %52, i64 %.614551981
  %1590 = load float, ptr %1589, align 4, !tbaa !9
  %1591 = load i64, ptr %3, align 8, !tbaa !5
  %1592 = getelementptr float, ptr %52, i64 %1591
  %1593 = getelementptr float, ptr %1592, i64 %.614551981
  %1594 = load float, ptr %1593, align 4, !tbaa !9
  %1595 = fmul float %1490, %1594
  %1596 = call float @llvm.fmuladd.f32(float %1489, float %1590, float %1595)
  br i1 %1520, label %1607, label %1597

1597:                                             ; preds = %1585
  %1598 = getelementptr float, ptr %14, i64 %.614551981
  %1599 = load float, ptr %1598, align 4, !tbaa !9
  %1600 = getelementptr float, ptr %14, i64 %1591
  %1601 = getelementptr float, ptr %1600, i64 %.614551981
  %1602 = load float, ptr %1601, align 4, !tbaa !9
  %1603 = fmul float %1490, %1602
  %1604 = call float @llvm.fmuladd.f32(float %1489, float %1599, float %1603)
  %1605 = fcmp oge float %1596, %1604
  %1606 = select i1 %1605, float %1596, float %1604
  br label %1607

1607:                                             ; preds = %1597, %1585
  %1608 = phi float [ %1606, %1597 ], [ %1596, %1585 ]
  %1609 = fcmp oge float %1608, %1489
  %1610 = select i1 %1609, float %1608, float %1489
  store float %1610, ptr %22, align 4, !tbaa !9
  %1611 = fcmp oge float %1610, %1490
  %1612 = select i1 %1611, float %1610, float %1490
  store float %1612, ptr %28, align 4, !tbaa !9
  %1613 = fmul float %161, %1588
  %1614 = fcmp ogt float %1612, %1613
  br i1 %1614, label %1615, label %1630

1615:                                             ; preds = %1607
  %.not1546.not1949 = icmp sgt i64 %.pre2168, 0
  br i1 %.not1546.not1949, label %.preheader.preheader, label %._crit_edge1951

.preheader.preheader:                             ; preds = %1615
  %broadcast.splatinsert2512 = insertelement <4 x float> poison, float %1588, i64 0
  %broadcast.splat2513 = shufflevector <4 x float> %broadcast.splatinsert2512, <4 x float> poison, <4 x i32> zeroinitializer
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %._crit_edge1948
  %.814181950 = phi i64 [ %1628, %._crit_edge1948 ], [ 0, %.preheader.preheader ]
  %1616 = add nuw nsw i64 %.814181950, 2
  %1617 = mul nsw i64 %1616, %1591
  %1618 = getelementptr float, ptr %52, i64 %1617
  br i1 %min.iters.check2501, label %scalar.ph2500.preheader, label %vector.body2507

vector.body2507:                                  ; preds = %.preheader, %vector.body2507
  %index2508 = phi i64 [ %index.next2514, %vector.body2507 ], [ 0, %.preheader ]
  %offset.idx2509 = or disjoint i64 %index2508, 1
  %1619 = getelementptr float, ptr %1618, i64 %offset.idx2509
  %1620 = getelementptr i8, ptr %1619, i64 16
  %wide.load2510 = load <4 x float>, ptr %1619, align 4, !tbaa !9
  %wide.load2511 = load <4 x float>, ptr %1620, align 4, !tbaa !9
  %1621 = fmul <4 x float> %broadcast.splat2513, %wide.load2510
  %1622 = fmul <4 x float> %broadcast.splat2513, %wide.load2511
  store <4 x float> %1621, ptr %1619, align 4, !tbaa !9
  store <4 x float> %1622, ptr %1620, align 4, !tbaa !9
  %index.next2514 = add nuw i64 %index2508, 8
  %1623 = icmp eq i64 %index.next2514, %n.vec2504
  br i1 %1623, label %middle.block2499, label %vector.body2507, !llvm.loop !60

middle.block2499:                                 ; preds = %vector.body2507
  br i1 %cmp.n2515, label %._crit_edge1948, label %scalar.ph2500.preheader

scalar.ph2500.preheader:                          ; preds = %middle.block2499, %.preheader
  %.1114341946.ph = phi i64 [ 1, %.preheader ], [ %ind.end2505, %middle.block2499 ]
  br label %scalar.ph2500

scalar.ph2500:                                    ; preds = %scalar.ph2500.preheader, %scalar.ph2500
  %.1114341946 = phi i64 [ %1627, %scalar.ph2500 ], [ %.1114341946.ph, %scalar.ph2500.preheader ]
  %1624 = getelementptr float, ptr %1618, i64 %.1114341946
  %1625 = load float, ptr %1624, align 4, !tbaa !9
  %1626 = fmul float %1588, %1625
  store float %1626, ptr %1624, align 4, !tbaa !9
  %1627 = add nuw nsw i64 %.1114341946, 1
  %.not1556.not = icmp slt i64 %.1114341946, %.114432064
  br i1 %.not1556.not, label %scalar.ph2500, label %._crit_edge1948, !llvm.loop !61

._crit_edge1948:                                  ; preds = %scalar.ph2500, %middle.block2499
  %1628 = add nuw nsw i64 %.814181950, 1
  %exitcond2142.not = icmp eq i64 %1628, %.pre2168
  br i1 %exitcond2142.not, label %._crit_edge1951, label %.preheader, !llvm.loop !62

._crit_edge1951:                                  ; preds = %._crit_edge1948, %1615
  %1629 = fmul float %1570, %1588
  br label %1630

1630:                                             ; preds = %._crit_edge1951, %1607
  %.10 = phi float [ %1629, %._crit_edge1951 ], [ %1570, %1607 ]
  %1631 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %1631, ptr %20, align 8, !tbaa !5
  %.not15471968 = icmp slt i64 %1631, 1
  br i1 %.not15471968, label %.loopexit1705, label %.lr.ph1972

.lr.ph1972:                                       ; preds = %1630
  %1632 = load float, ptr %33, align 4
  %.idx1551 = shl i64 %1591, 3
  %1633 = getelementptr i8, ptr %52, i64 %.idx1551
  %1634 = getelementptr float, ptr %1633, i64 %.614551981
  %invariant.gep1973 = getelementptr i8, ptr %1634, i64 -4
  %.idx1552 = mul i64 %1591, 12
  %1635 = getelementptr i8, ptr %52, i64 %.idx1552
  %1636 = getelementptr float, ptr %1635, i64 %.614551981
  %invariant.gep1975 = getelementptr i8, ptr %1636, i64 -4
  %1637 = load float, ptr %37, align 4
  %1638 = load float, ptr %36, align 4
  %1639 = fneg float %1638
  %.not1553.not1952 = icmp sgt i64 %.614551981, 1
  %1640 = add i64 %.614551981, -1
  %1641 = fneg float %1632
  br i1 %.not1511167016851686, label %.lr.ph1972.split.us, label %.lr.ph1972.split.preheader

.lr.ph1972.split.preheader:                       ; preds = %.lr.ph1972
  %scevgep2438 = getelementptr i8, ptr %14, i64 %.idx1551
  %scevgep2440 = getelementptr i8, ptr %scevgep2439, i64 %.idx1551
  %scevgep2441 = getelementptr i8, ptr %14, i64 %.idx1552
  %scevgep2442 = getelementptr i8, ptr %scevgep2439, i64 %.idx1552
  %1642 = add nsw i64 %1631, -1
  %1643 = mul i64 %975, %1642
  %scevgep2445 = getelementptr i8, ptr %scevgep2444, i64 %1643
  %1644 = mul i64 %979, %1642
  %scevgep2448 = getelementptr i8, ptr %scevgep2447, i64 %1644
  %min.iters.check2474 = icmp ult i64 %1502, 8
  %bound02449 = icmp ult ptr %scevgep2438, %scevgep2442
  %bound12450 = icmp ult ptr %scevgep2441, %scevgep2440
  %found.conflict2451 = and i1 %bound02449, %bound12450
  %bound02452 = icmp ult ptr %scevgep2438, %scevgep2445
  %bound12453 = icmp ult ptr %scevgep2443, %scevgep2440
  %found.conflict2454 = and i1 %bound02452, %bound12453
  %1645 = or i1 %found.conflict2454, %stride.check2455
  %conflict.rdx2456 = or i1 %found.conflict2451, %1645
  %bound02457 = icmp ult ptr %scevgep2438, %scevgep2448
  %bound12458 = icmp ult ptr %scevgep2446, %scevgep2440
  %found.conflict2459 = and i1 %bound02457, %bound12458
  %1646 = or i1 %found.conflict2459, %stride.check2460
  %conflict.rdx2461 = or i1 %conflict.rdx2456, %1646
  %bound02462 = icmp ult ptr %scevgep2441, %scevgep2445
  %bound12463 = icmp ult ptr %scevgep2443, %scevgep2442
  %found.conflict2464 = and i1 %bound02462, %bound12463
  %conflict.rdx2466 = or i1 %found.conflict2464, %conflict.rdx2461
  %bound02467 = icmp ult ptr %scevgep2441, %scevgep2448
  %bound12468 = icmp ult ptr %scevgep2446, %scevgep2442
  %found.conflict2469 = and i1 %bound02467, %bound12468
  %conflict.rdx2471 = or i1 %found.conflict2469, %conflict.rdx2466
  %n.vec2477 = and i64 %1502, -4
  %ind.end2478 = or disjoint i64 %n.vec2477, 1
  %cmp.n2498 = icmp eq i64 %1502, %n.vec2477
  br label %.lr.ph1972.split

.lr.ph1972.split.us:                              ; preds = %.lr.ph1972
  br i1 %.not1553.not1952, label %.lr.ph1963.us.us.preheader, label %._crit_edge1990

.lr.ph1963.us.us.preheader:                       ; preds = %.lr.ph1972.split.us
  %scevgep2397 = getelementptr i8, ptr %14, i64 %.idx1551
  %scevgep2399 = getelementptr i8, ptr %scevgep2398, i64 %.idx1551
  %1647 = add nsw i64 %1631, -1
  %1648 = mul i64 %965, %1647
  %scevgep2402 = getelementptr i8, ptr %scevgep2401, i64 %1648
  %1649 = mul i64 %969, %1647
  %scevgep2405 = getelementptr i8, ptr %scevgep2404, i64 %1649
  %min.iters.check2416 = icmp ult i64 %1510, 8
  %bound02406 = icmp ult ptr %scevgep2397, %scevgep2402
  %bound12407 = icmp ult ptr %scevgep2400, %scevgep2399
  %found.conflict2408 = and i1 %bound02406, %bound12407
  %1650 = or i1 %found.conflict2408, %stride.check2409
  %bound02410 = icmp ult ptr %scevgep2397, %scevgep2405
  %bound12411 = icmp ult ptr %scevgep2403, %scevgep2399
  %found.conflict2412 = and i1 %bound02410, %bound12411
  %1651 = or i1 %found.conflict2412, %stride.check2413
  %conflict.rdx = or i1 %1650, %1651
  %n.vec2419 = and i64 %1510, -8
  %ind.end2420 = or disjoint i64 %n.vec2419, 1
  %cmp.n2436 = icmp eq i64 %1510, %n.vec2419
  br label %.lr.ph1963.us.us

.lr.ph1963.us.us:                                 ; preds = %.lr.ph1963.us.us.preheader, %..loopexit_crit_edge.us.us
  %.314481969.us.us = phi i64 [ %1676, %..loopexit_crit_edge.us.us ], [ 1, %.lr.ph1963.us.us.preheader ]
  %gep1978.us.us = getelementptr float, ptr %invariant.gep1973, i64 %.314481969.us.us
  %1652 = load float, ptr %gep1978.us.us, align 4, !tbaa !9
  %1653 = fmul float %1652, %1637
  %1654 = add i64 %1640, %.314481969.us.us
  %1655 = mul nsw i64 %1654, %40
  %invariant.gep1964.us.us = getelementptr float, ptr %42, i64 %1655
  %1656 = fmul float %1652, %1641
  %1657 = mul nsw i64 %1654, %43
  %invariant.gep1966.us.us = getelementptr float, ptr %45, i64 %1657
  %brmerge = select i1 %min.iters.check2416, i1 true, i1 %conflict.rdx
  br i1 %brmerge, label %scalar.ph2415.preheader, label %vector.ph2417

vector.ph2417:                                    ; preds = %.lr.ph1963.us.us
  %broadcast.splatinsert2429 = insertelement <4 x float> poison, float %1656, i64 0
  %broadcast.splat2430 = shufflevector <4 x float> %broadcast.splatinsert2429, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2433 = insertelement <4 x float> poison, float %1653, i64 0
  %broadcast.splat2434 = shufflevector <4 x float> %broadcast.splatinsert2433, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body2422

vector.body2422:                                  ; preds = %vector.body2422, %vector.ph2417
  %index2423 = phi i64 [ 0, %vector.ph2417 ], [ %index.next2435, %vector.body2422 ]
  %offset.idx2424 = or disjoint i64 %index2423, 1
  %1658 = getelementptr float, ptr %1633, i64 %offset.idx2424
  %1659 = getelementptr i8, ptr %1658, i64 16
  %wide.load2425 = load <4 x float>, ptr %1658, align 4, !tbaa !9, !alias.scope !63, !noalias !66
  %wide.load2426 = load <4 x float>, ptr %1659, align 4, !tbaa !9, !alias.scope !63, !noalias !66
  %1660 = getelementptr float, ptr %invariant.gep1964.us.us, i64 %offset.idx2424
  %1661 = getelementptr i8, ptr %1660, i64 16
  %wide.load2427 = load <4 x float>, ptr %1660, align 4, !tbaa !9, !alias.scope !69
  %wide.load2428 = load <4 x float>, ptr %1661, align 4, !tbaa !9, !alias.scope !69
  %1662 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2430, <4 x float> %wide.load2427, <4 x float> %wide.load2425)
  %1663 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2430, <4 x float> %wide.load2428, <4 x float> %wide.load2426)
  %1664 = getelementptr float, ptr %invariant.gep1966.us.us, i64 %offset.idx2424
  %1665 = getelementptr i8, ptr %1664, i64 16
  %wide.load2431 = load <4 x float>, ptr %1664, align 4, !tbaa !9, !alias.scope !70
  %wide.load2432 = load <4 x float>, ptr %1665, align 4, !tbaa !9, !alias.scope !70
  %1666 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2434, <4 x float> %wide.load2431, <4 x float> %1662)
  %1667 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2434, <4 x float> %wide.load2432, <4 x float> %1663)
  store <4 x float> %1666, ptr %1658, align 4, !tbaa !9, !alias.scope !63, !noalias !66
  store <4 x float> %1667, ptr %1659, align 4, !tbaa !9, !alias.scope !63, !noalias !66
  %index.next2435 = add nuw i64 %index2423, 8
  %1668 = icmp eq i64 %index.next2435, %n.vec2419
  br i1 %1668, label %middle.block2414, label %vector.body2422, !llvm.loop !71

middle.block2414:                                 ; preds = %vector.body2422
  br i1 %cmp.n2436, label %..loopexit_crit_edge.us.us, label %scalar.ph2415.preheader

scalar.ph2415.preheader:                          ; preds = %.lr.ph1963.us.us, %middle.block2414
  %.1314361961.us.us.ph = phi i64 [ 1, %.lr.ph1963.us.us ], [ %ind.end2420, %middle.block2414 ]
  br label %scalar.ph2415

scalar.ph2415:                                    ; preds = %scalar.ph2415.preheader, %scalar.ph2415
  %.1314361961.us.us = phi i64 [ %1675, %scalar.ph2415 ], [ %.1314361961.us.us.ph, %scalar.ph2415.preheader ]
  %1669 = getelementptr float, ptr %1633, i64 %.1314361961.us.us
  %1670 = load float, ptr %1669, align 4, !tbaa !9
  %gep1965.us.us = getelementptr float, ptr %invariant.gep1964.us.us, i64 %.1314361961.us.us
  %1671 = load float, ptr %gep1965.us.us, align 4, !tbaa !9
  %1672 = call float @llvm.fmuladd.f32(float %1656, float %1671, float %1670)
  %gep1967.us.us = getelementptr float, ptr %invariant.gep1966.us.us, i64 %.1314361961.us.us
  %1673 = load float, ptr %gep1967.us.us, align 4, !tbaa !9
  %1674 = call float @llvm.fmuladd.f32(float %1653, float %1673, float %1672)
  store float %1674, ptr %1669, align 4, !tbaa !9
  %1675 = add nuw nsw i64 %.1314361961.us.us, 1
  %.not1549.not.us.us = icmp slt i64 %1675, %.614551981
  br i1 %.not1549.not.us.us, label %scalar.ph2415, label %..loopexit_crit_edge.us.us, !llvm.loop !72

..loopexit_crit_edge.us.us:                       ; preds = %scalar.ph2415, %middle.block2414
  %1676 = add nuw i64 %.314481969.us.us, 1
  %exitcond2144.not = icmp eq i64 %.314481969.us.us, %1631
  br i1 %exitcond2144.not, label %.loopexit1705, label %.lr.ph1963.us.us, !llvm.loop !73

.lr.ph1972.split:                                 ; preds = %.lr.ph1972.split.preheader, %.loopexit1701
  %.314481969 = phi i64 [ %1710, %.loopexit1701 ], [ 1, %.lr.ph1972.split.preheader ]
  %gep1974 = getelementptr float, ptr %invariant.gep1973, i64 %.314481969
  %1677 = load float, ptr %gep1974, align 4, !tbaa !9
  %gep1976 = getelementptr float, ptr %invariant.gep1975, i64 %.314481969
  %1678 = load float, ptr %gep1976, align 4, !tbaa !9
  %1679 = fmul float %1678, %1639
  %1680 = call float @llvm.fmuladd.f32(float %1637, float %1677, float %1679)
  %1681 = fmul float %1678, %1637
  %1682 = call float @llvm.fmuladd.f32(float %1638, float %1677, float %1681)
  br i1 %.not1553.not1952, label %.lr.ph1955, label %.loopexit1701

.lr.ph1955:                                       ; preds = %.lr.ph1972.split
  %1683 = add i64 %1640, %.314481969
  %1684 = mul nsw i64 %1683, %40
  %invariant.gep1956 = getelementptr float, ptr %42, i64 %1684
  %1685 = fmul float %1677, %1641
  %1686 = mul nsw i64 %1683, %43
  %invariant.gep1958 = getelementptr float, ptr %45, i64 %1686
  %1687 = fmul float %1678, %1641
  %brmerge2740 = select i1 %min.iters.check2474, i1 true, i1 %conflict.rdx2471
  br i1 %brmerge2740, label %scalar.ph2473.preheader, label %vector.ph2475

vector.ph2475:                                    ; preds = %.lr.ph1955
  %broadcast.splatinsert2485 = insertelement <4 x float> poison, float %1685, i64 0
  %broadcast.splat2486 = shufflevector <4 x float> %broadcast.splatinsert2485, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2488 = insertelement <4 x float> poison, float %1680, i64 0
  %broadcast.splat2489 = shufflevector <4 x float> %broadcast.splatinsert2488, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2492 = insertelement <4 x float> poison, float %1687, i64 0
  %broadcast.splat2493 = shufflevector <4 x float> %broadcast.splatinsert2492, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert2495 = insertelement <4 x float> poison, float %1682, i64 0
  %broadcast.splat2496 = shufflevector <4 x float> %broadcast.splatinsert2495, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body2480

vector.body2480:                                  ; preds = %vector.body2480, %vector.ph2475
  %index2481 = phi i64 [ 0, %vector.ph2475 ], [ %index.next2497, %vector.body2480 ]
  %offset.idx2482 = or disjoint i64 %index2481, 1
  %1688 = getelementptr float, ptr %1633, i64 %offset.idx2482
  %wide.load2483 = load <4 x float>, ptr %1688, align 4, !tbaa !9, !alias.scope !74, !noalias !77
  %1689 = getelementptr float, ptr %invariant.gep1956, i64 %offset.idx2482
  %wide.load2484 = load <4 x float>, ptr %1689, align 4, !tbaa !9, !alias.scope !81
  %1690 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2486, <4 x float> %wide.load2484, <4 x float> %wide.load2483)
  %1691 = getelementptr float, ptr %invariant.gep1958, i64 %offset.idx2482
  %wide.load2487 = load <4 x float>, ptr %1691, align 4, !tbaa !9, !alias.scope !82
  %1692 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2489, <4 x float> %wide.load2487, <4 x float> %1690)
  store <4 x float> %1692, ptr %1688, align 4, !tbaa !9, !alias.scope !74, !noalias !77
  %1693 = getelementptr float, ptr %1635, i64 %offset.idx2482
  %wide.load2490 = load <4 x float>, ptr %1693, align 4, !tbaa !9, !alias.scope !83, !noalias !84
  %wide.load2491 = load <4 x float>, ptr %1689, align 4, !tbaa !9, !alias.scope !81
  %1694 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2493, <4 x float> %wide.load2491, <4 x float> %wide.load2490)
  %wide.load2494 = load <4 x float>, ptr %1691, align 4, !tbaa !9, !alias.scope !82
  %1695 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %broadcast.splat2496, <4 x float> %wide.load2494, <4 x float> %1694)
  store <4 x float> %1695, ptr %1693, align 4, !tbaa !9, !alias.scope !83, !noalias !84
  %index.next2497 = add nuw i64 %index2481, 4
  %1696 = icmp eq i64 %index.next2497, %n.vec2477
  br i1 %1696, label %middle.block2472, label %vector.body2480, !llvm.loop !85

middle.block2472:                                 ; preds = %vector.body2480
  br i1 %cmp.n2498, label %.loopexit1701, label %scalar.ph2473.preheader

scalar.ph2473.preheader:                          ; preds = %.lr.ph1955, %middle.block2472
  %.1214351953.ph = phi i64 [ 1, %.lr.ph1955 ], [ %ind.end2478, %middle.block2472 ]
  br label %scalar.ph2473

scalar.ph2473:                                    ; preds = %scalar.ph2473.preheader, %scalar.ph2473
  %.1214351953 = phi i64 [ %1709, %scalar.ph2473 ], [ %.1214351953.ph, %scalar.ph2473.preheader ]
  %1697 = getelementptr float, ptr %1633, i64 %.1214351953
  %1698 = load float, ptr %1697, align 4, !tbaa !9
  %gep1957 = getelementptr float, ptr %invariant.gep1956, i64 %.1214351953
  %1699 = load float, ptr %gep1957, align 4, !tbaa !9
  %1700 = call float @llvm.fmuladd.f32(float %1685, float %1699, float %1698)
  %gep1959 = getelementptr float, ptr %invariant.gep1958, i64 %.1214351953
  %1701 = load float, ptr %gep1959, align 4, !tbaa !9
  %1702 = call float @llvm.fmuladd.f32(float %1680, float %1701, float %1700)
  store float %1702, ptr %1697, align 4, !tbaa !9
  %1703 = getelementptr float, ptr %1635, i64 %.1214351953
  %1704 = load float, ptr %1703, align 4, !tbaa !9
  %1705 = load float, ptr %gep1957, align 4, !tbaa !9
  %1706 = call float @llvm.fmuladd.f32(float %1687, float %1705, float %1704)
  %1707 = load float, ptr %gep1959, align 4, !tbaa !9
  %1708 = call float @llvm.fmuladd.f32(float %1682, float %1707, float %1706)
  store float %1708, ptr %1703, align 4, !tbaa !9
  %1709 = add nuw nsw i64 %.1214351953, 1
  %.not1553.not = icmp slt i64 %1709, %.614551981
  br i1 %.not1553.not, label %scalar.ph2473, label %.loopexit1701, !llvm.loop !86

.loopexit1701:                                    ; preds = %scalar.ph2473, %middle.block2472, %.lr.ph1972.split
  %1710 = add nuw i64 %.314481969, 1
  %exitcond2143.not = icmp eq i64 %.314481969, %1631
  br i1 %exitcond2143.not, label %.loopexit1705, label %.lr.ph1972.split, !llvm.loop !73

.loopexit1705:                                    ; preds = %.loopexit1701, %..loopexit_crit_edge.us.us, %1630, %1522
  %1711 = phi i64 [ %1500, %1522 ], [ %.pre2168, %1630 ], [ %.pre2168, %..loopexit_crit_edge.us.us ], [ %.pre2168, %.loopexit1701 ]
  %.12 = phi float [ %.91985, %1522 ], [ %.10, %1630 ], [ %.10, %..loopexit_crit_edge.us.us ], [ %.10, %.loopexit1701 ]
  %.41391 = phi i64 [ 1, %1522 ], [ 0, %1630 ], [ 0, %..loopexit_crit_edge.us.us ], [ 0, %.loopexit1701 ]
  %1712 = add nsw i64 %.614551981, -1
  %1713 = icmp sgt i64 %.614551981, 1
  %indvar.next2136 = add nuw nsw i64 %indvar2135, 1
  br i1 %1713, label %1499, label %._crit_edge1990, !llvm.loop !87

._crit_edge1990:                                  ; preds = %._crit_edge1942, %.lr.ph1972.split.us, %.loopexit1705, %.loopexit1711
  %1714 = phi i64 [ %1469, %.loopexit1711 ], [ %.pre2168, %._crit_edge1942 ], [ %.pre2168, %.lr.ph1972.split.us ], [ %1711, %.loopexit1705 ]
  %1715 = sub nsw i64 %.214072067, %1714
  %.not1530.not2036 = icmp slt i64 %1714, 1
  br i1 %.not1529, label %1822, label %1716

1716:                                             ; preds = %._crit_edge1990
  %.pre2169.pre = load i64, ptr %3, align 8, !tbaa !5
  br i1 %.not1530.not2036, label %.loopexit1710, label %.lr.ph2015

.lr.ph2015:                                       ; preds = %1716
  %.not15391993 = icmp slt i64 %.pre2169.pre, 1
  %.not15402006 = icmp slt i64 %.114432064, 2
  %1717 = add i64 %.pre2169.pre, -1
  %xtraiter2688 = and i64 %.pre2169.pre, 3
  %1718 = icmp ult i64 %1717, 3
  %unroll_iter2690 = and i64 %.pre2169.pre, 9223372036854775804
  %lcmp.mod2689.not = icmp eq i64 %xtraiter2688, 0
  %xtraiter2693 = and i64 %.pre2169.pre, 1
  %1719 = icmp eq i64 %1717, 0
  %unroll_iter2696 = and i64 %.pre2169.pre, 9223372036854775806
  %lcmp.mod2695.not = icmp eq i64 %xtraiter2693, 0
  br label %1720

1720:                                             ; preds = %.lr.ph2015, %1775
  %.914192013 = phi i64 [ 0, %.lr.ph2015 ], [ %1776, %1775 ]
  br i1 %.not15391993, label %.preheader1704.thread, label %.lr.ph1996

.lr.ph1996:                                       ; preds = %1720
  %1721 = add nuw nsw i64 %.914192013, 2
  %1722 = mul nuw nsw i64 %.pre2169.pre, %1721
  %1723 = getelementptr float, ptr %14, i64 %1722
  %1724 = add nuw nsw i64 %.914192013, 4
  %1725 = mul nuw nsw i64 %.pre2169.pre, %1724
  %1726 = getelementptr float, ptr %52, i64 %1725
  br i1 %1718, label %.preheader1704.unr-lcssa, label %.lr.ph1996.new

.lr.ph1996.new:                                   ; preds = %.lr.ph1996
  %invariant.gep2736 = getelementptr i8, ptr %1726, i64 4
  br label %1737

.preheader1704.unr-lcssa:                         ; preds = %1737, %.lr.ph1996
  %.1414371994.unr = phi i64 [ 1, %.lr.ph1996 ], [ %1755, %1737 ]
  br i1 %lcmp.mod2689.not, label %.preheader1704, label %.epil.preheader2687

.epil.preheader2687:                              ; preds = %.preheader1704.unr-lcssa, %.epil.preheader2687
  %.1414371994.epil = phi i64 [ %1731, %.epil.preheader2687 ], [ %.1414371994.unr, %.preheader1704.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader2687 ], [ 0, %.preheader1704.unr-lcssa ]
  %1727 = load float, ptr %1723, align 4, !tbaa !9
  %gep1992.epil = getelementptr float, ptr %invariant.gep1991, i64 %.1414371994.epil
  %1728 = load float, ptr %gep1992.epil, align 4, !tbaa !9
  %1729 = fmul float %1727, %1728
  %1730 = getelementptr float, ptr %1726, i64 %.1414371994.epil
  store float %1729, ptr %1730, align 4, !tbaa !9
  %1731 = add nuw i64 %.1414371994.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter2688
  br i1 %epil.iter.cmp.not, label %.preheader1704, label %.epil.preheader2687, !llvm.loop !88

.preheader1704:                                   ; preds = %.epil.preheader2687, %.preheader1704.unr-lcssa
  br i1 %.not15402006, label %1775, label %.lr.ph2008

.preheader1704.thread:                            ; preds = %1720
  br i1 %.not15402006, label %1775, label %._crit_edge2009

.lr.ph2008:                                       ; preds = %.preheader1704
  %1732 = add nuw nsw i64 %.914192013, 2
  %1733 = mul nuw nsw i64 %.pre2169.pre, %1732
  %invariant.gep2010 = getelementptr float, ptr %52, i64 %1733
  %1734 = add nuw nsw i64 %.914192013, 4
  %1735 = mul nuw nsw i64 %.pre2169.pre, %1734
  %1736 = getelementptr float, ptr %52, i64 %1735
  br i1 %.not15391993, label %._crit_edge2009, label %.lr.ph2002

1737:                                             ; preds = %1737, %.lr.ph1996.new
  %.1414371994 = phi i64 [ 1, %.lr.ph1996.new ], [ %1755, %1737 ]
  %niter2691 = phi i64 [ 0, %.lr.ph1996.new ], [ %niter2691.next.3, %1737 ]
  %1738 = load float, ptr %1723, align 4, !tbaa !9
  %gep1992 = getelementptr float, ptr %invariant.gep1991, i64 %.1414371994
  %1739 = load float, ptr %gep1992, align 4, !tbaa !9
  %1740 = fmul float %1738, %1739
  %1741 = getelementptr float, ptr %1726, i64 %.1414371994
  store float %1740, ptr %1741, align 4, !tbaa !9
  %1742 = load float, ptr %1723, align 4, !tbaa !9
  %gep1992.1 = getelementptr float, ptr %10, i64 %.1414371994
  %1743 = load float, ptr %gep1992.1, align 4, !tbaa !9
  %1744 = fmul float %1742, %1743
  %gep2737 = getelementptr float, ptr %invariant.gep2736, i64 %.1414371994
  store float %1744, ptr %gep2737, align 4, !tbaa !9
  %1745 = add nuw nsw i64 %.1414371994, 2
  %1746 = load float, ptr %1723, align 4, !tbaa !9
  %gep1992.2 = getelementptr float, ptr %invariant.gep1991, i64 %1745
  %1747 = load float, ptr %gep1992.2, align 4, !tbaa !9
  %1748 = fmul float %1746, %1747
  %1749 = getelementptr float, ptr %1726, i64 %1745
  store float %1748, ptr %1749, align 4, !tbaa !9
  %1750 = add nuw i64 %.1414371994, 3
  %1751 = load float, ptr %1723, align 4, !tbaa !9
  %gep1992.3 = getelementptr float, ptr %invariant.gep1991, i64 %1750
  %1752 = load float, ptr %gep1992.3, align 4, !tbaa !9
  %1753 = fmul float %1751, %1752
  %1754 = getelementptr float, ptr %1726, i64 %1750
  store float %1753, ptr %1754, align 4, !tbaa !9
  %1755 = add nuw i64 %.1414371994, 4
  %niter2691.next.3 = add i64 %niter2691, 4
  %niter2691.ncmp.3 = icmp eq i64 %niter2691.next.3, %unroll_iter2690
  br i1 %niter2691.ncmp.3, label %.preheader1704.unr-lcssa, label %1737, !llvm.loop !90

.lr.ph2002:                                       ; preds = %.lr.ph2008, %._crit_edge2003
  %.014442007 = phi i64 [ %1774, %._crit_edge2003 ], [ 2, %.lr.ph2008 ]
  %gep2011 = getelementptr float, ptr %invariant.gep2010, i64 %.014442007
  %1756 = mul nsw i64 %.014442007, %49
  %invariant.gep2004 = getelementptr float, ptr %51, i64 %1756
  br i1 %1719, label %._crit_edge2003.unr-lcssa, label %.lr.ph2002.new

.lr.ph2002.new:                                   ; preds = %.lr.ph2002, %.lr.ph2002.new
  %.1514382000 = phi i64 [ %1768, %.lr.ph2002.new ], [ 1, %.lr.ph2002 ]
  %niter2697 = phi i64 [ %niter2697.next.1, %.lr.ph2002.new ], [ 0, %.lr.ph2002 ]
  %1757 = load float, ptr %gep2011, align 4, !tbaa !9
  %gep2005 = getelementptr float, ptr %invariant.gep2004, i64 %.1514382000
  %1758 = load float, ptr %gep2005, align 4, !tbaa !9
  %1759 = getelementptr float, ptr %1736, i64 %.1514382000
  %1760 = load float, ptr %1759, align 4, !tbaa !9
  %1761 = call float @llvm.fmuladd.f32(float %1757, float %1758, float %1760)
  store float %1761, ptr %1759, align 4, !tbaa !9
  %1762 = add nuw i64 %.1514382000, 1
  %1763 = load float, ptr %gep2011, align 4, !tbaa !9
  %gep2005.1 = getelementptr float, ptr %invariant.gep2004, i64 %1762
  %1764 = load float, ptr %gep2005.1, align 4, !tbaa !9
  %1765 = getelementptr float, ptr %1736, i64 %1762
  %1766 = load float, ptr %1765, align 4, !tbaa !9
  %1767 = call float @llvm.fmuladd.f32(float %1763, float %1764, float %1766)
  store float %1767, ptr %1765, align 4, !tbaa !9
  %1768 = add nuw i64 %.1514382000, 2
  %niter2697.next.1 = add i64 %niter2697, 2
  %niter2697.ncmp.1 = icmp eq i64 %niter2697.next.1, %unroll_iter2696
  br i1 %niter2697.ncmp.1, label %._crit_edge2003.unr-lcssa, label %.lr.ph2002.new, !llvm.loop !91

._crit_edge2003.unr-lcssa:                        ; preds = %.lr.ph2002.new, %.lr.ph2002
  %.1514382000.unr = phi i64 [ 1, %.lr.ph2002 ], [ %1768, %.lr.ph2002.new ]
  br i1 %lcmp.mod2695.not, label %._crit_edge2003, label %._crit_edge2003.epilog-lcssa

._crit_edge2003.epilog-lcssa:                     ; preds = %._crit_edge2003.unr-lcssa
  %1769 = load float, ptr %gep2011, align 4, !tbaa !9
  %gep2005.epil = getelementptr float, ptr %invariant.gep2004, i64 %.1514382000.unr
  %1770 = load float, ptr %gep2005.epil, align 4, !tbaa !9
  %1771 = getelementptr float, ptr %1736, i64 %.1514382000.unr
  %1772 = load float, ptr %1771, align 4, !tbaa !9
  %1773 = call float @llvm.fmuladd.f32(float %1769, float %1770, float %1772)
  store float %1773, ptr %1771, align 4, !tbaa !9
  br label %._crit_edge2003

._crit_edge2003:                                  ; preds = %._crit_edge2003.unr-lcssa, %._crit_edge2003.epilog-lcssa
  %1774 = add nuw nsw i64 %.014442007, 1
  %.not1540.not = icmp slt i64 %.014442007, %.114432064
  br i1 %.not1540.not, label %.lr.ph2002, label %._crit_edge2009, !llvm.loop !92

._crit_edge2009:                                  ; preds = %._crit_edge2003, %.preheader1704.thread, %.lr.ph2008
  store i64 %.pre2169.pre, ptr %21, align 8, !tbaa !5
  br label %1775

1775:                                             ; preds = %.preheader1704.thread, %._crit_edge2009, %.preheader1704
  %1776 = add nuw nsw i64 %.914192013, 1
  %exitcond2147.not = icmp eq i64 %1776, %1714
  br i1 %exitcond2147.not, label %._crit_edge2016, label %1720, !llvm.loop !93

._crit_edge2016:                                  ; preds = %1775
  %.not15382017 = icmp slt i64 %.pre2169.pre, 1
  %or.cond2262 = select i1 %.not1530.not2036, i1 true, i1 %.not15382017
  br i1 %or.cond2262, label %.loopexit1710, label %.lr.ph2020.preheader

.lr.ph2020.preheader:                             ; preds = %._crit_edge2016
  %1777 = shl i64 %.214072067, 2
  %1778 = add i64 %1777, -4
  %1779 = shl i64 %1714, 2
  %1780 = sub i64 %1778, %1779
  %1781 = mul i64 %49, %1780
  %scevgep2372 = getelementptr i8, ptr %10, i64 %1781
  %1782 = add i64 %1777, -8
  %1783 = mul i64 %49, %1782
  %1784 = shl i64 %.pre2169.pre, 2
  %1785 = getelementptr i8, ptr %10, i64 %1783
  %scevgep2373 = getelementptr i8, ptr %1785, i64 %1784
  %1786 = shl i64 %.pre2169.pre, 4
  %scevgep2374 = getelementptr i8, ptr %14, i64 %1786
  %1787 = add i64 %1779, 16
  %1788 = mul i64 %.pre2169.pre, %1787
  %scevgep2375 = getelementptr i8, ptr %14, i64 %1788
  %1789 = add nuw i64 %.pre2169.pre, 1
  %min.iters.check2383 = icmp ult i64 %.pre2169.pre, 8
  %bound02376 = icmp ult ptr %scevgep2372, %scevgep2375
  %bound12377 = icmp ult ptr %scevgep2374, %scevgep2373
  %found.conflict2378 = and i1 %bound02376, %bound12377
  %1790 = or i64 %961, %1784
  %1791 = icmp slt i64 %1790, 0
  %1792 = or i1 %found.conflict2378, %1791
  %n.vec2386 = and i64 %.pre2169.pre, 9223372036854775800
  %ind.end2387 = or disjoint i64 %n.vec2386, 1
  %cmp.n2395 = icmp eq i64 %.pre2169.pre, %n.vec2386
  br label %.lr.ph2020

.lr.ph2020:                                       ; preds = %.lr.ph2020.preheader, %._crit_edge2021
  %.1014202025 = phi i64 [ %1821, %._crit_edge2021 ], [ 0, %.lr.ph2020.preheader ]
  %1793 = add nuw nsw i64 %.1014202025, 4
  %1794 = mul nuw nsw i64 %.pre2169.pre, %1793
  %1795 = getelementptr float, ptr %52, i64 %1794
  %1796 = add nsw i64 %.1014202025, %1715
  %1797 = mul nsw i64 %1796, %49
  %invariant.gep2022 = getelementptr float, ptr %51, i64 %1797
  %brmerge2741 = select i1 %min.iters.check2383, i1 true, i1 %1792
  br i1 %brmerge2741, label %scalar.ph2382.preheader, label %vector.body2389

vector.body2389:                                  ; preds = %.lr.ph2020, %vector.body2389
  %index2390 = phi i64 [ %index.next2394, %vector.body2389 ], [ 0, %.lr.ph2020 ]
  %offset.idx2391 = or disjoint i64 %index2390, 1
  %1798 = getelementptr float, ptr %1795, i64 %offset.idx2391
  %1799 = getelementptr i8, ptr %1798, i64 16
  %wide.load2392 = load <4 x float>, ptr %1798, align 4, !tbaa !9, !alias.scope !94
  %wide.load2393 = load <4 x float>, ptr %1799, align 4, !tbaa !9, !alias.scope !94
  %1800 = getelementptr float, ptr %invariant.gep2022, i64 %offset.idx2391
  %1801 = getelementptr i8, ptr %1800, i64 16
  store <4 x float> %wide.load2392, ptr %1800, align 4, !tbaa !9, !alias.scope !97, !noalias !94
  store <4 x float> %wide.load2393, ptr %1801, align 4, !tbaa !9, !alias.scope !97, !noalias !94
  %index.next2394 = add nuw i64 %index2390, 8
  %1802 = icmp eq i64 %index.next2394, %n.vec2386
  br i1 %1802, label %middle.block2381, label %vector.body2389, !llvm.loop !99

middle.block2381:                                 ; preds = %vector.body2389
  br i1 %cmp.n2395, label %._crit_edge2021, label %scalar.ph2382.preheader

scalar.ph2382.preheader:                          ; preds = %.lr.ph2020, %middle.block2381
  %.162018.ph = phi i64 [ 1, %.lr.ph2020 ], [ %ind.end2387, %middle.block2381 ]
  %1803 = sub i64 %1789, %.162018.ph
  %1804 = sub i64 %.pre2169.pre, %.162018.ph
  %xtraiter2698 = and i64 %1803, 3
  %lcmp.mod2699.not = icmp eq i64 %xtraiter2698, 0
  br i1 %lcmp.mod2699.not, label %scalar.ph2382.prol.loopexit, label %scalar.ph2382.prol

scalar.ph2382.prol:                               ; preds = %scalar.ph2382.preheader, %scalar.ph2382.prol
  %.162018.prol = phi i64 [ %1807, %scalar.ph2382.prol ], [ %.162018.ph, %scalar.ph2382.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph2382.prol ], [ 0, %scalar.ph2382.preheader ]
  %1805 = getelementptr float, ptr %1795, i64 %.162018.prol
  %1806 = load float, ptr %1805, align 4, !tbaa !9
  %gep2023.prol = getelementptr float, ptr %invariant.gep2022, i64 %.162018.prol
  store float %1806, ptr %gep2023.prol, align 4, !tbaa !9
  %1807 = add nuw i64 %.162018.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter2698
  br i1 %prol.iter.cmp.not, label %scalar.ph2382.prol.loopexit, label %scalar.ph2382.prol, !llvm.loop !100

scalar.ph2382.prol.loopexit:                      ; preds = %scalar.ph2382.prol, %scalar.ph2382.preheader
  %.162018.unr = phi i64 [ %.162018.ph, %scalar.ph2382.preheader ], [ %1807, %scalar.ph2382.prol ]
  %1808 = icmp ult i64 %1804, 3
  br i1 %1808, label %._crit_edge2021, label %scalar.ph2382

scalar.ph2382:                                    ; preds = %scalar.ph2382.prol.loopexit, %scalar.ph2382
  %.162018 = phi i64 [ %1820, %scalar.ph2382 ], [ %.162018.unr, %scalar.ph2382.prol.loopexit ]
  %1809 = getelementptr float, ptr %1795, i64 %.162018
  %1810 = load float, ptr %1809, align 4, !tbaa !9
  %gep2023 = getelementptr float, ptr %invariant.gep2022, i64 %.162018
  store float %1810, ptr %gep2023, align 4, !tbaa !9
  %1811 = add nuw i64 %.162018, 1
  %1812 = getelementptr float, ptr %1795, i64 %1811
  %1813 = load float, ptr %1812, align 4, !tbaa !9
  %gep2023.1 = getelementptr float, ptr %invariant.gep2022, i64 %1811
  store float %1813, ptr %gep2023.1, align 4, !tbaa !9
  %1814 = add nuw i64 %.162018, 2
  %1815 = getelementptr float, ptr %1795, i64 %1814
  %1816 = load float, ptr %1815, align 4, !tbaa !9
  %gep2023.2 = getelementptr float, ptr %invariant.gep2022, i64 %1814
  store float %1816, ptr %gep2023.2, align 4, !tbaa !9
  %1817 = add nuw i64 %.162018, 3
  %1818 = getelementptr float, ptr %1795, i64 %1817
  %1819 = load float, ptr %1818, align 4, !tbaa !9
  %gep2023.3 = getelementptr float, ptr %invariant.gep2022, i64 %1817
  store float %1819, ptr %gep2023.3, align 4, !tbaa !9
  %1820 = add nuw i64 %.162018, 4
  %exitcond2150.not.3 = icmp eq i64 %1817, %.pre2169.pre
  br i1 %exitcond2150.not.3, label %._crit_edge2021, label %scalar.ph2382, !llvm.loop !101

._crit_edge2021:                                  ; preds = %scalar.ph2382.prol.loopexit, %scalar.ph2382, %middle.block2381
  %1821 = add nuw nsw i64 %.1014202025, 1
  %exitcond2151.not = icmp eq i64 %1821, %1714
  br i1 %exitcond2151.not, label %.loopexit1710, label %.lr.ph2020, !llvm.loop !102

1822:                                             ; preds = %._crit_edge1990
  br i1 %.not1530.not2036, label %.loopexit1710, label %.lr.ph2039

.lr.ph2039:                                       ; preds = %1822
  %1823 = load i64, ptr %3, align 8, !tbaa !5
  %.not15312029 = icmp slt i64 %1823, 1
  %1824 = shl i64 %.214072067, 2
  %1825 = add i64 %1824, -4
  %1826 = shl i64 %1714, 2
  %1827 = sub i64 %1825, %1826
  %1828 = mul i64 %49, %1827
  %scevgep2351 = getelementptr i8, ptr %10, i64 %1828
  %1829 = add i64 %1824, -8
  %1830 = mul i64 %49, %1829
  %1831 = shl i64 %1823, 2
  %1832 = getelementptr i8, ptr %10, i64 %1830
  %scevgep2352 = getelementptr i8, ptr %1832, i64 %1831
  %1833 = shl i64 %1823, 3
  %scevgep2353 = getelementptr i8, ptr %14, i64 %1833
  %1834 = add i64 %1826, 8
  %1835 = mul i64 %1823, %1834
  %scevgep2354 = getelementptr i8, ptr %14, i64 %1835
  %1836 = add i64 %1823, 1
  %min.iters.check2358 = icmp ult i64 %1823, 8
  %bound0 = icmp ult ptr %scevgep2351, %scevgep2354
  %bound1 = icmp ult ptr %scevgep2353, %scevgep2352
  %found.conflict = and i1 %bound0, %bound1
  %1837 = or i64 %961, %1831
  %1838 = icmp slt i64 %1837, 0
  %1839 = or i1 %found.conflict, %1838
  %n.vec2361 = and i64 %1823, 9223372036854775800
  %ind.end2362 = or disjoint i64 %n.vec2361, 1
  %cmp.n2370 = icmp eq i64 %1823, %n.vec2361
  br label %1840

1840:                                             ; preds = %.lr.ph2039, %._crit_edge2033
  %.1114212037 = phi i64 [ 0, %.lr.ph2039 ], [ %1869, %._crit_edge2033 ]
  br i1 %.not15312029, label %._crit_edge2033, label %.lr.ph2032

.lr.ph2032:                                       ; preds = %1840
  %1841 = add nuw nsw i64 %.1114212037, 2
  %1842 = mul nuw nsw i64 %1823, %1841
  %1843 = getelementptr float, ptr %52, i64 %1842
  %1844 = add nsw i64 %.1114212037, %1715
  %1845 = mul nsw i64 %1844, %49
  %invariant.gep2034 = getelementptr float, ptr %51, i64 %1845
  %brmerge2742 = select i1 %min.iters.check2358, i1 true, i1 %1839
  br i1 %brmerge2742, label %scalar.ph2357.preheader, label %vector.body2364

vector.body2364:                                  ; preds = %.lr.ph2032, %vector.body2364
  %index2365 = phi i64 [ %index.next2369, %vector.body2364 ], [ 0, %.lr.ph2032 ]
  %offset.idx2366 = or disjoint i64 %index2365, 1
  %1846 = getelementptr float, ptr %1843, i64 %offset.idx2366
  %1847 = getelementptr i8, ptr %1846, i64 16
  %wide.load2367 = load <4 x float>, ptr %1846, align 4, !tbaa !9, !alias.scope !103
  %wide.load2368 = load <4 x float>, ptr %1847, align 4, !tbaa !9, !alias.scope !103
  %1848 = getelementptr float, ptr %invariant.gep2034, i64 %offset.idx2366
  %1849 = getelementptr i8, ptr %1848, i64 16
  store <4 x float> %wide.load2367, ptr %1848, align 4, !tbaa !9, !alias.scope !106, !noalias !103
  store <4 x float> %wide.load2368, ptr %1849, align 4, !tbaa !9, !alias.scope !106, !noalias !103
  %index.next2369 = add nuw i64 %index2365, 8
  %1850 = icmp eq i64 %index.next2369, %n.vec2361
  br i1 %1850, label %middle.block2356, label %vector.body2364, !llvm.loop !108

middle.block2356:                                 ; preds = %vector.body2364
  br i1 %cmp.n2370, label %._crit_edge2033, label %scalar.ph2357.preheader

scalar.ph2357.preheader:                          ; preds = %.lr.ph2032, %middle.block2356
  %.172030.ph = phi i64 [ 1, %.lr.ph2032 ], [ %ind.end2362, %middle.block2356 ]
  %1851 = sub i64 %1836, %.172030.ph
  %1852 = sub i64 %1823, %.172030.ph
  %xtraiter2700 = and i64 %1851, 3
  %lcmp.mod2701.not = icmp eq i64 %xtraiter2700, 0
  br i1 %lcmp.mod2701.not, label %scalar.ph2357.prol.loopexit, label %scalar.ph2357.prol

scalar.ph2357.prol:                               ; preds = %scalar.ph2357.preheader, %scalar.ph2357.prol
  %.172030.prol = phi i64 [ %1855, %scalar.ph2357.prol ], [ %.172030.ph, %scalar.ph2357.preheader ]
  %prol.iter2702 = phi i64 [ %prol.iter2702.next, %scalar.ph2357.prol ], [ 0, %scalar.ph2357.preheader ]
  %1853 = getelementptr float, ptr %1843, i64 %.172030.prol
  %1854 = load float, ptr %1853, align 4, !tbaa !9
  %gep2035.prol = getelementptr float, ptr %invariant.gep2034, i64 %.172030.prol
  store float %1854, ptr %gep2035.prol, align 4, !tbaa !9
  %1855 = add nuw i64 %.172030.prol, 1
  %prol.iter2702.next = add i64 %prol.iter2702, 1
  %prol.iter2702.cmp.not = icmp eq i64 %prol.iter2702.next, %xtraiter2700
  br i1 %prol.iter2702.cmp.not, label %scalar.ph2357.prol.loopexit, label %scalar.ph2357.prol, !llvm.loop !109

scalar.ph2357.prol.loopexit:                      ; preds = %scalar.ph2357.prol, %scalar.ph2357.preheader
  %.172030.unr = phi i64 [ %.172030.ph, %scalar.ph2357.preheader ], [ %1855, %scalar.ph2357.prol ]
  %1856 = icmp ult i64 %1852, 3
  br i1 %1856, label %._crit_edge2033, label %scalar.ph2357

scalar.ph2357:                                    ; preds = %scalar.ph2357.prol.loopexit, %scalar.ph2357
  %.172030 = phi i64 [ %1868, %scalar.ph2357 ], [ %.172030.unr, %scalar.ph2357.prol.loopexit ]
  %1857 = getelementptr float, ptr %1843, i64 %.172030
  %1858 = load float, ptr %1857, align 4, !tbaa !9
  %gep2035 = getelementptr float, ptr %invariant.gep2034, i64 %.172030
  store float %1858, ptr %gep2035, align 4, !tbaa !9
  %1859 = add nuw i64 %.172030, 1
  %1860 = getelementptr float, ptr %1843, i64 %1859
  %1861 = load float, ptr %1860, align 4, !tbaa !9
  %gep2035.1 = getelementptr float, ptr %invariant.gep2034, i64 %1859
  store float %1861, ptr %gep2035.1, align 4, !tbaa !9
  %1862 = add nuw i64 %.172030, 2
  %1863 = getelementptr float, ptr %1843, i64 %1862
  %1864 = load float, ptr %1863, align 4, !tbaa !9
  %gep2035.2 = getelementptr float, ptr %invariant.gep2034, i64 %1862
  store float %1864, ptr %gep2035.2, align 4, !tbaa !9
  %1865 = add nuw i64 %.172030, 3
  %1866 = getelementptr float, ptr %1843, i64 %1865
  %1867 = load float, ptr %1866, align 4, !tbaa !9
  %gep2035.3 = getelementptr float, ptr %invariant.gep2034, i64 %1865
  store float %1867, ptr %gep2035.3, align 4, !tbaa !9
  %1868 = add nuw i64 %.172030, 4
  %exitcond2154.not.3 = icmp eq i64 %1865, %1823
  br i1 %exitcond2154.not.3, label %._crit_edge2033, label %scalar.ph2357, !llvm.loop !110

._crit_edge2033:                                  ; preds = %scalar.ph2357.prol.loopexit, %scalar.ph2357, %middle.block2356, %1840
  %1869 = add nuw nsw i64 %.1114212037, 1
  %exitcond2155.not = icmp eq i64 %1869, %1714
  br i1 %exitcond2155.not, label %.loopexit1710, label %1840, !llvm.loop !111

.loopexit1710:                                    ; preds = %._crit_edge2021, %._crit_edge2033, %1716, %._crit_edge2016, %1822
  %.11404 = phi i64 [ %.114432064, %1822 ], [ %.pre2169.pre, %._crit_edge2016 ], [ %.pre2169.pre, %1716 ], [ %.114432064, %._crit_edge2033 ], [ %.pre2169.pre, %._crit_edge2021 ]
  store i64 %.11404, ptr %20, align 8, !tbaa !5
  %.not15342047 = icmp slt i64 %.11404, 1
  br i1 %.not1511167016851686, label %1890, label %1870

1870:                                             ; preds = %.loopexit1710
  br i1 %.not15342047, label %.loopexit1708, label %.lr.ph2044

.lr.ph2044:                                       ; preds = %1870
  %1871 = mul nsw i64 %1715, %49
  %1872 = add nsw i64 %1715, 1
  %1873 = mul nsw i64 %1872, %49
  br label %1874

1874:                                             ; preds = %.lr.ph2044, %1874
  %.132042 = phi float [ 0.000000e+00, %.lr.ph2044 ], [ %1888, %1874 ]
  %.714562041 = phi i64 [ 1, %.lr.ph2044 ], [ %1889, %1874 ]
  %1875 = getelementptr float, ptr %51, i64 %.714562041
  %1876 = getelementptr float, ptr %1875, i64 %1871
  %1877 = load float, ptr %1876, align 4, !tbaa !9
  %1878 = fcmp oge float %1877, 0.000000e+00
  %1879 = fneg float %1877
  %1880 = select i1 %1878, float %1877, float %1879
  %1881 = getelementptr float, ptr %1875, i64 %1873
  %1882 = load float, ptr %1881, align 4, !tbaa !9
  %1883 = fcmp oge float %1882, 0.000000e+00
  %1884 = fneg float %1882
  %1885 = select i1 %1883, float %1882, float %1884
  %1886 = fadd float %1880, %1885
  %1887 = fcmp oge float %.132042, %1886
  %1888 = select i1 %1887, float %.132042, float %1886
  %1889 = add nuw i64 %.714562041, 1
  %exitcond2156.not = icmp eq i64 %.714562041, %.11404
  br i1 %exitcond2156.not, label %..loopexit1709_crit_edge, label %1874, !llvm.loop !112

1890:                                             ; preds = %.loopexit1710
  br i1 %.not15342047, label %.loopexit1708, label %.lr.ph2051

.lr.ph2051:                                       ; preds = %1890
  %1891 = mul nsw i64 %1715, %49
  %invariant.gep2053 = getelementptr float, ptr %51, i64 %1891
  %xtraiter2704 = and i64 %.11404, 1
  %1892 = icmp eq i64 %.11404, 1
  br i1 %1892, label %..loopexit1708_crit_edge.unr-lcssa, label %.lr.ph2051.new

.lr.ph2051.new:                                   ; preds = %.lr.ph2051
  %unroll_iter2709 = and i64 %.11404, 9223372036854775806
  %invariant.gep2738 = getelementptr i8, ptr %invariant.gep2053, i64 4
  br label %1893

1893:                                             ; preds = %1893, %.lr.ph2051.new
  %.142049 = phi float [ 0.000000e+00, %.lr.ph2051.new ], [ %1905, %1893 ]
  %.814572048 = phi i64 [ 1, %.lr.ph2051.new ], [ %1906, %1893 ]
  %niter2710 = phi i64 [ 0, %.lr.ph2051.new ], [ %niter2710.next.1, %1893 ]
  %gep2054 = getelementptr float, ptr %invariant.gep2053, i64 %.814572048
  %1894 = load float, ptr %gep2054, align 4, !tbaa !9
  %1895 = fcmp oge float %1894, 0.000000e+00
  %1896 = fneg float %1894
  %1897 = select i1 %1895, float %1894, float %1896
  %1898 = fcmp oge float %.142049, %1897
  %1899 = select i1 %1898, float %.142049, float %1897
  %gep2739 = getelementptr float, ptr %invariant.gep2738, i64 %.814572048
  %1900 = load float, ptr %gep2739, align 4, !tbaa !9
  %1901 = fcmp oge float %1900, 0.000000e+00
  %1902 = fneg float %1900
  %1903 = select i1 %1901, float %1900, float %1902
  %1904 = fcmp oge float %1899, %1903
  %1905 = select i1 %1904, float %1899, float %1903
  %1906 = add nuw i64 %.814572048, 2
  %niter2710.next.1 = add i64 %niter2710, 2
  %niter2710.ncmp.1 = icmp eq i64 %niter2710.next.1, %unroll_iter2709
  br i1 %niter2710.ncmp.1, label %..loopexit1708_crit_edge.unr-lcssa, label %1893, !llvm.loop !113

..loopexit1708_crit_edge.unr-lcssa:               ; preds = %1893, %.lr.ph2051
  %.lcssa2652.ph = phi float [ poison, %.lr.ph2051 ], [ %1900, %1893 ]
  %.lcssa2651.ph = phi float [ poison, %.lr.ph2051 ], [ %1905, %1893 ]
  %.142049.unr = phi float [ 0.000000e+00, %.lr.ph2051 ], [ %1905, %1893 ]
  %.814572048.unr = phi i64 [ 1, %.lr.ph2051 ], [ %1906, %1893 ]
  %lcmp.mod2706.not = icmp eq i64 %xtraiter2704, 0
  br i1 %lcmp.mod2706.not, label %..loopexit1708_crit_edge, label %..loopexit1708_crit_edge.epilog-lcssa

..loopexit1708_crit_edge.epilog-lcssa:            ; preds = %..loopexit1708_crit_edge.unr-lcssa
  %gep2054.epil = getelementptr float, ptr %invariant.gep2053, i64 %.814572048.unr
  %1907 = load float, ptr %gep2054.epil, align 4, !tbaa !9
  %1908 = fcmp oge float %1907, 0.000000e+00
  %1909 = fneg float %1907
  %1910 = select i1 %1908, float %1907, float %1909
  %1911 = fcmp oge float %.142049.unr, %1910
  %1912 = select i1 %1911, float %.142049.unr, float %1910
  br label %..loopexit1708_crit_edge

..loopexit1708_crit_edge:                         ; preds = %..loopexit1708_crit_edge.unr-lcssa, %..loopexit1708_crit_edge.epilog-lcssa
  %.lcssa2652 = phi float [ %.lcssa2652.ph, %..loopexit1708_crit_edge.unr-lcssa ], [ %1907, %..loopexit1708_crit_edge.epilog-lcssa ]
  %.lcssa2651 = phi float [ %.lcssa2651.ph, %..loopexit1708_crit_edge.unr-lcssa ], [ %1912, %..loopexit1708_crit_edge.epilog-lcssa ]
  store float %.lcssa2652, ptr %22, align 4, !tbaa !9
  br label %.loopexit1708

..loopexit1709_crit_edge:                         ; preds = %1874
  store float %1877, ptr %22, align 4, !tbaa !9
  br label %.loopexit1708

.loopexit1708:                                    ; preds = %1870, %..loopexit1709_crit_edge, %1890, %..loopexit1708_crit_edge
  %.15 = phi float [ %.lcssa2651, %..loopexit1708_crit_edge ], [ 0.000000e+00, %1890 ], [ %1888, %..loopexit1709_crit_edge ], [ 0.000000e+00, %1870 ]
  %1913 = load float, ptr %38, align 4
  %1914 = fcmp ogt float %.15, %1913
  br i1 %1914, label %1915, label %.loopexit1707

1915:                                             ; preds = %.loopexit1708
  %1916 = fdiv float 1.000000e+00, %.15
  %1917 = add nsw i64 %1714, -1
  store i64 %1917, ptr %20, align 8, !tbaa !5
  %.not1536.not2062 = icmp sgt i64 %1714, 0
  br i1 %.not1536.not2062, label %.preheader1703.lr.ph, label %.loopexit1707

.preheader1703.lr.ph:                             ; preds = %1915
  %.not15372056 = icmp slt i64 %.11404, 1
  %min.iters.check2336 = icmp ult i64 %.11404, 8
  %n.vec2339 = and i64 %.11404, 9223372036854775800
  %ind.end2340 = or disjoint i64 %n.vec2339, 1
  %broadcast.splatinsert2347 = insertelement <4 x float> poison, float %1916, i64 0
  %broadcast.splat2348 = shufflevector <4 x float> %broadcast.splatinsert2347, <4 x float> poison, <4 x i32> zeroinitializer
  %cmp.n2350 = icmp eq i64 %.11404, %n.vec2339
  br label %.preheader1703

.preheader1703:                                   ; preds = %.preheader1703.lr.ph, %._crit_edge2059
  %.1214222063 = phi i64 [ 0, %.preheader1703.lr.ph ], [ %1928, %._crit_edge2059 ]
  br i1 %.not15372056, label %._crit_edge2059, label %.lr.ph2058

.lr.ph2058:                                       ; preds = %.preheader1703
  %1918 = add nsw i64 %.1214222063, %1715
  %1919 = mul nsw i64 %1918, %49
  %invariant.gep2060 = getelementptr float, ptr %51, i64 %1919
  br i1 %min.iters.check2336, label %scalar.ph2335.preheader, label %vector.body2342

vector.body2342:                                  ; preds = %.lr.ph2058, %vector.body2342
  %index2343 = phi i64 [ %index.next2349, %vector.body2342 ], [ 0, %.lr.ph2058 ]
  %offset.idx2344 = or disjoint i64 %index2343, 1
  %1920 = getelementptr float, ptr %invariant.gep2060, i64 %offset.idx2344
  %1921 = getelementptr i8, ptr %1920, i64 16
  %wide.load2345 = load <4 x float>, ptr %1920, align 4, !tbaa !9
  %wide.load2346 = load <4 x float>, ptr %1921, align 4, !tbaa !9
  %1922 = fmul <4 x float> %broadcast.splat2348, %wide.load2345
  %1923 = fmul <4 x float> %broadcast.splat2348, %wide.load2346
  store <4 x float> %1922, ptr %1920, align 4, !tbaa !9
  store <4 x float> %1923, ptr %1921, align 4, !tbaa !9
  %index.next2349 = add nuw i64 %index2343, 8
  %1924 = icmp eq i64 %index.next2349, %n.vec2339
  br i1 %1924, label %middle.block2334, label %vector.body2342, !llvm.loop !114

middle.block2334:                                 ; preds = %vector.body2342
  br i1 %cmp.n2350, label %._crit_edge2059, label %scalar.ph2335.preheader

scalar.ph2335.preheader:                          ; preds = %middle.block2334, %.lr.ph2058
  %.182057.ph = phi i64 [ 1, %.lr.ph2058 ], [ %ind.end2340, %middle.block2334 ]
  br label %scalar.ph2335

scalar.ph2335:                                    ; preds = %scalar.ph2335.preheader, %scalar.ph2335
  %.182057 = phi i64 [ %1927, %scalar.ph2335 ], [ %.182057.ph, %scalar.ph2335.preheader ]
  %gep2061 = getelementptr float, ptr %invariant.gep2060, i64 %.182057
  %1925 = load float, ptr %gep2061, align 4, !tbaa !9
  %1926 = fmul float %1916, %1925
  store float %1926, ptr %gep2061, align 4, !tbaa !9
  %1927 = add nuw i64 %.182057, 1
  %exitcond2158.not = icmp eq i64 %.182057, %.11404
  br i1 %exitcond2158.not, label %._crit_edge2059, label %scalar.ph2335, !llvm.loop !115

._crit_edge2059:                                  ; preds = %scalar.ph2335, %middle.block2334, %.preheader1703
  %1928 = add nuw nsw i64 %.1214222063, 1
  %exitcond2159.not = icmp eq i64 %1928, %1714
  br i1 %exitcond2159.not, label %.loopexit1707, label %.preheader1703, !llvm.loop !116

.loopexit1707:                                    ; preds = %._crit_edge2059, %.thread2205, %1915, %1027, %._crit_edge1899, %1062, %.loopexit1708
  %1929 = phi float [ %1913, %.loopexit1708 ], [ %1028, %._crit_edge1899 ], [ %1028, %1062 ], [ %1028, %1027 ], [ %1913, %1915 ], [ %1028, %.thread2205 ], [ %1913, %._crit_edge2059 ]
  %.31408 = phi i64 [ %1715, %.loopexit1708 ], [ %1083, %._crit_edge1899 ], [ %.214072067, %1062 ], [ %.214072067, %1027 ], [ %1715, %1915 ], [ %.214072067, %.thread2205 ], [ %1715, %._crit_edge2059 ]
  %.8 = phi i64 [ %.7167116841688, %.loopexit1708 ], [ 0, %._crit_edge1899 ], [ 0, %1062 ], [ 0, %1027 ], [ %.7167116841688, %1915 ], [ 1, %.thread2205 ], [ %.7167116841688, %._crit_edge2059 ]
  %1930 = add i64 %.114432064, -1
  %indvar.next2134 = add nuw nsw i64 %indvar2133, 1
  %exitcond2160.not = icmp eq i64 %indvar.next2134, %951
  br i1 %exitcond2160.not, label %.loopexit1713, label %1027, !llvm.loop !117

.loopexit1713:                                    ; preds = %.loopexit1707, %.loopexit1719, %143, %1254, %474, %.thread1635, %.thread1623
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  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 i64 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

; 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.umax.i64(i64, i64) #4

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

; 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 @llvm.smax.i64(i64, i64) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fmuladd.v2f32(<2 x float>, <2 x float>, <2 x float>) #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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { 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 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12, !18, !19}
!18 = !{!"llvm.loop.isvectorized", i32 1}
!19 = !{!"llvm.loop.unroll.runtime.disable"}
!20 = distinct !{!20, !12, !19, !18}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12, !18, !19}
!27 = distinct !{!27, !12, !19, !18}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12, !18, !19}
!34 = distinct !{!34, !12, !19, !18}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = distinct !{!37, !12, !18, !19}
!38 = distinct !{!38, !12, !18}
!39 = !{!40}
!40 = distinct !{!40, !41}
!41 = distinct !{!41, !"LVerDomain"}
!42 = !{!43}
!43 = distinct !{!43, !41}
!44 = !{!45}
!45 = distinct !{!45, !41}
!46 = !{!47}
!47 = distinct !{!47, !41}
!48 = !{!49}
!49 = distinct !{!49, !41}
!50 = !{!51, !40, !43, !45, !47}
!51 = distinct !{!51, !41}
!52 = !{!51}
!53 = !{!40, !43, !45, !47}
!54 = distinct !{!54, !12, !18, !19}
!55 = distinct !{!55, !12, !18}
!56 = distinct !{!56, !12, !18, !19}
!57 = distinct !{!57, !12, !19, !18}
!58 = distinct !{!58, !12}
!59 = distinct !{!59, !12}
!60 = distinct !{!60, !12, !18, !19}
!61 = distinct !{!61, !12, !19, !18}
!62 = distinct !{!62, !12}
!63 = !{!64}
!64 = distinct !{!64, !65}
!65 = distinct !{!65, !"LVerDomain"}
!66 = !{!67, !68}
!67 = distinct !{!67, !65}
!68 = distinct !{!68, !65}
!69 = !{!67}
!70 = !{!68}
!71 = distinct !{!71, !12, !18, !19}
!72 = distinct !{!72, !12, !18}
!73 = distinct !{!73, !12}
!74 = !{!75}
!75 = distinct !{!75, !76}
!76 = distinct !{!76, !"LVerDomain"}
!77 = !{!78, !79, !80}
!78 = distinct !{!78, !76}
!79 = distinct !{!79, !76}
!80 = distinct !{!80, !76}
!81 = !{!79}
!82 = !{!80}
!83 = !{!78}
!84 = !{!79, !80}
!85 = distinct !{!85, !12, !18, !19}
!86 = distinct !{!86, !12, !18}
!87 = distinct !{!87, !12}
!88 = distinct !{!88, !89}
!89 = !{!"llvm.loop.unroll.disable"}
!90 = distinct !{!90, !12}
!91 = distinct !{!91, !12}
!92 = distinct !{!92, !12}
!93 = distinct !{!93, !12}
!94 = !{!95}
!95 = distinct !{!95, !96}
!96 = distinct !{!96, !"LVerDomain"}
!97 = !{!98}
!98 = distinct !{!98, !96}
!99 = distinct !{!99, !12, !18, !19}
!100 = distinct !{!100, !89}
!101 = distinct !{!101, !12, !18}
!102 = distinct !{!102, !12}
!103 = !{!104}
!104 = distinct !{!104, !105}
!105 = distinct !{!105, !"LVerDomain"}
!106 = !{!107}
!107 = distinct !{!107, !105}
!108 = distinct !{!108, !12, !18, !19}
!109 = distinct !{!109, !89}
!110 = distinct !{!110, !12, !18}
!111 = distinct !{!111, !12}
!112 = distinct !{!112, !12}
!113 = distinct !{!113, !12}
!114 = distinct !{!114, !12, !18, !19}
!115 = distinct !{!115, !12, !19, !18}
!116 = distinct !{!116, !12}
!117 = distinct !{!117, !12}


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