; LLVM IR from erwincoumans/tiny-differentiable-simulator :: third_party/cloud_seed/AudioLib/Biquad.ll (ZN8AudioLib6Biquad6UpdateEv)

; 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.AudioLib::Biquad" = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, i32, float, float, float }

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8AudioLib6Biquad6UpdateEv(ptr noundef nonnull align 4 dereferenceable(76) %0) #0 align 2 {
  %2 = alloca ptr, align 8
  %3 = alloca float, align 4
  %4 = alloca float, align 4
  %5 = alloca float, align 4
  %6 = alloca float, align 4
  %7 = alloca float, align 4
  %8 = alloca float, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %9 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #4
  %10 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 17
  %11 = load float, ptr %10, align 4, !tbaa !9
  %12 = fpext float %11 to double
  %13 = fmul double 0x401921FB54442D18, %12
  %14 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 0
  %15 = load float, ptr %14, align 4, !tbaa !13
  %16 = fpext float %15 to double
  %17 = fdiv double %13, %16
  %18 = fptrunc double %17 to float
  store float %18, ptr %3, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #4
  %19 = load float, ptr %3, align 4, !tbaa !14
  %20 = call noundef float @_ZSt3sinf(float noundef %19)
  store float %20, ptr %4, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #4
  %21 = load float, ptr %3, align 4, !tbaa !14
  %22 = call noundef float @_ZSt3cosf(float noundef %21)
  store float %22, ptr %5, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #4
  store float 0.000000e+00, ptr %6, align 4, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #4
  store float 0.000000e+00, ptr %7, align 4, !tbaa !14
  %23 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 15
  %24 = load i32, ptr %23, align 4, !tbaa !15
  %25 = icmp eq i32 %24, 5
  br i1 %25, label %30, label %26

26:                                               ; preds = %1
  %27 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 15
  %28 = load i32, ptr %27, align 4, !tbaa !15
  %29 = icmp eq i32 %28, 6
  br i1 %29, label %30, label %49

30:                                               ; preds = %26, %1
  %31 = load float, ptr %4, align 4, !tbaa !14
  %32 = fdiv float %31, 2.000000e+00
  %33 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %34 = load float, ptr %33, align 4, !tbaa !16
  %35 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %36 = load float, ptr %35, align 4, !tbaa !16
  %37 = fdiv float 1.000000e+00, %36
  %38 = fadd float %34, %37
  %39 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 18
  %40 = load float, ptr %39, align 4, !tbaa !17
  %41 = fdiv float 1.000000e+00, %40
  %42 = fsub float %41, 1.000000e+00
  %43 = call float @llvm.fmuladd.f32(float %38, float %42, float 2.000000e+00)
  %44 = call noundef float @_ZSt4sqrtf(float noundef %43)
  %45 = fmul float %32, %44
  store float %45, ptr %7, align 4, !tbaa !14
  %46 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %47 = load float, ptr %46, align 4, !tbaa !16
  %48 = call noundef float @_ZSt4sqrtf(float noundef %47)
  store float %48, ptr %6, align 4, !tbaa !14
  br label %55

49:                                               ; preds = %26
  %50 = load float, ptr %4, align 4, !tbaa !14
  %51 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 2
  %52 = load float, ptr %51, align 4, !tbaa !18
  %53 = fmul float 2.000000e+00, %52
  %54 = fdiv float %50, %53
  store float %54, ptr %7, align 4, !tbaa !14
  br label %55

55:                                               ; preds = %49, %30
  %56 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 15
  %57 = load i32, ptr %56, align 4, !tbaa !15
  switch i32 %57, label %336 [
    i32 0, label %58
    i32 1, label %79
    i32 2, label %101
    i32 3, label %117
    i32 4, label %132
    i32 5, label %162
    i32 6, label %249
  ]

58:                                               ; preds = %55
  %59 = load float, ptr %5, align 4, !tbaa !14
  %60 = fsub float 1.000000e+00, %59
  %61 = fdiv float %60, 2.000000e+00
  %62 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 6
  store float %61, ptr %62, align 4, !tbaa !19
  %63 = load float, ptr %5, align 4, !tbaa !14
  %64 = fsub float 1.000000e+00, %63
  %65 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 7
  store float %64, ptr %65, align 4, !tbaa !20
  %66 = load float, ptr %5, align 4, !tbaa !14
  %67 = fsub float 1.000000e+00, %66
  %68 = fdiv float %67, 2.000000e+00
  %69 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 8
  store float %68, ptr %69, align 4, !tbaa !21
  %70 = load float, ptr %7, align 4, !tbaa !14
  %71 = fadd float 1.000000e+00, %70
  %72 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 3
  store float %71, ptr %72, align 4, !tbaa !22
  %73 = load float, ptr %5, align 4, !tbaa !14
  %74 = fmul float -2.000000e+00, %73
  %75 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 4
  store float %74, ptr %75, align 4, !tbaa !23
  %76 = load float, ptr %7, align 4, !tbaa !14
  %77 = fsub float 1.000000e+00, %76
  %78 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 5
  store float %77, ptr %78, align 4, !tbaa !24
  br label %336

79:                                               ; preds = %55
  %80 = load float, ptr %5, align 4, !tbaa !14
  %81 = fadd float 1.000000e+00, %80
  %82 = fdiv float %81, 2.000000e+00
  %83 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 6
  store float %82, ptr %83, align 4, !tbaa !19
  %84 = load float, ptr %5, align 4, !tbaa !14
  %85 = fadd float 1.000000e+00, %84
  %86 = fneg float %85
  %87 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 7
  store float %86, ptr %87, align 4, !tbaa !20
  %88 = load float, ptr %5, align 4, !tbaa !14
  %89 = fadd float 1.000000e+00, %88
  %90 = fdiv float %89, 2.000000e+00
  %91 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 8
  store float %90, ptr %91, align 4, !tbaa !21
  %92 = load float, ptr %7, align 4, !tbaa !14
  %93 = fadd float 1.000000e+00, %92
  %94 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 3
  store float %93, ptr %94, align 4, !tbaa !22
  %95 = load float, ptr %5, align 4, !tbaa !14
  %96 = fmul float -2.000000e+00, %95
  %97 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 4
  store float %96, ptr %97, align 4, !tbaa !23
  %98 = load float, ptr %7, align 4, !tbaa !14
  %99 = fsub float 1.000000e+00, %98
  %100 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 5
  store float %99, ptr %100, align 4, !tbaa !24
  br label %336

101:                                              ; preds = %55
  %102 = load float, ptr %7, align 4, !tbaa !14
  %103 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 6
  store float %102, ptr %103, align 4, !tbaa !19
  %104 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 7
  store float 0.000000e+00, ptr %104, align 4, !tbaa !20
  %105 = load float, ptr %7, align 4, !tbaa !14
  %106 = fneg float %105
  %107 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 8
  store float %106, ptr %107, align 4, !tbaa !21
  %108 = load float, ptr %7, align 4, !tbaa !14
  %109 = fadd float 1.000000e+00, %108
  %110 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 3
  store float %109, ptr %110, align 4, !tbaa !22
  %111 = load float, ptr %5, align 4, !tbaa !14
  %112 = fmul float -2.000000e+00, %111
  %113 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 4
  store float %112, ptr %113, align 4, !tbaa !23
  %114 = load float, ptr %7, align 4, !tbaa !14
  %115 = fsub float 1.000000e+00, %114
  %116 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 5
  store float %115, ptr %116, align 4, !tbaa !24
  br label %336

117:                                              ; preds = %55
  %118 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 6
  store float 1.000000e+00, ptr %118, align 4, !tbaa !19
  %119 = load float, ptr %5, align 4, !tbaa !14
  %120 = fmul float -2.000000e+00, %119
  %121 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 7
  store float %120, ptr %121, align 4, !tbaa !20
  %122 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 8
  store float 1.000000e+00, ptr %122, align 4, !tbaa !21
  %123 = load float, ptr %7, align 4, !tbaa !14
  %124 = fadd float 1.000000e+00, %123
  %125 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 3
  store float %124, ptr %125, align 4, !tbaa !22
  %126 = load float, ptr %5, align 4, !tbaa !14
  %127 = fmul float -2.000000e+00, %126
  %128 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 4
  store float %127, ptr %128, align 4, !tbaa !23
  %129 = load float, ptr %7, align 4, !tbaa !14
  %130 = fsub float 1.000000e+00, %129
  %131 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 5
  store float %130, ptr %131, align 4, !tbaa !24
  br label %336

132:                                              ; preds = %55
  %133 = load float, ptr %7, align 4, !tbaa !14
  %134 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %135 = load float, ptr %134, align 4, !tbaa !16
  %136 = call float @llvm.fmuladd.f32(float %133, float %135, float 1.000000e+00)
  %137 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 6
  store float %136, ptr %137, align 4, !tbaa !19
  %138 = load float, ptr %5, align 4, !tbaa !14
  %139 = fmul float -2.000000e+00, %138
  %140 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 7
  store float %139, ptr %140, align 4, !tbaa !20
  %141 = load float, ptr %7, align 4, !tbaa !14
  %142 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %143 = load float, ptr %142, align 4, !tbaa !16
  %144 = fneg float %141
  %145 = call float @llvm.fmuladd.f32(float %144, float %143, float 1.000000e+00)
  %146 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 8
  store float %145, ptr %146, align 4, !tbaa !21
  %147 = load float, ptr %7, align 4, !tbaa !14
  %148 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %149 = load float, ptr %148, align 4, !tbaa !16
  %150 = fdiv float %147, %149
  %151 = fadd float 1.000000e+00, %150
  %152 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 3
  store float %151, ptr %152, align 4, !tbaa !22
  %153 = load float, ptr %5, align 4, !tbaa !14
  %154 = fmul float -2.000000e+00, %153
  %155 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 4
  store float %154, ptr %155, align 4, !tbaa !23
  %156 = load float, ptr %7, align 4, !tbaa !14
  %157 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %158 = load float, ptr %157, align 4, !tbaa !16
  %159 = fdiv float %156, %158
  %160 = fsub float 1.000000e+00, %159
  %161 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 5
  store float %160, ptr %161, align 4, !tbaa !24
  br label %336

162:                                              ; preds = %55
  %163 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %164 = load float, ptr %163, align 4, !tbaa !16
  %165 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %166 = load float, ptr %165, align 4, !tbaa !16
  %167 = fadd float %166, 1.000000e+00
  %168 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %169 = load float, ptr %168, align 4, !tbaa !16
  %170 = fsub float %169, 1.000000e+00
  %171 = load float, ptr %5, align 4, !tbaa !14
  %172 = fneg float %170
  %173 = call float @llvm.fmuladd.f32(float %172, float %171, float %167)
  %174 = load float, ptr %6, align 4, !tbaa !14
  %175 = fmul float 2.000000e+00, %174
  %176 = load float, ptr %7, align 4, !tbaa !14
  %177 = call float @llvm.fmuladd.f32(float %175, float %176, float %173)
  %178 = fmul float %164, %177
  %179 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 6
  store float %178, ptr %179, align 4, !tbaa !19
  %180 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %181 = load float, ptr %180, align 4, !tbaa !16
  %182 = fmul float 2.000000e+00, %181
  %183 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %184 = load float, ptr %183, align 4, !tbaa !16
  %185 = fsub float %184, 1.000000e+00
  %186 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %187 = load float, ptr %186, align 4, !tbaa !16
  %188 = fadd float %187, 1.000000e+00
  %189 = load float, ptr %5, align 4, !tbaa !14
  %190 = fneg float %188
  %191 = call float @llvm.fmuladd.f32(float %190, float %189, float %185)
  %192 = fmul float %182, %191
  %193 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 7
  store float %192, ptr %193, align 4, !tbaa !20
  %194 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %195 = load float, ptr %194, align 4, !tbaa !16
  %196 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %197 = load float, ptr %196, align 4, !tbaa !16
  %198 = fadd float %197, 1.000000e+00
  %199 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %200 = load float, ptr %199, align 4, !tbaa !16
  %201 = fsub float %200, 1.000000e+00
  %202 = load float, ptr %5, align 4, !tbaa !14
  %203 = fneg float %201
  %204 = call float @llvm.fmuladd.f32(float %203, float %202, float %198)
  %205 = load float, ptr %6, align 4, !tbaa !14
  %206 = fmul float 2.000000e+00, %205
  %207 = load float, ptr %7, align 4, !tbaa !14
  %208 = fneg float %206
  %209 = call float @llvm.fmuladd.f32(float %208, float %207, float %204)
  %210 = fmul float %195, %209
  %211 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 8
  store float %210, ptr %211, align 4, !tbaa !21
  %212 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %213 = load float, ptr %212, align 4, !tbaa !16
  %214 = fadd float %213, 1.000000e+00
  %215 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %216 = load float, ptr %215, align 4, !tbaa !16
  %217 = fsub float %216, 1.000000e+00
  %218 = load float, ptr %5, align 4, !tbaa !14
  %219 = call float @llvm.fmuladd.f32(float %217, float %218, float %214)
  %220 = load float, ptr %6, align 4, !tbaa !14
  %221 = fmul float 2.000000e+00, %220
  %222 = load float, ptr %7, align 4, !tbaa !14
  %223 = call float @llvm.fmuladd.f32(float %221, float %222, float %219)
  %224 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 3
  store float %223, ptr %224, align 4, !tbaa !22
  %225 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %226 = load float, ptr %225, align 4, !tbaa !16
  %227 = fsub float %226, 1.000000e+00
  %228 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %229 = load float, ptr %228, align 4, !tbaa !16
  %230 = fadd float %229, 1.000000e+00
  %231 = load float, ptr %5, align 4, !tbaa !14
  %232 = call float @llvm.fmuladd.f32(float %230, float %231, float %227)
  %233 = fmul float -2.000000e+00, %232
  %234 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 4
  store float %233, ptr %234, align 4, !tbaa !23
  %235 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %236 = load float, ptr %235, align 4, !tbaa !16
  %237 = fadd float %236, 1.000000e+00
  %238 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %239 = load float, ptr %238, align 4, !tbaa !16
  %240 = fsub float %239, 1.000000e+00
  %241 = load float, ptr %5, align 4, !tbaa !14
  %242 = call float @llvm.fmuladd.f32(float %240, float %241, float %237)
  %243 = load float, ptr %6, align 4, !tbaa !14
  %244 = fmul float 2.000000e+00, %243
  %245 = load float, ptr %7, align 4, !tbaa !14
  %246 = fneg float %244
  %247 = call float @llvm.fmuladd.f32(float %246, float %245, float %242)
  %248 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 5
  store float %247, ptr %248, align 4, !tbaa !24
  br label %336

249:                                              ; preds = %55
  %250 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %251 = load float, ptr %250, align 4, !tbaa !16
  %252 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %253 = load float, ptr %252, align 4, !tbaa !16
  %254 = fadd float %253, 1.000000e+00
  %255 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %256 = load float, ptr %255, align 4, !tbaa !16
  %257 = fsub float %256, 1.000000e+00
  %258 = load float, ptr %5, align 4, !tbaa !14
  %259 = call float @llvm.fmuladd.f32(float %257, float %258, float %254)
  %260 = load float, ptr %6, align 4, !tbaa !14
  %261 = fmul float 2.000000e+00, %260
  %262 = load float, ptr %7, align 4, !tbaa !14
  %263 = call float @llvm.fmuladd.f32(float %261, float %262, float %259)
  %264 = fmul float %251, %263
  %265 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 6
  store float %264, ptr %265, align 4, !tbaa !19
  %266 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %267 = load float, ptr %266, align 4, !tbaa !16
  %268 = fmul float -2.000000e+00, %267
  %269 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %270 = load float, ptr %269, align 4, !tbaa !16
  %271 = fsub float %270, 1.000000e+00
  %272 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %273 = load float, ptr %272, align 4, !tbaa !16
  %274 = fadd float %273, 1.000000e+00
  %275 = load float, ptr %5, align 4, !tbaa !14
  %276 = call float @llvm.fmuladd.f32(float %274, float %275, float %271)
  %277 = fmul float %268, %276
  %278 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 7
  store float %277, ptr %278, align 4, !tbaa !20
  %279 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %280 = load float, ptr %279, align 4, !tbaa !16
  %281 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %282 = load float, ptr %281, align 4, !tbaa !16
  %283 = fadd float %282, 1.000000e+00
  %284 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %285 = load float, ptr %284, align 4, !tbaa !16
  %286 = fsub float %285, 1.000000e+00
  %287 = load float, ptr %5, align 4, !tbaa !14
  %288 = call float @llvm.fmuladd.f32(float %286, float %287, float %283)
  %289 = load float, ptr %6, align 4, !tbaa !14
  %290 = fmul float 2.000000e+00, %289
  %291 = load float, ptr %7, align 4, !tbaa !14
  %292 = fneg float %290
  %293 = call float @llvm.fmuladd.f32(float %292, float %291, float %288)
  %294 = fmul float %280, %293
  %295 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 8
  store float %294, ptr %295, align 4, !tbaa !21
  %296 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %297 = load float, ptr %296, align 4, !tbaa !16
  %298 = fadd float %297, 1.000000e+00
  %299 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %300 = load float, ptr %299, align 4, !tbaa !16
  %301 = fsub float %300, 1.000000e+00
  %302 = load float, ptr %5, align 4, !tbaa !14
  %303 = fneg float %301
  %304 = call float @llvm.fmuladd.f32(float %303, float %302, float %298)
  %305 = load float, ptr %6, align 4, !tbaa !14
  %306 = fmul float 2.000000e+00, %305
  %307 = load float, ptr %7, align 4, !tbaa !14
  %308 = call float @llvm.fmuladd.f32(float %306, float %307, float %304)
  %309 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 3
  store float %308, ptr %309, align 4, !tbaa !22
  %310 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %311 = load float, ptr %310, align 4, !tbaa !16
  %312 = fsub float %311, 1.000000e+00
  %313 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %314 = load float, ptr %313, align 4, !tbaa !16
  %315 = fadd float %314, 1.000000e+00
  %316 = load float, ptr %5, align 4, !tbaa !14
  %317 = fneg float %315
  %318 = call float @llvm.fmuladd.f32(float %317, float %316, float %312)
  %319 = fmul float 2.000000e+00, %318
  %320 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 4
  store float %319, ptr %320, align 4, !tbaa !23
  %321 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %322 = load float, ptr %321, align 4, !tbaa !16
  %323 = fadd float %322, 1.000000e+00
  %324 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 14
  %325 = load float, ptr %324, align 4, !tbaa !16
  %326 = fsub float %325, 1.000000e+00
  %327 = load float, ptr %5, align 4, !tbaa !14
  %328 = fneg float %326
  %329 = call float @llvm.fmuladd.f32(float %328, float %327, float %323)
  %330 = load float, ptr %6, align 4, !tbaa !14
  %331 = fmul float 2.000000e+00, %330
  %332 = load float, ptr %7, align 4, !tbaa !14
  %333 = fneg float %331
  %334 = call float @llvm.fmuladd.f32(float %333, float %332, float %329)
  %335 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 5
  store float %334, ptr %335, align 4, !tbaa !24
  br label %336

336:                                              ; preds = %249, %162, %132, %117, %101, %79, %58, %55
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  %337 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 3
  %338 = load float, ptr %337, align 4, !tbaa !22
  %339 = fdiv float 1.000000e+00, %338
  store float %339, ptr %8, align 4, !tbaa !14
  %340 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 6
  %341 = load float, ptr %340, align 4, !tbaa !19
  %342 = load float, ptr %8, align 4, !tbaa !14
  %343 = fmul float %341, %342
  %344 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 6
  store float %343, ptr %344, align 4, !tbaa !19
  %345 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 7
  %346 = load float, ptr %345, align 4, !tbaa !20
  %347 = load float, ptr %8, align 4, !tbaa !14
  %348 = fmul float %346, %347
  %349 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 7
  store float %348, ptr %349, align 4, !tbaa !20
  %350 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 8
  %351 = load float, ptr %350, align 4, !tbaa !21
  %352 = load float, ptr %8, align 4, !tbaa !14
  %353 = fmul float %351, %352
  %354 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 8
  store float %353, ptr %354, align 4, !tbaa !21
  %355 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 4
  %356 = load float, ptr %355, align 4, !tbaa !23
  %357 = load float, ptr %8, align 4, !tbaa !14
  %358 = fmul float %356, %357
  %359 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 4
  store float %358, ptr %359, align 4, !tbaa !23
  %360 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 5
  %361 = load float, ptr %360, align 4, !tbaa !24
  %362 = load float, ptr %8, align 4, !tbaa !14
  %363 = fmul float %361, %362
  %364 = getelementptr inbounds %"class.AudioLib::Biquad", ptr %9, i32 0, i32 5
  store float %363, ptr %364, align 4, !tbaa !24
  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
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #4
  ret void
}

; 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 willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3sinf(float noundef) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3cosf(float noundef) #2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4sqrtf(float noundef) #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 68}
!10 = !{!"_ZTSN8AudioLib6BiquadE", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !12, i64 60, !11, i64 64, !11, i64 68, !11, i64 72}
!11 = !{!"float", !7, i64 0}
!12 = !{!"_ZTSN8AudioLib6Biquad10FilterTypeE", !7, i64 0}
!13 = !{!10, !11, i64 0}
!14 = !{!11, !11, i64 0}
!15 = !{!10, !12, i64 60}
!16 = !{!10, !11, i64 56}
!17 = !{!10, !11, i64 72}
!18 = !{!10, !11, i64 8}
!19 = !{!10, !11, i64 24}
!20 = !{!10, !11, i64 28}
!21 = !{!10, !11, i64 32}
!22 = !{!10, !11, i64 12}
!23 = !{!10, !11, i64 16}
!24 = !{!10, !11, i64 20}


; 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 nounwind uwtable
define dso_local void @_ZN8AudioLib6Biquad6UpdateEv(ptr nocapture noundef nonnull align 4 dereferenceable(76) %0) local_unnamed_addr #0 align 2 {
  %2 = getelementptr inbounds i8, ptr %0, i64 68
  %3 = load float, ptr %2, align 4, !tbaa !5
  %4 = fpext float %3 to double
  %5 = fmul double %4, 0x401921FB54442D18
  %6 = load float, ptr %0, align 4, !tbaa !11
  %7 = fpext float %6 to double
  %8 = fdiv double %5, %7
  %9 = fptrunc double %8 to float
  %10 = tail call noundef float @_ZSt3sinf(float noundef %9)
  %11 = tail call noundef float @_ZSt3cosf(float noundef %9)
  %12 = getelementptr inbounds i8, ptr %0, i64 60
  %13 = load i32, ptr %12, align 4, !tbaa !12
  %.off = add i32 %13, -5
  %switch = icmp ult i32 %.off, 2
  br i1 %switch, label %14, label %30

14:                                               ; preds = %1
  %15 = fmul float %10, 5.000000e-01
  %16 = getelementptr inbounds i8, ptr %0, i64 56
  %17 = load float, ptr %16, align 4, !tbaa !13
  %18 = fdiv float 1.000000e+00, %17
  %19 = fadd float %17, %18
  %20 = getelementptr inbounds i8, ptr %0, i64 72
  %21 = load float, ptr %20, align 4, !tbaa !14
  %22 = fdiv float 1.000000e+00, %21
  %23 = fadd float %22, -1.000000e+00
  %24 = tail call float @llvm.fmuladd.f32(float %19, float %23, float 2.000000e+00)
  %25 = tail call noundef float @_ZSt4sqrtf(float noundef %24)
  %26 = fmul float %15, %25
  %27 = load float, ptr %16, align 4, !tbaa !13
  %28 = tail call noundef float @_ZSt4sqrtf(float noundef %27)
  %29 = fmul float %28, 2.000000e+00
  %.pre = load i32, ptr %12, align 4, !tbaa !12
  br label %35

30:                                               ; preds = %1
  %31 = getelementptr inbounds i8, ptr %0, i64 8
  %32 = load float, ptr %31, align 4, !tbaa !15
  %33 = fmul float %32, 2.000000e+00
  %34 = fdiv float %10, %33
  br label %35

35:                                               ; preds = %30, %14
  %36 = phi i32 [ %.pre, %14 ], [ %13, %30 ]
  %.065 = phi float [ %26, %14 ], [ %34, %30 ]
  %.0 = phi float [ %29, %14 ], [ 0.000000e+00, %30 ]
  switch i32 %36, label %._crit_edge [
    i32 0, label %37
    i32 1, label %44
    i32 2, label %52
    i32 3, label %59
    i32 4, label %66
    i32 5, label %80
    i32 6, label %112
  ]

._crit_edge:                                      ; preds = %35
  %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 12
  %.pre67 = load float, ptr %.phi.trans.insert, align 4, !tbaa !16
  %.phi.trans.insert68 = getelementptr inbounds i8, ptr %0, i64 24
  %.pre69 = load float, ptr %.phi.trans.insert68, align 4, !tbaa !17
  %.phi.trans.insert70 = getelementptr inbounds i8, ptr %0, i64 28
  %.pre71 = load float, ptr %.phi.trans.insert70, align 4, !tbaa !18
  %.phi.trans.insert72 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre73 = load float, ptr %.phi.trans.insert72, align 4, !tbaa !19
  %.phi.trans.insert74 = getelementptr inbounds i8, ptr %0, i64 16
  %.pre75 = load float, ptr %.phi.trans.insert74, align 4, !tbaa !20
  %.phi.trans.insert76 = getelementptr inbounds i8, ptr %0, i64 20
  %.pre77 = load float, ptr %.phi.trans.insert76, align 4, !tbaa !21
  br label %144

37:                                               ; preds = %35
  %38 = fsub float 1.000000e+00, %11
  %39 = fmul float %38, 5.000000e-01
  %40 = fadd float %.065, 1.000000e+00
  %41 = getelementptr inbounds i8, ptr %0, i64 12
  store float %40, ptr %41, align 4, !tbaa !16
  %42 = fmul float %11, -2.000000e+00
  %43 = fsub float 1.000000e+00, %.065
  br label %144

44:                                               ; preds = %35
  %45 = fadd float %11, 1.000000e+00
  %46 = fmul float %45, 5.000000e-01
  %47 = fneg float %45
  %48 = fadd float %.065, 1.000000e+00
  %49 = getelementptr inbounds i8, ptr %0, i64 12
  store float %48, ptr %49, align 4, !tbaa !16
  %50 = fmul float %11, -2.000000e+00
  %51 = fsub float 1.000000e+00, %.065
  br label %144

52:                                               ; preds = %35
  %53 = getelementptr inbounds i8, ptr %0, i64 24
  store float %.065, ptr %53, align 4, !tbaa !17
  %54 = fneg float %.065
  %55 = fadd float %.065, 1.000000e+00
  %56 = getelementptr inbounds i8, ptr %0, i64 12
  store float %55, ptr %56, align 4, !tbaa !16
  %57 = fmul float %11, -2.000000e+00
  %58 = fsub float 1.000000e+00, %.065
  br label %144

59:                                               ; preds = %35
  %60 = getelementptr inbounds i8, ptr %0, i64 24
  store float 1.000000e+00, ptr %60, align 4, !tbaa !17
  %61 = fmul float %11, -2.000000e+00
  %62 = getelementptr inbounds i8, ptr %0, i64 28
  store float %61, ptr %62, align 4, !tbaa !18
  %63 = fadd float %.065, 1.000000e+00
  %64 = getelementptr inbounds i8, ptr %0, i64 12
  store float %63, ptr %64, align 4, !tbaa !16
  %65 = fsub float 1.000000e+00, %.065
  br label %144

66:                                               ; preds = %35
  %67 = getelementptr inbounds i8, ptr %0, i64 56
  %68 = load float, ptr %67, align 4, !tbaa !13
  %69 = tail call float @llvm.fmuladd.f32(float %.065, float %68, float 1.000000e+00)
  %70 = getelementptr inbounds i8, ptr %0, i64 24
  store float %69, ptr %70, align 4, !tbaa !17
  %71 = fmul float %11, -2.000000e+00
  %72 = getelementptr inbounds i8, ptr %0, i64 28
  store float %71, ptr %72, align 4, !tbaa !18
  %73 = fneg float %.065
  %74 = tail call float @llvm.fmuladd.f32(float %73, float %68, float 1.000000e+00)
  %75 = getelementptr inbounds i8, ptr %0, i64 32
  store float %74, ptr %75, align 4, !tbaa !19
  %76 = fdiv float %.065, %68
  %77 = fadd float %76, 1.000000e+00
  %78 = getelementptr inbounds i8, ptr %0, i64 12
  store float %77, ptr %78, align 4, !tbaa !16
  %79 = fsub float 1.000000e+00, %76
  br label %144

80:                                               ; preds = %35
  %81 = getelementptr inbounds i8, ptr %0, i64 56
  %82 = load float, ptr %81, align 4, !tbaa !13
  %83 = fadd float %82, 1.000000e+00
  %84 = fadd float %82, -1.000000e+00
  %85 = fneg float %84
  %86 = tail call float @llvm.fmuladd.f32(float %85, float %11, float %83)
  %87 = getelementptr inbounds i8, ptr %0, i64 24
  %88 = fmul float %82, 2.000000e+00
  %89 = fneg float %83
  %90 = insertelement <2 x float> poison, float %.0, i64 0
  %91 = insertelement <2 x float> %90, float %89, i64 1
  %92 = insertelement <2 x float> poison, float %.065, i64 0
  %93 = insertelement <2 x float> %92, float %11, i64 1
  %94 = insertelement <2 x float> poison, float %86, i64 0
  %95 = insertelement <2 x float> %94, float %84, i64 1
  %96 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %91, <2 x float> %93, <2 x float> %95)
  %97 = insertelement <2 x float> poison, float %82, i64 0
  %98 = insertelement <2 x float> %97, float %88, i64 1
  %99 = fmul <2 x float> %98, %96
  store <2 x float> %99, ptr %87, align 4, !tbaa !22
  %100 = fneg float %.0
  %101 = tail call float @llvm.fmuladd.f32(float %100, float %.065, float %86)
  %102 = fmul float %82, %101
  %103 = getelementptr inbounds i8, ptr %0, i64 32
  store float %102, ptr %103, align 4, !tbaa !19
  %104 = tail call float @llvm.fmuladd.f32(float %84, float %11, float %83)
  %105 = tail call float @llvm.fmuladd.f32(float %.0, float %.065, float %104)
  %106 = getelementptr inbounds i8, ptr %0, i64 12
  store float %105, ptr %106, align 4, !tbaa !16
  %107 = tail call float @llvm.fmuladd.f32(float %83, float %11, float %84)
  %108 = fmul float %107, -2.000000e+00
  %109 = tail call float @llvm.fmuladd.f32(float %100, float %.065, float %104)
  %110 = extractelement <2 x float> %99, i64 0
  %111 = extractelement <2 x float> %99, i64 1
  br label %144

112:                                              ; preds = %35
  %113 = getelementptr inbounds i8, ptr %0, i64 56
  %114 = load float, ptr %113, align 4, !tbaa !13
  %115 = fadd float %114, 1.000000e+00
  %116 = fadd float %114, -1.000000e+00
  %117 = tail call float @llvm.fmuladd.f32(float %116, float %11, float %115)
  %118 = getelementptr inbounds i8, ptr %0, i64 24
  %119 = fmul float %114, -2.000000e+00
  %120 = insertelement <2 x float> poison, float %.0, i64 0
  %121 = insertelement <2 x float> %120, float %115, i64 1
  %122 = insertelement <2 x float> poison, float %.065, i64 0
  %123 = insertelement <2 x float> %122, float %11, i64 1
  %124 = insertelement <2 x float> poison, float %117, i64 0
  %125 = insertelement <2 x float> %124, float %116, i64 1
  %126 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %121, <2 x float> %123, <2 x float> %125)
  %127 = insertelement <2 x float> poison, float %114, i64 0
  %128 = insertelement <2 x float> %127, float %119, i64 1
  %129 = fmul <2 x float> %128, %126
  store <2 x float> %129, ptr %118, align 4, !tbaa !22
  %130 = fneg float %.0
  %131 = tail call float @llvm.fmuladd.f32(float %130, float %.065, float %117)
  %132 = fmul float %114, %131
  %133 = getelementptr inbounds i8, ptr %0, i64 32
  store float %132, ptr %133, align 4, !tbaa !19
  %134 = fneg float %116
  %135 = tail call float @llvm.fmuladd.f32(float %134, float %11, float %115)
  %136 = tail call float @llvm.fmuladd.f32(float %.0, float %.065, float %135)
  %137 = getelementptr inbounds i8, ptr %0, i64 12
  store float %136, ptr %137, align 4, !tbaa !16
  %138 = fneg float %115
  %139 = tail call float @llvm.fmuladd.f32(float %138, float %11, float %116)
  %140 = fmul float %139, 2.000000e+00
  %141 = tail call float @llvm.fmuladd.f32(float %130, float %.065, float %135)
  %142 = extractelement <2 x float> %129, i64 0
  %143 = extractelement <2 x float> %129, i64 1
  br label %144

144:                                              ; preds = %._crit_edge, %112, %80, %66, %59, %52, %44, %37
  %145 = phi float [ %.pre77, %._crit_edge ], [ %141, %112 ], [ %109, %80 ], [ %79, %66 ], [ %65, %59 ], [ %58, %52 ], [ %51, %44 ], [ %43, %37 ]
  %146 = phi float [ %.pre75, %._crit_edge ], [ %140, %112 ], [ %108, %80 ], [ %71, %66 ], [ %61, %59 ], [ %57, %52 ], [ %50, %44 ], [ %42, %37 ]
  %147 = phi float [ %.pre73, %._crit_edge ], [ %132, %112 ], [ %102, %80 ], [ %74, %66 ], [ 1.000000e+00, %59 ], [ %54, %52 ], [ %46, %44 ], [ %39, %37 ]
  %148 = phi float [ %.pre71, %._crit_edge ], [ %143, %112 ], [ %111, %80 ], [ %71, %66 ], [ %61, %59 ], [ 0.000000e+00, %52 ], [ %47, %44 ], [ %38, %37 ]
  %149 = phi float [ %.pre69, %._crit_edge ], [ %142, %112 ], [ %110, %80 ], [ %69, %66 ], [ 1.000000e+00, %59 ], [ %.065, %52 ], [ %46, %44 ], [ %39, %37 ]
  %150 = phi float [ %.pre67, %._crit_edge ], [ %136, %112 ], [ %105, %80 ], [ %77, %66 ], [ %63, %59 ], [ %55, %52 ], [ %48, %44 ], [ %40, %37 ]
  %151 = fdiv float 1.000000e+00, %150
  %152 = getelementptr inbounds i8, ptr %0, i64 24
  %153 = fmul float %149, %151
  store float %153, ptr %152, align 4, !tbaa !17
  %154 = getelementptr inbounds i8, ptr %0, i64 28
  %155 = fmul float %151, %148
  store float %155, ptr %154, align 4, !tbaa !18
  %156 = getelementptr inbounds i8, ptr %0, i64 32
  %157 = fmul float %151, %147
  store float %157, ptr %156, align 4, !tbaa !19
  %158 = getelementptr inbounds i8, ptr %0, i64 16
  %159 = fmul float %151, %146
  store float %159, ptr %158, align 4, !tbaa !20
  %160 = getelementptr inbounds i8, ptr %0, i64 20
  %161 = fmul float %151, %145
  store float %161, ptr %160, align 4, !tbaa !21
  ret void
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3sinf(float noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3cosf(float noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt4sqrtf(float noundef) local_unnamed_addr #1

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

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

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

!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, !7, i64 68}
!6 = !{!"_ZTSN8AudioLib6BiquadE", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !7, i64 52, !7, i64 56, !10, i64 60, !7, i64 64, !7, i64 68, !7, i64 72}
!7 = !{!"float", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN8AudioLib6Biquad10FilterTypeE", !8, i64 0}
!11 = !{!6, !7, i64 0}
!12 = !{!6, !10, i64 60}
!13 = !{!6, !7, i64 56}
!14 = !{!6, !7, i64 72}
!15 = !{!6, !7, i64 8}
!16 = !{!6, !7, i64 12}
!17 = !{!6, !7, i64 24}
!18 = !{!6, !7, i64 28}
!19 = !{!6, !7, i64 32}
!20 = !{!6, !7, i64 16}
!21 = !{!6, !7, i64 20}
!22 = !{!7, !7, i64 0}


; Effective O3 passes: BDCEPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass