x86 Instruction Set Reference
HSUBPD
Packed Double-FP Horizontal Subtract
Opcode | Mnemonic | Description |
---|---|---|
66 0F 7D /r |
HSUBPD xmm1, xmm2/m128 |
Subtract horizontally packed DP FP numbers in xmm2/m128 from xmm1. |
Description |
---|
The HSUBPD instruction subtracts horizontally the packed DP FP numbers of both operands. Subtracts the double-precision floating-point value in the high quadword of the destination operand from the low quadword of the destination operand and stores the result in the low quadword of the destination operand. Subtracts the double-precision floating-point value in the high quadword of the source operand from the low quadword of the source operand and stores the result in the high quadword of the destination operand. |
Operation |
---|
xmm1[0..63] = xmm1[0..63] - xmm1[64..127]; xmm1[64..127] = xmm2/m128[0..63] - xmm2/m128[64..127]; |
Exceptions |
---|
When the source operand is a memory operand, the operand must be aligned on a 16-byte boundary or a general-protection exception (#GP) will be generated. |
Numeric Exceptions |
---|
Overflow, Underflow, Invalid, Precision, Denormal. |
Protected Mode Exceptions | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Real-Address Mode Exceptions | ||||||||
---|---|---|---|---|---|---|---|---|
|
Virtual-8086 Mode Exceptions | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Instruction | Latency | Throughput | Execution Unit |
---|---|---|---|
CPUID | 0F3n | 0F3n | 0F3n |
HSUBPD | 13 | 4 | FP_ADD FP_MISC |