Matteo Bruni (@Mystral) commented about dlls/dsound/mixer.c:
float rem_inv = FIXED_0_32_TO_FLOAT((DWORD)ipos_num << FIR_STEP_SHIFT); float rem_inv_step = FIXED_0_32_TO_FLOAT(ipos_num_step << FIR_STEP_SHIFT); + +#if defined(__x86_64__) && !defined(__arm64ec__) + upsample_sse((DWORD)ipos_num, ipos_num_step, rem_inv, rem_inv_step, count, input, output); +#else UINT i;
+#ifdef __i386__ + if (sse_supported) { + upsample_sse((DWORD)ipos_num, ipos_num_step, rem_inv, rem_inv_step, count, input, output); + return; + } +#endif +
It might be worthwhile to consider having a superfluous `sse_supported` and `if (sse_supported)` in the 64-bit case if it simplifies the code. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10716#note_137935