__m64_padd2uus
[Esta documentação destina-se apenas à visualização e está sujeita a alterações em versões posteriores. Os tópicos em branco estão incluídos como espaços reservados.]
Específicos do Microsoft
Emite o IPF padd2.uus (o formulário de saturação de 2 bytes, não assinado, assinado, assinado de adicionar paralelo) da instrução.
__m64 __m64_padd2uus(
__m64 a,
__m64 b
);
Parâmetros
[in]a
O primeiro campo de 64 bits que contém seções de 2 bytes a ser adicionado.[in]b
O segundo campo de 64 bits que contém seções de 2 bytes a ser adicionado.
Requirements
Intrínseco |
Arquitetura |
---|---|
__m64_padd1uus |
IPF |
Arquivo de cabeçalho <intrin.h>
Remarks
__m64_padd2uusadiciona cada seção de 2 bytes de um operando com a seção correspondente de 2 bytes do segundo e coloca o resultado na seção 2-byte correspondente do resultado. Os valores do primeiro operando são considerados não assinados e os valores do segundo operando são considerados assinado. Os valores resultantes são considerados não assinados.
Se o resultado da adição estourar 2 bytes, o valor esteja saturado e a seção de 16 bits é definida a 0xFFFF. Se o resultado de estouros de negativos os adição, os 16 bits é definido como zero.
Exemplo
// padd2uus.cpp
// processor: IPF
#include <stdio.h>
#include <intrin.h>
#pragma intrinsic(__m64_padd2uus)
int main()
{
__m64 m, n, result;
m.m64_i64 = 0x110022003300ff00;
n.m64_i64 = 0x01100220033000ff;
result = __m64_padd2uus(m, n);
printf_s("__m64_padd2uus(%#18I64x, %#18I64x) ==\n %#18I64x\n",
m, n, result);
// This operation is not commutative! The second parameter
// is signed, so 0xff00 will be interpreted as a negative
// integer (-256). When added to 0x00ff (256), the result is 0.
result = __m64_padd2uus(n, m);
printf_s("__m64_padd2uus(%#18I64x, %#18I64x) ==\n %#18I64x\n",
n, m, result);
}