Эффективно установить для младших 64 битов регистра YMM постоянную
Как я могу установить младшие 64 бита регистра YMM на некоторую константу за наименьшее количество тактов? Я знаю различные способы, которыми я могу сделать это, используя инструкции SSE, а также инструкцию AVX VBROADCASTSD
, но я не уверен, какой метод даст лучший результат.
Изменить: мне все еще нужно использовать полный регистр YMM после установки 64-битной части.
Спасибо за вашу помощь!
1 ответ
Если вам нужно только установить младшие 64 бита, а другие биты YMM не имеют значения, используйте VMOVQ
,
Если вам нужно сохранить другие биты в регистре YMM, наиболее эффективным способом является использование VBLENDPD
, Кроме того, вы можете очистить младшие 64 бита с помощью VANDPD
, затем загрузить константу с VORPD
,
AVX2 позволяет другим альтернативам сделать это: VPMASKMOVD
или же VPBLENDD
(но он еще не поддерживается ни одним процессором).