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

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

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

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

1 Ответ

7 голосов
/ 03 марта 2012

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

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

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

...