Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(4) - 数据传输指令
SSE Instruction Set
SSE指令集大致可以分为4个功能组:
- 组合的与标量的单精度浮点指令
- 数据传输指令
- 算术指令
- 逻辑指令
- 比较指令
- 混洗shuffle指令
- 转换指令
- 64位SIMD整型指令
- 状态管理指令
- 可缓存性控制指令,数据预取指令,以及访存排序指令
SSE Data Movement Instructions
SSE数据传输指令将单精度浮点数据在XMM寄存器与XMM寄存器/存储器之间互相传输。
指令 |
描述 |
MOVAPS |
格式:MOVAPS xmm1, xmm2/m128 将xmm2/m128中的128位组合的单精度浮点数传输到xmm1;m128的地址必须是16字节对齐的,否则产生#GP异常。 |
MOVUPS |
格式:MOVAPS xmm1, xmm2/m128 将xmm2/m128中的128位组合的单精度浮点数传输到xmm1;m128的地址无需是16字节对齐的 |
MOVSS |
格式:MOVSS xmm1, xmm2 将xmm2中的最低32位单精度浮点数据元素传输到xmm1的最低32位。目标寄存器xmm1中的其他比特位(第32~最高比特位)保持不变。
格式:MOVSS xmm1, m32 将m32中的32位单精度浮点数据元素传输到xmm1的最低32位。目标寄存器xmm1中的其他比特位(第32~最高比特位)全部置为0。 |
指令 |
描述 |
MOVLPS |
格式:MOVLPS xmm1, m64 将m64中的两个单精度浮点数据元素传输到xmm1的低位两个数据元素中。目标寄存器xmm1的高位两个数据元素保持不变。 |
MOVHPS |
格式:MOVHPS xmm1, m64 将m64中的两个单精度浮点数据元素传输到xmm1的高位两个数据元素中。目标寄存器xmm1的低位两个数据元素保持不变。 |
指令 |
描述 |
MOVLHPS |
格式:MOVLHPS xmm1, xmm2 将xmm2中的最低两个数据元素传输到xmm1的最高两个数据元素中 |
MOVHLPS |
格式:MOVHLPS xmm1, xmm2 将xmm2中的最高两个数据元素传输到xmm1的最低两个数据元素中 |
指令 |
描述 |
MOVMSKPS |
格式:MOVLHPS reg, xmm 将xmm中的四个数据元素的符号比特位传输到reg寄存器中的最低四个比特位中。目标寄存器reg的其它比特位都置0。这些符号位可以作为分支跳转的条件。
指令操作: DEST[0] <-- SRC[31];
Intel C/C++ Compiler Intrinsic Equivalent |