Распаковка данных

XMM-команды распаковки попарно объединяют элементы данных из обоих операндов в более длинные элементы выходного операнда. Этими командами можно пользоваться для увеличения числа значащих разрядов при вычислениях.

Мнемоника Описание
UNPCKHPS UNPaCK High Packed Single precision float point data Параллельное перемещение старших двойных слов из операнда-источника и операнда-приемника в операнд-приемник.Пример:
UNPCKLPS UNPaCK Low Packed Single precision float point data Параллельное перемещение младших двойных слов из операнда-источника и операнда-приемника в операнд-приемник. Пример:
SHUFPS UNPaCK Low Packed Single precision float point data Параллельная перестановка 32-разрядных упакованных операндов в соответствии с заданной маской. Команда имеет три операнда: входной, выходной и операнд-маску. Маска представляет собой непосредственное 8-разрядное значение, задающее порядок перестановки операндов. Каждая пара битов маски определяет номер упакованного 32-разрядного операнда в приемнике или источнике, который должен помещаться в операнд-приемник. При этом порядок размещения 32-разрядных операндов таков: младшие 4 бита маски указывают номера двух упакованных чисел приемника, которые становятся младшими упакованными значениями результата, а старшие 4 бита — номера упакованных чисел источника, которые становятся старшими упакованными значениями результата. Пример: