diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fdb825a..ba973e56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ Next Release * DPF: enum for UI parameter IDs * DPF bugfixes: correct input PortGroup names; correct UI slider updates; midiout reimplementation * Wwise: complete rewrite/refactor - now uses SDK build tools - thanks to @eu-ch !! +* Bugfix: correct alignment in AVX pow~ implementation * Cleanup: remove deprecated build.json * Deprecate py37, enable py312 diff --git a/hvcc/generators/ir2c/static/HvMath.h b/hvcc/generators/ir2c/static/HvMath.h index 2beee798..d25de2df 100644 --- a/hvcc/generators/ir2c/static/HvMath.h +++ b/hvcc/generators/ir2c/static/HvMath.h @@ -539,14 +539,14 @@ static inline void __hv_pow_f(hv_bInf_t bIn0, hv_bInf_t bIn1, hv_bOutf_t bOut) { _mm256_store_ps(b, bIn0); _mm256_store_ps(b+8, bIn1); *bOut = _mm256_set_ps( - hv_pow_f(b[7], b[7]), - hv_pow_f(b[6], b[6]), - hv_pow_f(b[5], b[5]), - hv_pow_f(b[4], b[4]), - hv_pow_f(b[3], b[3]), - hv_pow_f(b[2], b[2]), - hv_pow_f(b[1], b[1]), - hv_pow_f(b[0], b[0])); + hv_pow_f(b[7], b[15]), + hv_pow_f(b[6], b[14]), + hv_pow_f(b[5], b[13]), + hv_pow_f(b[4], b[12]), + hv_pow_f(b[3], b[11]), + hv_pow_f(b[2], b[10]), + hv_pow_f(b[1], b[9]), + hv_pow_f(b[0], b[8])); #elif HV_SIMD_SSE float *b = (float *) hv_alloca(8*sizeof(float)); _mm_store_ps(b, bIn0);