Эффективно установить для младших 64 битов регистра YMM постоянную

Как я могу установить младшие 64 бита регистра YMM на некоторую константу за наименьшее количество тактов? Я знаю различные способы, которыми я могу сделать это, используя инструкции SSE, а также инструкцию AVX VBROADCASTSD, но я не уверен, какой метод даст лучший результат.

Изменить: мне все еще нужно использовать полный регистр YMM после установки 64-битной части.

Спасибо за вашу помощь!

1 ответ

Решение

Если вам нужно только установить младшие 64 бита, а другие биты YMM не имеют значения, используйте VMOVQ,

Если вам нужно сохранить другие биты в регистре YMM, наиболее эффективным способом является использование VBLENDPD, Кроме того, вы можете очистить младшие 64 бита с помощью VANDPD, затем загрузить константу с VORPD,

AVX2 позволяет другим альтернативам сделать это: VPMASKMOVD или же VPBLENDD (но он еще не поддерживается ни одним процессором).

Другие вопросы по тегам