Matteo Bruni (@Mystral) commented about dlls/dsound/mixer_sse.c:
+ __m128 rem_inv = _mm_set1_ps(rem_inv_float); + __m128 rem_inv_step = _mm_set1_ps(rem_inv_step_float); + __m128 one = _mm_set1_ps(1.0f); + + UINT i; + + for(i = 0; i < count; ++i) { + UINT ipos = ipos_num >> FREQ_ADJUST_SHIFT; + UINT idx = ~(DWORD)ipos_num >> (FREQ_ADJUST_SHIFT - FIR_STEP_SHIFT) << FIR_WIDTH_SHIFT; + __m128 rem = _mm_sub_ps(one, rem_inv); + + int j; + __m128 sum = _mm_set1_ps(0.0f); + float* cache = &input[ipos]; + + for (j = 0; j < FIR_WIDTH; j += 4) { We could add a `C_ASSERT(!(FIR_WIDTH % 4));` somewhere, to be extra safe.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10716#note_140008