Инструкция SSE для клонирования-расширения регистра XMM

Существует ли инструкция SSE (до версии 4.2), которая автоматически заполняет четыре регистра XMM значением четырех слов другого регистра XMM?

Пример: выполнение инструкции для слова ABCD заполнит четыре регистра XMM: AAAA, BBBB, CCCC и DDDD.


person user541686    schedule 15.03.2011    source источник


Ответы (1)


Я не верю, что есть одна операция, но четыре pshufd операции (по одной для каждого пункта назначения) сделают эту работу; см. http://lists.apple.com/archives/perfoptimization-dev/2007/Feb/msg00002.html (первый пример кода после инструкции movd). Существуют аналогичные варианты pshufd для репликации других частей регистра. Я полагаю, что константы, которые следует использовать в инструкции, — это 0, 85, 170 и 255 для четырех частей регистра.

person Jeremiah Willcock    schedule 15.03.2011