aboutsummaryrefslogtreecommitdiffhomepage
path: root/gen
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <[email protected]>2024-10-13 15:45:43 +0900
committerMITSUNARI Shigeo <[email protected]>2024-10-13 15:45:43 +0900
commit08f71cee951cfdda6b056165e0491b686a2b05bf (patch)
treedb56f88a024a90ef86257205ad59f6723fdff631 /gen
parentf6c66cf6b81f7a063a930cdfc0a62c68e6e2d0fc (diff)
downloadxbyak-08f71cee951cfdda6b056165e0491b686a2b05bf.tar.gz
xbyak-08f71cee951cfdda6b056165e0491b686a2b05bf.zip
vpdpw[su,us,uu]d[,s] support avx10.2
Diffstat (limited to 'gen')
-rw-r--r--gen/gen_avx512.cpp14
-rw-r--r--gen/gen_code.cpp14
2 files changed, 18 insertions, 10 deletions
diff --git a/gen/gen_avx512.cpp b/gen/gen_avx512.cpp
index ed7440c..2b8a328 100644
--- a/gen/gen_avx512.cpp
+++ b/gen/gen_avx512.cpp
@@ -467,16 +467,22 @@ void putX_X_XM_IMM_AVX10()
int sel;
bool hasIMM;
} tbl[] = {
+ // vpdpb[su,uu,ss]d[,s]
{ 0x50, "vpdpbssd", T_F2|T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
{ 0x51, "vpdpbssds", T_F2|T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
{ 0x50, "vpdpbsud", T_F3|T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
{ 0x51, "vpdpbsuds", T_F3|T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
{ 0x50, "vpdpbuud", T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
{ 0x51, "vpdpbuuds", T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
-#if 0
- { 0x50, "vpdpbuud", T_MUST_EVEX | T_YMM | T_0F38 | T_EW0 | T_B32, false },
- { 0x51, "vpdpbuuds", T_MUST_EVEX | T_YMM | T_0F38 | T_EW0 | T_B32, false },
-#endif
+
+ // vpdpw[su,us,uu]d[,s]
+ { 0xD2, "vpdpwsud", T_F3|T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
+ { 0xD3, "vpdpwsuds", T_F3|T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
+ { 0xD2, "vpdpwusd", T_66|T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
+ { 0xD3, "vpdpwusds", T_66|T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
+ { 0xD2, "vpdpwuud", T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
+ { 0xD3, "vpdpwuuds", T_0F38|T_YMM, T_W0, T_EW0|T_B32, 1, false },
+
{ 0x42, "vmpsadbw", T_0F3A|T_YMM, T_66|T_W0|T_YMM, T_F3|T_0F3A|T_EW0|T_B32, 1, true },
};
for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp
index a71d416..a22c12b 100644
--- a/gen/gen_code.cpp
+++ b/gen/gen_code.cpp
@@ -1901,6 +1901,7 @@ void put()
}
// avx-vnni-int8
// avx-vnni-int16
+#if 0
{
const struct Tbl {
uint8_t code;
@@ -1914,12 +1915,12 @@ void put()
// { 0x50, "vpdpbuud", T_0F38 | T_W0 | T_YMM },
// { 0x51, "vpdpbuuds", T_0F38 | T_W0 | T_YMM },
- { 0xD2, "vpdpwsud", T_F3 | T_0F38 | T_W0 | T_YMM },
- { 0xD3, "vpdpwsuds", T_F3 | T_0F38 | T_W0 | T_YMM },
- { 0xD2, "vpdpwusd", T_66 | T_0F38 | T_W0 | T_YMM },
- { 0xD3, "vpdpwusds", T_66 | T_0F38 | T_W0 | T_YMM },
- { 0xD2, "vpdpwuud", T_0F38 | T_W0 | T_YMM },
- { 0xD3, "vpdpwuuds", T_0F38 | T_W0 | T_YMM },
+// { 0xD2, "vpdpwsud", T_F3 | T_0F38 | T_W0 | T_YMM },
+// { 0xD3, "vpdpwsuds", T_F3 | T_0F38 | T_W0 | T_YMM },
+// { 0xD2, "vpdpwusd", T_66 | T_0F38 | T_W0 | T_YMM },
+// { 0xD3, "vpdpwusds", T_66 | T_0F38 | T_W0 | T_YMM },
+// { 0xD2, "vpdpwuud", T_0F38 | T_W0 | T_YMM },
+// { 0xD3, "vpdpwuuds", T_0F38 | T_W0 | T_YMM },
};
for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
const Tbl *p = &tbl[i];
@@ -1927,6 +1928,7 @@ void put()
printf("void %s(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, %s, 0x%02X); }\n", p->name, s.c_str(), p->code);
}
}
+#endif
}
void put32()