2015-01-03 9 views
0

Описание: Значения с плавающей запятой двойной точности из второго операнда источника (третий операнд) условно объединяются со значениями из первого операнда источника (второго операнда) и записываются в операнд-получатель (первый операнд) , Непосредственные биты [3: 0] определяют, копируется ли соответствующее значение с плавающей запятой двойной точности в месте назначения из второго источника или первого источника. Если бит в маске, соответствующий слову, равен «1», то копируется значение с плавающей запятой двойной точности во втором операнде источника, иначе копируется значение в первом операнде источника.x64 с плавающей запятой

Что бит в 8-битовом непосредственном значении - это вопрос, который имеет значение? Все остальные бит имеют значение вообще?

ответ

2

Как указано в вашей цитате, соответствующие биты [3:0], то есть низкие 4 бита. Каждая из этих операций управления для соответствующее слово. Поскольку у вас есть 4 слова (поплавки) в регистре SSE, у вас есть 4 контрольных бита. Верхние 4 бита игнорируются. Обратите внимание, что в разделе operation есть псевдокод, который четко описывает операцию erm:

BLENDPS (128-bit Legacy SSE version) 
IF (IMM8[0] = 0) THEN DEST[31:0] <- DEST[31:0] 
     ELSE DEST [31:0] <- SRC[31:0] FI 
IF (IMM8[1] = 0) THEN DEST[63:32] <- DEST[63:32] 
     ELSE DEST [63:32] <- SRC[63:32] FI 
IF (IMM8[2] = 0) THEN DEST[95:64] <- DEST[95:64] 
     ELSE DEST [95:64] <- SRC[95:64] FI 
IF (IMM8[3] = 0) THEN DEST[127:96] <- DEST[127:96] 
     ELSE DEST [127:96] <- SRC[127:96] FI 

Ну, это единственная точность BLENDPS. Вы упомянули двойную точность с 4 битами, поэтому это должно означать BLENDPD. С регистрами SSE, которые используют только 2 бита, так как вы можете поместить только 2 удвоения в 128 бит. Версия AVX действительно использует 4 бита. Логика такая же, как и выше.

Смежные вопросы