VMOVW
Move Word
stableVMJITAOTinstruction
Encodings
| Opcode | Instruction | Op/En | 64-bit | Compat/Legacy | Description |
|---|---|---|---|---|---|
EVEX.128.66.MAP5.WIG 6E /r | VMOVW xmm1, reg/m16 | A | Valid | Valid | Copy word from reg/m16 to xmm1. OR AVX10.1 |
EVEX.128.66.MAP5.WIG 7E /r | VMOVW reg/m16, xmm1 | B | Valid | Valid | Copy word from xmm1 to reg/m16. OR AVX10.1 |
Operand encoding
Each mode is a value of the Op/En column above. It says which field of the encoded instruction carries each operand, in the order they are written, and whether the instruction reads it, writes it or both.
A
modrm.regescrituraModRM byte, reg field (bits 5-3)modrm.rmlecturaModRM byte, r/m field (bits 2-0); with the SIB byte and the displacement when the mod field asks for them
Tupla: Scalar
B
modrm.rmescrituraModRM byte, r/m field (bits 2-0); with the SIB byte and the displacement when the mod field asks for themmodrm.reglecturaModRM byte, reg field (bits 5-3)
Tupla: Scalar
Measured cost
Loading measurements from arch-data...
Description
This instruction either (a) copies one word element from an XMM register to a general-purpose register or memory location or (b) copies one word element from a general-purpose register or memory location to an XMM register. When writing a general-purpose register, the lower 16-bits of the register will contain the word value. The upper bits of the general-purpose register are written with zeros.
Operation
VMOVW dest, src (two operand load)
DEST.word[0] := SRC.word[0]
DEST[MAXVL:16] := 0
VMOVW dest, src (two operand store)
DEST.word[0] := SRC.word[0]
// upper bits of GPR DEST are zeroedIntel C/C++ compiler intrinsics
VMOVW short _mm_cvtsi128_si16 (__m128i a);
VMOVW __m128i _mm_cvtsi16_si128 (short a);SIMD Floating-Point Exceptions
None
Other Exceptions
EVEX-encoded instructions, see Table 2-59, "Type E9NF Class Exception Conditions."