Раньше имея дело только с выравненными данными использовал movaps для загрузки данных регистры xmm0-xmm15 и movntdq для выгрузки в память , чем достигал большой скорости копирования. Теперь необходимо обеспечить быстрое копирование не выравненных данных произвольного размера для чего я заменил movaps/movntdq на movupd что снизило скорость почти на 25%. Как ускорить копирование не выравненных данных? Есть способы проверки выравнивания данных по 16 байт без деления начала адреса данных и проверки остатка?
Устраивает. Единственный способ быстрого копирования который в голову приходит: Копировать сначала данные из источника по байтого пока указанное тобой условие не будет выполняться , если условие выполняться начинаем копировать как выравненные данные, но с выравниванием адреса куда копируем при этом, пока нечего придумать не могу. Выравнивать таким макаром одновременно адреса источника и приемника не выходит.