The 64-bit fast path can be used only in limited conditions:
- destination must be aligned to 64-bit (CPU aligned access)
- step must be equal to width
- physical with must be different than 24 (cannot be multiplied to 64)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* Iterate copying silent sample for sample data aligned to 64 bit.
* This is a fast path.
*/
- if (dst_area->step == (unsigned int) width && (64 % width) == 0) {
+ if (dst_area->step == (unsigned int) width &&
+ width != 24 &&
+ ((intptr_t)dst & 7) == 0) {
unsigned int dwords = samples * width / 64;
uint64_t *dstp = (uint64_t *)dst;
samples -= dwords * 64 / width;