; LLVM IR from wiktorowski211/deeds-registration :: deeds/libs/deedsBCV0.ll (Z19consistentMappingCLPfS_S_S_S_S_iiii)

; 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: mustprogress uwtable
declare dso_local void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i1 noundef zeroext) #0

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #2

; Function Attrs: 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, i1 } @llvm.umul.with.overflow.i64(i64, i64) #2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) #3

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #4

; Function Attrs: mustprogress uwtable
define dso_local void @_Z19consistentMappingCLPfS_S_S_S_S_iiii(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9) #0 {
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca float, align 4
  %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 i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  store ptr %0, ptr %11, align 8, !tbaa !5
  store ptr %1, ptr %12, align 8, !tbaa !5
  store ptr %2, ptr %13, align 8, !tbaa !5
  store ptr %3, ptr %14, align 8, !tbaa !5
  store ptr %4, ptr %15, align 8, !tbaa !5
  store ptr %5, ptr %16, align 8, !tbaa !5
  store i32 %6, ptr %17, align 4, !tbaa !9
  store i32 %7, ptr %18, align 4, !tbaa !9
  store i32 %8, ptr %19, align 4, !tbaa !9
  store i32 %9, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  %35 = load i32, ptr %20, align 4, !tbaa !9
  %36 = sitofp i32 %35 to float
  %37 = fpext float %36 to double
  %38 = fdiv double 1.000000e+00, %37
  %39 = fptrunc double %38 to float
  store float %39, ptr %21, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %40 = load i32, ptr %17, align 4, !tbaa !9
  %41 = load i32, ptr %18, align 4, !tbaa !9
  %42 = mul nsw i32 %40, %41
  %43 = load i32, ptr %19, align 4, !tbaa !9
  %44 = mul nsw i32 %42, %43
  %45 = sext i32 %44 to i64
  %46 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %45, i64 4)
  %47 = extractvalue { i64, i1 } %46, 1
  %48 = extractvalue { i64, i1 } %46, 0
  %49 = select i1 %47, i64 -1, i64 %48
  %50 = call noalias noundef nonnull ptr @_Znam(i64 noundef %49) #6
  store ptr %50, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %51 = load i32, ptr %17, align 4, !tbaa !9
  %52 = load i32, ptr %18, align 4, !tbaa !9
  %53 = mul nsw i32 %51, %52
  %54 = load i32, ptr %19, align 4, !tbaa !9
  %55 = mul nsw i32 %53, %54
  %56 = sext i32 %55 to i64
  %57 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %56, i64 4)
  %58 = extractvalue { i64, i1 } %57, 1
  %59 = extractvalue { i64, i1 } %57, 0
  %60 = select i1 %58, i64 -1, i64 %59
  %61 = call noalias noundef nonnull ptr @_Znam(i64 noundef %60) #6
  store ptr %61, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %62 = load i32, ptr %17, align 4, !tbaa !9
  %63 = load i32, ptr %18, align 4, !tbaa !9
  %64 = mul nsw i32 %62, %63
  %65 = load i32, ptr %19, align 4, !tbaa !9
  %66 = mul nsw i32 %64, %65
  %67 = sext i32 %66 to i64
  %68 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %67, i64 4)
  %69 = extractvalue { i64, i1 } %68, 1
  %70 = extractvalue { i64, i1 } %68, 0
  %71 = select i1 %69, i64 -1, i64 %70
  %72 = call noalias noundef nonnull ptr @_Znam(i64 noundef %71) #6
  store ptr %72, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  %73 = load i32, ptr %17, align 4, !tbaa !9
  %74 = load i32, ptr %18, align 4, !tbaa !9
  %75 = mul nsw i32 %73, %74
  %76 = load i32, ptr %19, align 4, !tbaa !9
  %77 = mul nsw i32 %75, %76
  %78 = sext i32 %77 to i64
  %79 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %78, i64 4)
  %80 = extractvalue { i64, i1 } %79, 1
  %81 = extractvalue { i64, i1 } %79, 0
  %82 = select i1 %80, i64 -1, i64 %81
  %83 = call noalias noundef nonnull ptr @_Znam(i64 noundef %82) #6
  store ptr %83, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  %84 = load i32, ptr %17, align 4, !tbaa !9
  %85 = load i32, ptr %18, align 4, !tbaa !9
  %86 = mul nsw i32 %84, %85
  %87 = load i32, ptr %19, align 4, !tbaa !9
  %88 = mul nsw i32 %86, %87
  %89 = sext i32 %88 to i64
  %90 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %89, i64 4)
  %91 = extractvalue { i64, i1 } %90, 1
  %92 = extractvalue { i64, i1 } %90, 0
  %93 = select i1 %91, i64 -1, i64 %92
  %94 = call noalias noundef nonnull ptr @_Znam(i64 noundef %93) #6
  store ptr %94, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  %95 = load i32, ptr %17, align 4, !tbaa !9
  %96 = load i32, ptr %18, align 4, !tbaa !9
  %97 = mul nsw i32 %95, %96
  %98 = load i32, ptr %19, align 4, !tbaa !9
  %99 = mul nsw i32 %97, %98
  %100 = sext i32 %99 to i64
  %101 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %100, i64 4)
  %102 = extractvalue { i64, i1 } %101, 1
  %103 = extractvalue { i64, i1 } %101, 0
  %104 = select i1 %102, i64 -1, i64 %103
  %105 = call noalias noundef nonnull ptr @_Znam(i64 noundef %104) #6
  store ptr %105, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  store i32 0, ptr %28, align 4, !tbaa !9
  br label %106

106:                                              ; preds = %182, %10
  %107 = load i32, ptr %28, align 4, !tbaa !9
  %108 = load i32, ptr %17, align 4, !tbaa !9
  %109 = load i32, ptr %18, align 4, !tbaa !9
  %110 = mul nsw i32 %108, %109
  %111 = load i32, ptr %19, align 4, !tbaa !9
  %112 = mul nsw i32 %110, %111
  %113 = icmp slt i32 %107, %112
  br i1 %113, label %115, label %114

114:                                              ; preds = %106
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  br label %185

115:                                              ; preds = %106
  %116 = load ptr, ptr %11, align 8, !tbaa !5
  %117 = load i32, ptr %28, align 4, !tbaa !9
  %118 = sext i32 %117 to i64
  %119 = getelementptr inbounds float, ptr %116, i64 %118
  %120 = load float, ptr %119, align 4, !tbaa !11
  %121 = load float, ptr %21, align 4, !tbaa !11
  %122 = fmul float %120, %121
  %123 = load ptr, ptr %22, align 8, !tbaa !5
  %124 = load i32, ptr %28, align 4, !tbaa !9
  %125 = sext i32 %124 to i64
  %126 = getelementptr inbounds float, ptr %123, i64 %125
  store float %122, ptr %126, align 4, !tbaa !11
  %127 = load ptr, ptr %12, align 8, !tbaa !5
  %128 = load i32, ptr %28, align 4, !tbaa !9
  %129 = sext i32 %128 to i64
  %130 = getelementptr inbounds float, ptr %127, i64 %129
  %131 = load float, ptr %130, align 4, !tbaa !11
  %132 = load float, ptr %21, align 4, !tbaa !11
  %133 = fmul float %131, %132
  %134 = load ptr, ptr %23, align 8, !tbaa !5
  %135 = load i32, ptr %28, align 4, !tbaa !9
  %136 = sext i32 %135 to i64
  %137 = getelementptr inbounds float, ptr %134, i64 %136
  store float %133, ptr %137, align 4, !tbaa !11
  %138 = load ptr, ptr %13, align 8, !tbaa !5
  %139 = load i32, ptr %28, align 4, !tbaa !9
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds float, ptr %138, i64 %140
  %142 = load float, ptr %141, align 4, !tbaa !11
  %143 = load float, ptr %21, align 4, !tbaa !11
  %144 = fmul float %142, %143
  %145 = load ptr, ptr %24, align 8, !tbaa !5
  %146 = load i32, ptr %28, align 4, !tbaa !9
  %147 = sext i32 %146 to i64
  %148 = getelementptr inbounds float, ptr %145, i64 %147
  store float %144, ptr %148, align 4, !tbaa !11
  %149 = load ptr, ptr %14, align 8, !tbaa !5
  %150 = load i32, ptr %28, align 4, !tbaa !9
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds float, ptr %149, i64 %151
  %153 = load float, ptr %152, align 4, !tbaa !11
  %154 = load float, ptr %21, align 4, !tbaa !11
  %155 = fmul float %153, %154
  %156 = load ptr, ptr %25, align 8, !tbaa !5
  %157 = load i32, ptr %28, align 4, !tbaa !9
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds float, ptr %156, i64 %158
  store float %155, ptr %159, align 4, !tbaa !11
  %160 = load ptr, ptr %15, align 8, !tbaa !5
  %161 = load i32, ptr %28, align 4, !tbaa !9
  %162 = sext i32 %161 to i64
  %163 = getelementptr inbounds float, ptr %160, i64 %162
  %164 = load float, ptr %163, align 4, !tbaa !11
  %165 = load float, ptr %21, align 4, !tbaa !11
  %166 = fmul float %164, %165
  %167 = load ptr, ptr %26, align 8, !tbaa !5
  %168 = load i32, ptr %28, align 4, !tbaa !9
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds float, ptr %167, i64 %169
  store float %166, ptr %170, align 4, !tbaa !11
  %171 = load ptr, ptr %16, align 8, !tbaa !5
  %172 = load i32, ptr %28, align 4, !tbaa !9
  %173 = sext i32 %172 to i64
  %174 = getelementptr inbounds float, ptr %171, i64 %173
  %175 = load float, ptr %174, align 4, !tbaa !11
  %176 = load float, ptr %21, align 4, !tbaa !11
  %177 = fmul float %175, %176
  %178 = load ptr, ptr %27, align 8, !tbaa !5
  %179 = load i32, ptr %28, align 4, !tbaa !9
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds float, ptr %178, i64 %180
  store float %177, ptr %181, align 4, !tbaa !11
  br label %182

182:                                              ; preds = %115
  %183 = load i32, ptr %28, align 4, !tbaa !9
  %184 = add nsw i32 %183, 1
  store i32 %184, ptr %28, align 4, !tbaa !9
  br label %106, !llvm.loop !13

185:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  store i32 0, ptr %29, align 4, !tbaa !9
  br label %186

186:                                              ; preds = %473, %185
  %187 = load i32, ptr %29, align 4, !tbaa !9
  %188 = icmp slt i32 %187, 10
  br i1 %188, label %190, label %189

189:                                              ; preds = %186
  store i32 5, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  br label %476

190:                                              ; preds = %186
  %191 = load ptr, ptr %11, align 8, !tbaa !5
  %192 = load ptr, ptr %25, align 8, !tbaa !5
  %193 = load ptr, ptr %22, align 8, !tbaa !5
  %194 = load ptr, ptr %23, align 8, !tbaa !5
  %195 = load ptr, ptr %24, align 8, !tbaa !5
  %196 = load i32, ptr %17, align 4, !tbaa !9
  %197 = load i32, ptr %18, align 4, !tbaa !9
  %198 = load i32, ptr %19, align 4, !tbaa !9
  %199 = load i32, ptr %17, align 4, !tbaa !9
  %200 = load i32, ptr %18, align 4, !tbaa !9
  %201 = load i32, ptr %19, align 4, !tbaa !9
  call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %191, ptr noundef %192, ptr noundef %193, ptr noundef %194, ptr noundef %195, i32 noundef %196, i32 noundef %197, i32 noundef %198, i32 noundef %199, i32 noundef %200, i32 noundef %201, i1 noundef zeroext true)
  %202 = load ptr, ptr %12, align 8, !tbaa !5
  %203 = load ptr, ptr %26, align 8, !tbaa !5
  %204 = load ptr, ptr %22, align 8, !tbaa !5
  %205 = load ptr, ptr %23, align 8, !tbaa !5
  %206 = load ptr, ptr %24, align 8, !tbaa !5
  %207 = load i32, ptr %17, align 4, !tbaa !9
  %208 = load i32, ptr %18, align 4, !tbaa !9
  %209 = load i32, ptr %19, align 4, !tbaa !9
  %210 = load i32, ptr %17, align 4, !tbaa !9
  %211 = load i32, ptr %18, align 4, !tbaa !9
  %212 = load i32, ptr %19, align 4, !tbaa !9
  call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %202, ptr noundef %203, ptr noundef %204, ptr noundef %205, ptr noundef %206, i32 noundef %207, i32 noundef %208, i32 noundef %209, i32 noundef %210, i32 noundef %211, i32 noundef %212, i1 noundef zeroext true)
  %213 = load ptr, ptr %13, align 8, !tbaa !5
  %214 = load ptr, ptr %27, align 8, !tbaa !5
  %215 = load ptr, ptr %22, align 8, !tbaa !5
  %216 = load ptr, ptr %23, align 8, !tbaa !5
  %217 = load ptr, ptr %24, align 8, !tbaa !5
  %218 = load i32, ptr %17, align 4, !tbaa !9
  %219 = load i32, ptr %18, align 4, !tbaa !9
  %220 = load i32, ptr %19, align 4, !tbaa !9
  %221 = load i32, ptr %17, align 4, !tbaa !9
  %222 = load i32, ptr %18, align 4, !tbaa !9
  %223 = load i32, ptr %19, align 4, !tbaa !9
  call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %213, ptr noundef %214, ptr noundef %215, ptr noundef %216, ptr noundef %217, i32 noundef %218, i32 noundef %219, i32 noundef %220, i32 noundef %221, i32 noundef %222, i32 noundef %223, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  store i32 0, ptr %31, align 4, !tbaa !9
  br label %224

224:                                              ; preds = %294, %190
  %225 = load i32, ptr %31, align 4, !tbaa !9
  %226 = load i32, ptr %17, align 4, !tbaa !9
  %227 = load i32, ptr %18, align 4, !tbaa !9
  %228 = mul nsw i32 %226, %227
  %229 = load i32, ptr %19, align 4, !tbaa !9
  %230 = mul nsw i32 %228, %229
  %231 = icmp slt i32 %225, %230
  br i1 %231, label %233, label %232

232:                                              ; preds = %224
  store i32 8, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  br label %297

233:                                              ; preds = %224
  %234 = load ptr, ptr %22, align 8, !tbaa !5
  %235 = load i32, ptr %31, align 4, !tbaa !9
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds float, ptr %234, i64 %236
  %238 = load float, ptr %237, align 4, !tbaa !11
  %239 = fpext float %238 to double
  %240 = load ptr, ptr %11, align 8, !tbaa !5
  %241 = load i32, ptr %31, align 4, !tbaa !9
  %242 = sext i32 %241 to i64
  %243 = getelementptr inbounds float, ptr %240, i64 %242
  %244 = load float, ptr %243, align 4, !tbaa !11
  %245 = fpext float %244 to double
  %246 = fmul double 5.000000e-01, %245
  %247 = fneg double %246
  %248 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %239, double %247)
  %249 = fptrunc double %248 to float
  %250 = load ptr, ptr %11, align 8, !tbaa !5
  %251 = load i32, ptr %31, align 4, !tbaa !9
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds float, ptr %250, i64 %252
  store float %249, ptr %253, align 4, !tbaa !11
  %254 = load ptr, ptr %23, align 8, !tbaa !5
  %255 = load i32, ptr %31, align 4, !tbaa !9
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds float, ptr %254, i64 %256
  %258 = load float, ptr %257, align 4, !tbaa !11
  %259 = fpext float %258 to double
  %260 = load ptr, ptr %12, align 8, !tbaa !5
  %261 = load i32, ptr %31, align 4, !tbaa !9
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds float, ptr %260, i64 %262
  %264 = load float, ptr %263, align 4, !tbaa !11
  %265 = fpext float %264 to double
  %266 = fmul double 5.000000e-01, %265
  %267 = fneg double %266
  %268 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %259, double %267)
  %269 = fptrunc double %268 to float
  %270 = load ptr, ptr %12, align 8, !tbaa !5
  %271 = load i32, ptr %31, align 4, !tbaa !9
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds float, ptr %270, i64 %272
  store float %269, ptr %273, align 4, !tbaa !11
  %274 = load ptr, ptr %24, align 8, !tbaa !5
  %275 = load i32, ptr %31, align 4, !tbaa !9
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds float, ptr %274, i64 %276
  %278 = load float, ptr %277, align 4, !tbaa !11
  %279 = fpext float %278 to double
  %280 = load ptr, ptr %13, align 8, !tbaa !5
  %281 = load i32, ptr %31, align 4, !tbaa !9
  %282 = sext i32 %281 to i64
  %283 = getelementptr inbounds float, ptr %280, i64 %282
  %284 = load float, ptr %283, align 4, !tbaa !11
  %285 = fpext float %284 to double
  %286 = fmul double 5.000000e-01, %285
  %287 = fneg double %286
  %288 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %279, double %287)
  %289 = fptrunc double %288 to float
  %290 = load ptr, ptr %13, align 8, !tbaa !5
  %291 = load i32, ptr %31, align 4, !tbaa !9
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds float, ptr %290, i64 %292
  store float %289, ptr %293, align 4, !tbaa !11
  br label %294

294:                                              ; preds = %233
  %295 = load i32, ptr %31, align 4, !tbaa !9
  %296 = add nsw i32 %295, 1
  store i32 %296, ptr %31, align 4, !tbaa !9
  br label %224, !llvm.loop !15

297:                                              ; preds = %232
  %298 = load ptr, ptr %14, align 8, !tbaa !5
  %299 = load ptr, ptr %22, align 8, !tbaa !5
  %300 = load ptr, ptr %25, align 8, !tbaa !5
  %301 = load ptr, ptr %26, align 8, !tbaa !5
  %302 = load ptr, ptr %27, align 8, !tbaa !5
  %303 = load i32, ptr %17, align 4, !tbaa !9
  %304 = load i32, ptr %18, align 4, !tbaa !9
  %305 = load i32, ptr %19, align 4, !tbaa !9
  %306 = load i32, ptr %17, align 4, !tbaa !9
  %307 = load i32, ptr %18, align 4, !tbaa !9
  %308 = load i32, ptr %19, align 4, !tbaa !9
  call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %298, ptr noundef %299, ptr noundef %300, ptr noundef %301, ptr noundef %302, i32 noundef %303, i32 noundef %304, i32 noundef %305, i32 noundef %306, i32 noundef %307, i32 noundef %308, i1 noundef zeroext true)
  %309 = load ptr, ptr %15, align 8, !tbaa !5
  %310 = load ptr, ptr %23, align 8, !tbaa !5
  %311 = load ptr, ptr %25, align 8, !tbaa !5
  %312 = load ptr, ptr %26, align 8, !tbaa !5
  %313 = load ptr, ptr %27, align 8, !tbaa !5
  %314 = load i32, ptr %17, align 4, !tbaa !9
  %315 = load i32, ptr %18, align 4, !tbaa !9
  %316 = load i32, ptr %19, align 4, !tbaa !9
  %317 = load i32, ptr %17, align 4, !tbaa !9
  %318 = load i32, ptr %18, align 4, !tbaa !9
  %319 = load i32, ptr %19, align 4, !tbaa !9
  call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %309, ptr noundef %310, ptr noundef %311, ptr noundef %312, ptr noundef %313, i32 noundef %314, i32 noundef %315, i32 noundef %316, i32 noundef %317, i32 noundef %318, i32 noundef %319, i1 noundef zeroext true)
  %320 = load ptr, ptr %16, align 8, !tbaa !5
  %321 = load ptr, ptr %24, align 8, !tbaa !5
  %322 = load ptr, ptr %25, align 8, !tbaa !5
  %323 = load ptr, ptr %26, align 8, !tbaa !5
  %324 = load ptr, ptr %27, align 8, !tbaa !5
  %325 = load i32, ptr %17, align 4, !tbaa !9
  %326 = load i32, ptr %18, align 4, !tbaa !9
  %327 = load i32, ptr %19, align 4, !tbaa !9
  %328 = load i32, ptr %17, align 4, !tbaa !9
  %329 = load i32, ptr %18, align 4, !tbaa !9
  %330 = load i32, ptr %19, align 4, !tbaa !9
  call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %320, ptr noundef %321, ptr noundef %322, ptr noundef %323, ptr noundef %324, i32 noundef %325, i32 noundef %326, i32 noundef %327, i32 noundef %328, i32 noundef %329, i32 noundef %330, i1 noundef zeroext true)
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  store i32 0, ptr %32, align 4, !tbaa !9
  br label %331

331:                                              ; preds = %401, %297
  %332 = load i32, ptr %32, align 4, !tbaa !9
  %333 = load i32, ptr %17, align 4, !tbaa !9
  %334 = load i32, ptr %18, align 4, !tbaa !9
  %335 = mul nsw i32 %333, %334
  %336 = load i32, ptr %19, align 4, !tbaa !9
  %337 = mul nsw i32 %335, %336
  %338 = icmp slt i32 %332, %337
  br i1 %338, label %340, label %339

339:                                              ; preds = %331
  store i32 11, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  br label %404

340:                                              ; preds = %331
  %341 = load ptr, ptr %25, align 8, !tbaa !5
  %342 = load i32, ptr %32, align 4, !tbaa !9
  %343 = sext i32 %342 to i64
  %344 = getelementptr inbounds float, ptr %341, i64 %343
  %345 = load float, ptr %344, align 4, !tbaa !11
  %346 = fpext float %345 to double
  %347 = load ptr, ptr %14, align 8, !tbaa !5
  %348 = load i32, ptr %32, align 4, !tbaa !9
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds float, ptr %347, i64 %349
  %351 = load float, ptr %350, align 4, !tbaa !11
  %352 = fpext float %351 to double
  %353 = fmul double 5.000000e-01, %352
  %354 = fneg double %353
  %355 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %346, double %354)
  %356 = fptrunc double %355 to float
  %357 = load ptr, ptr %14, align 8, !tbaa !5
  %358 = load i32, ptr %32, align 4, !tbaa !9
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds float, ptr %357, i64 %359
  store float %356, ptr %360, align 4, !tbaa !11
  %361 = load ptr, ptr %26, align 8, !tbaa !5
  %362 = load i32, ptr %32, align 4, !tbaa !9
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds float, ptr %361, i64 %363
  %365 = load float, ptr %364, align 4, !tbaa !11
  %366 = fpext float %365 to double
  %367 = load ptr, ptr %15, align 8, !tbaa !5
  %368 = load i32, ptr %32, align 4, !tbaa !9
  %369 = sext i32 %368 to i64
  %370 = getelementptr inbounds float, ptr %367, i64 %369
  %371 = load float, ptr %370, align 4, !tbaa !11
  %372 = fpext float %371 to double
  %373 = fmul double 5.000000e-01, %372
  %374 = fneg double %373
  %375 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %366, double %374)
  %376 = fptrunc double %375 to float
  %377 = load ptr, ptr %15, align 8, !tbaa !5
  %378 = load i32, ptr %32, align 4, !tbaa !9
  %379 = sext i32 %378 to i64
  %380 = getelementptr inbounds float, ptr %377, i64 %379
  store float %376, ptr %380, align 4, !tbaa !11
  %381 = load ptr, ptr %27, align 8, !tbaa !5
  %382 = load i32, ptr %32, align 4, !tbaa !9
  %383 = sext i32 %382 to i64
  %384 = getelementptr inbounds float, ptr %381, i64 %383
  %385 = load float, ptr %384, align 4, !tbaa !11
  %386 = fpext float %385 to double
  %387 = load ptr, ptr %16, align 8, !tbaa !5
  %388 = load i32, ptr %32, align 4, !tbaa !9
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds float, ptr %387, i64 %389
  %391 = load float, ptr %390, align 4, !tbaa !11
  %392 = fpext float %391 to double
  %393 = fmul double 5.000000e-01, %392
  %394 = fneg double %393
  %395 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %386, double %394)
  %396 = fptrunc double %395 to float
  %397 = load ptr, ptr %16, align 8, !tbaa !5
  %398 = load i32, ptr %32, align 4, !tbaa !9
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds float, ptr %397, i64 %399
  store float %396, ptr %400, align 4, !tbaa !11
  br label %401

401:                                              ; preds = %340
  %402 = load i32, ptr %32, align 4, !tbaa !9
  %403 = add nsw i32 %402, 1
  store i32 %403, ptr %32, align 4, !tbaa !9
  br label %331, !llvm.loop !16

404:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  store i32 0, ptr %33, align 4, !tbaa !9
  br label %405

405:                                              ; preds = %469, %404
  %406 = load i32, ptr %33, align 4, !tbaa !9
  %407 = load i32, ptr %17, align 4, !tbaa !9
  %408 = load i32, ptr %18, align 4, !tbaa !9
  %409 = mul nsw i32 %407, %408
  %410 = load i32, ptr %19, align 4, !tbaa !9
  %411 = mul nsw i32 %409, %410
  %412 = icmp slt i32 %406, %411
  br i1 %412, label %414, label %413

413:                                              ; preds = %405
  store i32 14, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  br label %472

414:                                              ; preds = %405
  %415 = load ptr, ptr %11, align 8, !tbaa !5
  %416 = load i32, ptr %33, align 4, !tbaa !9
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds float, ptr %415, i64 %417
  %419 = load float, ptr %418, align 4, !tbaa !11
  %420 = load ptr, ptr %22, align 8, !tbaa !5
  %421 = load i32, ptr %33, align 4, !tbaa !9
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds float, ptr %420, i64 %422
  store float %419, ptr %423, align 4, !tbaa !11
  %424 = load ptr, ptr %12, align 8, !tbaa !5
  %425 = load i32, ptr %33, align 4, !tbaa !9
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds float, ptr %424, i64 %426
  %428 = load float, ptr %427, align 4, !tbaa !11
  %429 = load ptr, ptr %23, align 8, !tbaa !5
  %430 = load i32, ptr %33, align 4, !tbaa !9
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds float, ptr %429, i64 %431
  store float %428, ptr %432, align 4, !tbaa !11
  %433 = load ptr, ptr %13, align 8, !tbaa !5
  %434 = load i32, ptr %33, align 4, !tbaa !9
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds float, ptr %433, i64 %435
  %437 = load float, ptr %436, align 4, !tbaa !11
  %438 = load ptr, ptr %24, align 8, !tbaa !5
  %439 = load i32, ptr %33, align 4, !tbaa !9
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds float, ptr %438, i64 %440
  store float %437, ptr %441, align 4, !tbaa !11
  %442 = load ptr, ptr %14, align 8, !tbaa !5
  %443 = load i32, ptr %33, align 4, !tbaa !9
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds float, ptr %442, i64 %444
  %446 = load float, ptr %445, align 4, !tbaa !11
  %447 = load ptr, ptr %25, align 8, !tbaa !5
  %448 = load i32, ptr %33, align 4, !tbaa !9
  %449 = sext i32 %448 to i64
  %450 = getelementptr inbounds float, ptr %447, i64 %449
  store float %446, ptr %450, align 4, !tbaa !11
  %451 = load ptr, ptr %15, align 8, !tbaa !5
  %452 = load i32, ptr %33, align 4, !tbaa !9
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds float, ptr %451, i64 %453
  %455 = load float, ptr %454, align 4, !tbaa !11
  %456 = load ptr, ptr %26, align 8, !tbaa !5
  %457 = load i32, ptr %33, align 4, !tbaa !9
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds float, ptr %456, i64 %458
  store float %455, ptr %459, align 4, !tbaa !11
  %460 = load ptr, ptr %16, align 8, !tbaa !5
  %461 = load i32, ptr %33, align 4, !tbaa !9
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds float, ptr %460, i64 %462
  %464 = load float, ptr %463, align 4, !tbaa !11
  %465 = load ptr, ptr %27, align 8, !tbaa !5
  %466 = load i32, ptr %33, align 4, !tbaa !9
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds float, ptr %465, i64 %467
  store float %464, ptr %468, align 4, !tbaa !11
  br label %469

469:                                              ; preds = %414
  %470 = load i32, ptr %33, align 4, !tbaa !9
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr %33, align 4, !tbaa !9
  br label %405, !llvm.loop !17

472:                                              ; preds = %413
  br label %473

473:                                              ; preds = %472
  %474 = load i32, ptr %29, align 4, !tbaa !9
  %475 = add nsw i32 %474, 1
  store i32 %475, ptr %29, align 4, !tbaa !9
  br label %186, !llvm.loop !18

476:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  store i32 0, ptr %34, align 4, !tbaa !9
  br label %477

477:                                              ; preds = %535, %476
  %478 = load i32, ptr %34, align 4, !tbaa !9
  %479 = load i32, ptr %17, align 4, !tbaa !9
  %480 = load i32, ptr %18, align 4, !tbaa !9
  %481 = mul nsw i32 %479, %480
  %482 = load i32, ptr %19, align 4, !tbaa !9
  %483 = mul nsw i32 %481, %482
  %484 = icmp slt i32 %478, %483
  br i1 %484, label %486, label %485

485:                                              ; preds = %477
  store i32 17, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  br label %538

486:                                              ; preds = %477
  %487 = load i32, ptr %20, align 4, !tbaa !9
  %488 = sitofp i32 %487 to float
  %489 = load ptr, ptr %11, align 8, !tbaa !5
  %490 = load i32, ptr %34, align 4, !tbaa !9
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds float, ptr %489, i64 %491
  %493 = load float, ptr %492, align 4, !tbaa !11
  %494 = fmul float %493, %488
  store float %494, ptr %492, align 4, !tbaa !11
  %495 = load i32, ptr %20, align 4, !tbaa !9
  %496 = sitofp i32 %495 to float
  %497 = load ptr, ptr %12, align 8, !tbaa !5
  %498 = load i32, ptr %34, align 4, !tbaa !9
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds float, ptr %497, i64 %499
  %501 = load float, ptr %500, align 4, !tbaa !11
  %502 = fmul float %501, %496
  store float %502, ptr %500, align 4, !tbaa !11
  %503 = load i32, ptr %20, align 4, !tbaa !9
  %504 = sitofp i32 %503 to float
  %505 = load ptr, ptr %13, align 8, !tbaa !5
  %506 = load i32, ptr %34, align 4, !tbaa !9
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds float, ptr %505, i64 %507
  %509 = load float, ptr %508, align 4, !tbaa !11
  %510 = fmul float %509, %504
  store float %510, ptr %508, align 4, !tbaa !11
  %511 = load i32, ptr %20, align 4, !tbaa !9
  %512 = sitofp i32 %511 to float
  %513 = load ptr, ptr %14, align 8, !tbaa !5
  %514 = load i32, ptr %34, align 4, !tbaa !9
  %515 = sext i32 %514 to i64
  %516 = getelementptr inbounds float, ptr %513, i64 %515
  %517 = load float, ptr %516, align 4, !tbaa !11
  %518 = fmul float %517, %512
  store float %518, ptr %516, align 4, !tbaa !11
  %519 = load i32, ptr %20, align 4, !tbaa !9
  %520 = sitofp i32 %519 to float
  %521 = load ptr, ptr %15, align 8, !tbaa !5
  %522 = load i32, ptr %34, align 4, !tbaa !9
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds float, ptr %521, i64 %523
  %525 = load float, ptr %524, align 4, !tbaa !11
  %526 = fmul float %525, %520
  store float %526, ptr %524, align 4, !tbaa !11
  %527 = load i32, ptr %20, align 4, !tbaa !9
  %528 = sitofp i32 %527 to float
  %529 = load ptr, ptr %16, align 8, !tbaa !5
  %530 = load i32, ptr %34, align 4, !tbaa !9
  %531 = sext i32 %530 to i64
  %532 = getelementptr inbounds float, ptr %529, i64 %531
  %533 = load float, ptr %532, align 4, !tbaa !11
  %534 = fmul float %533, %528
  store float %534, ptr %532, align 4, !tbaa !11
  br label %535

535:                                              ; preds = %486
  %536 = load i32, ptr %34, align 4, !tbaa !9
  %537 = add nsw i32 %536, 1
  store i32 %537, ptr %34, align 4, !tbaa !9
  br label %477, !llvm.loop !19

538:                                              ; preds = %485
  %539 = load ptr, ptr %22, align 8, !tbaa !5
  %540 = icmp eq ptr %539, null
  br i1 %540, label %542, label %541

541:                                              ; preds = %538
  call void @_ZdlPvm(ptr noundef %539, i64 noundef 4) #7
  br label %542

542:                                              ; preds = %541, %538
  %543 = load ptr, ptr %23, align 8, !tbaa !5
  %544 = icmp eq ptr %543, null
  br i1 %544, label %546, label %545

545:                                              ; preds = %542
  call void @_ZdlPvm(ptr noundef %543, i64 noundef 4) #7
  br label %546

546:                                              ; preds = %545, %542
  %547 = load ptr, ptr %24, align 8, !tbaa !5
  %548 = icmp eq ptr %547, null
  br i1 %548, label %550, label %549

549:                                              ; preds = %546
  call void @_ZdlPvm(ptr noundef %547, i64 noundef 4) #7
  br label %550

550:                                              ; preds = %549, %546
  %551 = load ptr, ptr %25, align 8, !tbaa !5
  %552 = icmp eq ptr %551, null
  br i1 %552, label %554, label %553

553:                                              ; preds = %550
  call void @_ZdlPvm(ptr noundef %551, i64 noundef 4) #7
  br label %554

554:                                              ; preds = %553, %550
  %555 = load ptr, ptr %26, align 8, !tbaa !5
  %556 = icmp eq ptr %555, null
  br i1 %556, label %558, label %557

557:                                              ; preds = %554
  call void @_ZdlPvm(ptr noundef %555, i64 noundef 4) #7
  br label %558

558:                                              ; preds = %557, %554
  %559 = load ptr, ptr %27, align 8, !tbaa !5
  %560 = icmp eq ptr %559, null
  br i1 %560, label %562, label %561

561:                                              ; preds = %558
  call void @_ZdlPvm(ptr noundef %559, i64 noundef 4) #7
  br label %562

562:                                              ; preds = %561, %558
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  ret void
}

attributes #0 = { mustprogress 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { nobuiltin allocsize(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 #4 = { nobuiltin 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 #5 = { nounwind }
attributes #6 = { builtin allocsize(0) }
attributes #7 = { builtin 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++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !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}


; 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: mustprogress uwtable
declare dso_local void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #0

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #1

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) local_unnamed_addr #2

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
define dso_local void @_Z19consistentMappingCLPfS_S_S_S_S_iiii(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %9) local_unnamed_addr #0 {
  %11 = sitofp i32 %9 to float
  %12 = fdiv float 1.000000e+00, %11
  %13 = mul nsw i32 %7, %6
  %14 = mul nsw i32 %13, %8
  %15 = zext i32 %14 to i64
  %16 = icmp slt i32 %14, 0
  %17 = shl nuw nsw i64 %15, 2
  %18 = select i1 %16, i64 -1, i64 %17
  %19 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %18) #6
  %20 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %18) #6
  %21 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %18) #6
  %22 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %18) #6
  %23 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %18) #6
  %24 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %18) #6
  %25 = icmp sgt i32 %14, 0
  br i1 %25, label %.lr.ph.preheader, label %.preheader232

.lr.ph.preheader:                                 ; preds = %10
  %min.iters.check = icmp ult i32 %14, 4
  br i1 %min.iters.check, label %.lr.ph.preheader421, label %vector.ph

.lr.ph.preheader421:                              ; preds = %middle.block, %.lr.ph.preheader
  %indvars.iv.ph = phi i64 [ 0, %.lr.ph.preheader ], [ %n.vec, %middle.block ]
  br label %.lr.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %15, 2147483644
  %broadcast.splatinsert = insertelement <4 x float> poison, float %12, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %26 = getelementptr inbounds float, ptr %0, i64 %index
  %wide.load = load <4 x float>, ptr %26, align 4, !tbaa !5
  %27 = fmul <4 x float> %broadcast.splat, %wide.load
  %28 = getelementptr inbounds float, ptr %19, i64 %index
  store <4 x float> %27, ptr %28, align 4, !tbaa !5
  %29 = getelementptr inbounds float, ptr %1, i64 %index
  %wide.load269 = load <4 x float>, ptr %29, align 4, !tbaa !5
  %30 = fmul <4 x float> %broadcast.splat, %wide.load269
  %31 = getelementptr inbounds float, ptr %20, i64 %index
  store <4 x float> %30, ptr %31, align 4, !tbaa !5
  %32 = getelementptr inbounds float, ptr %2, i64 %index
  %wide.load270 = load <4 x float>, ptr %32, align 4, !tbaa !5
  %33 = fmul <4 x float> %broadcast.splat, %wide.load270
  %34 = getelementptr inbounds float, ptr %21, i64 %index
  store <4 x float> %33, ptr %34, align 4, !tbaa !5
  %35 = getelementptr inbounds float, ptr %3, i64 %index
  %wide.load271 = load <4 x float>, ptr %35, align 4, !tbaa !5
  %36 = fmul <4 x float> %broadcast.splat, %wide.load271
  %37 = getelementptr inbounds float, ptr %22, i64 %index
  store <4 x float> %36, ptr %37, align 4, !tbaa !5
  %38 = getelementptr inbounds float, ptr %4, i64 %index
  %wide.load272 = load <4 x float>, ptr %38, align 4, !tbaa !5
  %39 = fmul <4 x float> %broadcast.splat, %wide.load272
  %40 = getelementptr inbounds float, ptr %23, i64 %index
  store <4 x float> %39, ptr %40, align 4, !tbaa !5
  %41 = getelementptr inbounds float, ptr %5, i64 %index
  %wide.load273 = load <4 x float>, ptr %41, align 4, !tbaa !5
  %42 = fmul <4 x float> %broadcast.splat, %wide.load273
  %43 = getelementptr inbounds float, ptr %24, i64 %index
  store <4 x float> %42, ptr %43, align 4, !tbaa !5
  %index.next = add nuw i64 %index, 4
  %44 = icmp eq i64 %index.next, %n.vec
  br i1 %44, label %middle.block, label %vector.body, !llvm.loop !9

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %15
  br i1 %cmp.n, label %.preheader232, label %.lr.ph.preheader421

.preheader232:                                    ; preds = %.lr.ph, %middle.block, %10
  %45 = shl nuw nsw i64 %15, 2
  %scevgep = getelementptr i8, ptr %3, i64 %45
  %scevgep274 = getelementptr i8, ptr %4, i64 %45
  %scevgep275 = getelementptr i8, ptr %5, i64 %45
  %46 = shl nuw nsw i64 %15, 2
  %scevgep301 = getelementptr i8, ptr %0, i64 %46
  %scevgep302 = getelementptr i8, ptr %1, i64 %46
  %scevgep303 = getelementptr i8, ptr %2, i64 %46
  %min.iters.check317 = icmp ult i32 %14, 4
  %bound0304 = icmp ugt ptr %scevgep302, %0
  %bound1305 = icmp ugt ptr %scevgep301, %1
  %found.conflict306 = and i1 %bound0304, %bound1305
  %bound0307 = icmp ugt ptr %scevgep303, %0
  %bound1308 = icmp ugt ptr %scevgep301, %2
  %found.conflict309 = and i1 %bound0307, %bound1308
  %conflict.rdx310 = or i1 %found.conflict306, %found.conflict309
  %bound0311 = icmp ugt ptr %scevgep303, %1
  %bound1312 = icmp ugt ptr %scevgep302, %2
  %found.conflict313 = and i1 %bound0311, %bound1312
  %conflict.rdx314 = or i1 %conflict.rdx310, %found.conflict313
  %n.vec320 = and i64 %15, 2147483644
  %cmp.n331 = icmp eq i64 %n.vec320, %15
  %min.iters.check285 = icmp ult i32 %14, 4
  %bound0 = icmp ugt ptr %scevgep274, %3
  %bound1 = icmp ugt ptr %scevgep, %4
  %found.conflict = and i1 %bound0, %bound1
  %bound0276 = icmp ugt ptr %scevgep275, %3
  %bound1277 = icmp ugt ptr %scevgep, %5
  %found.conflict278 = and i1 %bound0276, %bound1277
  %conflict.rdx = or i1 %found.conflict, %found.conflict278
  %bound0279 = icmp ugt ptr %scevgep275, %4
  %bound1280 = icmp ugt ptr %scevgep274, %5
  %found.conflict281 = and i1 %bound0279, %bound1280
  %conflict.rdx282 = or i1 %conflict.rdx, %found.conflict281
  %n.vec288 = and i64 %15, 2147483644
  %cmp.n299 = icmp eq i64 %n.vec288, %15
  br label %.backedge

.lr.ph:                                           ; preds = %.lr.ph.preheader421, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ %indvars.iv.ph, %.lr.ph.preheader421 ]
  %47 = getelementptr inbounds float, ptr %0, i64 %indvars.iv
  %48 = load float, ptr %47, align 4, !tbaa !5
  %49 = fmul float %12, %48
  %50 = getelementptr inbounds float, ptr %19, i64 %indvars.iv
  store float %49, ptr %50, align 4, !tbaa !5
  %51 = getelementptr inbounds float, ptr %1, i64 %indvars.iv
  %52 = load float, ptr %51, align 4, !tbaa !5
  %53 = fmul float %12, %52
  %54 = getelementptr inbounds float, ptr %20, i64 %indvars.iv
  store float %53, ptr %54, align 4, !tbaa !5
  %55 = getelementptr inbounds float, ptr %2, i64 %indvars.iv
  %56 = load float, ptr %55, align 4, !tbaa !5
  %57 = fmul float %12, %56
  %58 = getelementptr inbounds float, ptr %21, i64 %indvars.iv
  store float %57, ptr %58, align 4, !tbaa !5
  %59 = getelementptr inbounds float, ptr %3, i64 %indvars.iv
  %60 = load float, ptr %59, align 4, !tbaa !5
  %61 = fmul float %12, %60
  %62 = getelementptr inbounds float, ptr %22, i64 %indvars.iv
  store float %61, ptr %62, align 4, !tbaa !5
  %63 = getelementptr inbounds float, ptr %4, i64 %indvars.iv
  %64 = load float, ptr %63, align 4, !tbaa !5
  %65 = fmul float %12, %64
  %66 = getelementptr inbounds float, ptr %23, i64 %indvars.iv
  store float %65, ptr %66, align 4, !tbaa !5
  %67 = getelementptr inbounds float, ptr %5, i64 %indvars.iv
  %68 = load float, ptr %67, align 4, !tbaa !5
  %69 = fmul float %12, %68
  %70 = getelementptr inbounds float, ptr %24, i64 %indvars.iv
  store float %69, ptr %70, align 4, !tbaa !5
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %15
  br i1 %exitcond.not, label %.preheader232, label %.lr.ph, !llvm.loop !13

.backedge:                                        ; preds = %.backedge.backedge, %.preheader232
  %.0228242 = phi i32 [ 0, %.preheader232 ], [ %.0228242.be, %.backedge.backedge ]
  tail call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %0, ptr noundef nonnull %22, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %6, i32 noundef %7, i32 noundef %8, i1 noundef zeroext true)
  tail call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %1, ptr noundef nonnull %23, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %6, i32 noundef %7, i32 noundef %8, i1 noundef zeroext true)
  tail call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %2, ptr noundef nonnull %24, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %6, i32 noundef %7, i32 noundef %8, i1 noundef zeroext true)
  br i1 %25, label %.lr.ph235.preheader, label %._crit_edge241.thread.critedge

.lr.ph235.preheader:                              ; preds = %.backedge
  %brmerge = select i1 %min.iters.check317, i1 true, i1 %conflict.rdx314
  br i1 %brmerge, label %.lr.ph235.preheader419, label %vector.body322

.lr.ph235.preheader419:                           ; preds = %.lr.ph235.preheader, %middle.block315
  %indvars.iv247.ph = phi i64 [ 0, %.lr.ph235.preheader ], [ %n.vec320, %middle.block315 ]
  br label %.lr.ph235

vector.body322:                                   ; preds = %.lr.ph235.preheader, %vector.body322
  %index323 = phi i64 [ %index.next330, %vector.body322 ], [ 0, %.lr.ph235.preheader ]
  %71 = getelementptr inbounds float, ptr %19, i64 %index323
  %wide.load324 = load <4 x float>, ptr %71, align 4, !tbaa !5
  %72 = fpext <4 x float> %wide.load324 to <4 x double>
  %73 = getelementptr inbounds float, ptr %0, i64 %index323
  %wide.load325 = load <4 x float>, ptr %73, align 4, !tbaa !5, !alias.scope !14, !noalias !17
  %74 = fpext <4 x float> %wide.load325 to <4 x double>
  %75 = fmul <4 x double> %74, <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>
  %76 = tail call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %72, <4 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>, <4 x double> %75)
  %77 = fptrunc <4 x double> %76 to <4 x float>
  store <4 x float> %77, ptr %73, align 4, !tbaa !5, !alias.scope !14, !noalias !17
  %78 = getelementptr inbounds float, ptr %20, i64 %index323
  %wide.load326 = load <4 x float>, ptr %78, align 4, !tbaa !5
  %79 = fpext <4 x float> %wide.load326 to <4 x double>
  %80 = getelementptr inbounds float, ptr %1, i64 %index323
  %wide.load327 = load <4 x float>, ptr %80, align 4, !tbaa !5, !alias.scope !20, !noalias !21
  %81 = fpext <4 x float> %wide.load327 to <4 x double>
  %82 = fmul <4 x double> %81, <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>
  %83 = tail call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %79, <4 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>, <4 x double> %82)
  %84 = fptrunc <4 x double> %83 to <4 x float>
  store <4 x float> %84, ptr %80, align 4, !tbaa !5, !alias.scope !20, !noalias !21
  %85 = getelementptr inbounds float, ptr %21, i64 %index323
  %wide.load328 = load <4 x float>, ptr %85, align 4, !tbaa !5
  %86 = fpext <4 x float> %wide.load328 to <4 x double>
  %87 = getelementptr inbounds float, ptr %2, i64 %index323
  %wide.load329 = load <4 x float>, ptr %87, align 4, !tbaa !5, !alias.scope !21
  %88 = fpext <4 x float> %wide.load329 to <4 x double>
  %89 = fmul <4 x double> %88, <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>
  %90 = tail call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %86, <4 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>, <4 x double> %89)
  %91 = fptrunc <4 x double> %90 to <4 x float>
  store <4 x float> %91, ptr %87, align 4, !tbaa !5, !alias.scope !21
  %index.next330 = add nuw i64 %index323, 4
  %92 = icmp eq i64 %index.next330, %n.vec320
  br i1 %92, label %middle.block315, label %vector.body322, !llvm.loop !22

middle.block315:                                  ; preds = %vector.body322
  br i1 %cmp.n331, label %._crit_edge, label %.lr.ph235.preheader419

._crit_edge:                                      ; preds = %.lr.ph235, %middle.block315
  tail call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %3, ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %6, i32 noundef %7, i32 noundef %8, i1 noundef zeroext true)
  tail call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %4, ptr noundef nonnull %20, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %6, i32 noundef %7, i32 noundef %8, i1 noundef zeroext true)
  tail call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %5, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %6, i32 noundef %7, i32 noundef %8, i1 noundef zeroext true)
  br i1 %25, label %.lr.ph238.preheader, label %._crit_edge241.thread

.lr.ph238.preheader:                              ; preds = %._crit_edge
  %brmerge422 = select i1 %min.iters.check285, i1 true, i1 %conflict.rdx282
  br i1 %brmerge422, label %.lr.ph238.preheader418, label %vector.body290

.lr.ph238.preheader418:                           ; preds = %.lr.ph238.preheader, %middle.block283
  %indvars.iv252.ph = phi i64 [ 0, %.lr.ph238.preheader ], [ %n.vec288, %middle.block283 ]
  br label %.lr.ph238

vector.body290:                                   ; preds = %.lr.ph238.preheader, %vector.body290
  %index291 = phi i64 [ %index.next298, %vector.body290 ], [ 0, %.lr.ph238.preheader ]
  %93 = getelementptr inbounds float, ptr %22, i64 %index291
  %wide.load292 = load <4 x float>, ptr %93, align 4, !tbaa !5
  %94 = fpext <4 x float> %wide.load292 to <4 x double>
  %95 = getelementptr inbounds float, ptr %3, i64 %index291
  %wide.load293 = load <4 x float>, ptr %95, align 4, !tbaa !5, !alias.scope !23, !noalias !26
  %96 = fpext <4 x float> %wide.load293 to <4 x double>
  %97 = fmul <4 x double> %96, <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>
  %98 = tail call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %94, <4 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>, <4 x double> %97)
  %99 = fptrunc <4 x double> %98 to <4 x float>
  store <4 x float> %99, ptr %95, align 4, !tbaa !5, !alias.scope !23, !noalias !26
  %100 = getelementptr inbounds float, ptr %23, i64 %index291
  %wide.load294 = load <4 x float>, ptr %100, align 4, !tbaa !5
  %101 = fpext <4 x float> %wide.load294 to <4 x double>
  %102 = getelementptr inbounds float, ptr %4, i64 %index291
  %wide.load295 = load <4 x float>, ptr %102, align 4, !tbaa !5, !alias.scope !29, !noalias !30
  %103 = fpext <4 x float> %wide.load295 to <4 x double>
  %104 = fmul <4 x double> %103, <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>
  %105 = tail call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %101, <4 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>, <4 x double> %104)
  %106 = fptrunc <4 x double> %105 to <4 x float>
  store <4 x float> %106, ptr %102, align 4, !tbaa !5, !alias.scope !29, !noalias !30
  %107 = getelementptr inbounds float, ptr %24, i64 %index291
  %wide.load296 = load <4 x float>, ptr %107, align 4, !tbaa !5
  %108 = fpext <4 x float> %wide.load296 to <4 x double>
  %109 = getelementptr inbounds float, ptr %5, i64 %index291
  %wide.load297 = load <4 x float>, ptr %109, align 4, !tbaa !5, !alias.scope !30
  %110 = fpext <4 x float> %wide.load297 to <4 x double>
  %111 = fmul <4 x double> %110, <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>
  %112 = tail call <4 x double> @llvm.fmuladd.v4f64(<4 x double> %108, <4 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>, <4 x double> %111)
  %113 = fptrunc <4 x double> %112 to <4 x float>
  store <4 x float> %113, ptr %109, align 4, !tbaa !5, !alias.scope !30
  %index.next298 = add nuw i64 %index291, 4
  %114 = icmp eq i64 %index.next298, %n.vec288
  br i1 %114, label %middle.block283, label %vector.body290, !llvm.loop !31

middle.block283:                                  ; preds = %vector.body290
  br i1 %cmp.n299, label %.preheader231, label %.lr.ph238.preheader418

.lr.ph235:                                        ; preds = %.lr.ph235.preheader419, %.lr.ph235
  %indvars.iv247 = phi i64 [ %indvars.iv.next248, %.lr.ph235 ], [ %indvars.iv247.ph, %.lr.ph235.preheader419 ]
  %115 = getelementptr inbounds float, ptr %19, i64 %indvars.iv247
  %116 = load float, ptr %115, align 4, !tbaa !5
  %117 = fpext float %116 to double
  %118 = getelementptr inbounds float, ptr %0, i64 %indvars.iv247
  %119 = load float, ptr %118, align 4, !tbaa !5
  %120 = fpext float %119 to double
  %121 = fmul double %120, -5.000000e-01
  %122 = tail call double @llvm.fmuladd.f64(double %117, double 5.000000e-01, double %121)
  %123 = fptrunc double %122 to float
  store float %123, ptr %118, align 4, !tbaa !5
  %124 = getelementptr inbounds float, ptr %20, i64 %indvars.iv247
  %125 = load float, ptr %124, align 4, !tbaa !5
  %126 = fpext float %125 to double
  %127 = getelementptr inbounds float, ptr %1, i64 %indvars.iv247
  %128 = load float, ptr %127, align 4, !tbaa !5
  %129 = fpext float %128 to double
  %130 = fmul double %129, -5.000000e-01
  %131 = tail call double @llvm.fmuladd.f64(double %126, double 5.000000e-01, double %130)
  %132 = fptrunc double %131 to float
  store float %132, ptr %127, align 4, !tbaa !5
  %133 = getelementptr inbounds float, ptr %21, i64 %indvars.iv247
  %134 = load float, ptr %133, align 4, !tbaa !5
  %135 = fpext float %134 to double
  %136 = getelementptr inbounds float, ptr %2, i64 %indvars.iv247
  %137 = load float, ptr %136, align 4, !tbaa !5
  %138 = fpext float %137 to double
  %139 = fmul double %138, -5.000000e-01
  %140 = tail call double @llvm.fmuladd.f64(double %135, double 5.000000e-01, double %139)
  %141 = fptrunc double %140 to float
  store float %141, ptr %136, align 4, !tbaa !5
  %indvars.iv.next248 = add nuw nsw i64 %indvars.iv247, 1
  %exitcond251.not = icmp eq i64 %indvars.iv.next248, %15
  br i1 %exitcond251.not, label %._crit_edge, label %.lr.ph235, !llvm.loop !32

.preheader231:                                    ; preds = %.lr.ph238, %middle.block283
  br i1 %25, label %._crit_edge241, label %._crit_edge241.thread

.lr.ph238:                                        ; preds = %.lr.ph238.preheader418, %.lr.ph238
  %indvars.iv252 = phi i64 [ %indvars.iv.next253, %.lr.ph238 ], [ %indvars.iv252.ph, %.lr.ph238.preheader418 ]
  %142 = getelementptr inbounds float, ptr %22, i64 %indvars.iv252
  %143 = load float, ptr %142, align 4, !tbaa !5
  %144 = fpext float %143 to double
  %145 = getelementptr inbounds float, ptr %3, i64 %indvars.iv252
  %146 = load float, ptr %145, align 4, !tbaa !5
  %147 = fpext float %146 to double
  %148 = fmul double %147, -5.000000e-01
  %149 = tail call double @llvm.fmuladd.f64(double %144, double 5.000000e-01, double %148)
  %150 = fptrunc double %149 to float
  store float %150, ptr %145, align 4, !tbaa !5
  %151 = getelementptr inbounds float, ptr %23, i64 %indvars.iv252
  %152 = load float, ptr %151, align 4, !tbaa !5
  %153 = fpext float %152 to double
  %154 = getelementptr inbounds float, ptr %4, i64 %indvars.iv252
  %155 = load float, ptr %154, align 4, !tbaa !5
  %156 = fpext float %155 to double
  %157 = fmul double %156, -5.000000e-01
  %158 = tail call double @llvm.fmuladd.f64(double %153, double 5.000000e-01, double %157)
  %159 = fptrunc double %158 to float
  store float %159, ptr %154, align 4, !tbaa !5
  %160 = getelementptr inbounds float, ptr %24, i64 %indvars.iv252
  %161 = load float, ptr %160, align 4, !tbaa !5
  %162 = fpext float %161 to double
  %163 = getelementptr inbounds float, ptr %5, i64 %indvars.iv252
  %164 = load float, ptr %163, align 4, !tbaa !5
  %165 = fpext float %164 to double
  %166 = fmul double %165, -5.000000e-01
  %167 = tail call double @llvm.fmuladd.f64(double %162, double 5.000000e-01, double %166)
  %168 = fptrunc double %167 to float
  store float %168, ptr %163, align 4, !tbaa !5
  %indvars.iv.next253 = add nuw nsw i64 %indvars.iv252, 1
  %exitcond256.not = icmp eq i64 %indvars.iv.next253, %15
  br i1 %exitcond256.not, label %.preheader231, label %.lr.ph238, !llvm.loop !33

._crit_edge241:                                   ; preds = %.preheader231
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %19, ptr align 4 %0, i64 %17, i1 false), !tbaa !5
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %20, ptr align 4 %1, i64 %17, i1 false), !tbaa !5
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %21, ptr align 4 %2, i64 %17, i1 false), !tbaa !5
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %22, ptr nonnull align 4 %3, i64 %17, i1 false), !tbaa !5
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %23, ptr nonnull align 4 %4, i64 %17, i1 false), !tbaa !5
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %24, ptr nonnull align 4 %5, i64 %17, i1 false), !tbaa !5
  %169 = add nuw nsw i32 %.0228242, 1
  %exitcond260.not = icmp eq i32 %169, 10
  br i1 %exitcond260.not, label %.lr.ph244.preheader, label %.backedge.backedge

.backedge.backedge:                               ; preds = %._crit_edge241, %._crit_edge241.thread
  %.0228242.be = phi i32 [ %169, %._crit_edge241 ], [ %184, %._crit_edge241.thread ]
  br label %.backedge, !llvm.loop !34

.lr.ph244.preheader:                              ; preds = %._crit_edge241
  %min.iters.check400 = icmp ult i32 %14, 24
  br i1 %min.iters.check400, label %.lr.ph244.preheader417, label %vector.memcheck332

.lr.ph244.preheader417:                           ; preds = %middle.block398, %vector.memcheck332, %.lr.ph244.preheader
  %indvars.iv261.ph = phi i64 [ 0, %vector.memcheck332 ], [ 0, %.lr.ph244.preheader ], [ %n.vec403, %middle.block398 ]
  br label %.lr.ph244

vector.memcheck332:                               ; preds = %.lr.ph244.preheader
  %170 = shl nuw nsw i64 %15, 2
  %scevgep333 = getelementptr i8, ptr %0, i64 %170
  %scevgep334 = getelementptr i8, ptr %1, i64 %170
  %scevgep335 = getelementptr i8, ptr %2, i64 %170
  %scevgep336 = getelementptr i8, ptr %3, i64 %170
  %scevgep337 = getelementptr i8, ptr %4, i64 %170
  %scevgep338 = getelementptr i8, ptr %5, i64 %170
  %bound0339 = icmp ugt ptr %scevgep334, %0
  %bound1340 = icmp ugt ptr %scevgep333, %1
  %found.conflict341 = and i1 %bound0339, %bound1340
  %bound0342 = icmp ugt ptr %scevgep335, %0
  %bound1343 = icmp ugt ptr %scevgep333, %2
  %found.conflict344 = and i1 %bound0342, %bound1343
  %conflict.rdx345 = or i1 %found.conflict341, %found.conflict344
  %bound0346 = icmp ugt ptr %scevgep336, %0
  %bound1347 = icmp ugt ptr %scevgep333, %3
  %found.conflict348 = and i1 %bound0346, %bound1347
  %conflict.rdx349 = or i1 %conflict.rdx345, %found.conflict348
  %bound0350 = icmp ugt ptr %scevgep337, %0
  %bound1351 = icmp ugt ptr %scevgep333, %4
  %found.conflict352 = and i1 %bound0350, %bound1351
  %conflict.rdx353 = or i1 %conflict.rdx349, %found.conflict352
  %bound0354 = icmp ugt ptr %scevgep338, %0
  %bound1355 = icmp ugt ptr %scevgep333, %5
  %found.conflict356 = and i1 %bound0354, %bound1355
  %conflict.rdx357 = or i1 %conflict.rdx353, %found.conflict356
  %bound0358 = icmp ugt ptr %scevgep335, %1
  %bound1359 = icmp ugt ptr %scevgep334, %2
  %found.conflict360 = and i1 %bound0358, %bound1359
  %conflict.rdx361 = or i1 %conflict.rdx357, %found.conflict360
  %bound0362 = icmp ugt ptr %scevgep336, %1
  %bound1363 = icmp ugt ptr %scevgep334, %3
  %found.conflict364 = and i1 %bound0362, %bound1363
  %conflict.rdx365 = or i1 %conflict.rdx361, %found.conflict364
  %bound0366 = icmp ugt ptr %scevgep337, %1
  %bound1367 = icmp ugt ptr %scevgep334, %4
  %found.conflict368 = and i1 %bound0366, %bound1367
  %conflict.rdx369 = or i1 %conflict.rdx365, %found.conflict368
  %bound0370 = icmp ugt ptr %scevgep338, %1
  %bound1371 = icmp ugt ptr %scevgep334, %5
  %found.conflict372 = and i1 %bound0370, %bound1371
  %conflict.rdx373 = or i1 %conflict.rdx369, %found.conflict372
  %bound0374 = icmp ugt ptr %scevgep336, %2
  %bound1375 = icmp ugt ptr %scevgep335, %3
  %found.conflict376 = and i1 %bound0374, %bound1375
  %conflict.rdx377 = or i1 %conflict.rdx373, %found.conflict376
  %bound0378 = icmp ugt ptr %scevgep337, %2
  %bound1379 = icmp ugt ptr %scevgep335, %4
  %found.conflict380 = and i1 %bound0378, %bound1379
  %conflict.rdx381 = or i1 %conflict.rdx377, %found.conflict380
  %bound0382 = icmp ugt ptr %scevgep338, %2
  %bound1383 = icmp ugt ptr %scevgep335, %5
  %found.conflict384 = and i1 %bound0382, %bound1383
  %conflict.rdx385 = or i1 %conflict.rdx381, %found.conflict384
  %bound0386 = icmp ugt ptr %scevgep337, %3
  %bound1387 = icmp ugt ptr %scevgep336, %4
  %found.conflict388 = and i1 %bound0386, %bound1387
  %conflict.rdx389 = or i1 %conflict.rdx385, %found.conflict388
  %bound0390 = icmp ugt ptr %scevgep338, %3
  %bound1391 = icmp ugt ptr %scevgep336, %5
  %found.conflict392 = and i1 %bound0390, %bound1391
  %conflict.rdx393 = or i1 %conflict.rdx389, %found.conflict392
  %bound0394 = icmp ugt ptr %scevgep338, %4
  %bound1395 = icmp ugt ptr %scevgep337, %5
  %found.conflict396 = and i1 %bound0394, %bound1395
  %conflict.rdx397 = or i1 %conflict.rdx393, %found.conflict396
  br i1 %conflict.rdx397, label %.lr.ph244.preheader417, label %vector.ph401

vector.ph401:                                     ; preds = %vector.memcheck332
  %n.vec403 = and i64 %15, 2147483644
  %broadcast.splatinsert408 = insertelement <4 x float> poison, float %11, i64 0
  %broadcast.splat409 = shufflevector <4 x float> %broadcast.splatinsert408, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body405

vector.body405:                                   ; preds = %vector.body405, %vector.ph401
  %index406 = phi i64 [ 0, %vector.ph401 ], [ %index.next415, %vector.body405 ]
  %171 = getelementptr inbounds float, ptr %0, i64 %index406
  %wide.load407 = load <4 x float>, ptr %171, align 4, !tbaa !5, !alias.scope !35, !noalias !38
  %172 = fmul <4 x float> %wide.load407, %broadcast.splat409
  store <4 x float> %172, ptr %171, align 4, !tbaa !5, !alias.scope !35, !noalias !38
  %173 = getelementptr inbounds float, ptr %1, i64 %index406
  %wide.load410 = load <4 x float>, ptr %173, align 4, !tbaa !5, !alias.scope !44, !noalias !45
  %174 = fmul <4 x float> %wide.load410, %broadcast.splat409
  store <4 x float> %174, ptr %173, align 4, !tbaa !5, !alias.scope !44, !noalias !45
  %175 = getelementptr inbounds float, ptr %2, i64 %index406
  %wide.load411 = load <4 x float>, ptr %175, align 4, !tbaa !5, !alias.scope !46, !noalias !47
  %176 = fmul <4 x float> %wide.load411, %broadcast.splat409
  store <4 x float> %176, ptr %175, align 4, !tbaa !5, !alias.scope !46, !noalias !47
  %177 = getelementptr inbounds float, ptr %3, i64 %index406
  %wide.load412 = load <4 x float>, ptr %177, align 4, !tbaa !5, !alias.scope !48, !noalias !49
  %178 = fmul <4 x float> %wide.load412, %broadcast.splat409
  store <4 x float> %178, ptr %177, align 4, !tbaa !5, !alias.scope !48, !noalias !49
  %179 = getelementptr inbounds float, ptr %4, i64 %index406
  %wide.load413 = load <4 x float>, ptr %179, align 4, !tbaa !5, !alias.scope !50, !noalias !51
  %180 = fmul <4 x float> %wide.load413, %broadcast.splat409
  store <4 x float> %180, ptr %179, align 4, !tbaa !5, !alias.scope !50, !noalias !51
  %181 = getelementptr inbounds float, ptr %5, i64 %index406
  %wide.load414 = load <4 x float>, ptr %181, align 4, !tbaa !5, !alias.scope !51
  %182 = fmul <4 x float> %wide.load414, %broadcast.splat409
  store <4 x float> %182, ptr %181, align 4, !tbaa !5, !alias.scope !51
  %index.next415 = add nuw i64 %index406, 4
  %183 = icmp eq i64 %index.next415, %n.vec403
  br i1 %183, label %middle.block398, label %vector.body405, !llvm.loop !52

middle.block398:                                  ; preds = %vector.body405
  %cmp.n416 = icmp eq i64 %n.vec403, %15
  br i1 %cmp.n416, label %._crit_edge245, label %.lr.ph244.preheader417

._crit_edge241.thread.critedge:                   ; preds = %.backedge
  tail call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %3, ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %6, i32 noundef %7, i32 noundef %8, i1 noundef zeroext true)
  tail call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %4, ptr noundef nonnull %20, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %6, i32 noundef %7, i32 noundef %8, i1 noundef zeroext true)
  tail call void @_Z7interp3PfS_S_S_S_iiiiiib(ptr noundef %5, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %24, i32 noundef %6, i32 noundef %7, i32 noundef %8, i32 noundef %6, i32 noundef %7, i32 noundef %8, i1 noundef zeroext true)
  br label %._crit_edge241.thread

._crit_edge241.thread:                            ; preds = %._crit_edge241.thread.critedge, %._crit_edge, %.preheader231
  %184 = add nuw nsw i32 %.0228242, 1
  %exitcond260.not266 = icmp eq i32 %184, 10
  br i1 %exitcond260.not266, label %._crit_edge245, label %.backedge.backedge

.lr.ph244:                                        ; preds = %.lr.ph244.preheader417, %.lr.ph244
  %indvars.iv261 = phi i64 [ %indvars.iv.next262, %.lr.ph244 ], [ %indvars.iv261.ph, %.lr.ph244.preheader417 ]
  %185 = getelementptr inbounds float, ptr %0, i64 %indvars.iv261
  %186 = load float, ptr %185, align 4, !tbaa !5
  %187 = fmul float %186, %11
  store float %187, ptr %185, align 4, !tbaa !5
  %188 = getelementptr inbounds float, ptr %1, i64 %indvars.iv261
  %189 = load float, ptr %188, align 4, !tbaa !5
  %190 = fmul float %189, %11
  store float %190, ptr %188, align 4, !tbaa !5
  %191 = getelementptr inbounds float, ptr %2, i64 %indvars.iv261
  %192 = load float, ptr %191, align 4, !tbaa !5
  %193 = fmul float %192, %11
  store float %193, ptr %191, align 4, !tbaa !5
  %194 = getelementptr inbounds float, ptr %3, i64 %indvars.iv261
  %195 = load float, ptr %194, align 4, !tbaa !5
  %196 = fmul float %195, %11
  store float %196, ptr %194, align 4, !tbaa !5
  %197 = getelementptr inbounds float, ptr %4, i64 %indvars.iv261
  %198 = load float, ptr %197, align 4, !tbaa !5
  %199 = fmul float %198, %11
  store float %199, ptr %197, align 4, !tbaa !5
  %200 = getelementptr inbounds float, ptr %5, i64 %indvars.iv261
  %201 = load float, ptr %200, align 4, !tbaa !5
  %202 = fmul float %201, %11
  store float %202, ptr %200, align 4, !tbaa !5
  %indvars.iv.next262 = add nuw nsw i64 %indvars.iv261, 1
  %exitcond265.not = icmp eq i64 %indvars.iv.next262, %15
  br i1 %exitcond265.not, label %._crit_edge245, label %.lr.ph244, !llvm.loop !53

._crit_edge245:                                   ; preds = %._crit_edge241.thread, %.lr.ph244, %middle.block398
  tail call void @_ZdlPvm(ptr noundef nonnull %19, i64 noundef 4) #7
  tail call void @_ZdlPvm(ptr noundef nonnull %20, i64 noundef 4) #7
  tail call void @_ZdlPvm(ptr noundef nonnull %21, i64 noundef 4) #7
  tail call void @_ZdlPvm(ptr noundef nonnull %22, i64 noundef 4) #7
  tail call void @_ZdlPvm(ptr noundef nonnull %23, i64 noundef 4) #7
  tail call void @_ZdlPvm(ptr noundef nonnull %24, i64 noundef 4) #7
  ret void
}

; 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) #4

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

attributes #0 = { mustprogress 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 speculatable willreturn memory(none) }
attributes #2 = { nobuiltin allocsize(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 #3 = { nobuiltin 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 #4 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { builtin allocsize(0) }
attributes #7 = { builtin 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 = !{!"float", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10, !11, !12}
!10 = !{!"llvm.loop.mustprogress"}
!11 = !{!"llvm.loop.isvectorized", i32 1}
!12 = !{!"llvm.loop.unroll.runtime.disable"}
!13 = distinct !{!13, !10, !12, !11}
!14 = !{!15}
!15 = distinct !{!15, !16}
!16 = distinct !{!16, !"LVerDomain"}
!17 = !{!18, !19}
!18 = distinct !{!18, !16}
!19 = distinct !{!19, !16}
!20 = !{!18}
!21 = !{!19}
!22 = distinct !{!22, !10, !11, !12}
!23 = !{!24}
!24 = distinct !{!24, !25}
!25 = distinct !{!25, !"LVerDomain"}
!26 = !{!27, !28}
!27 = distinct !{!27, !25}
!28 = distinct !{!28, !25}
!29 = !{!27}
!30 = !{!28}
!31 = distinct !{!31, !10, !11, !12}
!32 = distinct !{!32, !10, !11}
!33 = distinct !{!33, !10, !11}
!34 = distinct !{!34, !10}
!35 = !{!36}
!36 = distinct !{!36, !37}
!37 = distinct !{!37, !"LVerDomain"}
!38 = !{!39, !40, !41, !42, !43}
!39 = distinct !{!39, !37}
!40 = distinct !{!40, !37}
!41 = distinct !{!41, !37}
!42 = distinct !{!42, !37}
!43 = distinct !{!43, !37}
!44 = !{!39}
!45 = !{!40, !41, !42, !43}
!46 = !{!40}
!47 = !{!41, !42, !43}
!48 = !{!41}
!49 = !{!42, !43}
!50 = !{!42}
!51 = !{!43}
!52 = distinct !{!52, !10, !11, !12}
!53 = distinct !{!53, !10, !11}


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