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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @slarrb_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr noundef %16) #0 {
  %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 ptr, align 8
  %35 = alloca i64, align 8
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %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 float, align 4
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %47 = alloca float, align 4
  %48 = alloca float, align 4
  %49 = alloca float, align 4
  %50 = alloca float, align 4
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %57 = alloca float, align 4
  %58 = alloca i64, align 8
  %59 = alloca float, align 4
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  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
  store ptr %16, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 4, 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 4, ptr %44) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 4, 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
  %62 = load ptr, ptr %30, align 8, !tbaa !5
  %63 = getelementptr inbounds i64, ptr %62, i32 -1
  store ptr %63, ptr %30, align 8, !tbaa !5
  %64 = load ptr, ptr %29, align 8, !tbaa !5
  %65 = getelementptr inbounds float, ptr %64, i32 -1
  store ptr %65, ptr %29, align 8, !tbaa !5
  %66 = load ptr, ptr %28, align 8, !tbaa !5
  %67 = getelementptr inbounds float, ptr %66, i32 -1
  store ptr %67, ptr %28, align 8, !tbaa !5
  %68 = load ptr, ptr %27, align 8, !tbaa !5
  %69 = getelementptr inbounds float, ptr %68, i32 -1
  store ptr %69, ptr %27, align 8, !tbaa !5
  %70 = load ptr, ptr %26, align 8, !tbaa !5
  %71 = getelementptr inbounds float, ptr %70, i32 -1
  store ptr %71, ptr %26, align 8, !tbaa !5
  %72 = load ptr, ptr %20, align 8, !tbaa !5
  %73 = getelementptr inbounds float, ptr %72, i32 -1
  store ptr %73, ptr %20, align 8, !tbaa !5
  %74 = load ptr, ptr %19, align 8, !tbaa !5
  %75 = getelementptr inbounds float, ptr %74, i32 -1
  store ptr %75, ptr %19, align 8, !tbaa !5
  %76 = load ptr, ptr %34, align 8, !tbaa !5
  store i64 0, ptr %76, align 8, !tbaa !9
  %77 = load ptr, ptr %32, align 8, !tbaa !5
  %78 = load float, ptr %77, align 4, !tbaa !11
  %79 = load ptr, ptr %31, align 8, !tbaa !5
  %80 = load float, ptr %79, align 4, !tbaa !11
  %81 = fadd float %78, %80
  %82 = fpext float %81 to double
  %83 = call double @log(double noundef %82) #4
  %84 = load ptr, ptr %31, align 8, !tbaa !5
  %85 = load float, ptr %84, align 4, !tbaa !11
  %86 = fpext float %85 to double
  %87 = call double @log(double noundef %86) #4
  %88 = fsub double %83, %87
  %89 = call double @log(double noundef 2.000000e+00) #4
  %90 = fdiv double %88, %89
  %91 = fptosi double %90 to i64
  %92 = add nsw i64 %91, 2
  store i64 %92, ptr %61, align 8, !tbaa !9
  %93 = load ptr, ptr %31, align 8, !tbaa !5
  %94 = load float, ptr %93, align 4, !tbaa !11
  %95 = fmul float %94, 2.000000e+00
  store float %95, ptr %59, align 4, !tbaa !11
  %96 = load ptr, ptr %33, align 8, !tbaa !5
  %97 = load i64, ptr %96, align 8, !tbaa !9
  store i64 %97, ptr %40, align 8, !tbaa !9
  %98 = load i64, ptr %40, align 8, !tbaa !9
  %99 = icmp slt i64 %98, 1
  br i1 %99, label %105, label %100

100:                                              ; preds = %17
  %101 = load i64, ptr %40, align 8, !tbaa !9
  %102 = load ptr, ptr %18, align 8, !tbaa !5
  %103 = load i64, ptr %102, align 8, !tbaa !9
  %104 = icmp sgt i64 %101, %103
  br i1 %104, label %105, label %108

105:                                              ; preds = %100, %17
  %106 = load ptr, ptr %18, align 8, !tbaa !5
  %107 = load i64, ptr %106, align 8, !tbaa !9
  store i64 %107, ptr %40, align 8, !tbaa !9
  br label %108

108:                                              ; preds = %105, %100
  %109 = load ptr, ptr %21, align 8, !tbaa !5
  %110 = load i64, ptr %109, align 8, !tbaa !9
  store i64 %110, ptr %41, align 8, !tbaa !9
  store i64 0, ptr %52, align 8, !tbaa !9
  store i64 0, ptr %53, align 8, !tbaa !9
  %111 = load ptr, ptr %27, align 8, !tbaa !5
  %112 = load i64, ptr %41, align 8, !tbaa !9
  %113 = load ptr, ptr %25, align 8, !tbaa !5
  %114 = load i64, ptr %113, align 8, !tbaa !9
  %115 = sub nsw i64 %112, %114
  %116 = getelementptr inbounds float, ptr %111, i64 %115
  %117 = load float, ptr %116, align 4, !tbaa !11
  store float %117, ptr %49, align 4, !tbaa !11
  %118 = load ptr, ptr %22, align 8, !tbaa !5
  %119 = load i64, ptr %118, align 8, !tbaa !9
  store i64 %119, ptr %35, align 8, !tbaa !9
  %120 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %120, ptr %38, align 8, !tbaa !9
  br label %121

121:                                              ; preds = %343, %108
  %122 = load i64, ptr %38, align 8, !tbaa !9
  %123 = load i64, ptr %35, align 8, !tbaa !9
  %124 = icmp sle i64 %122, %123
  br i1 %124, label %125, label %346

125:                                              ; preds = %121
  %126 = load i64, ptr %38, align 8, !tbaa !9
  %127 = shl i64 %126, 1
  store i64 %127, ptr %39, align 8, !tbaa !9
  %128 = load i64, ptr %38, align 8, !tbaa !9
  %129 = load ptr, ptr %25, align 8, !tbaa !5
  %130 = load i64, ptr %129, align 8, !tbaa !9
  %131 = sub nsw i64 %128, %130
  store i64 %131, ptr %42, align 8, !tbaa !9
  %132 = load ptr, ptr %26, align 8, !tbaa !5
  %133 = load i64, ptr %42, align 8, !tbaa !9
  %134 = getelementptr inbounds float, ptr %132, i64 %133
  %135 = load float, ptr %134, align 4, !tbaa !11
  %136 = load ptr, ptr %28, align 8, !tbaa !5
  %137 = load i64, ptr %42, align 8, !tbaa !9
  %138 = getelementptr inbounds float, ptr %136, i64 %137
  %139 = load float, ptr %138, align 4, !tbaa !11
  %140 = fsub float %135, %139
  store float %140, ptr %50, align 4, !tbaa !11
  %141 = load ptr, ptr %26, align 8, !tbaa !5
  %142 = load i64, ptr %42, align 8, !tbaa !9
  %143 = getelementptr inbounds float, ptr %141, i64 %142
  %144 = load float, ptr %143, align 4, !tbaa !11
  %145 = load ptr, ptr %28, align 8, !tbaa !5
  %146 = load i64, ptr %42, align 8, !tbaa !9
  %147 = getelementptr inbounds float, ptr %145, i64 %146
  %148 = load float, ptr %147, align 4, !tbaa !11
  %149 = fadd float %144, %148
  store float %149, ptr %56, align 4, !tbaa !11
  %150 = load float, ptr %49, align 4, !tbaa !11
  store float %150, ptr %48, align 4, !tbaa !11
  %151 = load ptr, ptr %27, align 8, !tbaa !5
  %152 = load i64, ptr %42, align 8, !tbaa !9
  %153 = getelementptr inbounds float, ptr %151, i64 %152
  %154 = load float, ptr %153, align 4, !tbaa !11
  store float %154, ptr %49, align 4, !tbaa !11
  %155 = load float, ptr %48, align 4, !tbaa !11
  %156 = load float, ptr %49, align 4, !tbaa !11
  %157 = fcmp ole float %155, %156
  br i1 %157, label %158, label %160

158:                                              ; preds = %125
  %159 = load float, ptr %48, align 4, !tbaa !11
  br label %162

160:                                              ; preds = %125
  %161 = load float, ptr %49, align 4, !tbaa !11
  br label %162

162:                                              ; preds = %160, %158
  %163 = phi float [ %159, %158 ], [ %161, %160 ]
  %164 = fpext float %163 to double
  %165 = fptrunc double %164 to float
  store float %165, ptr %44, align 4, !tbaa !11
  %166 = load ptr, ptr %28, align 8, !tbaa !5
  %167 = load i64, ptr %42, align 8, !tbaa !9
  %168 = getelementptr inbounds float, ptr %166, i64 %167
  %169 = load float, ptr %168, align 4, !tbaa !11
  store float %169, ptr %47, align 4, !tbaa !11
  br label %170

170:                                              ; preds = %182, %162
  %171 = load ptr, ptr %18, align 8, !tbaa !5
  %172 = load ptr, ptr %19, align 8, !tbaa !5
  %173 = getelementptr inbounds float, ptr %172, i64 1
  %174 = load ptr, ptr %20, align 8, !tbaa !5
  %175 = getelementptr inbounds float, ptr %174, i64 1
  %176 = load ptr, ptr %31, align 8, !tbaa !5
  %177 = call i64 @slaneg_(ptr noundef %171, ptr noundef %173, ptr noundef %175, ptr noundef %50, ptr noundef %176, ptr noundef %40)
  store i64 %177, ptr %58, align 8, !tbaa !9
  %178 = load i64, ptr %58, align 8, !tbaa !9
  %179 = load i64, ptr %38, align 8, !tbaa !9
  %180 = sub nsw i64 %179, 1
  %181 = icmp sgt i64 %178, %180
  br i1 %181, label %182, label %188

182:                                              ; preds = %170
  %183 = load float, ptr %47, align 4, !tbaa !11
  %184 = load float, ptr %50, align 4, !tbaa !11
  %185 = fsub float %184, %183
  store float %185, ptr %50, align 4, !tbaa !11
  %186 = load float, ptr %47, align 4, !tbaa !11
  %187 = fmul float %186, 2.000000e+00
  store float %187, ptr %47, align 4, !tbaa !11
  br label %170

188:                                              ; preds = %170
  %189 = load ptr, ptr %28, align 8, !tbaa !5
  %190 = load i64, ptr %42, align 8, !tbaa !9
  %191 = getelementptr inbounds float, ptr %189, i64 %190
  %192 = load float, ptr %191, align 4, !tbaa !11
  store float %192, ptr %47, align 4, !tbaa !11
  br label %193

193:                                              ; preds = %204, %188
  %194 = load ptr, ptr %18, align 8, !tbaa !5
  %195 = load ptr, ptr %19, align 8, !tbaa !5
  %196 = getelementptr inbounds float, ptr %195, i64 1
  %197 = load ptr, ptr %20, align 8, !tbaa !5
  %198 = getelementptr inbounds float, ptr %197, i64 1
  %199 = load ptr, ptr %31, align 8, !tbaa !5
  %200 = call i64 @slaneg_(ptr noundef %194, ptr noundef %196, ptr noundef %198, ptr noundef %56, ptr noundef %199, ptr noundef %40)
  store i64 %200, ptr %58, align 8, !tbaa !9
  %201 = load i64, ptr %58, align 8, !tbaa !9
  %202 = load i64, ptr %38, align 8, !tbaa !9
  %203 = icmp slt i64 %201, %202
  br i1 %203, label %204, label %210

204:                                              ; preds = %193
  %205 = load float, ptr %47, align 4, !tbaa !11
  %206 = load float, ptr %56, align 4, !tbaa !11
  %207 = fadd float %206, %205
  store float %207, ptr %56, align 4, !tbaa !11
  %208 = load float, ptr %47, align 4, !tbaa !11
  %209 = fmul float %208, 2.000000e+00
  store float %209, ptr %47, align 4, !tbaa !11
  br label %193

210:                                              ; preds = %193
  %211 = load float, ptr %50, align 4, !tbaa !11
  %212 = load float, ptr %56, align 4, !tbaa !11
  %213 = fsub float %211, %212
  store float %213, ptr %36, align 4, !tbaa !11
  %214 = load float, ptr %36, align 4, !tbaa !11
  %215 = fcmp oge float %214, 0.000000e+00
  br i1 %215, label %216, label %218

216:                                              ; preds = %210
  %217 = load float, ptr %36, align 4, !tbaa !11
  br label %221

218:                                              ; preds = %210
  %219 = load float, ptr %36, align 4, !tbaa !11
  %220 = fneg float %219
  br label %221

221:                                              ; preds = %218, %216
  %222 = phi float [ %217, %216 ], [ %220, %218 ]
  %223 = fpext float %222 to double
  %224 = fmul double %223, 5.000000e-01
  %225 = fptrunc double %224 to float
  store float %225, ptr %57, align 4, !tbaa !11
  %226 = load float, ptr %50, align 4, !tbaa !11
  %227 = fcmp oge float %226, 0.000000e+00
  br i1 %227, label %228, label %230

228:                                              ; preds = %221
  %229 = load float, ptr %50, align 4, !tbaa !11
  br label %233

230:                                              ; preds = %221
  %231 = load float, ptr %50, align 4, !tbaa !11
  %232 = fneg float %231
  br label %233

233:                                              ; preds = %230, %228
  %234 = phi float [ %229, %228 ], [ %232, %230 ]
  %235 = fpext float %234 to double
  %236 = fptrunc double %235 to float
  store float %236, ptr %36, align 4, !tbaa !11
  %237 = load float, ptr %56, align 4, !tbaa !11
  %238 = fcmp oge float %237, 0.000000e+00
  br i1 %238, label %239, label %241

239:                                              ; preds = %233
  %240 = load float, ptr %56, align 4, !tbaa !11
  br label %244

241:                                              ; preds = %233
  %242 = load float, ptr %56, align 4, !tbaa !11
  %243 = fneg float %242
  br label %244

244:                                              ; preds = %241, %239
  %245 = phi float [ %240, %239 ], [ %243, %241 ]
  %246 = fpext float %245 to double
  %247 = fptrunc double %246 to float
  store float %247, ptr %37, align 4, !tbaa !11
  %248 = load float, ptr %36, align 4, !tbaa !11
  %249 = load float, ptr %37, align 4, !tbaa !11
  %250 = fcmp oge float %248, %249
  br i1 %250, label %251, label %253

251:                                              ; preds = %244
  %252 = load float, ptr %36, align 4, !tbaa !11
  br label %255

253:                                              ; preds = %244
  %254 = load float, ptr %37, align 4, !tbaa !11
  br label %255

255:                                              ; preds = %253, %251
  %256 = phi float [ %252, %251 ], [ %254, %253 ]
  %257 = fpext float %256 to double
  %258 = fptrunc double %257 to float
  store float %258, ptr %46, align 4, !tbaa !11
  %259 = load ptr, ptr %23, align 8, !tbaa !5
  %260 = load float, ptr %259, align 4, !tbaa !11
  %261 = load float, ptr %44, align 4, !tbaa !11
  %262 = fmul float %260, %261
  store float %262, ptr %36, align 4, !tbaa !11
  %263 = load ptr, ptr %24, align 8, !tbaa !5
  %264 = load float, ptr %263, align 4, !tbaa !11
  %265 = load float, ptr %46, align 4, !tbaa !11
  %266 = fmul float %264, %265
  store float %266, ptr %37, align 4, !tbaa !11
  %267 = load float, ptr %36, align 4, !tbaa !11
  %268 = load float, ptr %37, align 4, !tbaa !11
  %269 = fcmp oge float %267, %268
  br i1 %269, label %270, label %272

270:                                              ; preds = %255
  %271 = load float, ptr %36, align 4, !tbaa !11
  br label %274

272:                                              ; preds = %255
  %273 = load float, ptr %37, align 4, !tbaa !11
  br label %274

274:                                              ; preds = %272, %270
  %275 = phi float [ %271, %270 ], [ %273, %272 ]
  %276 = fpext float %275 to double
  %277 = fptrunc double %276 to float
  store float %277, ptr %55, align 4, !tbaa !11
  %278 = load float, ptr %57, align 4, !tbaa !11
  %279 = load float, ptr %55, align 4, !tbaa !11
  %280 = fcmp ole float %278, %279
  br i1 %280, label %285, label %281

281:                                              ; preds = %274
  %282 = load float, ptr %57, align 4, !tbaa !11
  %283 = load float, ptr %59, align 4, !tbaa !11
  %284 = fcmp ole float %282, %283
  br i1 %284, label %285, label %319

285:                                              ; preds = %281, %274
  %286 = load ptr, ptr %30, align 8, !tbaa !5
  %287 = load i64, ptr %39, align 8, !tbaa !9
  %288 = sub nsw i64 %287, 1
  %289 = getelementptr inbounds i64, ptr %286, i64 %288
  store i64 -1, ptr %289, align 8, !tbaa !9
  %290 = load i64, ptr %38, align 8, !tbaa !9
  %291 = load i64, ptr %41, align 8, !tbaa !9
  %292 = icmp eq i64 %290, %291
  br i1 %292, label %293, label %301

293:                                              ; preds = %285
  %294 = load i64, ptr %38, align 8, !tbaa !9
  %295 = load ptr, ptr %22, align 8, !tbaa !5
  %296 = load i64, ptr %295, align 8, !tbaa !9
  %297 = icmp slt i64 %294, %296
  br i1 %297, label %298, label %301

298:                                              ; preds = %293
  %299 = load i64, ptr %38, align 8, !tbaa !9
  %300 = add nsw i64 %299, 1
  store i64 %300, ptr %41, align 8, !tbaa !9
  br label %301

301:                                              ; preds = %298, %293, %285
  %302 = load i64, ptr %53, align 8, !tbaa !9
  %303 = load i64, ptr %41, align 8, !tbaa !9
  %304 = icmp sge i64 %302, %303
  br i1 %304, label %305, label %318

305:                                              ; preds = %301
  %306 = load i64, ptr %38, align 8, !tbaa !9
  %307 = load ptr, ptr %22, align 8, !tbaa !5
  %308 = load i64, ptr %307, align 8, !tbaa !9
  %309 = icmp sle i64 %306, %308
  br i1 %309, label %310, label %318

310:                                              ; preds = %305
  %311 = load i64, ptr %38, align 8, !tbaa !9
  %312 = add nsw i64 %311, 1
  %313 = load ptr, ptr %30, align 8, !tbaa !5
  %314 = load i64, ptr %53, align 8, !tbaa !9
  %315 = shl i64 %314, 1
  %316 = sub nsw i64 %315, 1
  %317 = getelementptr inbounds i64, ptr %313, i64 %316
  store i64 %312, ptr %317, align 8, !tbaa !9
  br label %318

318:                                              ; preds = %310, %305, %301
  br label %333

319:                                              ; preds = %281
  %320 = load i64, ptr %38, align 8, !tbaa !9
  store i64 %320, ptr %53, align 8, !tbaa !9
  %321 = load i64, ptr %52, align 8, !tbaa !9
  %322 = add nsw i64 %321, 1
  store i64 %322, ptr %52, align 8, !tbaa !9
  %323 = load i64, ptr %38, align 8, !tbaa !9
  %324 = add nsw i64 %323, 1
  %325 = load ptr, ptr %30, align 8, !tbaa !5
  %326 = load i64, ptr %39, align 8, !tbaa !9
  %327 = sub nsw i64 %326, 1
  %328 = getelementptr inbounds i64, ptr %325, i64 %327
  store i64 %324, ptr %328, align 8, !tbaa !9
  %329 = load i64, ptr %58, align 8, !tbaa !9
  %330 = load ptr, ptr %30, align 8, !tbaa !5
  %331 = load i64, ptr %39, align 8, !tbaa !9
  %332 = getelementptr inbounds i64, ptr %330, i64 %331
  store i64 %329, ptr %332, align 8, !tbaa !9
  br label %333

333:                                              ; preds = %319, %318
  %334 = load float, ptr %50, align 4, !tbaa !11
  %335 = load ptr, ptr %29, align 8, !tbaa !5
  %336 = load i64, ptr %39, align 8, !tbaa !9
  %337 = sub nsw i64 %336, 1
  %338 = getelementptr inbounds float, ptr %335, i64 %337
  store float %334, ptr %338, align 4, !tbaa !11
  %339 = load float, ptr %56, align 4, !tbaa !11
  %340 = load ptr, ptr %29, align 8, !tbaa !5
  %341 = load i64, ptr %39, align 8, !tbaa !9
  %342 = getelementptr inbounds float, ptr %340, i64 %341
  store float %339, ptr %342, align 4, !tbaa !11
  br label %343

343:                                              ; preds = %333
  %344 = load i64, ptr %38, align 8, !tbaa !9
  %345 = add nsw i64 %344, 1
  store i64 %345, ptr %38, align 8, !tbaa !9
  br label %121, !llvm.loop !13

346:                                              ; preds = %121
  store i64 0, ptr %51, align 8, !tbaa !9
  br label %347

347:                                              ; preds = %538, %346
  %348 = load i64, ptr %41, align 8, !tbaa !9
  %349 = sub nsw i64 %348, 1
  store i64 %349, ptr %53, align 8, !tbaa !9
  %350 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %350, ptr %38, align 8, !tbaa !9
  %351 = load i64, ptr %52, align 8, !tbaa !9
  store i64 %351, ptr %60, align 8, !tbaa !9
  %352 = load i64, ptr %60, align 8, !tbaa !9
  store i64 %352, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %43, align 8, !tbaa !9
  br label %353

353:                                              ; preds = %526, %347
  %354 = load i64, ptr %43, align 8, !tbaa !9
  %355 = load i64, ptr %35, align 8, !tbaa !9
  %356 = icmp sle i64 %354, %355
  br i1 %356, label %357, label %529

357:                                              ; preds = %353
  %358 = load i64, ptr %38, align 8, !tbaa !9
  %359 = shl i64 %358, 1
  store i64 %359, ptr %39, align 8, !tbaa !9
  %360 = load i64, ptr %38, align 8, !tbaa !9
  %361 = load ptr, ptr %25, align 8, !tbaa !5
  %362 = load i64, ptr %361, align 8, !tbaa !9
  %363 = sub nsw i64 %360, %362
  store i64 %363, ptr %42, align 8, !tbaa !9
  %364 = load ptr, ptr %27, align 8, !tbaa !5
  %365 = load i64, ptr %42, align 8, !tbaa !9
  %366 = getelementptr inbounds float, ptr %364, i64 %365
  %367 = load float, ptr %366, align 4, !tbaa !11
  store float %367, ptr %49, align 4, !tbaa !11
  %368 = load float, ptr %49, align 4, !tbaa !11
  store float %368, ptr %48, align 4, !tbaa !11
  %369 = load i64, ptr %42, align 8, !tbaa !9
  %370 = icmp sgt i64 %369, 1
  br i1 %370, label %371, label %377

371:                                              ; preds = %357
  %372 = load ptr, ptr %27, align 8, !tbaa !5
  %373 = load i64, ptr %42, align 8, !tbaa !9
  %374 = sub nsw i64 %373, 1
  %375 = getelementptr inbounds float, ptr %372, i64 %374
  %376 = load float, ptr %375, align 4, !tbaa !11
  store float %376, ptr %48, align 4, !tbaa !11
  br label %377

377:                                              ; preds = %371, %357
  %378 = load float, ptr %48, align 4, !tbaa !11
  %379 = load float, ptr %49, align 4, !tbaa !11
  %380 = fcmp ole float %378, %379
  br i1 %380, label %381, label %383

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

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

385:                                              ; preds = %383, %381
  %386 = phi float [ %382, %381 ], [ %384, %383 ]
  %387 = fpext float %386 to double
  %388 = fptrunc double %387 to float
  store float %388, ptr %44, align 4, !tbaa !11
  %389 = load ptr, ptr %30, align 8, !tbaa !5
  %390 = load i64, ptr %39, align 8, !tbaa !9
  %391 = sub nsw i64 %390, 1
  %392 = getelementptr inbounds i64, ptr %389, i64 %391
  %393 = load i64, ptr %392, align 8, !tbaa !9
  store i64 %393, ptr %54, align 8, !tbaa !9
  %394 = load ptr, ptr %29, align 8, !tbaa !5
  %395 = load i64, ptr %39, align 8, !tbaa !9
  %396 = sub nsw i64 %395, 1
  %397 = getelementptr inbounds float, ptr %394, i64 %396
  %398 = load float, ptr %397, align 4, !tbaa !11
  store float %398, ptr %50, align 4, !tbaa !11
  %399 = load ptr, ptr %29, align 8, !tbaa !5
  %400 = load i64, ptr %39, align 8, !tbaa !9
  %401 = getelementptr inbounds float, ptr %399, i64 %400
  %402 = load float, ptr %401, align 4, !tbaa !11
  store float %402, ptr %56, align 4, !tbaa !11
  %403 = load float, ptr %50, align 4, !tbaa !11
  %404 = load float, ptr %56, align 4, !tbaa !11
  %405 = fadd float %403, %404
  %406 = fmul float %405, 5.000000e-01
  store float %406, ptr %45, align 4, !tbaa !11
  %407 = load float, ptr %56, align 4, !tbaa !11
  %408 = load float, ptr %45, align 4, !tbaa !11
  %409 = fsub float %407, %408
  store float %409, ptr %57, align 4, !tbaa !11
  %410 = load float, ptr %50, align 4, !tbaa !11
  %411 = fcmp oge float %410, 0.000000e+00
  br i1 %411, label %412, label %414

412:                                              ; preds = %385
  %413 = load float, ptr %50, align 4, !tbaa !11
  br label %417

414:                                              ; preds = %385
  %415 = load float, ptr %50, align 4, !tbaa !11
  %416 = fneg float %415
  br label %417

417:                                              ; preds = %414, %412
  %418 = phi float [ %413, %412 ], [ %416, %414 ]
  %419 = fpext float %418 to double
  %420 = fptrunc double %419 to float
  store float %420, ptr %36, align 4, !tbaa !11
  %421 = load float, ptr %56, align 4, !tbaa !11
  %422 = fcmp oge float %421, 0.000000e+00
  br i1 %422, label %423, label %425

423:                                              ; preds = %417
  %424 = load float, ptr %56, align 4, !tbaa !11
  br label %428

425:                                              ; preds = %417
  %426 = load float, ptr %56, align 4, !tbaa !11
  %427 = fneg float %426
  br label %428

428:                                              ; preds = %425, %423
  %429 = phi float [ %424, %423 ], [ %427, %425 ]
  %430 = fpext float %429 to double
  %431 = fptrunc double %430 to float
  store float %431, ptr %37, align 4, !tbaa !11
  %432 = load float, ptr %36, align 4, !tbaa !11
  %433 = load float, ptr %37, align 4, !tbaa !11
  %434 = fcmp oge float %432, %433
  br i1 %434, label %435, label %437

435:                                              ; preds = %428
  %436 = load float, ptr %36, align 4, !tbaa !11
  br label %439

437:                                              ; preds = %428
  %438 = load float, ptr %37, align 4, !tbaa !11
  br label %439

439:                                              ; preds = %437, %435
  %440 = phi float [ %436, %435 ], [ %438, %437 ]
  %441 = fpext float %440 to double
  %442 = fptrunc double %441 to float
  store float %442, ptr %46, align 4, !tbaa !11
  %443 = load ptr, ptr %23, align 8, !tbaa !5
  %444 = load float, ptr %443, align 4, !tbaa !11
  %445 = load float, ptr %44, align 4, !tbaa !11
  %446 = fmul float %444, %445
  store float %446, ptr %36, align 4, !tbaa !11
  %447 = load ptr, ptr %24, align 8, !tbaa !5
  %448 = load float, ptr %447, align 4, !tbaa !11
  %449 = load float, ptr %46, align 4, !tbaa !11
  %450 = fmul float %448, %449
  store float %450, ptr %37, align 4, !tbaa !11
  %451 = load float, ptr %36, align 4, !tbaa !11
  %452 = load float, ptr %37, align 4, !tbaa !11
  %453 = fcmp oge float %451, %452
  br i1 %453, label %454, label %456

454:                                              ; preds = %439
  %455 = load float, ptr %36, align 4, !tbaa !11
  br label %458

456:                                              ; preds = %439
  %457 = load float, ptr %37, align 4, !tbaa !11
  br label %458

458:                                              ; preds = %456, %454
  %459 = phi float [ %455, %454 ], [ %457, %456 ]
  %460 = fpext float %459 to double
  %461 = fptrunc double %460 to float
  store float %461, ptr %55, align 4, !tbaa !11
  %462 = load float, ptr %57, align 4, !tbaa !11
  %463 = load float, ptr %55, align 4, !tbaa !11
  %464 = fcmp ole float %462, %463
  br i1 %464, label %473, label %465

465:                                              ; preds = %458
  %466 = load float, ptr %57, align 4, !tbaa !11
  %467 = load float, ptr %59, align 4, !tbaa !11
  %468 = fcmp ole float %466, %467
  br i1 %468, label %473, label %469

469:                                              ; preds = %465
  %470 = load i64, ptr %51, align 8, !tbaa !9
  %471 = load i64, ptr %61, align 8, !tbaa !9
  %472 = icmp eq i64 %470, %471
  br i1 %472, label %473, label %499

473:                                              ; preds = %469, %465, %458
  %474 = load i64, ptr %52, align 8, !tbaa !9
  %475 = add nsw i64 %474, -1
  store i64 %475, ptr %52, align 8, !tbaa !9
  %476 = load ptr, ptr %30, align 8, !tbaa !5
  %477 = load i64, ptr %39, align 8, !tbaa !9
  %478 = sub nsw i64 %477, 1
  %479 = getelementptr inbounds i64, ptr %476, i64 %478
  store i64 0, ptr %479, align 8, !tbaa !9
  %480 = load i64, ptr %41, align 8, !tbaa !9
  %481 = load i64, ptr %38, align 8, !tbaa !9
  %482 = icmp eq i64 %480, %481
  br i1 %482, label %483, label %485

483:                                              ; preds = %473
  %484 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %484, ptr %41, align 8, !tbaa !9
  br label %497

485:                                              ; preds = %473
  %486 = load i64, ptr %53, align 8, !tbaa !9
  %487 = load i64, ptr %41, align 8, !tbaa !9
  %488 = icmp sge i64 %486, %487
  br i1 %488, label %489, label %496

489:                                              ; preds = %485
  %490 = load i64, ptr %54, align 8, !tbaa !9
  %491 = load ptr, ptr %30, align 8, !tbaa !5
  %492 = load i64, ptr %53, align 8, !tbaa !9
  %493 = shl i64 %492, 1
  %494 = sub nsw i64 %493, 1
  %495 = getelementptr inbounds i64, ptr %491, i64 %494
  store i64 %490, ptr %495, align 8, !tbaa !9
  br label %496

496:                                              ; preds = %489, %485
  br label %497

497:                                              ; preds = %496, %483
  %498 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %498, ptr %38, align 8, !tbaa !9
  br label %525

499:                                              ; preds = %469
  %500 = load i64, ptr %38, align 8, !tbaa !9
  store i64 %500, ptr %53, align 8, !tbaa !9
  %501 = load ptr, ptr %18, align 8, !tbaa !5
  %502 = load ptr, ptr %19, align 8, !tbaa !5
  %503 = getelementptr inbounds float, ptr %502, i64 1
  %504 = load ptr, ptr %20, align 8, !tbaa !5
  %505 = getelementptr inbounds float, ptr %504, i64 1
  %506 = load ptr, ptr %31, align 8, !tbaa !5
  %507 = call i64 @slaneg_(ptr noundef %501, ptr noundef %503, ptr noundef %505, ptr noundef %45, ptr noundef %506, ptr noundef %40)
  store i64 %507, ptr %58, align 8, !tbaa !9
  %508 = load i64, ptr %58, align 8, !tbaa !9
  %509 = load i64, ptr %38, align 8, !tbaa !9
  %510 = sub nsw i64 %509, 1
  %511 = icmp sle i64 %508, %510
  br i1 %511, label %512, label %518

512:                                              ; preds = %499
  %513 = load float, ptr %45, align 4, !tbaa !11
  %514 = load ptr, ptr %29, align 8, !tbaa !5
  %515 = load i64, ptr %39, align 8, !tbaa !9
  %516 = sub nsw i64 %515, 1
  %517 = getelementptr inbounds float, ptr %514, i64 %516
  store float %513, ptr %517, align 4, !tbaa !11
  br label %523

518:                                              ; preds = %499
  %519 = load float, ptr %45, align 4, !tbaa !11
  %520 = load ptr, ptr %29, align 8, !tbaa !5
  %521 = load i64, ptr %39, align 8, !tbaa !9
  %522 = getelementptr inbounds float, ptr %520, i64 %521
  store float %519, ptr %522, align 4, !tbaa !11
  br label %523

523:                                              ; preds = %518, %512
  %524 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %524, ptr %38, align 8, !tbaa !9
  br label %525

525:                                              ; preds = %523, %497
  br label %526

526:                                              ; preds = %525
  %527 = load i64, ptr %43, align 8, !tbaa !9
  %528 = add nsw i64 %527, 1
  store i64 %528, ptr %43, align 8, !tbaa !9
  br label %353, !llvm.loop !15

529:                                              ; preds = %353
  %530 = load i64, ptr %51, align 8, !tbaa !9
  %531 = add nsw i64 %530, 1
  store i64 %531, ptr %51, align 8, !tbaa !9
  %532 = load i64, ptr %52, align 8, !tbaa !9
  %533 = icmp sgt i64 %532, 0
  br i1 %533, label %534, label %539

534:                                              ; preds = %529
  %535 = load i64, ptr %51, align 8, !tbaa !9
  %536 = load i64, ptr %61, align 8, !tbaa !9
  %537 = icmp sle i64 %535, %536
  br i1 %537, label %538, label %539

538:                                              ; preds = %534
  br label %347

539:                                              ; preds = %534, %529
  %540 = load ptr, ptr %22, align 8, !tbaa !5
  %541 = load i64, ptr %540, align 8, !tbaa !9
  store i64 %541, ptr %35, align 8, !tbaa !9
  %542 = load ptr, ptr %21, align 8, !tbaa !5
  %543 = load i64, ptr %542, align 8, !tbaa !9
  store i64 %543, ptr %38, align 8, !tbaa !9
  br label %544

544:                                              ; preds = %589, %539
  %545 = load i64, ptr %38, align 8, !tbaa !9
  %546 = load i64, ptr %35, align 8, !tbaa !9
  %547 = icmp sle i64 %545, %546
  br i1 %547, label %548, label %592

548:                                              ; preds = %544
  %549 = load i64, ptr %38, align 8, !tbaa !9
  %550 = shl i64 %549, 1
  store i64 %550, ptr %39, align 8, !tbaa !9
  %551 = load i64, ptr %38, align 8, !tbaa !9
  %552 = load ptr, ptr %25, align 8, !tbaa !5
  %553 = load i64, ptr %552, align 8, !tbaa !9
  %554 = sub nsw i64 %551, %553
  store i64 %554, ptr %42, align 8, !tbaa !9
  %555 = load ptr, ptr %30, align 8, !tbaa !5
  %556 = load i64, ptr %39, align 8, !tbaa !9
  %557 = sub nsw i64 %556, 1
  %558 = getelementptr inbounds i64, ptr %555, i64 %557
  %559 = load i64, ptr %558, align 8, !tbaa !9
  %560 = icmp eq i64 %559, 0
  br i1 %560, label %561, label %588

561:                                              ; preds = %548
  %562 = load ptr, ptr %29, align 8, !tbaa !5
  %563 = load i64, ptr %39, align 8, !tbaa !9
  %564 = sub nsw i64 %563, 1
  %565 = getelementptr inbounds float, ptr %562, i64 %564
  %566 = load float, ptr %565, align 4, !tbaa !11
  %567 = load ptr, ptr %29, align 8, !tbaa !5
  %568 = load i64, ptr %39, align 8, !tbaa !9
  %569 = getelementptr inbounds float, ptr %567, i64 %568
  %570 = load float, ptr %569, align 4, !tbaa !11
  %571 = fadd float %566, %570
  %572 = fmul float %571, 5.000000e-01
  %573 = load ptr, ptr %26, align 8, !tbaa !5
  %574 = load i64, ptr %42, align 8, !tbaa !9
  %575 = getelementptr inbounds float, ptr %573, i64 %574
  store float %572, ptr %575, align 4, !tbaa !11
  %576 = load ptr, ptr %29, align 8, !tbaa !5
  %577 = load i64, ptr %39, align 8, !tbaa !9
  %578 = getelementptr inbounds float, ptr %576, i64 %577
  %579 = load float, ptr %578, align 4, !tbaa !11
  %580 = load ptr, ptr %26, align 8, !tbaa !5
  %581 = load i64, ptr %42, align 8, !tbaa !9
  %582 = getelementptr inbounds float, ptr %580, i64 %581
  %583 = load float, ptr %582, align 4, !tbaa !11
  %584 = fsub float %579, %583
  %585 = load ptr, ptr %28, align 8, !tbaa !5
  %586 = load i64, ptr %42, align 8, !tbaa !9
  %587 = getelementptr inbounds float, ptr %585, i64 %586
  store float %584, ptr %587, align 4, !tbaa !11
  br label %588

588:                                              ; preds = %561, %548
  br label %589

589:                                              ; preds = %588
  %590 = load i64, ptr %38, align 8, !tbaa !9
  %591 = add nsw i64 %590, 1
  store i64 %591, ptr %38, align 8, !tbaa !9
  br label %544, !llvm.loop !16

592:                                              ; preds = %544
  %593 = load ptr, ptr %22, align 8, !tbaa !5
  %594 = load i64, ptr %593, align 8, !tbaa !9
  store i64 %594, ptr %35, align 8, !tbaa !9
  %595 = load ptr, ptr %21, align 8, !tbaa !5
  %596 = load i64, ptr %595, align 8, !tbaa !9
  %597 = add nsw i64 %596, 1
  store i64 %597, ptr %38, align 8, !tbaa !9
  br label %598

598:                                              ; preds = %645, %592
  %599 = load i64, ptr %38, align 8, !tbaa !9
  %600 = load i64, ptr %35, align 8, !tbaa !9
  %601 = icmp sle i64 %599, %600
  br i1 %601, label %602, label %648

602:                                              ; preds = %598
  %603 = load i64, ptr %38, align 8, !tbaa !9
  %604 = shl i64 %603, 1
  store i64 %604, ptr %39, align 8, !tbaa !9
  %605 = load i64, ptr %38, align 8, !tbaa !9
  %606 = load ptr, ptr %25, align 8, !tbaa !5
  %607 = load i64, ptr %606, align 8, !tbaa !9
  %608 = sub nsw i64 %605, %607
  store i64 %608, ptr %42, align 8, !tbaa !9
  store float 0.000000e+00, ptr %36, align 4, !tbaa !11
  %609 = load ptr, ptr %26, align 8, !tbaa !5
  %610 = load i64, ptr %42, align 8, !tbaa !9
  %611 = getelementptr inbounds float, ptr %609, i64 %610
  %612 = load float, ptr %611, align 4, !tbaa !11
  %613 = load ptr, ptr %28, align 8, !tbaa !5
  %614 = load i64, ptr %42, align 8, !tbaa !9
  %615 = getelementptr inbounds float, ptr %613, i64 %614
  %616 = load float, ptr %615, align 4, !tbaa !11
  %617 = fsub float %612, %616
  %618 = load ptr, ptr %26, align 8, !tbaa !5
  %619 = load i64, ptr %42, align 8, !tbaa !9
  %620 = sub nsw i64 %619, 1
  %621 = getelementptr inbounds float, ptr %618, i64 %620
  %622 = load float, ptr %621, align 4, !tbaa !11
  %623 = fsub float %617, %622
  %624 = load ptr, ptr %28, align 8, !tbaa !5
  %625 = load i64, ptr %42, align 8, !tbaa !9
  %626 = sub nsw i64 %625, 1
  %627 = getelementptr inbounds float, ptr %624, i64 %626
  %628 = load float, ptr %627, align 4, !tbaa !11
  %629 = fsub float %623, %628
  store float %629, ptr %37, align 4, !tbaa !11
  %630 = load float, ptr %36, align 4, !tbaa !11
  %631 = load float, ptr %37, align 4, !tbaa !11
  %632 = fcmp oge float %630, %631
  br i1 %632, label %633, label %635

633:                                              ; preds = %602
  %634 = load float, ptr %36, align 4, !tbaa !11
  br label %637

635:                                              ; preds = %602
  %636 = load float, ptr %37, align 4, !tbaa !11
  br label %637

637:                                              ; preds = %635, %633
  %638 = phi float [ %634, %633 ], [ %636, %635 ]
  %639 = fpext float %638 to double
  %640 = fptrunc double %639 to float
  %641 = load ptr, ptr %27, align 8, !tbaa !5
  %642 = load i64, ptr %42, align 8, !tbaa !9
  %643 = sub nsw i64 %642, 1
  %644 = getelementptr inbounds float, ptr %641, i64 %643
  store float %640, ptr %644, align 4, !tbaa !11
  br label %645

645:                                              ; preds = %637
  %646 = load i64, ptr %38, align 8, !tbaa !9
  %647 = add nsw i64 %646, 1
  store i64 %647, ptr %38, align 8, !tbaa !9
  br label %598, !llvm.loop !17

648:                                              ; preds = %598
  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 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  ret i32 0
}

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

; Function Attrs: nounwind
declare double @log(double noundef) #2

declare i64 @slaneg_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

; 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 = { nounwind "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 = { "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 #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}


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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slarrb_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef readonly %3, ptr nocapture noundef readonly %4, ptr nocapture noundef readonly %5, ptr nocapture noundef readonly %6, ptr nocapture noundef readonly %7, ptr nocapture noundef %8, ptr nocapture noundef %9, ptr nocapture noundef %10, ptr nocapture noundef %11, ptr nocapture noundef %12, ptr noundef %13, ptr nocapture noundef readonly %14, ptr nocapture noundef readonly %15, ptr nocapture noundef writeonly %16) local_unnamed_addr #0 {
  %18 = alloca i64, align 8
  %19 = alloca float, align 4
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  %22 = getelementptr inbounds i8, ptr %12, i64 -8
  %23 = getelementptr inbounds i8, ptr %11, i64 -4
  %24 = getelementptr inbounds i8, ptr %10, i64 -4
  %25 = getelementptr inbounds i8, ptr %9, i64 -4
  %26 = getelementptr inbounds i8, ptr %8, i64 -4
  store i64 0, ptr %16, align 8, !tbaa !5
  %27 = load float, ptr %14, align 4, !tbaa !9
  %28 = load float, ptr %13, align 4, !tbaa !9
  %29 = fadd float %27, %28
  %30 = fpext float %29 to double
  %31 = tail call double @log(double noundef %30) #5
  %32 = load float, ptr %13, align 4, !tbaa !9
  %33 = fpext float %32 to double
  %34 = tail call double @log(double noundef %33) #5
  %35 = fsub double %31, %34
  %36 = fdiv double %35, 0x3FE62E42FEFA39EF
  %37 = fptosi double %36 to i64
  %38 = add nsw i64 %37, 2
  %39 = load float, ptr %13, align 4, !tbaa !9
  %40 = fmul float %39, 2.000000e+00
  %41 = load i64, ptr %15, align 8, !tbaa !5
  store i64 %41, ptr %18, align 8, !tbaa !5
  %42 = icmp slt i64 %41, 1
  %.pre = load i64, ptr %0, align 8, !tbaa !5
  %43 = tail call i64 @llvm.smin.i64(i64 %41, i64 %.pre)
  %spec.store.select = select i1 %42, i64 %.pre, i64 %43
  store i64 %spec.store.select, ptr %18, align 8
  %44 = load i64, ptr %3, align 8, !tbaa !5
  %45 = load i64, ptr %4, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %12, i64 -16
  %.not273 = icmp sgt i64 %44, %45
  br i1 %.not273, label %.preheader264.preheader, label %.lr.ph280.preheader

.lr.ph280.preheader:                              ; preds = %17
  %46 = load i64, ptr %7, align 8, !tbaa !5
  %47 = sub nsw i64 %44, %46
  %48 = getelementptr inbounds float, ptr %25, i64 %47
  %49 = load float, ptr %48, align 4, !tbaa !9
  br label %.lr.ph280

.lr.ph280:                                        ; preds = %.lr.ph280.preheader, %115
  %.0278 = phi i64 [ %.1, %115 ], [ 0, %.lr.ph280.preheader ]
  %.0222277 = phi i64 [ %.1223, %115 ], [ 0, %.lr.ph280.preheader ]
  %.0227276 = phi float [ %60, %115 ], [ %49, %.lr.ph280.preheader ]
  %.0232275 = phi i64 [ %.2234, %115 ], [ %44, %.lr.ph280.preheader ]
  %.0237274 = phi i64 [ %118, %115 ], [ %44, %.lr.ph280.preheader ]
  %50 = shl i64 %.0237274, 1
  %51 = load i64, ptr %7, align 8, !tbaa !5
  %52 = sub nsw i64 %.0237274, %51
  %53 = getelementptr inbounds float, ptr %26, i64 %52
  %54 = load float, ptr %53, align 4, !tbaa !9
  %55 = getelementptr inbounds float, ptr %24, i64 %52
  %56 = load float, ptr %55, align 4, !tbaa !9
  %57 = fsub float %54, %56
  store float %57, ptr %20, align 4, !tbaa !9
  %58 = fadd float %54, %56
  store float %58, ptr %21, align 4, !tbaa !9
  %59 = getelementptr inbounds float, ptr %25, i64 %52
  %60 = load float, ptr %59, align 4, !tbaa !9
  %61 = fcmp ole float %.0227276, %60
  %62 = select i1 %61, float %.0227276, float %60
  %63 = call i64 @slaneg_(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %20, ptr noundef nonnull %13, ptr noundef nonnull %18) #5
  %.not254265 = icmp slt i64 %63, %.0237274
  br i1 %.not254265, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph280, %.lr.ph
  %.0229266 = phi float [ %66, %.lr.ph ], [ %56, %.lr.ph280 ]
  %64 = load float, ptr %20, align 4, !tbaa !9
  %65 = fsub float %64, %.0229266
  store float %65, ptr %20, align 4, !tbaa !9
  %66 = fmul float %.0229266, 2.000000e+00
  %67 = call i64 @slaneg_(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %20, ptr noundef nonnull %13, ptr noundef nonnull %18) #5
  %.not254 = icmp slt i64 %67, %.0237274
  br i1 %.not254, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %.lr.ph280
  %68 = load float, ptr %55, align 4, !tbaa !9
  %69 = call i64 @slaneg_(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %21, ptr noundef nonnull %13, ptr noundef nonnull %18) #5
  %70 = icmp slt i64 %69, %.0237274
  br i1 %70, label %.lr.ph269, label %._crit_edge270

.lr.ph269:                                        ; preds = %._crit_edge, %.lr.ph269
  %.1230267 = phi float [ %73, %.lr.ph269 ], [ %68, %._crit_edge ]
  %71 = load float, ptr %21, align 4, !tbaa !9
  %72 = fadd float %.1230267, %71
  store float %72, ptr %21, align 4, !tbaa !9
  %73 = fmul float %.1230267, 2.000000e+00
  %74 = call i64 @slaneg_(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %21, ptr noundef nonnull %13, ptr noundef nonnull %18) #5
  %75 = icmp slt i64 %74, %.0237274
  br i1 %75, label %.lr.ph269, label %._crit_edge270

._crit_edge270:                                   ; preds = %.lr.ph269, %._crit_edge
  %.lcssa = phi i64 [ %69, %._crit_edge ], [ %74, %.lr.ph269 ]
  %76 = load float, ptr %20, align 4
  %77 = load float, ptr %21, align 4
  %78 = fsub float %76, %77
  %79 = fcmp oge float %78, 0.000000e+00
  %80 = fneg float %78
  %81 = select i1 %79, float %78, float %80
  %82 = fmul float %81, 5.000000e-01
  %83 = fcmp oge float %76, 0.000000e+00
  %84 = fneg float %76
  %85 = select i1 %83, float %76, float %84
  %86 = fcmp oge float %77, 0.000000e+00
  %87 = fneg float %77
  %88 = select i1 %86, float %77, float %87
  %89 = fcmp oge float %85, %88
  %90 = select i1 %89, float %85, float %88
  %91 = load float, ptr %5, align 4, !tbaa !9
  %92 = fmul float %62, %91
  %93 = load float, ptr %6, align 4, !tbaa !9
  %94 = fmul float %93, %90
  %95 = fcmp oge float %92, %94
  %96 = select i1 %95, float %92, float %94
  %97 = fcmp ugt float %82, %96
  %98 = fcmp ugt float %82, %40
  %or.cond = select i1 %97, i1 %98, i1 false
  br i1 %or.cond, label %110, label %99

99:                                               ; preds = %._crit_edge270
  %gep = getelementptr i64, ptr %invariant.gep, i64 %50
  store i64 -1, ptr %gep, align 8, !tbaa !5
  %100 = icmp eq i64 %.0237274, %.0232275
  br i1 %100, label %101, label %105

101:                                              ; preds = %99
  %102 = load i64, ptr %4, align 8, !tbaa !5
  %103 = icmp slt i64 %.0232275, %102
  %104 = zext i1 %103 to i64
  %spec.select = add nsw i64 %.0232275, %104
  br label %105

105:                                              ; preds = %101, %99
  %.1233 = phi i64 [ %.0232275, %99 ], [ %spec.select, %101 ]
  %.not255 = icmp slt i64 %.0278, %.1233
  br i1 %.not255, label %115, label %106

106:                                              ; preds = %105
  %107 = load i64, ptr %4, align 8, !tbaa !5
  %.not256 = icmp sgt i64 %.0237274, %107
  br i1 %.not256, label %115, label %108

108:                                              ; preds = %106
  %109 = add nsw i64 %.0237274, 1
  %.idx257 = shl i64 %.0278, 4
  %gep272 = getelementptr i8, ptr %invariant.gep, i64 %.idx257
  store i64 %109, ptr %gep272, align 8, !tbaa !5
  br label %115

110:                                              ; preds = %._crit_edge270
  %111 = add nsw i64 %.0222277, 1
  %112 = add nsw i64 %.0237274, 1
  %113 = getelementptr i64, ptr %22, i64 %50
  %114 = getelementptr i8, ptr %113, i64 -8
  store i64 %112, ptr %114, align 8, !tbaa !5
  store i64 %.lcssa, ptr %113, align 8, !tbaa !5
  br label %115

115:                                              ; preds = %105, %106, %108, %110
  %.2234 = phi i64 [ %.1233, %108 ], [ %.1233, %106 ], [ %.1233, %105 ], [ %.0232275, %110 ]
  %.1223 = phi i64 [ %.0222277, %108 ], [ %.0222277, %106 ], [ %.0222277, %105 ], [ %111, %110 ]
  %.1 = phi i64 [ %.0278, %108 ], [ %.0278, %106 ], [ %.0278, %105 ], [ %.0237274, %110 ]
  %116 = getelementptr float, ptr %23, i64 %50
  %117 = getelementptr i8, ptr %116, i64 -4
  store float %76, ptr %117, align 4, !tbaa !9
  store float %77, ptr %116, align 4, !tbaa !9
  %118 = add i64 %.0237274, 1
  %exitcond.not = icmp eq i64 %.0237274, %45
  br i1 %exitcond.not, label %.preheader264.preheader, label %.lr.ph280, !llvm.loop !11

.preheader264.preheader:                          ; preds = %115, %17
  %.3235.ph = phi i64 [ %44, %17 ], [ %.2234, %115 ]
  %.2224.ph = phi i64 [ 0, %17 ], [ %.1223, %115 ]
  br label %.preheader264

.preheader264:                                    ; preds = %.preheader264.preheader, %._crit_edge293
  %.3235 = phi i64 [ %.6, %._crit_edge293 ], [ %.3235.ph, %.preheader264.preheader ]
  %.0226 = phi i64 [ %173, %._crit_edge293 ], [ 0, %.preheader264.preheader ]
  %.2224 = phi i64 [ %.4, %._crit_edge293 ], [ %.2224.ph, %.preheader264.preheader ]
  %.not248285 = icmp slt i64 %.2224, 1
  br i1 %.not248285, label %._crit_edge293.thread, label %.lr.ph292

.lr.ph292:                                        ; preds = %.preheader264
  %119 = add nsw i64 %.3235, -1
  %120 = icmp eq i64 %.0226, %38
  br label %121

121:                                              ; preds = %.lr.ph292, %170
  %.2290 = phi i64 [ %119, %.lr.ph292 ], [ %.3, %170 ]
  %.3225289 = phi i64 [ %.2224, %.lr.ph292 ], [ %.4, %170 ]
  %.0231288 = phi i64 [ 1, %.lr.ph292 ], [ %171, %170 ]
  %.4236287 = phi i64 [ %.3235, %.lr.ph292 ], [ %.6, %170 ]
  %.1238286 = phi i64 [ %.3235, %.lr.ph292 ], [ %136, %170 ]
  %122 = shl i64 %.1238286, 1
  %123 = load i64, ptr %7, align 8, !tbaa !5
  %124 = sub nsw i64 %.1238286, %123
  %125 = getelementptr inbounds float, ptr %25, i64 %124
  %126 = load float, ptr %125, align 4, !tbaa !9
  %127 = icmp sgt i64 %124, 1
  br i1 %127, label %128, label %131

128:                                              ; preds = %121
  %129 = getelementptr i8, ptr %125, i64 -4
  %130 = load float, ptr %129, align 4, !tbaa !9
  br label %131

131:                                              ; preds = %128, %121
  %.0228 = phi float [ %130, %128 ], [ %126, %121 ]
  %132 = fcmp ole float %.0228, %126
  %133 = select i1 %132, float %.0228, float %126
  %134 = add nsw i64 %122, -1
  %135 = getelementptr inbounds i64, ptr %22, i64 %134
  %136 = load i64, ptr %135, align 8, !tbaa !5
  %137 = getelementptr inbounds float, ptr %23, i64 %134
  %138 = getelementptr inbounds float, ptr %23, i64 %122
  %139 = load <2 x float>, ptr %137, align 4, !tbaa !9
  %140 = extractelement <2 x float> %139, i64 0
  store float %140, ptr %20, align 4, !tbaa !9
  %141 = extractelement <2 x float> %139, i64 1
  store float %141, ptr %21, align 4, !tbaa !9
  %142 = fadd float %140, %141
  %143 = fmul float %142, 5.000000e-01
  store float %143, ptr %19, align 4, !tbaa !9
  %144 = fsub float %141, %143
  %145 = fcmp oge <2 x float> %139, zeroinitializer
  %146 = fneg <2 x float> %139
  %147 = select <2 x i1> %145, <2 x float> %139, <2 x float> %146
  %148 = extractelement <2 x float> %147, i64 0
  %149 = extractelement <2 x float> %147, i64 1
  %150 = fcmp oge float %148, %149
  %151 = select i1 %150, float %148, float %149
  %152 = load float, ptr %5, align 4, !tbaa !9
  %153 = fmul float %133, %152
  %154 = load float, ptr %6, align 4, !tbaa !9
  %155 = fmul float %154, %151
  %156 = fcmp oge float %153, %155
  %157 = select i1 %156, float %153, float %155
  %158 = fcmp ole float %144, %157
  %159 = fcmp ole float %144, %40
  %or.cond258.not263 = select i1 %158, i1 true, i1 %159
  %or.cond259 = select i1 %or.cond258.not263, i1 true, i1 %120
  br i1 %or.cond259, label %160, label %165

160:                                              ; preds = %131
  %161 = add nsw i64 %.3225289, -1
  store i64 0, ptr %135, align 8, !tbaa !5
  %162 = icmp eq i64 %.4236287, %.1238286
  br i1 %162, label %170, label %163

163:                                              ; preds = %160
  %.not253 = icmp slt i64 %.2290, %.4236287
  br i1 %.not253, label %170, label %164

164:                                              ; preds = %163
  %.idx = shl i64 %.2290, 4
  %gep284 = getelementptr i8, ptr %invariant.gep, i64 %.idx
  store i64 %136, ptr %gep284, align 8, !tbaa !5
  br label %170

165:                                              ; preds = %131
  %166 = call i64 @slaneg_(ptr noundef nonnull %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %19, ptr noundef nonnull %13, ptr noundef nonnull %18) #5
  %.not252.not = icmp slt i64 %166, %.1238286
  %167 = load float, ptr %19, align 4, !tbaa !9
  br i1 %.not252.not, label %168, label %169

168:                                              ; preds = %165
  store float %167, ptr %137, align 4, !tbaa !9
  br label %170

169:                                              ; preds = %165
  store float %167, ptr %138, align 4, !tbaa !9
  br label %170

170:                                              ; preds = %168, %169, %164, %163, %160
  %.6 = phi i64 [ %.4236287, %164 ], [ %.4236287, %163 ], [ %136, %160 ], [ %.4236287, %169 ], [ %.4236287, %168 ]
  %.4 = phi i64 [ %161, %164 ], [ %161, %163 ], [ %161, %160 ], [ %.3225289, %169 ], [ %.3225289, %168 ]
  %.3 = phi i64 [ %.2290, %164 ], [ %.2290, %163 ], [ %.2290, %160 ], [ %.1238286, %169 ], [ %.1238286, %168 ]
  %171 = add nuw i64 %.0231288, 1
  %exitcond305.not = icmp eq i64 %.0231288, %.2224
  br i1 %exitcond305.not, label %._crit_edge293, label %121, !llvm.loop !13

._crit_edge293:                                   ; preds = %170
  %172 = icmp sgt i64 %.4, 0
  %173 = add nuw nsw i64 %.0226, 1
  %.not249.not = icmp slt i64 %.0226, %38
  %or.cond260 = select i1 %172, i1 %.not249.not, i1 false
  br i1 %or.cond260, label %.preheader264, label %._crit_edge293.thread

._crit_edge293.thread:                            ; preds = %.preheader264, %._crit_edge293
  %174 = load i64, ptr %4, align 8, !tbaa !5
  %175 = load i64, ptr %3, align 8, !tbaa !5
  %.not250296 = icmp sgt i64 %175, %174
  br i1 %.not250296, label %.preheader, label %.lr.ph299

.preheader:                                       ; preds = %228, %._crit_edge293.thread
  %.not251.not300 = icmp slt i64 %175, %174
  br i1 %.not251.not300, label %.lr.ph302, label %._crit_edge303

.lr.ph302:                                        ; preds = %.preheader
  %176 = load i64, ptr %7, align 8, !tbaa !5
  %177 = sub i64 %174, %175
  %min.iters.check = icmp ult i64 %177, 12
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph302
  %.4241.in301.ph = phi i64 [ %175, %vector.memcheck ], [ %175, %.lr.ph302 ], [ %ind.end, %middle.block ]
  br label %scalar.ph

vector.memcheck:                                  ; preds = %.lr.ph302
  %178 = shl i64 %175, 2
  %179 = add i64 %178, -4
  %180 = shl i64 %176, 2
  %181 = sub i64 %179, %180
  %scevgep = getelementptr i8, ptr %9, i64 %181
  %182 = shl i64 %174, 2
  %183 = add i64 %182, -4
  %184 = sub i64 %183, %180
  %scevgep315 = getelementptr i8, ptr %9, i64 %184
  %scevgep316 = getelementptr i8, ptr %8, i64 %181
  %185 = sub i64 %182, %180
  %scevgep317 = getelementptr i8, ptr %8, i64 %185
  %scevgep318 = getelementptr i8, ptr %10, i64 %181
  %scevgep319 = getelementptr i8, ptr %10, i64 %185
  %bound0 = icmp ult ptr %scevgep, %scevgep317
  %bound1 = icmp ult ptr %scevgep316, %scevgep315
  %found.conflict = and i1 %bound0, %bound1
  %bound0320 = icmp ult ptr %scevgep, %scevgep319
  %bound1321 = icmp ult ptr %scevgep318, %scevgep315
  %found.conflict322 = and i1 %bound0320, %bound1321
  %conflict.rdx = or i1 %found.conflict, %found.conflict322
  br i1 %conflict.rdx, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %177, -8
  %ind.end = add i64 %175, %n.vec
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = add i64 %175, %index
  %186 = add nsw i64 %offset.idx, 1
  %187 = sub nsw i64 %186, %176
  %188 = getelementptr inbounds float, ptr %26, i64 %187
  %189 = getelementptr inbounds i8, ptr %188, i64 16
  %wide.load = load <4 x float>, ptr %188, align 4, !tbaa !9, !alias.scope !14
  %wide.load323 = load <4 x float>, ptr %189, align 4, !tbaa !9, !alias.scope !14
  %190 = getelementptr inbounds float, ptr %24, i64 %187
  %191 = getelementptr inbounds i8, ptr %190, i64 16
  %wide.load324 = load <4 x float>, ptr %190, align 4, !tbaa !9, !alias.scope !17
  %wide.load325 = load <4 x float>, ptr %191, align 4, !tbaa !9, !alias.scope !17
  %192 = fsub <4 x float> %wide.load, %wide.load324
  %193 = fsub <4 x float> %wide.load323, %wide.load325
  %194 = add nsw i64 %187, -1
  %195 = getelementptr inbounds float, ptr %26, i64 %194
  %196 = getelementptr inbounds i8, ptr %195, i64 16
  %wide.load326 = load <4 x float>, ptr %195, align 4, !tbaa !9, !alias.scope !14
  %wide.load327 = load <4 x float>, ptr %196, align 4, !tbaa !9, !alias.scope !14
  %197 = fsub <4 x float> %192, %wide.load326
  %198 = fsub <4 x float> %193, %wide.load327
  %199 = getelementptr inbounds float, ptr %24, i64 %194
  %200 = getelementptr inbounds i8, ptr %199, i64 16
  %wide.load328 = load <4 x float>, ptr %199, align 4, !tbaa !9, !alias.scope !17
  %wide.load329 = load <4 x float>, ptr %200, align 4, !tbaa !9, !alias.scope !17
  %201 = fsub <4 x float> %197, %wide.load328
  %202 = fsub <4 x float> %198, %wide.load329
  %203 = fcmp ole <4 x float> %201, zeroinitializer
  %204 = fcmp ole <4 x float> %202, zeroinitializer
  %205 = select <4 x i1> %203, <4 x float> zeroinitializer, <4 x float> %201
  %206 = select <4 x i1> %204, <4 x float> zeroinitializer, <4 x float> %202
  %207 = getelementptr inbounds float, ptr %25, i64 %194
  %208 = getelementptr inbounds i8, ptr %207, i64 16
  store <4 x float> %205, ptr %207, align 4, !tbaa !9, !alias.scope !19, !noalias !21
  store <4 x float> %206, ptr %208, align 4, !tbaa !9, !alias.scope !19, !noalias !21
  %index.next = add nuw i64 %index, 8
  %209 = icmp eq i64 %index.next, %n.vec
  br i1 %209, label %middle.block, label %vector.body, !llvm.loop !22

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

.lr.ph299:                                        ; preds = %._crit_edge293.thread, %228
  %.3240297 = phi i64 [ %229, %228 ], [ %175, %._crit_edge293.thread ]
  %210 = shl i64 %.3240297, 1
  %211 = add nsw i64 %210, -1
  %212 = getelementptr inbounds i64, ptr %22, i64 %211
  %213 = load i64, ptr %212, align 8, !tbaa !5
  %214 = icmp eq i64 %213, 0
  br i1 %214, label %215, label %228

215:                                              ; preds = %.lr.ph299
  %216 = load i64, ptr %7, align 8, !tbaa !5
  %217 = sub nsw i64 %.3240297, %216
  %218 = getelementptr inbounds float, ptr %23, i64 %211
  %219 = load float, ptr %218, align 4, !tbaa !9
  %220 = getelementptr inbounds float, ptr %23, i64 %210
  %221 = load float, ptr %220, align 4, !tbaa !9
  %222 = fadd float %219, %221
  %223 = fmul float %222, 5.000000e-01
  %224 = getelementptr inbounds float, ptr %26, i64 %217
  store float %223, ptr %224, align 4, !tbaa !9
  %225 = load float, ptr %220, align 4, !tbaa !9
  %226 = fsub float %225, %223
  %227 = getelementptr inbounds float, ptr %24, i64 %217
  store float %226, ptr %227, align 4, !tbaa !9
  br label %228

228:                                              ; preds = %.lr.ph299, %215
  %229 = add i64 %.3240297, 1
  %exitcond306.not = icmp eq i64 %.3240297, %174
  br i1 %exitcond306.not, label %.preheader, label %.lr.ph299, !llvm.loop !25

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %.4241.in301 = phi i64 [ %.4241, %scalar.ph ], [ %.4241.in301.ph, %scalar.ph.preheader ]
  %.4241 = add nsw i64 %.4241.in301, 1
  %230 = sub nsw i64 %.4241, %176
  %231 = getelementptr inbounds float, ptr %26, i64 %230
  %232 = load float, ptr %231, align 4, !tbaa !9
  %233 = getelementptr inbounds float, ptr %24, i64 %230
  %234 = load float, ptr %233, align 4, !tbaa !9
  %235 = fsub float %232, %234
  %236 = add nsw i64 %230, -1
  %237 = getelementptr inbounds float, ptr %26, i64 %236
  %238 = load float, ptr %237, align 4, !tbaa !9
  %239 = fsub float %235, %238
  %240 = getelementptr inbounds float, ptr %24, i64 %236
  %241 = load float, ptr %240, align 4, !tbaa !9
  %242 = fsub float %239, %241
  %243 = fcmp ole float %242, 0.000000e+00
  %244 = select i1 %243, float 0.000000e+00, float %242
  %245 = getelementptr inbounds float, ptr %25, i64 %236
  store float %244, ptr %245, align 4, !tbaa !9
  %exitcond307.not = icmp eq i64 %.4241, %174
  br i1 %exitcond307.not, label %._crit_edge303, label %scalar.ph, !llvm.loop !26

._crit_edge303:                                   ; preds = %scalar.ph, %middle.block, %.preheader
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  ret i32 0
}

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @log(double noundef) local_unnamed_addr #2

declare i64 @slaneg_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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 = { mustprogress nofree nounwind willreturn memory(write) "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 = { "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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nounwind }

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

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


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