aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <[email protected]>2024-10-19 08:54:43 +0900
committerMITSUNARI Shigeo <[email protected]>2024-10-19 08:54:43 +0900
commit6d48afc6c04e044bc1cb5c3817e85b68963909f3 (patch)
tree31e9953362fd117cdb05a583800536404aee14ae /doc
parent4e2efab94ef6302cce5f4f5b6eaec3312cd4eb00 (diff)
downloadxbyak-6d48afc6c04e044bc1cb5c3817e85b68963909f3.tar.gz
xbyak-6d48afc6c04e044bc1cb5c3817e85b68963909f3.zip
[skip ci] [doc] update encoding of vmovd and vmovw with REG-to-XMM
Diffstat (limited to 'doc')
-rw-r--r--doc/usage.md14
1 files changed, 10 insertions, 4 deletions
diff --git a/doc/usage.md b/doc/usage.md
index 132020a..b28d772 100644
--- a/doc/usage.md
+++ b/doc/usage.md
@@ -154,11 +154,17 @@ feature|AVX512-VNNI|AVX-VNNI
-|-|-
feature|AVX-VNNI-INT8, AVX512-FP16|AVX10.2
-- Target functions: vmpsadbw, vpdpbssd, vpdpbssds, vpdpbsud, vpdpbsuds, vpdpbuud, vpdpbuuds, vpdpwsud vpdpwsuds vpdpwusd vpdpwusds vpdpwuud, vpdpwuuds, vmovd, vmovw
+- Target functions: vmpsadbw, vpdpbssd, vpdpbssds, vpdpbsud, vpdpbsuds, vpdpbuud, vpdpbuuds, vpdpwsud vpdpwsuds vpdpwusd vpdpwusds vpdpwuud, vpdpwuuds and vmovd, vmovw with MEM-to-MEM.
-- Remark: vmovd and vmovw several kinds of encoding such as AVX/AVX512F/AVX512-FP16/AVX10.2.
-At first, I attempted to use EvexEncoding (resp. VexEncoding) instead of AVX10v2Encoding (resp. EvexEncoding) for `setDefaultEncodingAVX10`.
-But I abandoned this idea when I found that `vmovd` and `vmovw` had different EVEX encodings in AVX512 and AVX10.2
+### Remark
+
+1. `vmovd` and `vmovw` instructions with REG-to-XMM or XMM-to-REG operands are always encoded using AVX10.1.
+When used with XMM-to-XMM operands, these instructions are always encoded using AVX10.2.
+
+2. `vmovd` and `vmovw` instructions with MEM-to-MEM operands support multiple encoding formats, including AVX, AVX512F, AVX512-FP16, and AVX10.2.
+
+Initially, I tried implementing `setDefaultEncodingAVX10` using `EvexEncoding` (resp. `VexEncoding`) instead of `AVX10v2Encoding` (resp. `EvexEncoding`).
+However, I abandoned this approach after discovering the complexity of the encoding requirements of `vmovd` and `vmovw`.
## APX
[Advanced Performance Extensions (APX) Architecture Specification](https://www.intel.com/content/www/us/en/content-details/786223/intel-advanced-performance-extensions-intel-apx-architecture-specification.html)