; LLVM IR from ox-vgg/vise :: src/search_engine/relja_retrival/external/KMCode_relja/gauss_iir (gauss_iir)

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

%class.ImageContent = type { i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80)) #1 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z10smoothYYV9P12ImageContentS0_(ptr noundef %0, ptr noundef %1) #3 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #4
  %11 = load ptr, ptr %3, align 8, !tbaa !5
  %12 = call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %11)
  store i32 %12, ptr %5, align 4, !tbaa !9
  %13 = load ptr, ptr %3, align 8, !tbaa !5
  %14 = call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %13)
  store i32 %14, ptr %6, align 4, !tbaa !9
  %15 = load ptr, ptr %3, align 8, !tbaa !5
  %16 = getelementptr inbounds %class.ImageContent, ptr %15, i32 0, i32 4
  %17 = load ptr, ptr %16, align 8, !tbaa !11
  store ptr %17, ptr %9, align 8, !tbaa !5
  %18 = load ptr, ptr %4, align 8, !tbaa !5
  %19 = getelementptr inbounds %class.ImageContent, ptr %18, i32 0, i32 4
  %20 = load ptr, ptr %19, align 8, !tbaa !11
  store ptr %20, ptr %10, align 8, !tbaa !5
  store i32 0, ptr %8, align 4, !tbaa !9
  br label %21

21:                                               ; preds = %848, %2
  %22 = load i32, ptr %8, align 4, !tbaa !9
  %23 = load i32, ptr %6, align 4, !tbaa !9
  %24 = icmp slt i32 %22, %23
  br i1 %24, label %25, label %851

25:                                               ; preds = %21
  store i32 4, ptr %7, align 4, !tbaa !9
  br label %26

26:                                               ; preds = %148, %25
  %27 = load i32, ptr %7, align 4, !tbaa !9
  %28 = load i32, ptr %5, align 4, !tbaa !9
  %29 = sub nsw i32 %28, 4
  %30 = icmp slt i32 %27, %29
  br i1 %30, label %31, label %151

31:                                               ; preds = %26
  %32 = load ptr, ptr %9, align 8, !tbaa !5
  %33 = load i32, ptr %7, align 4, !tbaa !9
  %34 = sub nsw i32 %33, 4
  %35 = sext i32 %34 to i64
  %36 = getelementptr inbounds ptr, ptr %32, i64 %35
  %37 = load ptr, ptr %36, align 8, !tbaa !5
  %38 = load i32, ptr %8, align 4, !tbaa !9
  %39 = sext i32 %38 to i64
  %40 = getelementptr inbounds float, ptr %37, i64 %39
  %41 = load float, ptr %40, align 4, !tbaa !13
  %42 = fpext float %41 to double
  %43 = load ptr, ptr %9, align 8, !tbaa !5
  %44 = load i32, ptr %7, align 4, !tbaa !9
  %45 = sub nsw i32 %44, 3
  %46 = sext i32 %45 to i64
  %47 = getelementptr inbounds ptr, ptr %43, i64 %46
  %48 = load ptr, ptr %47, align 8, !tbaa !5
  %49 = load i32, ptr %8, align 4, !tbaa !9
  %50 = sext i32 %49 to i64
  %51 = getelementptr inbounds float, ptr %48, i64 %50
  %52 = load float, ptr %51, align 4, !tbaa !13
  %53 = fpext float %52 to double
  %54 = fmul double 6.630000e-02, %53
  %55 = call double @llvm.fmuladd.f64(double 2.760000e-02, double %42, double %54)
  %56 = load ptr, ptr %9, align 8, !tbaa !5
  %57 = load i32, ptr %7, align 4, !tbaa !9
  %58 = sub nsw i32 %57, 2
  %59 = sext i32 %58 to i64
  %60 = getelementptr inbounds ptr, ptr %56, i64 %59
  %61 = load ptr, ptr %60, align 8, !tbaa !5
  %62 = load i32, ptr %8, align 4, !tbaa !9
  %63 = sext i32 %62 to i64
  %64 = getelementptr inbounds float, ptr %61, i64 %63
  %65 = load float, ptr %64, align 4, !tbaa !13
  %66 = fpext float %65 to double
  %67 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %66, double %55)
  %68 = load ptr, ptr %9, align 8, !tbaa !5
  %69 = load i32, ptr %7, align 4, !tbaa !9
  %70 = sub nsw i32 %69, 1
  %71 = sext i32 %70 to i64
  %72 = getelementptr inbounds ptr, ptr %68, i64 %71
  %73 = load ptr, ptr %72, align 8, !tbaa !5
  %74 = load i32, ptr %8, align 4, !tbaa !9
  %75 = sext i32 %74 to i64
  %76 = getelementptr inbounds float, ptr %73, i64 %75
  %77 = load float, ptr %76, align 4, !tbaa !13
  %78 = fpext float %77 to double
  %79 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %78, double %67)
  %80 = load ptr, ptr %9, align 8, !tbaa !5
  %81 = load i32, ptr %7, align 4, !tbaa !9
  %82 = sext i32 %81 to i64
  %83 = getelementptr inbounds ptr, ptr %80, i64 %82
  %84 = load ptr, ptr %83, align 8, !tbaa !5
  %85 = load i32, ptr %8, align 4, !tbaa !9
  %86 = sext i32 %85 to i64
  %87 = getelementptr inbounds float, ptr %84, i64 %86
  %88 = load float, ptr %87, align 4, !tbaa !13
  %89 = fpext float %88 to double
  %90 = call double @llvm.fmuladd.f64(double 2.042000e-01, double %89, double %79)
  %91 = load ptr, ptr %9, align 8, !tbaa !5
  %92 = load i32, ptr %7, align 4, !tbaa !9
  %93 = add nsw i32 %92, 1
  %94 = sext i32 %93 to i64
  %95 = getelementptr inbounds ptr, ptr %91, i64 %94
  %96 = load ptr, ptr %95, align 8, !tbaa !5
  %97 = load i32, ptr %8, align 4, !tbaa !9
  %98 = sext i32 %97 to i64
  %99 = getelementptr inbounds float, ptr %96, i64 %98
  %100 = load float, ptr %99, align 4, !tbaa !13
  %101 = fpext float %100 to double
  %102 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %101, double %90)
  %103 = load ptr, ptr %9, align 8, !tbaa !5
  %104 = load i32, ptr %7, align 4, !tbaa !9
  %105 = add nsw i32 %104, 2
  %106 = sext i32 %105 to i64
  %107 = getelementptr inbounds ptr, ptr %103, i64 %106
  %108 = load ptr, ptr %107, align 8, !tbaa !5
  %109 = load i32, ptr %8, align 4, !tbaa !9
  %110 = sext i32 %109 to i64
  %111 = getelementptr inbounds float, ptr %108, i64 %110
  %112 = load float, ptr %111, align 4, !tbaa !13
  %113 = fpext float %112 to double
  %114 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %113, double %102)
  %115 = load ptr, ptr %9, align 8, !tbaa !5
  %116 = load i32, ptr %7, align 4, !tbaa !9
  %117 = add nsw i32 %116, 3
  %118 = sext i32 %117 to i64
  %119 = getelementptr inbounds ptr, ptr %115, i64 %118
  %120 = load ptr, ptr %119, align 8, !tbaa !5
  %121 = load i32, ptr %8, align 4, !tbaa !9
  %122 = sext i32 %121 to i64
  %123 = getelementptr inbounds float, ptr %120, i64 %122
  %124 = load float, ptr %123, align 4, !tbaa !13
  %125 = fpext float %124 to double
  %126 = call double @llvm.fmuladd.f64(double 6.630000e-02, double %125, double %114)
  %127 = load ptr, ptr %9, align 8, !tbaa !5
  %128 = load i32, ptr %7, align 4, !tbaa !9
  %129 = add nsw i32 %128, 4
  %130 = sext i32 %129 to i64
  %131 = getelementptr inbounds ptr, ptr %127, i64 %130
  %132 = load ptr, ptr %131, align 8, !tbaa !5
  %133 = load i32, ptr %8, align 4, !tbaa !9
  %134 = sext i32 %133 to i64
  %135 = getelementptr inbounds float, ptr %132, i64 %134
  %136 = load float, ptr %135, align 4, !tbaa !13
  %137 = fpext float %136 to double
  %138 = call double @llvm.fmuladd.f64(double 2.760000e-02, double %137, double %126)
  %139 = fptrunc double %138 to float
  %140 = load ptr, ptr %10, align 8, !tbaa !5
  %141 = load i32, ptr %7, align 4, !tbaa !9
  %142 = sext i32 %141 to i64
  %143 = getelementptr inbounds ptr, ptr %140, i64 %142
  %144 = load ptr, ptr %143, align 8, !tbaa !5
  %145 = load i32, ptr %8, align 4, !tbaa !9
  %146 = sext i32 %145 to i64
  %147 = getelementptr inbounds float, ptr %144, i64 %146
  store float %139, ptr %147, align 4, !tbaa !13
  br label %148

148:                                              ; preds = %31
  %149 = load i32, ptr %7, align 4, !tbaa !9
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr %7, align 4, !tbaa !9
  br label %26, !llvm.loop !15

151:                                              ; preds = %26
  store i32 3, ptr %7, align 4, !tbaa !9
  %152 = load ptr, ptr %9, align 8, !tbaa !5
  %153 = load i32, ptr %7, align 4, !tbaa !9
  %154 = sub nsw i32 %153, 3
  %155 = sext i32 %154 to i64
  %156 = getelementptr inbounds ptr, ptr %152, i64 %155
  %157 = load ptr, ptr %156, align 8, !tbaa !5
  %158 = load i32, ptr %8, align 4, !tbaa !9
  %159 = sext i32 %158 to i64
  %160 = getelementptr inbounds float, ptr %157, i64 %159
  %161 = load float, ptr %160, align 4, !tbaa !13
  %162 = fpext float %161 to double
  %163 = load ptr, ptr %9, align 8, !tbaa !5
  %164 = load i32, ptr %7, align 4, !tbaa !9
  %165 = sub nsw i32 %164, 2
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds ptr, ptr %163, i64 %166
  %168 = load ptr, ptr %167, align 8, !tbaa !5
  %169 = load i32, ptr %8, align 4, !tbaa !9
  %170 = sext i32 %169 to i64
  %171 = getelementptr inbounds float, ptr %168, i64 %170
  %172 = load float, ptr %171, align 4, !tbaa !13
  %173 = fpext float %172 to double
  %174 = fmul double 1.238000e-01, %173
  %175 = call double @llvm.fmuladd.f64(double 0x3FB809D495182A99, double %162, double %174)
  %176 = load ptr, ptr %9, align 8, !tbaa !5
  %177 = load i32, ptr %7, align 4, !tbaa !9
  %178 = sub nsw i32 %177, 1
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds ptr, ptr %176, i64 %179
  %181 = load ptr, ptr %180, align 8, !tbaa !5
  %182 = load i32, ptr %8, align 4, !tbaa !9
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds float, ptr %181, i64 %183
  %185 = load float, ptr %184, align 4, !tbaa !13
  %186 = fpext float %185 to double
  %187 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %186, double %175)
  %188 = load ptr, ptr %9, align 8, !tbaa !5
  %189 = load i32, ptr %7, align 4, !tbaa !9
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds ptr, ptr %188, i64 %190
  %192 = load ptr, ptr %191, align 8, !tbaa !5
  %193 = load i32, ptr %8, align 4, !tbaa !9
  %194 = sext i32 %193 to i64
  %195 = getelementptr inbounds float, ptr %192, i64 %194
  %196 = load float, ptr %195, align 4, !tbaa !13
  %197 = fpext float %196 to double
  %198 = call double @llvm.fmuladd.f64(double 2.042000e-01, double %197, double %187)
  %199 = load ptr, ptr %9, align 8, !tbaa !5
  %200 = load i32, ptr %7, align 4, !tbaa !9
  %201 = add nsw i32 %200, 1
  %202 = sext i32 %201 to i64
  %203 = getelementptr inbounds ptr, ptr %199, i64 %202
  %204 = load ptr, ptr %203, align 8, !tbaa !5
  %205 = load i32, ptr %8, align 4, !tbaa !9
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds float, ptr %204, i64 %206
  %208 = load float, ptr %207, align 4, !tbaa !13
  %209 = fpext float %208 to double
  %210 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %209, double %198)
  %211 = load ptr, ptr %9, align 8, !tbaa !5
  %212 = load i32, ptr %7, align 4, !tbaa !9
  %213 = add nsw i32 %212, 2
  %214 = sext i32 %213 to i64
  %215 = getelementptr inbounds ptr, ptr %211, i64 %214
  %216 = load ptr, ptr %215, align 8, !tbaa !5
  %217 = load i32, ptr %8, align 4, !tbaa !9
  %218 = sext i32 %217 to i64
  %219 = getelementptr inbounds float, ptr %216, i64 %218
  %220 = load float, ptr %219, align 4, !tbaa !13
  %221 = fpext float %220 to double
  %222 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %221, double %210)
  %223 = load ptr, ptr %9, align 8, !tbaa !5
  %224 = load i32, ptr %7, align 4, !tbaa !9
  %225 = add nsw i32 %224, 3
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds ptr, ptr %223, i64 %226
  %228 = load ptr, ptr %227, align 8, !tbaa !5
  %229 = load i32, ptr %8, align 4, !tbaa !9
  %230 = sext i32 %229 to i64
  %231 = getelementptr inbounds float, ptr %228, i64 %230
  %232 = load float, ptr %231, align 4, !tbaa !13
  %233 = fpext float %232 to double
  %234 = call double @llvm.fmuladd.f64(double 6.630000e-02, double %233, double %222)
  %235 = load ptr, ptr %9, align 8, !tbaa !5
  %236 = load i32, ptr %7, align 4, !tbaa !9
  %237 = add nsw i32 %236, 4
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds ptr, ptr %235, i64 %238
  %240 = load ptr, ptr %239, align 8, !tbaa !5
  %241 = load i32, ptr %8, 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 !13
  %245 = fpext float %244 to double
  %246 = call double @llvm.fmuladd.f64(double 2.760000e-02, double %245, double %234)
  %247 = fptrunc double %246 to float
  %248 = load ptr, ptr %10, align 8, !tbaa !5
  %249 = load i32, ptr %7, align 4, !tbaa !9
  %250 = sext i32 %249 to i64
  %251 = getelementptr inbounds ptr, ptr %248, i64 %250
  %252 = load ptr, ptr %251, align 8, !tbaa !5
  %253 = load i32, ptr %8, align 4, !tbaa !9
  %254 = sext i32 %253 to i64
  %255 = getelementptr inbounds float, ptr %252, i64 %254
  store float %247, ptr %255, align 4, !tbaa !13
  store i32 2, ptr %7, align 4, !tbaa !9
  %256 = load ptr, ptr %9, align 8, !tbaa !5
  %257 = load i32, ptr %7, align 4, !tbaa !9
  %258 = sub nsw i32 %257, 2
  %259 = sext i32 %258 to i64
  %260 = getelementptr inbounds ptr, ptr %256, i64 %259
  %261 = load ptr, ptr %260, align 8, !tbaa !5
  %262 = load i32, ptr %8, align 4, !tbaa !9
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds float, ptr %261, i64 %263
  %265 = load float, ptr %264, align 4, !tbaa !13
  %266 = fpext float %265 to double
  %267 = load ptr, ptr %9, align 8, !tbaa !5
  %268 = load i32, ptr %7, align 4, !tbaa !9
  %269 = sub nsw i32 %268, 1
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds ptr, ptr %267, i64 %270
  %272 = load ptr, ptr %271, align 8, !tbaa !5
  %273 = load i32, ptr %8, align 4, !tbaa !9
  %274 = sext i32 %273 to i64
  %275 = getelementptr inbounds float, ptr %272, i64 %274
  %276 = load float, ptr %275, align 4, !tbaa !13
  %277 = fpext float %276 to double
  %278 = fmul double 1.802000e-01, %277
  %279 = call double @llvm.fmuladd.f64(double 2.177000e-01, double %266, double %278)
  %280 = load ptr, ptr %9, align 8, !tbaa !5
  %281 = load i32, ptr %7, align 4, !tbaa !9
  %282 = sext i32 %281 to i64
  %283 = getelementptr inbounds ptr, ptr %280, i64 %282
  %284 = load ptr, ptr %283, align 8, !tbaa !5
  %285 = load i32, ptr %8, align 4, !tbaa !9
  %286 = sext i32 %285 to i64
  %287 = getelementptr inbounds float, ptr %284, i64 %286
  %288 = load float, ptr %287, align 4, !tbaa !13
  %289 = fpext float %288 to double
  %290 = call double @llvm.fmuladd.f64(double 2.042000e-01, double %289, double %279)
  %291 = load ptr, ptr %9, align 8, !tbaa !5
  %292 = load i32, ptr %7, align 4, !tbaa !9
  %293 = add nsw i32 %292, 1
  %294 = sext i32 %293 to i64
  %295 = getelementptr inbounds ptr, ptr %291, i64 %294
  %296 = load ptr, ptr %295, align 8, !tbaa !5
  %297 = load i32, ptr %8, align 4, !tbaa !9
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds float, ptr %296, i64 %298
  %300 = load float, ptr %299, align 4, !tbaa !13
  %301 = fpext float %300 to double
  %302 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %301, double %290)
  %303 = load ptr, ptr %9, align 8, !tbaa !5
  %304 = load i32, ptr %7, align 4, !tbaa !9
  %305 = add nsw i32 %304, 2
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds ptr, ptr %303, i64 %306
  %308 = load ptr, ptr %307, align 8, !tbaa !5
  %309 = load i32, ptr %8, align 4, !tbaa !9
  %310 = sext i32 %309 to i64
  %311 = getelementptr inbounds float, ptr %308, i64 %310
  %312 = load float, ptr %311, align 4, !tbaa !13
  %313 = fpext float %312 to double
  %314 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %313, double %302)
  %315 = load ptr, ptr %9, align 8, !tbaa !5
  %316 = load i32, ptr %7, align 4, !tbaa !9
  %317 = add nsw i32 %316, 3
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds ptr, ptr %315, i64 %318
  %320 = load ptr, ptr %319, align 8, !tbaa !5
  %321 = load i32, ptr %8, align 4, !tbaa !9
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds float, ptr %320, i64 %322
  %324 = load float, ptr %323, align 4, !tbaa !13
  %325 = fpext float %324 to double
  %326 = call double @llvm.fmuladd.f64(double 6.630000e-02, double %325, double %314)
  %327 = load ptr, ptr %9, align 8, !tbaa !5
  %328 = load i32, ptr %7, align 4, !tbaa !9
  %329 = add nsw i32 %328, 4
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds ptr, ptr %327, i64 %330
  %332 = load ptr, ptr %331, align 8, !tbaa !5
  %333 = load i32, ptr %8, align 4, !tbaa !9
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds float, ptr %332, i64 %334
  %336 = load float, ptr %335, align 4, !tbaa !13
  %337 = fpext float %336 to double
  %338 = call double @llvm.fmuladd.f64(double 2.760000e-02, double %337, double %326)
  %339 = fptrunc double %338 to float
  %340 = load ptr, ptr %10, align 8, !tbaa !5
  %341 = load i32, ptr %7, align 4, !tbaa !9
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds ptr, ptr %340, i64 %342
  %344 = load ptr, ptr %343, align 8, !tbaa !5
  %345 = load i32, ptr %8, align 4, !tbaa !9
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds float, ptr %344, i64 %346
  store float %339, ptr %347, align 4, !tbaa !13
  store i32 1, ptr %7, align 4, !tbaa !9
  %348 = load ptr, ptr %9, align 8, !tbaa !5
  %349 = load i32, ptr %7, align 4, !tbaa !9
  %350 = sub nsw i32 %349, 1
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds ptr, ptr %348, i64 %351
  %353 = load ptr, ptr %352, align 8, !tbaa !5
  %354 = load i32, ptr %8, align 4, !tbaa !9
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds float, ptr %353, i64 %355
  %357 = load float, ptr %356, align 4, !tbaa !13
  %358 = fpext float %357 to double
  %359 = load ptr, ptr %9, align 8, !tbaa !5
  %360 = load i32, ptr %7, align 4, !tbaa !9
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds ptr, ptr %359, i64 %361
  %363 = load ptr, ptr %362, align 8, !tbaa !5
  %364 = load i32, ptr %8, align 4, !tbaa !9
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds float, ptr %363, i64 %365
  %367 = load float, ptr %366, align 4, !tbaa !13
  %368 = fpext float %367 to double
  %369 = fmul double 2.042000e-01, %368
  %370 = call double @llvm.fmuladd.f64(double 3.979000e-01, double %358, double %369)
  %371 = load ptr, ptr %9, align 8, !tbaa !5
  %372 = load i32, ptr %7, align 4, !tbaa !9
  %373 = add nsw i32 %372, 1
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds ptr, ptr %371, i64 %374
  %376 = load ptr, ptr %375, align 8, !tbaa !5
  %377 = load i32, ptr %8, align 4, !tbaa !9
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds float, ptr %376, i64 %378
  %380 = load float, ptr %379, align 4, !tbaa !13
  %381 = fpext float %380 to double
  %382 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %381, double %370)
  %383 = load ptr, ptr %9, align 8, !tbaa !5
  %384 = load i32, ptr %7, align 4, !tbaa !9
  %385 = add nsw i32 %384, 2
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds ptr, ptr %383, i64 %386
  %388 = load ptr, ptr %387, align 8, !tbaa !5
  %389 = load i32, ptr %8, align 4, !tbaa !9
  %390 = sext i32 %389 to i64
  %391 = getelementptr inbounds float, ptr %388, i64 %390
  %392 = load float, ptr %391, align 4, !tbaa !13
  %393 = fpext float %392 to double
  %394 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %393, double %382)
  %395 = load ptr, ptr %9, align 8, !tbaa !5
  %396 = load i32, ptr %7, align 4, !tbaa !9
  %397 = add nsw i32 %396, 3
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds ptr, ptr %395, i64 %398
  %400 = load ptr, ptr %399, align 8, !tbaa !5
  %401 = load i32, ptr %8, align 4, !tbaa !9
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds float, ptr %400, i64 %402
  %404 = load float, ptr %403, align 4, !tbaa !13
  %405 = fpext float %404 to double
  %406 = call double @llvm.fmuladd.f64(double 6.630000e-02, double %405, double %394)
  %407 = load ptr, ptr %9, align 8, !tbaa !5
  %408 = load i32, ptr %7, align 4, !tbaa !9
  %409 = add nsw i32 %408, 4
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds ptr, ptr %407, i64 %410
  %412 = load ptr, ptr %411, align 8, !tbaa !5
  %413 = load i32, ptr %8, align 4, !tbaa !9
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds float, ptr %412, i64 %414
  %416 = load float, ptr %415, align 4, !tbaa !13
  %417 = fpext float %416 to double
  %418 = call double @llvm.fmuladd.f64(double 2.760000e-02, double %417, double %406)
  %419 = fptrunc double %418 to float
  %420 = load ptr, ptr %10, align 8, !tbaa !5
  %421 = load i32, ptr %7, align 4, !tbaa !9
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds ptr, ptr %420, i64 %422
  %424 = load ptr, ptr %423, align 8, !tbaa !5
  %425 = load i32, ptr %8, align 4, !tbaa !9
  %426 = sext i32 %425 to i64
  %427 = getelementptr inbounds float, ptr %424, i64 %426
  store float %419, ptr %427, align 4, !tbaa !13
  store i32 0, ptr %7, align 4, !tbaa !9
  %428 = load ptr, ptr %9, align 8, !tbaa !5
  %429 = load i32, ptr %7, align 4, !tbaa !9
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds ptr, ptr %428, i64 %430
  %432 = load ptr, ptr %431, align 8, !tbaa !5
  %433 = load i32, ptr %8, align 4, !tbaa !9
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds float, ptr %432, i64 %434
  %436 = load float, ptr %435, align 4, !tbaa !13
  %437 = fpext float %436 to double
  %438 = load ptr, ptr %9, align 8, !tbaa !5
  %439 = load i32, ptr %7, align 4, !tbaa !9
  %440 = add nsw i32 %439, 1
  %441 = sext i32 %440 to i64
  %442 = getelementptr inbounds ptr, ptr %438, i64 %441
  %443 = load ptr, ptr %442, align 8, !tbaa !5
  %444 = load i32, ptr %8, align 4, !tbaa !9
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds float, ptr %443, i64 %445
  %447 = load float, ptr %446, align 4, !tbaa !13
  %448 = fpext float %447 to double
  %449 = fmul double 1.802000e-01, %448
  %450 = call double @llvm.fmuladd.f64(double 6.021000e-01, double %437, double %449)
  %451 = load ptr, ptr %9, align 8, !tbaa !5
  %452 = load i32, ptr %7, align 4, !tbaa !9
  %453 = add nsw i32 %452, 2
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds ptr, ptr %451, i64 %454
  %456 = load ptr, ptr %455, align 8, !tbaa !5
  %457 = load i32, ptr %8, align 4, !tbaa !9
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds float, ptr %456, i64 %458
  %460 = load float, ptr %459, align 4, !tbaa !13
  %461 = fpext float %460 to double
  %462 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %461, double %450)
  %463 = load ptr, ptr %9, align 8, !tbaa !5
  %464 = load i32, ptr %7, align 4, !tbaa !9
  %465 = add nsw i32 %464, 3
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds ptr, ptr %463, i64 %466
  %468 = load ptr, ptr %467, align 8, !tbaa !5
  %469 = load i32, ptr %8, align 4, !tbaa !9
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds float, ptr %468, i64 %470
  %472 = load float, ptr %471, align 4, !tbaa !13
  %473 = fpext float %472 to double
  %474 = call double @llvm.fmuladd.f64(double 6.630000e-02, double %473, double %462)
  %475 = load ptr, ptr %9, align 8, !tbaa !5
  %476 = load i32, ptr %7, align 4, !tbaa !9
  %477 = add nsw i32 %476, 4
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds ptr, ptr %475, i64 %478
  %480 = load ptr, ptr %479, align 8, !tbaa !5
  %481 = load i32, ptr %8, align 4, !tbaa !9
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds float, ptr %480, i64 %482
  %484 = load float, ptr %483, align 4, !tbaa !13
  %485 = fpext float %484 to double
  %486 = call double @llvm.fmuladd.f64(double 2.760000e-02, double %485, double %474)
  %487 = fptrunc double %486 to float
  %488 = load ptr, ptr %10, align 8, !tbaa !5
  %489 = load i32, ptr %7, align 4, !tbaa !9
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds ptr, ptr %488, i64 %490
  %492 = load ptr, ptr %491, align 8, !tbaa !5
  %493 = load i32, ptr %8, align 4, !tbaa !9
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds float, ptr %492, i64 %494
  store float %487, ptr %495, align 4, !tbaa !13
  %496 = load i32, ptr %5, align 4, !tbaa !9
  %497 = sub nsw i32 %496, 4
  store i32 %497, ptr %7, align 4, !tbaa !9
  %498 = load ptr, ptr %9, align 8, !tbaa !5
  %499 = load i32, ptr %7, align 4, !tbaa !9
  %500 = sub nsw i32 %499, 4
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds ptr, ptr %498, i64 %501
  %503 = load ptr, ptr %502, align 8, !tbaa !5
  %504 = load i32, ptr %8, align 4, !tbaa !9
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds float, ptr %503, i64 %505
  %507 = load float, ptr %506, align 4, !tbaa !13
  %508 = fpext float %507 to double
  %509 = load ptr, ptr %9, align 8, !tbaa !5
  %510 = load i32, ptr %7, align 4, !tbaa !9
  %511 = sub nsw i32 %510, 3
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds ptr, ptr %509, i64 %512
  %514 = load ptr, ptr %513, align 8, !tbaa !5
  %515 = load i32, ptr %8, align 4, !tbaa !9
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds float, ptr %514, i64 %516
  %518 = load float, ptr %517, align 4, !tbaa !13
  %519 = fpext float %518 to double
  %520 = fmul double 6.630000e-02, %519
  %521 = call double @llvm.fmuladd.f64(double 2.760000e-02, double %508, double %520)
  %522 = load ptr, ptr %9, align 8, !tbaa !5
  %523 = load i32, ptr %7, align 4, !tbaa !9
  %524 = sub nsw i32 %523, 2
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds ptr, ptr %522, i64 %525
  %527 = load ptr, ptr %526, align 8, !tbaa !5
  %528 = load i32, ptr %8, align 4, !tbaa !9
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds float, ptr %527, i64 %529
  %531 = load float, ptr %530, align 4, !tbaa !13
  %532 = fpext float %531 to double
  %533 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %532, double %521)
  %534 = load ptr, ptr %9, align 8, !tbaa !5
  %535 = load i32, ptr %7, align 4, !tbaa !9
  %536 = sub nsw i32 %535, 1
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds ptr, ptr %534, i64 %537
  %539 = load ptr, ptr %538, align 8, !tbaa !5
  %540 = load i32, ptr %8, align 4, !tbaa !9
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds float, ptr %539, i64 %541
  %543 = load float, ptr %542, align 4, !tbaa !13
  %544 = fpext float %543 to double
  %545 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %544, double %533)
  %546 = load ptr, ptr %9, align 8, !tbaa !5
  %547 = load i32, ptr %7, align 4, !tbaa !9
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds ptr, ptr %546, i64 %548
  %550 = load ptr, ptr %549, align 8, !tbaa !5
  %551 = load i32, ptr %8, align 4, !tbaa !9
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds float, ptr %550, i64 %552
  %554 = load float, ptr %553, align 4, !tbaa !13
  %555 = fpext float %554 to double
  %556 = call double @llvm.fmuladd.f64(double 2.042000e-01, double %555, double %545)
  %557 = load ptr, ptr %9, align 8, !tbaa !5
  %558 = load i32, ptr %7, align 4, !tbaa !9
  %559 = add nsw i32 %558, 1
  %560 = sext i32 %559 to i64
  %561 = getelementptr inbounds ptr, ptr %557, i64 %560
  %562 = load ptr, ptr %561, align 8, !tbaa !5
  %563 = load i32, ptr %8, align 4, !tbaa !9
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds float, ptr %562, i64 %564
  %566 = load float, ptr %565, align 4, !tbaa !13
  %567 = fpext float %566 to double
  %568 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %567, double %556)
  %569 = load ptr, ptr %9, align 8, !tbaa !5
  %570 = load i32, ptr %7, align 4, !tbaa !9
  %571 = add nsw i32 %570, 2
  %572 = sext i32 %571 to i64
  %573 = getelementptr inbounds ptr, ptr %569, i64 %572
  %574 = load ptr, ptr %573, align 8, !tbaa !5
  %575 = load i32, ptr %8, align 4, !tbaa !9
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds float, ptr %574, i64 %576
  %578 = load float, ptr %577, align 4, !tbaa !13
  %579 = fpext float %578 to double
  %580 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %579, double %568)
  %581 = load ptr, ptr %9, align 8, !tbaa !5
  %582 = load i32, ptr %7, align 4, !tbaa !9
  %583 = add nsw i32 %582, 3
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds ptr, ptr %581, i64 %584
  %586 = load ptr, ptr %585, align 8, !tbaa !5
  %587 = load i32, ptr %8, align 4, !tbaa !9
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds float, ptr %586, i64 %588
  %590 = load float, ptr %589, align 4, !tbaa !13
  %591 = fpext float %590 to double
  %592 = call double @llvm.fmuladd.f64(double 0x3FB809D495182A99, double %591, double %580)
  %593 = fptrunc double %592 to float
  %594 = load ptr, ptr %10, align 8, !tbaa !5
  %595 = load i32, ptr %7, align 4, !tbaa !9
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds ptr, ptr %594, i64 %596
  %598 = load ptr, ptr %597, align 8, !tbaa !5
  %599 = load i32, ptr %8, align 4, !tbaa !9
  %600 = sext i32 %599 to i64
  %601 = getelementptr inbounds float, ptr %598, i64 %600
  store float %593, ptr %601, align 4, !tbaa !13
  %602 = load i32, ptr %5, align 4, !tbaa !9
  %603 = sub nsw i32 %602, 3
  store i32 %603, ptr %7, align 4, !tbaa !9
  %604 = load ptr, ptr %9, align 8, !tbaa !5
  %605 = load i32, ptr %7, align 4, !tbaa !9
  %606 = sub nsw i32 %605, 4
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds ptr, ptr %604, i64 %607
  %609 = load ptr, ptr %608, align 8, !tbaa !5
  %610 = load i32, ptr %8, align 4, !tbaa !9
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds float, ptr %609, i64 %611
  %613 = load float, ptr %612, align 4, !tbaa !13
  %614 = fpext float %613 to double
  %615 = load ptr, ptr %9, align 8, !tbaa !5
  %616 = load i32, ptr %7, align 4, !tbaa !9
  %617 = sub nsw i32 %616, 3
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds ptr, ptr %615, i64 %618
  %620 = load ptr, ptr %619, align 8, !tbaa !5
  %621 = load i32, ptr %8, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds float, ptr %620, i64 %622
  %624 = load float, ptr %623, align 4, !tbaa !13
  %625 = fpext float %624 to double
  %626 = fmul double 6.630000e-02, %625
  %627 = call double @llvm.fmuladd.f64(double 2.760000e-02, double %614, double %626)
  %628 = load ptr, ptr %9, align 8, !tbaa !5
  %629 = load i32, ptr %7, align 4, !tbaa !9
  %630 = sub nsw i32 %629, 2
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds ptr, ptr %628, i64 %631
  %633 = load ptr, ptr %632, align 8, !tbaa !5
  %634 = load i32, ptr %8, align 4, !tbaa !9
  %635 = sext i32 %634 to i64
  %636 = getelementptr inbounds float, ptr %633, i64 %635
  %637 = load float, ptr %636, align 4, !tbaa !13
  %638 = fpext float %637 to double
  %639 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %638, double %627)
  %640 = load ptr, ptr %9, align 8, !tbaa !5
  %641 = load i32, ptr %7, align 4, !tbaa !9
  %642 = sub nsw i32 %641, 1
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds ptr, ptr %640, i64 %643
  %645 = load ptr, ptr %644, align 8, !tbaa !5
  %646 = load i32, ptr %8, align 4, !tbaa !9
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds float, ptr %645, i64 %647
  %649 = load float, ptr %648, align 4, !tbaa !13
  %650 = fpext float %649 to double
  %651 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %650, double %639)
  %652 = load ptr, ptr %9, align 8, !tbaa !5
  %653 = load i32, ptr %7, align 4, !tbaa !9
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds ptr, ptr %652, i64 %654
  %656 = load ptr, ptr %655, align 8, !tbaa !5
  %657 = load i32, ptr %8, align 4, !tbaa !9
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds float, ptr %656, i64 %658
  %660 = load float, ptr %659, align 4, !tbaa !13
  %661 = fpext float %660 to double
  %662 = call double @llvm.fmuladd.f64(double 2.042000e-01, double %661, double %651)
  %663 = load ptr, ptr %9, align 8, !tbaa !5
  %664 = load i32, ptr %7, align 4, !tbaa !9
  %665 = add nsw i32 %664, 1
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds ptr, ptr %663, i64 %666
  %668 = load ptr, ptr %667, align 8, !tbaa !5
  %669 = load i32, ptr %8, align 4, !tbaa !9
  %670 = sext i32 %669 to i64
  %671 = getelementptr inbounds float, ptr %668, i64 %670
  %672 = load float, ptr %671, align 4, !tbaa !13
  %673 = fpext float %672 to double
  %674 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %673, double %662)
  %675 = load ptr, ptr %9, align 8, !tbaa !5
  %676 = load i32, ptr %7, align 4, !tbaa !9
  %677 = add nsw i32 %676, 2
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds ptr, ptr %675, i64 %678
  %680 = load ptr, ptr %679, align 8, !tbaa !5
  %681 = load i32, ptr %8, align 4, !tbaa !9
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds float, ptr %680, i64 %682
  %684 = load float, ptr %683, align 4, !tbaa !13
  %685 = fpext float %684 to double
  %686 = call double @llvm.fmuladd.f64(double 2.177000e-01, double %685, double %674)
  %687 = fptrunc double %686 to float
  %688 = load ptr, ptr %10, align 8, !tbaa !5
  %689 = load i32, ptr %7, align 4, !tbaa !9
  %690 = sext i32 %689 to i64
  %691 = getelementptr inbounds ptr, ptr %688, i64 %690
  %692 = load ptr, ptr %691, align 8, !tbaa !5
  %693 = load i32, ptr %8, align 4, !tbaa !9
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds float, ptr %692, i64 %694
  store float %687, ptr %695, align 4, !tbaa !13
  %696 = load i32, ptr %5, align 4, !tbaa !9
  %697 = sub nsw i32 %696, 2
  store i32 %697, ptr %7, align 4, !tbaa !9
  %698 = load ptr, ptr %9, align 8, !tbaa !5
  %699 = load i32, ptr %7, align 4, !tbaa !9
  %700 = sub nsw i32 %699, 4
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds ptr, ptr %698, i64 %701
  %703 = load ptr, ptr %702, align 8, !tbaa !5
  %704 = load i32, ptr %8, align 4, !tbaa !9
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds float, ptr %703, i64 %705
  %707 = load float, ptr %706, align 4, !tbaa !13
  %708 = fpext float %707 to double
  %709 = load ptr, ptr %9, align 8, !tbaa !5
  %710 = load i32, ptr %7, align 4, !tbaa !9
  %711 = sub nsw i32 %710, 3
  %712 = sext i32 %711 to i64
  %713 = getelementptr inbounds ptr, ptr %709, i64 %712
  %714 = load ptr, ptr %713, align 8, !tbaa !5
  %715 = load i32, ptr %8, align 4, !tbaa !9
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds float, ptr %714, i64 %716
  %718 = load float, ptr %717, align 4, !tbaa !13
  %719 = fpext float %718 to double
  %720 = fmul double 6.630000e-02, %719
  %721 = call double @llvm.fmuladd.f64(double 2.760000e-02, double %708, double %720)
  %722 = load ptr, ptr %9, align 8, !tbaa !5
  %723 = load i32, ptr %7, align 4, !tbaa !9
  %724 = sub nsw i32 %723, 2
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds ptr, ptr %722, i64 %725
  %727 = load ptr, ptr %726, align 8, !tbaa !5
  %728 = load i32, ptr %8, align 4, !tbaa !9
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds float, ptr %727, i64 %729
  %731 = load float, ptr %730, align 4, !tbaa !13
  %732 = fpext float %731 to double
  %733 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %732, double %721)
  %734 = load ptr, ptr %9, align 8, !tbaa !5
  %735 = load i32, ptr %7, align 4, !tbaa !9
  %736 = sub nsw i32 %735, 1
  %737 = sext i32 %736 to i64
  %738 = getelementptr inbounds ptr, ptr %734, i64 %737
  %739 = load ptr, ptr %738, align 8, !tbaa !5
  %740 = load i32, ptr %8, align 4, !tbaa !9
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds float, ptr %739, i64 %741
  %743 = load float, ptr %742, align 4, !tbaa !13
  %744 = fpext float %743 to double
  %745 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %744, double %733)
  %746 = load ptr, ptr %9, align 8, !tbaa !5
  %747 = load i32, ptr %7, align 4, !tbaa !9
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds ptr, ptr %746, i64 %748
  %750 = load ptr, ptr %749, align 8, !tbaa !5
  %751 = load i32, ptr %8, align 4, !tbaa !9
  %752 = sext i32 %751 to i64
  %753 = getelementptr inbounds float, ptr %750, i64 %752
  %754 = load float, ptr %753, align 4, !tbaa !13
  %755 = fpext float %754 to double
  %756 = call double @llvm.fmuladd.f64(double 2.042000e-01, double %755, double %745)
  %757 = load ptr, ptr %9, align 8, !tbaa !5
  %758 = load i32, ptr %7, align 4, !tbaa !9
  %759 = add nsw i32 %758, 1
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds ptr, ptr %757, i64 %760
  %762 = load ptr, ptr %761, align 8, !tbaa !5
  %763 = load i32, ptr %8, align 4, !tbaa !9
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds float, ptr %762, i64 %764
  %766 = load float, ptr %765, align 4, !tbaa !13
  %767 = fpext float %766 to double
  %768 = call double @llvm.fmuladd.f64(double 3.979000e-01, double %767, double %756)
  %769 = fptrunc double %768 to float
  %770 = load ptr, ptr %10, align 8, !tbaa !5
  %771 = load i32, ptr %7, align 4, !tbaa !9
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds ptr, ptr %770, i64 %772
  %774 = load ptr, ptr %773, align 8, !tbaa !5
  %775 = load i32, ptr %8, align 4, !tbaa !9
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds float, ptr %774, i64 %776
  store float %769, ptr %777, align 4, !tbaa !13
  %778 = load i32, ptr %5, align 4, !tbaa !9
  %779 = sub nsw i32 %778, 1
  store i32 %779, ptr %7, align 4, !tbaa !9
  %780 = load ptr, ptr %9, align 8, !tbaa !5
  %781 = load i32, ptr %7, align 4, !tbaa !9
  %782 = sub nsw i32 %781, 4
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds ptr, ptr %780, i64 %783
  %785 = load ptr, ptr %784, align 8, !tbaa !5
  %786 = load i32, ptr %8, align 4, !tbaa !9
  %787 = sext i32 %786 to i64
  %788 = getelementptr inbounds float, ptr %785, i64 %787
  %789 = load float, ptr %788, align 4, !tbaa !13
  %790 = fpext float %789 to double
  %791 = load ptr, ptr %9, align 8, !tbaa !5
  %792 = load i32, ptr %7, align 4, !tbaa !9
  %793 = sub nsw i32 %792, 3
  %794 = sext i32 %793 to i64
  %795 = getelementptr inbounds ptr, ptr %791, i64 %794
  %796 = load ptr, ptr %795, align 8, !tbaa !5
  %797 = load i32, ptr %8, align 4, !tbaa !9
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds float, ptr %796, i64 %798
  %800 = load float, ptr %799, align 4, !tbaa !13
  %801 = fpext float %800 to double
  %802 = fmul double 6.630000e-02, %801
  %803 = call double @llvm.fmuladd.f64(double 2.760000e-02, double %790, double %802)
  %804 = load ptr, ptr %9, align 8, !tbaa !5
  %805 = load i32, ptr %7, align 4, !tbaa !9
  %806 = sub nsw i32 %805, 2
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds ptr, ptr %804, i64 %807
  %809 = load ptr, ptr %808, align 8, !tbaa !5
  %810 = load i32, ptr %8, align 4, !tbaa !9
  %811 = sext i32 %810 to i64
  %812 = getelementptr inbounds float, ptr %809, i64 %811
  %813 = load float, ptr %812, align 4, !tbaa !13
  %814 = fpext float %813 to double
  %815 = call double @llvm.fmuladd.f64(double 1.238000e-01, double %814, double %803)
  %816 = load ptr, ptr %9, align 8, !tbaa !5
  %817 = load i32, ptr %7, align 4, !tbaa !9
  %818 = sub nsw i32 %817, 1
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds ptr, ptr %816, i64 %819
  %821 = load ptr, ptr %820, align 8, !tbaa !5
  %822 = load i32, ptr %8, align 4, !tbaa !9
  %823 = sext i32 %822 to i64
  %824 = getelementptr inbounds float, ptr %821, i64 %823
  %825 = load float, ptr %824, align 4, !tbaa !13
  %826 = fpext float %825 to double
  %827 = call double @llvm.fmuladd.f64(double 1.802000e-01, double %826, double %815)
  %828 = load ptr, ptr %9, align 8, !tbaa !5
  %829 = load i32, ptr %7, align 4, !tbaa !9
  %830 = sext i32 %829 to i64
  %831 = getelementptr inbounds ptr, ptr %828, i64 %830
  %832 = load ptr, ptr %831, align 8, !tbaa !5
  %833 = load i32, ptr %8, align 4, !tbaa !9
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds float, ptr %832, i64 %834
  %836 = load float, ptr %835, align 4, !tbaa !13
  %837 = fpext float %836 to double
  %838 = call double @llvm.fmuladd.f64(double 6.021000e-01, double %837, double %827)
  %839 = fptrunc double %838 to float
  %840 = load ptr, ptr %10, align 8, !tbaa !5
  %841 = load i32, ptr %7, align 4, !tbaa !9
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds ptr, ptr %840, i64 %842
  %844 = load ptr, ptr %843, align 8, !tbaa !5
  %845 = load i32, ptr %8, align 4, !tbaa !9
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds float, ptr %844, i64 %846
  store float %839, ptr %847, align 4, !tbaa !13
  br label %848

848:                                              ; preds = %151
  %849 = load i32, ptr %8, align 4, !tbaa !9
  %850 = add nsw i32 %849, 1
  store i32 %850, ptr %8, align 4, !tbaa !9
  br label %21, !llvm.loop !17

851:                                              ; preds = %21
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #4
  ret void
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint mustprogress 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 #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { 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 #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++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 16}
!12 = !{!"_ZTS12ImageContent", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72}
!13 = !{!14, !14, i64 0}
!14 = !{!"float", !7, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}


; 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
define dso_local void @_Z10smoothYYV9P12ImageContentS0_(ptr noundef nonnull %0, ptr nocapture noundef readonly %1) local_unnamed_addr #2 {
  %3 = tail call noundef i32 @_ZNK12ImageContent1yEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %4 = tail call noundef i32 @_ZNK12ImageContent1xEv(ptr noundef nonnull align 8 dereferenceable(80) %0)
  %5 = getelementptr inbounds i8, ptr %0, i64 16
  %6 = load ptr, ptr %5, align 8, !tbaa !5
  %7 = getelementptr inbounds i8, ptr %1, i64 16
  %8 = load ptr, ptr %7, align 8, !tbaa !5
  %9 = icmp sgt i32 %4, 0
  br i1 %9, label %.preheader.lr.ph, label %._crit_edge227

.preheader.lr.ph:                                 ; preds = %2
  %10 = add i32 %3, -4
  %11 = icmp sgt i32 %3, 8
  %12 = load ptr, ptr %6, align 8, !tbaa !11
  %13 = getelementptr inbounds i8, ptr %6, i64 8
  %14 = load ptr, ptr %13, align 8, !tbaa !11
  %15 = getelementptr inbounds i8, ptr %6, i64 16
  %16 = load ptr, ptr %15, align 8, !tbaa !11
  %17 = getelementptr inbounds i8, ptr %6, i64 24
  %18 = load ptr, ptr %17, align 8, !tbaa !11
  %19 = getelementptr i8, ptr %6, i64 32
  %20 = load ptr, ptr %19, align 8, !tbaa !11
  %21 = getelementptr inbounds i8, ptr %6, i64 40
  %22 = load ptr, ptr %21, align 8, !tbaa !11
  %23 = getelementptr inbounds i8, ptr %6, i64 48
  %24 = load ptr, ptr %23, align 8, !tbaa !11
  %25 = getelementptr inbounds i8, ptr %6, i64 56
  %26 = load ptr, ptr %25, align 8, !tbaa !11
  %27 = getelementptr inbounds i8, ptr %8, i64 24
  %28 = load ptr, ptr %27, align 8, !tbaa !11
  %29 = getelementptr inbounds i8, ptr %8, i64 16
  %30 = load ptr, ptr %29, align 8, !tbaa !11
  %31 = getelementptr inbounds i8, ptr %8, i64 8
  %32 = load ptr, ptr %31, align 8, !tbaa !11
  %33 = load ptr, ptr %8, align 8, !tbaa !11
  %34 = sext i32 %3 to i64
  %35 = getelementptr ptr, ptr %6, i64 %34
  %36 = getelementptr i8, ptr %35, i64 -64
  %37 = load ptr, ptr %36, align 8, !tbaa !11
  %38 = getelementptr i8, ptr %35, i64 -56
  %39 = load ptr, ptr %38, align 8, !tbaa !11
  %40 = getelementptr i8, ptr %35, i64 -48
  %41 = load ptr, ptr %40, align 8, !tbaa !11
  %42 = getelementptr i8, ptr %35, i64 -40
  %43 = load ptr, ptr %42, align 8, !tbaa !11
  %44 = sext i32 %10 to i64
  %45 = getelementptr inbounds ptr, ptr %6, i64 %44
  %46 = load ptr, ptr %45, align 8, !tbaa !11
  %47 = getelementptr i8, ptr %35, i64 -24
  %48 = load ptr, ptr %47, align 8, !tbaa !11
  %49 = getelementptr i8, ptr %35, i64 -16
  %50 = load ptr, ptr %49, align 8, !tbaa !11
  %51 = getelementptr i8, ptr %35, i64 -8
  %52 = load ptr, ptr %51, align 8, !tbaa !11
  %53 = getelementptr inbounds ptr, ptr %8, i64 %44
  %54 = load ptr, ptr %53, align 8, !tbaa !11
  %55 = getelementptr i8, ptr %35, i64 -32
  %56 = load ptr, ptr %55, align 8, !tbaa !11
  %57 = sext i32 %3 to i64
  %58 = getelementptr ptr, ptr %8, i64 %57
  %59 = getelementptr i8, ptr %58, i64 -24
  %60 = load ptr, ptr %59, align 8, !tbaa !11
  %61 = sext i32 %3 to i64
  %62 = getelementptr ptr, ptr %8, i64 %61
  %63 = getelementptr i8, ptr %62, i64 -16
  %64 = load ptr, ptr %63, align 8, !tbaa !11
  %65 = sext i32 %3 to i64
  %66 = getelementptr ptr, ptr %8, i64 %65
  %67 = getelementptr i8, ptr %66, i64 -8
  %68 = load ptr, ptr %67, align 8, !tbaa !11
  %wide.trip.count232 = zext nneg i32 %4 to i64
  %wide.trip.count = zext nneg i32 %10 to i64
  br label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph, %._crit_edge
  %indvars.iv229 = phi i64 [ 0, %.preheader.lr.ph ], [ %indvars.iv.next230, %._crit_edge ]
  br i1 %11, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader
  %.pre = load ptr, ptr %19, align 8, !tbaa !11
  br label %69

69:                                               ; preds = %.lr.ph, %69
  %70 = phi ptr [ %.pre, %.lr.ph ], [ %101, %69 ]
  %indvars.iv = phi i64 [ 4, %.lr.ph ], [ %indvars.iv.next, %69 ]
  %71 = getelementptr ptr, ptr %6, i64 %indvars.iv
  %72 = getelementptr i8, ptr %71, i64 -32
  %73 = load ptr, ptr %72, align 8, !tbaa !11
  %74 = getelementptr inbounds float, ptr %73, i64 %indvars.iv229
  %75 = load float, ptr %74, align 4, !tbaa !12
  %76 = fpext float %75 to double
  %77 = getelementptr i8, ptr %71, i64 -24
  %78 = load ptr, ptr %77, align 8, !tbaa !11
  %79 = getelementptr inbounds float, ptr %78, i64 %indvars.iv229
  %80 = load float, ptr %79, align 4, !tbaa !12
  %81 = fpext float %80 to double
  %82 = fmul double %81, 6.630000e-02
  %83 = tail call double @llvm.fmuladd.f64(double %76, double 2.760000e-02, double %82)
  %84 = getelementptr i8, ptr %71, i64 -16
  %85 = load ptr, ptr %84, align 8, !tbaa !11
  %86 = getelementptr inbounds float, ptr %85, i64 %indvars.iv229
  %87 = load float, ptr %86, align 4, !tbaa !12
  %88 = fpext float %87 to double
  %89 = tail call double @llvm.fmuladd.f64(double %88, double 1.238000e-01, double %83)
  %90 = getelementptr i8, ptr %71, i64 -8
  %91 = load ptr, ptr %90, align 8, !tbaa !11
  %92 = getelementptr inbounds float, ptr %91, i64 %indvars.iv229
  %93 = load float, ptr %92, align 4, !tbaa !12
  %94 = fpext float %93 to double
  %95 = tail call double @llvm.fmuladd.f64(double %94, double 1.802000e-01, double %89)
  %96 = getelementptr inbounds float, ptr %70, i64 %indvars.iv229
  %97 = load float, ptr %96, align 4, !tbaa !12
  %98 = fpext float %97 to double
  %99 = tail call double @llvm.fmuladd.f64(double %98, double 2.042000e-01, double %95)
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %100 = getelementptr inbounds ptr, ptr %6, i64 %indvars.iv.next
  %101 = load ptr, ptr %100, align 8, !tbaa !11
  %102 = getelementptr inbounds float, ptr %101, i64 %indvars.iv229
  %103 = load float, ptr %102, align 4, !tbaa !12
  %104 = fpext float %103 to double
  %105 = tail call double @llvm.fmuladd.f64(double %104, double 1.802000e-01, double %99)
  %106 = getelementptr inbounds i8, ptr %71, i64 16
  %107 = load ptr, ptr %106, align 8, !tbaa !11
  %108 = getelementptr inbounds float, ptr %107, i64 %indvars.iv229
  %109 = load float, ptr %108, align 4, !tbaa !12
  %110 = fpext float %109 to double
  %111 = tail call double @llvm.fmuladd.f64(double %110, double 1.238000e-01, double %105)
  %112 = getelementptr inbounds i8, ptr %71, i64 24
  %113 = load ptr, ptr %112, align 8, !tbaa !11
  %114 = getelementptr inbounds float, ptr %113, i64 %indvars.iv229
  %115 = load float, ptr %114, align 4, !tbaa !12
  %116 = fpext float %115 to double
  %117 = tail call double @llvm.fmuladd.f64(double %116, double 6.630000e-02, double %111)
  %118 = getelementptr inbounds i8, ptr %71, i64 32
  %119 = load ptr, ptr %118, align 8, !tbaa !11
  %120 = getelementptr inbounds float, ptr %119, i64 %indvars.iv229
  %121 = load float, ptr %120, align 4, !tbaa !12
  %122 = fpext float %121 to double
  %123 = tail call double @llvm.fmuladd.f64(double %122, double 2.760000e-02, double %117)
  %124 = fptrunc double %123 to float
  %125 = getelementptr inbounds ptr, ptr %8, i64 %indvars.iv
  %126 = load ptr, ptr %125, align 8, !tbaa !11
  %127 = getelementptr inbounds float, ptr %126, i64 %indvars.iv229
  store float %124, ptr %127, align 4, !tbaa !12
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %69, !llvm.loop !14

._crit_edge:                                      ; preds = %69, %.preheader
  %128 = getelementptr inbounds float, ptr %12, i64 %indvars.iv229
  %129 = load float, ptr %128, align 4, !tbaa !12
  %130 = fpext float %129 to double
  %131 = getelementptr inbounds float, ptr %14, i64 %indvars.iv229
  %132 = load float, ptr %131, align 4, !tbaa !12
  %133 = fpext float %132 to double
  %134 = fmul double %133, 1.238000e-01
  %135 = tail call double @llvm.fmuladd.f64(double %130, double 0x3FB809D495182A99, double %134)
  %136 = getelementptr inbounds float, ptr %16, i64 %indvars.iv229
  %137 = load float, ptr %136, align 4, !tbaa !12
  %138 = fpext float %137 to double
  %139 = tail call double @llvm.fmuladd.f64(double %138, double 1.802000e-01, double %135)
  %140 = getelementptr inbounds float, ptr %18, i64 %indvars.iv229
  %141 = load float, ptr %140, align 4, !tbaa !12
  %142 = fpext float %141 to double
  %143 = tail call double @llvm.fmuladd.f64(double %142, double 2.042000e-01, double %139)
  %144 = getelementptr inbounds float, ptr %20, i64 %indvars.iv229
  %145 = load float, ptr %144, align 4, !tbaa !12
  %146 = fpext float %145 to double
  %147 = tail call double @llvm.fmuladd.f64(double %146, double 1.802000e-01, double %143)
  %148 = getelementptr inbounds float, ptr %22, i64 %indvars.iv229
  %149 = load float, ptr %148, align 4, !tbaa !12
  %150 = fpext float %149 to double
  %151 = tail call double @llvm.fmuladd.f64(double %150, double 1.238000e-01, double %147)
  %152 = getelementptr inbounds float, ptr %24, i64 %indvars.iv229
  %153 = load float, ptr %152, align 4, !tbaa !12
  %154 = fpext float %153 to double
  %155 = tail call double @llvm.fmuladd.f64(double %154, double 6.630000e-02, double %151)
  %156 = getelementptr inbounds float, ptr %26, i64 %indvars.iv229
  %157 = load float, ptr %156, align 4, !tbaa !12
  %158 = fpext float %157 to double
  %159 = tail call double @llvm.fmuladd.f64(double %158, double 2.760000e-02, double %155)
  %160 = fptrunc double %159 to float
  %161 = getelementptr inbounds float, ptr %28, i64 %indvars.iv229
  store float %160, ptr %161, align 4, !tbaa !12
  %162 = load float, ptr %128, align 4, !tbaa !12
  %163 = fpext float %162 to double
  %164 = load float, ptr %131, align 4, !tbaa !12
  %165 = fpext float %164 to double
  %166 = fmul double %165, 1.802000e-01
  %167 = tail call double @llvm.fmuladd.f64(double %163, double 2.177000e-01, double %166)
  %168 = load float, ptr %136, align 4, !tbaa !12
  %169 = fpext float %168 to double
  %170 = tail call double @llvm.fmuladd.f64(double %169, double 2.042000e-01, double %167)
  %171 = load float, ptr %140, align 4, !tbaa !12
  %172 = fpext float %171 to double
  %173 = tail call double @llvm.fmuladd.f64(double %172, double 1.802000e-01, double %170)
  %174 = load float, ptr %144, align 4, !tbaa !12
  %175 = fpext float %174 to double
  %176 = tail call double @llvm.fmuladd.f64(double %175, double 1.238000e-01, double %173)
  %177 = load float, ptr %148, align 4, !tbaa !12
  %178 = fpext float %177 to double
  %179 = tail call double @llvm.fmuladd.f64(double %178, double 6.630000e-02, double %176)
  %180 = load float, ptr %152, align 4, !tbaa !12
  %181 = fpext float %180 to double
  %182 = tail call double @llvm.fmuladd.f64(double %181, double 2.760000e-02, double %179)
  %183 = fptrunc double %182 to float
  %184 = getelementptr inbounds float, ptr %30, i64 %indvars.iv229
  store float %183, ptr %184, align 4, !tbaa !12
  %185 = load float, ptr %128, align 4, !tbaa !12
  %186 = fpext float %185 to double
  %187 = load float, ptr %131, align 4, !tbaa !12
  %188 = fpext float %187 to double
  %189 = fmul double %188, 2.042000e-01
  %190 = tail call double @llvm.fmuladd.f64(double %186, double 3.979000e-01, double %189)
  %191 = load float, ptr %136, align 4, !tbaa !12
  %192 = fpext float %191 to double
  %193 = tail call double @llvm.fmuladd.f64(double %192, double 1.802000e-01, double %190)
  %194 = load float, ptr %140, align 4, !tbaa !12
  %195 = fpext float %194 to double
  %196 = tail call double @llvm.fmuladd.f64(double %195, double 1.238000e-01, double %193)
  %197 = load float, ptr %144, align 4, !tbaa !12
  %198 = fpext float %197 to double
  %199 = tail call double @llvm.fmuladd.f64(double %198, double 6.630000e-02, double %196)
  %200 = load float, ptr %148, align 4, !tbaa !12
  %201 = fpext float %200 to double
  %202 = tail call double @llvm.fmuladd.f64(double %201, double 2.760000e-02, double %199)
  %203 = fptrunc double %202 to float
  %204 = getelementptr inbounds float, ptr %32, i64 %indvars.iv229
  store float %203, ptr %204, align 4, !tbaa !12
  %205 = load float, ptr %128, align 4, !tbaa !12
  %206 = fpext float %205 to double
  %207 = load float, ptr %131, align 4, !tbaa !12
  %208 = fpext float %207 to double
  %209 = fmul double %208, 1.802000e-01
  %210 = tail call double @llvm.fmuladd.f64(double %206, double 6.021000e-01, double %209)
  %211 = load float, ptr %136, align 4, !tbaa !12
  %212 = fpext float %211 to double
  %213 = tail call double @llvm.fmuladd.f64(double %212, double 1.238000e-01, double %210)
  %214 = load float, ptr %140, align 4, !tbaa !12
  %215 = fpext float %214 to double
  %216 = tail call double @llvm.fmuladd.f64(double %215, double 6.630000e-02, double %213)
  %217 = load float, ptr %144, align 4, !tbaa !12
  %218 = fpext float %217 to double
  %219 = tail call double @llvm.fmuladd.f64(double %218, double 2.760000e-02, double %216)
  %220 = fptrunc double %219 to float
  %221 = getelementptr inbounds float, ptr %33, i64 %indvars.iv229
  store float %220, ptr %221, align 4, !tbaa !12
  %222 = getelementptr inbounds float, ptr %37, i64 %indvars.iv229
  %223 = load float, ptr %222, align 4, !tbaa !12
  %224 = fpext float %223 to double
  %225 = getelementptr inbounds float, ptr %39, i64 %indvars.iv229
  %226 = load float, ptr %225, align 4, !tbaa !12
  %227 = fpext float %226 to double
  %228 = fmul double %227, 6.630000e-02
  %229 = tail call double @llvm.fmuladd.f64(double %224, double 2.760000e-02, double %228)
  %230 = getelementptr inbounds float, ptr %41, i64 %indvars.iv229
  %231 = load float, ptr %230, align 4, !tbaa !12
  %232 = fpext float %231 to double
  %233 = tail call double @llvm.fmuladd.f64(double %232, double 1.238000e-01, double %229)
  %234 = getelementptr inbounds float, ptr %43, i64 %indvars.iv229
  %235 = load float, ptr %234, align 4, !tbaa !12
  %236 = fpext float %235 to double
  %237 = tail call double @llvm.fmuladd.f64(double %236, double 1.802000e-01, double %233)
  %238 = getelementptr inbounds float, ptr %46, i64 %indvars.iv229
  %239 = load float, ptr %238, align 4, !tbaa !12
  %240 = fpext float %239 to double
  %241 = tail call double @llvm.fmuladd.f64(double %240, double 2.042000e-01, double %237)
  %242 = getelementptr inbounds float, ptr %48, i64 %indvars.iv229
  %243 = load float, ptr %242, align 4, !tbaa !12
  %244 = fpext float %243 to double
  %245 = tail call double @llvm.fmuladd.f64(double %244, double 1.802000e-01, double %241)
  %246 = getelementptr inbounds float, ptr %50, i64 %indvars.iv229
  %247 = load float, ptr %246, align 4, !tbaa !12
  %248 = fpext float %247 to double
  %249 = tail call double @llvm.fmuladd.f64(double %248, double 1.238000e-01, double %245)
  %250 = getelementptr inbounds float, ptr %52, i64 %indvars.iv229
  %251 = load float, ptr %250, align 4, !tbaa !12
  %252 = fpext float %251 to double
  %253 = tail call double @llvm.fmuladd.f64(double %252, double 0x3FB809D495182A99, double %249)
  %254 = fptrunc double %253 to float
  %255 = getelementptr inbounds float, ptr %54, i64 %indvars.iv229
  store float %254, ptr %255, align 4, !tbaa !12
  %256 = load float, ptr %225, align 4, !tbaa !12
  %257 = fpext float %256 to double
  %258 = load float, ptr %230, align 4, !tbaa !12
  %259 = fpext float %258 to double
  %260 = fmul double %259, 6.630000e-02
  %261 = tail call double @llvm.fmuladd.f64(double %257, double 2.760000e-02, double %260)
  %262 = load float, ptr %234, align 4, !tbaa !12
  %263 = fpext float %262 to double
  %264 = tail call double @llvm.fmuladd.f64(double %263, double 1.238000e-01, double %261)
  %265 = getelementptr inbounds float, ptr %56, i64 %indvars.iv229
  %266 = load float, ptr %265, align 4, !tbaa !12
  %267 = fpext float %266 to double
  %268 = tail call double @llvm.fmuladd.f64(double %267, double 1.802000e-01, double %264)
  %269 = load float, ptr %242, align 4, !tbaa !12
  %270 = fpext float %269 to double
  %271 = tail call double @llvm.fmuladd.f64(double %270, double 2.042000e-01, double %268)
  %272 = load float, ptr %246, align 4, !tbaa !12
  %273 = fpext float %272 to double
  %274 = tail call double @llvm.fmuladd.f64(double %273, double 1.802000e-01, double %271)
  %275 = load float, ptr %250, align 4, !tbaa !12
  %276 = fpext float %275 to double
  %277 = tail call double @llvm.fmuladd.f64(double %276, double 2.177000e-01, double %274)
  %278 = fptrunc double %277 to float
  %279 = getelementptr inbounds float, ptr %60, i64 %indvars.iv229
  store float %278, ptr %279, align 4, !tbaa !12
  %280 = load float, ptr %230, align 4, !tbaa !12
  %281 = fpext float %280 to double
  %282 = load float, ptr %234, align 4, !tbaa !12
  %283 = fpext float %282 to double
  %284 = fmul double %283, 6.630000e-02
  %285 = tail call double @llvm.fmuladd.f64(double %281, double 2.760000e-02, double %284)
  %286 = load float, ptr %265, align 4, !tbaa !12
  %287 = fpext float %286 to double
  %288 = tail call double @llvm.fmuladd.f64(double %287, double 1.238000e-01, double %285)
  %289 = load float, ptr %242, align 4, !tbaa !12
  %290 = fpext float %289 to double
  %291 = tail call double @llvm.fmuladd.f64(double %290, double 1.802000e-01, double %288)
  %292 = load float, ptr %246, align 4, !tbaa !12
  %293 = fpext float %292 to double
  %294 = tail call double @llvm.fmuladd.f64(double %293, double 2.042000e-01, double %291)
  %295 = load float, ptr %250, align 4, !tbaa !12
  %296 = fpext float %295 to double
  %297 = tail call double @llvm.fmuladd.f64(double %296, double 3.979000e-01, double %294)
  %298 = fptrunc double %297 to float
  %299 = getelementptr inbounds float, ptr %64, i64 %indvars.iv229
  store float %298, ptr %299, align 4, !tbaa !12
  %300 = load float, ptr %234, align 4, !tbaa !12
  %301 = fpext float %300 to double
  %302 = load float, ptr %265, align 4, !tbaa !12
  %303 = fpext float %302 to double
  %304 = fmul double %303, 6.630000e-02
  %305 = tail call double @llvm.fmuladd.f64(double %301, double 2.760000e-02, double %304)
  %306 = load float, ptr %242, align 4, !tbaa !12
  %307 = fpext float %306 to double
  %308 = tail call double @llvm.fmuladd.f64(double %307, double 1.238000e-01, double %305)
  %309 = load float, ptr %246, align 4, !tbaa !12
  %310 = fpext float %309 to double
  %311 = tail call double @llvm.fmuladd.f64(double %310, double 1.802000e-01, double %308)
  %312 = load float, ptr %250, align 4, !tbaa !12
  %313 = fpext float %312 to double
  %314 = tail call double @llvm.fmuladd.f64(double %313, double 6.021000e-01, double %311)
  %315 = fptrunc double %314 to float
  %316 = getelementptr inbounds float, ptr %68, i64 %indvars.iv229
  store float %315, ptr %316, align 4, !tbaa !12
  %indvars.iv.next230 = add nuw nsw i64 %indvars.iv229, 1
  %exitcond233.not = icmp eq i64 %indvars.iv.next230, %wide.trip.count232
  br i1 %exitcond233.not, label %._crit_edge227, label %.preheader, !llvm.loop !16

._crit_edge227:                                   ; preds = %._crit_edge, %2
  ret void
}

attributes #0 = { inlinehint mustprogress 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 speculatable willreturn memory(none) }
attributes #2 = { mustprogress 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" }

!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, !10, i64 16}
!6 = !{!"_ZTS12ImageContent", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!10, !10, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"float", !8, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass