SSE2指令集大全_Rex's Lab

来源:百度文库 编辑:神马文学网 时间:2024/05/06 13:06:24
SSE2指令集大全2009年05月11日 星期一 12:58

来源链接:http://hi.baidu.com/jingrensoft/blog/item/a379490813e280910b7b8205.html

双精度浮点数据指令

数据移动指令
MOVAPD
Move two aligned packed double-precision floating-point values between XMM registers or between and XMM register and memory
MOVUPD
Move two unaligned packed double-precision floating-point values between XMM registers or between and XMM register and memory
MOVHPD
Move high packed double-precision floating-point value to an from the high quadword of an XMM register and memory
MOVLPD
Move low packed single-precision floating-point value to an from the low quadword of an XMM register and memory
MOVMSKPD
Extract sign mask from two packed double-precision floating-point values
MOVSD
Move scalar double-precision floating-point value between XMM regis-ters or between an XMM register and memory

算术指令
ADDPD
Add packed double-precision floating-point values
ADDSD
Add scalar double precision floating-point values
SUBPD
Subtract scalar double-precision floating-point values
SUBSD
Subtract scalar double-precision floating-point values
MULPD
Multiply packed double-precision floating-point values
MULSD
Multiply scalar double-precision floating-point values
DIVPD
Divide packed double-precision floating-point values
DIVSD
Divide scalar double-precision floating-point values
SQRTPD
Compute packed square roots of packed double-precision floating-point values
SQRTSD
Compute scalar square root of scalar double-precision floating-point values
MAXPD
Return maximum packed double-precision floating-point values
MAXSD
Return maximum scalar double-precision floating-point values
MINPD
Return minimum packed double-precision floating-point values
MINSD
Return minimum scalar double-precision floating-point values


逻辑指令
ANDPD
Perform bitwise logical AND of packed double-precision floating-point values
ANDNPD
Perform bitwise logical AND NOT of packed double-precision floating-point values
ORPD
Perform bitwise logical OR of packed double-precision floating-point values
XORPD
Perform bitwise logical XOR of packed double-precision floating-point values


比较指令
CMPPD
Compare packed double-precision floating-point values
CMPSD
Compare scalar double-precision floating-point values
COMISD
Perform ordered comparison of scalar double-precision floating-point values and set flags in EFLAGS register
UCOMISD
Perform unordered comparison of scalar double-precision floating-point values and set flags in EFLAGS register.


数据重组和解包指令
SHUFPD
Shuffles values in packed double-precision floating-point operands
UNPCKHPD
Unpacks and interleaves the high values from two packed double-precision floating-point operands
UNPCKLPD
Unpacks and interleaves the low values from two packed double-precision
floating-point operands
转换指令
CVTPD2PI
Convert packed double-precision floating-point values to packed double-word integers.
CVTTPD2PI
Convert with truncation packed double-precision floating-point values to packed doubleword integers
CVTPI2PD
Convert packed doubleword integers to packed double-precision floating-point values
CVTPD2DQ
Convert packed double-precision floating-point values to packed double-word integers
CVTTPD2DQ
Convert with truncation packed double-precision floating-point values to packed doubleword integers
CVTDQ2PD
Convert packed doubleword integers to packed double-precision floating-point values
CVTPS2PD
Convert packed single-precision floating-point values to packed double-precision floating-point values
CVTPD2PS
Convert packed double-precision floating-point values to packed single-precision floating-point values
CVTSS2SD
Convert scalar single-precision floating-point values to scalar double-precision floating-point values
CVTSD2SS
Convert scalar double-precision floating-point values to scalar single-precision floating-point values
CVTSD2SI
Convert scalar double-precision floating-point values to a doubleword integer
CVTTSD2SI
Convert with truncation scalar double-precision floating-point values to scalar doubleword integers
CVTSI2SD
Convert doubleword integer to scalar double-precision floating-point value


单精度浮点指令


执行单精度浮点操作数和整数操作数间的转换操作.这些指令是对SSE点精度浮点指令的加强.
CVTDQ2PS
Convert packed doubleword integers to packed single-precision floating-point values
CVTPS2DQ
Convert packed single-precision floating-point values to packed double-word integers
CVTTPS2DQ
Convert with truncation packed single-precision floating-point values to packed doubleword integers


SSE2 128位SIMD整数指令
执行基于存储于MMX寄存器及XMM寄存器中的打包的字,双字或四字数据的额外的操作.
MOVDQA
Move aligned double quadword.
MOVDQU
Move unaligned double quadword
MOVQ2DQ
Move quadword integer from MMX to XMM registers
MOVDQ2Q
Move quadword integer from XMM to MMX registers
PMULUDQ
Multiply packed unsigned doubleword integers
PADDQ
Add packed quadword integers
PSUBQ
Subtract packed quadword integers
PSHUFLW
Shuffle packed low words
PSHUFHW
Shuffle packed high words
PSHUFD
Shuffle packed doublewords
PSLLDQ
Shift double quadword left logical
PSRLDQ
Shift double quadword right logical
PUNPCKHQDQ
Unpack high quadwords
PUNPCKLQDQ
Unpack low quadwords


高速缓冲存储器控制和排序指令
CLFLUSH
Flushes and invalidates a memory operand and its associated cache line from all levels of the processor's cache hierarchy
LFENCE
Serializes load operations
MFENCE
Serializes load and store operations
PAUSE
Improves the performance of "spin-wait loops"
MASKMOVDQU
Non-temporal store of selected bytes from an XMM register into memory
MOVNTPD
Non-temporal store of two packed double-precision floating-point values from an XMM register into memory
MOVNTDQ
Non-temporal store of double quadword from an XMM register into memory
MOVNTI
Non-temporal store of a doubleword from a general-purpose register into memory