- ↑ IizHandlers
- assemble EVEX-encodable AVX-512 machine instructions.
- See also
- IiHandlers,
[IntelAVX512].
Available broadcasting SIMD instructions
V(P)BROADCAST | 8bit |
16bit |
32bit |
64bit |
128bit |
int tuple1 |
E,VVPBROADCASTB |
E,VVPBROADCASTW |
E,VVPBROADCASTD |
E,VVPBROADCASTQ |
VVBROADCASTI128 |
int tuple2 | | |
EVBROADCASTI32X2 |
EVBROADCASTI64X2 |
|
int tuple4 | | |
E,MVBROADCASTI32X4 |
E,MVBROADCASTI64X4 |
|
int tuple8 | | |
EVBROADCASTI32X8 |
| |
float tuple1 | | |
E,M,VVBROADCASTSS |
E,M,VVBROADCASTSD |
VVBROADCASTF128 |
---|
float tuple2 | | |
EVBROADCASTF32X2 |
EVBROADCASTF64X2 |
|
float tuple4 | | |
E,MVBROADCASTF32X4 |
E,MVBROADCASTF64X4 |
|
float tuple8 | | |
EVBROADCASTF32X8 |
| |
Available packed SIMD type conversions
((e)Vex)CVT(Trunc) Packed |
2PI int32sig 2DQ int32sig |
2UDQ int32uns | 2QQ int64sig |
2UQQ int64uns | 2PH float16 |
2PS float32 | 2PD float64 |
PI int32sig DQ int32sig | NOP |
| | | |
CVTPI2PS
CVTDQ2PS
E,VVCVTDQ2PS |
CVTPI2PD
CVTDQ2PD
E,M,VVCVTDQ2PD
|
UDQ int32uns | | NOP | | | |
EVCVTUDQ2PS |
E,MVCVTUDQ2PD |
QQ int64sig | | | NOP | | |
EVCVTQQ2PS |
EVCVTQQ2PD |
UQQ int64uns | | | |
NOP | |
EVCVTUQQ2PS |
EVCVTUQQ2PD |
PH float16 |
| | | | NOP |
E,VVCVTPH2PS |
|
PS float32 |
CVTPS2PI
CVTPS2DQ
E,VVCVTPS2DQ
CVTTPS2PI
CVTTPS2DQ
E,VVCVTTPS2DQ |
EVCVTPS2UDQ
EVCVTTPS2UDQ |
EVCVTPS2QQ
EVCVTTPS2QQ |
EVCVTPS2UQQ
EVCVTTPS2UQQ |
E,VVCVTPS2PH |
NOP | CVTPS2PD
E,M,VVCVTPS2PD |
PD float64 |
CVTPD2PI
CVTPD2DQ
E,VVCVTPD2DQ
CVTTPD2PI
CVTTPD2DQ
E,VVCVTTPD2DQ |
EVCVTPD2UDQ
EVCVTTPD2UDQ |
EVCVTPD2QQ
EVCVTTPD2QQ |
EVCVTPD2UQQ
EVCVTTPD2UQQ | |
CVTPD2PS
E,M,VVCVTPD2PS |
NOP |
iiz PROGRAM FORMAT=COFF,MODEL=FLAT,WIDTH=32,MAXPASSES=64
INCLUDEHEAD "euroasm.htm" ; Interface (structures, symbols and macros) of other modules.
INCLUDEHEAD \ ; Include headers of another modules used in this module.
ea.htm, \
eaopt.htm, \
exp.htm, \
ii.htm, \
msg.htm, \
pgm.htm, \
pgmopt.htm, \
sss.htm, \
stm.htm, \
sym.htm, \
syswin.htm, \
;;
iiz HEAD ; Start of module interface.
- ↑ %IizList
- enumerates machine instructions
of this family which €ASM can assemble.
Each instruction declared in %IizList
requires the corresponding
handler in this file.
- See also
- DictLookupIi
%IizList %SET \
VADDPD, \
VADDPS, \
VADDSS, \
VADDSD, \
VMULSD, \
VMULSS, \
VMULPS, \
VMULPD, \
VSUBPS, \
VSUBPD, \
VSUBSS, \
VSUBSD, \
VDIVPS, \
VDIVPD, \
VDIVSS, \
VDIVSD, \
VMINPS, \
VMINPD, \
VMAXPD, \
VMINSS, \
VMAXSS, \
VMINSD, \
VMAXSD, \
VMAXPS, \
VCVTPS2PD, \
VCVTPD2PS, \
VCVTSS2SD, \
VCVTSD2SS, \
VCVTDQ2PS, \
VCVTPS2DQ, \
VCVTTPS2DQ, \
VCVTQQ2PS, \
VCVTSI2SS, \
VCVTSI2SD, \
VCVTSS2SI, \
VCVTSD2SI, \
VCVTTSS2SI, \
VCVTTSD2SI, \
VCVTSS2USI, \
VCVTSD2USI, \
VCVTTSS2USI, \
VCVTTSD2USI, \
VCVTUSI2SS, \
VCVTUSI2SD, \
VCVTUDQ2PS, \
VCVTUDQ2PD, \
VCVTTPS2UDQ, \
VCVTTPD2UDQ, \
VCVTTPS2UQQ, \
VCVTTPD2UQQ, \
VCVTPS2UDQ, \
VCVTPD2UDQ, \
VCVTPS2UQQ, \
VCVTTPS2QQ, \
VCVTPS2QQ, \
VCVTTPD2QQ, \
VCVTPD2UQQ, \
VCVTPD2QQ, \
VCVTTPD2DQ, \
VCVTPD2DQ, \
VCVTDQ2PD, \
VCVTQQ2PD, \
VCVTUQQ2PS, \
VCVTUQQ2PD, \
VCVTPH2PS, \
VCVTPS2PH, \
VBROADCASTSS, \
VBROADCASTSD, \
VBROADCASTF128, \
VBROADCASTF32X2, \
VBROADCASTF32X4, \
VBROADCASTF32X8, \
VBROADCASTF64X2, \
VBROADCASTF64X4, \
VBROADCASTI32X4, \
VBROADCASTI64X4, \
VBROADCASTI32X2, \
VBROADCASTI128, \
VBROADCASTI64X2, \
VBROADCASTI32X8, \
VPBROADCASTB, \
VPBROADCASTW, \
VPBROADCASTD, \
VPBROADCASTQ, \
VALIGND, \
VALIGNQ, \
VPBLENDMB, \
VPBLENDMW, \
VPBLENDMD, \
VPBLENDMQ, \
VBLENDMPS, \
VBLENDMPD, \
VCMPSS, \
VCMPSD, \
VCMPPS, \
VCMPPD, \
VCMPEQSS, \
VCMPLTSS, \
VCMPLESS, \
VCMPUNORDSS, \
VCMPNEQSS, \
VCMPNLTSS, \
VCMPNLESS, \
VCMPORDSS, \
VCMPNGESS, \
VCMPNGTSS, \
VCMPFALSESS, \
VCMPGESS, \
VCMPGTSS, \
VCMPTRUESS, \
VCMPEQ_OQSS, \
VCMPLT_OSSS, \
VCMPLE_OSSS, \
VCMPUNORD_QSS, \
VCMPNEQ_UQSS, \
VCMPNLT_USSS, \
VCMPNLE_USSS, \
VCMPORD_QSS, \
VCMPEQ_UQSS, \
VCMPNGE_USSS, \
VCMPNGT_USSS, \
VCMPFALSE_OQSS, \
VCMPNEQ_OQSS, \
VCMPGE_OSSS, \
VCMPGT_OSSS, \
VCMPTRUE_UQSS, \
VCMPEQ_OSSS, \
VCMPLT_OQSS, \
VCMPLE_OQSS, \
VCMPUNORD_SSS, \
VCMPNEQ_USSS, \
VCMPNLT_UQSS, \
VCMPNLE_UQSS, \
VCMPORD_SSS, \
VCMPEQ_USSS, \
VCMPNGE_UQSS, \
VCMPNGT_UQSS, \
VCMPFALSE_OSSS, \
VCMPNEQ_OSSS, \
VCMPGE_OQSS, \
VCMPGT_OQSS, \
VCMPTRUE_USSS, \
VCMPEQSD, \
VCMPLTSD, \
VCMPLESD, \
VCMPUNORDSD, \
VCMPNEQSD, \
VCMPNLTSD, \
VCMPNLESD, \
VCMPORDSD, \
VCMPNGESD, \
VCMPNGTSD, \
VCMPFALSESD, \
VCMPGESD, \
VCMPGTSD, \
VCMPTRUESD, \
VCMPEQ_OQSD, \
VCMPLT_OSSD, \
VCMPLE_OSSD, \
VCMPUNORD_QSD, \
VCMPNEQ_UQSD, \
VCMPNLT_USSD, \
VCMPNLE_USSD, \
VCMPORD_QSD, \
VCMPEQ_UQSD, \
VCMPNGE_USSD, \
VCMPNGT_USSD, \
VCMPFALSE_OQSD, \
VCMPNEQ_OQSD, \
VCMPGE_OSSD, \
VCMPGT_OSSD, \
VCMPTRUE_UQSD, \
VCMPEQ_OSSD, \
VCMPLT_OQSD, \
VCMPLE_OQSD, \
VCMPUNORD_SSD, \
VCMPNEQ_USSD, \
VCMPNLT_UQSD, \
VCMPNLE_UQSD, \
VCMPORD_SSD, \
VCMPEQ_USSD, \
VCMPNGE_UQSD, \
VCMPNGT_UQSD, \
VCMPFALSE_OSSD, \
VCMPNEQ_OSSD, \
VCMPGE_OQSD, \
VCMPGT_OQSD, \
VCMPTRUE_USSD, \
VCMPEQPS, \
VCMPLTPS, \
VCMPLEPS, \
VCMPUNORDPS, \
VCMPNEQPS, \
VCMPNLTPS, \
VCMPNLEPS, \
VCMPORDPS, \
VCMPNGEPS, \
VCMPNGTPS, \
VCMPFALSEPS, \
VCMPGEPS, \
VCMPGTPS, \
VCMPTRUEPS, \
VCMPEQ_OQPS, \
VCMPLT_OSPS, \
VCMPLE_OSPS, \
VCMPUNORD_QPS, \
VCMPNEQ_UQPS, \
VCMPNLT_USPS, \
VCMPNLE_USPS, \
VCMPORD_QPS, \
VCMPEQ_UQPS, \
VCMPNGE_USPS, \
VCMPNGT_USPS, \
VCMPFALSE_OQPS, \
VCMPNEQ_OQPS, \
VCMPGE_OSPS, \
VCMPGT_OSPS, \
VCMPTRUE_UQPS, \
VCMPEQ_OSPS, \
VCMPLT_OQPS, \
VCMPLE_OQPS, \
VCMPUNORD_SPS, \
VCMPNEQ_USPS, \
VCMPNLT_UQPS, \
VCMPNLE_UQPS, \
VCMPORD_SPS, \
VCMPEQ_USPS, \
VCMPNGE_UQPS, \
VCMPNGT_UQPS, \
VCMPFALSE_OSPS, \
VCMPNEQ_OSPS, \
VCMPGE_OQPS, \
VCMPGT_OQPS, \
VCMPTRUE_USPS, \
VCMPEQPD, \
VCMPLTPD, \
VCMPLEPD, \
VCMPUNORDPD, \
VCMPNEQPD, \
VCMPNLTPD, \
VCMPNLEPD, \
VCMPORDPD, \
VCMPNGEPD, \
VCMPNGTPD, \
VCMPFALSEPD, \
VCMPGEPD, \
VCMPGTPD, \
VCMPTRUEPD, \
VCMPEQ_OQPD, \
VCMPLT_OSPD, \
VCMPLE_OSPD, \
VCMPUNORD_QPD, \
VCMPNEQ_UQPD, \
VCMPNLT_USPD, \
VCMPNLE_USPD, \
VCMPORD_QPD, \
VCMPEQ_UQPD, \
VCMPNGE_USPD, \
VCMPNGT_USPD, \
VCMPFALSE_OQPD, \
VCMPNEQ_OQPD, \
VCMPGE_OSPD, \
VCMPGT_OSPD, \
VCMPTRUE_UQPD, \
VCMPEQ_OSPD, \
VCMPLT_OQPD, \
VCMPLE_OQPD, \
VCMPUNORD_SPD, \
VCMPNEQ_USPD, \
VCMPNLT_UQPD, \
VCMPNLE_UQPD, \
VCMPORD_SPD, \
VCMPEQ_USPD, \
VCMPNGE_UQPD, \
VCMPNGT_UQPD, \
VCMPFALSE_OSPD, \
VCMPNEQ_OSPD, \
VCMPGE_OQPD, \
VCMPGT_OQPD, \
VCMPTRUE_USPD, \
VUCOMISS, \
VUCOMISD, \
VCOMISS, \
VCOMISD, \
VCOMPRESSPS, \
VCOMPRESSPD, \
VPCOMPRESSD, \
VPCOMPRESSQ, \
VMPSADBW, \
VDBPSADBW, \
VDPPS, \
VDPPD, \
VEXPANDPS, \
VEXPANDPD, \
VPEXPANDD, \
VPEXPANDQ, \
VEXTRACTF32X4, \
VEXTRACTF32X8, \
VEXTRACTF64X2, \
VEXTRACTF64X4, \
VEXTRACTF128, \
VEXTRACTPS, \
VEXTRACTI32X4, \
VEXTRACTI32X8, \
VEXTRACTI64X2, \
VEXTRACTI64X4, \
VEXTRACTI128, \
VPEXTRB, \
VPEXTRW, \
VPEXTRD, \
VPEXTRQ, \
VINSERTF32X4, \
VINSERTF32X8, \
VINSERTF64X2, \
VINSERTF64X4, \
VINSERTF128, \
VINSERTI32X4, \
VINSERTI32X8, \
VINSERTI64X2, \
VINSERTI64X4, \
VINSERTI128, \
VINSERTPS, \
VPINSRB, \
VPINSRW, \
VPINSRD, \
VPINSRQ, \
VFIXUPIMMSS, \
VFIXUPIMMSD, \
VFIXUPIMMPS, \
VFIXUPIMMPD, \
VFPCLASSSS, \
VFPCLASSSD, \
VFPCLASSPS, \
VFPCLASSPD, \
VPGATHERDD, \
VPGATHERQD, \
VPGATHERQQ, \
VPGATHERDQ, \
VGATHERDPS, \
VGATHERDPD, \
VGATHERQPS, \
VGATHERQPD, \
VGATHERPF0DPS, \
VGATHERPF0HINTDPS, \
VGATHERPF0QPS, \
VGATHERPF0DPD, \
VGATHERPF0HINTDPD, \
VGATHERPF0QPD, \
VGATHERPF1DPS, \
VGATHERPF1QPS, \
VGATHERPF1DPD, \
VGATHERPF1QPD, \
VPSCATTERDD, \
VPSCATTERDQ, \
VPSCATTERQD, \
VPSCATTERQQ, \
VSCATTERDPS, \
VSCATTERDPD, \
VSCATTERQPS, \
VSCATTERQPD, \
VSCATTERPF0DPS, \
VSCATTERPF0HINTDPS, \
VSCATTERPF0QPS, \
VSCATTERPF0DPD, \
VSCATTERPF0HINTDPD, \
VSCATTERPF0QPD, \
VSCATTERPF1DPS, \
VSCATTERPF1QPS, \
VSCATTERPF1DPD, \
VSCATTERPF1QPD, \
VGETEXPSS, \
VGETEXPSD, \
VGETEXPPS, \
VGETEXPPD, \
VGETMANTSS, \
VGETMANTSD, \
VGETMANTPS, \
VGETMANTPD, \
VMOVAPS, \
VMOVAPD, \
VMOVD, \
VMOVQ, \
VMOVSS, \
VMOVSD, \
VMOVUPS, \
VMOVUPD, \
VMOVLPS, \
VMOVHPS, \
VMOVLPD, \
VMOVHPD, \
VMOVLHPS, \
VMOVHLPS, \
VMOVSLDUP, \
VMOVSHDUP, \
VMOVDQA, \
VMOVQQA, \
VMOVDQA32, \
VMOVDQA64, \
VMOVDQU, \
VMOVQQU, \
VMOVDQU8, \
VMOVDQU16, \
VMOVDQU32, \
VMOVDQU64, \
VMOVMSKPS, \
VMOVMSKPD, \
VMOVNTPS, \
VMOVNTPD, \
VMOVNTDQ, \
VMOVNTQQ, \
VMOVNTDQA, \
VMOVDDUP, \
VADDSUBPS, \
VADDSUBPD, \
VPMINUB, \
VPMINUW, \
VPMINUD, \
VPMINUQ, \
VPMINSB, \
VPMINSW, \
VPMINSD, \
VPMINSQ, \
VPMAXSB, \
VPMAXSW, \
VPMAXSD, \
VPMAXSQ, \
VPMAXUB, \
VPMAXUW, \
VPMAXUD, \
VPMAXUQ, \
VPADDB, \
VPADDW, \
VPADDD, \
VPADDQ, \
VPADDSB, \
VPADDSW, \
VPSUBB, \
VPSUBW, \
VPSUBD, \
VPSUBQ, \
VPSUBSB, \
VPSUBSW, \
VPADDUSB, \
VPADDUSW, \
VPSUBUSB, \
VPSUBUSW, \
VHADDPS, \
VHADDPD, \
VHSUBPS, \
VHSUBPD, \
VPSRLW, \
VPSRLD, \
VPSRLQ, \
VPSRLDQ, \
VPSRAW, \
VPSRAD, \
VPSRAQ, \
VPSLLW, \
VPSLLD, \
VPSLLQ, \
VPSLLDQ, \
VPSRLVW, \
VPSRLVD, \
VPSRLVQ, \
VPSRAVW, \
VPSRAVD, \
VPSRAVQ, \
VPSLLVW, \
VPSLLVD, \
VPSLLVQ, \
VPABSB, \
VPABSW, \
VPABSD, \
VPABSQ, \
VPMULUDQ, \
VPMADDWD, \
VPSADBW, \
VSHUFPS, \
VSHUFPD, \
VSHUFF32X4, \
VSHUFF64X2, \
VSHUFI32X4, \
VSHUFI64X2, \
VPSHUFB, \
VPSHUFLW, \
VPSHUFHW, \
VPSHUFD, \
VFMADD233PS, \
VMOVNRAPS, \
VMOVNRAPD, \
VMOVNRNGOAPS, \
VMOVNRNGOAPD, \
;
ENDHEAD iiz ; End of module interface.
- ↑ IizGroupVADDPS
- IizGroupVADDPS is a common handler for VEX/MVEX/EVEX encodable instructions in following formats:
- Intel reference
xmm1,xmm2,xmm3/m128
| VEX.NDS.128.0F.WIG opcode /r
|
---|
ymm1, ymm2,ymm3/m256
| VEX.NDS.256.0F.WIG opcode /r
|
---|
xmm1 {k1}{z}, xmm2,xmm3/m128/m32bcst
| EVEX.NDS.128.0F.W0 opcode /r
|
---|
ymm1 {k1}{z}, ymm2,ymm3/m256/m32bcst
| EVEX.NDS.256.0F.W0 opcode /r
|
---|
zmm1 {k1}{z}, zmm2,zmm3/m512/m32bcst {er}
| EVEX.NDS.512.0F.W0 opcode /r
|
---|
zmm1 {k1}, zmm2,zmm3/m512/m32bcst {er}
| MVEX.NDS.512.0F.W0 opcode /r
|
---|
- Input
- AL is opcode byte.
EDX has operand types as set by IiAssemble.
EDI is pointer to II structure with parsed operands.
- Called by
-
- Tested by
- t5212
IizGroupVADDPS PROC
IiAllowModifier MASK,EH
IiAllowBroadcasting DWORD
IiEmitOpcode EAX
IiDisp8EVEX FV32
IiAllowRounding
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.mem:
.xmm.xmm.xmm:
IiEmitPrefix VEX.NDS.128.0F.WIG, EVEX.NDS.128.0F.W0
RET
.ymm.ymm.mem:
.ymm.ymm.ymm:
IiEmitPrefix VEX.NDS.256.0F.WIG, EVEX.NDS.256.0F.W0
RET
.zmm.zmm.mem:
IiDisp8MVEX Us32
.zmm.zmm.zmm:
IiEmitPrefix EVEX.NDS.512.0F.W0
CMP AL,0x5C ; VDIVPS does not have MVEX form.
JA .90:
IiEmitPrefix MVEX.NDS.512.0F.W0
.90:RET
ENDP IizGroupVADDPS
- ↑ VADDPS
- Add Packed Single-FP Values
- Category
- sse1,simdfp,arith
- Operands
- Vps,Wps
- Opcode
- 0x0F58 /r
- CPU
- P3+
- Tested by
- t5212
IizVADDPS:: PROC
MOV AL,0x58
JMP IizGroupVADDPS
ENDP IizVADDPS::
- ↑ VMULPS
- Multiply Packed Single-FP Values
- Category
- sse1,simdfp,arith
- Operands
- Vps,Wps
- Opcode
- 0x0F59 /r
- CPU
- P3+
- Tested by
- t5212
IizVMULPS:: PROC
MOV AL,0x59
JMP IizGroupVADDPS
ENDP IizVMULPS::
- ↑ VSUBPS
- Subtract Packed Single-FP Values
- Category
- sse1,simdfp,arith
- Operands
- Vps,Wps
- Opcode
- 0x0F5C /r
- CPU
- P3+
- Tested by
- t5212
IizVSUBPS:: PROC
MOV AL,0x5C
JMP IizGroupVADDPS
ENDP IizVSUBPS::
- ↑ VDIVPS
- Divide Packed Single-FP Values
- Category
- sse1,simdfp,arith
- Operands
- Vps,Wps
- Opcode
- 0x0F5E /r
- CPU
- P3+
- Tested by
- t5212
IizVDIVPS:: PROC
MOV AL,0x5E
JMP IizGroupVADDPS
ENDP IizVDIVPS::
- ↑ IizGroupVADDPD
- IizGroupVADDPD is a common handler for VEX/MVEX/EVEX encodable instructions in following formats:
- Intel reference
xmm1,xmm2,xmm3/m128
| VEX.NDS.128.66.0F.WIG opcode /r
|
---|
ymm1, ymm2,ymm3/m256
| VEX.NDS.256.66.0F.WIG opcode /r
|
---|
xmm1 {k1}{z}, xmm2,xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F.W1 opcode /r
|
---|
ymm1 {k1}{z}, ymm2,ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F.W1 opcode /r
|
---|
zmm1 {k1}{z}, zmm2,zmm3/m512/m32bcst {er}
| EVEX.NDS.512.66.0F.W1 opcode /r
|
---|
zmm1 {k1}, zmm2,zmm3/m512/m32bcst {er}
| MVEX.NDS.512.66.0F.W1 opcode /r
|
---|
- Input
- AL is opcode byte.
EDX has operand types as set by IiAssemble.
EDI is pointer to II structure with parsed operands.
- Called by
-
- Tested by
- t5212
IizGroupVADDPD:: PROC
IiAllowModifier MASK,EH
IiAllowBroadcasting QWORD
IiAllowRounding
IiEmitOpcode EAX
IiEncoding DATA=QWORD
IiDisp8EVEX FV64
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.mem:
.xmm.xmm.xmm:
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.W1
RET
.ymm.ymm.mem:
.ymm.ymm.ymm:
IiEmitPrefix VEX.NDS.256.66.0F.WIG, EVEX.NDS.256.66.0F.W1
RET
.zmm.zmm.mem:
IiDisp8MVEX Ub64
.zmm.zmm.zmm:
IiEmitPrefix EVEX.NDS.512.66.0F.W1
CMP AL,0x5C ; VDIVPD does not have MVEX form.
JA .90:
IiEmitPrefix MVEX.NDS.512.66.0F.W1
.90:RET
ENDPROC IizGroupVADDPD
- ↑ VADDPD
- Add Packed Double-FP Values
- Category
- sse2,simdfp,arith
- Operands
- Vpd,Wpd
- Opcode
- 0x660F58 /r
- CPU
- P4+
- Tested by
- t5212
IizVADDPD:: PROC
MOV AL,0x58
JMP IizGroupVADDPD
ENDP IizVADDPD::
- ↑ VMULPD
- Multiply Packed Double-FP Values
- Category
- sse2,pcksclr,arith
- Operands
- Vpd,Wpd
- Opcode
- 0x660F59 /r
- CPU
- P4+
- Tested by
- t5212
IizVMULPD:: PROC
MOV AL,0x59
JMP IizGroupVADDPD
ENDP IizVMULPD::
- ↑ VSUBPD
- Subtract Packed Double-FP Values
- Category
- sse2,pcksclr,arith
- Operands
- Vpd,Wpd
- Opcode
- 0x660F5C /r
- CPU
- P4+
- Tested by
- t5212
IizVSUBPD:: PROC
MOV AL,0x5C
JMP IizGroupVADDPD
ENDP IizVSUBPD::
- ↑ VDIVPD
- Divide Packed Double-FP Values
- Category
- sse2,pcksclr,arith
- Operands
- Vpd,Wpd
- Opcode
- 0x660F5E /r
- CPU
- P4+
- Tested by
- t5212
IizVDIVPD:: PROC
MOV AL,0x5E
JMP IizGroupVADDPD
ENDP IizVDIVPD::
- ↑ IizGroupVADDSS
- IizGroupVADDSS is a common handler for VEX/MVEX/EVEX encodable instructions in following formats:
- Intel reference
xmm1,xmm2,xmm3/m32
| VEX.NDS.128.F3.0F.WIG opcode /r
|
---|
xmm1 {k1}{z}, xmm2,xmm3/m32{er}
| EVEX.NDS.LIG.F3.0F.W0 opcode /r
|
---|
- Input
- AL is opcode byte.
EDX has operand types as set by IiAssemble.
EDI is pointer to II structure with parsed operands.
- Called by
-
- Tested by
- t5210
IizGroupVADDSS:: PROC
IiAllowModifier MASK
IiAllowRounding Register=xmm
IiEmitOpcode EAX
IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiEmitPrefix VEX.NDS.128.F3.0F.WIG, EVEX.NDS.LIG.F3.0F.W0
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
RET
ENDPROC IizGroupVADDSS
- ↑ VADDSS
- Add Scalar Single-FP Values
- Category
- sse1,simdfp,arith
- Operands
- Vss,Wss
- Opcode
- 0xF30F58 /r
- CPU
- P3+
- Tested by
- t5210
IizVADDSS:: PROC
MOV AL,0x58
JMP IizGroupVADDSS
ENDP IizVADDSS::
- ↑ VMULSS
- Multiply Scalar Single-FP Value
- Category
- sse1,simdfp,arith
- Operands
- Vss,Wss
- Opcode
- 0xF30F59 /r
- CPU
- P3+
- Tested by
- t5210
IizVMULSS:: PROC
MOV AL,0x59
JMP IizGroupVADDSS
ENDP IizVMULSS::
- ↑ VSUBSS
- Subtract Scalar Single-FP Values
- Category
- sse1,simdfp,arith
- Operands
- Vss,Wss
- Opcode
- 0xF30F5C /r
- CPU
- P3+
- Tested by
- t5210
IizVSUBSS:: PROC
MOV AL,0x5C
JMP IizGroupVADDSS
ENDP IizVSUBSS::
- ↑ VDIVSS
- Divide Scalar Single-FP Values
- Category
- sse1,simdfp,arith
- Operands
- Vss,Wss
- Opcode
- 0xF30F5E /r
- CPU
- P3+
- Tested by
- t5210
IizVDIVSS:: PROC
MOV AL,0x5E
JMP IizGroupVADDSS
ENDP IizVDIVSS::
- ↑ IizGroupVADDSD
- IizGroupVADDSD is a common handler for VEX/MVEX/EVEX encodable instructions in following formats:
- Intel reference
xmm1,xmm2,xmm3/m64
| VEX.NDS.128.F2.0F.WIG opcode /r
|
---|
xmm1 {k1}{z}, xmm2,xmm3/m64{er}
| EVEX.NDS.LIG.F2.0F.W1 opcode /r
|
---|
- Input
- AL is opcode byte.
EDX has operand types as set by IiAssemble.
EDI is pointer to II structure with parsed operands.
- Called by
-
- Tested by
- t5210
IizGroupVADDSD:: PROC
IiAllowModifier MASK
IiAllowRounding Register=xmm
IiEmitOpcode EAX
IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiEmitPrefix VEX.NDS.128.F2.0F.WIG, EVEX.NDS.LIG.F2.0F.W1
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
RET
ENDPROC IizGroupVADDSD
- ↑ VADDSD
- Add Scalar Double-FP Values
- Category
- sse2,pcksclr,arith
- Operands
- Vsd,Wsd
- Opcode
- 0xF20F58 /r
- CPU
- P4+
- Tested by
- t5210
IizVADDSD:: PROC
MOV AL,0x58
JMP IizGroupVADDSD
ENDP IizVADDSD::
- ↑ VMULSD
- Multiply Scalar Double-FP Values
- Category
- sse2,pcksclr,arith
- Operands
- Vsd,Wsd
- Opcode
- 0xF20F59 /r
- CPU
- P4+
- Tested by
- t5210
IizVMULSD:: PROC
MOV AL,0x59
JMP IizGroupVADDSD
ENDP IizVMULSD::
- ↑ VSUBSD
- Subtract Scalar Double-FP Values
- Category
- sse2,pcksclr,arith
- Operands
- Vsd,Wsd
- Opcode
- 0xF20F5C /r
- CPU
- P4+
- Tested by
- t5210
IizVSUBSD:: PROC
MOV AL,0x5C
JMP IizGroupVADDSD
ENDP IizVSUBSD::
- ↑ VDIVSD
- Divide Scalar Double-FP Values
- Category
- sse2,pcksclr,arith
- Operands
- Vsd,Wsd
- Opcode
- 0xF20F5E /r
- CPU
- P4+
- Tested by
- t5210
IizVDIVSD:: PROC
MOV AL,0x5E
JMP IizGroupVADDSD
ENDP IizVDIVSD::
- ↑ IizGroupVMINPS
- IizGroupVMINPS is a common handler for instructions in following formats:
- Intel reference
xmm1,xmm2, xmm3/m128
| VEX.NDS.128.0F.WIG opcode /r
|
---|
ymm1, ymm2, ymm3/m256
| VEX.NDS.256.0F.WIG opcode /r
|
---|
xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.0F.W0 opcode /r
|
---|
ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.0F.W0 opcode /r
|
---|
zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst {sae}
| EVEX.NDS.512.0F.W0 opcode /r
|
---|
- Input
- AL is opcode byte.
EDX has operand types as set by IiAssemble.
EDI is pointer to II structure with parsed operands.
- Called by
-
- Tested by
- t5216
IizGroupVMINPS:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowSuppressing
IiEmitOpcode EAX
IiDisp8EVEX FV32
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.mem:
.xmm.xmm.xmm:
IiEmitPrefix VEX.NDS.128.0F.WIG, EVEX.NDS.128.0F.W0
RET
.ymm.ymm.mem:
.ymm.ymm.ymm:
IiEmitPrefix VEX.NDS.256.0F.WIG, EVEX.NDS.256.0F.W0
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.0F.W0
RET
ENDPROC IizGroupVMINPS
- ↑ VMINPS
- Return Minimum Packed Single-FP Values
- Category
- sse1,simdfp,arith
- Operands
- Vps,Wps
- Opcode
- 0x0F5D /r
- CPU
- P3+
- Tested by
- t5216
IizVMINPS:: PROC
MOV AL,0x5D
JMP IizGroupVMINPS
ENDP IizVMINPS::
- ↑ VMAXPS
- Return Maximum Packed Single-FP Values
- Category
- sse1,simdfp,arith
- Operands
- Vps,Wps
- Opcode
- 0x0F5F /r
- CPU
- P3+
- Tested by
- t5216
IizVMAXPS:: PROC
MOV AL,0x5F
JMP IizGroupVMINPS
ENDP IizVMAXPS::
- ↑ IizGroupVMINPD
- IizGroupVMINPD is a common handler for instructions in following formats:
- Intel reference
xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG opcode /r
|
---|
ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG opcode /r
|
---|
xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F.W1 opcode /r
|
---|
ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F.W0 opcode /r
|
---|
zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst {sae}
| EVEX.NDS.512.66.0F.W0 opcode /r
|
---|
- Input
- AL is opcode byte.
EDX has operand types as set by IiAssemble.
EDI is pointer to II structure with parsed operands.
- Called by
-
- Tested by
- t5216
IizGroupVMINPD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiAllowSuppressing
IiEmitOpcode EAX
IiDisp8EVEX FV64
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.mem:
.xmm.xmm.xmm:
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.W1
RET
.ymm.ymm.mem:
.ymm.ymm.ymm:
IiEmitPrefix VEX.NDS.256.66.0F.WIG, EVEX.NDS.256.66.0F.W1
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F.W1
RET
ENDPROC IizGroupVMINPD
- ↑ VMINPD
- Return Minimum Packed Double-FP Values
- Category
- sse2,pcksclr,arith
- Operands
- Vpd,Wpd
- Opcode
- 0x660F5D /r
- CPU
- P4+
- Tested by
- t5216
IizVMINPD:: PROC
MOV AL,0x5D
JMP IizGroupVMINPD
ENDP IizVMINPD::
- ↑ VMAXPD
- Return Maximum Packed Double-FP Values
- Category
- sse2,pcksclr,arith
- Operands
- Vpd,Wpd
- Opcode
- 0x660F5F /r
- CPU
- P4+
- Tested by
- t5216
IizVMAXPD:: PROC
MOV AL,0x5F
JMP IizGroupVMINPD
ENDP IizVMAXPD::
- ↑ IizGroupVMINSS
- IizGroupVMINSS is a common handler for VEX/MVEX/EVEX encodable instructions in following formats:
- Intel reference
xmm1,xmm2,xmm3/m32
| VEX.NDS.128.F3.0F.WIG opcode /r
|
---|
xmm1 {k1}{z}, xmm2,xmm3/m32{sae}
| EVEX.NDS.LIG.F3.0F.W0 opcode /r
|
---|
- Input
- AL is opcode byte.
EDX has operand types as set by IiAssemble.
EDI is pointer to II structure with parsed operands.
- Called by
-
- Tested by
- t5214
IizGroupVMINSS:: PROC
IiAllowModifier MASK
IiAllowSuppressing Register=xmm
IiEncoding DATA=DWORD
IiEmitOpcode EAX
IiDisp8EVEX T1S32
IiOpEn RVM
IiModRM /r
IiEmitPrefix VEX.NDS.128.F3.0F.WIG, EVEX.NDS.LIG.F3.0F.W0
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
RET
ENDPROC IizGroupVMINSS
- ↑ VMINSS
- Return Minimum Scalar Single-FP Value
- Category
- sse1,simdfp,arith
- Operands
- Vss,Wss
- Opcode
- 0xF30F5D /r
- CPU
- P3+
- Tested by
- t5214
IizVMINSS:: PROC
MOV AL,0x5D
JMP IizGroupVMINSS
ENDP IizVMINSS::
- ↑ VMAXSS
- Return Maximum Scalar Single-FP Value
- Category
- sse1,simdfp,arith
- Operands
- Vss,Wss
- Opcode
- 0xF30F5F /r
- CPU
- P3+
- Tested by
- t5214
IizVMAXSS:: PROC
MOV AL,0x5F
JMP IizGroupVMINSS
ENDP IizVMAXSS::
- ↑ IizGroupVMINSD
- IizGroupVMINSD is a common handler for VEX/MVEX/EVEX encodable instructions in following formats:
- Intel reference
xmm1, xmm2, xmm3/m64
| VEX.NDS.128.F2.0F.WIG opcode /r
|
---|
xmm1 {k1}{z}, xmm2, xmm3/m64{sae}
| EVEX.NDS.LIG.F2.0F.W1 opcode /r
|
---|
- Input
- AL is opcode byte.
EDX has operand types as set by IiAssemble.
EDI is pointer to II structure with parsed operands.
- Called by
-
- Tested by
- t5214
IizGroupVMINSD:: PROC
IiAllowModifier MASK
IiAllowSuppressing Register=xmm
IiEmitOpcode EAX
IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiOpEn RVM
IiModRM /r
IiEmitPrefix VEX.NDS.128.F2.0F.WIG, EVEX.NDS.LIG.F2.0F.W1
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
RET
ENDPROC IizGroupVMINSD
- ↑ VMINSD
- Return Minimum Scalar Double-FP Value
- Category
- sse2,pcksclr,arith
- Operands
- Vsd,Wsd
- Opcode
- 0xF20F5D /r
- CPU
- P4+
- Tested by
- t5214
IizVMINSD:: PROC
MOV AL,0x5D
JMP IizGroupVMINSD
ENDP IizVMINSD::
- ↑ VMAXSD
- Return Maximum Scalar Double-FP Value
- Category
- sse2,pcksclr,arith
- Operands
- Vsd,Wsd
- Opcode
- 0xF20F5F /r
- CPU
- P4+
- Tested by
- t5214
IizVMAXSD:: PROC
MOV AL,0x5F
JMP IizGroupVMINSD
ENDP IizVMAXSD::
- ↑ VCVTPS2PD
- Convert Packed Single-FP Values to Double-FP Values
- Intel reference
VCVTPS2PD xmm1, xmm2/m64
| VEX.128.0F.WIG 5A /r
|
---|
VCVTPS2PD ymm1, xmm2/m128
| VEX.256.0F.WIG 5A /r
|
---|
VCVTPS2PD xmm1 {k1}{z}, xmm2/m64/m32bcst
| EVEX.128.0F.W0 5A /r
|
---|
VCVTPS2PD ymm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.256.0F.W0 5A /r
|
---|
VCVTPS2PD zmm1 {k1}{z}, ymm2/m256/m32bcst{sae}
| EVEX.512.0F.W0 5A /r
|
---|
VCVTPS2PD zmm1 {k1}, zmm2/mem
| MVEX.512.0F.W0 5A /r
|
---|
- Category
- sse2,pcksclr,conver
- Operands
- Vpd,Wps
- Opcode
- 0x0F5A /r
- CPU
- P4+
- Tested by
- t5230
IizVCVTPS2PD:: PROC
IiEmitOpcode 0x5A
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowSuppressing Register=ymm
IiDisp8EVEX HV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.ymm, zmm.mem, zmm.zmm
.xmm.mem:
.xmm.xmm:
IiEmitPrefix VEX.128.0F.WIG, EVEX.128.0F.W0
RET
.ymm.mem:
.ymm.xmm:
IiEmitPrefix VEX.256.0F.WIG, EVEX.256.0F.W0
RET
.zmm.ymm:
IiEmitPrefix EVEX.512.0F.W0
RET
.zmm.mem:
JNSt [EDI+II.MfxExplicit],iiMfxPREFIX_MVEX, .zmm.ymm:
IiDisp8MVEX Sb32
.zmm.zmm:
IiEmitPrefix MVEX.512.0F.W0
RET
ENDP IizVCVTPS2PD::
- ↑ VCVTPD2PS
- Convert Packed Double-FP Values to Single-FP Values
- Intel reference
VCVTPD2PS xmm1, xmm2/m128
| VEX.128.66.0F.WIG 5A /r
|
---|
VCVTPD2PS xmm1, ymm2/m256
| VEX.256.66.0F.WIG 5A /r
|
---|
VCVTPD2PS xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.66.0F.W1 5A /r
|
---|
VCVTPD2PS xmm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.66.0F.W1 5A /r
|
---|
VCVTPD2PS ymm1 {k1}{z}, zmm2/m512/m64bcst{er}
| EVEX.512.66.0F.W1 5A /r
|
---|
VCVTPD2PS zmm1 {k1}, zmm2/m512/mem
| MVEX.512.66.0F.W1 5A /r
|
---|
- Category
- sse2,pcksclr,conver
- Operands
- Vps,Wpd
- Opcode
- 0x660F5A /r
- CPU
- P4+
- Tested by
- t5228
IizVCVTPD2PS:: PROC
IiAllowModifier DATA,MASK
IiAllowBroadcasting QWORD
IiAllowRounding
IiEmitOpcode 0x5A
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, xmm.ymm, ymm.zmm, ymm.mem, zmm.zmm, zmm.mem
.xmm.mem:
IiDispatchDataSize OWORD=.xmm.xmm:, YWORD=.xmm.ymm:
IiAbort '6793' ; Please specify memory operand size with DATA=OWORD or DATA=YWORD.
.xmm.xmm:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W1
IiEncoding DATA=QWORD
RET
.xmm.ymm:
IiEmitPrefix VEX.256.66.0F.WIG, EVEX.256.66.0F.W1
IiEncoding DATA=OWORD
RET
.ymm.zmm:
.ymm.mem:
IiEmitPrefix EVEX.512.66.0F.W1
IiEncoding DATA=YWORD
RET
.zmm.mem:
IiDisp8MVEX Ub64
.zmm.zmm:
IiEmitPrefix MVEX.512.66.0F.W1
IiEncoding DATA=YWORD
RET
ENDP IizVCVTPD2PS::
- ↑ VCVTSS2SD
- Convert Scalar Single-FP Value to Scalar Double-FP Value
- Intel reference
VCVTSS2SD xmm1, xmm2, xmm3/m32
| VEX.NDS.128.F3.0F.WIG 5A /r
|
---|
VCVTSS2SD xmm1 {k1}{z}, xmm2, xmm3/m32{sae}
| EVEX.NDS.LIG.F3.0F.W0 5A /r
|
---|
- Category
- sse2,pcksclr,conver
- Operands
- Vsd,Wss
- Opcode
- 0xF30F5A /r
- CPU
- P4+
- Tested by
- t5222
IizVCVTSS2SD:: PROC
IiAllowModifier MASK
IiAllowSuppressing Register=xmm
IiEmitOpcode 0x5A
IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiEmitPrefix VEX.NDS.128.F3.0F.WIG, EVEX.NDS.LIG.F3.0F.W0
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
RET
ENDP IizVCVTSS2SD::
- ↑ VCVTSD2SS
- Convert Scalar Double-FP Value to Scalar Single-FP Value
- Intel reference
VCVTSD2SS xmm1,xmm2, xmm3/m64
| VEX.NDS.128.F2.0F.WIG 5A /r
|
---|
VCVTSD2SS xmm1 {k1}{z}, xmm2, xmm3/m64{er}
| EVEX.NDS.LIG.F2.0F.W1 5A /r
|
---|
- Category
- sse2,pcksclr,conver
- Operands
- Vss,Wsd
- Opcode
- 0xF20F5A /r
- CPU
- P4+
- Tested by
- t5222
IizVCVTSD2SS:: PROC
IiAllowModifier MASK
IiAllowRounding Register=xmm
IiEmitOpcode 0x5A
IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiEmitPrefix VEX.NDS.128.F2.0F.WIG, EVEX.NDS.LIG.F2.0F.W1
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
RET
ENDP IizVCVTSD2SS::
- ↑ VCVTDQ2PS
- Convert Packed DW Integers to Single-FP Values
- Intel reference
VCVTDQ2PS xmm1, xmm2/m128
| VEX.128.0F.WIG 5B /r
|
---|
VCVTDQ2PS ymm1, ymm2/m256
| VEX.256.0F.WIG 5B /r
|
---|
VCVTDQ2PS xmm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.128.0F.W0 5B /r
|
---|
VCVTDQ2PS ymm1 {k1}{z}, ymm2/m256/m32bcst
| EVEX.256.0F.W0 5B /r
|
---|
VCVTDQ2PS zmm1 {k1}{z}, zmm2/m512/m32bcst{er}
| EVEX.512.0F.W0 5B /r
|
---|
- Category
- sse2,pcksp
- Operands
- Vps,Wdq
- Opcode
- 0x0F5B /r
- CPU
- P4+
- Tested by
- t5228
IizVCVTDQ2PS:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowRounding
IiEmitOpcode 0x5B
IiDisp8EVEX FV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.mem:
.xmm.xmm:
IiEmitPrefix VEX.128.0F.WIG, EVEX.128.0F.W0
RET
.ymm.mem:
.ymm.ymm:
IiEmitPrefix VEX.256.0F.WIG, EVEX.256.0F.W0
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.0F.W0
RET
ENDP IizVCVTDQ2PS::
- ↑ VCVTPS2DQ
- Convert Packed Single-FP Values to DWORD Integers
- Intel reference
VCVTPS2DQ xmm1, xmm2/m128
| VEX.128.66.0F.WIG 5B /r
|
---|
VCVTPS2DQ ymm1, ymm2/m256
| VEX.256.66.0F.WIG 5B /r
|
---|
VCVTPS2DQ xmm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.128.66.0F.W0 5B /r
|
---|
VCVTPS2DQ ymm1 {k1}{z}, ymm2/m256/m32bcst
| EVEX.256.66.0F.W0 5B /r
|
---|
VCVTPS2DQ zmm1 {k1}{z}, zmm2/m512/m32bcst{er}
| EVEX.512.66.0F.W0 5B /r
|
---|
- Category
- sse2,pcksp
- Operands
- Vdq,Wps
- Opcode
- 0x660F5B /r
- CPU
- P4+
- Tested by
- t5224
IizVCVTPS2DQ:: PROC
IiAllowModifier DATA,MASK
IiAllowBroadcasting DWORD
IiAllowRounding
IiEmitOpcode 0x5B
IiDisp8EVEX FV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.mem:
.xmm.xmm:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W0
RET
.ymm.mem:
.ymm.ymm:
IiEmitPrefix VEX.256.66.0F.WIG, EVEX.256.66.0F.W0
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W0
RET
ENDP IizVCVTPS2DQ::
- ↑ VCVTTPS2DQ
- Convert with Trunc. Packed Single-FP Values to DW Integers
- Intel reference
VCVTTPS2DQ xmm1, xmm2/m128
| VEX.128.F3.0F.WIG 5B /r
|
---|
VCVTTPS2DQ ymm1, ymm2/m256
| VEX.256.F3.0F.WIG 5B /r
|
---|
VCVTTPS2DQ xmm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.128.F3.0F.W0 5B /r
|
---|
VCVTTPS2DQ ymm1 {k1}{z}, ymm2/m256/m32bcst
| EVEX.256.F3.0F.W0 5B /r
|
---|
VCVTTPS2DQ zmm1 {k1}{z}, zmm2/m512/m32bcst {sae}
| EVEX.512.F3.0F.W0 5B /r
|
---|
- Category
- sse2,pcksp
- Operands
- Vdq,Wps
- Opcode
- 0xF30F5B /r
- CPU
- P4+
- Tested by
- t5224
IizVCVTTPS2DQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowSuppressing
IiEmitOpcode 0x5B
IiEncoding DATA=DWORD
IiDisp8EVEX FV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.mem:
.xmm.xmm:
IiEmitPrefix VEX.128.F3.0F.WIG, EVEX.128.F3.0F.W0
RET
.ymm.mem:
.ymm.ymm:
IiEmitPrefix VEX.256.F3.0F.WIG, EVEX.256.F3.0F.W0
RET
.zmm.mem:
.zmm.zmm:
IiEmitPrefix EVEX.512.F3.0F.W0
RET
ENDP IizVCVTTPS2DQ::
- ↑ VCVTQQ2PS
- Convert Packed Quadword Integers to Packed Single-Precision Floating-Point values
- Intel reference
VCVTQQ2PS xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.0F.W1 5B /r
|
---|
VCVTQQ2PS xmm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.0F.W1 5B /r
|
---|
VCVTQQ2PS ymm1 {k1}{z}, zmm2/m512/m64bcst{er}
| EVEX.512.0F.W1 5B /r
|
---|
- Opcode
- 0x5B
- Tested by
- t5228
IizVCVTQQ2PS:: PROC
IiAllowModifier DATA,MASK
IiAllowBroadcasting QWORD
IiAllowRounding
IiEncoding DATA=QWORD
IiEmitOpcode 0x5B
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, xmm.ymm, ymm.zmm, ymm.mem
.xmm.mem:
IiDispatchDataSize OWORD=.xmm.xmm:, YWORD=.xmm.ymm:
IiAbort '6793' ; Please specify memory operand size with DATA=OWORD or DATA=YWORD.
.xmm.xmm:
IiEmitPrefix EVEX.128.0F.W1
RET
.xmm.ymm:
IiEmitPrefix EVEX.256.0F.W1
IiEncoding DATA=OWORD
RET
.ymm.mem:
.ymm.zmm:
IiEmitPrefix EVEX.512.0F.W1
IiEncoding DATA=YWORD
RET
ENDP IizVCVTQQ2PS::
- ↑ VCVTSI2SS
- Convert DWORD Integer to Scalar Single-FP Value
- Intel reference
VCVTSI2SS xmm1, xmm2, r/m32
| VEX.NDS.128.F3.0F.W0 2A /r
|
---|
VCVTSI2SS xmm1, xmm2, r/m64
| VEX.NDS.128.F3.0F.W1 2A /r
|
---|
VCVTSI2SS xmm1, xmm2, r/m32{er}
| EVEX.NDS.LIG.F3.0F.W0 2A /r
|
---|
VCVTSI2SS xmm1, xmm2, r/m64{er}
| EVEX.NDS.LIG.F3.0F.W1 2A /r
|
---|
- Category
- sse1,conver
- Operands
- Vss,Edqp
- Opcode
- 0xF30F2A /r
- CPU
- P3+
- Tested by
- t5222
IizVCVTSI2SS:: PROC
IiAllowModifier DATA
IiEmitOpcode 0x2A
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.r32, xmm.xmm.r64, xmm.xmm.mem
.xmm.xmm.r32:
IiAllowModifier ROUND
.D:IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiEmitPrefix VEX.NDS.128.F3.0F.W0, EVEX.NDS.LIG.F3.0F.W0
RET
.xmm.xmm.r64:
IiAllowModifier ROUND
.Q:JNSt [EDI+II.SssStatus],sssWidth64, .D:
; W1 in non-64 bit is ignored; the instructions behaves as if the W0 version is used.
IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiEmitPrefix VEX.NDS.128.F3.0F.W1, EVEX.NDS.LIG.F3.0F.W1
RET
.xmm.xmm.mem:
IiDispatchDataSize DWORD=.D:, QWORD=.Q:
IiAbort '6792' ; Please specify memory operand size with DATA=DWORD or DATA=QWORD.
ENDP IizVCVTSI2SS::
- ↑ VCVTSI2SD
- Convert DW Integer to Scalar Double-FP Value
- Intel reference
VCVTSI2SD xmm1, xmm2, r/m32
| VEX.NDS.128.F2.0F.W0 2A /r
|
---|
VCVTSI2SD xmm1, xmm2, r/m64
| VEX.NDS.128.F2.0F.W1 2A /r
|
---|
VCVTSI2SD xmm1, xmm2, r/m32
| EVEX.NDS.LIG.F2.0F.W0 2A /r
|
---|
VCVTSI2SD xmm1, xmm2, r/m64{er}
| EVEX.NDS.LIG.F2.0F.W1 2A /r
|
---|
- Category
- sse2,pcksclr,conver
- Operands
- Vsd,Edqp
- Opcode
- 0xF20F2A /r
- CPU
- P4+
- Tested by
- t5222
IizVCVTSI2SD:: PROC
IiAllowModifier DATA
IiEmitOpcode 0x2A
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.r32, xmm.xmm.r64, xmm.xmm.mem
.xmm.xmm.r32:
IiAllowModifier ROUND
.D:IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiEmitPrefix VEX.NDS.128.F2.0F.W0, EVEX.NDS.LIG.F2.0F.W0
RET
.xmm.xmm.r64:
IiAllowModifier ROUND
.Q:JNSt [EDI+II.SssStatus],sssWidth64, .D:
; W1 in non-64 bit is ignored; the instructions behaves as if the W0 version is used.
IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiEmitPrefix VEX.NDS.128.F2.0F.W1, EVEX.NDS.LIG.F2.0F.W1
RET
.xmm.xmm.mem:
IiDispatchDataSize DWORD=.D:, QWORD=.Q:
IiAbort '6792' ; Please specify memory operand size with DATA=DWORD or DATA=QWORD.
ENDP IizVCVTSI2SD::
- ↑ VCVTSS2SI
- Convert Scalar Single-FP Value to DWORD Integer
- Intel reference
VCVTSS2SI r32, xmm1/m32
| VEX.128.F3.0F.W0 2D /r
|
---|
VCVTSS2SI r64, xmm1/m32
| VEX.128.F3.0F.W1 2D /r
|
---|
VCVTSS2SI r32, xmm1/m32{er}
| EVEX.LIG.F3.0F.W0 2D /r
|
---|
VCVTSS2SI r64, xmm1/m32{er}
| EVEX.LIG.F3.0F.W1 2D /r
|
---|
- Category
- sse1,conver
- Operands
- Gdqp,Wss
- Opcode
- 0xF30F2D /r
- CPU
- P3+
- Tested by
- t5220
IizVCVTSS2SI:: PROC
IiAllowRounding Register=xmm
IiEmitOpcode 0x2D
IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiOpEn RM
IiModRM /r
IiDispatchFormat r32.xmm, r32.mem, r64.xmm, r64.mem
.r32.xmm:
.r32.mem:
IiEmitPrefix VEX.128.F3.0F.W0, EVEX.LIG.F3.0F.W0
RET
.r64.xmm:
.r64.mem:
IiAbortIfNot64
IiEmitPrefix VEX.128.F3.0F.W1, EVEX.LIG.F3.0F.W1
RET
ENDP IizVCVTSS2SI::
- ↑ VCVTSD2SI
- Convert Scalar Double-FP Value to DW Integer
- Intel reference
VCVTSD2SI r32, xmm1/m64
| VEX.128.F2.0F.W0 2D /r
|
---|
VCVTSD2SI r64, xmm1/m64
| VEX.128.F2.0F.W1 2D /r
|
---|
VCVTSD2SI r32, xmm1/m64{er}
| EVEX.LIG.F2.0F.W0 2D /r
|
---|
VCVTSD2SI r64, xmm1/m64{er}
| EVEX.LIG.F2.0F.W1 2D /r
|
---|
- Category
- sse2,pcksclr,conver
- Operands
- Gdqp,Wsd
- Opcode
- 0xF20F2D /r
- CPU
- P4+
- Tested by
- t5220
IizVCVTSD2SI:: PROC
IiAllowRounding Register=xmm
IiEmitOpcode 0x2D
IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiDispatchFormat r32.xmm, r32.mem, r64.xmm, r64.mem
.r32.xmm:
.r32.mem:
IiEncoding DATA=DWORD
IiEmitPrefix VEX.128.F2.0F.W0, EVEX.LIG.F2.0F.W0
RET
.r64.xmm:
.r64.mem:
IiAbortIfNot64
IiEmitPrefix VEX.128.F2.0F.W1, EVEX.LIG.F2.0F.W1
RET
ENDP IizVCVTSD2SI::
- ↑ VCVTTSS2SI
- Convert with Trunc. Scalar Single-FP Value to DW Integer
- Intel reference
VCVTTSS2SI r32, xmm1/m32
| VEX.128.F3.0F.W0 2C /r
|
---|
VCVTTSS2SI r64, xmm1/m32
| VEX.128.F3.0F.W1 2C /r
|
---|
VCVTTSS2SI r32, xmm1/m32{sae}
| EVEX.LIG.F3.0F.W0 2C /r
|
---|
VCVTTSS2SI r64, xmm1/m32{sae}
| EVEX.LIG.F3.0F.W1 2C /r
|
---|
- Category
- sse1,conver
- Operands
- Gdqp,Wss
- Opcode
- 0xF30F2C /r
- CPU
- P3+
- Tested by
- t5220
IizVCVTTSS2SI:: PROC
IiAllowSuppressing Register=xmm
IiEmitOpcode 0x2C
IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiOpEn RM
IiModRM /r
IiDispatchFormat r32.xmm, r32.mem, r64.xmm, r64.mem
.r32.xmm:
.r32.mem:
IiEmitPrefix VEX.128.F3.0F.W0, EVEX.LIG.F3.0F.W0
RET
.r64.xmm:
.r64.mem:
IiEncoding DATA=QWORD
IiAbortIfNot64
IiEmitPrefix VEX.128.F3.0F.W1, EVEX.LIG.F3.0F.W1
RET
ENDP IizVCVTTSS2SI::
- ↑ VCVTTSD2SI
- Conv. with Trunc. Scalar Double-FP Value to Signed DW Int
- Intel reference
VCVTTSD2SI r32, xmm1/m64
| VEX.128.F2.0F.W0 2C /r
|
---|
VCVTTSD2SI r64, xmm1/m64
| VEX.128.F2.0F.W1 2C /r
|
---|
VCVTTSD2SI r32, xmm1/m64{sae}
| EVEX.LIG.F2.0F.W0 2C /r
|
---|
VCVTTSD2SI r64, xmm1/m64{sae}
| EVEX.LIG.F2.0F.W1 2C /r
|
---|
- Category
- sse2,pcksclr,conver
- Operands
- Gdqp,Wsd
- Opcode
- 0xF20F2C /r
- CPU
- P4+
- Tested by
- t5220
IizVCVTTSD2SI:: PROC
IiAllowSuppressing Register=xmm
IiEmitOpcode 0x2C
IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiDispatchFormat r32.xmm, r32.mem, r64.xmm, r64.mem
.r32.xmm:
.r32.mem:
IiEncoding DATA=DWORD
IiEmitPrefix VEX.128.F2.0F.W0, EVEX.LIG.F2.0F.W0
RET
.r64.xmm:
.r64.mem:
IiAbortIfNot64
IiEmitPrefix VEX.128.F2.0F.W1, EVEX.LIG.F2.0F.W1
RET
ENDP IizVCVTTSD2SI::
- ↑ VCVTSS2USI
- Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword
- Intel reference
VCVTSS2USI r32, xmm1/m32{er}
| EVEX.LIG.F3.0F.W0 79 /r
|
---|
VCVTSS2USI r64, xmm1/m32{er}
| EVEX.LIG.F3.0F.W1 79 /r
|
---|
- Opcode
- 0x79
- Tested by
- t5220
IizVCVTSS2USI:: PROC
IiAllowRounding Register=xmm
IiEmitOpcode 0x79
IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiOpEn RM
IiModRM /r
IiDispatchFormat r32.xmm, r32.mem, r64.xmm, r64.mem
.r32.xmm:
.r32.mem:
IiEmitPrefix EVEX.LIG.F3.0F.W0
RET
.r64.xmm:
.r64.mem:
IiEncoding DATA=QWORD
IiAbortIfNot64
IiEmitPrefix EVEX.LIG.F3.0F.W1
RET
ENDP IizVCVTSS2USI::
- ↑ VCVTSD2USI
- Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer
- Intel reference
VCVTSD2USI r32, xmm1/m64{er}
| EVEX.LIG.F2.0F.W0 79 /r
|
---|
VCVTSD2USI r64, xmm1/m64{er}
| EVEX.LIG.F2.0F.W1 79 /r
|
---|
- Opcode
- 0x79
- Tested by
- t5220
IizVCVTSD2USI:: PROC
IiAllowRounding Register=xmm
IiEmitOpcode 0x79
IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiDispatchFormat r32.xmm, r32.mem, r64.xmm, r64.mem
.r32.xmm:
.r32.mem:
IiEncoding DATA=DWORD
IiEmitPrefix EVEX.LIG.F2.0F.W0
RET
.r64.xmm:
.r64.mem:
IiAbortIfNot64
IiEmitPrefix EVEX.LIG.F2.0F.W1
RET
ENDP IizVCVTSD2USI::
- ↑ VCVTTSS2USI
- Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer
- Intel reference
VCVTTSS2USI r32, xmm1/m32{sae}
| EVEX.LIG.F3.0F.W0 78 /r
|
---|
VCVTTSS2USI r64, xmm1/m32{sae}
| EVEX.LIG.F3.0F.W1 78 /r
|
---|
- Opcode
- 0x78
- Tested by
- t5220
IizVCVTTSS2USI:: PROC
IiAllowSuppressing Register=xmm
IiEmitOpcode 0x78
IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiOpEn RM
IiModRM /r
IiDispatchFormat r32.xmm, r32.mem, r64.xmm, r64.mem
.r32.xmm:
.r32.mem:
IiEmitPrefix EVEX.LIG.F3.0F.W0
RET
.r64.xmm:
.r64.mem:
IiEncoding DATA=QWORD
IiAbortIfNot64
IiEmitPrefix EVEX.LIG.F3.0F.W1
RET
ENDP IizVCVTTSS2USI::
- ↑ VCVTTSD2USI
- Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer
- Intel reference
VCVTTSD2USI r32, xmm1/m64{sae}
| EVEX.LIG.F2.0F.W0 78 /r
|
---|
VCVTTSD2USI r64, xmm1/m64{sae}
| EVEX.LIG.F2.0F.W1 78 /r
|
---|
- Opcode
- 0x87
- Tested by
- t5220
IizVCVTTSD2USI:: PROC
IiAllowSuppressing Register=xmm
IiEmitOpcode 0x78
IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiDispatchFormat r32.xmm, r32.mem, r64.xmm, r64.mem
.r32.xmm:
.r32.mem:
IiEncoding DATA=DWORD
IiEmitPrefix EVEX.LIG.F2.0F.W0
RET
.r64.xmm:
.r64.mem:
IiAbortIfNot64
IiEmitPrefix EVEX.LIG.F2.0F.W1
RET
ENDP IizVCVTTSD2USI::
- ↑ VCVTUSI2SS
- Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value
- Intel reference
VCVTUSI2SS xmm1, xmm2, r/m32{er}
| EVEX.NDS.LIG.F3.0F.W0 7B /r
|
---|
VCVTUSI2SS xmm1, xmm2, r/m64{er}
| EVEX.NDS.LIG.F3.0F.W1 7B /r
|
---|
- Opcode
- 0x7B
- Tested by
- t5222
IizVCVTUSI2SS:: PROC
IiEmitOpcode 0x7B
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.r32, xmm.xmm.r64, xmm.xmm.mem
.xmm.xmm.r32:
IiAllowModifier ROUND
.D:IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiEmitPrefix EVEX.NDS.LIG.F3.0F.W0
RET
.xmm.xmm.r64:
IiAllowModifier ROUND
.Q:IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiEmitPrefix EVEX.NDS.LIG.F3.0F.W1
RET
.xmm.xmm.mem:
IiAllowModifier DATA
IiDispatchDataSize DWORD=.D:, QWORD=.Q:
IiAbort '6792' ; Please specify memory operand size with DATA=DWORD or DATA=QWORD.
ENDP IizVCVTUSI2SS::
- ↑ VCVTUSI2SD
- Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value
- Intel reference
VCVTUSI2SD xmm1, xmm2, r/m32
| EVEX.NDS.LIG.F2.0F.W0 7B /r
|
---|
VCVTUSI2SD xmm1, xmm2, r/m64{er}
| EVEX.NDS.LIG.F2.0F.W1 7B /r
|
---|
- Opcode
- 0x7B
- Tested by
- t5222
IizVCVTUSI2SD:: PROC
IiEmitOpcode 0x7B
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.r32, xmm.xmm.r64, xmm.xmm.mem
.xmm.xmm.r32:
IiAllowModifier ROUND
.D:IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiEmitPrefix EVEX.NDS.LIG.F2.0F.W0
RET
.xmm.xmm.r64:
IiAllowModifier ROUND
.Q:IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiEmitPrefix EVEX.NDS.LIG.F2.0F.W1
RET
.xmm.xmm.mem:
IiAllowModifier DATA
IiDispatchDataSize DWORD=.D:, QWORD=.Q:
IiAbort '6792' ; Please specify memory operand size with DATA=DWORD or DATA=QWORD.
ENDP IizVCVTUSI2SD::
- ↑ VCVTUDQ2PS
- Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values
- Intel reference
VCVTUDQ2PS xmm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.128.F2.0F.W0 7A /r
|
---|
VCVTUDQ2PS ymm1 {k1}{z}, ymm2/m256/m32bcst
| EVEX.256.F2.0F.W0 7A /r
|
---|
VCVTUDQ2PS zmm1 {k1}{z}, zmm2/m512/m32bcst{er}
| EVEX.512.F2.0F.W0 7A /r
|
---|
- Opcode
- 0x7A
- Tested by
- t5228
IizVCVTUDQ2PS:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowRounding
IiEmitOpcode 0x7A
IiDisp8EVEX FV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.mem:
.xmm.xmm:
IiEmitPrefix EVEX.128.F2.0F.W0
RET
.ymm.mem:
.ymm.ymm:
IiEmitPrefix EVEX.256.F2.0F.W0
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.F2.0F.W0
RET
ENDP IizVCVTUDQ2PS::
- ↑ VCVTUDQ2PD
- Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values
- Intel reference
VCVTUDQ2PD xmm1 {k1}{z}, xmm2/m64/m32bcst
| EVEX.128.F3.0F.W0 7A /r
|
VCVTUDQ2PD ymm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.256.F3.0F.W0 7A /r
|
VCVTUDQ2PD zmm1 {k1}{z}, ymm2/m256/m32bcst
| EVEX.512.F3.0F.W0 7A /r
|
---|
VCVTUDQ2PD zmm1 {k1}, zmm2/m256/m32bcst
| MVEX.512.F3.0F.W0 7A /r
|
- Opcode
- 0x7A
- Tested by
- t5230
IizVCVTUDQ2PD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiEmitOpcode 0x7A
IiDisp8EVEX HV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.ymm, zmm.mem, zmm.zmm
.xmm.mem:
.xmm.xmm:
IiEmitPrefix EVEX.128.F3.0F.W0
IiEncoding DATA=QWORD
RET
.ymm.mem:
.ymm.xmm:
IiEmitPrefix EVEX.256.F3.0F.W0
IiEncoding DATA=OWORD
RET
.zmm.ymm:
IiEmitPrefix EVEX.512.F3.0F.W0
IiEncoding DATA=YWORD
RET
.zmm.mem:
JNSt [EDI+II.MfxExplicit],iiMfxPREFIX_MVEX, .zmm.ymm:
IiDisp8MVEX Sb32
.zmm.zmm:
IiEmitPrefix MVEX.512.F3.0F.W0
IiEncoding DATA=YWORD
RET
ENDP IizVCVTUDQ2PD::
- ↑ VCVTTPS2UDQ
- Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values
- Intel reference
VCVTTPS2UDQ xmm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.128.0F.W0 78 /r
|
VCVTTPS2UDQ ymm1 {k1}{z}, ymm2/m256/m32bcst
| EVEX.256.0F.W0 78 /r
|
VCVTTPS2UDQ zmm1 {k1}{z}, zmm2/m512/m32bcst{sae}
| EVEX.512.0F.W0 78 /r
|
- Opcode
- 0x78
- Tested by
- t5224
IizVCVTTPS2UDQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowSuppressing
IiEmitOpcode 0x78
IiDisp8EVEX FV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.mem:
.xmm.xmm:
IiEmitPrefix EVEX.128.0F.W0
RET
.ymm.mem:
.ymm.ymm:
IiEmitPrefix EVEX.256.0F.W0
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.0F.W0
RET
ENDP IizVCVTTPS2UDQ::
- ↑ VCVTTPD2UDQ
- Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers
- Intel reference
VCVTTPD2UDQ xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.0F.W1 78 /r
|
VCVTTPD2UDQ xmm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.0F.W1 78 02 /r
|
VCVTTPD2UDQ ymm1 {k1}{z}, zmm2/m512/m64bcst{sae}
| EVEX.512.0F.W1 78 /r
|
- Opcode
- 0x78
- Tested by
- t5224
IizVCVTTPD2UDQ:: PROC
IiAllowModifier MASK,DATA
IiAllowBroadcasting QWORD
IiAllowSuppressing
IiEmitOpcode 0x78
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, xmm.ymm, ymm.zmm, ymm.mem
.xmm.xmm:
IiEmitPrefix EVEX.128.0F.W1
RET
.xmm.ymm:
IiEmitPrefix EVEX.256.0F.W1
RET
.ymm.zmm:
.ymm.mem:
IiEmitPrefix EVEX.512.0F.W1
RET
.xmm.mem:
IiDispatchDataSize OWORD=.xmm.xmm:, YWORD=.xmm.ymm:
IiAbort '6793' ; Please specify memory operand size with DATA=OWORD or DATA=YWORD.
ENDP IizVCVTTPD2UDQ::
- ↑ VCVTTPS2UQQ
- Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values
- Intel reference
VCVTTPS2UQQ xmm1 {k1}{z}, xmm2/m64/m32bcst
| EVEX.128.66.0F.W0 78 /r
|
VCVTTPS2UQQ ymm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.256.66.0F.W0 78 /r
|
VCVTTPS2UQQ zmm1 {k1}{z}, ymm2/m256/m32bcst{sae}
| EVEX.512.66.0F.W0 78 /r
|
- Opcode
- 0x78
- Tested by
- t5226
IizVCVTTPS2UQQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowSuppressing Register=ymm
IiEmitOpcode 0x78
IiDisp8EVEX HV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.ymm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F.W0
RET
.ymm.xmm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F.W0
RET
.zmm.ymm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W0
RET
ENDP IizVCVTTPS2UQQ::
- ↑ VCVTTPD2UQQ
- Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers
- Intel reference
VCVTTPD2UQQ xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.66.0F.W1 78 /r
|
VCVTTPD2UQQ ymm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.66.0F.W1 78 /r
|
VCVTTPD2UQQ zmm1 {k1}{z}, zmm2/m512/m64bcst{sae}
| EVEX.512.66.0F.W1 78 /r
|
- Opcode
- 0x78
- Tested by
- t5226
IizVCVTTPD2UQQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiAllowSuppressing
IiEmitOpcode 0x78
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F.W1
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F.W1
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W1
RET
ENDP IizVCVTTPD2UQQ::
- ↑ VCVTPS2UDQ
- Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values
- Intel reference
VCVTPS2UDQ xmm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.128.0F.W0 79 /r
|
VCVTPS2UDQ ymm1 {k1}{z}, ymm2/m256/m32bcst
| EVEX.256.0F.W0 79 /r
|
VCVTPS2UDQ zmm1 {k1}{z}, zmm2/m512/m32bcst{er}
| EVEX.512.0F.W0 79 /r
|
- Opcode
- 0x79
- Tested by
- t5224
IizVCVTPS2UDQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowRounding
IiEmitOpcode 0x79
IiDisp8EVEX FV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.0F.W0
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.0F.W0
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.0F.W0
RET
ENDP IizVCVTPS2UDQ::
- ↑ VCVTPD2UDQ
- Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers
- Intel reference
VCVTPD2UDQ xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.0F.W1 79 /r
|
VCVTPD2UDQ xmm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.0F.W1 79 /r
|
VCVTPD2UDQ ymm1 {k1}{z}, zmm2/m512/m64bcst{er}
| EVEX.512.0F.W1 79 /r
|
- Opcode
- 0x79
- Tested by
- t5224
IizVCVTPD2UDQ:: PROC
IiAllowModifier MASK,DATA
IiAllowBroadcasting QWORD
IiAllowRounding
IiEmitOpcode 0x79
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, xmm.ymm, ymm.zmm, ymm.mem
.xmm.xmm:
IiEmitPrefix EVEX.128.0F.W1
IiEncoding DATA=QWORD
RET
.xmm.ymm:
IiEmitPrefix EVEX.256.0F.W1
IiEncoding DATA=OWORD
RET
.ymm.zmm:
.ymm.mem:
IiEmitPrefix EVEX.512.0F.W1
IiEncoding DATA=YWORD
RET
.xmm.mem:
IiDispatchDataSize OWORD=.xmm.xmm:, YWORD=.xmm.ymm:
IiAbort '6793' ; Please specify memory operand size with DATA=OWORD or DATA=YWORD.
ENDP IizVCVTPD2UDQ::
- ↑ VCVTPS2UQQ
- Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values
- Intel reference
VCVTPS2UQQ xmm1 {k1}{z}, xmm2/m64/m32bcst
| EVEX.128.66.0F.W0 79 /r
|
VCVTPS2UQQ ymm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.256.66.0F.W0 79 /r
|
VCVTPS2UQQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er}
| EVEX.512.66.0F.W0 79 /r
|
- Opcode
- 0x79
- Tested by
- t5226
IizVCVTPS2UQQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowRounding Register=ymm
IiEmitOpcode 0x79
IiDisp8EVEX HV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.ymm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F.W0
IiEncoding DATA=QWORD
RET
.ymm.xmm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F.W0
IiEncoding DATA=OWORD
RET
.zmm.ymm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W0
IiEncoding DATA=YWORD
RET
ENDP IizVCVTPS2UQQ::
- ↑ VCVTTPS2QQ
- Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values
- Intel reference
VCVTTPS2QQ xmm1 {k1}{z}, xmm2/m64/m32bcst
| EVEX.128.66.0F.W0 7A /r
|
VCVTTPS2QQ ymm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.256.66.0F.W0 7A /r
|
VCVTTPS2QQ zmm1 {k1}{z}, ymm2/m256/m32bcst{sae}
| EVEX.512.66.0F.W0 7A /r
|
- Opcode
- 0x7A
- Tested by
- t5226
IizVCVTTPS2QQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowSuppressing Register=ymm
IiEmitOpcode 0x7A
IiDisp8EVEX HV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.ymm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F.W0
IiEncoding DATA=QWORD
RET
.ymm.xmm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F.W0
IiEncoding DATA=OWORD
RET
.zmm.ymm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W0
IiEncoding DATA=YWORD
RET
ENDP IizVCVTTPS2QQ::
- ↑ VCVTPS2QQ
- Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values
- Intel reference
VCVTPS2QQ xmm1 {k1}{z}, xmm2/m64/m32bcst
| EVEX.128.66.0F.W0 7B /r
|
VCVTPS2QQ ymm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.256.66.0F.W0 7B /r
|
VCVTPS2QQ zmm1 {k1}{z}, ymm2/m256/m32bcst{er}
| EVEX.512.66.0F.W0 7B /r
|
- Opcode
- 0x7B
- Tested by
- t5226
IizVCVTPS2QQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowRounding Register=ymm
IiEmitOpcode 0x7B
IiDisp8EVEX HV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.ymm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F.W0
IiEncoding DATA=QWORD
RET
.ymm.xmm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F.W0
IiEncoding DATA=OWORD
RET
.zmm.ymm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W0
IiEncoding DATA=YWORD
RET
ENDP IizVCVTPS2QQ::
- ↑ VCVTTPD2QQ
- Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers
- Intel reference
VCVTTPD2QQ xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.66.0F.W1 7A /r
|
VCVTTPD2QQ ymm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.66.0F.W1 7A /r
|
VCVTTPD2QQ zmm1 {k1}{z}, zmm2/m512/m64bcst{sae}
| EVEX.512.66.0F.W1 7A /r
|
- Opcode
- 0x7A
- Tested by
- t5226
IizVCVTTPD2QQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiAllowSuppressing
IiEmitOpcode 0x7A
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F.W1
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F.W1
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W1
RET
ENDP IizVCVTTPD2QQ::
- ↑ VCVTPD2UQQ
- Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers
- Intel reference
VCVTPD2UQQ xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.66.0F.W1 79 /r
|
VCVTPD2UQQ ymm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.66.0F.W1 79 /r
|
VCVTPD2UQQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er}
| EVEX.512.66.0F.W1 79 /r
|
- Opcode
- 0x79
- Tested by
- t5226
IizVCVTPD2UQQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiAllowRounding
IiEmitOpcode 0x79
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F.W1
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F.W1
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W1
RET
ENDP IizVCVTPD2UQQ::
- ↑ VCVTPD2QQ
- Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers
- Intel reference
VCVTPD2QQ xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.66.0F.W1 7B /r
|
VCVTPD2QQ ymm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.66.0F.W1 7B /r
|
VCVTPD2QQ zmm1 {k1}{z}, zmm2/m512/m64bcst{er}
| EVEX.512.66.0F.W1 7B /r
|
- Opcode
- 0x7B
- Tested by
- t5226
IizVCVTPD2QQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiAllowRounding
IiEmitOpcode 0x7B
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F.W1
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F.W1
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W1
RET
ENDP IizVCVTPD2QQ::
- ↑ VCVTTPD2DQ
- Convert with Trunc. Packed Double-FP Values to DW Integers
- Intel reference
VCVTTPD2DQ xmm1, xmm2/m128
| VEX.128.66.0F.WIG E6 /r
|
VCVTTPD2DQ xmm1, ymm2/m256
| VEX.256.66.0F.WIG E6 /r
|
VCVTTPD2DQ xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.66.0F.W1 E6 /r
|
VCVTTPD2DQ xmm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.66.0F.W1 E6 /r
|
VCVTTPD2DQ ymm1 {k1}{z}, zmm2/m512/m64bcst{sae}
| EVEX.512.66.0F.W1 E6 /r
|
- Category
- sse2,pcksclr,conver
- Operands
- Vdq,Wpd
- Opcode
- 0x660FE6 /r
- CPU
- P4+
- Tested by
- t5224
IizVCVTTPD2DQ:: PROC
IiAllowModifier MASK,DATA
IiAllowBroadcasting QWORD
IiAllowSuppressing
IiEmitOpcode 0xE6
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, xmm.ymm, ymm.zmm, ymm.mem
.xmm.xmm:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W1
IiEncoding DATA=QWORD
RET
.xmm.ymm:
IiEmitPrefix VEX.256.66.0F.WIG, EVEX.256.66.0F.W1
IiEncoding DATA=OWORD
RET
.ymm.zmm:
.ymm.mem:
IiEmitPrefix EVEX.512.66.0F.W1
IiEncoding DATA=YWORD
RET
.xmm.mem:
IiDispatchDataSize OWORD=.xmm.xmm:, YWORD=.xmm.ymm:
IiAbort '6793' ; Please specify memory operand size with DATA=OWORD or DATA=YWORD.
ENDP IizVCVTTPD2DQ::
- ↑ VCVTPD2DQ
- Convert Packed Double-FP Values to DW Integers
- Intel reference
VCVTPD2DQ xmm1, xmm2/m128
| VEX.128.F2.0F.WIG E6 /r
|
VCVTPD2DQ xmm1, ymm2/m256
| VEX.256.F2.0F.WIG E6 /r
|
VCVTPD2DQ xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.F2.0F.W1 E6 /r
|
VCVTPD2DQ xmm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.F2.0F.W1 E6 /r
|
VCVTPD2DQ ymm1 {k1}{z}, zmm2/m512/m64bcst{er}
| EVEX.512.F2.0F.W1 E6 /r
|
- Category
- sse2,pcksclr,conver
- Operands
- Vdq,Wpd
- Opcode
- 0xF20FE6 /r
- CPU
- P4+
- Tested by
- t5224
IizVCVTPD2DQ:: PROC
IiAllowModifier MASK,DATA
IiAllowBroadcasting QWORD
IiAllowRounding
IiEmitOpcode 0xE6
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, xmm.ymm, ymm.zmm, ymm.mem
.xmm.xmm:
IiEmitPrefix VEX.128.F2.66.0F.WIG, EVEX.128.F2.66.0F.W1
IiEncoding DATA=QWORD
RET
.xmm.ymm:
IiEmitPrefix VEX.256.F2.66.0F.WIG, EVEX.256.F2.66.0F.W1
IiEncoding DATA=OWORD
RET
.ymm.zmm:
.ymm.mem:
IiEmitPrefix EVEX.512.F2.66.0F.W1
IiEncoding DATA=YWORD
RET
.xmm.mem:
IiDispatchDataSize OWORD=.xmm.xmm:, YWORD=.xmm.ymm:
IiAbort '6793' ; Please specify memory operand size with DATA=OWORD or DATA=YWORD.
ENDP IizVCVTPD2DQ::
- ↑ VCVTDQ2PD
- Convert Packed DW Integers to Double-FP Values
- Intel reference
VCVTDQ2PD xmm1, xmm2/m64
| VEX.128.F3.0F.WIG E6 /r
|
VCVTDQ2PD ymm1, xmm2/m128
| VEX.256.F3.0F.WIG E6 /r
|
VCVTDQ2PD xmm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.128.F3.0F.W0 E6 /r
|
VCVTDQ2PD ymm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.256.F3.0F.W0 E6 /r
|
VCVTDQ2PD zmm1 {k1}{z}, ymm2/m256/m32bcst
| EVEX.512.F3.0F.W0 E6 /r
|
---|
VCVTDQ2PD zmm1 {k1}, zmm2/m256/m32bcst
| MVEX.512.F3.0F.W0 E6 /r
|
- Category
- sse2,pcksclr,conver
- Operands
- Vpd,Wdq
- Opcode
- 0xF30FE6 /r
- CPU
- P4+
- Tested by
- t5230
IizVCVTDQ2PD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiEmitOpcode 0xE6
IiDisp8EVEX HV32
IiDisp8MVEX Sb32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.ymm, zmm.mem, zmm.zmm
.xmm.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.F3.0F.WIG, EVEX.128.F3.0F.W0
RET
.ymm.xmm:
.ymm.mem:
IiEmitPrefix VEX.256.F3.0F.WIG, EVEX.256.F3.0F.W0
RET
.zmm.ymm:
.zmm.mem:
IiEmitPrefix EVEX.512.F3.0F.W0, MVEX.512.F3.0F.W0
RET
.zmm.zmm:
IiEmitPrefix MVEX.512.F3.0F.W0
RET
ENDP IizVCVTDQ2PD::
- ↑ VCVTQQ2PD
- Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values
- Intel reference
VCVTQQ2PD xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.F3.0F.W1 E6 /r
|
VCVTQQ2PD ymm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.F3.0F.W1 E6 /r
|
VCVTQQ2PD zmm1 {k1}{z}, zmm2/m512/m64bcst{er}
| EVEX.512.F3.0F.W1 E6 /r
|
- Opcode
- 0xE6
- Tested by
- t5230
IizVCVTQQ2PD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiAllowRounding
IiEmitOpcode 0xE6
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.F3.0F.W1
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.F3.0F.W1
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.F3.0F.W1
RET
ENDP IizVCVTQQ2PD::
- ↑ VCVTUQQ2PS
- Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values
- Intel reference
VCVTUQQ2PS xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.F2.0F.W1 7A /r
|
VCVTUQQ2PS xmm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.F2.0F.W1 7A /r
|
VCVTUQQ2PS ymm1 {k1}{z}, zmm2/m512/m64bcst{er}
| EVEX.512.F2.0F.W1 7A /r
|
- Opcode
- 0x7A
- Tested by
- t5228
IizVCVTUQQ2PS:: PROC
IiAllowModifier MASK,DATA
IiAllowBroadcasting QWORD
IiAllowRounding
IiEmitOpcode 0x7A
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, xmm.ymm, ymm.zmm, ymm.mem
.xmm.xmm:
IiEmitPrefix EVEX.128.F2.0F.W1
RET
.xmm.ymm:
IiEmitPrefix EVEX.256.F2.0F.W1
RET
.ymm.mem:
.ymm.zmm:
IiEmitPrefix EVEX.512.F2.0F.W1
RET
.xmm.mem:
IiDispatchDataSize OWORD=.xmm.xmm:, YWORD=.xmm.ymm:
IiAbort '6793' ; Please specify memory operand size with DATA=OWORD or DATA=YWORD.
ENDP IizVCVTUQQ2PS::
- ↑ VCVTUQQ2PD
- Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values
- Intel reference
VCVTUQQ2PD xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.F3.0F.W1 7A /r
|
VCVTUQQ2PD ymm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.F3.0F.W1 7A /r
|
VCVTUQQ2PD zmm1 {k1}{z}, zmm2/m512/m64bcst{er}
| EVEX.512.F3.0F.W1 7A /r
|
- Opcode
- 0x7A
- Tested by
- t5230
IizVCVTUQQ2PD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiAllowRounding
IiEmitOpcode 0x7A
IiDisp8EVEX FV64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.F3.0F.W1
RET
.ymm.mem:
.ymm.ymm:
IiEmitPrefix EVEX.256.F3.0F.W1
RET
.zmm.mem:
.zmm.zmm:
IiEmitPrefix EVEX.512.F3.0F.W1
RET
ENDP IizVCVTUQQ2PD::
- ↑ VCVTPH2PS
- Convert 16-bit FP values to Single-Precision FP values
- Description
- VCVTPH2PS
- Intel reference
VCVTPH2PS xmm1, xmm2/m64
| VEX.128.66.0F38.W0 13 /r
|
VCVTPH2PS ymm1, xmm2/m128
| VEX.256.66.0F38.W0 13 /r
|
VCVTPH2PS xmm1 {k1}{z}, xmm2/m64
| EVEX.128.66.0F38.W0 13 /r
|
VCVTPH2PS ymm1 {k1}{z}, xmm2/m128
| EVEX.256.66.0F38.W0 13 /r
|
VCVTPH2PS zmm1 {k1}{z}, ymm2/m256 {sae}
| EVEX.512.66.0F38.W0 13 /r
|
- Opcode
- 0x13
- Tested by
- t5228
IizVCVTPH2PS:: PROC
IiRequire SPEC
IiAllowModifier MASK
IiAllowSuppressing Register=ymm
IiEmitOpcode 0x13
IiEncoding DATA=WORD
IiDisp8EVEX HVM
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.ymm, zmm.mem
.xmm.mem:
.xmm.xmm:
IiEmitPrefix VEX.128.66.0F38.W0, EVEX.128.66.0F38.W0
RET
.ymm.mem:
.ymm.xmm:
IiEmitPrefix VEX.256.66.0F38.W0, EVEX.256.66.0F38.W0
RET
.zmm.ymm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
ENDP IizVCVTPH2PS::
- ↑ VCVTPS2PH
- Convert Single-Precision FP value to 16-bit FP value
- Description
- VCVTPS2PH
- Intel reference
VCVTPS2PH xmm1/m64, xmm2, imm8
| VEX.128.66.0F3A.W0 1D /r ib
|
VCVTPS2PH xmm1/m128, ymm2, imm8
| VEX.256.66.0F3A.W0 1D /r ib
|
VCVTPS2PH xmm1/m64 {k1}{z}, xmm2, imm8
| EVEX.128.66.0F3A.W0 1D /r ib
|
VCVTPS2PH xmm1/m128 {k1}{z}, ymm2, imm8
| EVEX.256.66.0F3A.W0 1D /r ib
|
VCVTPS2PH ymm1/m256 {k1}{z}, zmm2{sae}, imm8
| EVEX.512.66.0F3A.W0 1D /r ib
|
- Operands
- 0x1D
- Tested by
- t5230
IizVCVTPS2PH:: PROC
IiRequire SPEC
IiAllowModifier MASK,DATA
IiAllowSuppressing Operand=DH
IiEmitOpcode 0x1D
IiEncoding DATA=WORD
IiDisp8EVEX HVM
IiEmitImm Operand3, BYTE
IiOpEn MR
IiModRM /r
IiDispatchFormat xmm.xmm.imm, mem.xmm.imm, xmm.ymm.imm, mem.ymm.imm, ymm.zmm.imm, mem.zmm.imm
.mem.xmm.imm:
.xmm.xmm.imm:
IiEmitPrefix VEX.128.66.0F3A.W0, EVEX.128.66.0F3A.W0
RET
.mem.ymm.imm:
.xmm.ymm.imm:
IiEmitPrefix VEX.256.66.0F3A.W0, EVEX.256.66.0F3A.W0
RET
.ymm.zmm.imm:
IiAllowModifier SAE
.mem.zmm.imm:
IiEmitPrefix EVEX.512.66.0F3A.W0
RET
ENDP IizVCVTPS2PH::
- ↑ VBROADCASTSS
- Load with Broadcast Floating-Point Data Scalar float32
- Intel reference
VBROADCASTSS xmm1, m32
| VEX.128.66.0F38.W0 18 /r
|
VBROADCASTSS ymm1, m32
| VEX.256.66.0F38.W0 18 /r
|
VBROADCASTSS xmm1 {k1}{z}, xmm2/m32
| EVEX.128.66.0F38.W0 18 /r
|
VBROADCASTSS ymm1 {k1}{z}, xmm2/m32
| EVEX.256.66.0F38.W0 18 /r
|
VBROADCASTSS zmm1 {k1}{z}, xmm2/m32
| EVEX.512.66.0F38.W0 18 /r
|
VBROADCASTSS zmm1 {k1}, m32
| MVEX.512.66.0F38.W0 18 /r
|
- Opcode
- 0x18
- Tested by
- t5240
IizVBROADCASTSS:: PROC
IiAllowModifier MASK
IiEncoding DATA=DWORD
IiEmitOpcode 0x18
IiDisp8EVEX T1S32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.mem, ymm.mem, xmm.xmm, ymm.xmm, zmm.xmm, zmm.mem
.xmm.xmm:
IiEmitPrefix EVEX.128.66.0F38.W0
RET
.ymm.xmm:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.zmm.xmm:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
.xmm.mem:
IiEmitPrefix VEX.128.66.0F38.W0, EVEX.128.66.0F38.W0
RET
.ymm.mem:
IiEmitPrefix VEX.256.66.0F38.W0, EVEX.256.66.0F38.W0
RET
.zmm.mem:
IiDisp8MVEX Df32
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
RET
ENDP IizVBROADCASTSS::
- ↑ VBROADCASTSD
- Load with Broadcast Floating-Point Data Scalar float64
- Intel reference
VBROADCASTSD ymm1, m64
| VEX.256.66.0F38.W0 19 /r
|
VBROADCASTSD ymm1 {k1}{z}, xmm2/m64
| EVEX.256.66.0F38.W1 19 /r
|
VBROADCASTSD zmm1 {k1}{z}, xmm2/m64
| EVEX.512.66.0F38.W1 19 /r
|
VBROADCASTSD zmm1 {k1}, mem
| MVEX.512.66.0F38.W1 19 /r
|
- Opcode
- 0x19
- Tested by
- t5240
IizVBROADCASTSD:: PROC
IiAllowModifier MASK
IiEncoding DATA=QWORD
IiEmitOpcode 0x19
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiDispatchFormat ymm.mem, ymm.xmm, zmm.xmm, zmm.mem
.ymm.xmm:
IiEmitPrefix EVEX.256.66.0F38.W1
RET
.zmm.xmm:
IiEmitPrefix EVEX.512.66.0F38.W1
RET
.ymm.mem:
IiEmitPrefix VEX.256.66.0F38.W0, EVEX.256.66.0F38.W1
RET
.zmm.mem:
IiDisp8MVEX Sn64
IiEmitPrefix EVEX.512.66.0F38.W1, MVEX.512.66.0F38.W1
RET
ENDP IizVBROADCASTSD::
- ↑ VBROADCASTF128
- Load with Broadcast Floating-Point Data Scalar float128
- Intel reference
VBROADCASTF128 ymm1, m128
| VEX.256.66.0F38.W0 1A /r
|
- Opcode
- 0x1A
- Tested by
- t5240
IizVBROADCASTF128:: PROC
IiEncoding DATA=OWORD
IiEmitOpcode 0x1A
IiOpEn RM
IiModRM /r
IiEmitPrefix VEX.256.66.0F38.W0
IiDispatchFormat ymm.mem
.ymm.mem:
RET
ENDP IizVBROADCASTF128::
- ↑ VBROADCASTF32X2
- Load with Broadcast Floating-Point Data two float32
- Intel reference
VBROADCASTF32X2 ymm1 {k1}{z}, xmm2/m64
| EVEX.256.66.0F38.W0 19 /r
|
VBROADCASTF32X2 zmm1 {k1}{z}, xmm2/m64
| EVEX.512.66.0F38.W0 19 /r
|
- Opcode
- 0x19
- Tested by
- t5242
IizVBROADCASTF32X2:: PROC
IiAllowModifier MASK
IiEncoding DATA=DWORD
IiEmitOpcode 0x19
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiDispatchFormat ymm.xmm, ymm.mem, zmm.xmm, zmm.mem
.ymm.mem:
.ymm.xmm:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.zmm.mem:
.zmm.xmm:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
ENDP IizVBROADCASTF32X2::
- ↑ VBROADCASTF32X4
- Load with Broadcast Floating-Point Data four float32
- Intel reference
VBROADCASTF32X4 ymm1 {k1}{z}, m128
| EVEX.256.66.0F38.W0 1A /r
|
VBROADCASTF32X4 zmm1 {k1}{z}, m128
| EVEX.512.66.0F38.W0 1A /r
|
VBROADCASTF32X4 zmm1 {k1}, mem
| MVEX.512.66.0F38.W0 1A /r
|
- Opcode
- 0x1A
- Tested by
- t5242
IizVBROADCASTF32X4:: PROC
IiAllowModifier MASK
IiEncoding DATA=DWORD
IiDisp8EVEX T2F64
IiDisp8MVEX Sn32
IiEmitOpcode 0x1A
IiOpEn RM
IiModRM /r
IiDispatchFormat ymm.mem, zmm.mem
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
RET
ENDP IizVBROADCASTF32X4::
- ↑ VBROADCASTF32X8
- Load with Broadcast Floating-Point Data eight float32
- Intel reference
VBROADCASTF32X8 zmm1 {k1}{z}, m256 | EVEX.512.66.0F38.W0 1B /r
|
- Opcode
- 0x1B
- Tested by
- t5242
IizVBROADCASTF32X8:: PROC
IiAllowModifier MASK
IiEncoding DATA=DWORD
IiEmitOpcode 0x1B
IiDisp8EVEX T4F64
IiOpEn RM
IiModRM /r
IiEmitPrefix EVEX.512.66.0F38.W0
IiDispatchFormat zmm.mem
.zmm.mem:
RET
ENDP IizVBROADCASTF32X8::
- ↑ VBROADCASTF64X2
- Load with Broadcast Floating-Point Data two float64
- Intel reference
VBROADCASTF64X2 ymm1 {k1}{z}, m128
| EVEX.256.66.0F38.W1 1A /r
|
VBROADCASTF64X2 zmm1 {k1}{z}, m128 | EVEX.512.66.0F38.W1 1A /r
|
- Opcode
- 0x1A
- Tested by
- t5242
IizVBROADCASTF64X2:: PROC
IiAllowModifier MASK
IiEncoding DATA=QWORD
IiEmitOpcode 0x1A
IiDisp8EVEX T2F64
IiOpEn RM
IiModRM /r
IiDispatchFormat ymm.mem, zmm.mem
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W1
RET
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W1
RET
ENDP IizVBROADCASTF64X2::
- ↑ VBROADCASTF64X4
- Load with Broadcast Floating-Point Data four float64
- Intel reference
VBROADCASTF64X4 zmm1 {k1}{z}, m256
| EVEX.512.66.0F38.W1 1B /r
|
VBROADCASTF64X4 zmm1 {k1}, mem | MVEX.512.66.0F38.W1 1B /r
|
- Opcode
- 0x1B
- Tested by
- t5242
IizVBROADCASTF64X4:: PROC
IiAllowModifier MASK
IiEncoding DATA=QWORD
IiEmitOpcode 0x1B
IiDisp8EVEX T4F64
IiDisp8MVEX Si64
IiOpEn RM
IiModRM /r
IiEmitPrefix EVEX.512.66.0F38.W1, MVEX.512.66.0F38.W1
IiDispatchFormat zmm.mem
.zmm.mem:
RET
ENDP IizVBROADCASTF64X4::
- ↑ VBROADCASTI32X4
- Broadcast 4xInt32 Vector
- Intel reference
VBROADCASTI32X4 ymm1 {k1}{z}, m128
| EVEX.256.66.0F38.W0 5A /r
|
VBROADCASTI32X4 zmm1 {k1}{z}, m128
| EVEX.512.66.0F38.W0 5A /r
|
VBROADCASTI32X4 zmm1 {k1}, mem
| MVEX.512.66.0F38.W0 5A /r
|
- Opcode
- 0x5A
- Tested by
- t5244
IizVBROADCASTI32X4:: PROC
IiAllowModifier MASK
IiEncoding DATA=DWORD
IiEmitOpcode 0x5A
IiDisp8EVEX T2F64
IiDisp8MVEX Ui32
IiOpEn RM
IiModRM /r
IiDispatchFormat ymm.mem, zmm.mem
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
RET
ENDP IizVBROADCASTI32X4::
- ↑ VBROADCASTI64X4
- Broadcast 4xInt64 Vector
- Intel reference
VBROADCASTI64X4 zmm1 {k1}{z}, mem
| EVEX.512.66.0F38.W1 5B /r
|
VBROADCASTI64X4 zmm1 {k1}, mem
| MVEX.512.66.0F38.W1 5B /r
|
- Opcode
- 0x5B
- Tested by
- t5244
IizVBROADCASTI64X4:: PROC
IiAllowModifier MASK
IiEncoding DATA=QWORD
IiEmitOpcode 0x5B
IiDisp8EVEX T4F64
IiDisp8MVEX Si64
IiOpEn RM
IiModRM /r
IiEmitPrefix EVEX.512.66.0F38.W1, MVEX.512.66.0F38.W1
IiDispatchFormat zmm.mem
.zmm.mem:
RET
ENDP IizVBROADCASTI64X4::
- ↑ VBROADCASTI32X2
- Load Integer and Broadcast two int32
- Intel reference
VBROADCASTI32X2 xmm1 {k1}{z}, xmm2/m64
| EVEX.128.66.0F38.W0 59 /r
|
VBROADCASTI32X2 ymm1 {k1}{z}, xmm2/m64
| EVEX.256.66.0F38.W0 59 /r
|
VBROADCASTI32X2 zmm1 {k1}{z}, xmm2/m64 | EVEX.512.66.0F38.W0 59 /r
|
- Opcode
- 0x59
- Tested by
- t5244
IizVBROADCASTI32X2:: PROC
IiAllowModifier MASK
IiEncoding DATA=DWORD
IiEmitOpcode 0x59
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.xmm, zmm.mem
.xmm.mem:
.xmm.xmm:
IiEmitPrefix EVEX.128.66.0F38.W0
RET
.ymm.mem:
.ymm.xmm:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.zmm.mem:
.zmm.xmm:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
ENDP IizVBROADCASTI32X2::
- ↑ VBROADCASTI128
- Load Integer and Broadcast int128
- Intel reference
VBROADCASTI128 ymm1, m128
| VEX.256.66.0F38.W0 5A /r
|
- Opcode
- 0x5A
- Tested by
- t5246
IizVBROADCASTI128:: PROC
IiEmitOpcode 0x5A
IiEncoding DATA=OWORD
IiOpEn RM
IiModRM /r
IiEmitPrefix VEX.256.66.0F38.W0
IiDispatchFormat ymm.mem
.ymm.mem:
RET
ENDP IizVBROADCASTI128::
- ↑ VBROADCASTI64X2
- Load Integer and Broadcast two int64
- Intel reference
VBROADCASTI64X2 ymm1 {k1}{z}, m128
| EVEX.256.66.0F38.W1 5A /r
|
VBROADCASTI64X2 zmm1 {k1}{z}, m128
| EVEX.512.66.0F38.W1 5A /r
|
- Opcode
- 0x5A
- Tested by
- t5244
IizVBROADCASTI64X2:: PROC
IiAllowModifier MASK
IiEncoding DATA=QWORD
IiEmitOpcode 0x5A
IiDisp8EVEX T2F64
IiOpEn RM
IiModRM /r
IiDispatchFormat ymm.mem, zmm.mem
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W1
RET
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W1
RET
ENDP IizVBROADCASTI64X2::
- ↑ VBROADCASTI32X8
- Load Integer and Broadcast eight int32
- Intel reference
VBROADCASTI32X8 zmm1 {k1}{z}, m256
| EVEX.512.66.0F38.W1 5B /r
|
- Opcode
- 0x5B
- Tested by
- t5244
IizVBROADCASTI32X8:: PROC
IiAllowModifier MASK
IiEmitOpcode 0x5B
IiDisp8EVEX T4F64
IiEncoding DATA=DWORD
IiOpEn RM
IiModRM /r
IiEmitPrefix EVEX.512.66.0F38.W0
IiDispatchFormat zmm.mem
.zmm.mem:
RET
ENDP IizVBROADCASTI32X8::
- ↑ VPBROADCASTB
- Load Integer and Broadcast sixteen int8
- Intel reference
VPBROADCASTB xmm1 {k1}{z}, reg
| EVEX.128.66.0F38.W0 7A /r
|
VPBROADCASTB ymm1 {k1}{z}, reg
| EVEX.256.66.0F38.W0 7A /r
|
VPBROADCASTB zmm1 {k1}{z}, reg
| EVEX.512.66.0F38.W0 7A /r
|
VPBROADCASTB xmm1, xmm2/m8
| VEX.128.66.0F38.W0 78 /r
|
VPBROADCASTB ymm1, xmm2/m8
| VEX.256.66.0F38.W0 78 /r
|
VPBROADCASTB xmm1{k1}{z}, xmm2/m8
| EVEX.128.66.0F38.W0 78 /r
|
VPBROADCASTB ymm1{k1}{z}, xmm2/m8
| EVEX.256.66.0F38.W0 78 /r
|
VPBROADCASTB zmm1{k1}{z}, xmm2/m8
| EVEX.512.66.0F38.W0 78 /r
|
- Opcode
- 0x78 ||0x7A
- Tested by
- t5246
IizVPBROADCASTB:: PROC
IiAllowModifier MASK
IiEncoding DATA=BYTE
MOV AL,0x7A
Dispatch DL,r8:,r16,r32,r64
MOV AL,0x78
.r8:
.r16:
.r32:
.r64:IiEmitOpcode EAX
IiDisp8EVEX T1S8
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.xmm, zmm.mem, \
xmm.r8, xmm.r16, xmm.r32, xmm.r64, \
ymm.r8, ymm.r16, ymm.r32, ymm.r64, \
zmm.r8, zmm.r16, zmm.r32, zmm.r64
.xmm.mem:
.xmm.xmm:
IiEmitPrefix VEX.128.66.0F38.W0, EVEX.128.66.0F38.W0
RET
.ymm.mem:
.ymm.xmm:
IiEmitPrefix VEX.256.66.0F38.W0, EVEX.256.66.0F38.W0
RET
.zmm.mem:
.zmm.xmm:
.zmm.r8:
.zmm.r16:
.zmm.r32:
.zmm.r64:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
.ymm.r8:
.ymm.r16:
.ymm.r32:
.ymm.r64:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.xmm.r8:
.xmm.r16:
.xmm.r32:
.xmm.r64:
IiEmitPrefix EVEX.128.66.0F38.W0
RET
ENDP IizVPBROADCASTB::
- ↑ VPBROADCASTW
- Load Integer and Broadcast eight int16
- Intel reference
VPBROADCASTW xmm1, xmm2/m16
| VEX.128.66.0F38.W0 79 /r
|
VPBROADCASTW ymm1, xmm2/m16
| VEX.256.66.0F38.W0 79 /r
|
VPBROADCASTW xmm1{k1}{z}, xmm2/m16
| EVEX.128.66.0F38.W0 79 /r
|
VPBROADCASTW ymm1{k1}{z}, xmm2/m16
| EVEX.256.66.0F38.W0 79 /r
|
VPBROADCASTW zmm1{k1}{z}, xmm2/m16
| EVEX.512.66.0F38.W0 79 /r
|
VPBROADCASTW xmm1 {k1}{z}, reg
| EVEX.128.66.0F38.W0 7B /r
|
VPBROADCASTW ymm1 {k1}{z}, reg
| EVEX.256.66.0F38.W0 7B /r
|
VPBROADCASTW zmm1 {k1}{z}, reg
| EVEX.512.66.0F38.W0 7B /r
|
- Opcode
- 0x79 || 0x7B
- Tested by
- t5246
IizVPBROADCASTW:: PROC
IiAllowModifier MASK
IiEncoding DATA=WORD
MOV AL,0x7B
Dispatch DL,r16,r32,r64
MOV AL,0x79
.r16:
.r32:
.r64:IiEmitOpcode EAX
IiDisp8EVEX T1S16
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.xmm, zmm.mem, \
xmm.r16, xmm.r32, xmm.r64, \
ymm.r16, ymm.r32, ymm.r64, \
zmm.r16, zmm.r32, zmm.r64
.xmm.mem:
.xmm.xmm:
IiEmitPrefix VEX.128.66.0F38.W0, EVEX.128.66.0F38.W0
RET
.ymm.mem:
.ymm.xmm:
IiEmitPrefix VEX.256.66.0F38.W0, EVEX.256.66.0F38.W0
RET
.zmm.mem:
.zmm.xmm:
.zmm.r16:
.zmm.r32:
.zmm.r64:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
.ymm.r16:
.ymm.r32:
.ymm.r64:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.xmm.r16:
.xmm.r32:
.xmm.r64:
IiEmitPrefix EVEX.128.66.0F38.W0
RET
ENDP IizVPBROADCASTW::
- ↑ VPBROADCASTD
- Load Integer and Broadcast int32
- Intel reference
VPBROADCASTD xmm1, xmm2/m32
| VEX.128.66.0F38.W0 58 /r
|
VPBROADCASTD ymm1, xmm2/m32
| VEX.256.66.0F38.W0 58 /r
|
VPBROADCASTD xmm1 {k1}{z}, xmm2/m32
| EVEX.128.66.0F38.W0 58 /r
|
VPBROADCASTD ymm1 {k1}{z}, xmm2/m32
| EVEX.256.66.0F38.W0 58 /r
|
VPBROADCASTD zmm1 {k1}{z}, xmm2/m32
| EVEX.512.66.0F38.W0 58 /r
|
VPBROADCASTD xmm1 {k1}{z}, r32
| EVEX.128.66.0F38.W0 7C /r
|
VPBROADCASTD ymm1 {k1}{z}, r32
| EVEX.256.66.0F38.W0 7C /r
|
VPBROADCASTD zmm1 {k1}{z}, r32
| EVEX.512.66.0F38.W0 7C /r
|
- Opcode
- 0x58 || 0x7C
- Tested by
- t5246
IizVPBROADCASTD:: PROC
IiAllowModifier MASK
IiEncoding DATA=DWORD
MOV AL,0x7C
Dispatch DL,r32,r64
MOV AL,0x58
.r32:
.r64:IiEmitOpcode EAX
IiDisp8EVEX T1S32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.xmm, zmm.mem, \
xmm.r32, xmm.r64, ymm.r32, ymm.r64, zmm.r32, zmm.r64:
.xmm.mem:
.xmm.xmm:
IiEmitPrefix VEX.128.66.0F38.W0, EVEX.128.66.0F38.W0
RET
.ymm.mem:
.ymm.xmm:
IiEmitPrefix VEX.256.66.0F38.W0, EVEX.256.66.0F38.W0
RET
.zmm.mem:
.zmm.xmm:
.zmm.r32:
.zmm.r64:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
.ymm.r32:
.ymm.r64:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.xmm.r32:
.xmm.r64:
IiEmitPrefix EVEX.128.66.0F38.W0
RET
ENDP IizVPBROADCASTD::
- ↑ VPBROADCASTQ
- Load Integer and Broadcast int64
- Intel reference
VPBROADCASTQ xmm1, xmm2/m64
| VEX.128.66.0F38.W0 59 /r
|
VPBROADCASTQ ymm1, xmm2/m64
| VEX.256.66.0F38.W0 59 /r
|
VPBROADCASTQ xmm1 {k1}{z}, xmm2/m64
| EVEX.128.66.0F38.W1 59 /r
|
VPBROADCASTQ ymm1 {k1}{z}, xmm2/m64
| EVEX.256.66.0F38.W1 59 /r
|
VPBROADCASTQ zmm1 {k1}{z}, xmm2/m64
| EVEX.512.66.0F38.W1 59 /r
|
VPBROADCASTQ xmm1 {k1}{z}, r64
| EVEX.128.66.0F38.W1 7C /r
|
VPBROADCASTQ ymm1 {k1}{z}, r64
| EVEX.256.66.0F38.W1 7C /r
|
VPBROADCASTQ zmm1 {k1}{z}, r64
| EVEX.512.66.0F38.W1 7C /r
|
- Opcode
- 0x59||0x7C
- Tested by
- t5246
IizVPBROADCASTQ:: PROC
IiAllowModifier MASK
IiEncoding DATA=QWORD
MOV AL,0x7C
Dispatch DL,r64
MOV AL,0x59
.r64:IiEmitOpcode EAX
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.xmm, ymm.mem, zmm.xmm, zmm.mem, \
xmm.r64, ymm.r64, zmm.r64
.xmm.mem:
.xmm.xmm:
IiEmitPrefix VEX.128.66.0F38.W0, EVEX.128.66.0F38.W1
RET
.ymm.mem:
.ymm.xmm:
IiEmitPrefix VEX.256.66.0F38.W0, EVEX.256.66.0F38.W1
RET
.zmm.mem:
.zmm.xmm:
.zmm.r64:
IiEmitPrefix EVEX.512.66.0F38.W1
RET
.ymm.r64:
IiEmitPrefix EVEX.256.66.0F38.W1
RET
.xmm.r64:
IiEmitPrefix EVEX.128.66.0F38.W1
RET
ENDP IizVPBROADCASTQ::
- ↑ VALIGND
- Align Doubleword Vectors
- Intel reference
VALIGND xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8
| EVEX.NDS.128.66.0F3A.W0 03 /r ib
|
VALIGND ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8
| EVEX.NDS.256.66.0F3A.W0 03 /r ib
|
VALIGND zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst, imm8
| EVEX.NDS.512.66.0F3A.W0 03 /r ib
|
VALIGND zmm1 {k1}{z}, zmm2, zmm3/m512/mem, imm8
| MVEX.NDS.512.66.0F3A.W0 03 /r ib
|
- Opcode
- 0x03
- Tested by
- t5250
IizVALIGND:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD, Operand=DH
IiEncoding DATA=DWORD
IiEmitOpcode 0x03
IiDisp8EVEX FV32
IiDisp8MVEX Si64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, ymm.ymm.mem.imm, zmm.zmm.zmm.imm, zmm.zmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix EVEX.NDS.128.66.0F3A.W0
RET
.ymm.ymm.ymm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix EVEX.NDS.256.66.0F3A.W0
RET
.zmm.zmm.zmm.imm:
.zmm.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.66.0F3A.W0, MVEX.NDS.512.66.0F3A.W0
RET
ENDP IizVALIGND::
- ↑ VALIGNQ
- Align Quadword Vectors
- Intel reference
VALIGNQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8
| EVEX.NDS.128.66.0F3A.W1 03 /r ib
|
VALIGNQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8
| EVEX.NDS.256.66.0F3A.W1 03 /r ib
|
VALIGNQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst, imm8
| EVEX.NDS.512.66.0F3A.W1 03 /r ib
|
- Opcode
- 0x03
- Tested by
- t5250
IizVALIGNQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD, Operand=DH
IiEncoding DATA=QWORD
IiEmitOpcode 0x03
IiDisp8EVEX FV64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, \
ymm.ymm.mem.imm, zmm.zmm.zmm.imm, zmm.zmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix EVEX.NDS.128.66.0F3A.W1
RET
.ymm.ymm.ymm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix EVEX.NDS.256.66.0F3A.W1
RET
.zmm.zmm.zmm.imm:
.zmm.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.66.0F3A.W1
RET
ENDP IizVALIGNQ::
- ↑ VPBLENDMB
- Blend Byte Vectors Using an Opmask Control
- Intel reference
VPBLENDMB xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F38.W0 66 /r
|
VPBLENDMB ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F38.W0 66 /r
|
VPBLENDMB zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F38.W0 66 /r
|
- Opcode
- 0x66
- Tested by
- t5252
IizVPBLENDMB:: PROC
IiAllowModifier MASK
IiEncoding DATA=BYTE
IiEmitOpcode 0x66
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix EVEX.NDS.128.66.0F38.W0
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix EVEX.NDS.256.66.0F38.W0
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W0
RET
ENDP IizVPBLENDMB::
- ↑ VPBLENDMW
- Blend Word Vectors Using an Opmask Control
- Intel reference
VPBLENDMW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F38.W1 66 /r
|
VPBLENDMW ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F38.W1 66 /r
|
VPBLENDMW zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F38.W1 66 /r
|
- Opcode
- 0x66
- Tested by
- t5252
IizVPBLENDMW:: PROC
IiAllowModifier MASK
IiEncoding DATA=WORD
IiEmitOpcode 0x66
IiDisp8EVEX FVM
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix EVEX.NDS.128.66.0F38.W1
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix EVEX.NDS.256.66.0F38.W1
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W1
RET
ENDP IizVPBLENDMW::
- ↑ VPBLENDMD
- Blend Int32 Vectors Using an OpMask Control
- Intel reference
VPBLENDMD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F38.W0 64 /r
|
VPBLENDMD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F38.W0 64 /r
|
VPBLENDMD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F38.W0 64 /r
|
VPBLENDMD zmm1 {k1}, zmm2, zmm3/mem
| MVEX.NDS.512.66.0F38.W0 64 /r
|
- Opcode
- 0x64
- Tested by
- t5252
IizVPBLENDMD:: PROC
IiAllowModifier MASK,EH
IiAllowBroadcasting DWORD
IiEmitOpcode 0x64
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FV32
IiDisp8MVEX Si32
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix EVEX.NDS.128.66.0F38.W0
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix EVEX.NDS.256.66.0F38.W0
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W0, MVEX.NDS.512.66.0F38.W0
RET
ENDP IizVPBLENDMD::
- ↑ VPBLENDMQ
- Blend Int64 Vectors Using an OpMask Control
- Intel reference
VPBLENDMQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F38.W1 64 /r
|
VPBLENDMQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F38.W1 64 /r
|
VPBLENDMQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F38.W1 64 /r
|
VPBLENDMQ zmm1 {k1}, zmm2, zmm3/mem
| MVEX.NDS.512.66.0F38.W1 64 /r
|
- Opcode
- 0x64
- Tested by
- t5252
IizVPBLENDMQ:: PROC
IiAllowModifier MASK,EH
IiAllowBroadcasting QWORD
IiEmitOpcode 0x64
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FV64
IiDisp8MVEX Ub64
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix EVEX.NDS.128.66.0F38.W1
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix EVEX.NDS.256.66.0F38.W1
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W1, MVEX.NDS.512.66.0F38.W1
RET
ENDP IizVPBLENDMQ::
- ↑ VBLENDMPS
- Blend Float32 Vectors using the Instruction Mask
- Intel reference
VBLENDMPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F38.W0 65 /r
|
VBLENDMPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F38.W0 65 /r
|
VBLENDMPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F38.W0 65 /r
|
VBLENDMPS zmm1 {k1}, zmm2, zmm3/mem
| MVEX.NDS.512.66.0F38.W0 65 /r
|
- Opcode
- 0x65
- Tested by
- t5254
IizVBLENDMPS:: PROC
IiAllowModifier MASK,EH
IiAllowBroadcasting DWORD
IiEmitOpcode 0x65
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FV32
IiDisp8MVEX Us32
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix EVEX.NDS.128.66.0F38.W0
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix EVEX.NDS.256.66.0F38.W0
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W0, MVEX.NDS.512.66.0F38.W0
RET
ENDP IizVBLENDMPS::
- ↑ VBLENDMPD
- Blend Float64 Vectors Using the Instruction Mask
- Intel reference
VBLENDMPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F38.W1 65 /r
|
VBLENDMPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F38.W1 65 /r
|
VBLENDMPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F38.W1 65 /r
|
VBLENDMPD zmm1 {k1}, zmm2, zmm3/mem
| MVEX.NDS.512.66.0F38.W1 65 /r
|
- Opcode
- 0x65
- Tested by
- t5254
IizVBLENDMPD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiEmitOpcode 0x65
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FV64
IiDisp8MVEX Ub64
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix EVEX.NDS.128.66.0F38.W1
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix EVEX.NDS.256.66.0F38.W1
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W1, MVEX.NDS.512.66.0F38.W1
RET
ENDP IizVBLENDMPD::
- ↑ VCMPSS
- Compare Scalar Single-FP Values
- Intel reference
VCMPSS xmm1, xmm2, xmm3/m32, imm8
| VEX.NDS.128.F3.0F.WIG C2 /r ib
|
VCMPSS k1 {k2}, xmm2, xmm3/m32{sae}, imm8
| EVEX.NDS.LIG.F3.0F.W0 C2 /r ib
|
- Operands
- xmm/krg,xmm,xmm/mem,imm
- Opcode
- 0xC2 /r ib
- See also
- VCMPSD
VCMPPS
VCMPPD
- Tested by
- t5260
IizVCMPSS:: PROC
IiAllowModifier MASK
IiEmitOpcode 0xC2
IiDisp8EVEX T1S32
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE, Max=31
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, krg.xmm.xmm.imm, krg.xmm.mem.imm
.cc: ; This entry is called with format xmm/krg,xmm,xmm/mem (no immediate).
IiImmCreate CL
JMP IizVCMPSS: ; Continue as if the condition were specified by imm value.
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix VEX.NDS.128.F3.0F.WIG
RET
.krg.xmm.xmm.imm:
IiAllowModifier SAE
.krg.xmm.mem.imm:
IiEmitPrefix EVEX.NDS.LIG.F3.0F.W0
RET
ENDP IizVCMPSS::
- ↑ VCMPEQSS
- Compare Scalar Single-FP values Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x00
IizVCMPEQSS:: PROC
MOV CL,0x00
JMP IizVCMPSS.cc:
ENDP IizVCMPEQSS::
- ↑ VCMPLTSS
- Compare Scalar Single-FP values Less Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x01
IizVCMPLTSS:: PROC
MOV CL,0x01
JMP IizVCMPSS.cc:
ENDP IizVCMPLTSS::
- ↑ VCMPLESS
- Compare Scalar Single-FP values Less than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x02
IizVCMPLESS:: PROC
MOV CL,0x02
JMP IizVCMPSS.cc:
ENDP IizVCMPLESS::
- ↑ VCMPUNORDSS
- Compare Scalar Single-FP values Unordered
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x03
IizVCMPUNORDSS:: PROC
MOV CL,0x03
JMP IizVCMPSS.cc:
ENDP IizVCMPUNORDSS::
- ↑ VCMPNEQSS
- Compare Scalar Single-FP values Not Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x04
IizVCMPNEQSS:: PROC
MOV CL,0x04
JMP IizVCMPSS.cc:
ENDP IizVCMPNEQSS::
- ↑ VCMPNLTSS
- Compare Scalar Single-FP values Not Less Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x05
IizVCMPNLTSS:: PROC
MOV CL,0x05
JMP IizVCMPSS.cc:
ENDP IizVCMPNLTSS::
- ↑ VCMPNLESS
- Compare Scalar Single-FP values Not Less than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x06
IizVCMPNLESS:: PROC
MOV CL,0x06
JMP IizVCMPSS.cc:
ENDP IizVCMPNLESS::
- ↑ VCMPORDSS
- Compare Scalar Single-FP values Ordered
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x07
IizVCMPORDSS:: PROC
MOV CL,0x07
JMP IizVCMPSS.cc:
ENDP IizVCMPORDSS::
- ↑ VCMPNGESS
- Compare Scalar Single-FP values Not Greater than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x09
IizVCMPNGESS:: PROC
MOV CL,0x09
JMP IizVCMPSS.cc:
ENDP IizVCMPNGESS::
- ↑ VCMPNGTSS
- Compare Scalar Single-FP values Not Greater Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0A
IizVCMPNGTSS:: PROC
MOV CL,0x0A
JMP IizVCMPSS.cc:
ENDP IizVCMPNGTSS::
- ↑ VCMPFALSESS
- Compare Scalar Single-FP values False
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0B
IizVCMPFALSESS:: PROC
MOV CL,0x0B
JMP IizVCMPSS.cc:
ENDP IizVCMPFALSESS::
- ↑ VCMPGESS
- Compare Scalar Single-FP values Greater than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0D
IizVCMPGESS:: PROC
MOV CL,0x0D
JMP IizVCMPSS.cc:
ENDP IizVCMPGESS::
- ↑ VCMPGTSS
- Compare Scalar Single-FP values Greater Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0E
IizVCMPGTSS:: PROC
MOV CL,0x0E
JMP IizVCMPSS.cc:
ENDP IizVCMPGTSS::
- ↑ VCMPTRUESS
- Compare Scalar Single-FP values True
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0F
IizVCMPTRUESS:: PROC
MOV CL,0x0F
JMP IizVCMPSS.cc:
ENDP IizVCMPTRUESS::
- ↑ VCMPEQ_OQSS
- Compare Scalar Single-FP values Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x00
IizVCMPEQ_OQSS:: PROC
MOV CL,0x00
JMP IizVCMPSS.cc:
ENDP IizVCMPEQ_OQSS::
- ↑ VCMPLT_OSSS
- Compare Scalar Single-FP values Less Than, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x01
IizVCMPLT_OSSS:: PROC
MOV CL,0x01
JMP IizVCMPSS.cc:
ENDP IizVCMPLT_OSSS::
- ↑ VCMPLE_OSSS
- Compare Scalar Single-FP values Less than or Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x02
IizVCMPLE_OSSS:: PROC
MOV CL,0x02
JMP IizVCMPSS.cc:
ENDP IizVCMPLE_OSSS::
- ↑ VCMPUNORD_QSS
- Compare Scalar Single-FP values Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x03
IizVCMPUNORD_QSS:: PROC
MOV CL,0x03
JMP IizVCMPSS.cc:
ENDP IizVCMPUNORD_QSS::
- ↑ VCMPNEQ_UQSS
- Compare Scalar Single-FP values Not Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x04
IizVCMPNEQ_UQSS:: PROC
MOV CL,0x04
JMP IizVCMPSS.cc:
ENDP IizVCMPNEQ_UQSS::
- ↑ VCMPNLT_USSS
- Compare Scalar Single-FP values Not Less Than, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x05
IizVCMPNLT_USSS:: PROC
MOV CL,0x05
JMP IizVCMPSS.cc:
ENDP IizVCMPNLT_USSS::
- ↑ VCMPNLE_USSS
- Compare Scalar Single-FP values Not Less than or Equal,Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x06
IizVCMPNLE_USSS:: PROC
MOV CL,0x06
JMP IizVCMPSS.cc:
ENDP IizVCMPNLE_USSS::
- ↑ VCMPORD_QSS
- Compare Scalar Single-FP values Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x07
IizVCMPORD_QSS:: PROC
MOV CL,0x07
JMP IizVCMPSS.cc:
ENDP IizVCMPORD_QSS::
- ↑ VCMPEQ_UQSS
- Compare Scalar Single-FP values Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x08
IizVCMPEQ_UQSS:: PROC
MOV CL,0x08
JMP IizVCMPSS.cc:
ENDP IizVCMPEQ_UQSS::
- ↑ VCMPNGE_USSS
- Compare Scalar Single-FP values Not Greater than or Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x09
IizVCMPNGE_USSS:: PROC
MOV CL,0x09
JMP IizVCMPSS.cc:
ENDP IizVCMPNGE_USSS::
- ↑ VCMPNGT_USSS
- Compare Scalar Single-FP values Not Greater Than, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0A
IizVCMPNGT_USSS:: PROC
MOV CL,0x0A
JMP IizVCMPSS.cc:
ENDP IizVCMPNGT_USSS::
- ↑ VCMPFALSE_OQSS
- Compare Scalar Single-FP values False, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0B
IizVCMPFALSE_OQSS:: PROC
MOV CL,0x0B
JMP IizVCMPSS.cc:
ENDP IizVCMPFALSE_OQSS::
- ↑ VCMPNEQ_OQSS
- Compare Scalar Single-FP values Not Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0C
IizVCMPNEQ_OQSS:: PROC
MOV CL,0x0C
JMP IizVCMPSS.cc:
ENDP IizVCMPNEQ_OQSS::
- ↑ VCMPGE_OSSS
- Compare Scalar Single-FP values Greater than or Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0D
IizVCMPGE_OSSS:: PROC
MOV CL,0x0D
JMP IizVCMPSS.cc:
ENDP IizVCMPGE_OSSS::
- ↑ VCMPGT_OSSS
- Compare Scalar Single-FP values Greater Than, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0E
IizVCMPGT_OSSS:: PROC
MOV CL,0x0E
JMP IizVCMPSS.cc:
ENDP IizVCMPGT_OSSS::
- ↑ VCMPTRUE_UQSS
- Compare Scalar Single-FP values True, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0F
IizVCMPTRUE_UQSS:: PROC
MOV CL,0x0F
JMP IizVCMPSS.cc:
ENDP IizVCMPTRUE_UQSS::
- ↑ VCMPEQ_OSSS
- Compare Scalar Single-FP values Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x10
IizVCMPEQ_OSSS:: PROC
MOV CL,0x10
JMP IizVCMPSS.cc:
ENDP IizVCMPEQ_OSSS::
- ↑ VCMPLT_OQSS
- Compare Scalar Single-FP values Less Than, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x11
IizVCMPLT_OQSS:: PROC
MOV CL,0x11
JMP IizVCMPSS.cc:
ENDP IizVCMPLT_OQSS::
- ↑ VCMPLE_OQSS
- Compare Scalar Single-FP values Less than or Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x12
IizVCMPLE_OQSS:: PROC
MOV CL,0x12
JMP IizVCMPSS.cc:
ENDP IizVCMPLE_OQSS::
- ↑ VCMPUNORD_SSS
- Compare Scalar Single-FP values Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x13
IizVCMPUNORD_SSS:: PROC
MOV CL,0x13
JMP IizVCMPSS.cc:
ENDP IizVCMPUNORD_SSS::
- ↑ VCMPNEQ_USSS
- Compare Scalar Single-FP values Not Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x14
IizVCMPNEQ_USSS:: PROC
MOV CL,0x14
JMP IizVCMPSS.cc:
ENDP IizVCMPNEQ_USSS::
- ↑ VCMPNLT_UQSS
- Compare Scalar Single-FP values Not Less Than, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x15
IizVCMPNLT_UQSS:: PROC
MOV CL,0x15
JMP IizVCMPSS.cc:
ENDP IizVCMPNLT_UQSS::
- ↑ VCMPNLE_UQSS
- Compare Scalar Single-FP values Not Less than or Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x16
IizVCMPNLE_UQSS:: PROC
MOV CL,0x16
JMP IizVCMPSS.cc:
ENDP IizVCMPNLE_UQSS::
- ↑ VCMPORD_SSS
- Compare Scalar Single-FP values Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x17
IizVCMPORD_SSS:: PROC
MOV CL,0x17
JMP IizVCMPSS.cc:
ENDP IizVCMPORD_SSS::
- ↑ VCMPEQ_USSS
- Compare Scalar Single-FP values Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x18
IizVCMPEQ_USSS:: PROC
MOV CL,0x18
JMP IizVCMPSS.cc:
ENDP IizVCMPEQ_USSS::
- ↑ VCMPNGE_UQSS
- Compare Scalar Single-FP values Not Greater than or Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x19
IizVCMPNGE_UQSS:: PROC
MOV CL,0x19
JMP IizVCMPSS.cc:
ENDP IizVCMPNGE_UQSS::
- ↑ VCMPNGT_UQSS
- Compare Scalar Single-FP values Not Greater Than, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1A
IizVCMPNGT_UQSS:: PROC
MOV CL,0x1A
JMP IizVCMPSS.cc:
ENDP IizVCMPNGT_UQSS::
- ↑ VCMPFALSE_OSSS
- Compare Scalar Single-FP values False, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1B
IizVCMPFALSE_OSSS:: PROC
MOV CL,0x1B
JMP IizVCMPSS.cc:
ENDP IizVCMPFALSE_OSSS::
- ↑ VCMPNEQ_OSSS
- Compare Scalar Single-FP values Not Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1C
IizVCMPNEQ_OSSS:: PROC
MOV CL,0x1C
JMP IizVCMPSS.cc:
ENDP IizVCMPNEQ_OSSS::
- ↑ VCMPGE_OQSS
- Compare Scalar Single-FP values Greater than or Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1D
IizVCMPGE_OQSS:: PROC
MOV CL,0x1D
JMP IizVCMPSS.cc:
ENDP IizVCMPGE_OQSS::
- ↑ VCMPGT_OQSS
- Compare Scalar Single-FP values Greater Than, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1E
IizVCMPGT_OQSS:: PROC
MOV CL,0x1E
JMP IizVCMPSS.cc:
ENDP IizVCMPGT_OQSS::
- ↑ VCMPTRUE_USSS
- Compare Scalar Single-FP values True, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1F
IizVCMPTRUE_USSS:: PROC
MOV CL,0x1F
JMP IizVCMPSS.cc:
ENDP IizVCMPTRUE_USSS::
- ↑ VCMPSD
- Compare Scalar Double-FP Values
- Intel reference
VCMPSD xmm1, xmm2, xmm3/m64, imm8
| VEX.NDS.128.F2.0F.WIG C2 /r ib
|
VCMPSD k1 {k2}, xmm2, xmm3/m64{sae}, imm8
| EVEX.NDS.LIG.F2.0F.W1 C2 /r ib
|
- Operands
- xmm/krg,xmm,xmm/mem,imm
- Opcode
- 0xC2 /r ib
- See also
- VCMPSS
VCMPPS
VCMPPD
- Tested by
- t5262
IizVCMPSD:: PROC
IiAllowModifier MASK
IiAllowSuppressing Operand=DH, Register=xmm
IiEmitOpcode 0xC2
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE, Max=31
IiDisp8EVEX T1S64
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, krg.xmm.xmm.imm, krg.xmm.mem.imm
.cc: ; This entry is called with format xmm/krg,xmm,xmm/mem (no immediate).
IiImmCreate CL
JMP IizVCMPSD: ; Continue as if the condition were specified by imm value.
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix VEX.NDS.128.F2.0F.WIG
RET
.krg.xmm.xmm.imm:
.krg.xmm.mem.imm:
IiEmitPrefix EVEX.NDS.LIG.F2.0F.W1
RET
ENDP IizVCMPSD::
- ↑ VCMPEQSD
- Compare Scalar Double-FP values Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x00
IizVCMPEQSD:: PROC
MOV CL,0x00
JMP IizVCMPSD.cc:
ENDP IizVCMPEQSD::
- ↑ VCMPLTSD
- Compare Scalar Double-FP values Less Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x01
IizVCMPLTSD:: PROC
MOV CL,0x01
JMP IizVCMPSD.cc:
ENDP IizVCMPLTSD::
- ↑ VCMPLESD
- Compare Scalar Double-FP values Less than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x02
IizVCMPLESD:: PROC
MOV CL,0x02
JMP IizVCMPSD.cc:
ENDP IizVCMPLESD::
- ↑ VCMPUNORDSD
- Compare Scalar Double-FP values Unordered
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x03
IizVCMPUNORDSD:: PROC
MOV CL,0x03
JMP IizVCMPSD.cc:
ENDP IizVCMPUNORDSD::
- ↑ VCMPNEQSD
- Compare Scalar Double-FP values Not Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x04
IizVCMPNEQSD:: PROC
MOV CL,0x04
JMP IizVCMPSD.cc:
ENDP IizVCMPNEQSD::
- ↑ VCMPNLTSD
- Compare Scalar Double-FP values Not Less Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x05
IizVCMPNLTSD:: PROC
MOV CL,0x05
JMP IizVCMPSD.cc:
ENDP IizVCMPNLTSD::
- ↑ VCMPNLESD
- Compare Scalar Double-FP values Not Less than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x06
IizVCMPNLESD:: PROC
MOV CL,0x06
JMP IizVCMPSD.cc:
ENDP IizVCMPNLESD::
- ↑ VCMPORDSD
- Compare Scalar Double-FP values Ordered
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x07
IizVCMPORDSD:: PROC
MOV CL,0x07
JMP IizVCMPSD.cc:
ENDP IizVCMPORDSD::
- ↑ VCMPNGESD
- Compare Scalar Double-FP values Not Greater than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x09
IizVCMPNGESD:: PROC
MOV CL,0x09
JMP IizVCMPSD.cc:
ENDP IizVCMPNGESD::
- ↑ VCMPNGTSD
- Compare Scalar Double-FP values Not Greater Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0A
IizVCMPNGTSD:: PROC
MOV CL,0x0A
JMP IizVCMPSD.cc:
ENDP IizVCMPNGTSD::
- ↑ VCMPFALSESD
- Compare Scalar Double-FP values False
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0B
IizVCMPFALSESD:: PROC
MOV CL,0x0B
JMP IizVCMPSD.cc:
ENDP IizVCMPFALSESD::
- ↑ VCMPGESD
- Compare Scalar Double-FP values Greater than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0D
IizVCMPGESD:: PROC
MOV CL,0x0D
JMP IizVCMPSD.cc:
ENDP IizVCMPGESD::
- ↑ VCMPGTSD
- Compare Scalar Double-FP values Greater Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0E
IizVCMPGTSD:: PROC
MOV CL,0x0E
JMP IizVCMPSD.cc:
ENDP IizVCMPGTSD::
- ↑ VCMPTRUESD
- Compare Scalar Double-FP values True
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0F
IizVCMPTRUESD:: PROC
MOV CL,0x0F
JMP IizVCMPSD.cc:
ENDP IizVCMPTRUESD::
- ↑ VCMPEQ_OQSD
- Compare Scalar Double-FP values Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x00
IizVCMPEQ_OQSD:: PROC
MOV CL,0x00
JMP IizVCMPSD.cc:
ENDP IizVCMPEQ_OQSD::
- ↑ VCMPLT_OSSD
- Compare Scalar Double-FP values Less Than, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x01
IizVCMPLT_OSSD:: PROC
MOV CL,0x01
JMP IizVCMPSD.cc:
ENDP IizVCMPLT_OSSD::
- ↑ VCMPLE_OSSD
- Compare Scalar Double-FP values Less than or Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x02
IizVCMPLE_OSSD:: PROC
MOV CL,0x02
JMP IizVCMPSD.cc:
ENDP IizVCMPLE_OSSD::
- ↑ VCMPUNORD_QSD
- Compare Scalar Double-FP values Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x03
IizVCMPUNORD_QSD:: PROC
MOV CL,0x03
JMP IizVCMPSD.cc:
ENDP IizVCMPUNORD_QSD::
- ↑ VCMPNEQ_UQSD
- Compare Scalar Double-FP values Not Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x04
IizVCMPNEQ_UQSD:: PROC
MOV CL,0x04
JMP IizVCMPSD.cc:
ENDP IizVCMPNEQ_UQSD::
- ↑ VCMPNLT_USSD
- Compare Scalar Double-FP values Not Less Than, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x05
IizVCMPNLT_USSD:: PROC
MOV CL,0x05
JMP IizVCMPSD.cc:
ENDP IizVCMPNLT_USSD::
- ↑ VCMPNLE_USSD
- Compare Scalar Double-FP values Not Less than or Equal,Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x06
IizVCMPNLE_USSD:: PROC
MOV CL,0x06
JMP IizVCMPSD.cc:
ENDP IizVCMPNLE_USSD::
- ↑ VCMPORD_QSD
- Compare Scalar Double-FP values Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x07
IizVCMPORD_QSD:: PROC
MOV CL,0x07
JMP IizVCMPSD.cc:
ENDP IizVCMPORD_QSD::
- ↑ VCMPEQ_UQSD
- Compare Scalar Double-FP values Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x08
IizVCMPEQ_UQSD:: PROC
MOV CL,0x08
JMP IizVCMPSD.cc:
ENDP IizVCMPEQ_UQSD::
- ↑ VCMPNGE_USSD
- Compare Scalar Double-FP values Not Greater than or Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x09
IizVCMPNGE_USSD:: PROC
MOV CL,0x09
JMP IizVCMPSD.cc:
ENDP IizVCMPNGE_USSD::
- ↑ VCMPNGT_USSD
- Compare Scalar Double-FP values Not Greater Than, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0A
IizVCMPNGT_USSD:: PROC
MOV CL,0x0A
JMP IizVCMPSD.cc:
ENDP IizVCMPNGT_USSD::
- ↑ VCMPFALSE_OQSD
- Compare Scalar Double-FP values False, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0B
IizVCMPFALSE_OQSD:: PROC
MOV CL,0x0B
JMP IizVCMPSD.cc:
ENDP IizVCMPFALSE_OQSD::
- ↑ VCMPNEQ_OQSD
- Compare Scalar Double-FP values Not Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0C
IizVCMPNEQ_OQSD:: PROC
MOV CL,0x0C
JMP IizVCMPSD.cc:
ENDP IizVCMPNEQ_OQSD::
- ↑ VCMPGE_OSSD
- Compare Scalar Double-FP values Greater than or Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0D
IizVCMPGE_OSSD:: PROC
MOV CL,0x0D
JMP IizVCMPSD.cc:
ENDP IizVCMPGE_OSSD::
- ↑ VCMPGT_OSSD
- Compare Scalar Double-FP values Greater Than, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0E
IizVCMPGT_OSSD:: PROC
MOV CL,0x0E
JMP IizVCMPSD.cc:
ENDP IizVCMPGT_OSSD::
- ↑ VCMPTRUE_UQSD
- Compare Scalar Double-FP values True, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0F
IizVCMPTRUE_UQSD:: PROC
MOV CL,0x0F
JMP IizVCMPSD.cc:
ENDP IizVCMPTRUE_UQSD::
- ↑ VCMPEQ_OSSD
- Compare Scalar Double-FP values Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x10
IizVCMPEQ_OSSD:: PROC
MOV CL,0x10
JMP IizVCMPSD.cc:
ENDP IizVCMPEQ_OSSD::
- ↑ VCMPLT_OQSD
- Compare Scalar Double-FP values Less Than, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x11
IizVCMPLT_OQSD:: PROC
MOV CL,0x11
JMP IizVCMPSD.cc:
ENDP IizVCMPLT_OQSD::
- ↑ VCMPLE_OQSD
- Compare Scalar Double-FP values Less than or Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x12
IizVCMPLE_OQSD:: PROC
MOV CL,0x12
JMP IizVCMPSD.cc:
ENDP IizVCMPLE_OQSD::
- ↑ VCMPUNORD_SSD
- Compare Scalar Double-FP values Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x13
IizVCMPUNORD_SSD:: PROC
MOV CL,0x13
JMP IizVCMPSD.cc:
ENDP IizVCMPUNORD_SSD::
- ↑ VCMPNEQ_USSD
- Compare Scalar Double-FP values Not Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x14
IizVCMPNEQ_USSD:: PROC
MOV CL,0x14
JMP IizVCMPSD.cc:
ENDP IizVCMPNEQ_USSD::
- ↑ VCMPNLT_UQSD
- Compare Scalar Double-FP values Not Less Than, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x15
IizVCMPNLT_UQSD:: PROC
MOV CL,0x15
JMP IizVCMPSD.cc:
ENDP IizVCMPNLT_UQSD::
- ↑ VCMPNLE_UQSD
- Compare Scalar Double-FP values Not Less than or Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x16
IizVCMPNLE_UQSD:: PROC
MOV CL,0x16
JMP IizVCMPSD.cc:
ENDP IizVCMPNLE_UQSD::
- ↑ VCMPORD_SSD
- Compare Scalar Double-FP values Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x17
IizVCMPORD_SSD:: PROC
MOV CL,0x17
JMP IizVCMPSD.cc:
ENDP IizVCMPORD_SSD::
- ↑ VCMPEQ_USSD
- Compare Scalar Double-FP values Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x18
IizVCMPEQ_USSD:: PROC
MOV CL,0x18
JMP IizVCMPSD.cc:
ENDP IizVCMPEQ_USSD::
- ↑ VCMPNGE_UQSD
- Compare Scalar Double-FP values Not Greater than or Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x19
IizVCMPNGE_UQSD:: PROC
MOV CL,0x19
JMP IizVCMPSD.cc:
ENDP IizVCMPNGE_UQSD::
- ↑ VCMPNGT_UQSD
- Compare Scalar Double-FP values Not Greater Than, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1A
IizVCMPNGT_UQSD:: PROC
MOV CL,0x1A
JMP IizVCMPSD.cc:
ENDP IizVCMPNGT_UQSD::
- ↑ VCMPFALSE_OSSD
- Compare Scalar Double-FP values False, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1B
IizVCMPFALSE_OSSD:: PROC
MOV CL,0x1B
JMP IizVCMPSD.cc:
ENDP IizVCMPFALSE_OSSD::
- ↑ VCMPNEQ_OSSD
- Compare Scalar Double-FP values Not Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1C
IizVCMPNEQ_OSSD:: PROC
MOV CL,0x1C
JMP IizVCMPSD.cc:
ENDP IizVCMPNEQ_OSSD::
- ↑ VCMPGE_OQSD
- Compare Scalar Double-FP values Greater than or Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1D
IizVCMPGE_OQSD:: PROC
MOV CL,0x1D
JMP IizVCMPSD.cc:
ENDP IizVCMPGE_OQSD::
- ↑ VCMPGT_OQSD
- Compare Scalar Double-FP values Greater Than, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1E
IizVCMPGT_OQSD:: PROC
MOV CL,0x1E
JMP IizVCMPSD.cc:
ENDP IizVCMPGT_OQSD::
- ↑ VCMPTRUE_USSD
- Compare Scalar Double-FP values True, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1F
IizVCMPTRUE_USSD:: PROC
MOV CL,0x1F
JMP IizVCMPSD.cc:
ENDP IizVCMPTRUE_USSD::
- ↑ VCMPPS
- Compare Packed Single-FP Values
- Intel reference
VCMPPS xmm1, xmm2, xmm3/m128, imm8
| VEX.NDS.128.0F.WIG C2 /r ib
|
VCMPPS ymm1, ymm2, ymm3/m256, imm8
| VEX.NDS.256.0F.WIG C2 /r ib
|
VCMPPS k1 {k2}, xmm2, xmm3/m128/m32bcst, imm8
| EVEX.NDS.128.0F.W0 C2 /r ib
|
VCMPPS k1 {k2}, ymm2, ymm3/m256/m32bcst, imm8
| EVEX.NDS.256.0F.W0 C2 /r ib
|
VCMPPS k1 {k2}, zmm2, zmm3/m512/m32bcst{sae}, imm8
| EVEX.NDS.512.0F.W0 C2 /r ib
|
VCMPPS k2 {k1}, zmm1, zmm2/mem, imm8
| MVEX.NDS.512.0F.W0 C2 /r ib
|
---|
- Opcode
- 0xC2 /r imm8
- See also
- VCMPSS
VCMPSD
VCMPPD
- Tested by
- t5264
IizVCMPPS:: PROC
IiAllowModifier MASK,EH
IiAllowBroadcasting DWORD, Operand=DH
IiAllowSuppressing Operand=DH
IiEmitOpcode 0xC2
IiDisp8EVEX FV32
IiDisp8MVEX Us32
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE, Max=31
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, ymm.ymm.mem.imm,\
krg.xmm.xmm.imm, krg.xmm.mem.imm, krg.ymm.ymm.imm, krg.ymm.mem.imm, \
krg.zmm.zmm.imm, krg.zmm.mem.imm
.cc: ; This entry is called with format xmm/krg,xmm,xmm/mem (no immediate).
IiImmCreate CL
JMP IizVCMPPS: ; Continue as if the condition were specified by imm value.
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix VEX.NDS.128.0F.WIG
RET
.ymm.ymm.ymm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix VEX.NDS.256.0F.WIG
RET
.krg.xmm.mem.imm:
.krg.xmm.xmm.imm:
IiEmitPrefix EVEX.NDS.128.0F.W0
RET
.krg.ymm.mem.imm:
.krg.ymm.ymm.imm:
IiEmitPrefix EVEX.NDS.256.0F.W0
RET
.krg.zmm.zmm.imm:
.krg.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.0F.W0, MVEX.NDS.512.0F.W0
RET
ENDP IizVCMPPS::
- ↑ VCMPEQPS
- Compare Packed Single-FP values Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x00
IizVCMPEQPS:: PROC
MOV CL,0x00
JMP IizVCMPPS.cc:
ENDP IizVCMPEQPS::
- ↑ VCMPLTPS
- Compare Packed Single-FP values Less Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x01
IizVCMPLTPS:: PROC
MOV CL,0x01
JMP IizVCMPPS.cc:
ENDP IizVCMPLTPS::
- ↑ VCMPLEPS
- Compare Packed Single-FP values Less than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x02
IizVCMPLEPS:: PROC
MOV CL,0x02
JMP IizVCMPPS.cc:
ENDP IizVCMPLEPS::
- ↑ VCMPUNORDPS
- Compare Packed Single-FP values Unordered
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x03
IizVCMPUNORDPS:: PROC
MOV CL,0x03
JMP IizVCMPPS.cc:
ENDP IizVCMPUNORDPS::
- ↑ VCMPNEQPS
- Compare Packed Single-FP values Not Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x04
IizVCMPNEQPS:: PROC
MOV CL,0x04
JMP IizVCMPPS.cc:
ENDP IizVCMPNEQPS::
- ↑ VCMPNLTPS
- Compare Packed Single-FP values Not Less Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x05
IizVCMPNLTPS:: PROC
MOV CL,0x05
JMP IizVCMPPS.cc:
ENDP IizVCMPNLTPS::
- ↑ VCMPNLEPS
- Compare Packed Single-FP values Not Less than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x06
IizVCMPNLEPS:: PROC
MOV CL,0x06
JMP IizVCMPPS.cc:
ENDP IizVCMPNLEPS::
- ↑ VCMPORDPS
- Compare Packed Single-FP values Ordered
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x07
IizVCMPORDPS:: PROC
MOV CL,0x07
JMP IizVCMPPS.cc:
ENDP IizVCMPORDPS::
- ↑ VCMPNGEPS
- Compare Packed Single-FP values Not Greater than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x09
IizVCMPNGEPS:: PROC
MOV CL,0x09
JMP IizVCMPPS.cc:
ENDP IizVCMPNGEPS::
- ↑ VCMPNGTPS
- Compare Packed Single-FP values Not Greater Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0A
IizVCMPNGTPS:: PROC
MOV CL,0x0A
JMP IizVCMPPS.cc:
ENDP IizVCMPNGTPS::
- ↑ VCMPFALSEPS
- Compare Packed Single-FP values False
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0B
IizVCMPFALSEPS:: PROC
MOV CL,0x0B
JMP IizVCMPPS.cc:
ENDP IizVCMPFALSEPS::
- ↑ VCMPGEPS
- Compare Packed Single-FP values Greater than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0D
IizVCMPGEPS:: PROC
MOV CL,0x0D
JMP IizVCMPPS.cc:
ENDP IizVCMPGEPS::
- ↑ VCMPGTPS
- Compare Packed Single-FP values Greater Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0E
IizVCMPGTPS:: PROC
MOV CL,0x0E
JMP IizVCMPPS.cc:
ENDP IizVCMPGTPS::
- ↑ VCMPTRUEPS
- Compare Packed Single-FP values True
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0F
IizVCMPTRUEPS:: PROC
MOV CL,0x0F
JMP IizVCMPPS.cc:
ENDP IizVCMPTRUEPS::
- ↑ VCMPEQ_OQPS
- Compare Packed Single-FP values Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x00
IizVCMPEQ_OQPS:: PROC
MOV CL,0x00
JMP IizVCMPPS.cc:
ENDP IizVCMPEQ_OQPS::
- ↑ VCMPLT_OSPS
- Compare Packed Single-FP values Less Than, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x01
IizVCMPLT_OSPS:: PROC
MOV CL,0x01
JMP IizVCMPPS.cc:
ENDP IizVCMPLT_OSPS::
- ↑ VCMPLE_OSPS
- Compare Packed Single-FP values Less than or Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x02
IizVCMPLE_OSPS:: PROC
MOV CL,0x02
JMP IizVCMPPS.cc:
ENDP IizVCMPLE_OSPS::
- ↑ VCMPUNORD_QPS
- Compare Packed Single-FP values Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x03
IizVCMPUNORD_QPS:: PROC
MOV CL,0x03
JMP IizVCMPPS.cc:
ENDP IizVCMPUNORD_QPS::
- ↑ VCMPNEQ_UQPS
- Compare Packed Single-FP values Not Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x04
IizVCMPNEQ_UQPS:: PROC
MOV CL,0x04
JMP IizVCMPPS.cc:
ENDP IizVCMPNEQ_UQPS::
- ↑ VCMPNLT_USPS
- Compare Packed Single-FP values Not Less Than, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x05
IizVCMPNLT_USPS:: PROC
MOV CL,0x05
JMP IizVCMPPS.cc:
ENDP IizVCMPNLT_USPS::
- ↑ VCMPNLE_USPS
- Compare Packed Single-FP values Not Less than or Equal,Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x06
IizVCMPNLE_USPS:: PROC
MOV CL,0x06
JMP IizVCMPPS.cc:
ENDP IizVCMPNLE_USPS::
- ↑ VCMPORD_QPS
- Compare Packed Single-FP values Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x07
IizVCMPORD_QPS:: PROC
MOV CL,0x07
JMP IizVCMPPS.cc:
ENDP IizVCMPORD_QPS::
- ↑ VCMPEQ_UQPS
- Compare Packed Single-FP values Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x08
IizVCMPEQ_UQPS:: PROC
MOV CL,0x08
JMP IizVCMPPS.cc:
ENDP IizVCMPEQ_UQPS::
- ↑ VCMPNGE_USPS
- Compare Packed Single-FP values Not Greater than or Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x09
IizVCMPNGE_USPS:: PROC
MOV CL,0x09
JMP IizVCMPPS.cc:
ENDP IizVCMPNGE_USPS::
- ↑ VCMPNGT_USPS
- Compare Packed Single-FP values Not Greater Than, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0A
IizVCMPNGT_USPS:: PROC
MOV CL,0x0A
JMP IizVCMPPS.cc:
ENDP IizVCMPNGT_USPS::
- ↑ VCMPFALSE_OQPS
- Compare Packed Single-FP values False, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0B
IizVCMPFALSE_OQPS:: PROC
MOV CL,0x0B
JMP IizVCMPPS.cc:
ENDP IizVCMPFALSE_OQPS::
- ↑ VCMPNEQ_OQPS
- Compare Packed Single-FP values Not Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0C
IizVCMPNEQ_OQPS:: PROC
MOV CL,0x0C
JMP IizVCMPPS.cc:
ENDP IizVCMPNEQ_OQPS::
- ↑ VCMPGE_OSPS
- Compare Packed Single-FP values Greater than or Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0D
IizVCMPGE_OSPS:: PROC
MOV CL,0x0D
JMP IizVCMPPS.cc:
ENDP IizVCMPGE_OSPS::
- ↑ VCMPGT_OSPS
- Compare Packed Single-FP values Greater Than, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0E
IizVCMPGT_OSPS:: PROC
MOV CL,0x0E
JMP IizVCMPPS.cc:
ENDP IizVCMPGT_OSPS::
- ↑ VCMPTRUE_UQPS
- Compare Packed Single-FP values True, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0F
IizVCMPTRUE_UQPS:: PROC
MOV CL,0x0F
JMP IizVCMPPS.cc:
ENDP IizVCMPTRUE_UQPS::
- ↑ VCMPEQ_OSPS
- Compare Packed Single-FP values Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x10
IizVCMPEQ_OSPS:: PROC
MOV CL,0x10
JMP IizVCMPPS.cc:
ENDP IizVCMPEQ_OSPS::
- ↑ VCMPLT_OQPS
- Compare Packed Single-FP values Less Than, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x11
IizVCMPLT_OQPS:: PROC
MOV CL,0x11
JMP IizVCMPPS.cc:
ENDP IizVCMPLT_OQPS::
- ↑ VCMPLE_OQPS
- Compare Packed Single-FP values Less than or Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x12
IizVCMPLE_OQPS:: PROC
MOV CL,0x12
JMP IizVCMPPS.cc:
ENDP IizVCMPLE_OQPS::
- ↑ VCMPUNORD_SPS
- Compare Packed Single-FP values Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x13
IizVCMPUNORD_SPS:: PROC
MOV CL,0x13
JMP IizVCMPPS.cc:
ENDP IizVCMPUNORD_SPS::
- ↑ VCMPNEQ_USPS
- Compare Packed Single-FP values Not Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x14
IizVCMPNEQ_USPS:: PROC
MOV CL,0x14
JMP IizVCMPPS.cc:
ENDP IizVCMPNEQ_USPS::
- ↑ VCMPNLT_UQPS
- Compare Packed Single-FP values Not Less Than, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x15
IizVCMPNLT_UQPS:: PROC
MOV CL,0x15
JMP IizVCMPPS.cc:
ENDP IizVCMPNLT_UQPS::
- ↑ VCMPNLE_UQPS
- Compare Packed Single-FP values Not Less than or Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x16
IizVCMPNLE_UQPS:: PROC
MOV CL,0x16
JMP IizVCMPPS.cc:
ENDP IizVCMPNLE_UQPS::
- ↑ VCMPORD_SPS
- Compare Packed Single-FP values Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x17
IizVCMPORD_SPS:: PROC
MOV CL,0x17
JMP IizVCMPPS.cc:
ENDP IizVCMPORD_SPS::
- ↑ VCMPEQ_USPS
- Compare Packed Single-FP values Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x18
IizVCMPEQ_USPS:: PROC
MOV CL,0x18
JMP IizVCMPPS.cc:
ENDP IizVCMPEQ_USPS::
- ↑ VCMPNGE_UQPS
- Compare Packed Single-FP values Not Greater than or Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x19
IizVCMPNGE_UQPS:: PROC
MOV CL,0x19
JMP IizVCMPPS.cc:
ENDP IizVCMPNGE_UQPS::
- ↑ VCMPNGT_UQPS
- Compare Packed Single-FP values Not Greater Than, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1A
IizVCMPNGT_UQPS:: PROC
MOV CL,0x1A
JMP IizVCMPPS.cc:
ENDP IizVCMPNGT_UQPS::
- ↑ VCMPFALSE_OSPS
- Compare Packed Single-FP values False, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1B
IizVCMPFALSE_OSPS:: PROC
MOV CL,0x1B
JMP IizVCMPPS.cc:
ENDP IizVCMPFALSE_OSPS::
- ↑ VCMPNEQ_OSPS
- Compare Packed Single-FP values Not Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1C
IizVCMPNEQ_OSPS:: PROC
MOV CL,0x1C
JMP IizVCMPPS.cc:
ENDP IizVCMPNEQ_OSPS::
- ↑ VCMPGE_OQPS
- Compare Packed Single-FP values Greater than or Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1D
IizVCMPGE_OQPS:: PROC
MOV CL,0x1D
JMP IizVCMPPS.cc:
ENDP IizVCMPGE_OQPS::
- ↑ VCMPGT_OQPS
- Compare Packed Single-FP values Greater Than, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1E
IizVCMPGT_OQPS:: PROC
MOV CL,0x1E
JMP IizVCMPPS.cc:
ENDP IizVCMPGT_OQPS::
- ↑ VCMPTRUE_USPS
- Compare Packed Single-FP values True, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1F
IizVCMPTRUE_USPS:: PROC
MOV CL,0x1F
JMP IizVCMPPS.cc:
ENDP IizVCMPTRUE_USPS::
- ↑ VCMPPD
- Compare Packed Double-FP Values
- Intel reference
VCMPPD xmm1, xmm2, xmm3/m128, imm8
| VEX.NDS.128.66.0F.WIG C2 /r ib
|
VCMPPD ymm1, ymm2, ymm3/m256, imm8
| VEX.NDS.256.66.0F.WIG C2 /r ib
|
VCMPPD k1 {k2}, xmm2, xmm3/m128/m64bcst, imm8
| EVEX.NDS.128.66.0F.W1 C2 /r ib
|
VCMPPD k1 {k2}, ymm2, ymm3/m256/m64bcst, imm8
| EVEX.NDS.256.66.0F.W1 C2 /r ib
|
VCMPPD k1 {k2}, zmm2, zmm3/m512/m64bcst{sae}, imm8
| EVEX.NDS.512.66.0F.W1 C2 /r ib
|
VCMPPD k2 {k1}, zmm1, zmm2/mem, imm8
| MVEX.NDS.512.66.0F.W1 C2 /r ib
|
---|
- Opcode
- 0xC2 /r imm8
- See also
- VCMPSS VCMPSD
VCMPPS
- Tested by
- t5266
IizVCMPPD:: PROC
IiAllowModifier MASK,EH
IiAllowBroadcasting QWORD, Operand=DH
IiAllowSuppressing Operand=DH
IiEmitOpcode 0xC2
IiDisp8EVEX FV64
IiDisp8MVEX Ub64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE, Max=31
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, ymm.ymm.mem.imm,\
krg.xmm.xmm.imm, krg.xmm.mem.imm, krg.ymm.ymm.imm, krg.ymm.mem.imm, \
krg.zmm.zmm.imm, krg.zmm.mem.imm
.cc: ; This entry is called with format xmm/krg,xmm,xmm/mem (no immediate).
IiImmCreate CL
JMP IizVCMPPD: ; Continue as if the condition were specified by imm value.
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix VEX.NDS.128.66.0F.WIG
RET
.ymm.ymm.ymm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix VEX.NDS.256.66.0F.WIG
RET
.krg.xmm.mem.imm:
.krg.xmm.xmm.imm:
IiEmitPrefix EVEX.NDS.128.66.0F.W1
RET
.krg.ymm.mem.imm:
.krg.ymm.ymm.imm:
IiEmitPrefix EVEX.NDS.256.66.0F.W1
RET
.krg.zmm.zmm.imm:
.krg.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.66.0F.W1, MVEX.NDS.512.66.0F.W1
RET
ENDP IizVCMPPD::
- ↑ VCMPEQPD
- Compare Packed Double-FP values Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x00
IizVCMPEQPD:: PROC
MOV CL,0x00
JMP IizVCMPPD.cc:
ENDP IizVCMPEQPD::
- ↑ VCMPLTPD
- Compare Packed Double-FP values Less Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x01
IizVCMPLTPD:: PROC
MOV CL,0x01
JMP IizVCMPPD.cc:
ENDP IizVCMPLTPD::
- ↑ VCMPLEPD
- Compare Packed Double-FP values Less than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x02
IizVCMPLEPD:: PROC
MOV CL,0x02
JMP IizVCMPPD.cc:
ENDP IizVCMPLEPD::
- ↑ VCMPUNORDPD
- Compare Packed Double-FP values Unordered
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x03
IizVCMPUNORDPD:: PROC
MOV CL,0x03
JMP IizVCMPPD.cc:
ENDP IizVCMPUNORDPD::
- ↑ VCMPNEQPD
- Compare Packed Double-FP values Not Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x04
IizVCMPNEQPD:: PROC
MOV CL,0x04
JMP IizVCMPPD.cc:
ENDP IizVCMPNEQPD::
- ↑ VCMPNLTPD
- Compare Packed Double-FP values Not Less Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x05
IizVCMPNLTPD:: PROC
MOV CL,0x05
JMP IizVCMPPD.cc:
ENDP IizVCMPNLTPD::
- ↑ VCMPNLEPD
- Compare Packed Double-FP values Not Less than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x06
IizVCMPNLEPD:: PROC
MOV CL,0x06
JMP IizVCMPPD.cc:
ENDP IizVCMPNLEPD::
- ↑ VCMPORDPD
- Compare Packed Double-FP values Ordered
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x07
IizVCMPORDPD:: PROC
MOV CL,0x07
JMP IizVCMPPD.cc:
ENDP IizVCMPORDPD::
- ↑ VCMPNGEPD
- Compare Packed Double-FP values Not Greater than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x09
IizVCMPNGEPD:: PROC
MOV CL,0x09
JMP IizVCMPPD.cc:
ENDP IizVCMPNGEPD::
- ↑ VCMPNGTPD
- Compare Packed Double-FP values Not Greater Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0A
IizVCMPNGTPD:: PROC
MOV CL,0x0A
JMP IizVCMPPD.cc:
ENDP IizVCMPNGTPD::
- ↑ VCMPFALSEPD
- Compare Packed Double-FP values False
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0B
IizVCMPFALSEPD:: PROC
MOV CL,0x0B
JMP IizVCMPPD.cc:
ENDP IizVCMPFALSEPD::
- ↑ VCMPGEPD
- Compare Packed Double-FP values Greater than or Equal
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0D
IizVCMPGEPD:: PROC
MOV CL,0x0D
JMP IizVCMPPD.cc:
ENDP IizVCMPGEPD::
- ↑ VCMPGTPD
- Compare Packed Double-FP values Greater Than
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0E
IizVCMPGTPD:: PROC
MOV CL,0x0E
JMP IizVCMPPD.cc:
ENDP IizVCMPGTPD::
- ↑ VCMPTRUEPD
- Compare Packed Double-FP values True
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0F
IizVCMPTRUEPD:: PROC
MOV CL,0x0F
JMP IizVCMPPD.cc:
ENDP IizVCMPTRUEPD::
- ↑ VCMPEQ_OQPD
- Compare Packed Double-FP values Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x00
IizVCMPEQ_OQPD:: PROC
MOV CL,0x00
JMP IizVCMPPD.cc:
ENDP IizVCMPEQ_OQPD::
- ↑ VCMPLT_OSPD
- Compare Packed Double-FP values Less Than, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x01
IizVCMPLT_OSPD:: PROC
MOV CL,0x01
JMP IizVCMPPD.cc:
ENDP IizVCMPLT_OSPD::
- ↑ VCMPLE_OSPD
- Compare Packed Double-FP values Less than or Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x02
IizVCMPLE_OSPD:: PROC
MOV CL,0x02
JMP IizVCMPPD.cc:
ENDP IizVCMPLE_OSPD::
- ↑ VCMPUNORD_QPD
- Compare Packed Double-FP values Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x03
IizVCMPUNORD_QPD:: PROC
MOV CL,0x03
JMP IizVCMPPD.cc:
ENDP IizVCMPUNORD_QPD::
- ↑ VCMPNEQ_UQPD
- Compare Packed Double-FP values Not Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x04
IizVCMPNEQ_UQPD:: PROC
MOV CL,0x04
JMP IizVCMPPD.cc:
ENDP IizVCMPNEQ_UQPD::
- ↑ VCMPNLT_USPD
- Compare Packed Double-FP values Not Less Than, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x05
IizVCMPNLT_USPD:: PROC
MOV CL,0x05
JMP IizVCMPPD.cc:
ENDP IizVCMPNLT_USPD::
- ↑ VCMPNLE_USPD
- Compare Packed Double-FP values Not Less than or Equal,Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x06
IizVCMPNLE_USPD:: PROC
MOV CL,0x06
JMP IizVCMPPD.cc:
ENDP IizVCMPNLE_USPD::
- ↑ VCMPORD_QPD
- Compare Packed Double-FP values Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x07
IizVCMPORD_QPD:: PROC
MOV CL,0x07
JMP IizVCMPPD.cc:
ENDP IizVCMPORD_QPD::
- ↑ VCMPEQ_UQPD
- Compare Packed Double-FP values Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x08
IizVCMPEQ_UQPD:: PROC
MOV CL,0x08
JMP IizVCMPPD.cc:
ENDP IizVCMPEQ_UQPD::
- ↑ VCMPNGE_USPD
- Compare Packed Double-FP values Not Greater than or Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x09
IizVCMPNGE_USPD:: PROC
MOV CL,0x09
JMP IizVCMPPD.cc:
ENDP IizVCMPNGE_USPD::
- ↑ VCMPNGT_USPD
- Compare Packed Double-FP values Not Greater Than, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0A
IizVCMPNGT_USPD:: PROC
MOV CL,0x0A
JMP IizVCMPPD.cc:
ENDP IizVCMPNGT_USPD::
- ↑ VCMPFALSE_OQPD
- Compare Packed Double-FP values False, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0B
IizVCMPFALSE_OQPD:: PROC
MOV CL,0x0B
JMP IizVCMPPD.cc:
ENDP IizVCMPFALSE_OQPD::
- ↑ VCMPNEQ_OQPD
- Compare Packed Double-FP values Not Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0C
IizVCMPNEQ_OQPD:: PROC
MOV CL,0x0C
JMP IizVCMPPD.cc:
ENDP IizVCMPNEQ_OQPD::
- ↑ VCMPGE_OSPD
- Compare Packed Double-FP values Greater than or Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0D
IizVCMPGE_OSPD:: PROC
MOV CL,0x0D
JMP IizVCMPPD.cc:
ENDP IizVCMPGE_OSPD::
- ↑ VCMPGT_OSPD
- Compare Packed Double-FP values Greater Than, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0E
IizVCMPGT_OSPD:: PROC
MOV CL,0x0E
JMP IizVCMPPD.cc:
ENDP IizVCMPGT_OSPD::
- ↑ VCMPTRUE_UQPD
- Compare Packed Double-FP values True, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x0F
IizVCMPTRUE_UQPD:: PROC
MOV CL,0x0F
JMP IizVCMPPD.cc:
ENDP IizVCMPTRUE_UQPD::
- ↑ VCMPEQ_OSPD
- Compare Packed Double-FP values Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x10
IizVCMPEQ_OSPD:: PROC
MOV CL,0x10
JMP IizVCMPPD.cc:
ENDP IizVCMPEQ_OSPD::
- ↑ VCMPLT_OQPD
- Compare Packed Double-FP values Less Than, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x11
IizVCMPLT_OQPD:: PROC
MOV CL,0x11
JMP IizVCMPPD.cc:
ENDP IizVCMPLT_OQPD::
- ↑ VCMPLE_OQPD
- Compare Packed Double-FP values Less than or Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x12
IizVCMPLE_OQPD:: PROC
MOV CL,0x12
JMP IizVCMPPD.cc:
ENDP IizVCMPLE_OQPD::
- ↑ VCMPUNORD_SPD
- Compare Packed Double-FP values Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x13
IizVCMPUNORD_SPD:: PROC
MOV CL,0x13
JMP IizVCMPPD.cc:
ENDP IizVCMPUNORD_SPD::
- ↑ VCMPNEQ_USPD
- Compare Packed Double-FP values Not Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x14
IizVCMPNEQ_USPD:: PROC
MOV CL,0x14
JMP IizVCMPPD.cc:
ENDP IizVCMPNEQ_USPD::
- ↑ VCMPNLT_UQPD
- Compare Packed Double-FP values Not Less Than, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x15
IizVCMPNLT_UQPD:: PROC
MOV CL,0x15
JMP IizVCMPPD.cc:
ENDP IizVCMPNLT_UQPD::
- ↑ VCMPNLE_UQPD
- Compare Packed Double-FP values Not Less than or Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x16
IizVCMPNLE_UQPD:: PROC
MOV CL,0x16
JMP IizVCMPPD.cc:
ENDP IizVCMPNLE_UQPD::
- ↑ VCMPORD_SPD
- Compare Packed Double-FP values Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x17
IizVCMPORD_SPD:: PROC
MOV CL,0x17
JMP IizVCMPPD.cc:
ENDP IizVCMPORD_SPD::
- ↑ VCMPEQ_USPD
- Compare Packed Double-FP values Equal, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x18
IizVCMPEQ_USPD:: PROC
MOV CL,0x18
JMP IizVCMPPD.cc:
ENDP IizVCMPEQ_USPD::
- ↑ VCMPNGE_UQPD
- Compare Packed Double-FP values Not Greater than or Equal, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x19
IizVCMPNGE_UQPD:: PROC
MOV CL,0x19
JMP IizVCMPPD.cc:
ENDP IizVCMPNGE_UQPD::
- ↑ VCMPNGT_UQPD
- Compare Packed Double-FP values Not Greater Than, Unordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1A
IizVCMPNGT_UQPD:: PROC
MOV CL,0x1A
JMP IizVCMPPD.cc:
ENDP IizVCMPNGT_UQPD::
- ↑ VCMPFALSE_OSPD
- Compare Packed Double-FP values False, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1B
IizVCMPFALSE_OSPD:: PROC
MOV CL,0x1B
JMP IizVCMPPD.cc:
ENDP IizVCMPFALSE_OSPD::
- ↑ VCMPNEQ_OSPD
- Compare Packed Double-FP values Not Equal, Ordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1C
IizVCMPNEQ_OSPD:: PROC
MOV CL,0x1C
JMP IizVCMPPD.cc:
ENDP IizVCMPNEQ_OSPD::
- ↑ VCMPGE_OQPD
- Compare Packed Double-FP values Greater than or Equal, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1D
IizVCMPGE_OQPD:: PROC
MOV CL,0x1D
JMP IizVCMPPD.cc:
ENDP IizVCMPGE_OQPD::
- ↑ VCMPGT_OQPD
- Compare Packed Double-FP values Greater Than, Ordered, Quiet
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1E
IizVCMPGT_OQPD:: PROC
MOV CL,0x1E
JMP IizVCMPPD.cc:
ENDP IizVCMPGT_OQPD::
- ↑ VCMPTRUE_USPD
- Compare Packed Double-FP values True, Unordered, Signaling
- Operands
- xmm/krg, xmm, xmm/mem
- Opcode
- 0xC2 /r 0x1F
IizVCMPTRUE_USPD:: PROC
MOV CL,0x1F
JMP IizVCMPPD.cc:
ENDP IizVCMPTRUE_USPD::
- ↑ VUCOMISS
- Unordered Compare Scalar Single-FP Values and Set EFLAGS
- Intel reference
VUCOMISS xmm1, xmm2/m32
| VEX.128.0F.WIG 2E /r
|
VUCOMISS xmm1, xmm2/m32{sae}
| EVEX.LIG.0F.W0 2E /r
|
- Category
- sse1,simdfp,compar
- Operands
- Vss,Wss
- Opcode
- 0x0F2E /r
- Flags
- modified:....Z.PC, defined:....Z.PC
- CPU
- P3+
- Tested by
- t5268
IizVUCOMISS:: PROC
IiEmitOpcode 0x2E
.op:IiAllowSuppressing Register=xmm
IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.0F.WIG, EVEX.LIG.0F.W0
RET
ENDP IizVUCOMISS::
- ↑ VCOMISS
- Compare Scalar Ordered Single-FP Values and Set EFLAGS
- Intel reference
VCOMISS xmm1, xmm2/m32
| VEX.128.0F.WIG 2F /r
|
VCOMISS xmm1, xmm2/m32{sae}
| EVEX.LIG.0F.W0 2F /r
|
- Category
- sse1,simdfp,compar
- Operands
- Vss,Wss
- Opcode
- 0x0F2F /r
- Flags
- modified:....Z.PC, defined:....Z.PC
- CPU
- P3+
- Tested by
- t5268
IizVCOMISS:: PROC
IiEmitOpcode 0x2F
JMP IizVUCOMISS.op:
ENDP IizVCOMISS::
- ↑ VUCOMISD
- Unordered Compare Scalar Double-FP Values and Set EFLAGS
- Intel reference
VUCOMISD xmm1, xmm2/m64
| VEX.128.66.0F.WIG 2E /r
|
VUCOMISD xmm1, xmm2/m64{sae}
| EVEX.LIG.66.0F.W1 2E /r
|
- Category
- sse2,pcksclr,compar
- Operands
- Vsd,Wsd
- Opcode
- 0x660F2E /r
- Flags
- modified:....Z.PC, defined:....Z.PC
- CPU
- P4+
- Tested by
- t5268
IizVUCOMISD:: PROC
IiEmitOpcode 0x2E
.op:IiAllowSuppressing Register=xmm
IiEncoding DATA=QWORD
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.LIG.66.0F.W1
RET
ENDP IizVUCOMISD::
- ↑ VCOMISD
- Compare Scalar Ordered Double-FP Values and Set EFLAGS
- Intel reference
VCOMISD xmm1, xmm2/m64
| VEX.128.66.0F.WIG 2F /r
|
VCOMISD xmm1, xmm2/m64{sae}
| EVEX.LIG.66.0F.W1 2F /r
|
- Category
- sse2,pcksclr,compar
- Operands
- Vsd,Wsd
- Opcode
- 0x660F2F /r
- Flags
- modified:....Z.PC, defined:....Z.PC
- CPU
- P4+
- Tested by
- t5268
IizVCOMISD:: PROC
IiEmitOpcode 0x2F
JMP IizVUCOMISD.op:
ENDP IizVCOMISD::
- ↑ VCOMPRESSPS
- Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory
- Intel reference
VCOMPRESSPS xmm1/m128 {k1}{z}, xmm2
| EVEX.128.66.0F38.W0 8A /r
|
VCOMPRESSPS ymm1/m256 {k1}{z}, ymm2
| EVEX.256.66.0F38.W0 8A /r
|
VCOMPRESSPS zmm1/m512 {k1}{z}, zmm2
| EVEX.512.66.0F38.W0 8A /r
|
- Opcode
- 0x8A
- Tested by
- t5270
IizVCOMPRESSPS:: PROC
IiEmitOpcode 0x8A
.op:IiAllowModifier MASK
IiDisp8EVEX T1S32
IiOpEn MR
IiModRM /r
IiDispatchFormat xmm.xmm, mem.xmm, ymm.ymm, mem.ymm, zmm.zmm, mem.zmm
.mem.xmm:
.xmm.xmm:
IiEmitPrefix EVEX.128.66.0F38.W0
RET
.mem.ymm:
.ymm.ymm:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.mem.zmm:
.zmm.zmm:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
ENDP IizVCOMPRESSPS::
- ↑ VPCOMPRESSD
- Store Sparse Packed Doubleword Integer Values into Dense Memory/Register
- Intel reference
VPCOMPRESSD xmm1/m128 {k1}{z}, xmm2
| EVEX.128.66.0F38.W0 8B /r
|
VPCOMPRESSD ymm1/m256 {k1}{z}, ymm2
| EVEX.256.66.0F38.W0 8B /r
|
VPCOMPRESSD zmm1/m512 {k1}{z}, zmm2 | EVEX.512.66.0F38.W0 8B /r
|
- Opcode
- 0x8B
- Tested by
- t5270
IizVPCOMPRESSD:: PROC
IiEmitOpcode 0x8B
JMP IizVCOMPRESSPS.op:
ENDP IizVPCOMPRESSD::
- ↑ VCOMPRESSPD
- Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory
- Intel reference
VCOMPRESSPD xmm1/m128 {k1}{z}, xmm2
| EVEX.128.66.0F38.W1 8A /r
|
VCOMPRESSPD ymm1/m256 {k1}{z}, ymm2
| EVEX.256.66.0F38.W1 8A /r
|
VCOMPRESSPD zmm1/m512 {k1}{z}, zmm2
| EVEX.512.66.0F38.W1 8A /r
|
- Opcode
- 0x8A
- Tested by
- t5270
IizVCOMPRESSPD:: PROC
IiEmitOpcode 0x8A
.op:IiAllowModifier MASK
IiDisp8EVEX T1S64
IiOpEn MR
IiModRM /r
IiDispatchFormat xmm.xmm, mem.xmm, ymm.ymm, mem.ymm, zmm.zmm, mem.zmm
.mem.xmm:
.xmm.xmm:
IiEmitPrefix EVEX.128.66.0F38.W1
RET
.mem.ymm:
.ymm.ymm:
IiEmitPrefix EVEX.256.66.0F38.W1
RET
.mem.zmm:
.zmm.zmm:
IiEmitPrefix EVEX.512.66.0F38.W1
RET
ENDP IizVCOMPRESSPD::
- ↑ VPCOMPRESSQ
- Store Sparse Packed Quadword Integer Values into Dense Memory/Register
- Intel reference
VPCOMPRESSQ xmm1/m128 {k1}{z}, xmm2
| EVEX.128.66.0F38.W1 8B /r
|
VPCOMPRESSQ ymm1/m256 {k1}{z}, ymm2
| EVEX.256.66.0F38.W1 8B /r
|
VPCOMPRESSQ zmm1/m512 {k1}{z}, zmm2
| EVEX.512.66.0F38.W1 8B /r
|
- Opcode
- 0x8B
- Tested by
- t5270
IizVPCOMPRESSQ:: PROC
IiEmitOpcode 0x8B
JMP IizVCOMPRESSPD.op:
ENDP IizVPCOMPRESSQ::
- ↑ VMPSADBW
- Compute Multiple Packed Sums of Absolute Difference
- Intel reference
VMPSADBW xmm1, xmm2, xmm3/m128, imm8
| VEX.NDS.128.66.0F3A.WIG 42 /r ib
|
VMPSADBW ymm1, ymm2, ymm3/m256, imm8
| VEX.NDS.256.66.0F3A.WIG 42 /r ib
|
- Category
- sse41,simdint,arith
- Operands
- Vdq,Wdq,Ib
- Opcode
- 0x660F3A42 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5280
IizVMPSADBW:: PROC
IiEmitOpcode 0x42
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, ymm.ymm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix VEX.NDS.128.66.0F3A.WIG
RET
.ymm.ymm.ymm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix VEX.NDS.256.66.0F3A.WIG
RET
ENDP IizVMPSADBW::
- ↑ VDBPSADBW
- Double Block Packed Sum-Absolute-Differences (SAD) on Unsigned Bytes
- Intel reference
VDBPSADBW xmm1 {k1}{z}, xmm2, xmm3/m128, imm8
| EVEX.NDS.128.66.0F3A.W0 42 /r ib
|
VDBPSADBW ymm1 {k1}{z}, ymm2, ymm3/m256, imm8
| EVEX.NDS.256.66.0F3A.W0 42 /r ib
|
VDBPSADBW zmm1 {k1}{z}, zmm2, zmm3/m512, imm8
| EVEX.NDS.512.66.0F3A.W0 42 /r ib
|
- Opcode
- 0x42
- Tested by
- t5280
IizVDBPSADBW:: PROC
IiAllowModifier MASK
IiEmitOpcode 0x42
IiDisp8EVEX FVM
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, ymm.ymm.mem.imm, zmm.zmm.zmm.imm, zmm.zmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix EVEX.NDS.128.66.0F3A.W0
RET
.ymm.ymm.ymm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix EVEX.NDS.256.66.0F3A.W0
RET
.zmm.zmm.zmm.imm:
.zmm.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.66.0F3A.W0
RET
ENDP IizVDBPSADBW::
- ↑ VDPPS
- Dot Product of Packed Single-FP Values
- Intel reference
VDPPS xmm1,xmm2, xmm3/m128, imm8
| VEX.NDS.128.66.0F3A.WIG 40 /r ib
|
VDPPS ymm1, ymm2, ymm3/m256, imm8
| VEX.NDS.256.66.0F3A.WIG 40 /r ib
|
- Category
- sse41,simdfp,arith
- Operands
- Vps,Wps
- Opcode
- 0x660F3A40 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5280
IizVDPPS:: PROC
IiEmitOpcode 0x40
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, ymm.ymm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix VEX.NDS.128.66.0F3A.WIG
RET
.ymm.ymm.ymm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix VEX.NDS.256.66.0F3A.WIG
RET
ENDP IizVDPPS::
- ↑ VDPPD
- Dot Product of Packed Double-FP Values
- Intel reference
VDPPD xmm1,xmm2, xmm3/m128, imm8
| VEX.NDS.128.66.0F3A.WIG 41 /r ib
|
- Category
- sse41,simdfp,arith
- Operands
- Vpd,Wpd
- Opcode
- 0x660F3A41 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5280
IizVDPPD:: PROC
IiEmitOpcode 0x41
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix VEX.NDS.128.66.0F3A.WIG
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
RET
ENDP IizVDPPD::
- ↑ VEXPANDPS
- Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory
- Intel reference
VEXPANDPS xmm1 {k1}{z}, xmm2/m128
| EVEX.128.66.0F38.W0 88 /r
|
VEXPANDPS ymm1 {k1}{z}, ymm2/m256
| EVEX.256.66.0F38.W0 88 /r
|
VEXPANDPS zmm1 {k1}{z}, zmm2/m512
| EVEX.512.66.0F38.W0 88 /r
|
- Opcode
- 0x88
- Tested by
- t5275
IizVEXPANDPS:: PROC
IiEmitOpcode 0x88
.op:IiAllowModifier MASK
IiDisp8EVEX T1S32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W0
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
ENDP IizVEXPANDPS::
- ↑ VPEXPANDD
- Load Sparse Packed Doubleword Integer Values from Dense Memory / Register
- Intel reference
VPEXPANDD xmm1 {k1}{z}, xmm2/m128
| EVEX.128.66.0F38.W0 89 /r
|
VPEXPANDD ymm1 {k1}{z}, ymm2/m256
| EVEX.256.66.0F38.W0 89 /r
|
VPEXPANDD zmm1 {k1}{z}, zmm2/m512
| EVEX.512.66.0F38.W0 89 /r
|
- Opcode
- 0x89
- Tested by
- t5275
IizVPEXPANDD:: PROC
IiEmitOpcode 0x89
JMP IizVEXPANDPS.op:
ENDP IizVPEXPANDD::
- ↑ VEXPANDPD
- Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory
- Intel reference
VEXPANDPD xmm1 {k1}{z}, xmm2/m128
| EVEX.128.66.0F38.W1 88 /r
|
VEXPANDPD ymm1 {k1}{z}, ymm2/m256
| EVEX.256.66.0F38.W1 88 /r
|
VEXPANDPD zmm1 {k1}{z}, zmm2/m512
| EVEX.512.66.0F38.W1 88 /r
|
- Opcode
- 0x88
- Tested by
- t5275
IizVEXPANDPD:: PROC
IiEmitOpcode 0x88
.op:IiAllowModifier MASK
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W1
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W1
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W1
RET
ENDP IizVEXPANDPD::
- ↑ VPEXPANDQ
- Load Sparse Packed Quadword Integer Values from Dense Memory / Register
- Intel reference
VPEXPANDQ xmm1 {k1}{z}, xmm2/m128
| EVEX.128.66.0F38.W1 89 /r
|
VPEXPANDQ ymm1 {k1}{z}, ymm2/m256
| EVEX.256.66.0F38.W1 89 /r
|
VPEXPANDQ zmm1 {k1}{z}, zmm2/m512
| EVEX.512.66.0F38.W1 89 /r
|
- Opcode
- 0x89
- Tested by
- t5275
IizVPEXPANDQ:: PROC
IiEmitOpcode 0x89
JMP IizVEXPANDPD.op:
ENDP IizVPEXPANDQ::
IizVEXTRACTF32X4:: PROC
IiEmitOpcode 0x19
.op:IiAllowModifier MASK
IiEncoding DATA=DWORD
IiDisp8EVEX T2F64
IiOpEn MR
IiModRM /r
IiEmitImm Operand3,BYTE
IiDispatchFormat xmm.ymm.imm, mem.ymm.imm, xmm.zmm.imm, mem.zmm.imm
.xmm.ymm.imm:
.mem.ymm.imm:
IiEmitPrefix EVEX.256.66.0F3A.W0
RET
.xmm.zmm.imm:
.mem.zmm.imm:
IiEmitPrefix EVEX.512.66.0F3A.W0
RET
ENDP IizVEXTRACTF32X4::
IizVEXTRACTI32X4:: PROC
IiEmitOpcode 0x39
JMP IizVEXTRACTF32X4.op:
ENDP IizVEXTRACTI32X4::
IizVEXTRACTF32X8:: PROC
IiEmitOpcode 0x1B
.op:IiAllowModifier MASK
IiEncoding DATA=DWORD
IiDisp8EVEX T4F64
IiOpEn MR
IiModRM /r
IiEmitImm Operand3, BYTE
IiEmitPrefix EVEX.512.66.0F3A.W0
IiDispatchFormat ymm.zmm.imm, mem.zmm.imm
.ymm.zmm.imm:
.mem.zmm.imm:
RET
ENDP IizVEXTRACTF32X8::
IizVEXTRACTI32X8:: PROC
IiEmitOpcode 0x3B
JMP IizVEXTRACTF32X8.op:
ENDP IizVEXTRACTI32X8::
IizVEXTRACTF64X2:: PROC
IiEmitOpcode 0x19
.op:IiAllowModifier MASK
IiEncoding DATA=QWORD
IiDisp8EVEX T2F64
IiOpEn MR
IiModRM /r
IiEmitImm Operand3, BYTE
IiDispatchFormat xmm.ymm.imm, mem.ymm.imm, xmm.zmm.imm, mem.zmm.imm
.xmm.ymm.imm:
.mem.ymm.imm:
IiEmitPrefix EVEX.256.66.0F3A.W1
RET
.xmm.zmm.imm:
.mem.zmm.imm:
IiEmitPrefix EVEX.512.66.0F3A.W1
RET
ENDP IizVEXTRACTF64X2::
IizVEXTRACTI64X2:: PROC
IiEmitOpcode 0x39
JMP IizVEXTRACTF64X2.op:
ENDP IizVEXTRACTI64X2::
IizVEXTRACTF64X4:: PROC
IiEmitOpcode 0x1B
.op:IiAllowModifier MASK
IiEncoding DATA=QWORD
IiDisp8EVEX T4F64
IiOpEn MR
IiModRM /r
IiEmitImm Operand3, BYTE
IiEmitPrefix EVEX.512.66.0F3A.W1
IiDispatchFormat ymm.zmm.imm, mem.zmm.imm
.ymm.zmm.imm:
.mem.zmm.imm:
RET
ENDP IizVEXTRACTF64X4::
IizVEXTRACTI64X4:: PROC
IiEmitOpcode 0x3B
JMP IizVEXTRACTF64X4.op:
ENDP IizVEXTRACTI64X4::
IizVEXTRACTF128:: PROC
IiEmitOpcode 0x19
.op:IiEncoding DATA=OWORD
IiOpEn MR
IiModRM /r
IiEmitImm Operand3, BYTE
IiEmitPrefix VEX.256.66.0F3A.W0
IiDispatchFormat xmm.ymm.imm, mem.ymm.imm
.xmm.ymm.imm:
.mem.ymm.imm:
RET
ENDP IizVEXTRACTF128::
IizVEXTRACTI128:: PROC
IiEmitOpcode 0x39
JMP IizVEXTRACTF128.op:
ENDP IizVEXTRACTI128::
IizVEXTRACTPS:: PROC
IiRequire SSE4.1
IiEmitOpcode 0x17
IiDisp8EVEX T1S32
IiOpEn MR
IiModRM /r
IiEmitImm Operand3, BYTE
IiEmitPrefix VEX.128.66.0F3A.WIG, EVEX.128.66.0F3A.WIG
IiDispatchFormat r64.xmm.imm, r32.xmm.imm, mem.xmm.imm
.r64.xmm.imm:
.r32.xmm.imm:
.mem.xmm.imm:
RET
ENDP IizVEXTRACTPS::
- ↑ VPEXTRB
- Extract Byte
- Intel reference
VPEXTRB reg/m8, xmm2, imm8
| VEX.128.66.0F3A 14 /r ib
|
VPEXTRB reg/m8, xmm2, imm8
| EVEX.128.66.0F3A.WIG 14 /r ib
|
- Category
- sse41,simdint,datamov
- Operands
- Mb,Vdq,Ib | Rdqp,Vdq,Ib
- Opcode
- 0x660F3A14 /r | 0x660F3A14 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5294
IizVPEXTRB:: PROC
IiRequire SSE4.1
IiEncoding DATA=BYTE
IiEmitOpcode 0x14
IiDisp8EVEX T1S8
IiOpEn MR
IiModRM /r
IiEmitImm Operand3, BYTE
IiEmitPrefix VEX.128.66.0F3A, EVEX.128.66.0F3A.WIG
IiDispatchFormat r64.xmm.imm,r32.xmm.imm,r16.xmm.imm,r8.xmm.imm, mem.xmm.imm
.r64.xmm.imm:
.r32.xmm.imm:
.r16.xmm.imm:
.r8.xmm.imm:
.mem.xmm.imm:
RET
ENDP IizVPEXTRB::
- ↑ VPEXTRW
- Extract Word
- Intel reference
VPEXTRW reg, xmm1, imm8
| VEX.128.66.0F C5 /r ib
|
VPEXTRW reg/m16, xmm2, imm8
| VEX.128.66.0F3A 15 /r ib
|
VPEXTRW reg, xmm1, imm8
| EVEX.128.66.0F.WIG C5 /r ib
|
VPEXTRW reg/m16, xmm2, imm8
| VEX.128.66.0F3A.WIG 15 /r ib
|
- Category
- sse41,simdint,datamov
- Operands
- Mw,Vdq,Ib | Rdqp,Vdq,Ib | Gdqp,Nq,Ib | Gdqp,Udq,Ib
- Opcode
- 0x660F3A15 /r | 0x660F3A15 /r | 0x0FC5 /r | 0x660FC5 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5294
IizVPEXTRW:: PROC
IiRequire SSE4.1
IiAllowModifier CODE
IiDisp8EVEX T1S16
IiEmitImm Operand3, BYTE
IiModRM /r
IiDispatchFormat r64.xmm.imm,r32.xmm.imm,r16.xmm.imm,mem.xmm.imm
.mem.xmm.imm:
IiEncoding CODE=LONG,DATA=WORD
IiEmitOpcode 0x15
IiEmitPrefix VEX.128.66.0F3A, EVEX.128.66.0F3A.WIG
IiOpEn MR
RET
.r64.xmm.imm:
.r32.xmm.imm:
.r16.xmm.imm:
IiDispatchCode LONG=.mem.xmm.imm:
IiEncoding CODE=SHORT,DATA=WORD
IiEmitOpcode 0xC5
IiEmitPrefix VEX.128.66.0F, EVEX.128.0F.WIG
IiOpEn RM
RET
ENDP IizVPEXTRW::
- ↑ VPEXTRD
- Extract Dword/Qword
- Intel reference
VPEXTRD r32/m32, xmm2, imm8
| VEX.128.66.0F3A.W0 16 /r ib
|
VPEXTRD r32/m32, xmm2, imm8
| EVEX.128.66.0F3A.W0 16 /r ib
|
- Category
- sse41,simdint,datamov
- Operands
- Ed,Vdq,Ib
- Opcode
- 0x660F3A16 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5294
IizVPEXTRD:: PROC
IiRequire SSE4.1
IiEmitOpcode 0x16
IiEncoding DATA=DWORD
IiDisp8EVEX T1S32
IiOpEn MR
IiModRM /r
IiEmitImm Operand3, BYTE
IiEmitPrefix VEX.128.66.0F3A.W0, EVEX.128.66.0F3A.W0
IiDispatchFormat r32.xmm.imm,r64.xmm.imm,mem.xmm.imm
.r64.xmm.imm:
.r32.xmm.imm:
.mem.xmm.imm:
RET
ENDP IizVPEXTRD::
- ↑ VPEXTRQ
- Extract Dword/Qword
- Intel reference
VPEXTRQ r64/m64, xmm2, imm8
| VEX.128.66.0F3A.W1 16 /r ib
|
VPEXTRQ r64/m64, xmm2, imm8
| EVEX.128.66.0F3A.W1 16 /r ib
|
- Category
- sse41,simdint,datamov
- Operands
- Eqp,Vdq,Ib
- Opcode
- 0x660F3A16 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5294
IizVPEXTRQ:: PROC
IiRequire SSE4.1
IiEncoding DATA=QWORD
IiEmitOpcode 0x16
IiDisp8EVEX T1S64
IiOpEn MR
IiModRM /r
IiEmitImm Operand3, BYTE
IiEmitPrefix VEX.128.66.0F3A.W1, EVEX.128.66.0F3A.W1
IiDispatchFormat r64.xmm.imm, mem.xmm.imm
.r64.xmm.imm:
.mem.xmm.imm:
RET
ENDP IizVPEXTRQ::
- ↑ VINSERTF32X4
- Insert Packed Floating-Point Values
- Intel reference
VINSERTF32X4 ymm1 {k1}{z}, ymm2, xmm3/m128, imm8
| EVEX.NDS.256.66.0F3A.W0 18 /r ib
|
VINSERTF32X4 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8
| EVEX.NDS.512.66.0F3A.W0 18 /r ib
|
- Opcode
- 0x18
- Tested by
- t5296
IizVINSERTF32X4:: PROC
IiEmitOpcode 0x18
.op:IiAllowModifier MASK
IiEncoding DATA=DWORD
IiDisp8EVEX T2F64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat ymm.ymm.xmm.imm, ymm.ymm.mem.imm, zmm.zmm.xmm.imm, zmm.zmm.mem.imm
.ymm.ymm.xmm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix EVEX.NDS.256.66.0F3A.W0
RET
.zmm.zmm.xmm.imm:
.zmm.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.66.0F3A.W0
RET
ENDP IizVINSERTF32X4::
- ↑ VINSERTI32X4
- Insert Packed Integer Values
- Intel reference
VINSERTI32X4 ymm1 {k1}{z}, ymm2, xmm3/m128, imm8
| EVEX.NDS.256.66.0F3A.W0 38 /r ib
|
VINSERTI32X4 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8
| EVEX.NDS.512.66.0F3A.W0 38 /r ib
|
- Opcode
- 0x38
- Tested by
- t5298
IizVINSERTI32X4:: PROC
IiEmitOpcode 0x38
JMP IizVINSERTF32X4.op:
ENDP IizVINSERTI32X4::
- ↑ VINSERTF32X8
- Insert Packed Floating-Point Values
- Intel reference
VINSERTF32X8 zmm1 {k1}{z}, zmm2, ymm3/m256, imm8
| EVEX.NDS.512.66.0F3A.W0 1A /r ib
|
- Opcode
- 0x1A
- Tested by
- t5296
IizVINSERTF32X8:: PROC
IiEmitOpcode 0x1A
.op:IiAllowModifier MASK
IiEncoding DATA=DWORD
IiDisp8EVEX T4F64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix EVEX.NDS.512.66.0F3A.W0
IiDispatchFormat zmm.zmm.ymm.imm, zmm.zmm.mem.imm
.zmm.zmm.ymm.imm:
.zmm.zmm.mem.imm:
RET
ENDP IizVINSERTF32X8::
- ↑ VINSERTI32X8
- Insert Packed Integer Values
- Intel reference
VINSERTI32X8 zmm1 {k1}{z}, zmm2, ymm3/m256, imm8
| EVEX.NDS.512.66.0F3A.W0 3A /r ib
|
- Opcode
- 0x3A
- Tested by
- t5298
IizVINSERTI32X8:: PROC
IiEmitOpcode 0x3A
JMP IizVINSERTF32X8.op:
ENDP IizVINSERTI32X8::
- ↑ VINSERTF64X2
- Insert Packed Floating-Point Values
- Intel reference
VINSERTF64X2 ymm1 {k1}{z}, ymm2, xmm3/m128, imm8
| EVEX.NDS.256.66.0F3A.W1 18 /r ib
|
VINSERTF64X2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8
| EVEX.NDS.512.66.0F3A.W1 18 /r ib
|
- Opcode
- 0x18
- Tested by
- t5296
IizVINSERTF64X2:: PROC
IiEmitOpcode 0x18
.op:IiAllowModifier MASK
IiEncoding DATA=QWORD
IiDisp8EVEX T2F64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat ymm.ymm.xmm.imm, ymm.ymm.mem.imm, zmm.zmm.xmm.imm, zmm.zmm.mem.imm
.ymm.ymm.xmm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix EVEX.NDS.256.66.0F3A.W1
RET
.zmm.zmm.xmm.imm:
.zmm.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.66.0F3A.W1
RET
ENDP IizVINSERTF64X2::
- ↑ VINSERTI64X2
- Insert Packed Integer Values
- Intel reference
VINSERTI64X2 ymm1 {k1}{z}, ymm2, xmm3/m128, imm8
| EVEX.NDS.256.66.0F3A.W1 38 /r ib
|
VINSERTI64X2 zmm1 {k1}{z}, zmm2, xmm3/m128, imm8
| EVEX.NDS.512.66.0F3A.W1 38 /r ib
|
- Opcode
- 0x38
- Tested by
- t5298
IizVINSERTI64X2:: PROC
IiEmitOpcode 0x38
JMP IizVINSERTF64X2.op:
ENDP IizVINSERTI64X2::
- ↑ VINSERTF64X4
- Insert Packed Floating-Point Values
- Intel reference
VINSERTF64X4 zmm1 {k1}{z}, zmm2, ymm3/m256, imm8
| EVEX.NDS.512.66.0F3A.W1 1A /r ib
|
- Opcode
- 0x1A
- Tested by
- t5296
IizVINSERTF64X4:: PROC
IiEmitOpcode 0x1A
.op:IiAllowModifier MASK
IiEncoding DATA=QWORD
IiDisp8EVEX T4F64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix EVEX.NDS.512.66.0F3A.W1
IiDispatchFormat zmm.zmm.ymm.imm, zmm.zmm.mem.imm
.zmm.zmm.ymm.imm:
.zmm.zmm.mem.imm:
RET
ENDP IizVINSERTF64X4::
- ↑ VINSERTI64X4
- Insert Packed Integer Values
- Intel reference
VINSERTI64X4 zmm1 {k1}{z}, zmm2, ymm3/m256, imm8
| EVEX.NDS.512.66.0F3A.W1 3A /r ib
|
- Opcode
- 0x3A
- Tested by
- t5298
IizVINSERTI64X4:: PROC
IiEmitOpcode 0x3A
JMP IizVINSERTF64X4.op:
ENDP IizVINSERTI64X4::
- ↑ VINSERTF128
- Insert Packed Floating-Point Values
- Description
- VINSERTF128
- Intel reference
VINSERTF128 ymm1, ymm2, xmm3/m128, imm8
| VEX.NDS.256.66.0F3A.W0 18 /r ib
|
- Opcode
- 0x18
- Tested by
- t5296
IizVINSERTF128:: PROC
IiEmitOpcode 0x18
.op:IiEncoding DATA=OWORD
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix VEX.NDS.256.66.0F3A.W0
IiDispatchFormat ymm.ymm.xmm.imm, ymm.ymm.mem.imm
.ymm.ymm.xmm.imm:
.ymm.ymm.mem.imm:
RET
ENDP IizVINSERTF128::
- ↑ VINSERTI128
- Insert Packed Integer Values
- Description
- VINSERTI128
- Intel reference
VINSERTI128 ymm1, ymm2, xmm3/m128, imm8
| VEX.NDS.256.66.0F3A.W0 38 /r ib
|
- Opcode
- 0x38
- Tested by
- t5298
IizVINSERTI128:: PROC
IiEmitOpcode 0x38
JMP IizVINSERTF128.op:
ENDP IizVINSERTI128::
- ↑ VINSERTPS
- Insert Packed Single-FP Value
- Intel reference
VINSERTPS xmm1, xmm2, xmm3/m32, imm8
| VEX.NDS.128.66.0F3A.WIG 21 /r ib
|
VINSERTPS xmm1, xmm2, xmm3/m32, imm8
| EVEX.NDS.128.66.0F3A.W0 21 /r ib
|
- Category
- sse41,simdfp,datamov
- Operands
- Vps,Ups,Ib | Vps,Md,Ib
- Opcode
- 0x660F3A21 /r | 0x660F3A21 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5302
IizVINSERTPS:: PROC
IiEncoding DATA=DWORD
IiEmitOpcode 0x21
IiDisp8EVEX T1S32
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix VEX.NDS.128.66.0F3A.WIG, EVEX.NDS.128.66.0F3A.W0
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
RET
ENDP IizVINSERTPS::
- ↑ VPINSRB
- Insert Byte
- Intel reference
VPINSRB xmm1, xmm2, r32/m8, imm8
| VEX.NDS.128.66.0F3A 20 /r ib
|
VPINSRB xmm1, xmm2, r32/m8, imm8
| EVEX.NDS.128.66.0F3A.WIG 20 /r ib
|
- Category
- sse41,simdint,datamov
- Operands
- Vdq,Mb,Ib | Vdq,Rdqp,Ib
- Opcode
- 0x660F3A20 /r | 0x660F3A20 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5302
IizVPINSRB:: PROC
IiEncoding DATA=BYTE
IiEmitOpcode 0x20
IiDisp8EVEX T1S8
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix VEX.NDS.128.66.0F3A, EVEX.NDS.128.66.0F3A.WIG
IiDispatchFormat xmm.xmm.r32.imm, xmm.xmm.mem.imm
.xmm.xmm.r32.imm:
.xmm.xmm.mem.imm:
RET
ENDP IizVPINSRB::
- ↑ VPINSRW
- Insert Word
- Intel reference
VPINSRW xmm1, xmm2, r32/m16, imm8
| VEX.NDS.128.66.0F C4 /r ib
|
VPINSRW xmm1, xmm2, r32/m16, imm8
| EVEX.NDS.128.66.0F.WIG C4 /r ib
|
- Category
- sse1,simdint
- Operands
- Pq,Rdqp,Ib | Pq,Mw,Ib | Vdq,Rdqp,Ib | Vdq,Mw,Ib
- Opcode
- 0x0FC4 /r | 0x0FC4 /r | 0x660FC4 /r | 0x660FC4 /r
- CPU
- P3+
- Tested by
- t5302
IizVPINSRW:: PROC
IiEncoding DATA=WORD
IiEmitOpcode 0xC4
IiDisp8EVEX T1S16
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix VEX.NDS.128.66.0F, EVEX.NDS.128.66.0F.WIG
IiDispatchFormat xmm.xmm.r32.imm, xmm.xmm.mem.imm
.xmm.xmm.r32.imm:
.xmm.xmm.mem.imm:
RET
ENDP IizVPINSRW::
- ↑ VPINSRD
- Insert Dword/Qword
- Intel reference
VPINSRD xmm1, xmm2, r32/m32, imm8
| VEX.NDS.128.66.0F3A.W0 22 /r ib
|
VPINSRD xmm1, xmm2, r32/m32, imm8
| EVEX.NDS.128.66.0F3A.W0 22 /r ib
|
- Category
- sse41,simdint,datamov
- Operands
- Vdq,Ed,Ib
- Opcode
- 0x660F3A22 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5302
IizVPINSRD:: PROC
IiEncoding DATA=DWORD
IiEmitOpcode 0x22
IiDisp8EVEX T1S32
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix VEX.NDS.128.66.0F3A.W0, EVEX.NDS.128.66.0F3A.W0
IiDispatchFormat xmm.xmm.r32.imm, xmm.xmm.mem.imm
.xmm.xmm.r32.imm:
.xmm.xmm.mem.imm:
RET
ENDP IizVPINSRD::
- ↑ VPINSRQ
- Insert Dword/Qword
- Intel reference
VPINSRQ xmm1, xmm2, r64/m64, imm8
| VEX.NDS.128.66.0F3A.W1 22 /r ib
|
VPINSRQ xmm1, xmm2, r64/m64, imm8
| EVEX.NDS.128.66.0F3A.W1 22 /r ib
|
- Category
- sse41,simdint,datamov
- Operands
- Vdq,Eqp,Ib
- Opcode
- 0x660F3A22 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5302
IizVPINSRQ:: PROC
IiEncoding DATA=QWORD
IiAbortIfNot64
IiEmitOpcode 0x22
IiDisp8EVEX T1S64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix VEX.NDS.128.66.0F3A.W1, EVEX.NDS.128.66.0F3A.W1
IiDispatchFormat xmm.xmm.r64.imm, xmm.xmm.mem.imm
.xmm.xmm.r64.imm:
.xmm.xmm.mem.imm:
RET
ENDP IizVPINSRQ::
- ↑ VFIXUPIMMSS
- Fix Up Special Scalar Float32 Value
- Intel reference
VFIXUPIMMSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8
| EVEX.NDS.LIG.66.0F3A.W0 55 /r ib
|
- Opcode
- 0x55
- Tested by
- t5308
IizVFIXUPIMMSS:: PROC
IiAllowModifier MASK
IiAllowSuppressing Operand=DH, Register=xmm
IiEncoding DATA=DWORD
IiEmitOpcode 0x55
IiDisp8EVEX T1S32
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix EVEX.NDS.LIG.66.0F3A.W0
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
RET
ENDP IizVFIXUPIMMSS::
- ↑ VFIXUPIMMSD
- Fix Up Special Scalar Float64 Value
- Intel reference
VFIXUPIMMSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8
| EVEX.NDS.LIG.66.0F3A.W1 55 /r ib
|
- Opcode
- 0x55
- Tested by
- t5308
IizVFIXUPIMMSD:: PROC
IiAllowModifier MASK
IiAllowSuppressing Operand=DH, Register=xmm
IiEncoding DATA=QWORD
IiEmitOpcode 0x55
IiDisp8EVEX T1S64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiEmitPrefix EVEX.NDS.LIG.66.0F3A.W1
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
RET
ENDP IizVFIXUPIMMSD::
- ↑ VFIXUPIMMPS
- Fix Up Special Packed Float32 Values
- Intel reference
VFIXUPIMMPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst, imm8
| EVEX.NDS.128.66.0F3A.W0 54 /r
|
VFIXUPIMMPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst, imm8
| EVEX.NDS.256.66.0F3A.W0 54 /r
|
VFIXUPIMMPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst{sae}, imm8
| EVEX.NDS.512.66.0F3A.W0 54 /r ib
|
- Opcode
- 0x54
- Tested by
- t5308
IizVFIXUPIMMPS:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD, Operand=DH
IiAllowSuppressing Operand=DH
IiEncoding DATA=DWORD
IiEmitOpcode 0x54
IiDisp8EVEX FV32
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, ymm.ymm.mem.imm, zmm.zmm.zmm.imm, zmm.zmm.mem.imm
.xmm.xmm.mem.imm:
.xmm.xmm.xmm.imm:
IiEmitPrefix EVEX.NDS.128.66.0F3A.W0
RET
.ymm.ymm.mem.imm:
.ymm.ymm.ymm.imm:
IiEmitPrefix EVEX.NDS.256.66.0F3A.W0
RET
.zmm.zmm.mem.imm:
.zmm.zmm.zmm.imm:
IiEmitPrefix EVEX.NDS.512.66.0F3A.W0
RET
ENDP IizVFIXUPIMMPS::
- ↑ VFIXUPIMMPD
- Fix Up Special Packed Float64 Values
- Intel reference
VFIXUPIMMPD xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst, imm8
| EVEX.NDS.128.66.0F3A.W1 54 /r ib
|
VFIXUPIMMPD ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst, imm8
| EVEX.NDS.256.66.0F3A.W1 54 /r ib
|
VFIXUPIMMPD zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst{sae}, imm8
| EVEX.NDS.512.66.0F3A.W1 54 /r ib
|
- Opcode
- 0x54
- Tested by
- t5308
IizVFIXUPIMMPD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD, Operand=DH
IiAllowSuppressing Operand=DH
IiEncoding DATA=QWORD
IiEmitOpcode 0x54
IiDisp8EVEX FV64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, ymm.ymm.mem.imm, zmm.zmm.zmm.imm, zmm.zmm.mem.imm
.xmm.xmm.mem.imm:
.xmm.xmm.xmm.imm:
IiEmitPrefix EVEX.NDS.128.66.0F3A.W1
RET
.ymm.ymm.mem.imm:
.ymm.ymm.ymm.imm:
IiEmitPrefix EVEX.NDS.256.66.0F3A.W1
RET
.zmm.zmm.mem.imm:
.zmm.zmm.zmm.imm:
IiEmitPrefix EVEX.NDS.512.66.0F3A.W1
RET
ENDP IizVFIXUPIMMPD::
- ↑ VFPCLASSSS
- Tests Types Of a Scalar Float32 Values
- Intel reference
VFPCLASSSS k2 {k1}, xmm2/m32, imm8
| EVEX.LIG.66.0F3A.W0 67 /r ib
|
- Opcode
- 0x67
- Tested by
- t5430
IizVFPCLASSSS:: PROC
IiAllowMaskMerging
IiEncoding DATA=DWORD
IiEmitOpcode 0x67
IiDisp8EVEX T1S32
IiOpEn RM
IiModRM /r
IiEmitImm Operand3, BYTE
IiEmitPrefix EVEX.LIG.66.0F3A.W0
IiDispatchFormat krg.xmm.imm, krg.mem.imm
.krg.xmm.imm:
.krg.mem.imm:
RET
ENDP IizVFPCLASSSS::
- ↑ VFPCLASSSD
- Tests Types Of a Scalar Float64 Values
- Intel reference
VFPCLASSSD k2 {k1}, xmm2/m64, imm8
| EVEX.LIG.66.0F3A.W1 67 /r ib
|
- Opcode
- 0x67
- Tested by
- t5430
IizVFPCLASSSD:: PROC
IiAllowMaskMerging
IiEncoding DATA=QWORD
IiEmitOpcode 0x67
IiDisp8EVEX T1S64
IiOpEn RM
IiModRM /r
IiEmitImm Operand3, BYTE
IiEmitPrefix EVEX.LIG.66.0F3A.W1
IiDispatchFormat krg.xmm.imm, krg.mem.imm
.krg.xmm.imm:
.krg.mem.imm:
RET
ENDP IizVFPCLASSSD::
- ↑ VFPCLASSPS
- Tests Types Of a Packed Float32 Values
- Intel reference
VFPCLASSPS k2 {k1}, xmm2/m128/m32bcst, imm8
| EVEX.128.66.0F3A.W0 66 /r ib
|
VFPCLASSPS k2 {k1}, ymm2/m256/m32bcst, imm8
| EVEX.256.66.0F3A.W0 66 /r ib
|
VFPCLASSPS k2 {k1}, zmm2/m512/m32bcst, imm8
| EVEX.512.66.0F3A.W0 66 /r ib
|
- Opcode
- 0x66
- Tested by
- t5430
IizVFPCLASSPS:: PROC
IiAllowMaskMerging
IiAllowBroadcasting DWORD, Operand=DH
IiEmitOpcode 0x66
IiDisp8EVEX FV32
IiOpEn RM
IiModRM /r
IiEmitImm Operand3, BYTE
IiDataSize Operand2, StreamingSIMD=ON
IiDispatchFormat krg.xmm.imm, krg.ymm.imm, krg.zmm.imm, \
krg.m128.imm, krg.m256.imm, krg.m512.imm, krg.mem.imm
.krg.m128.imm:
.krg.xmm.imm:
IiEmitPrefix EVEX.128.66.0F3A.W0
RET
.krg.m256.imm:
.krg.ymm.imm:
IiEmitPrefix EVEX.256.66.0F3A.W0
RET
.krg.mem.imm:
.krg.m512.imm:
.krg.zmm.imm:
IiEmitPrefix EVEX.512.66.0F3A.W0
RET
ENDP IizVFPCLASSPS::
- ↑ VFPCLASSPD
- Tests Types Of a Packed Float64 Values
- Intel reference
VFPCLASSPD k2 {k1}, xmm2/m128/m64bcst, imm8
| EVEX.128.66.0F3A.W1 66 /r ib
|
VFPCLASSPD k2 {k1}, ymm2/m256/m64bcst, imm8
| EVEX.256.66.0F3A.W1 66 /r ib
|
VFPCLASSPD k2 {k1}, zmm2/m512/m64bcst, imm8
| EVEX.512.66.0F3A.W1 66 /r ib
|
- Opcode
- 0x66
IizVFPCLASSPD:: PROC
IiAllowMaskMerging
IiAllowBroadcasting QWORD, Operand=DH
IiEmitOpcode 0x66
IiOpEn RM
IiModRM /r
IiEmitImm Operand3, BYTE
IiDisp8EVEX FV64
IiDataSize Operand2, StreamingSIMD=ON
IiDispatchFormat krg.xmm.imm, krg.ymm.imm, krg.zmm.imm, \
krg.m128.imm, krg.m256.imm, krg.m512.imm, krg.mem.imm
.krg.m128.imm:
.krg.xmm.imm:
IiEmitPrefix EVEX.128.66.0F3A.W1
RET
.krg.m256.imm:
.krg.ymm.imm:
IiEmitPrefix EVEX.256.66.0F3A.W1
RET
.krg.mem.imm:
.krg.m512.imm:
.krg.zmm.imm:
IiEmitPrefix EVEX.512.66.0F3A.W1
RET
ENDP IizVFPCLASSPD::
- ↑ VPGATHERDD
- Gather Packed Dword with Signed Dword Indices
- Description
- VPGATHERDD
- Intel reference
VPGATHERDD xmm1, vm32x, xmm2
| VEX.DDS.128.66.0F38.W0 90 /r /vsib
|
VPGATHERDD ymm1, vm32y, ymm2
| VEX.DDS.256.66.0F38.W0 90 /r /vsib
|
VPGATHERDD xmm1 {k1}, vm32x
| EVEX.128.66.0F38.W0 90 /r /vsib
|
VPGATHERDD ymm1 {k1}, vm32y
| EVEX.256.66.0F38.W0 90 /r /vsib
|
VPGATHERDD zmm1 {k1}, vm32z
| EVEX.512.66.0F38.W0 90 /r /vsib
|
VPGATHERDD zmm1 {k1}, vm32z
| MVEX.512.66.0F38.W0 90 /r /vsib
|
- Opcode
- 0x90
- Tested by
- t5440
IizVPGATHERDD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0x90
IiDisp8EVEX T1S32
IiDispatchFormat xmm.mem.xmm, ymm.mem.ymm, xmm.mem, ymm.mem, zmm.mem
.xmm.mem.xmm:
IiEmitPrefix VEX.DDS.128.66.0F38.W0
IiVSIB vm32x
IiOpEn RMV
IiModRM /r
RET
.ymm.mem.ymm:
IiEmitPrefix VEX.DDS.256.66.0F38.W0
IiVSIB vm32y
IiOpEn RMV
IiModRM /r
RET
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W0
IiVSIB vm32x
IiOpEn RM
IiModRM /r
RET
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W0
IiVSIB vm32y
IiOpEn RM
IiModRM /r
RET
.zmm.mem:
IiDisp8MVEX Di32
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
IiVSIB vm32z
IiOpEn RM
IiModRM /r
RET
ENDP IizVPGATHERDD::
- ↑ VPGATHERQD
- Gather Packed Dword with Signed Qword Indices
- Description
- VPGATHERQD
- Intel reference
VPGATHERQD xmm1, vm64x, xmm2
| VEX.DDS.128.66.0F38.W0 91 /r /vsib
|
VPGATHERQD xmm1, vm64y, xmm2
| VEX.DDS.256.66.0F38.W0 91 /r /vsib
|
VPGATHERQD xmm1 {k1}, vm64x
| EVEX.128.66.0F38.W0 91 /r /vsib
|
VPGATHERQD xmm1 {k1}, vm64y
| EVEX.256.66.0F38.W0 91 /r /vsib
|
VPGATHERQD ymm1 {k1}, vm64z
| EVEX.512.66.0F38.W0 91 /r /vsib
|
- Opcode
- 0x91
- Tested by
- t5440
IizVPGATHERQD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0x91
IiDisp8EVEX T1S32
IiDispatchFormat xmm.mem.xmm, xmm.mem, ymm.mem
.xmm.m256.xmm:
IiEmitPrefix VEX.DDS.256.66.0F38.W0
IiVSIB vm64y
IiOpEn RMV
IiModRM /r
RET
.xmm.mem.xmm:
JSt [EDI+II.Ppx],iiPpxVSIB2, .xmm.m256.xmm:
IiEmitPrefix VEX.DDS.128.66.0F38.W0
IiVSIB vm64x
IiOpEn RMV
IiModRM /r
RET
.xmm.m256:
IiEmitPrefix EVEX.256.66.0F38.W0
IiVSIB vm64y
IiOpEn RM
IiModRM /r
RET
.xmm.mem:
JSt [EDI+II.Ppx],iiPpxVSIB2, .xmm.m256:
IiEmitPrefix EVEX.128.66.0F38.W0
IiVSIB vm64x
IiOpEn RM
IiModRM /r
RET
.ymm.mem:
IiEmitPrefix EVEX.512.66.0F38.W0
IiVSIB vm64z
IiOpEn RM
IiModRM /r
RET
ENDP IizVPGATHERQD::
- ↑ VPGATHERDQ
- Gather Packed Qword with Signed Dword Indices
- Description
- VPGATHERDQ
- Intel reference
VPGATHERDQ xmm1, vm32x, xmm2
| VEX.DDS.128.66.0F38.W1 90 /r /vsib
|
VPGATHERDQ ymm1, vm32x, ymm2
| VEX.DDS.256.66.0F38.W1 90 /r /vsib
|
VPGATHERDQ xmm1 {k1}, vm32x
| EVEX.128.66.0F38.W1 90 /r /vsib
|
VPGATHERDQ ymm1 {k1}, vm32x
| EVEX.256.66.0F38.W1 90 /r /vsib
|
VPGATHERDQ zmm1 {k1}, vm32y
| EVEX.512.66.0F38.W1 90 /r /vsib
|
VPGATHERDQ zmm1 {k1}, vm32z
| MVEX.512.66.0F38.W1 90 /r /vsib
|
- Opcode
- 0x90
- Tested by
- t5440
IizVPGATHERDQ:: PROC
IiAllowMaskMerging
IiEmitOpcode 0x90
IiDisp8EVEX T1S64
IiDispatchFormat xmm.mem.xmm, ymm.mem.ymm, xmm.mem, ymm.mem, zmm.mem
.xmm.mem.xmm:
IiEmitPrefix VEX.DDS.128.66.0F38.W1
IiVSIB vm32x
IiOpEn RMV
IiModRM /r
RET
.ymm.mem.ymm:
IiEmitPrefix VEX.DDS.256.66.0F38.W1
IiVSIB vm32x
IiOpEn RMV
IiModRM /r
RET
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W1
IiVSIB vm32x
IiOpEn RM
IiModRM /r
RET
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W1
IiVSIB vm32x
IiOpEn RM
IiModRM /r
RET
.zmm.m512:
IiDisp8MVEX Sn64
IiEmitPrefix MVEX.512.66.0F38.W1
IiVSIB vm32z
IiOpEn RM
IiModRM /r
RET
.zmm.mem:
JSt [EDI+II.Ppx],iiPpxVSIB1, .zmm.m512:
IiEmitPrefix EVEX.512.66.0F38.W1
IiVSIB vm32y
IiOpEn RM
IiModRM /r
RET
ENDP IizVPGATHERDQ::
- ↑ VPGATHERQQ
- Gather Packed Qword with Signed Qword Indices
- Description
- VPGATHERQQ
- Intel reference
VPGATHERQQ xmm1, vm64x, xmm2
| VEX.DDS.128.66.0F38.W1 91 /r /vsib
|
VPGATHERQQ ymm1, vm64y, ymm2
| VEX.DDS.256.66.0F38.W1 91 /r /vsib
|
VPGATHERQQ xmm1 {k1}, vm64x
| EVEX.128.66.0F38.W1 91 /r /vsib
|
VPGATHERQQ ymm1 {k1}, vm64y
| EVEX.256.66.0F38.W1 91 /r /vsib
|
VPGATHERQQ zmm1 {k1}, vm64z
| EVEX.512.66.0F38.W1 91 /r /vsib
|
- Opcode
- 0x91
- Tested by
- t5440
IizVPGATHERQQ:: PROC
IiAllowMaskMerging
IiEmitOpcode 0x91
IiDisp8EVEX T1S64
IiDispatchFormat xmm.mem.xmm, ymm.mem.ymm, xmm.mem, ymm.mem, zmm.mem
.xmm.mem.xmm:
IiEmitPrefix VEX.DDS.128.66.0F38.W1
IiVSIB vm64x
IiOpEn RMV
IiModRM /r
RET
.ymm.mem.ymm:
IiEmitPrefix VEX.DDS.256.66.0F38.W1
IiVSIB vm64y
IiOpEn RMV
IiModRM /r
RET
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W1
IiVSIB vm64x
IiOpEn RM
IiModRM /r
RET
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W1
IiVSIB vm64y
IiOpEn RM
IiModRM /r
RET
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W1
IiVSIB vm64z
IiOpEn RM
IiModRM /r
RET
ENDP IizVPGATHERQQ::
- ↑ VGATHERDPS
- Gather Packed Single with Signed Dword Indices
- Description
- VGATHERDPS
- Intel reference
VGATHERDPS xmm1, vm32x, xmm2
| VEX.DDS.128.66.0F38.W0 92 /r /vsib
|
VGATHERDPS ymm1, vm32y, ymm2
| VEX.DDS.256.66.0F38.W0 92 /r /vsib
|
VGATHERDPS xmm1 {k1}, vm32x
| EVEX.128.66.0F38.W0 92 /r /vsib
|
VGATHERDPS ymm1 {k1}, vm32y
| EVEX.256.66.0F38.W0 92 /r /vsib
|
VGATHERDPS zmm1 {k1}, vm32z
| EVEX.512.66.0F38.W0 92 /r /vsib
|
VGATHERDPS zmm1 {k1}, vm32z
| MVEX.512.66.0F38.W0 92 /r /vsib
|
- Opcode
- 0x92
- Tested by
- t5442
IizVGATHERDPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0x92
IiDisp8EVEX T1S32
IiDispatchFormat xmm.mem.xmm, ymm.mem.ymm, xmm.mem, ymm.mem, zmm.mem
.xmm.mem.xmm:
IiEmitPrefix VEX.DDS.128.66.0F38.W0
IiVSIB vm32x
IiOpEn RMV
IiModRM /r
RET
.ymm.mem.ymm:
IiEmitPrefix VEX.DDS.256.66.0F38.W0
IiVSIB vm32y
IiOpEn RMV
IiModRM /r
RET
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W0
IiVSIB vm32x
IiOpEn RM
IiModRM /r
RET
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W0
IiVSIB vm32y
IiOpEn RM
IiModRM /r
RET
.zmm.mem:
IiDisp8MVEX Df32
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
IiVSIB vm32z
IiOpEn RM
IiModRM /r
RET
ENDP IizVGATHERDPS::
- ↑ VGATHERDPD
- Gather Packed Double with Signed Dword Indices
- Description
- VGATHERDPD
- Intel reference
VGATHERDPD xmm1, vm32x, xmm2
| VEX.DDS.128.66.0F38.W1 92 /r /vsib
|
VGATHERDPD ymm1, vm32x, ymm2
| VEX.DDS.256.66.0F38.W1 92 /r /vsib
|
VGATHERDPD xmm1 {k1}, vm32x
| EVEX.128.66.0F38.W1 92 /r /vsib
|
VGATHERDPD ymm1 {k1}, vm32x
| EVEX.256.66.0F38.W1 92 /r /vsib
|
VGATHERDPD zmm1 {k1}, vm32y
| EVEX.512.66.0F38.W1 92 /r /vsib
|
VGATHERDPD zmm1 {k1}, vm32z
| MVEX.512.66.0F38.W1 92 /r /vsib
|
- Opcode
- 0c92
- Tested by
- t5442
IizVGATHERDPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0x92
IiDisp8EVEX T1S64
IiDispatchFormat xmm.mem.xmm, ymm.mem.ymm, xmm.mem, ymm.mem, zmm.mem
.xmm.mem.xmm:
IiEmitPrefix VEX.DDS.128.66.0F38.W1
IiVSIB vm32x
IiOpEn RMV
IiModRM /r
RET
.ymm.mem.ymm:
IiEmitPrefix VEX.DDS.256.66.0F38.W1
IiVSIB vm32x
IiOpEn RMV
IiModRM /r
RET
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W1
IiVSIB vm32x
IiOpEn RM
IiModRM /r
RET
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W1
IiVSIB vm32x
IiOpEn RM
IiModRM /r
RET
.zmm.m512:
IiDisp8MVEX Sn64
IiEmitPrefix MVEX.512.66.0F38.W1
IiVSIB vm32z
IiOpEn RM
IiModRM /r
RET
.zmm.mem:
JSt [EDI+II.Ppx],iiPpxVSIB1, .zmm.m512:
IiEmitPrefix EVEX.512.66.0F38.W1
IiOpEn RM
IiVSIB vm32y
IiModRM /r
RET
ENDP IizVGATHERDPD::
- ↑ VGATHERQPS
- Gather Packed Single with Signed Qword Indices
- Description
- VGATHERQPS
- Intel reference
VGATHERQPS xmm1, vm64x, xmm2
| VEX.DDS.128.66.0F38.W0 93 /r /vsib
|
VGATHERQPS xmm1, vm64y, xmm2
| VEX.DDS.256.66.0F38.W0 93 /r /vsib
|
VGATHERQPS xmm1 {k1}, vm64x
| EVEX.128.66.0F38.W0 93 /r /vsib
|
VGATHERQPS xmm1 {k1}, vm64y
| EVEX.256.66.0F38.W0 93 /r /vsib
|
VGATHERQPS ymm1 {k1}, vm64z
| EVEX.512.66.0F38.W0 93 /r /vsib
|
- Opcode
- 0x93
- Tested by
- t5442
IizVGATHERQPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0x93
IiDisp8EVEX T1S32
IiDispatchFormat xmm.mem.xmm, xmm.mem, ymm.mem
.xmm.m256.xmm:
IiEmitPrefix VEX.DDS.256.66.0F38.W0
IiVSIB vm64y
IiOpEn RMV
IiModRM /r
RET
.xmm.mem.xmm:
JSt [EDI+II.Ppx],iiPpxVSIB2, .xmm.m256.xmm:
IiEmitPrefix VEX.DDS.128.66.0F38.W0
IiVSIB vm64x
IiOpEn RMV
IiModRM /r
RET
.xmm.m256:
IiEmitPrefix EVEX.256.66.0F38.W0
IiVSIB vm64y
IiOpEn RM
IiModRM /r
RET
.xmm.mem:
JSt [EDI+II.Ppx],iiPpxVSIB2, .xmm.m256:
IiEmitPrefix EVEX.128.66.0F38.W0
IiVSIB vm64x
IiOpEn RM
IiModRM /r
RET
.ymm.mem:
IiEmitPrefix EVEX.512.66.0F38.W0
IiVSIB vm64z
IiOpEn RM
IiModRM /r
RET
ENDP IizVGATHERQPS::
- ↑ VGATHERQPD
- Gather Packed Double with Signed Qword Indices
- Description
- VGATHERQPD
- Intel reference
VGATHERQPD xmm1, vm64x, xmm2
| VEX.DDS.128.66.0F38.W1 93 /r /vsib
|
VGATHERQPD ymm1, vm64y, ymm2
| VEX.DDS.256.66.0F38.W1 93 /r /vsib
|
VGATHERQPD xmm1 {k1}, vm64x
| EVEX.128.66.0F38.W1 93 /r /vsib
|
VGATHERQPD ymm1 {k1}, vm64y
| EVEX.256.66.0F38.W1 93 /r /vsib
|
VGATHERQPD zmm1 {k1}, vm64z
| EVEX.512.66.0F38.W1 93 /r /vsib
|
- Opcode
- 0x93
- Tested by
- t5442
IizVGATHERQPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0x93
IiDisp8EVEX T1S64
IiDispatchFormat xmm.mem.xmm, ymm.mem.ymm, xmm.mem, ymm.mem, zmm.mem
.xmm.mem.xmm:
IiEmitPrefix VEX.DDS.128.66.0F38.W1
IiVSIB vm64x
IiOpEn RMV
IiModRM /r
RET
.ymm.mem.ymm:
IiEmitPrefix VEX.DDS.256.66.0F38.W1
IiVSIB vm64y
IiOpEn RMV
IiModRM /r
RET
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W1
IiVSIB vm64x
IiOpEn RM
IiModRM /r
RET
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W1
IiVSIB vm64y
IiOpEn RM
IiModRM /r
RET
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W1
IiVSIB vm64z
IiOpEn RM
IiModRM /r
RET
ENDP IizVGATHERQPD::
- ↑ VGATHERPF0DPS
- Sparse Prefetch Packed SP Data Values with Signed Dword Indices Using T0 Hint
- Intel reference
VGATHERPF0DPS vm32z {k1}
| EVEX.512.66.0F38.W0 C6 /1 /vsib
|
VGATHERPF0DPS vm32z {k1}
| MVEX.512.66.0F38.W0 C6 /1 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5444
IizVGATHERPF0DPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8EVEX T1S32
IiDisp8MVEX Df32
IiOpEn M
IiVSIB vm32z
IiModRM /1
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
IiDispatchFormat mem
.mem:RET
ENDP IizVGATHERPF0DPS::
- ↑ VGATHERPF0HINTDPS
- Sparse Prefetch Packed SP Data Values with Signed Dword Indices Using T0 Hint
- Intel reference
VGATHERPF0HINTDPS vm32z {k1}
| MVEX.512.66.0F38.W0 C6 /0 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5444
IizVGATHERPF0HINTDPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8MVEX Df32
IiOpEn M
IiVSIB vm32z
IiModRM /0
IiEmitPrefix MVEX.512.66.0F38.W0
IiDispatchFormat mem
.mem:RET
ENDP IizVGATHERPF0HINTDPS::
- ↑ VGATHERPF0QPS
- Sparse Prefetch Packed SP Data Values with Signed Qword Indices Using T0 Hint
- Intel reference
VGATHERPF0QPS vm64z {k1}
| EVEX.512.66.0F38.W0 C7 /1 /vsib
|
- Opcode
- 0xC7
- Tested by
- t5444
IizVGATHERPF0QPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC7
IiDisp8EVEX T1S32
IiOpEn M
IiVSIB vm64z
IiModRM /1
IiEmitPrefix EVEX.512.66.0F38.W0
IiDispatchFormat mem
.mem:RET
ENDP IizVGATHERPF0QPS::
- ↑ VGATHERPF0DPD
- Sparse Prefetch Packed DP Data Values with Signed Dword Indices Using T0 Hint
- Intel reference
VGATHERPF0DPD vm32y {k1}
| EVEX.512.66.0F38.W1 C6 /1 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5444
IizVGATHERPF0DPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8EVEX T1S64
IiOpEn M
IiVSIB vm32y
IiModRM /1
IiEmitPrefix EVEX.512.66.0F38.W1
IiDispatchFormat mem
.mem:RET
ENDP IizVGATHERPF0DPD::
- ↑ VGATHERPF0HINTDPD
- Sparse Prefetch Packed DP Data Values with Signed Dword Indices Using T0 Hint
- Intel reference
VGATHERPF0HINTDPD vm32z {k1}
| MVEX.512.66.0F38.W1 C6 /0 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5444
IizVGATHERPF0HINTDPD:: PROC
IiAllowMaskMerging
IiDisp8MVEX Sn64
IiEmitOpcode 0xC6
IiOpEn M
IiVSIB vm32z
IiModRM /0
IiEmitPrefix MVEX.512.66.0F38.W1
IiDispatchFormat mem
.mem:RET
ENDP IizVGATHERPF0HINTDPD::
- ↑ VGATHERPF0QPD
- Sparse Prefetch Packed DP Data Values with Signed Qword Indices Using T0 Hint
- Intel reference
VGATHERPF0QPD vm64z {k1}
| EVEX.512.66.0F38.W1 C7 /1 /vsib
|
- Opcode
- 0xC7
- Tested by
- t5444
IizVGATHERPF0QPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC7
IiDisp8EVEX T1S64
IiOpEn M
IiVSIB vm64z
IiModRM /1
IiEmitPrefix EVEX.512.66.0F38.W1
IiDispatchFormat mem
.mem:RET
ENDP IizVGATHERPF0QPD::
- ↑ VGATHERPF1DPS
- Sparse Prefetch Packed SP Data Values with Signed Dword Indices Using T1 Hint
- Intel reference
VGATHERPF1DPS vm32z {k1}
| EVEX.512.66.0F38.W0 C6 /2 /vsib
|
VGATHERPF1DPS vm32z {k1}
| MVEX.512.66.0F38.W0 C6 /2 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5446
IizVGATHERPF1DPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8EVEX T1S32
IiDisp8MVEX Df32
IiOpEn M
IiVSIB vm32z
IiModRM /2
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
IiDispatchFormat mem
.mem:RET
ENDP IizVGATHERPF1DPS::
- ↑ VGATHERPF1QPS
- Sparse Prefetch Packed SP Data Values with Signed Qword Indices Using T1 Hint
- Intel reference
VGATHERPF1QPS vm64z {k1}
| EVEX.512.66.0F38.W0 C7 /2 /vsib
|
- Opcode
- 0xC7
- Tested by
- t5446
IizVGATHERPF1QPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC7
IiDisp8EVEX T1S32
IiOpEn M
IiVSIB vm64z
IiModRM /2
IiEmitPrefix EVEX.512.66.0F38.W0
IiDispatchFormat mem
.mem:RET
ENDP IizVGATHERPF1QPS::
- ↑ VGATHERPF1DPD
- Sparse Prefetch Packed DP Data Values with Signed Dword Indices Using T1 Hint
- Intel reference
VGATHERPF1DPD vm32y {k1}
| EVEX.512.66.0F38.W1 C6 /2 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5446
IizVGATHERPF1DPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8EVEX T1S64
IiOpEn M
IiVSIB vm32y
IiModRM /2
IiEmitPrefix EVEX.512.66.0F38.W1
IiDispatchFormat mem
.mem:RET
ENDP IizVGATHERPF1DPD::
- ↑ VGATHERPF1QPD
- Sparse Prefetch Packed DP Data Values with Signed Qword Indices Using T1 Hint
- Intel reference
VGATHERPF1QPD vm64z {k1}
| EVEX.512.66.0F38.W1 C7 /2 /vsib
|
- Opcode
- 0xC7
- Tested by
- t5446
IizVGATHERPF1QPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC7
IiDisp8EVEX T1S64
IiOpEn M
IiVSIB vm64z
IiModRM /2
IiEmitPrefix EVEX.512.66.0F38.W1
IiDispatchFormat mem
.mem:RET
ENDP IizVGATHERPF1QPD::
- ↑ VPSCATTERDD
- Scatter Packed Dword with Signed Dword Indices
- Intel reference
VPSCATTERDD vm32x {k1}, xmm1
| EVEX.128.66.0F38.W0 A0 /r /vsib
|
VPSCATTERDD vm32y {k1}, ymm1
| EVEX.256.66.0F38.W0 A0 /r /vsib
|
VPSCATTERDD vm32z {k1}, zmm1
| EVEX.512.66.0F38.W0 A0 /r /vsib
|
VPSCATTERDD vm32z {k1}, zmm1
| MVEX.512.66.0F38.W0 A0 /r /vsib
|
- Opcode
- 0xA0
- Tested by
- t5450
IizVPSCATTERDD:: PROC
IiAllowMaskMerging
IiDisp8EVEX T1S32
IiEmitOpcode 0xA0
IiOpEn MR
IiDispatchFormat mem.xmm, mem.ymm, mem.zmm
.mem.xmm:
IiEmitPrefix EVEX.128.66.0F38.W0
IiVSIB vm32x
IiModRM /r
RET
.mem.ymm:
IiEmitPrefix EVEX.256.66.0F38.W0
IiVSIB vm32y
IiModRM /r
RET
.mem.zmm:
IiDisp8MVEX Di32
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
IiVSIB vm32z
IiModRM /r
RET
ENDP IizVPSCATTERDD::
- ↑ VPSCATTERDQ
- Scatter Packed Qword with Signed Dword Indices
- Intel reference
VPSCATTERDQ vm32x {k1}, xmm1
| EVEX.128.66.0F38.W1 A0 /r /vsib
|
VPSCATTERDQ vm32x {k1}, ymm1
| EVEX.256.66.0F38.W1 A0 /r /vsib
|
VPSCATTERDQ vm32y {k1}, zmm1
| EVEX.512.66.0F38.W1 A0 /r /vsib
|
VPSCATTERDQ vm32z {k1}, zmm1
| MVEX.512.66.0F38.W1 A0 /r /vsib
|
- Opcode
- 0xA0
- Tested by
- t5450
IizVPSCATTERDQ:: PROC
IiAllowModifier MASK
IiDisp8EVEX T1S64
IiOpEn MR
IiEmitOpcode 0xA0
IiDispatchFormat mem.xmm, mem.ymm, mem.zmm
.mem.xmm:
IiEmitPrefix EVEX.128.66.0F38.W1
IiVSIB vm32x
IiModRM /r
RET
.mem.ymm:
IiEmitPrefix EVEX.256.66.0F38.W1
IiVSIB vm32x
IiModRM /r
RET
.mem.zmm:
JSt [EDI+II.Ppx],iiPpxVSIB1, .m512.zmm:
IiEmitPrefix EVEX.512.66.0F38.W1
IiVSIB vm32y
IiModRM /r
RET
.m512.zmm:
IiDisp8MVEX Sn64
IiEmitPrefix MVEX.512.66.0F38.W1
IiVSIB vm32z
IiModRM /r
RET
ENDP IizVPSCATTERDQ::
- ↑ VPSCATTERQD
- Scatter Packed Dword with Signed Qword Indices
- Intel reference
VPSCATTERQD vm64x {k1}, xmm1
| EVEX.128.66.0F38.W0 A1 /r /vsib
|
VPSCATTERQD vm64y {k1}, xmm1
| EVEX.256.66.0F38.W0 A1 /r /vsib
|
VPSCATTERQD vm64z {k1}, ymm1
| EVEX.512.66.0F38.W0 A1 /r /vsib
|
- Opcode
- 0xA1
- Tested by
- t5450
IizVPSCATTERQD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xA1
IiDisp8EVEX T1S32
IiOpEn MR
IiDispatchFormat mem.xmm, mem.ymm
.m256.xmm:
IiEmitPrefix EVEX.256.66.0F38.W0
IiVSIB vm64y
IiModRM /r
RET
.mem.xmm:
JSt [EDI+II.Ppx],iiPpxVSIB2, .m256.xmm:
IiEmitPrefix EVEX.128.66.0F38.W0
IiVSIB vm64x
IiModRM /r
RET
.mem.ymm:
IiEmitPrefix EVEX.512.66.0F38.W0
IiVSIB vm64z
IiModRM /r
RET
ENDP IizVPSCATTERQD::
- ↑ VPSCATTERQQ
- Scatter Packed Qword with Signed Qword Indices
- Intel reference
VPSCATTERQQ vm64x {k1}, xmm1
| EVEX.128.66.0F38.W1 A1 /r /vsib
|
VPSCATTERQQ vm64y {k1}, ymm1
| EVEX.256.66.0F38.W1 A1 /r /vsib
|
VPSCATTERQQ vm64z {k1}, zmm1
| EVEX.512.66.0F38.W1 A1 /r /vsib
|
- Opcode
- 0xA1
- Tested by
- t5450
IizVPSCATTERQQ:: PROC
IiAllowModifier MASK
IiEmitOpcode 0xA1
IiDisp8EVEX T1S64
IiOpEn MR
IiDispatchFormat mem.xmm, mem.ymm, mem.zmm
.mem.xmm:
IiEmitPrefix EVEX.128.66.0F38.W1
IiVSIB vm64x
IiModRM /r
RET
.mem.ymm:
IiEmitPrefix EVEX.256.66.0F38.W1
IiVSIB vm64y
IiModRM /r
RET
.mem.zmm:
IiEmitPrefix EVEX.512.66.0F38.W1
IiVSIB vm64z
IiModRM /r
RET
ENDP IizVPSCATTERQQ::
- ↑ VSCATTERDPS
- Scatter Packed Single with Signed Dword Indices
- Intel reference
VSCATTERDPS vm32x {k1}, xmm1
| EVEX.128.66.0F38.W0 A2 /r /vsib
|
VSCATTERDPS vm32y {k1}, ymm1
| EVEX.256.66.0F38.W0 A2 /r /vsib
|
VSCATTERDPS vm32z {k1}, zmm1
| EVEX.512.66.0F38.W0 A2 /r /vsib
|
VSCATTERDPS vm32z {k1}, zmm1
| MVEX.512.66.0F38.W0 A2 /r /vsib
|
- Opcode
- 0xA2
- Tested by
- t5452
IizVSCATTERDPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xA2
IiDisp8EVEX T1S32
IiOpEn MR
IiDispatchFormat mem.xmm, mem.ymm, mem.zmm
.mem.xmm:
IiEmitPrefix EVEX.128.66.0F38.W0
IiVSIB vm32x
IiModRM /r
RET
.mem.ymm:
IiEmitPrefix EVEX.256.66.0F38.W0
IiVSIB vm32y
IiModRM /r
RET
.mem.zmm:
IiDisp8MVEX Df32
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
IiVSIB vm32z
IiModRM /r
RET
ENDP IizVSCATTERDPS::
- ↑ VSCATTERDPD
- Scatter Packed Double with Signed Dword Indices
- Intel reference
VSCATTERDPD vm32x {k1}, xmm1
| EVEX.128.66.0F38.W1 A2 /r /vsib
|
VSCATTERDPD vm32x {k1}, ymm1
| EVEX.256.66.0F38.W1 A2 /r /vsib
|
VSCATTERDPD vm32y {k1}, zmm1
| EVEX.512.66.0F38.W1 A2 /r /vsib
|
VSCATTERDPD vm32z {k1}, zmm1
| MVEX.512.66.0F38.W1 A2 /r /vsib
|
- Opcode
- 0xA2
- Tested by
- t5452
IizVSCATTERDPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xA2
IiDisp8EVEX T1S64
IiDisp8MVEX Sn64
IiOpEn MR
IiDispatchFormat mem.xmm, mem.ymm, mem.zmm
.mem.xmm:
IiEmitPrefix EVEX.128.66.0F38.W1
IiVSIB vm32x
IiModRM /r
RET
.mem.ymm:
IiEmitPrefix EVEX.256.66.0F38.W1
IiVSIB vm32x
IiModRM /r
RET
.m512.zmm:
IiEmitPrefix MVEX.512.66.0F38.W1
IiVSIB vm32z
IiModRM /r
RET
.mem.zmm:
JSt [EDI+II.Ppx],iiPpxVSIB1, .m512.zmm:
IiEmitPrefix EVEX.512.66.0F38.W1
IiVSIB vm32y
IiModRM /r
RET
ENDP IizVSCATTERDPD::
- ↑ VSCATTERQPS
- Scatter Packed Single with Signed Qword Indices
- Intel reference
VSCATTERQPS vm64x {k1}, xmm1
| EVEX.128.66.0F38.W0 A3 /r /vsib
|
VSCATTERQPS vm64y {k1}, xmm1
| EVEX.256.66.0F38.W0 A3 /r /vsib
|
VSCATTERQPS vm64z {k1}, ymm1
| EVEX.512.66.0F38.W0 A3 /r /vsib
|
- Opcode
- 0xA3
- Tested by
- t5452
IizVSCATTERQPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xA3
IiDisp8EVEX T1S32
IiOpEn MR
IiDispatchFormat mem.xmm, mem.ymm
.m256.xmm:
IiEmitPrefix EVEX.256.66.0F38.W0
IiVSIB vm64y
IiModRM /r
RET
.mem.xmm:
JSt [EDI+II.Ppx],iiPpxVSIB2, .m256.xmm:
IiEmitPrefix EVEX.128.66.0F38.W0
IiVSIB vm64x
IiModRM /r
RET
.mem.ymm:
IiEmitPrefix EVEX.512.66.0F38.W0
IiVSIB vm64z
IiModRM /r
RET
ENDP IizVSCATTERQPS::
- ↑ VSCATTERQPD
- Scatter Packed Double with Signed Qword Indices
- Intel reference
VSCATTERQPD vm64x {k1}, xmm1
| EVEX.128.66.0F38.W1 A3 /r /vsib
|
VSCATTERQPD vm64y {k1}, ymm1
| EVEX.256.66.0F38.W1 A3 /r /vsib
|
VSCATTERQPD vm64z {k1}, zmm1
| EVEX.512.66.0F38.W1 A3 /r /vsib
|
- Opcode
- 0xA3
- Tested by
- t5452
IizVSCATTERQPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xA3
IiDisp8EVEX T1S64
IiOpEn MR
IiDispatchFormat mem.xmm, mem.ymm, mem.zmm
.mem.xmm:
IiEmitPrefix EVEX.128.66.0F38.W1
IiVSIB vm64x
IiModRM /r
RET
.mem.ymm:
IiEmitPrefix EVEX.256.66.0F38.W1
IiVSIB vm64y
IiModRM /r
RET
.mem.zmm:
IiEmitPrefix EVEX.512.66.0F38.W1
IiVSIB vm64z
IiModRM /r
RET
ENDP IizVSCATTERQPD::
- ↑ VSCATTERPF0DPS
- Sparse Prefetch Packed SP Data Values with Signed Dword Indices Using T0 Hint with Intent to Write
- Intel reference
VSCATTERPF0DPS vm32z {k1}
| EVEX.512.66.0F38.W0 C6 /5 /vsib
|
VSCATTERPF0DPS vm32z {k1}
| MVEX.512.66.0F38.W0 C6 /5 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5454
IizVSCATTERPF0DPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8EVEX T1S32
IiDisp8MVEX Df32
IiOpEn M
IiVSIB vm32z
IiModRM /5
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
IiDispatchFormat mem
.mem:RET
ENDP IizVSCATTERPF0DPS::
- ↑ VSCATTERPF0HINTDPS
- Sparse Prefetch Packed SP Data Values with Signed Dword Indices Using T0 Hint with Intent to Write
- Intel reference
VSCATTERPF0HINTDPS vm32z {k1}
| MVEX.512.66.0F38.W0 C6 /4 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5454
IizVSCATTERPF0HINTDPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8MVEX Df32
IiOpEn M
IiVSIB vm32z
IiModRM /4
IiEmitPrefix MVEX.512.66.0F38.W0
IiDispatchFormat mem
.mem:RET
ENDP IizVSCATTERPF0HINTDPS::
- ↑ VSCATTERPF0QPS
- Sparse Prefetch Packed SP Data Values with Signed Qword Indices Using T0 Hint with Intent to Write
- Intel reference
VSCATTERPF0QPS vm64z {k1}
| EVEX.512.66.0F38.W0 C7 /5 /vsib
|
- Operands
- 0xC7
- Tested by
- t5454
IizVSCATTERPF0QPS:: PROC
IiAllowModifier MASK
IiEmitOpcode 0xC7
IiDisp8EVEX T1S32
IiOpEn M
IiVSIB vm64z
IiModRM /5
IiEmitPrefix EVEX.512.66.0F38.W0
IiDispatchFormat mem
.mem:RET
ENDP IizVSCATTERPF0QPS::
- ↑ VSCATTERPF0DPD
- Sparse Prefetch Packed DP Data Values with Signed Dword Indices Using T0 Hint with Intent to Write
- Intel reference
VSCATTERPF0DPD vm32y {k1}
| EVEX.512.66.0F38.W1 C6 /5 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5454
IizVSCATTERPF0DPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8EVEX T1S64
IiOpEn M
IiVSIB vm64y
IiModRM /5
IiEmitPrefix EVEX.512.66.0F38.W1
IiDispatchFormat mem
.mem:RET
ENDP IizVSCATTERPF0DPD::
- ↑ VSCATTERPF0HINTDPD
- Sparse Prefetch Packed DP Data Values with Signed Dword Indices Using T0 Hint with Intent to Write
- Intel reference
VSCATTERPF0HINTDPD vm32z {k1}
| MVEX.512.66.0F38.W1 C6 /4 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5454
IizVSCATTERPF0HINTDPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8MVEX Sn64
IiOpEn M
IiVSIB vm32z
IiModRM /4
IiEmitPrefix MVEX.512.66.0F38.W1
IiDispatchFormat mem
.mem:RET
ENDP IizVSCATTERPF0HINTDPD::
- ↑ VSCATTERPF0QPD
- Sparse Prefetch Packed DP Data Values with Signed Qword Indices Using T0 Hint with Intent to Write
- Intel reference
VSCATTERPF0QPD vm64z {k1}
| EVEX.512.66.0F38.W1 C7 /5 /vsib
|
- Opcode
- 0xC7
- Tested by
- t5454
IizVSCATTERPF0QPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC7
IiDisp8EVEX T1S64
IiOpEn M
IiVSIB vm64z
IiModRM /5
IiEmitPrefix EVEX.512.66.0F38.W1
IiDispatchFormat mem
.mem:RET
ENDP IizVSCATTERPF0QPD::
- ↑ VSCATTERPF1DPS
- Sparse Prefetch Packed SP Data Values with Signed Dword Indices Using T1 Hint with Intent to Write
- Intel reference
VSCATTERPF1DPS vm32z {k1}
| EVEX.512.66.0F38.W0 C6 /6 /vsib
|
VSCATTERPF1DPS vm32z {k1}
| MVEX.512.66.0F38.W0 C6 /6 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5456
IizVSCATTERPF1DPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8EVEX T1S32
IiDisp8MVEX Df32
IiOpEn M
IiVSIB vm32z
IiModRM /6
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
IiDispatchFormat mem
.mem:RET
ENDP IizVSCATTERPF1DPS::
- ↑ VSCATTERPF1QPS
- Sparse Prefetch Packed SP Data Values with Signed Qword Indices Using T1 Hint with Intent to Write
- Intel reference
VSCATTERPF1QPS vm64z {k1}
| EVEX.512.66.0F38.W0 C7 /6 /vsib
|
- Opcode
- 0xC7
- Tested by
- t5456
IizVSCATTERPF1QPS:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC7
IiDisp8EVEX T1S32
IiOpEn M
IiVSIB vm64z
IiModRM /6
IiEmitPrefix EVEX.512.66.0F38.W0
IiDispatchFormat mem
.mem:RET
ENDP IizVSCATTERPF1QPS::
- ↑ VSCATTERPF1DPD
- Sparse Prefetch Packed DP Data Values with Signed Dword Indices Using T1 Hint with Intent to Write
- Intel reference
VSCATTERPF1DPD vm32y {k1}
| EVEX.512.66.0F38.W1 C6 /6 /vsib
|
- Opcode
- 0xC6
- Tested by
- t5456
IizVSCATTERPF1DPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC6
IiDisp8EVEX T1S64
IiOpEn M
IiVSIB vm32y
IiModRM /6
IiEmitPrefix EVEX.512.66.0F38.W1
IiDispatchFormat mem
.mem:RET
ENDP IizVSCATTERPF1DPD::
- ↑ VSCATTERPF1QPD
- Sparse Prefetch Packed DP Data Values with Signed Qword Indices Using T1 Hint with Intent to Write
- Intel reference
VSCATTERPF1QPD vm64z {k1}
| EVEX.512.66.0F38.W1 C7 /6 /vsib
|
- Opcode
- 0xC7
- Tested by
- t5456
IizVSCATTERPF1QPD:: PROC
IiAllowMaskMerging
IiEmitOpcode 0xC7
IiDisp8EVEX T1S64
IiOpEn M
IiVSIB vm64z
IiModRM /6
IiEmitPrefix EVEX.512.66.0F38.W1
IiDispatchFormat mem
.mem:RET
ENDP IizVSCATTERPF1QPD::
- ↑ VGETEXPSS
- Convert Exponents of Scalar SP FP Values to SP FP Value
- Intel reference
VGETEXPSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}
| EVEX.NDS.LIG.66.0F38.W0 43 /r
|
- Opcode
- 0x43
- Tested by
- t5460
IizVGETEXPSS:: PROC
IiAllowModifier MASK
IiAllowSuppressing Register=xmm
IiEncoding DATA=DWORD
IiEmitOpcode 0x43
IiDisp8EVEX T1S32
IiOpEn RVM
IiModRM /r
IiEmitPrefix EVEX.NDS.LIG.66.0F38.W0
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
RET
ENDP IizVGETEXPSS::
- ↑ VGETEXPSD
- Convert Exponents of Scalar DP FP Values to DP FP Value
- Intel reference
VGETEXPSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}
| EVEX.NDS.LIG.66.0F38.W1 43 /r
|
- Opcode
- 0x43
- Tested by
- t5460
IizVGETEXPSD:: PROC
IiAllowModifier MASK
IiAllowSuppressing Register=xmm
IiEncoding DATA=QWORD
IiEmitOpcode 0x43
IiDisp8EVEX T1S64
IiOpEn RVM
IiModRM /r
IiEmitPrefix EVEX.NDS.LIG.66.0F38.W1
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
RET
ENDP IizVGETEXPSD::
- ↑ VGETEXPPS
- Convert Exponents of Packed SP FP Values to SP FP Values
- Intel reference
VGETEXPPS xmm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.128.66.0F38.W0 42 /r
|
VGETEXPPS ymm1 {k1}{z}, ymm2/m256/m32bcst
| EVEX.256.66.0F38.W0 42 /r
|
VGETEXPPS zmm1 {k1}{z}, zmm2/m512/m32bcst{sae}
| EVEX.512.66.0F38.W0 42 /r
|
VGETEXPPS zmm1 {k1}, zmm2/m512/m32bcst{sae}
| MVEX.512.66.0F38.W0 42 /r
|
- Opcode
- 0x42
- Tested by
- t5460
IizVGETEXPPS:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiAllowSuppressing
IiEncoding DATA=DWORD
IiEmitOpcode 0x42
IiDisp8EVEX FV32
IiDisp8MVEX Us32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W0
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W0
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W0, MVEX.512.66.0F38.W0
RET
ENDP IizVGETEXPPS::
- ↑ VGETEXPPD
- Convert Exponents of Packed DP FP Values to DP FP Values
- Intel reference
VGETEXPPD xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.66.0F38.W1 42 /r
|
VGETEXPPD ymm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.66.0F38.W1 42 /r
|
VGETEXPPD zmm1 {k1}{z}, zmm2/m512/m64bcst{sae}
| EVEX.512.66.0F38.W1 42 /r
|
VGETEXPPD zmm1 {k1}, zmm2/m512/m64bcst{sae}
| MVEX.512.66.0F38.W1 42 /r
|
- Opcode
- 0x42
- Tested by
- t5460
IizVGETEXPPD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiAllowSuppressing
IiEncoding DATA=QWORD
IiDisp8EVEX FV64
IiDisp8MVEX Ub64
IiOpEn RM
IiModRM /r
IiEmitOpcode 0x42
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W1
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W1
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W1, MVEX.512.66.0F38.W1
RET
ENDP IizVGETEXPPD::
- ↑ VGETMANTSS
- Extract Float32 Vector of Normalized Mantissa from Float32 Vector
- Intel reference
VGETMANTSS xmm1 {k1}{z}, xmm2, xmm3/m32{sae}, imm8
| EVEX.NDS.LIG.66.0F3A.W0 27 /r ib
|
- Opcode
- 0x27
- Tested by
- t5462
IizVGETMANTSS:: PROC
IiAllowModifier MASK
IiAllowSuppressing Operand=DH,Register=xmm
IiEmitOpcode 0x27
IiDisp8EVEX T1S32
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE, Max=15
IiEmitPrefix EVEX.NDS.LIG.66.0F3A.W0
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
RET
ENDP IizVGETMANTSS::
- ↑ VGETMANTSD
- Extract Float64 of Normalized Mantissas from Float64 Scalar
- Intel reference
VGETMANTSD xmm1 {k1}{z}, xmm2, xmm3/m64{sae}, imm8
| EVEX.NDS.LIG.66.0F3A.W1 27 /r ib
|
- Opcode
- 0x27
- Tested by
- t5462
IizVGETMANTSD:: PROC
IiAllowModifier MASK
IiAllowSuppressing Operand=DH, Register=xmm
IiEmitOpcode 0x27
IiDisp8EVEX T1S64
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE, Max=15
IiEmitPrefix EVEX.NDS.LIG.66.0F3A.W1
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
RET
ENDP IizVGETMANTSD::
- ↑ VGETMANTPS
- Extract Float32 Vector of Normalized Mantissas from Float32 Vector
- Intel reference
VGETMANTPS xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8
| EVEX.128.66.0F3A.W0 26 /r ib
|
VGETMANTPS ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8
| EVEX.256.66.0F3A.W0 26 /r ib
|
VGETMANTPS zmm1 {k1}{z}, zmm2/m512/m32bcst{sae}, imm8
| EVEX.512.66.0F3A.W0 26 /r ib
|
VGETMANTPS zmm1 {k1}, zmm2/m512/m32bcst{sae}, imm8
| MVEX.512.66.0F3A.W0 26 /r ib
|
- Opcode
- 0x26
- Tested by
- t5462
IizVGETMANTPS:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD, Operand=DH
IiAllowSuppressing Operand=DH
IiEmitOpcode 0x26
IiDisp8EVEX FV32
IiDisp8MVEX Us32
IiOpEn RM
IiModRM /r
IiEmitImm Operand3, BYTE, Max=15
IiDispatchFormat xmm.xmm.imm, xmm.mem.imm, ymm.ymm.imm, ymm.mem.imm, zmm.zmm.imm, zmm.mem.imm
.xmm.mem.imm:
.xmm.xmm.imm:
IiEmitPrefix EVEX.128.66.0F3A.W0
RET
.ymm.mem.imm:
.ymm.ymm.imm:
IiEmitPrefix EVEX.256.66.0F3A.W0
RET
.zmm.mem.imm:
.Z:IiEmitPrefix EVEX.512.66.0F3A.W0, MVEX.512.66.0F3A.W0
RET
.zmm.zmm.imm:
JMP .Z:
ENDP IizVGETMANTPS::
- ↑ VGETMANTPD
- Extract Float64 Vector of Normalized Mantissas from Float64 Vector
- Intel reference
VGETMANTPD xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8
| EVEX.128.66.0F3A.W1 26 /r ib
|
VGETMANTPD ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8
| EVEX.256.66.0F3A.W1 26 /r ib
|
VGETMANTPD zmm1 {k1}{z}, zmm2/m512/m64bcst{sae}, imm8
| EVEX.512.66.0F3A.W1 26 /r ib
|
VGETMANTPD zmm1 {k1}, zmm2/m512/m64bcst{sae}, imm8
| MVEX.512.66.0F3A.W1 26 /r ib
|
- Opcode
- 0x26
- Tested by
- t5462
IizVGETMANTPD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD, Operand=DH
IiAllowSuppressing Operand=DH
IiEmitOpcode 0x26
IiDisp8EVEX FV64
IiDisp8MVEX Ub64
IiOpEn RM
IiModRM /r
IiEmitImm Operand3, BYTE, Max=15
IiDispatchFormat xmm.xmm.imm, xmm.mem.imm, ymm.ymm.imm, ymm.mem.imm, zmm.zmm.imm, zmm.mem.imm
.xmm.mem.imm:
.xmm.xmm.imm:
IiEmitPrefix EVEX.128.66.0F3A.W1
RET
.ymm.mem.imm:
.ymm.ymm.imm:
IiEmitPrefix EVEX.256.66.0F3A.W1
RET
.zmm.zmm.imm:
.zmm.mem.imm:
IiEmitPrefix EVEX.512.66.0F3A.W1, MVEX.512.66.0F3A.W1
RET
ENDP IizVGETMANTPD::
- ↑ VMOVD
- Move Doubleword
- Intel reference
VMOVD xmm1, r32/m32
| VEX.128.66.0F.W0 6E /r
|
VMOVD xmm1, r32/m32
| EVEX.128.66.0F.W0 6E /r
|
VMOVD r32/m32, xmm1
| VEX.128.66.0F.W0 7E /r
|
VMOVD r32/m32, xmm1
| EVEX.128.66.0F.W0 7E /r
|
- Category
- mmx,datamov
- Operands
- Pq,Ed | Pq,Ed | Vdq,Ed | Vdq,Ed | Ed,Pq | Ed,Pq | Ed,Vdq | Ed,Vdq
- Opcode
- 0x0F6E /r | 0x0F6E /r | 0x660F6E /r | 0x660F6E /r | 0x0F7E /r | 0x0F7E /r | 0x660F7E /r | 0x660F7E /r
- CPU
- PX+
- Tested by
- t5470
IizVMOVD:: PROC
IiEncoding DATA=DWORD
IiEmitPrefix VEX.128.66.0F.W0, EVEX.128.66.0F.W0
IiDisp8EVEX T1S32
IiModRM /r
IiDispatchFormat xmm.r32, xmm.mem, r32.xmm, mem.xmm
.xmm.r32:
.xmm.mem:
IiEmitOpcode 0x6E
IiOpEn RM
RET
.r32.xmm:
.mem.xmm:
IiEmitOpcode 0x7E
IiOpEn MR
RET
ENDP IizVMOVD::
- ↑ VMOVQ
- Move Quadword
- Intel reference
VMOVQ xmm1, r64/m64
| VEX.128.66.0F.W1 6E /r
|
VMOVQ xmm1, r64/m64
| EVEX.128.66.0F.W1 6E /r
|
VMOVQ r64/m64, xmm1
| VEX.128.66.0F.W1 7E /r
|
VMOVQ r64/m64, xmm1
| EVEX.128.66.0F.W1 7E /r
|
VMOVQ xmm1, xmm2/m64
| VEX.128.F3.0F.WIG 7E /r
|
VMOVQ xmm1, xmm2/m64
| EVEX.128.F3.0F.W1 7E /r
|
VMOVQ xmm1/m64, xmm2
| VEX.128.66.0F.WIG D6 /r
|
VMOVQ xmm1/m64, xmm2
| EVEX.128.66.0F.W1 D6 /r
|
- Category
- mmx,datamov
- Operands
- Pq,Eqp | Vdq,Eqp | Eqp,Pq | Eqp,Edq | Pq,Qq | Vq,Wq | Qq,Pq | Wq,Vq
- Opcode
- 0x0F6E /r | 0x660F6E /r | 0x0F7E /r | 0x660F7E /r | 0x0F6F /r | 0xF30F7E /r | 0x0F7F /r | 0x660FD6 /r
- CPU
- P4+
- Documented
- D31
- Tested by
- t5470
IizVMOVQ:: PROC
IiAllowModifier CODE
IiDisp8EVEX T1S64
IiModRM /r
IiDispatchFormat xmm.r64, xmm.mem, r64.xmm, mem.xmm, xmm.xmm
.xmm.r64:
IiEncoding DATA=QWORD,CODE=SHORT
IiEmitPrefix VEX.128.66.0F.W1, EVEX.128.66.0F.W1
IiEmitOpcode 0x6E
IiOpEn RM
RET
.r64.xmm:
IiEncoding DATA=QWORD,CODE=LONG
IiEmitPrefix VEX.128.66.0F.W1, EVEX.128.66.0F.W1
IiEmitOpcode 0x7E
IiOpEn MR
RET
.xmm.mem:
JNSt [EDI+II.SssStatus],sssWidth64, .xmm.mem.L:
IiDispatchCode SHORT=.xmm.r64:
.xmm.mem.L:
IiEncoding DATA=QWORD,CODE=LONG
IiEmitPrefix VEX.128.F3.0F.WIG, EVEX.128.F3.0F.W1
IiEmitOpcode 0x7E
IiOpEn RM
RET
.xmm.xmm:
IiDispatchCode LONG=.xmm.mem.L:
.xmm.xmm.S:
IiEncoding DATA=QWORD,CODE=SHORT
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W1
IiEmitOpcode 0xD6
IiOpEn MR
RET
.mem.xmm:
JNSt [EDI+II.SssStatus],sssWidth64,.xmm.xmm.S:
IiDispatchCode LONG=.r64.xmm:
JMP .xmm.xmm.S:
ENDP IizVMOVQ::
- ↑ VMOVSS
- Move or Merge Scalar Single-Precision Floating-Point Value
- Intel reference
VMOVSS xmm1, xmm2, xmm3
| VEX.NDS.LIG.F3.0F.WIG 10 /r
|
VMOVSS xmm1, m32
| VEX.LIG.F3.0F.WIG 10 /r
|
VMOVSS xmm1, xmm2, xmm3
| VEX.NDS.LIG.F3.0F.WIG 11 /r
|
VMOVSS m32, xmm1
| VEX.LIG.F3.0F.WIG 11 /r
|
VMOVSS xmm1 {k1}{z}, xmm2, xmm3
| EVEX.NDS.LIG.F3.0F.W0 10 /r
|
VMOVSS xmm1 {k1}{z}, m32
| EVEX.LIG.F3.0F.W0 10 /r
|
VMOVSS xmm1 {k1}{z}, xmm2, xmm3
| EVEX.NDS.LIG.F3.0F.W0 11 /r
|
VMOVSS m32 {k1}, xmm1
| EVEX.LIG.F3.0F.W0 11 /r
|
- Category
- sse1,simdfp,datamov
- Operands
- Vss,Wss | Wss,Vss
- Opcode
- 0xF30F10 /r | 0xF30F11 /r
- CPU
- P3+
- Tested by
- t5472
IizVMOVSS:: PROC
IiAllowModifier MASK,CODE
IiEmitPrefix VEX.LIG.F3.0F.WIG, EVEX.LIG.F3.0F.W0
IiDisp8EVEX T1S32
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.mem, mem.xmm
.xmm.mem:
IiOpEn RM
.S:IiEncoding DATA=DWORD,CODE=SHORT
IiEmitOpcode 0x10
RET
.mem.xmm:
IiOpEn MR
.L:IiEncoding DATA=DWORD,CODE=LONG
IiEmitOpcode 0x11
RET
.xmm.xmm.xmm:
IiDispatchCode LONG=.MVR:
IiOpEn RVM
JMP .S:
.MVR:IiOpEn MVR
JMP .L:
ENDP IizVMOVSS::
- ↑ VMOVSD
- Move or Merge Scalar Double-Precision Floating-Point Value
- Intel reference
VMOVSD xmm1, xmm2, xmm3
| VEX.NDS.LIG.F2.0F.WIG 10 /r
|
VMOVSD xmm1, m64
| VEX.LIG.F2.0F.WIG 10 /r
|
VMOVSD xmm1, xmm2, xmm3
| VEX.NDS.LIG.F2.0F.WIG 11 /r
|
VMOVSD m64, xmm1
| VEX.LIG.F2.0F.WIG 11 /r
|
VMOVSD xmm1 {k1}{z}, xmm2, xmm3
| EVEX.NDS.LIG.F2.0F.W1 10 /r
|
VMOVSD xmm1 {k1}{z}, m64
| EVEX.LIG.F2.0F.W1 10 /r
|
VMOVSD xmm1 {k1}{z}, xmm2, xmm3
| EVEX.NDS.LIG.F2.0F.W1 11 /r
|
VMOVSD m64 {k1}, xmm1
| EVEX.LIG.F2.0F.W1 11 /r
|
- Category
- gen,datamov string
- Operands
- Ydo,Xdo | Ydo,Xdo | Vsd,Wsd | Wsd,Vsd
- Opcode
- 0xA5 ^W | 0xA5 ^W | 0xF20F10 /r | 0xF20F11 /r
- Flags
- tested:.D......
- CPU
- 03+
- Tested by
- t5472
IizVMOVSD:: PROC
IiAllowModifier MASK,CODE
IiEmitPrefix VEX.LIG.F2.0F.WIG, EVEX.LIG.F2.0F.W1
IiDisp8EVEX T1S64
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.mem, mem.xmm
.xmm.mem:
IiOpEn RM
.S:IiEncoding DATA=QWORD,CODE=SHORT
IiEmitOpcode 0x10
RET
.mem.xmm:
IiOpEn MR
.L:IiEncoding DATA=QWORD,CODE=LONG
IiEmitOpcode 0x11
RET
.xmm.xmm.xmm:
IiOpEn MVR
JSt [EDI+II.MfgExplicit],iiMfgCODE_LONG, .L:
IiOpEn RVM
JMP .S:
ENDP IizVMOVSD::
- ↑ VMOVUPS
- Move Unaligned Packed Single-FP Values
- Intel reference
VMOVUPS xmm1, xmm2/m128
| VEX.128.0F.WIG 10 /r
|
VMOVUPS xmm2/m128, xmm1
| VEX.128.0F.WIG 11 /r
|
VMOVUPS ymm1, ymm2/m256
| VEX.256.0F.WIG 10 /r
|
VMOVUPS ymm2/m256, ymm1
| VEX.256.0F.WIG 11 /r
|
VMOVUPS xmm1 {k1}{z}, xmm2/m128
| EVEX.128.0F.W0 10 /r
|
VMOVUPS ymm1 {k1}{z}, ymm2/m256
| EVEX.256.0F.W0 10 /r
|
VMOVUPS zmm1 {k1}{z}, zmm2/m512
| EVEX.512.0F.W0 10 /r
|
VMOVUPS xmm2/m128 {k1}{z}, xmm1
| EVEX.128.0F.W0 11 /r
|
VMOVUPS ymm2/m256 {k1}{z}, ymm1
| EVEX.256.0F.W0 11 /r
|
VMOVUPS zmm2/m512 {k1}{z}, zmm1
| EVEX.512.0F.W0 11 /r
|
- Category
- sse1,simdfp,datamov
- Operands
- Vps,Wps | Wps,Vps
- Opcode
- 0x0F10 /r | 0x0F11 /r
- CPU
- P3+
- Tested by
- t5478
IizVMOVUPS:: PROC
IiAllowModifier MASK,CODE
IiModRM /r
IiDisp8EVEX FV32
IiDispatchFormat xmm.xmm, xmm.mem, mem.xmm, ymm.ymm, ymm.mem, mem.ymm, zmm.zmm, zmm.mem, mem.zmm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.0F.WIG, EVEX.128.0F.W0
.S:IiEncoding DATA=DWORD,CODE=SHORT
IiEmitOpcode 0x10
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix VEX.128.0F.WIG, EVEX.128.0F.W0
.L:IiEncoding DATA=DWORD,CODE=LONG
IiEmitOpcode 0x11
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix VEX.256.0F.WIG, EVEX.256.0F.W0
JMP .S:
.mem.ymm:
IiEmitPrefix VEX.256.0F.WIG, EVEX.256.0F.W0
JMP .L:
.zmm.zmm:
IiDispatchCode LONG=.mem.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.0F.W0
JMP .S:
.mem.zmm:
IiEmitPrefix EVEX.512.0F.W0
JMP .L:
ENDP IizVMOVUPS::
- ↑ VMOVUPD
- Move Unaligned Packed Double-FP Value
- Intel reference
VMOVUPD xmm1, xmm2/m128
| VEX.128.66.0F.WIG 10 /r
|
VMOVUPD xmm2/m128, xmm1
| VEX.128.66.0F.WIG 11 /r
|
VMOVUPD ymm1, ymm2/m256
| VEX.256.66.0F.WIG 10 /r
|
VMOVUPD ymm2/m256, ymm1
| VEX.256.66.0F.WIG 11 /r
|
VMOVUPD xmm1 {k1}{z}, xmm2/m128
| EVEX.128.66.0F.W1 10 /r
|
VMOVUPD xmm2/m128 {k1}{z}, xmm1
| EVEX.128.66.0F.W1 11 /r
|
VMOVUPD ymm1 {k1}{z}, ymm2/m256
| EVEX.256.66.0F.W1 10 /r
|
VMOVUPD ymm2/m256 {k1}{z}, ymm1
| EVEX.256.66.0F.W1 11 /r
|
VMOVUPD zmm1 {k1}{z}, zmm2/m512
| EVEX.512.66.0F.W1 10 /r
|
VMOVUPD zmm2/m512 {k1}{z}, zmm1
| EVEX.512.66.0F.W1 11 /r
|
- Category
- sse2,pcksclr,datamov
- Operands
- Vpd,Wpd | Wpd,Vpd
- Opcode
- 0x660F10 /r | 0x660F11 /r
- CPU
- P4+
- Tested by
- t5478
IizVMOVUPD:: PROC
IiAllowModifier MASK,CODE
IiModRM /r
IiDisp8EVEX FV64
IiDispatchFormat xmm.xmm, xmm.mem, mem.xmm, ymm.ymm, ymm.mem, mem.ymm, zmm.zmm, zmm.mem, mem.zmm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W1
.S:IiEncoding DATA=DWORD,CODE=SHORT
IiEmitOpcode 0x10
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W1
.L:IiEncoding DATA=DWORD,CODE=LONG
IiEmitOpcode 0x11
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix VEX.256.66.0F.WIG, EVEX.256.66.0F.W1
JMP .S:
.mem.ymm:
IiEmitPrefix VEX.256.66.0F.WIG, EVEX.256.66.0F.W1
JMP .L:
.zmm.zmm:
IiDispatchCode LONG=.mem.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W1
JMP .S:
.mem.zmm:
IiEmitPrefix EVEX.512.66.0F.W1
JMP .L:
ENDP IizVMOVUPD::
- ↑ VMOVAPS
- Move Aligned Packed Single-Precision Floating-Point Values
- Intel reference
VMOVAPS xmm1, xmm2/m128
| VEX.128.0F.WIG 28 /r
|
VMOVAPS xmm2/m128, xmm1
| VEX.128.0F.WIG 29 /r
|
VMOVAPS ymm1, ymm2/m256
| VEX.256.0F.WIG 28 /r
|
VMOVAPS ymm2/m256, ymm1
| VEX.256.0F.WIG 29 /r
|
VMOVAPS xmm1 {k1}{z}, xmm2/m128
| EVEX.128.0F.W0 28 /r
|
VMOVAPS ymm1 {k1}{z}, ymm2/m256
| EVEX.256.0F.W0 28 /r
|
VMOVAPS zmm1 {k1}{z}, zmm2/m512
| EVEX.512.0F.W0 28 /r
|
VMOVAPS xmm2/m128 {k1}{z}, xmm1
| EVEX.128.0F.W0 29 /r
|
VMOVAPS ymm2/m256 {k1}{z}, ymm1
| EVEX.256.0F.W0 29 /r
|
VMOVAPS zmm2/m512 {k1}{z}, zmm1
| EVEX.512.0F.W0 29 /r
|
VMOVAPS zmm1 {k1}, zmm2/mem
| MVEX.512.0F.W0 28 /r
|
VMOVAPS zmm2/mem {k1}, zmm1
| MVEX.512.0F.W0 29 /r
|
- Opcode
- 0x28 || 0x29
- Tested by
- t5476
IizVMOVAPS:: PROC
IiAllowModifier MASK,CODE
IiDisp8EVEX FVM
IiDisp8MVEX Dn32
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, mem.xmm, ymm.ymm, ymm.mem, mem.ymm, zmm.zmm, zmm.mem, mem.zmm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.0F.WIG, EVEX.128.0F.W0
.S:IiEncoding DATA=DWORD,CODE=SHORT
IiEmitOpcode 0x28
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix VEX.128.0F.WIG, EVEX.128.0F.W0
.L:IiEncoding DATA=DWORD,CODE=LONG
IiEmitOpcode 0x29
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix VEX.256.0F.WIG, EVEX.256.0F.W0
JMP .S:
.mem.ymm:
IiEmitPrefix VEX.256.0F.WIG, EVEX.256.0F.W0
JMP .L:
.zmm.zmm:
IiDispatchCode LONG=.mem.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.0F.W0, MVEX.512.0F.W0
JMP .S:
.mem.zmm:
IiEmitPrefix EVEX.512.0F.W0, MVEX.512.0F.W0
JMP .L:
ENDP IizVMOVAPS::
- ↑ VMOVAPD
- Move Aligned Packed Double-Precision Floating-Point Values
- Intel reference
VMOVAPD xmm1, xmm2/m128
| VEX.128.66.0F.WIG 28 /r
|
VMOVAPD xmm2/m128, xmm1
| VEX.128.66.0F.WIG 29 /r
|
VMOVAPD ymm1, ymm2/m256
| VEX.256.66.0F.WIG 28 /r
|
VMOVAPD ymm2/m256, ymm1
| VEX.256.66.0F.WIG 29 /r
|
VMOVAPD xmm1 {k1}{z}, xmm2/m128
| EVEX.128.66.0F.W1 28 /r
|
VMOVAPD ymm1 {k1}{z}, ymm2/m256
| EVEX.256.66.0F.W1 28 /r
|
VMOVAPD zmm1 {k1}{z}, zmm2/m512
| EVEX.512.66.0F.W1 28 /r
|
VMOVAPD xmm2/m128 {k1}{z}, xmm1
| EVEX.128.66.0F.W1 29 /r
|
VMOVAPD ymm2/m256 {k1}{z}, ymm1
| EVEX.256.66.0F.W1 29 /r
|
VMOVAPD zmm2/m512 {k1}{z}, zmm1
| EVEX.512.66.0F.W1 29 /r
|
VMOVAPD zmm1 {k1}{z}, zmm2/m512
| MVEX.512.66.0F.W1 28 /r
|
VMOVAPD zmm2/m512 {k1}{z}, zmm1
| MVEX.512.66.0F.W1 29 /r
|
- Opcode
- 0x28 || 0x29
- Tested by
- t5476
IizVMOVAPD:: PROC
IiAllowModifier MASK, CODE
IiDisp8EVEX FVM
IiDisp8MVEX Di64
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, mem.xmm, ymm.ymm, ymm.mem, mem.ymm, zmm.zmm, zmm.mem, mem.zmm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W1
.S:IiEncoding DATA=QWORD,CODE=SHORT
IiEmitOpcode 0x28
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W1
.L:IiEncoding DATA=QWORD,CODE=LONG
IiEmitOpcode 0x29
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix VEX.256.66.0F.WIG, EVEX.256.66.0F.W1
JMP .S:
.mem.ymm:
IiEmitPrefix VEX.256.66.0F.WIG, EVEX.256.66.0F.W1
JMP .L:
.zmm.zmm:
IiDispatchCode LONG=.mem.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W1, MVEX.512.66.0F.W1
JMP .S:
.mem.zmm:
IiEmitPrefix EVEX.512.66.0F.W1, MVEX.512.66.0F.W1
JMP .L:
ENDP IizVMOVAPD::
- ↑ VMOVLPS
- Move Low Packed Single-FP Values
- Intel reference
VMOVLPS xmm2, xmm1, m64
| VEX.NDS.128.0F.WIG 12 /r
|
VMOVLPS xmm2, xmm1, m64
| EVEX.NDS.128.0F.W0 12 /r
|
VMOVLPS m64, xmm1
| VEX.128.0F.WIG 13/r
|
VMOVLPS m64, xmm1
| EVEX.128.0F.W0 13/r
|
- Category
- sse1,simdfp,datamov
- Operands
- Vq,Mq | Mq,Vq
- Opcode
- 0x0F12 /r | 0x0F13 /r
- CPU
- P3+
- Tested by
- t5480
IizVMOVLPS:: PROC
MOV AL,0x12
MOV CL,0x13
.op:IiDisp8EVEX T1S64
IiModRM /r
IiEncoding DATA=DWORD
IiDispatchFormat xmm.xmm.mem, mem.xmm
.xmm.xmm.mem:
IiEmitOpcode EAX
IiEmitPrefix VEX.NDS.128.0F.WIG, EVEX.NDS.128.0F.W0
IiOpEn RVM
RET
.mem.xmm:
IiEmitOpcode ECX
IiEmitPrefix VEX.128.0F.WIG, EVEX.128.0F.W0
IiOpEn MR
RET
ENDP IizVMOVLPS::
- ↑ VMOVHPS
- Move High Packed Single-FP Values
- Intel reference
VMOVHPS xmm2, xmm1, m64
| VEX.NDS.128.0F.WIG 16 /r
|
VMOVHPS xmm2, xmm1, m64
| EVEX.NDS.128.0F.W0 16 /r
|
VMOVHPS m64, xmm1
| VEX.128.0F.WIG 17 /r
|
VMOVHPS m64, xmm1
| EVEX.128.0F.W0 17 /r
|
- Category
- sse1,simdfp,datamov
- Operands
- Vq,Mq | Mq,Vq
- Opcode
- 0x0F16 /r | 0x0F17 /r
- CPU
- P3+
- Tested by
- t5480
IizVMOVHPS:: PROC
MOV AL,0x16
MOV CL,0x17
JMP IizVMOVLPS.op:
ENDP IizVMOVHPS::
- ↑ VMOVLPD
- Move Low Packed Double-FP Value
- Intel reference
VMOVLPD xmm2, xmm1, m64
| VEX.NDS.128.66.0F.WIG 12 /r
|
VMOVLPD xmm2, xmm1, m64
| EVEX.NDS.128.66.0F.W1 12 /r
|
VMOVLPD m64, xmm1
| VEX.128.66.0F.WIG 13/r
|
VMOVLPD m64, xmm1
| EVEX.128.66.0F.W1 13/r
|
- Category
- sse2,pcksclr,datamov
- Operands
- Vq,Mq | Mq,Vq
- Opcode
- 0x660F12 /r | 0x660F13 /r
- CPU
- P4+
- Tested by
- t5480
IizVMOVLPD:: PROC
MOV AL,0x12
MOV CL,0x13
.op:IiDisp8EVEX T1S64
IiModRM /r
IiEncoding DATA=QWORD
IiDispatchFormat xmm.xmm.mem, mem.xmm
.xmm.xmm.mem:
IiEmitOpcode EAX
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.W1
IiOpEn RVM
RET
.mem.xmm:
IiEmitOpcode ECX
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W1
IiOpEn MR
RET
ENDP IizVMOVLPD::
- ↑ VMOVHPD
- Move High Packed Double-FP Value
- Intel reference
VMOVHPD xmm2, xmm1, m64
| VEX.NDS.128.66.0F.WIG 16 /r
|
VMOVHPD xmm2, xmm1, m64
| EVEX.NDS.128.66.0F.W1 16 /r
|
VMOVHPD m64, xmm1
| VEX.128.66.0F.WIG 17 /r
|
VMOVHPD m64, xmm1
| EVEX.128.66.0F.W1 17 /r
|
- Category
- sse2,pcksclr,datamov
- Operands
- Vq,Mq | Mq,Vq
- Opcode
- 0x660F16 /r | 0x660F17 /r
- CPU
- P4+
- Tested by
- t5480
IizVMOVHPD:: PROC
MOV AL,0x16
MOV CL,0x17
JMP IizVMOVLPD.op:
ENDP IizVMOVHPD::
- ↑ VMOVLHPS
- Move Packed Single-FP Values Low to High
- Intel reference
VMOVLHPS xmm1, xmm2, xmm3
| VEX.NDS.128.0F.WIG 16 /r
|
VMOVLHPS xmm1, xmm2, xmm3
| EVEX.NDS.128.0F.W0 16 /r
|
- Category
- sse1,simdfp,datamov
- Operands
- Vq,Uq
- Opcode
- 0x0F16 /r
- CPU
- P3+
- Tested by
- t5480
IizVMOVLHPS:: PROC
IiEmitOpcode 0x16
.op:IiOpEn RVM
IiEmitPrefix VEX.NDS.128.0F.WIG, EVEX.NDS.128.0F.W0
IiModRM /r
IiEncoding DATA=DWORD
IiDispatchFormat xmm.xmm.xmm
.xmm.xmm.xmm:
RET
ENDP IizVMOVLHPS::
- ↑ VMOVHLPS
- Move Packed Single-FP Values High to Low
- Intel reference
VMOVHLPS xmm1, xmm2, xmm3
| VEX.NDS.128.0F.WIG 12 /r
|
VMOVHLPS xmm1, xmm2, xmm3
| EVEX.NDS.128.0F.W0 12 /r
|
- Category
- sse1,simdfp,datamov
- Operands
- Vq,Uq
- Opcode
- 0x0F12 /r
- CPU
- P3+
- Tested by
- t5480
IizVMOVHLPS:: PROC
IiEmitOpcode 0x12
JMP IizVMOVLHPS.op:
ENDP IizVMOVHLPS::
- ↑ VMOVSLDUP
- Move Packed Single-FP Low and Duplicate
- Intel reference
VMOVSLDUP xmm1, xmm2/m128
| VEX.128.F3.0F.WIG 12 /r
|
VMOVSLDUP ymm1, ymm2/m256
| VEX.256.F3.0F.WIG 12 /r
|
VMOVSLDUP xmm1 {k1}{z}, xmm2/m128
| EVEX.128.F3.0F.W0 12 /r
|
VMOVSLDUP ymm1 {k1}{z}, ymm2/m256
| EVEX.256.F3.0F.W0 12 /r
|
VMOVSLDUP zmm1 {k1}{z}, zmm2/m512
| EVEX.512.F3.0F.W0 12 /r
|
- Category
- sse3,simdfp,datamov
- Operands
- Vq,Wq
- Opcode
- 0xF30F12 /r
- CPU
- P4++
- Tested by
- t5482
IizVMOVSLDUP:: PROC
IiEmitOpcode 0x12
.op:IiAllowModifier MASK
IiDisp8EVEX FV32
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.mem:
.xmm.xmm:
IiEmitPrefix VEX.128.F3.0F.WIG, EVEX.128.F3.0F.W0
RET
.ymm.mem:
.ymm.ymm:
IiEmitPrefix VEX.256.F3.0F.WIG, EVEX.256.F3.0F.W0
RET
.zmm.mem:
.zmm.zmm:
IiEmitPrefix EVEX.512.F3.0F.W0
RET
ENDP IizVMOVSLDUP::
- ↑ VMOVSHDUP
- Move Packed Single-FP High and Duplicate
- Intel reference
VMOVSHDUP xmm1, xmm2/m128
| VEX.128.F3.0F.WIG 16 /r
|
VMOVSHDUP ymm1, ymm2/m256
| VEX.256.F3.0F.WIG 16 /r
|
VMOVSHDUP xmm1 {k1}{z}, xmm2/m128
| EVEX.128.F3.0F.W0 16 /r
|
VMOVSHDUP ymm1 {k1}{z}, ymm2/m256
| EVEX.256.F3.0F.W0 16 /r
|
VMOVSHDUP zmm1 {k1}{z}, zmm2/m512
| EVEX.512.F3.0F.W0 16 /r
|
- Category
- sse3,simdfp,datamov
- Operands
- Vq,Wq
- Opcode
- 0xF30F16 /r
- CPU
- P4++
- Tested by
- t5482
IizVMOVSHDUP:: PROC
IiEmitOpcode 0x16
JMP IizVMOVSLDUP.op:
ENDP IizVMOVSHDUP::
- ↑ VMOVDQA
- Move Aligned Double Quadword
- Intel reference
VMOVDQA xmm1, xmm2/m128
| VEX.128.66.0F.WIG 6F /r
|
VMOVDQA xmm2/m128, xmm1
| VEX.128.66.0F.WIG 7F /r
|
VMOVDQA ymm1, ymm2/m256
| VEX.256.66.0F.WIG 6F /r
|
VMOVDQA ymm2/m256, ymm1
| VEX.256.66.0F.WIG 7F /r
|
- Category
- sse2,simdint,datamov
- Operands
- Vdq,Wdq | Wdq,Vdq
- Opcode
- 0x660F6F /r | 0x660F7F /r
- CPU
- P4+
- Tested by
- t5484
IizVMOVDQA:: PROC
IiAllowModifier MASK,CODE
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, mem.xmm, ymm.ymm, ymm.mem, mem.ymm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.66.0F.WIG
.S:IiEncoding CODE=SHORT
IiEmitOpcode 0x6F
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix VEX.128.66.0F.WIG
.L:IiEncoding CODE=LONG
IiEmitOpcode 0x7F
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix VEX.256.66.0F.WIG
JMP .S:
.mem.ymm:
IiEmitPrefix VEX.256.66.0F.WIG
JMP .L:
ENDP IizVMOVDQA::
- ↑ VMOVQQA
- Move Aligned Double Quadword
- Comment
- Alias to VMOVDQA for better compatibility with NASM.
- Intel reference
VMOVQQA xmm1, xmm2/m128
| VEX.128.66.0F.WIG 6F /r
|
VMOVQQA xmm2/m128, xmm1
| VEX.128.66.0F.WIG 7F /r
|
VMOVQQA ymm1, ymm2/m256
| VEX.256.66.0F.WIG 6F /r
|
VMOVQQA ymm2/m256, ymm1
| VEX.256.66.0F.WIG 7F /r
|
- Category
- sse2,simdint,datamov
- Operands
- Vdq,Wdq | Wdq,Vdq
- Opcode
- 0x660F6F /r | 0x660F7F /r
- CPU
- P4+
- Tested by
- t5484
IizVMOVQQA:: PROC
JMP IizVMOVDQA:
ENDP IizVMOVQQA::
- ↑ VMOVDQA32
- Move Aligned Packed DWORD Integer Values
- Intel reference
VMOVDQA32 xmm1 {k1}{z}, xmm2/m128
| EVEX.128.66.0F.W0 6F /r
|
VMOVDQA32 ymm1 {k1}{z}, ymm2/m256
| EVEX.256.66.0F.W0 6F /r
|
VMOVDQA32 zmm1 {k1}{z}, zmm2/m512
| EVEX.512.66.0F.W0 6F /r
|
VMOVDQA32 xmm2/m128 {k1}{z}, xmm1
| EVEX.128.66.0F.W0 7F /r
|
VMOVDQA32 ymm2/m256 {k1}{z}, ymm1
| EVEX.256.66.0F.W0 7F /r
|
VMOVDQA32 zmm2/m512 {k1}{z}, zmm1
| EVEX.512.66.0F.W0 7F /r
|
VMOVDQA32 zmm1 {k1}, zmm2/mem
| MVEX.512.66.0F.W0 6F /r
|
VMOVDQA32 zmm1/mem {k1}, zmm2
| MVEX.512.66.0F.W0 7F /r
|
- Opcode
- 0x6F | 0x7F
- Tested by
- t5484
IizVMOVDQA32:: PROC
IiAllowModifier MASK,CODE
IiDisp8EVEX FV32
IiDisp8MVEX Un32
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem, mem.xmm, mem.ymm, mem.zmm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F.W0
.S:IiEncoding DATA=DWORD,CODE=SHORT
IiEmitOpcode 0x6F
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix EVEX.128.66.0F.W0
.L:IiEncoding DATA=DWORD,CODE=LONG
IiEmitOpcode 0x7F
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F.W0
JMP .S:
.mem.ymm:
IiEmitPrefix EVEX.256.66.0F.W0
JMP .L:
.zmm.zmm:
IiDispatchCode LONG=.mem.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W0, MVEX.512.66.0F.W0
JMP .S:
.mem.zmm:
IiEmitPrefix EVEX.512.66.0F.W0, MVEX.512.66.0F.W0
JMP .L:
ENDP IizVMOVDQA32::
- ↑ VMOVDQA64
- Move Aligned Packed QWORD Integer Values
- Intel reference
VMOVDQA64 xmm1 {k1}{z}, xmm2/m128
| EVEX.128.66.0F.W1 6F /r
|
VMOVDQA64 ymm1 {k1}{z}, ymm2/m256
| EVEX.256.66.0F.W1 6F /r
|
VMOVDQA64 zmm1 {k1}{z}, zmm2/m512
| EVEX.512.66.0F.W1 6F /r
|
VMOVDQA64 xmm2/m128 {k1}{z}, xmm1
| EVEX.128.66.0F.W1 7F /r
|
VMOVDQA64 ymm2/m256 {k1}{z}, ymm1
| EVEX.256.66.0F.W1 7F /r
|
VMOVDQA64 zmm2/m512 {k1}{z}, zmm1
| EVEX.512.66.0F.W1 7F /r
|
VMOVDQA64 zmm1 {k1}, zmm2/m512
| MVEX.512.66.0F.W1 6F /r
|
---|
VMOVDQA64 zmm1/m512 {k1}, zmm2
| MVEX.512.66.0F.W1 7F /r
|
- Opcode
- 0x6F | 0x7F
- Tested by
- t5484
IizVMOVDQA64:: PROC
IiAllowModifier MASK,CODE
IiDisp8EVEX FV64
IiDisp8MVEX Di64
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem, mem.xmm, mem.ymm, mem.zmm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F.W1
.S:IiEncoding DATA=QWORD,CODE=SHORT
IiEmitOpcode 0x6F
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix EVEX.128.66.0F.W1
.L:IiEncoding DATA=QWORD,CODE=LONG
IiEmitOpcode 0x7F
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F.W1
JMP .S:
.mem.ymm:
IiEmitPrefix EVEX.256.66.0F.W1
JMP .L:
.zmm.zmm:
IiDispatchCode LONG=.mem.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F.W1, MVEX.512.66.0F.W1
JMP .S:
.mem.zmm:
IiEmitPrefix EVEX.512.66.0F.W1, MVEX.512.66.0F.W1
JMP .L:
ENDP IizVMOVDQA64::
- ↑ VMOVDQU
- Move Unaligned Double Quadword
- Intel reference
VMOVDQU xmm1, xmm2/m128
| VEX.128.F3.0F.WIG 6F /r
|
VMOVDQU xmm2/m128, xmm1
| VEX.128.F3.0F.WIG 7F /r
|
VMOVDQU ymm1, ymm2/m256
| VEX.256.F3.0F.WIG 6F /r
|
VMOVDQU ymm2/m256, ymm1
| VEX.256.F3.0F.WIG 7F /r
|
- Category
- sse2,simdint,datamov
- Operands
- Vdq,Wdq | Wdq,Vdq
- Opcode
- 0xF30F6F /r | 0xF30F7F /r
- CPU
- P4+
- Tested by
- t5486
IizVMOVDQU:: PROC
IiAllowModifier CODE
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, mem.xmm, ymm.ymm, ymm.mem, mem.ymm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.F3.0F.WIG
.S:IiEncoding CODE=SHORT
IiEmitOpcode 0x6F
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix VEX.128.F3.0F.WIG
.L:IiEncoding CODE=LONG
IiEmitOpcode 0x7F
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix VEX.256.F3.0F.WIG
JMP .S:
.mem.ymm:
IiEmitPrefix VEX.256.F3.0F.WIG
JMP .L:
ENDP IizVMOVDQU::
- ↑ VMOVQQU
- Move Unaligned Double Quadword
- Comment
- Alias to VMOVDQU for better compatibility with NASM.
- Intel reference
VMOVQQU xmm1, xmm2/m128
| VEX.128.F3.0F.WIG 6F /r
|
VMOVQQU xmm2/m128, xmm1
| VEX.128.F3.0F.WIG 7F /r
|
VMOVQQU ymm1, ymm2/m256
| VEX.256.F3.0F.WIG 6F /r
|
VMOVQQU ymm2/m256, ymm1
| VEX.256.F3.0F.WIG 7F /r
|
- Category
- sse2,simdint,datamov
- Operands
- Vdq,Wdq | Wdq,Vdq
- Opcode
- 0xF30F6F /r | 0xF30F7F /r
- CPU
- P4+
- Tested by
- t5486
IizVMOVQQU:: PROC
JMP IizVMOVDQU:
ENDP IizVMOVQQU::
- ↑ VMOVDQU8
- Move Unaligned Packed BYTE Integer Values
- Intel reference
VMOVDQU8 xmm1 {k1}{z}, xmm2/m128
| EVEX.128.F2.0F.W0 6F /r
|
VMOVDQU8 ymm1 {k1}{z}, ymm2/m256
| EVEX.256.F2.0F.W0 6F /r
|
VMOVDQU8 zmm1 {k1}{z}, zmm2/m512
| EVEX.512.F2.0F.W0 6F /r
|
VMOVDQU8 xmm2/m128 {k1}{z}, xmm1
| EVEX.128.F2.0F.W0 7F /r
|
VMOVDQU8 ymm2/m256 {k1}{z}, ymm1
| EVEX.256.F2.0F.W0 7F /r
|
VMOVDQU8 zmm2/m512 {k1}{z}, zmm1
| EVEX.512.F2.0F.W0 7F /r
|
- Opcode
- 0x6F | 0x7F
- Tested by
- t5486
IizVMOVDQU8:: PROC
IiAllowModifier MASK,CODE
IiDisp8EVEX FVM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem, mem.xmm, mem.ymm, mem.zmm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.F2.0F.W0
.S:IiEncoding DATA=BYTE,CODE=SHORT
IiEmitOpcode 0x6F
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix EVEX.128.F2.0F.W0
.L:IiEncoding DATA=BYTE,CODE=LONG
IiEmitOpcode 0x7F
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.F2.0F.W0
JMP .S:
.mem.ymm:
IiEmitPrefix EVEX.256.F2.0F.W0
JMP .L:
.zmm.zmm:
IiDispatchCode LONG=.mem.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.F2.0F.W0
JMP .S:
.mem.zmm:
IiEmitPrefix EVEX.512.F2.0F.W0
JMP .L:
ENDP IizVMOVDQU8::
- ↑ VMOVDQU16
- Move Unaligned Packed WORD Integer Value
- Intel reference
VMOVDQU16 xmm1 {k1}{z}, xmm2/m128
| EVEX.128.F2.0F.W1 6F /r
|
VMOVDQU16 ymm1 {k1}{z}, ymm2/m256
| EVEX.256.F2.0F.W1 6F /r
|
VMOVDQU16 zmm1 {k1}{z}, zmm2/m512
| EVEX.512.F2.0F.W1 6F /r
|
VMOVDQU16 xmm2/m128 {k1}{z}, xmm1
| EVEX.128.F2.0F.W1 7F /r
|
VMOVDQU16 ymm2/m256 {k1}{z}, ymm1
| EVEX.256.F2.0F.W1 7F /r
|
VMOVDQU16 zmm2/m512 {k1}{z}, zmm1
| EVEX.512.F2.0F.W1 7F /r
|
- Opcode
- 0x6F | 0x7F
- Tested by
- t5486
IizVMOVDQU16:: PROC
IiAllowModifier MASK,CODE
IiDisp8EVEX FVM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem, mem.xmm, mem.ymm, mem.zmm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.F2.0F.W1
.S:IiEncoding DATA=BYTE,CODE=SHORT
IiEmitOpcode 0x6F
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix EVEX.128.F2.0F.W1
.L:IiEncoding DATA=BYTE,CODE=LONG
IiEmitOpcode 0x7F
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.F2.0F.W1
JMP .S:
.mem.ymm:
IiEmitPrefix EVEX.256.F2.0F.W1
JMP .L:
.zmm.zmm:
IiDispatchCode LONG=.mem.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.F2.0F.W1
JMP .S:
.mem.zmm:
IiEmitPrefix EVEX.512.F2.0F.W1
JMP .L:
ENDP IizVMOVDQU16::
- ↑ VMOVDQU32
- Move Unaligned Packed DWORD Integer Values
- Intel reference
VMOVDQU32 xmm1 {k1}{z}, xmm2/m128
| EVEX.128.F3.0F.W0 6F /r
|
VMOVDQU32 ymm1 {k1}{z}, ymm2/m256
| EVEX.256.F3.0F.W0 6F /r
|
VMOVDQU32 zmm1 {k1}{z}, zmm2/m512
| EVEX.512.F3.0F.W0 6F /r
|
VMOVDQU32 xmm2/m128 {k1}{z}, xmm1
| EVEX.128.F3.0F.W0 7F /r
|
VMOVDQU32 ymm2/m256 {k1}{z}, ymm1
| EVEX.256.F3.0F.W0 7F /r
|
VMOVDQU32 zmm2/m512 {k1}{z}, zmm1
| EVEX.512.F3.0F.W0 7F /r
|
- Opcode
- 0x6F | 0x7F
- Tested by
- t5486
IizVMOVDQU32:: PROC
IiAllowModifier MASK,CODE
IiDisp8EVEX FVM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem, mem.xmm, mem.ymm, mem.zmm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.F3.0F.W0
.S:IiEncoding DATA=BYTE,CODE=SHORT
IiEmitOpcode 0x6F
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix EVEX.128.F3.0F.W0
.L:IiEncoding DATA=BYTE,CODE=LONG
IiEmitOpcode 0x7F
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.F3.0F.W0
JMP .S:
.mem.ymm:
IiEmitPrefix EVEX.256.F3.0F.W0
JMP .L:
.zmm.zmm:
IiDispatchCode LONG=.mem.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.F3.0F.W0
JMP .S:
.mem.zmm:
IiEmitPrefix EVEX.512.F3.0F.W0
JMP .L:
ENDP IizVMOVDQU32::
- ↑ VMOVDQU64
- Move Unaligned Packed QWORD Integer Values
- Intel reference
VMOVDQU64 xmm1 {k1}{z}, xmm2/m128
| EVEX.128.F3.0F.W1 6F /r
|
VMOVDQU64 ymm1 {k1}{z}, ymm2/m256
| EVEX.256.F3.0F.W1 6F /r
|
VMOVDQU64 zmm1 {k1}{z}, zmm2/m512
| EVEX.512.F3.0F.W1 6F /r
|
VMOVDQU64 xmm2/m128 {k1}{z}, xmm1
| EVEX.128.F3.0F.W1 7F /r
|
VMOVDQU64 ymm2/m256 {k1}{z}, ymm1
| EVEX.256.F3.0F.W1 7F /r
|
VMOVDQU64 zmm2/m512 {k1}{z}, zmm1
| EVEX.512.F3.0F.W1 7F /r
|
- Opcode
- 0x6F | 0x7F
- Tested by
- t5486
IizVMOVDQU64:: PROC
IiAllowModifier MASK,CODE
IiDisp8EVEX FVM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem, mem.xmm, mem.ymm, mem.zmm
.xmm.xmm:
IiDispatchCode LONG=.mem.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.F3.0F.W1
.S:IiEncoding DATA=BYTE,CODE=SHORT
IiEmitOpcode 0x6F
IiOpEn RM
RET
.mem.xmm:
IiEmitPrefix EVEX.128.F3.0F.W1
.L:IiEncoding DATA=BYTE,CODE=LONG
IiEmitOpcode 0x7F
IiOpEn MR
RET
.ymm.ymm:
IiDispatchCode LONG=.mem.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.F3.0F.W1
JMP .S:
.mem.ymm:
IiEmitPrefix EVEX.256.F3.0F.W1
JMP .L:
.zmm.zmm:
IiDispatchCode LONG=.mem.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.F3.0F.W1
JMP .S:
.mem.zmm:
IiEmitPrefix EVEX.512.F3.0F.W1
JMP .L:
ENDP IizVMOVDQU64::
- ↑ VMOVMSKPS
- Extract Packed Single-FP Sign Mask
- Intel reference
VMOVMSKPS reg, xmm2
| VEX.128.0F.WIG 50 /r
|
VMOVMSKPS reg, ymm2
| VEX.256.0F.WIG 50 /r
|
- Category
- sse1,simdfp,datamov
- Operands
- Gdqp,Ups
- Opcode
- 0x0F50 /r
- CPU
- P3+
- Tested by
- t5490
IizVMOVMSKPS:: PROC
IiEncoding DATA=DWORD
IiEmitOpcode 0x50
IiModRM /r
IiOpEn RM
IiDispatchFormat r32.xmm, r32.ymm, r64.xmm, r64.ymm
.r64.xmm:
IiAbortIfNot64
.r32.xmm:
IiEmitPrefix VEX.128.0F.WIG
RET
.r64.ymm:
IiAbortIfNot64
.r32.ymm:
IiEmitPrefix VEX.256.0F.WIG
RET
ENDP IizVMOVMSKPS::
- ↑ VMOVMSKPD
- Extract Packed Double-FP Sign Mask
- Intel reference
VMOVMSKPD reg, xmm2
| VEX.128.66.0F.WIG 50 /r
|
VMOVMSKPD reg, ymm2
| VEX.256.66.0F.WIG 50 /r
|
- Category
- sse2,pcksclr,datamov
- Operands
- Gdqp,Upd
- Opcode
- 0x660F50 /r
- CPU
- P4+
- Tested by
- t5490
IizVMOVMSKPD:: PROC
IiEncoding DATA=QWORD
IiEmitOpcode 0x50
IiOpEn RM
IiModRM /r
IiDispatchFormat r32.xmm, r32.ymm, r64.xmm, r64.ymm
.r64.xmm:
IiAbortIfNot64
.r32.xmm:
IiEmitPrefix VEX.128.66.0F.WIG
RET
.r64.ymm:
IiAbortIfNot64
.r32.ymm:
IiEmitPrefix VEX.256.66.0F.WIG
RET
ENDP IizVMOVMSKPD::
- ↑ VMOVNTPS
- Store Packed Single-FP Values Using Non-Temporal Hint
- Intel reference
VMOVNTPS m128, xmm1
| VEX.128.0F.WIG 2B /r
|
VMOVNTPS m256, ymm1
| VEX.256.0F.WIG 2B /r
|
VMOVNTPS m128, xmm1
| EVEX.128.0F.W0 2B /r
|
VMOVNTPS m256, ymm1
| EVEX.256.0F.W0 2B /r
|
VMOVNTPS m512, zmm1
| EVEX.512.0F.W0 2B /r
|
- Category
- sse1,cachect
- Operands
- Mps,Vps
- Opcode
- 0x0F2B /r
- CPU
- P3+
- Tested by
- t5492
IizVMOVNTPS:: PROC
IiEncoding DATA=DWORD
IiEmitOpcode 0x2B
IiModRM /r
IiOpEn MR
IiDisp8EVEX FVM
IiDispatchFormat mem.xmm, mem.ymm, mem.zmm
.mem.xmm:
IiEmitPrefix VEX.128.0F.WIG, EVEX.128.0F.W0
RET
.mem.ymm:
IiEmitPrefix VEX.256.0F.WIG, EVEX.256.0F.W0
RET
.mem.zmm:
IiEmitPrefix EVEX.512.0F.W0
RET
ENDP IizVMOVNTPS::
- ↑ VMOVNTPD
- Store Packed Double-FP Values Using Non-Temporal Hint
- Intel reference
VMOVNTPD m128, xmm1
| VEX.128.66.0F.WIG 2B /r
|
VMOVNTPD m256, ymm1
| VEX.256.66.0F.WIG 2B /r
|
VMOVNTPD m128, xmm1
| EVEX.128.66.0F.W1 2B /r
|
VMOVNTPD m256, ymm1
| EVEX.256.66.0F.W1 2B /r
|
VMOVNTPD m512, zmm1
| EVEX.512.66.0F.W1 2B /r
|
- Category
- sse2,cachect
- Operands
- Mpd,Vpd
- Opcode
- 0x660F2B /r
- CPU
- P4+
- Tested by
- t5492
IizVMOVNTPD:: PROC
IiEncoding DATA=QWORD
IiEmitOpcode 0x2B
IiModRM /r
IiOpEn MR
IiDisp8EVEX FVM
IiDispatchFormat mem.xmm, mem.ymm, mem.zmm
.mem.xmm:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W1
RET
.mem.ymm:
IiEmitPrefix VEX.256.66.0F.WIG, EVEX.256.66.0F.W1
RET
.mem.zmm:
IiEmitPrefix EVEX.512.66.0F.W1
RET
ENDP IizVMOVNTPD::
- ↑ VMOVNTDQ
- Store Double Quadword Using Non-Temporal Hint
- Intel reference
VMOVNTDQ m128, xmm1
| VEX.128.66.0F.WIG E7 /r
|
VMOVNTDQ m256, ymm1
| VEX.256.66.0F.WIG E7 /r
|
VMOVNTDQ m128, xmm1
| EVEX.128.66.0F E7 /r
|
VMOVNTDQ m256, ymm1
| EVEX.256.66.0F E7 /r
|
VMOVNTDQ m512, zmm1
| EVEX.512.66.0F.W0 E7 /r
|
- Category
- sse2,cachect
- Operands
- Mdq,Vdq
- Opcode
- 0x660FE7 /r
- CPU
- P4+
- Tested by
- t5492
IizVMOVNTDQ:: PROC
IiEmitOpcode 0xE7
IiModRM /r
IiOpEn MR
IiDisp8EVEX FVM
IiDispatchFormat mem.xmm, mem.ymm, mem.zmm
.mem.xmm:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F
RET
.mem.ymm:
IiEmitPrefix VEX.256.66.0F.WIG, EVEX.256.66.0F
RET
.mem.zmm:
IiEmitPrefix EVEX.512.66.0F.W0
RET
ENDP IizVMOVNTDQ::
- ↑ VMOVNTQQ
- Store Double Quadword Using Non-Temporal Hint
- Comment
- Alias to VMOVNTDQ for better compatibility with NASM.
- Intel reference
VMOVNTQQ m128, xmm1
| VEX.128.66.0F.WIG E7 /r
|
VMOVNTQQ m256, ymm1
| VEX.256.66.0F.WIG E7 /r
|
VMOVNTQQ m128, xmm1
| EVEX.128.66.0F E7 /r
|
VMOVNTQQ m256, ymm1
| EVEX.256.66.0F E7 /r
|
VMOVNTQQ m512, zmm1
| EVEX.512.66.0F.W0 E7 /r
|
- Category
- sse2,cachect
- Operands
- Mdq,Vdq
- Opcode
- 0x660FE7 /r
- CPU
- P4+
- Tested by
- t5492
IizVMOVNTQQ:: PROC
JMP IizVMOVNTDQ:
ENDP IizVMOVNTQQ::
- ↑ VMOVNTDQA
- Load Double Quadword Non-Temporal Aligned Hint
- Intel reference
VMOVNTDQA xmm1, m128
| VEX.128.66.0F38.WIG 2A /r
|
VMOVNTDQA ymm1, m256
| VEX.256.66.0F38.WIG 2A /r
|
VMOVNTDQA xmm1, m128
| EVEX.128.66.0F38 2A /r
|
VMOVNTDQA ymm1, m256
| EVEX.256.66.0F38 2A /r
|
VMOVNTDQA zmm1, m512
| EVEX.512.66.0F38.W0 2A /r
|
- Category
- sse41,cachect
- Operands
- Vdq,Mdq
- Opcode
- 0x660F382A /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5492
IizVMOVNTDQA:: PROC
IiRequire SSE4.1
IiEmitOpcode 0x2A
IiModRM /r
IiOpEn RM
IiDisp8EVEX FVM
IiModRM /r
IiDispatchFormat xmm.mem, ymm.mem, zmm.mem
.xmm.mem:
IiEmitPrefix VEX.128.66.0F38.WIG, EVEX.128.66.0F38
RET
.ymm.mem:
IiEmitPrefix VEX.256.66.0F38.WIG, EVEX.256.66.0F38
RET
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
ENDP IizVMOVNTDQA::
- ↑ VMOVDDUP
- Move One Double-FP and Duplicate
- Intel reference
VMOVDDUP xmm1, xmm2/m64
| VEX.128.F2.0F.WIG 12 /r
|
VMOVDDUP ymm1, ymm2/m256
| VEX.256.F2.0F.WIG 12 /r
|
VMOVDDUP xmm1 {k1}{z}, xmm2/m64
| EVEX.128.F2.0F.W1 12 /r
|
VMOVDDUP ymm1 {k1}{z}, ymm2/m256
| EVEX.256.F2.0F.W1 12 /r
|
VMOVDDUP zmm1 {k1}{z}, zmm2/m512
| EVEX.512.F2.0F.W1 12 /r
|
- Category
- sse3,simdfp,datamov
- Operands
- Vq,Wq
- Opcode
- 0xF20F12 /r
- CPU
- P4++
- Tested by
- t5494
IizVMOVDDUP:: PROC
IiEncoding DATA=QWORD
IiAllowModifier MASK
IiDisp8EVEX DUP
IiEmitOpcode 0x12
IiOpEn RM
IiModRM /r
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.F2.0F.WIG, EVEX.128.F2.0F.W1
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix VEX.256.F2.0F.WIG, EVEX.256.F2.0F.W1
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.F2.0F.W1
RET
ENDP IizVMOVDDUP::
- ↑ VADDSUBPS
- Packed Single-FP Add/Subtract
- Intel reference
VADDSUBPS xmm1, xmm2, xmm3/m128
| VEX.NDS.128.F2.0F.WIG D0 /r
|
VADDSUBPS ymm1, ymm2, ymm3/m256
| VEX.NDS.256.F2.0F.WIG D0 /r
|
- Category
- sse3,simdfp,arith
- Operands
- Vps,Wps
- Opcode
- 0xF20FD0 /r
- CPU
- P4++
- Tested by
- t5502
IizVADDSUBPS:: PROC
IiEmitOpcode 0xD0
IiEncoding DATA=DWORD
IiModRM /r
IiOpEn RVM
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.F2.0F.WIG
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.F2.0F.WIG
RET
ENDP IizVADDSUBPS::
- ↑ VADDSUBPD
- Packed Double-FP Add/Subtract
- Intel reference
VADDSUBPD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG D0 /r
|
VADDSUBPD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG D0 /r
|
- Category
- sse3,simdfp,arith
- Operands
- Vpd,Wpd
- Opcode
- 0x660FD0 /r
- CPU
- P4++
- Tested by
- t5502
IizVADDSUBPD:: PROC
IiEmitOpcode 0xD0
IiEncoding DATA=QWORD
IiModRM /r
IiOpEn RVM
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F.WIG
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F.WIG
RET
ENDP IizVADDSUBPD::
- ↑ VPMINUB
- Minimum of Packed Unsigned Byte Integers
- Intel reference
VPMINUB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F DA /r
|
VPMINUB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F DA /r
|
VPMINUB xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F DA /r
|
VPMINUB ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F DA /r
|
VPMINUB zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F DA /r
|
- Category
- sse1,simdint
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FDA /r | 0x660FDA /r
- CPU
- P3+
- Tested by
- t5602
IizVPMINUB:: PROC
IiEmitOpcode 0xDA
.op:IiAllowModifier MASK
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F, EVEX.NDS.128.66.0F
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F, EVEX.NDS.256.66.0F
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F
RET
ENDP IizVPMINUB::
- ↑ VPMINUW
- Minimum of Packed Unsigned Word Integers
- Intel reference
VPMINUW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38 3A/r
|
VPMINUW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38 3A/r
|
VPMINUW xmm1{k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F38 3A/r
|
VPMINUW ymm1{k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F38 3A/r
|
VPMINUW zmm1{k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F38 3A/r
|
- Category
- sse41,simdint,compar
- Operands
- Vdq,Wdq
- Opcode
- 0x660F383A /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5602
IizVPMINUW:: PROC
IiEmitOpcode 0x3A
.op:IiAllowModifier MASK
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F38, EVEX.NDS.128.66.0F38
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F38, EVEX.NDS.256.66.0F38
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38
RET
ENDP IizVPMINUW::
- ↑ VPMINUD
- Minimum of Packed Unsigned Dword Integers
- Intel reference
VPMINUD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38.WIG 3B /r
|
VPMINUD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38.WIG 3B /r
|
VPMINUD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F38.W0 3B /r
|
VPMINUD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F38.W0 3B /r
|
VPMINUD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F38.W0 3B /r
|
VPMINUD zmm1 {k1}, zmm2, zmm3/m512/m32bcst
| MVEX.NDS.512.66.0F38.W0 3B /r
|
- Category
- sse41,simdint,compar
- Operands
- Vdq,Wdq
- Opcode
- 0x660F383B /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5602
IizVPMINUD:: PROC
IiEmitOpcode 0x3B
.op:IiAllowModifier MASK,EH
IiAllowBroadcasting DWORD
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FV32
IiDisp8MVEX Si32
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F38.WIG, EVEX.NDS.128.66.0F38.W0
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F38.WIG, EVEX.NDS.256.66.0F38.W0
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W0, MVEX.NDS.512.66.0F38.W0
RET
ENDP IizVPMINUD::
- ↑ VPMINUQ
- Minimum of Packed Unsigned QWORD Integers
- Intel reference
VPMINUQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F38.W1 3B /r
|
VPMINUQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F38.W1 3B /r
|
VPMINUQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F38.W1 3B /r
|
- Opcode
- 0x3B
- Tested by
- t5602
IizVPMINUQ:: PROC
IiEmitOpcode 0x3B
.op:IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FV64
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix EVEX.NDS.128.66.0F38.W1
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix EVEX.NDS.256.66.0F38.W1
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W1
RET
ENDP IizVPMINUQ::
- ↑ VPMINSB
- Minimum of Packed Signed Byte Integers
- Intel reference
VPMINSB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38 38 /r
|
VPMINSB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38 38 /r
|
VPMINSB xmm1{k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F38.WIG 38 /r
|
VPMINSB ymm1{k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F38.WIG 38 /r
|
VPMINSB zmm1{k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F38.WIG 38 /r
|
- Category
- sse41,simdint,compar
- Operands
- Vdq,Wdq
- Opcode
- 0x660F3838 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5604
IizVPMINSB:: PROC
IiEmitOpcode 0x38
JMP IizVPMINUW.op:
ENDP IizVPMINSB::
- ↑ VPMINSW
- Minimum of Packed Signed Word Integers
- Intel reference
VPMINSW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F EA /r
|
VPMINSW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F EA /r
|
VPMINSW xmm1{k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG EA /r
|
VPMINSW ymm1{k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG EA /r
|
VPMINSW zmm1{k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG EA /r
|
- Category
- sse1,simdint
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FEA /r | 0x660FEA /r
- CPU
- P3+
- Tested by
- t5604
IizVPMINSW:: PROC
IiEmitOpcode 0xEA
JMP IizVPMINUB.op:
ENDP IizVPMINSW::
- ↑ VPMINSD
- Minimum of Packed Signed Dword Integers
- Intel reference
VPMINSD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38.WIG 39 /r
|
VPMINSD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38.WIG 39 /r
|
VPMINSD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F38.W0 39 /r
|
VPMINSD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F38.W0 39 /r
|
VPMINSD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F38.W0 39 /r
|
VPMINSD zmm1 {k1}, zmm2, zmm3/m512/m32bcst
| MVEX.NDS.512.66.0F38.W0 39 /r
|
- Category
- sse41,simdint,compar
- Operands
- Vdq,Wdq
- Opcode
- 0x660F3839 /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5604
IizVPMINSD:: PROC
IiEmitOpcode 0x39
JMP IizVPMINUD.op:
ENDP IizVPMINSD::
- ↑ VPMINSQ
- Minimum of Packed Signed QWORD Integers
- Intel reference
VPMINSQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F38.W1 39 /r
|
VPMINSQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F38.W1 39 /r
|
VPMINSQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst | EVEX.NDS.512.66.0F38.W1 39 /r
|
- Opcode
- 0x39
- Tested by
- t5604
IizVPMINSQ:: PROC
IiEmitOpcode 0x39
JMP IizVPMINUQ.op:
ENDP IizVPMINSQ::
- ↑ VPMAXSB
- Maximum of Packed Signed Byte Integers
- Intel reference
VPMAXSB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38.WIG 3C /r
|
VPMAXSB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38.WIG 3C /r
|
VPMAXSB xmm1{k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F38.WIG 3C /r
|
VPMAXSB ymm1{k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F38.WIG 3C /r
|
VPMAXSB zmm1{k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F38.WIG 3C /r
|
- Category
- sse41,simdint,compar
- Operands
- Vdq,Wdq
- Opcode
- 0x660F383C /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5608
IizVPMAXSB:: PROC
IiEmitOpcode 0x3C
JMP IizVPMINUW.op:
ENDP IizVPMAXSB::
- ↑ VPMAXSW
- Maximum of Packed Signed Word Integers
- Intel reference
VPMAXSW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG EE /r
|
VPMAXSW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG EE /r
|
VPMAXSW xmm1{k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG EE /r
|
VPMAXSW ymm1{k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG EE /r
|
VPMAXSW zmm1{k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG EE /r
|
- Category
- sse1,simdint
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FEE /r | 0x660FEE /r
- CPU
- P3+
IizVPMAXSW:: PROC
IiEmitOpcode 0xEE
JMP IizVPMINUB.op:
ENDP IizVPMAXSW::
- ↑ VPMAXSD
- Maximum of Packed Signed Dword Integers
- Intel reference
VPMAXSD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38.WIG 3D /r
|
VPMAXSD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38.WIG 3D /r
|
VPMAXSD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F38.W0 3D /r
|
VPMAXSD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F38.W0 3D /r
|
VPMAXSD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F38.W0 3D /r
|
VPMAXSD zmm1 {k1}, zmm2, zmm3/m512/m32bcst
| MVEX.NDS.512.66.0F38.W0 3D /r
|
- Category
- sse41,simdint,compar
- Operands
- Vdq,Wdq
- Opcode
- 0x660F383D /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5608
IizVPMAXSD:: PROC
IiEmitOpcode 0x3D
JMP IizVPMINUD.op:
ENDP IizVPMAXSD::
- ↑ VPMAXSQ
- Maximum of Packed Signed QWORD Integers
- Intel reference
VPMAXSQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F38.W1 3D /r
|
VPMAXSQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F38.W1 3D /r
|
VPMAXSQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F38.W1 3D /r
|
- Opcode
- 0x3D
- Tested by
- t5608
IizVPMAXSQ:: PROC
IiEmitOpcode 0x3D
JMP IizVPMINUQ.op:
ENDP IizVPMAXSQ::
- ↑ VPMAXUB
- Maximum of Packed Unsigned Byte Integers
- Intel reference
VPMAXUB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F DE /r
|
VPMAXUB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F DE /r
|
VPMAXUB xmm1{k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG DE /r
|
VPMAXUB ymm1{k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG DE /r
|
VPMAXUB zmm1{k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG DE /r
|
- Category
- sse1,simdint
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FDE /r | 0x660FDE /r
- CPU
- P3+
- Tested by
- t5606
IizVPMAXUB:: PROC
IiEmitOpcode 0xDE
JMP IizVPMINUB.op:
ENDP IizVPMAXUB::
- ↑ VPMAXUW
- Maximum of Packed Unsigned Word Integers
- Intel reference
VPMAXUW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38 3E /r
|
VPMAXUW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38 3E /r
|
VPMAXUW xmm1{k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F38.WIG 3E /r
|
VPMAXUW ymm1{k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F38.WIG 3E /r
|
VPMAXUW zmm1{k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F38.WIG 3E /r
|
- Category
- sse41,simdint,compar
- Operands
- Vdq,Wdq
- Opcode
- 0x660F383E /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5606
IizVPMAXUW:: PROC
IiEmitOpcode 0x3E
JMP IizVPMINUW.op:
ENDP IizVPMAXUW::
- ↑ VPMAXUD
- Maximum of Packed Unsigned Dword Integers
- Intel reference
VPMAXUD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38.WIG 3F /r
|
VPMAXUD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38.WIG 3F /r
|
VPMAXUD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F38.W0 3F /r
|
VPMAXUD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F38.W0 3F /r
|
VPMAXUD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F38.W0 3F /r
|
VPMAXUD zmm1 {k1}, zmm2, zmm3/m512/m32bcst
| MVEX.NDS.512.66.0F38.W0 3F /r
|
- Category
- sse41,simdint,compar
- Operands
- Vdq,Wdq
- Opcode
- 0x660F383F /r
- CPU
- C2++
- Documented
- D43
- Tested by
- t5606
IizVPMAXUD:: PROC
IiEmitOpcode 0x3F
JMP IizVPMINUD.op:
ENDP IizVPMAXUD::
- ↑ VPMAXUQ
- Maximum of Packed Unsigned QWORD Integers
- Intel reference
VPMAXUQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F38.W1 3F /r
|
VPMAXUQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F38.W1 3F /r
|
VPMAXUQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F38.W1 3F /r
|
- Opcode
- 0x3F
- Tested by
- t5606
IizVPMAXUQ:: PROC
IiEmitOpcode 0x3F
JMP IizVPMINUQ.op:
ENDP IizVPMAXUQ::
- ↑ VPADDB
- Add Packed Integers
- Intel reference
VPADDB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG FC /r
|
VPADDB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG FC /r
|
VPADDB xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG FC /r
|
VPADDB ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG FC /r
|
VPADDB zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG FC /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FFC /r | 0x660FFC /r
- CPU
- PX+
- Tested by
- t5612
IizVPADDB:: PROC
IiEmitOpcode 0xFC
.op:IiEncoding DATA=BYTE
.os:IiAllowModifier MASK
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.WIG
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F.WIG, EVEX.NDS.256.66.0F.WIG
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F.WIG
RET
ENDP IizVPADDB::
- ↑ VPADDW
- Add Packed Integers
- Intel reference
VPADDW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG FD /r
|
VPADDW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG FD /r
|
VPADDW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG FD /r
|
VPADDW ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG FD /r
|
VPADDW zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG FD /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FFD /r | 0x660FFD /r
- CPU
- PX+
- Tested by
- t5612
IizVPADDW:: PROC
IiEmitOpcode 0xFD
.op:IiEncoding DATA=WORD
JMP IizVPADDB.os:
ENDP IizVPADDW::
- ↑ VPADDD
- Add Packed Integers
- Intel reference
VPADDD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG FE /r
|
VPADDD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG FE /r
|
VPADDD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F.W0 FE /r
|
VPADDD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F.W0 FE /r
|
VPADDD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F.W0 FE /r
|
VPADDD zmm1 {k1}, zmm2, zmm3/m512/m32bcst
| MVEX.NDS.512.66.0F.W0 FE /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FFE /r | 0x660FFE /r
- CPU
- PX+
- Tested by
- t5612
IizVPADDD:: PROC
IiEmitOpcode 0xFE
.op:IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiDisp8EVEX FV32
IiDisp8MVEX Si32
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.W0
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F.WIG, EVEX.NDS.256.66.0F.W0
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F.W0, MVEX.NDS.512.66.0F.W0
RET
ENDP IizVPADDD::
- ↑ VPADDQ
- Add Packed Quadword Integers
- Intel reference
VPADDQ xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG D4 /r
|
VPADDQ ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG D4 /r
|
VPADDQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F.W1 D4 /r
|
VPADDQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F.W1 D4 /r
|
VPADDQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F.W1 D4 /r
|
- Category
- sse2,simdint,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FD4 /r | 0x660FD4 /r
- CPU
- PX+
- Tested by
- t5612
IizVPADDQ:: PROC
IiEmitOpcode 0xD4
.op:IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiDisp8EVEX FV64
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.W1
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F.WIG, EVEX.NDS.256.66.0F.W1
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F.W1
RET
ENDP IizVPADDQ::
- ↑ VPADDSB
- Add Packed Signed Integers with Signed Saturation
- Intel reference
VPADDSB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F EC
|
VPADDSB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F EC
|
VPADDSB xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG EC /r
|
VPADDSB ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG EC /r
|
VPADDSB zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG EC /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FEC /r | 0x660FEC /r
- CPU
- PX+
- Tested by
- t5616
IizVPADDSB:: PROC
IiEmitOpcode 0xEC
JMP IizVPADDB.op:
RET
ENDP IizVPADDSB::
- ↑ VPADDSW
- Add Packed Signed Integers with Signed Saturation
- Intel reference
VPADDSW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F ED
|
VPADDSW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F ED
|
VPADDSW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG ED /r
|
VPADDSW ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG ED /r
|
VPADDSW zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG ED /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FED /r | 0x660FED /r
- CPU
- PX+
- Tested by
- t5616
IizVPADDSW:: PROC
IiEmitOpcode 0xED
JMP IizVPADDW.op:
ENDP IizVPADDSW::
- ↑ VPSUBB
- Subtract Packed Integers
- Intel reference
VPSUBB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG F8 /r
|
VPSUBB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG F8 /r
|
VPSUBB xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG F8 /r
|
VPSUBB ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG F8 /r
|
VPSUBB zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG F8 /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FF8 /r | 0x660FF8 /r
- CPU
- PX+
- Tested by
- t5614
IizVPSUBB:: PROC
IiEmitOpcode 0xF8
JMP IizVPADDB.op:
ENDP IizVPSUBB::
- ↑ VPSUBW
- Subtract Packed Integers
- Intel reference
VPSUBW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG F9 /r
|
VPSUBW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG F9 /r
|
VPSUBW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG F9 /r
|
VPSUBW ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG F9 /r
|
VPSUBW zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG F9 /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FF9 /r | 0x660FF9 /r
- CPU
- PX+
- Tested by
- t5614
IizVPSUBW:: PROC
IiEmitOpcode 0xF9
JMP IizVPADDW.op:
ENDP IizVPSUBW::
- ↑ VPSUBD
- Subtract Packed Integers
- Intel reference
VPSUBD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG FA /r
|
VPSUBD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG FA /r
|
VPSUBD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F.W0 FA /r
|
VPSUBD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F.W0 FA /r
|
VPSUBD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F.W0 FA /r
|
VPSUBD zmm1 {k1}, zmm2, zmm3/m512/m32bcst
| MVEX.NDS.512.66.0F.W0 FA /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FFA /r | 0x660FFA /r
- CPU
- PX+
- Tested by
- t5614
IizVPSUBD:: PROC
IiEmitOpcode 0xFA
JMP IizVPADDD.op:
ENDP IizVPSUBD::
- ↑ VPSUBQ
- Subtract Packed Quadword Integers
- Intel reference
VPSUBQ xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG FB /r
|
VPSUBQ ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG FB /r
|
VPSUBQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F.W1 FB /r
|
VPSUBQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F.W1 FB /r
|
VPSUBQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F.W1 FB/r
|
- Category
- sse2,simdint,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FFB /r | 0x660FFB /r
- CPU
- P4+
- Tested by
- t5614
IizVPSUBQ:: PROC
IiEmitOpcode 0xFB
JMP IizVPADDQ.op:
ENDP IizVPSUBQ::
- ↑ VPSUBSB
- Subtract Packed Signed Integers with Signed Saturation
- Intel reference
VPSUBSB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F E8 /r
|
VPSUBSB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F E8 /r
|
VPSUBSB xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG E8 /r
|
VPSUBSB ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG E8 /r
|
VPSUBSB zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG E8 /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FE8 /r | 0x660FE8 /r
- CPU
- PX+
- Tested by
- t5616
IizVPSUBSB:: PROC
IiEmitOpcode 0xE8
JMP IizVPADDB.op:
ENDP IizVPSUBSB::
- ↑ VPSUBSW
- Subtract Packed Signed Integers with Signed Saturation
- Intel reference
VPSUBSW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F E9 /r
|
VPSUBSW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F E9 /r
|
VPSUBSW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG E9 /r
|
VPSUBSW ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG E9 /r
|
VPSUBSW zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG E9 /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FE9 /r | 0x660FE9 /r
- CPU
- PX+
- Tested by
- t5616
IizVPSUBSW:: PROC
IiEmitOpcode 0xE9
JMP IizVPADDW.op:
ENDP IizVPSUBSW::
- ↑ VPADDUSB
- Add Packed Unsigned Integers with Unsigned Saturation
- Intel reference
VPADDUSB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F DC
|
VPADDUSB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F DC
|
VPADDUSB xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG DC /r
|
VPADDUSB ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG DC /r
|
VPADDUSB zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG DC /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FDC /r | 0x660FDC /r
- CPU
- PX+
- Tested by
- t5618
IizVPADDUSB:: PROC
IiEmitOpcode 0xDC
JMP IizVPADDB.op:
ENDP IizVPADDUSB::
- ↑ VPADDUSW
- Add Packed Unsigned Integers with Unsigned Saturation
- Intel reference
VPADDUSW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F DD
|
VPADDUSW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F DD
|
VPADDUSW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG DD /r
|
VPADDUSW ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG DD /r
|
VPADDUSW zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG DD /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FDD /r | 0x660FDD /r
- CPU
- PX+
- Tested by
- t5618
IizVPADDUSW:: PROC
IiEmitOpcode 0xDD
JMP IizVPADDW.op:
ENDP IizVPADDUSW::
- ↑ VPSUBUSB
- Subtract Packed Unsigned Integers with Unsigned Saturation
- Intel reference
VPSUBUSB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F D8 /r
|
VPSUBUSB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F D8 /r
|
VPSUBUSB xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG D8 /r
|
VPSUBUSB ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG D8 /r
|
VPSUBUSB zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG D8 /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FD8 /r | 0x660FD8 /r
- CPU
- PX+
- Tested by
- t5618
IizVPSUBUSB:: PROC
IiEmitOpcode 0xD8
JMP IizVPADDB.op:
ENDP IizVPSUBUSB::
- ↑ VPSUBUSW
- Subtract Packed Signed Integers with Signed Saturation
- Intel reference
VPSUBUSW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F D9 /r
|
VPSUBUSW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F D9 /r
|
VPSUBUSW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG D9 /r
|
VPSUBUSW ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG D9 /r
|
VPSUBUSW zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG D9 /r
|
- Category
- mmx,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FE9 /r | 0x660FE9 /r
- CPU
- PX+
- Tested by
- t5618
IizVPSUBUSW:: PROC
IiEmitOpcode 0xD9
JMP IizVPADDW.op:
ENDP IizVPSUBUSW::
- ↑ VHADDPS
- Packed Single-FP Horizontal Add
- Intel reference
VHADDPS xmm1, xmm2, xmm3/m128
| VEX.NDS.128.F2.0F.WIG 7C /r
|
VHADDPS ymm1, ymm2, ymm3/m256
| VEX.NDS.256.F2.0F.WIG 7C /r
|
- Category
- sse3,simdfp,arith
- Operands
- Vps,Wps
- Opcode
- 0xF20F7C /r
- CPU
- P4++
- Tested by
- t5610
IizVHADDPS:: PROC
IiEmitOpcode 0x7C
.op:IiEncoding DATA=DWORD
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.F2.0F.WIG
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.F2.0F.WIG
RET
ENDP IizVHADDPS::
- ↑ VHADDPD
- Packed Double-FP Horizontal Add
- Intel reference
VHADDPD xmm1,xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG 7C /r
|
VHADDPD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG 7C /r
|
- Category
- sse3,simdfp,arith
- Operands
- Vpd,Wpd
- Opcode
- 0x660F7C /r
- CPU
- P4++
- Tested by
- t5610
IizVHADDPD:: PROC
IiEmitOpcode 0x7C
.op:IiEncoding DATA=QWORD
IiOpEn RVM
IiModRM /r
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F.WIG
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F.WIG
RET
ENDP IizVHADDPD::
- ↑ VHSUBPS
- Packed Single-FP Horizontal Subtract
- Intel reference
VHSUBPS xmm1, xmm2, xmm3/m128
| VEX.NDS.128.F2.0F.WIG 7D /r
|
VHSUBPS ymm1, ymm2, ymm3/m256
| VEX.NDS.256.F2.0F.WIG 7D /r
|
- Category
- sse3,simdfp,arith
- Operands
- Vps,Wps
- Opcode
- 0xF20F7D /r
- CPU
- P4++
- Tested by
- t5610
IizVHSUBPS:: PROC
IiEmitOpcode 0x7D
JMP IizVHADDPS.op:
ENDP IizVHSUBPS::
- ↑ VHSUBPD
- Packed Double-FP Horizontal Subtract
- Intel reference
VHSUBPD xmm1,xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG 7D /r
|
VHSUBPD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG 7D /r
|
- Category
- sse3,simdfp,arith
- Operands
- Vpd,Wpd
- Opcode
- 0x660F7D /r
- CPU
- P4++
- Tested by
- t5610
IizVHSUBPD:: PROC
IiEmitOpcode 0x7D
JMP IizVHADDPD.op:
ENDP IizVHSUBPD::
- ↑ VPSRLW
- Shift Packed Data Right Logical
- Intel reference
VPSRLW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG D1 /r
|
VPSRLW xmm1, xmm2, imm8
| VEX.NDD.128.66.0F.WIG 71 /2 ib
|
VPSRLW ymm1, ymm2, xmm3/m128
| VEX.NDS.256.66.0F.WIG D1 /r
|
VPSRLW ymm1, ymm2, imm8
| VEX.NDD.256.66.0F.WIG 71 /2 ib
|
VPSRLW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG D1 /r
|
VPSRLW ymm1 {k1}{z}, ymm2, xmm3/m128
| EVEX.NDS.256.66.0F.WIG D1 /r
|
VPSRLW zmm1 {k1}{z}, zmm2, xmm3/m128
| EVEX.NDS.512.66.0F.WIG D1 /r
|
VPSRLW xmm1 {k1}{z}, xmm2/m128, imm8
| EVEX.NDD.128.66.0F.WIG 71 /2 ib
|
VPSRLW ymm1 {k1}{z}, ymm2/m256, imm8
| EVEX.NDD.256.66.0F.WIG 71 /2 ib
|
VPSRLW zmm1 {k1}{z}, zmm2/m512, imm8
| EVEX.NDD.512.66.0F.WIG 71 /2 ib
|
- Category
- mmx,shift
- Operands
- Nq,Ib | Udq,Ib | Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F71 /2 | 0x660F71 /2 | 0x0FD1 /r | 0x660FD1 /r
- CPU
- PX+
- Tested by
- t5622
IizVPSRLW:: PROC
MOV AL,0xD1
MOV BL,0x71
MOV ECX,iiPpgModRMd | 2<<28
.op:IiAllowModifier MASK
IiEncoding DATA=WORD
CMP DL,imm
JE .I:
IiOpEn RVM
IiEmitOpcode EAX
IiModRM /r
IiDisp8EVEX M128
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.xmm, ymm.ymm.mem, zmm.zmm.xmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.WIG
RET
.ymm.ymm.xmm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F.WIG, EVEX.NDS.256.66.0F.WIG
RET
.zmm.zmm.xmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F.WIG
RET
.I: IiOpEn VM
IiEmitOpcode EBX
IiModRM ECX
IiEmitImm Operand3, BYTE
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm.imm, ymm.ymm.imm, xmm.mem.imm, ymm.mem.imm, zmm.zmm.imm, zmm.mem.imm
.xmm.xmm.imm:
IiEmitPrefix VEX.NDD.128.66.0F.WIG, EVEX.NDD.128.66.0F.WIG
RET
.xmm.mem.imm:
IiEmitPrefix EVEX.NDD.128.66.0F.WIG
RET
.ymm.ymm.imm:
IiEmitPrefix VEX.NDD.256.66.0F.WIG, EVEX.NDD.256.66.0F.WIG
RET
.ymm.mem.imm:
IiEmitPrefix EVEX.NDD.256.66.0F.WIG
RET
.zmm.zmm.imm:
.zmm.mem.imm:
IiEmitPrefix EVEX.NDD.512.66.0F.WIG
RET
ENDP IizVPSRLW::
- ↑ VPSRLD
- Shift Double Quadword Right Logical
- Intel reference
VPSRLD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG D2 /r
|
VPSRLD xmm1, xmm2, imm8
| VEX.NDD.128.66.0F.WIG 72 /2 ib
|
VPSRLD ymm1, ymm2, xmm3/m128
| VEX.NDS.256.66.0F.WIG D2 /r
|
VPSRLD ymm1, ymm2, imm8
| VEX.NDD.256.66.0F.WIG 72 /2 ib
|
VPSRLD xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.W0 D2 /r
|
VPSRLD ymm1 {k1}{z}, ymm2, xmm3/m128
| EVEX.NDS.256.66.0F.W0 D2 /r
|
VPSRLD zmm1 {k1}{z}, zmm2, xmm3/m128
| EVEX.NDS.512.66.0F.W0 D2 /r
|
VPSRLD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8
| EVEX.NDD.128.66.0F.W0 72 /2 ib
|
VPSRLD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8
| EVEX.NDD.256.66.0F.W0 72 /2 ib
|
VPSRLD zmm1 {k1}{z}, zmm2/m512/m32bcst, imm8
| EVEX.NDD.512.66.0F.W0 72 /2 ib
|
VPSRLD zmm1 {k1}, zmm2/m512/m32bcst, imm8
| MVEX.NDD.512.66.0F.W0 72 /2 ib
|
- Category
- mmx,shift
- Operands
- Nq,Ib | Udq,Ib | Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F72 /2 | 0x660F72 /2 | 0x0FD2 /r | 0x660FD2 /r
- CPU
- PX+
- Tested by
- t5622
IizVPSRLD:: PROC
MOV AL,0xD2
MOV BL,0x72
MOV ECX,iiPpgModRMd | 2<<28
.op:IiAllowModifier MASK
IiEncoding DATA=DWORD
CMP DL,imm
JE .I:
IiOpEn RVM
IiEmitOpcode EAX
IiModRM /r
IiDisp8EVEX M128
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.xmm, ymm.ymm.mem, zmm.zmm.xmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.W0
RET
.ymm.ymm.xmm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F.WIG, EVEX.NDS.256.66.0F.W0
RET
.zmm.zmm.xmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F.W0
RET
.I: IiOpEn VM
IiEmitOpcode EBX
IiModRM ECX
IiEmitImm Operand3, BYTE
IiAllowBroadcasting DWORD, Operand=DH
IiDisp8EVEX FV32
IiDisp8MVEX Si32
IiDispatchFormat xmm.xmm.imm, ymm.ymm.imm, xmm.mem.imm, ymm.mem.imm, zmm.zmm.imm, zmm.mem.imm
.xmm.mem.imm:
IiEmitPrefix EVEX.NDD.128.66.0F.W0
RET
.xmm.xmm.imm:
IiEmitPrefix VEX.NDD.128.66.0F.WIG, EVEX.NDD.128.66.0F.W0
RET
.ymm.mem.imm:
IiEmitPrefix EVEX.NDD.256.66.0F.W0
RET
.ymm.ymm.imm:
IiEmitPrefix VEX.NDD.256.66.0F.WIG, EVEX.NDD.256.66.0F.W0
RET
.zmm.zmm.imm:
.zmm.mem.imm:
IiEmitPrefix EVEX.NDD.512.66.0F.W0, MVEX.NDD.512.66.0F.W0
RET
ENDP IizVPSRLD::
- ↑ VPSRLQ
- Shift Packed Data Right Logical
- Intel reference
VPSRLQ xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG D3 /r
|
VPSRLQ xmm1, xmm2, imm8
| VEX.NDD.128.66.0F.WIG 73 /2 ib
|
VPSRLQ ymm1, ymm2, xmm3/m128
| VEX.NDS.256.66.0F.WIG D3 /r
|
VPSRLQ ymm1, ymm2, imm8
| VEX.NDD.256.66.0F.WIG 73 /2 ib
|
VPSRLQ xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.W1 D3 /r
|
VPSRLQ ymm1 {k1}{z}, ymm2, xmm3/m128
| EVEX.NDS.256.66.0F.W1 D3 /r
|
VPSRLQ zmm1 {k1}{z}, zmm2, xmm3/m128
| EVEX.NDS.512.66.0F.W1 D3 /r
|
VPSRLQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8
| EVEX.NDD.128.66.0F.W1 73 /2 ib
|
VPSRLQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8
| EVEX.NDD.256.66.0F.W1 73 /2 ib
|
VPSRLQ zmm1 {k1}{z}, zmm2/m512/m64bcst, imm8
| EVEX.NDD.512.66.0F.W1 73 /2 ib
|
- Category
- mmx,shift
- Operands
- Nq,Ib | Udq,Ib | Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F73 /2 | 0x660F73 /2 | 0x0FD3 /r | 0x660FD3 /r
- CPU
- PX+
- Tested by
- t5622
IizVPSRLQ:: PROC
MOV AL,0xD3
MOV BL,0x73
MOV ECX,iiPpgModRMd | 2<<28
.op:IiAllowModifier MASK
IiEncoding DATA=QWORD
CMP DL,imm
JE .I:
IiOpEn RVM
IiEmitOpcode EAX
IiModRM /r
IiDisp8EVEX M128
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.xmm, ymm.ymm.mem, zmm.zmm.xmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.W1
RET
.ymm.ymm.xmm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F.WIG, EVEX.NDS.256.66.0F.W1
RET
.zmm.zmm.xmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F.W1
RET
.I: IiOpEn VM
IiEmitOpcode EBX
IiModRM ECX
IiEmitImm Operand3, BYTE
IiAllowBroadcasting QWORD, Operand=DH
IiDisp8EVEX FV64
IiDispatchFormat xmm.xmm.imm, ymm.ymm.imm, xmm.mem.imm, ymm.mem.imm, zmm.zmm.imm, zmm.mem.imm
.xmm.mem.imm:
IiEmitPrefix EVEX.NDD.128.66.0F.W1
RET
.xmm.xmm.imm:
IiEmitPrefix VEX.NDD.128.66.0F.WIG, EVEX.NDD.128.66.0F.W1
RET
.ymm.mem.imm:
IiEmitPrefix EVEX.NDD.256.66.0F.W1
RET
.ymm.ymm.imm:
IiEmitPrefix VEX.NDD.256.66.0F.WIG, EVEX.NDD.256.66.0F.W1
RET
.zmm.zmm.imm:
.zmm.mem.imm:
IiEmitPrefix EVEX.NDD.512.66.0F.W1
RET
ENDP IizVPSRLQ::
- ↑ VPSRLDQ
- Shift Double Quadword Right Logical
- Intel reference
VPSRLDQ xmm1, xmm2, imm8
| VEX.NDD.128.66.0F 73 /3 ib
|
VPSRLDQ ymm1, ymm2, imm8
| VEX.NDD.256.66.0F 73 /3 ib
|
VPSRLDQ xmm1, xmm2/m128, imm8
| EVEX.NDD.128.66.0F.WIG 73 /3 ib
|
VPSRLDQ ymm1, ymm2/m256, imm8
| EVEX.NDD.256.66.0F.WIG 73 /3 ib
|
VPSRLDQ zmm1, zmm2/m512, imm8
| EVEX.NDD.512.66.0F.WIG 73 /3 ib
|
- Category
- sse2,simdint,shift
- Operands
- Udq,Ib
- Opcode
- 0x660F73 /3
- CPU
- P4+
- Tested by
- t5622
IizVPSRLDQ:: PROC
MOV ECX,iiPpgModRMd | 3<<28
MOV BL,0x73
.d: IiEmitOpcode EBX
IiModRM ECX
IiOpEn VM
IiEmitImm Operand3, BYTE
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm.imm, ymm.ymm.imm, xmm.mem.imm, ymm.mem.imm, zmm.zmm.imm, zmm.mem.imm
.xmm.mem.imm:
IiEmitPrefix EVEX.NDD.128.66.0F.WIG
RET
.xmm.xmm.imm:
IiEmitPrefix VEX.NDD.128.66.0F, EVEX.NDD.128.66.0F.WIG
RET
.ymm.mem.imm:
IiEmitPrefix EVEX.NDD.256.66.0F.WIG
RET
.ymm.ymm.imm:
IiEmitPrefix VEX.NDD.256.66.0F, EVEX.NDD.256.66.0F.WIG
RET
.zmm.mem.imm:
IiEmitPrefix EVEX.NDD.512.66.0F.WIG
RET
.zmm.zmm.imm:
IiEmitPrefix EVEX.NDD.512.66.0F.WIG
RET
ENDP IizVPSRLDQ::
- ↑ VPSRAW
- Shift Packed Data Right Arithmetic
- Intel reference
VPSRAW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG E1 /r
|
VPSRAW xmm1, xmm2, imm8
| VEX.NDD.128.66.0F.WIG 71 /4 ib
|
VPSRAW ymm1, ymm2, ymm3/m128
| VEX.NDS.256.66.0F.WIG E1 /r
|
VPSRAW ymm1, ymm2, imm8
| VEX.NDD.256.66.0F.WIG 71 /4 ib
|
VPSRAW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG E1 /r
|
VPSRAW ymm1 {k1}{z}, ymm2, xmm3/m128
| EVEX.NDS.256.66.0F.WIG E1 /r
|
VPSRAW zmm1 {k1}{z}, zmm2, xmm3/m128
| EVEX.NDS.512.66.0F.WIG E1 /r
|
VPSRAW xmm1 {k1}{z}, xmm2/m128, imm8
| EVEX.NDD.128.66.0F.WIG 71 /4 ib
|
VPSRAW ymm1 {k1}{z}, ymm2/m256, imm8
| EVEX.NDD.256.66.0F.WIG 71 /4 ib
|
VPSRAW zmm1 {k1}{z}, zmm2/m512, imm8
| EVEX.NDD.512.66.0F.WIG 71 /4 ib
|
- Category
- mmx,shift
- Operands
- Nq,Ib | Udq,Ib | Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F71 /4 | 0x660F71 /4 | 0x0FE1 /r | 0x660FE1 /r
- CPU
- PX+
- Tested by
- t5626
IizVPSRAW:: PROC
MOV AL,0xE1
MOV BL,0x71
MOV ECX,iiPpgModRMd | 4<<28
JMP IizVPSRLW.op:
ENDP IizVPSRAW::
- ↑ VPSRAD
- Shift Packed Data Right Arithmetic
- Intel reference
VPSRAD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG E2 /r
|
VPSRAD xmm1, xmm2, imm8
| VEX.NDD.128.66.0F.WIG 72 /4 ib
|
VPSRAD ymm1, ymm2, xmm3/m128
| VEX.NDS.256.66.0F.WIG E2 /r
|
VPSRAD ymm1, ymm2, imm8
| VEX.NDD.256.66.0F.WIG 72 /4 ib
|
VPSRAD xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.W0 E2 /r
|
VPSRAD ymm1 {k1}{z}, ymm2, xmm3/m128
| EVEX.NDS.256.66.0F.W0 E2 /r
|
VPSRAD zmm1 {k1}{z}, zmm2, xmm3/m128
| EVEX.NDS.512.66.0F.W0 E2 /r
|
VPSRAD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8
| EVEX.NDD.128.66.0F.W0 72 /4 ib
|
VPSRAD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8
| EVEX.NDD.256.66.0F.W0 72 /4 ib
|
VPSRAD zmm1 {k1}{z}, zmm2/m512/m32bcst, imm8
| EVEX.NDD.512.66.0F.W0 72 /4 ib
|
VPSRAD zmm1 {k1}, zmm2/m512/m32bcst, imm8
| MVEX.NDD.512.66.0F.W0 72 /4 ib
|
- Category
- mmx,shift
- Operands
- Nq,Ib | Udq,Ib | Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F72 /4 | 0x660F72 /4 | 0x0FE2 /r | 0x660FE2 /r
- CPU
- PX+
- Tested by
- t5626
IizVPSRAD:: PROC
MOV AL,0xE2
MOV BL,0x72
MOV ECX,iiPpgModRMd | 4<<28
JMP IizVPSRLD.op:
ENDP IizVPSRAD::
- ↑ VPSRAQ
- Bit Shift Arithmetic Right
- Intel reference
VPSRAQ xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.W1 E2 /r
|
VPSRAQ ymm1 {k1}{z}, ymm2, xmm3/m128
| EVEX.NDS.256.66.0F.W1 E2 /r
|
VPSRAQ zmm1 {k1}{z}, zmm2, xmm3/m128
| EVEX.NDS.512.66.0F.W1 E2 /r
|
VPSRAQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8
| EVEX.NDD.128.66.0F.W1 72 /4 ib
|
VPSRAQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8
| EVEX.NDD.256.66.0F.W1 72 /4 ib
|
VPSRAQ zmm1 {k1}{z}, zmm2/m512/m64bcst, imm8
| EVEX.NDD.512.66.0F.W1 72 /4 ib
|
- Opcode
- 0xE2 | 0x72
- Tested by
- t5626
IizVPSRAQ:: PROC
IiAllowModifier MASK
IiEncoding DATA=QWORD
CMP DL,imm
JE .I:
IiOpEn RVM
IiEmitOpcode 0xE2
IiModRM /r
IiDisp8EVEX M128
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.xmm, ymm.ymm.mem, zmm.zmm.xmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix EVEX.NDS.128.66.0F.W1
RET
.ymm.ymm.xmm:
.ymm.ymm.mem:
IiEmitPrefix EVEX.NDS.256.66.0F.W1
RET
.zmm.zmm.xmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F.W1
RET
.I: IiOpEn VM
IiEmitOpcode 0x72
IiModRM /4
IiEmitImm Operand3, BYTE
IiAllowBroadcasting QWORD, Operand=DH
IiDisp8EVEX FV64
IiDispatchFormat xmm.xmm.imm, xmm.mem.imm, ymm.ymm.imm, ymm.mem.imm, zmm.zmm.imm, zmm.mem.imm
.xmm.xmm.imm:
.xmm.mem.imm:
IiEmitPrefix EVEX.NDD.128.66.0F.W1
RET
.ymm.ymm.imm:
.ymm.mem.imm:
IiEmitPrefix EVEX.NDD.256.66.0F.W1
RET
.zmm.zmm.imm:
.zmm.mem.imm:
IiEmitPrefix EVEX.NDD.512.66.0F.W1
RET
ENDP IizVPSRAQ::
- ↑ VPSLLW
- Shift Packed Data Left Logical
- Intel reference
VPSLLW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG F1 /r
|
VPSLLW xmm1, xmm2, imm8
| VEX.NDD.128.66.0F.WIG 71 /6 ib
|
VPSLLW ymm1, ymm2, xmm3/m128
| VEX.NDS.256.66.0F.WIG F1 /r
|
VPSLLW ymm1, ymm2, imm8
| VEX.NDD.256.66.0F.WIG 71 /6 ib
|
VPSLLW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG F1 /r
|
VPSLLW ymm1 {k1}{z}, ymm2, xmm3/m128
| EVEX.NDS.256.66.0F.WIG F1 /r
|
VPSLLW zmm1 {k1}{z}, zmm2, xmm3/m128
| EVEX.NDS.512.66.0F.WIG F1 /r
|
VPSLLW xmm1 {k1}{z}, xmm2/m128, imm8
| EVEX.NDD.128.66.0F.WIG 71 /6 ib
|
VPSLLW ymm1 {k1}{z}, ymm2/m256, imm8
| EVEX.NDD.256.66.0F.WIG 71 /6 ib
|
VPSLLW zmm1 {k1}{z}, zmm2/m512, imm8
| EVEX.NDD.512.66.0F.WIG 71 /6 ib
|
- Category
- mmx,shift
- Operands
- Nq,Ib | Udq,Ib | Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F71 /6 | 0x660F71 /6 | 0x0FF1 /r | 0x660FF1 /r
- CPU
- PX+
- Tested by
- t5624
IizVPSLLW:: PROC
MOV AL,0xF1
MOV BL,0x71
MOV ECX,iiPpgModRMd | 6<<28
JMP IizVPSRLW.op:
ENDP IizVPSLLW::
- ↑ VPSLLD
- Shift Packed Data Left Logical
- Intel reference
VPSLLD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG F2 /r
|
VPSLLD xmm1, xmm2, imm8
| VEX.NDD.128.66.0F.WIG 72 /6 ib
|
VPSLLD ymm1, ymm2, xmm3/m128
| VEX.NDS.256.66.0F.WIG F2 /r
|
VPSLLD ymm1, ymm2, imm8
| VEX.NDD.256.66.0F.WIG 72 /6 ib
|
VPSLLD xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.W0 F2 /r
|
VPSLLD ymm1 {k1}{z}, ymm2, xmm3/m128
| EVEX.NDS.256.66.0F.W0 F2 /r
|
VPSLLD zmm1 {k1}{z}, zmm2, xmm3/m128
| EVEX.NDS.512.66.0F.W0 F2 /r
|
VPSLLD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8
| EVEX.NDD.128.66.0F.W0 72 /6 ib
|
VPSLLD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8
| EVEX.NDD.256.66.0F.W0 72 /6 ib
|
VPSLLD zmm1 {k1}{z}, zmm2/m512/m32bcst, imm8
| EVEX.NDD.512.66.0F.W0 72 /6 ib
|
VPSLLD zmm1 {k1}, zmm2/m512/m32bcst, imm8
| MVEX.NDD.512.66.0F.W0 72 /6 ib
|
- Category
- mmx,shift
- Operands
- Nq,Ib | Udq,Ib | Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F72 /6 | 0x660F72 /6 | 0x0FF2 /r | 0x660FF2 /r
- CPU
- PX+
- Tested by
- t5624
IizVPSLLD:: PROC
MOV AL,0xF2
MOV BL,0x72
MOV ECX,iiPpgModRMd | 6<<28
JMP IizVPSRLD.op:
ENDP IizVPSLLD::
- ↑ VPSLLQ
- Shift Packed Data Left Logical
- Intel reference
VPSLLQ xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG F3 /r
|
VPSLLQ xmm1, xmm2, imm8
| VEX.NDD.128.66.0F.WIG 73 /6 ib
|
VPSLLQ ymm1, ymm2, xmm3/m128
| VEX.NDS.256.66.0F.WIG F3 /r
|
VPSLLQ ymm1, ymm2, imm8
| VEX.NDD.256.66.0F.WIG 73 /6 ib
|
VPSLLQ xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.W1 F3 /r
|
VPSLLQ ymm1 {k1}{z}, ymm2, xmm3/m128
| EVEX.NDS.256.66.0F.W1 F3 /r
|
VPSLLQ zmm1 {k1}{z}, zmm2, xmm3/m128
| EVEX.NDS.512.66.0F.W1 F3 /r
|
VPSLLQ xmm1 {k1}{z}, xmm2/m128/m64bcst, imm8
| EVEX.NDD.128.66.0F.W1 73 /6 ib
|
VPSLLQ ymm1 {k1}{z}, ymm2/m256/m64bcst, imm8
| EVEX.NDD.256.66.0F.W1 73 /6 ib
|
VPSLLQ zmm1 {k1}{z}, zmm2/m512/m64bcst, imm8
| EVEX.NDD.512.66.0F.W1 73 /6 ib
|
- Category
- mmx,shift
- Operands
- Nq,Ib | Udq,Ib | Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F73 /6 | 0x660F73 /6 | 0x0FF3 /r | 0x660FF3 /r
- CPU
- PX+
- Tested by
- t5624
IizVPSLLQ:: PROC
MOV AL,0xF3
MOV BL,0x73
MOV ECX,iiPpgModRMd | 6<<28
JMP IizVPSRLQ.op:
ENDP IizVPSLLQ::
- ↑ VPSLLDQ
- Shift Double Quadword Left Logical
- Intel reference
VPSLLDQ xmm1, xmm2, imm8
| VEX.NDD.128.66.0F 73 /7 ib
|
VPSLLDQ ymm1, ymm2, imm8
| VEX.NDD.256.66.0F 73 /7 ib
|
VPSLLDQ xmm1,xmm2/ m128, imm8
| EVEX.NDD.128.66.0F 73 /7 ib
|
VPSLLDQ ymm1, ymm2/m256, imm8
| EVEX.NDD.256.66.0F 73 /7 ib
|
VPSLLDQ zmm1, zmm2/m512, imm8
| EVEX.NDD.512.66.0F 73 /7 ib
|
- Category
- sse2,simdint,shift
- Operands
- Udq,Ib
- Opcode
- 0x660F73 /7
- CPU
- P4+
- Tested by
- t5624
IizVPSLLDQ:: PROC
MOV ECX,iiPpgModRMd | 7<<28
MOV BL,0x73
JMP IizVPSRLDQ.d:
ENDP IizVPSLLDQ::
- ↑ VPSRLVW
- Variable Bit Shift Right Logical WORD
- Intel reference
VPSRLVW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F38.W1 10 /r
|
VPSRLVW ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F38.W1 10 /r
|
VPSRLVW zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F38.W1 10 /r
|
- Opcode
- 0x10
- Tested by
- t5632
IizVPSRLVW:: PROC
IiEmitOpcode 0x10
.op:IiEncoding DATA=WORD
IiAllowModifier MASK
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix EVEX.NDS.128.66.0F38.W1
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix EVEX.NDS.256.66.0F38.W1
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W1
RET
ENDP IizVPSRLVW::
- ↑ VPSRLVD
- Variable Bit Shift Right Logical DWORD
- Description
- VPSRLVD
- Intel reference
VPSRLVD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38.W0 45 /r
|
VPSRLVD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38.W0 45 /r
|
VPSRLVD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F38.W0 45 /r
|
VPSRLVD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F38.W0 45 /r
|
VPSRLVD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F38.W0 45 /r
|
VPSRLVD zmm1 {k1}, zmm2, zmm3/m512/m32bcst
| MVEX.NDS.512.66.0F38.W0 45 /r
|
- Opcode
- 0x45
- Tested by
- t5632
IizVPSRLVD:: PROC
IiEmitOpcode 0x45
.op:IiEncoding DATA=DWORD
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FV32
IiDisp8MVEX Si32
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F38.W0, EVEX.NDS.128.66.0F38.W0
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F38.W0, EVEX.NDS.256.66.0F38.W0
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W0, MVEX.NDS.512.66.0F38.W0
RET
ENDP IizVPSRLVD::
- ↑ VPSRLVQ
- Variable Bit Shift Right Logical QWORD
- Description
- VPSRLVQ
- Intel reference
VPSRLVQ xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38.W1 45 /r
|
VPSRLVQ ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38.W1 45 /r
|
VPSRLVQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F38.W1 45 /r
|
VPSRLVQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F38.W1 45 /r
|
VPSRLVQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F38.W1 45 /r
|
- Opcode
- 0x45
- Tested by
- t5632
IizVPSRLVQ:: PROC
IiEmitOpcode 0x45
.op:IiEncoding DATA=QWORD
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FV64
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F38.W1, EVEX.NDS.128.66.0F38.W1
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F38.W1, EVEX.NDS.256.66.0F38.W1
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W1
RET
ENDP IizVPSRLVQ::
- ↑ VPSRAVW
- Variable Bit Shift Right Arithmetic WORD
- Intel reference
VPSRAVW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F38.W1 11 /r
|
VPSRAVW ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F38.W1 11 /r
|
VPSRAVW zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F38.W1 11 /r
|
- Opcode
- 0x11
- Tested by
- t5634
IizVPSRAVW:: PROC
IiEmitOpcode 0x11
JMP IizVPSRLVW.op:
RET
ENDP IizVPSRAVW::
- ↑ VPSRAVD
- Variable Bit Shift Right Arithmetic DWORD
- Description
- VPSRAVD
- Intel reference
VPSRAVD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38.W0 46 /r
|
VPSRAVD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38.W0 46 /r
|
VPSRAVD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F38.W0 46 /r
|
VPSRAVD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F38.W0 46 /r
|
VPSRAVD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F38.W0 46 /r
|
VPSRAVD zmm1 {k1}, zmm2, zmm3/m512/m32bcst
| MVEX.NDS.512.66.0F38.W0 46 /r
|
- Opcode
- 0x46
- Tested by
- t5634
IizVPSRAVD:: PROC
IiEmitOpcode 0x46
JMP IizVPSRLVD.op:
ENDP IizVPSRAVD::
- ↑ VPSRAVQ
- Variable Bit Shift Right Arithmetic QWORD
- Intel reference
VPSRAVQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F38.W1 46 /r
|
VPSRAVQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F38.W1 46 /r
|
VPSRAVQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F38.W1 46 /r
|
- Opcode
- 0x46
- Tested by
- t5634
IizVPSRAVQ:: PROC
IiEmitOpcode 0x46
IiEncoding DATA=QWORD
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FV64
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix EVEX.NDS.128.66.0F38.W1
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix EVEX.NDS.256.66.0F38.W1
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.W1
RET
ENDP IizVPSRAVQ::
- ↑ VPSLLVW
- Variable Bit Shift Left Logical WORD
- Intel reference
VPSLLVW xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F38.W1 12 /r
|
VPSLLVW ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F38.W1 12 /r
|
VPSLLVW zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F38.W1 12 /r
|
- Opcode
- 0x12
- Tested by
- t5636
IizVPSLLVW:: PROC
IiEmitOpcode 0x12
JMP IizVPSRLVW.op:
ENDP IizVPSLLVW::
- ↑ VPSLLVD
- Variable Bit Shift Left Logical DWORD
- Description
- VPSLLVD
- Intel reference
VPSLLVD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38.W0 47 /r
|
VPSLLVD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38.W0 47 /r
|
VPSLLVD xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst
| EVEX.NDS.128.66.0F38.W0 47 /r
|
VPSLLVD ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst
| EVEX.NDS.256.66.0F38.W0 47 /r
|
VPSLLVD zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst
| EVEX.NDS.512.66.0F38.W0 47 /r
|
VPSLLVD zmm1 {k1}, zmm2, zmm3/m512/m32bcst
| MVEX.NDS.512.66.0F38.W0 47 /r
|
- Opcode
- 0x47
- Tested by
- t5636
IizVPSLLVD:: PROC
IiEmitOpcode 0x47
JMP IizVPSRLVD.op:
ENDP IizVPSLLVD::
- ↑ VPSLLVQ
- Variable Bit Shift Left Logical QWORD
- Description
- VPSLLVQ
- Intel reference
VPSLLVQ xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38.W1 47 /r
|
VPSLLVQ ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38.W1 47 /r
|
VPSLLVQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F38.W1 47 /r
|
VPSLLVQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F38.W1 47 /r
|
VPSLLVQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F38.W1 47 /r
|
- Opcode
- 0x47
- Tested by
- t5636
IizVPSLLVQ:: PROC
IiEmitOpcode 0x47
JMP IizVPSRLVQ.op:
ENDP IizVPSLLVQ::
- ↑ VPABSB
- Packed Absolute Value
- Intel reference
VPABSB xmm1, xmm2/m128
| VEX.128.66.0F38.WIG 1C /r
|
VPABSB ymm1, ymm2/m256
| VEX.256.66.0F38.WIG 1C /r
|
VPABSB xmm1 {k1}{z}, xmm2/m128
| EVEX.128.66.0F38 1C /r
|
VPABSB ymm1 {k1}{z}, ymm2/m256
| EVEX.256.66.0F38 1C /r
|
VPABSB zmm1 {k1}{z}, zmm2/m512
| EVEX.512.66.0F38 1C /r
|
- Category
- ssse3,simdint
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F381C /r | 0x660F381C /r
- CPU
- C2+
- Tested by
- t5640
IizVPABSB:: PROC
IiEncoding DATA=BYTE
IiAllowModifier MASK
IiEmitOpcode 0x1C
IiOpEn RM
IiModRM /r
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.66.0F38.WIG, EVEX.128.66.0F38
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix VEX.256.66.0F38.WIG, EVEX.256.66.0F38
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38
RET
ENDP IizVPABSB::
- ↑ VPABSW
- Packed Absolute Value
- Intel reference
VPABSW xmm1, xmm2/m128
| VEX.128.66.0F38.WIG 1D /r
|
VPABSW ymm1, ymm2/m256
| VEX.256.66.0F38.WIG 1D /r
|
VPABSW xmm1 {k1}{z}, xmm2/m128
| EVEX.128.66.0F38 1D /r
|
VPABSW ymm1 {k1}{z}, ymm2/m256
| EVEX.256.66.0F38 1D /r
|
VPABSW zmm1 {k1}{z}, zmm2/m512
| EVEX.512.66.0F38 1D /r
|
- Category
- ssse3,simdint
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F381D /r | 0x660F381D /r
- CPU
- C2+
- Tested by
- t5640
IizVPABSW:: PROC
IiEncoding DATA=WORD
IiAllowModifier MASK
IiEmitOpcode 0x1D
IiOpEn RM
IiModRM /r
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.66.0F38.WIG, EVEX.128.66.0F38
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix VEX.256.66.0F38.WIG, EVEX.256.66.0F38
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38
RET
ENDP IizVPABSW::
- ↑ VPABSD
- Packed Absolute Value
- Intel reference
VPABSD xmm1, xmm2/m128
| VEX.128.66.0F38.WIG 1E /r
|
VPABSD ymm1, ymm2/m256
| VEX.256.66.0F38.WIG 1E /r
|
VPABSD xmm1 {k1}{z}, xmm2/m128/m32bcst
| EVEX.128.66.0F38.W0 1E /r
|
VPABSD ymm1 {k1}{z}, ymm2/m256/m32bcst
| EVEX.256.66.0F38.W0 1E /r
|
VPABSD zmm1 {k1}{z}, zmm2/m512/m32bcst
| EVEX.512.66.0F38.W0 1E /r
|
- Category
- ssse3,simdint
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F381E /r | 0x660F381E /r
- CPU
- C2+
- Tested by
- t5640
IizVPABSD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD
IiEmitOpcode 0x1E
IiOpEn RM
IiModRM /r
IiDisp8EVEX FV32
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix VEX.128.66.0F38.WIG, EVEX.128.66.0F38.W0
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix VEX.256.66.0F38.WIG, EVEX.256.66.0F38.W0
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W0
RET
ENDP IizVPABSD::
- ↑ VPABSQ
- Packed Absolute Value
- Intel reference
VPABSQ xmm1 {k1}{z}, xmm2/m128/m64bcst
| EVEX.128.66.0F38.W1 1F /r
|
VPABSQ ymm1 {k1}{z}, ymm2/m256/m64bcst
| EVEX.256.66.0F38.W1 1F /r
|
VPABSQ zmm1 {k1}{z}, zmm2/m512/m64bcst
| EVEX.512.66.0F38.W1 1F /r
|
- Opcode
- 0x1F
- Tested by
- t5640
IizVPABSQ:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiEmitOpcode 0x1F
IiOpEn RM
IiModRM /r
IiDisp8EVEX FV64
IiDispatchFormat xmm.xmm, xmm.mem, ymm.ymm, ymm.mem, zmm.zmm, zmm.mem
.xmm.xmm:
.xmm.mem:
IiEmitPrefix EVEX.128.66.0F38.W1
RET
.ymm.ymm:
.ymm.mem:
IiEmitPrefix EVEX.256.66.0F38.W1
RET
.zmm.zmm:
.zmm.mem:
IiEmitPrefix EVEX.512.66.0F38.W1
RET
ENDP IizVPABSQ::
- ↑ VPMULUDQ
- Multiply Packed Unsigned DW Integers
- Intel reference
VPMULUDQ xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F.WIG F4 /r
|
VPMULUDQ ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F.WIG F4 /r
|
VPMULUDQ xmm1 {k1}{z}, xmm2, xmm3/m128/m64bcst
| EVEX.NDS.128.66.0F.W1 F4 /r
|
VPMULUDQ ymm1 {k1}{z}, ymm2, ymm3/m256/m64bcst
| EVEX.NDS.256.66.0F.W1 F4 /r
|
VPMULUDQ zmm1 {k1}{z}, zmm2, zmm3/m512/m64bcst
| EVEX.NDS.512.66.0F.W1 F4 /r
|
- Category
- sse2,simdint,arith
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FF4 /r | 0x660FF4 /r
- CPU
- P4+
- Tested by
- t5642
t5680
IizVPMULUDQ:: PROC
IiEmitOpcode 0xF4
IiAllowModifier MASK
IiAllowBroadcasting QWORD
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FV64
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.W1
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F.WIG, EVEX.NDS.256.66.0F.W1
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F.W1
RET
ENDP IizVPMULUDQ::
- ↑ VPMADDWD
- Multiply and Add Packed Integers
- Intel reference
VPMADDWD xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F F5 /r
|
VPMADDWD ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F F5 /r
|
VPMADDWD xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG F5 /r
|
VPMADDWD ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG F5 /r
|
VPMADDWD zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F.WIG F5 /r
|
- Category
- mmx,arith
- Operands
- Pq,Qd | Vdq,Wdq
- Opcode
- 0x0FF5 /r | 0x660FF5 /r
- CPU
- PX+
- Tested by
- t5642
IizVPMADDWD:: PROC
IiEmitOpcode 0xF5
IiAllowModifier MASK
.op:IiOpEn RVM
IiModRM /r
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F, EVEX.NDS.128.66.0F.WIG
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F, EVEX.NDS.256.66.0F.WIG
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F.WIG
RET
ENDP IizVPMADDWD::
- ↑ VPSADBW
- Compute Sum of Absolute Differences
- Intel reference
VPSADBW xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F F6 /r
|
VPSADBW ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F F6 /r
|
VPSADBW xmm1, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F.WIG F6 /r
|
VPSADBW ymm1, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F.WIG F6 /r
|
VPSADBW zmm1, zmm2, zmm3/m512 | EVEX.NDS.512.66.0F.WIG F6 /r
|
- Category
- sse1,simdint
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0FF6 /r | 0x660FF6 /r
- CPU
- P3+
- Tested by
- t5642
IizVPSADBW:: PROC
IiEmitOpcode 0xF6
JMP IizVPMADDWD.op:
ENDP IizVPSADBW::
- ↑ VSHUFPS
- Shuffle Packed Single-FP Values
- Intel reference
VSHUFPS xmm1, xmm2, xmm3/m128, imm8
| VEX.NDS.128.0F.WIG C6 /r ib
|
VSHUFPS ymm1, ymm2, ymm3/m256, imm8
| VEX.NDS.256.0F.WIG C6 /r ib
|
VSHUFPS xmm1{k1}{z}, xmm2, xmm3/m128/m32bcst, imm8
| EVEX.NDS.128.0F.W0 C6 /r ib
|
VSHUFPS ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst, imm8
| EVEX.NDS.256.0F.W0 C6 /r ib
|
VSHUFPS zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst, imm8
| EVEX.NDS.512.0F.W0 C6 /r ib
|
- Category
- sse1,simdfp,shunpck
- Operands
- Vps,Wps,Ib
- Opcode
- 0x0FC6 /r
- CPU
- P3+
- Tested by
- t5644
IizVSHUFPS:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD, Operand=DH
IiEmitOpcode 0xC6
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDisp8EVEX FV32
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, ymm.ymm.mem.imm, zmm.zmm.zmm.imm, zmm.zmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix VEX.NDS.128.0F.WIG, EVEX.NDS.128.0F.W0
RET
.ymm.ymm.ymm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix VEX.NDS.256.0F.WIG, EVEX.NDS.256.0F.W0
RET
.zmm.zmm.zmm.imm:
.zmm.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.0F.W0
RET
ENDP IizVSHUFPS::
- ↑ VSHUFPD
- Shuffle Packed Double-FP Values
- Intel reference
VSHUFPD xmm1, xmm2, xmm3/m128, imm8
| VEX.NDS.128.66.0F.WIG C6 /r ib
|
VSHUFPD ymm1, ymm2, ymm3/m256, imm8
| VEX.NDS.256.66.0F.WIG C6 /r ib
|
VSHUFPD xmm1{k1}{z}, xmm2, xmm3/m128/m64bcst, imm8
| EVEX.NDS.128.66.0F.W1 C6 /r ib
|
VSHUFPD ymm1{k1}{z}, ymm2, ymm3/m256/m64bcst, imm8
| EVEX.NDS.256.66.0F.W1 C6 /r ib
|
VSHUFPD zmm1{k1}{z}, zmm2, zmm3/m512/m64bcst, imm8
| EVEX.NDS.512.66.0F.W1 C6 /r ib
|
- Category
- sse2,pcksclr,shunpck
- Operands
- Vpd,Wpd,Ib
- Opcode
- 0x660FC6 /r
- CPU
- P4+
- Tested by
- t5644
IizVSHUFPD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting QWORD, Operand=DH
IiEmitOpcode 0xC6
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDisp8EVEX FV64
IiDispatchFormat xmm.xmm.xmm.imm, xmm.xmm.mem.imm, ymm.ymm.ymm.imm, ymm.ymm.mem.imm, zmm.zmm.zmm.imm, zmm.zmm.mem.imm
.xmm.xmm.xmm.imm:
.xmm.xmm.mem.imm:
IiEmitPrefix VEX.NDS.128.66.0F.WIG, EVEX.NDS.128.66.0F.W1
RET
.ymm.ymm.ymm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix VEX.NDS.256.66.0F.WIG, EVEX.NDS.256.66.0F.W1
RET
.zmm.zmm.zmm.imm:
.zmm.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.66.0F.W1
RET
ENDP IizVSHUFPD::
- ↑ VSHUFF32X4
- Shuffle Packed Values at 128-bit Granularity
- Description
- VSHUFF32X4
- Intel reference
VSHUFF32X4 ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst, imm8
| EVEX.NDS.256.66.0F3A.W0 23 /r ib
|
VSHUFF32X4 zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst, imm8
| EVEX.NDS.512.66.0F3A.W0 23 /r ib
|
- Opcode
- 0x23
- Tested by
- t5646
IizVSHUFF32X4:: PROC
IiEmitOpcode 0x23
.op:IiAllowBroadcasting DWORD,Operand=DH
IiDisp8EVEX FV32
IiAllowModifier MASK
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat ymm.ymm.ymm.imm, ymm.ymm.mem.imm, zmm.zmm.zmm.imm, zmm.zmm.mem.imm
.ymm.ymm.ymm.imm:
.ymm.ymm.mem.imm:
IiEmitPrefix EVEX.NDS.256.66.0F3A.W0
RET
.zmm.zmm.zmm.imm:
.zmm.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.66.0F3A.W0
RET
ENDP IizVSHUFF32X4::
- ↑ VSHUFI32X4
- Shuffle Packed Values at 128-bit Granularity
- Description
- VSHUFI32X2
- Intel reference
VSHUFI32X4 ymm1{k1}{z}, ymm2, ymm3/m256/m32bcst, imm8
| EVEX.NDS.256.66.0F3A.W0 43 /r ib
|
VSHUFI32X4 zmm1{k1}{z}, zmm2, zmm3/m512/m32bcst, imm8
| EVEX.NDS.512.66.0F3A.W0 43 /r ib
|
- Opcode
- 0x43
- Tested by
- t5646
IizVSHUFI32X4:: PROC
IiEmitOpcode 0x43
JMP IizVSHUFF32X4.op:
ENDP IizVSHUFI32X4::
- ↑ VSHUFF64X2
- Shuffle Packed Values at 128-bit Granularity
- Description
- VSHUFF64X2
- Intel reference
VSHUFF64X2 ymm1{k1}{z}, ymm2, ymm3/m256/m64bcst, imm8
| EVEX.NDS.256.66.0F3A.W1 23 /r ib
|
VSHUFF64X2 zmm1{k1}{z}, zmm2, zmm3/m512/m64bcst, imm8
| EVEX.NDS.512.66.0F3A.W1 23 /r ib
|
- Opcode
- 0x23
- Tested by
- t5646
IizVSHUFF64X2:: PROC
IiEmitOpcode 0x23
.op:IiAllowModifier MASK
IiAllowBroadcasting QWORD, Operand=DH
IiDisp8EVEX FV64
IiAllowModifier MASK
IiOpEn RVM
IiModRM /r
IiEmitImm Operand4, BYTE
IiDispatchFormat ymm.ymm.ymm.imm, ymm.ymm.mem.imm, zmm.zmm.zmm.imm, zmm.zmm.mem.imm
.ymm.ymm.ymm.imm:
IiEmitPrefix EVEX.NDS.256.66.0F3A.W1
RET
.ymm.ymm.mem.imm:
IiEmitPrefix EVEX.NDS.256.66.0F3A.W1
RET
.zmm.zmm.zmm.imm:
IiEmitPrefix EVEX.NDS.512.66.0F3A.W1
RET
.zmm.zmm.mem.imm:
IiEmitPrefix EVEX.NDS.512.66.0F3A.W1
RET
ENDP IizVSHUFF64X2::
- ↑ VSHUFI64X2
- Shuffle Packed Values at 128-bit Granularity
- Description
- VSHUFI64X2
- Intel reference
VSHUFI64X2 ymm1{k1}{z}, ymm2, ymm3/m256/m64bcst, imm8
| EVEX.NDS.256.66.0F3A.W1 43 /r ib
|
VSHUFI64X2 zmm1{k1}{z}, zmm2, zmm3/m512/m64bcst, imm8
| EVEX.NDS.512.66.0F3A.W1 43 /r ib
|
- Opcode
- 0x43
- Tested by
- t5646
IizVSHUFI64X2:: PROC
IiEmitOpcode 0x43
JMP IizVSHUFF64X2.op:
ENDP IizVSHUFI64X2::
- ↑ VPSHUFB
- Packed Shuffle Bytes
- Intel reference
VPSHUFB xmm1, xmm2, xmm3/m128
| VEX.NDS.128.66.0F38 00 /r
|
VPSHUFB ymm1, ymm2, ymm3/m256
| VEX.NDS.256.66.0F38 00 /r
|
VPSHUFB xmm1 {k1}{z}, xmm2, xmm3/m128
| EVEX.NDS.128.66.0F38.WIG 00 /r
|
VPSHUFB ymm1 {k1}{z}, ymm2, ymm3/m256
| EVEX.NDS.256.66.0F38.WIG 00 /r
|
VPSHUFB zmm1 {k1}{z}, zmm2, zmm3/m512
| EVEX.NDS.512.66.0F38.WIG 00 /r
|
- Category
- ssse3,simdint
- Operands
- Pq,Qq | Vdq,Wdq
- Opcode
- 0x0F3800 /r | 0x660F3800 /r
- CPU
- C2+
- Tested by
- t5648
IizVPSHUFB:: PROC
IiAllowModifier MASK
IiEmitOpcode 0x00
IiOpEn RVM
IiModRM /r
IiDisp8EVEX FVM
IiDispatchFormat xmm.xmm.xmm, xmm.xmm.mem, ymm.ymm.ymm, ymm.ymm.mem, zmm.zmm.zmm, zmm.zmm.mem
.xmm.xmm.xmm:
.xmm.xmm.mem:
IiEmitPrefix VEX.NDS.128.66.0F38, EVEX.NDS.128.66.0F38.WIG
RET
.ymm.ymm.ymm:
.ymm.ymm.mem:
IiEmitPrefix VEX.NDS.256.66.0F38, EVEX.NDS.256.66.0F38.WIG
RET
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix EVEX.NDS.512.66.0F38.WIG
RET
ENDP IizVPSHUFB::
- ↑ VPSHUFLW
- Shuffle Packed Low Words
- Intel reference
VPSHUFLW xmm1, xmm2/m128, imm8
| VEX.128.F2.0F 70 /r ib
|
VPSHUFLW ymm1, ymm2/m256, imm8
| VEX.256.F2.0F 70 /r ib
|
VPSHUFLW xmm1 {k1}{z}, xmm2/m128, imm8
| EVEX.128.F2.0F.WIG 70 /r ib
|
VPSHUFLW ymm1 {k1}{z}, ymm2/m256, imm8
| EVEX.256.F2.0F.WIG 70 /r ib
|
VPSHUFLW zmm1 {k1}{z}, zmm2/m512, imm8
| EVEX.512.F2.0F.WIG 70 /r ib
|
- Category
- sse2,simdint,shunpck
- Operands
- Vdq,Wdq,Ib
- Opcode
- 0xF20F70 /r
- CPU
- P4+
- Tested by
- t5648
IizVPSHUFLW:: PROC
IiAllowModifier MASK
IiEmitOpcode 0x70
IiOpEn RM
IiModRM /r
IiDisp8EVEX FVM
IiEmitImm Operand3, BYTE
IiDispatchFormat xmm.xmm.imm, xmm.mem.imm, ymm.ymm.imm, ymm.mem.imm, zmm.zmm.imm, zmm.mem.imm
.xmm.xmm.imm:
.xmm.mem.imm:
IiEmitPrefix VEX.128.F2.0F, EVEX.128.F2.0F.WIG
RET
.ymm.ymm.imm:
.ymm.mem.imm:
IiEmitPrefix VEX.256.F2.0F, EVEX.256.F2.0F.WIG
RET
.zmm.zmm.imm:
.zmm.mem.imm:
IiEmitPrefix EVEX.512.F2.0F.WIG
RET
ENDP IizVPSHUFLW::
- ↑ VPSHUFHW
- Shuffle Packed High Words
- Intel reference
VPSHUFHW xmm1, xmm2/m128, imm8
| VEX.128.F3.0F 70 /r ib
|
VPSHUFHW ymm1, ymm2/m256, imm8
| VEX.256.F3.0F 70 /r ib
|
VPSHUFHW xmm1 {k1}{z}, xmm2/m128, imm8
| EVEX.128.F3.0F.WIG 70 /r ib
|
VPSHUFHW ymm1 {k1}{z}, ymm2/m256, imm8
| EVEX.256.F3.0F.WIG 70 /r ib
|
VPSHUFHW zmm1 {k1}{z}, zmm2/m512, imm8
| EVEX.512.F3.0F.WIG 70 /r ib
|
- Category
- sse2,simdint,shunpck
- Operands
- Vdq,Wdq,Ib
- Opcode
- 0xF30F70 /r
- CPU
- P4+
- Tested by
- t5648
IizVPSHUFHW:: PROC
IiAllowModifier MASK
IiEmitOpcode 0x70
IiOpEn RM
IiModRM /r
IiDisp8EVEX FVM
IiEmitImm Operand3, BYTE
IiDispatchFormat xmm.xmm.imm, xmm.mem.imm, ymm.ymm.imm, ymm.mem.imm, zmm.zmm.imm, zmm.mem.imm
.xmm.xmm.imm:
.xmm.mem.imm:
IiEmitPrefix VEX.128.F3.0F, EVEX.128.F3.0F.WIG
RET
.ymm.ymm.imm:
.ymm.mem.imm:
IiEmitPrefix VEX.256.F3.0F, EVEX.256.F3.0F.WIG
RET
.zmm.zmm.imm:
.zmm.mem.imm:
IiEmitPrefix EVEX.512.F3.0F.WIG
RET
ENDP IizVPSHUFHW::
- ↑ VPSHUFD
- Shuffle Packed Doublewords
- Intel reference
VPSHUFD xmm1, xmm2/m128, imm8
| VEX.128.66.0F.WIG 70 /r ib
|
VPSHUFD ymm1, ymm2/m256, imm8
| VEX.256.66.0F.WIG 70 /r ib
|
VPSHUFD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8
| EVEX.128.66.0F.W0 70 /r ib
|
VPSHUFD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8
| EVEX.256.66.0F.W0 70 /r ib
|
VPSHUFD zmm1 {k1}{z}, zmm2/m512/m32bcst, imm8
| EVEX.512.66.0F.W0 70 /r ib
|
VPSHUFD zmm1 {k1}, zmm2/m512, imm8
| MVEX.512.66.0F.W0 70 /r ib
|
- Category
- sse2,simdint,shunpck
- Operands
- Vdq,Wdq,Ib
- Opcode
- 0x660F70 /r
- CPU
- P4+
- Tested by
- t5648
IizVPSHUFD:: PROC
IiAllowModifier MASK
IiAllowBroadcasting DWORD, Operand=DH
IiEmitOpcode 0x70
IiOpEn RM
IiModRM /r
IiDisp8EVEX FV32
IiDisp8MVEX Di64
IiEmitImm Operand3, BYTE
IiDispatchFormat xmm.xmm.imm, xmm.mem.imm, ymm.ymm.imm, ymm.mem.imm, zmm.zmm.imm, zmm.mem.imm
.xmm.xmm.imm:
.xmm.mem.imm:
IiEmitPrefix VEX.128.66.0F.WIG, EVEX.128.66.0F.W0
RET
.ymm.ymm.imm:
.ymm.mem.imm:
IiEmitPrefix VEX.256.66.0F.WIG, EVEX.256.66.0F.W0
RET
.zmm.zmm.imm:
.zmm.mem.imm:
IiEmitPrefix EVEX.512.66.0F.W0, MVEX.512.66.0F.W0
RET
ENDP IizVPSHUFD::
- ↑ VFMADD233PS
- Multiply First Source By Specially Swizzled Second Source and Add To Second Source Float32 Vectors
- Intel reference
VFMADD233PS zmm1 {k1}, zmm2, Sf32(zmm3/mt)
| MVEX.NDS.512.66.0F38.W0 A4 /r |
- Opcode
- 0xA4
- Tested by
- t5410
IizVFMADD233PS:: PROC
IiAllowMaskMerging
IiAllowRounding
IiAllowSuppressing Swizzle=No
IiDisp8MVEX Sf32
IiEmitOpcode 0xA4
IiOpEn RVM
IiModRM /r
IiDispatchFormat zmm.zmm.zmm, zmm.zmm.mem
.zmm.zmm.zmm:
.zmm.zmm.mem:
IiEmitPrefix MVEX.NDS.512.66.0F38.W0
RET
ENDP IizVFMADD233PS::
- ↑ VMOVNRAPS
- Store Aligned Float32 Vector With No-Read Hint
- Intel reference
VMOVNRAPS mem{k1}, Df32(zmm1)
| MVEX.512.F2.0F.W0.EH0 29 /r
|
- Opcode
- 0x29
- Tested by
- t5496
IizVMOVNRAPS:: PROC
IiEmitPrefix MVEX.512.F2.0F.W0.EH0
.d8:IiDisp8MVEX Dn32
.pf:IiAllowMaskMerging
IiEmitOpcode 0x29
IiOpEn MR
IiModRM /r
IiDispatchFormat mem.zmm
.mem.zmm:RET
ENDP IizVMOVNRAPS::
- ↑ VMOVNRNGOAPS
- Non-globally Ordered Store Aligned Float32 Vector With No-Read Hint
- Intel reference
VMOVNRNGOAPS mem{k1}, Df32(zmm1)
| MVEX.512.F2.0F.W0.EH1 29 /r
|
- Opcode
- 0x29
- Tested by
- t5496
IizVMOVNRNGOAPS:: PROC
IiEmitPrefix MVEX.512.F2.0F.W0.EH1
JMP IizVMOVNRAPS.d8:
ENDP IizVMOVNRNGOAPS::
- ↑ VMOVNRAPD
- Store Aligned Float64 Vector With No-Read Hint
- Intel reference
VMOVNRAPD mem{k1}, Df64(zmm1)
| MVEX.512.F3.0F.W1.EH0 29 /r
|
- Opcode
- 0x29
- Tested by
- t5496
IizVMOVNRAPD:: PROC
IiEmitPrefix MVEX.512.F3.0F.W1.EH0
.pf:IiDisp8MVEX Di64
JMP IizVMOVNRAPS.pf:
ENDP IizVMOVNRAPD::
- ↑ VMOVNRNGOAPD
- Non-globally Ordered Store Aligned Float64 Vector With No-Read Hint
- Intel reference
VMOVNRNGOAPD mem{k1}, Df64(zmm1)
| MVEX.512.F3.0F.W1.EH1 29 /r |
- Opcode
- 0x29
- Tested by
- t5496
IizVMOVNRNGOAPD:: PROC
IiEmitPrefix MVEX.512.F3.0F.W1.EH1
JMP IizVMOVNRAPD.pf:
ENDP IizVMOVNRNGOAPD::
ENDPROGRAM iiz
▲Back to the top▲