Skip to content

Commit

Permalink
add test of vmovw
Browse files Browse the repository at this point in the history
  • Loading branch information
herumi committed Oct 19, 2024
1 parent 6d48afc commit ab9653f
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions test/misc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2291,6 +2291,7 @@ CYBOZU_TEST_AUTO(vmovd)
{
setDefaultEncodingAVX10(PreAVX10v2Encoding);
vmovd(eax, xm1); // always AVX10.1
vmovd(xm1, eax); // always AVX10.1
vmovd(xm3, xm1); // always AVX10.2
// AVX-512 (AVX10.1)
vmovd(ptr[rax+128], xm1);
Expand All @@ -2300,6 +2301,7 @@ CYBOZU_TEST_AUTO(vmovd)

setDefaultEncodingAVX10(AVX10v2Encoding);
vmovd(eax, xm1); // always AVX10.1
vmovd(xm1, eax); // always AVX10.1
vmovd(xm3, xm1); // always AVX10.2
// AVX10.2
vmovd(ptr[rax+128], xm1);
Expand All @@ -2310,13 +2312,15 @@ CYBOZU_TEST_AUTO(vmovd)
} c;
const uint8_t tbl[] = {
0xc5, 0xf9, 0x7e, 0xc8, // avx10.1
0xc5, 0xf9, 0x6e, 0xc8, // avx10.1
0x62, 0xf1, 0x7e, 0x08, 0x7e, 0xd9, // avx10.2
0xc5, 0xf9, 0x7e, 0x88, 0x80, 0x00, 0x00, 0x00, // avx
0xc5, 0xf9, 0x6e, 0x88, 0x80, 0x00, 0x00, 0x00, // avx
0x62, 0x61, 0x7d, 0x08, 0x7e, 0x70, 0x20, // avx10.1
0x62, 0x61, 0x7d, 0x08, 0x6e, 0x70, 0x20, // avx10.1

0xc5, 0xf9, 0x7e, 0xc8, // avx10.1
0xc5, 0xf9, 0x6e, 0xc8, // avx10.1
0x62, 0xf1, 0x7e, 0x08, 0x7e, 0xd9, // avx10.2
0x62, 0xf1, 0x7d, 0x08, 0xd6, 0x48, 0x20, // avx10.2
0x62, 0xf1, 0x7e, 0x08, 0x7e, 0x48, 0x20, // avx10.2
Expand All @@ -2328,4 +2332,52 @@ CYBOZU_TEST_AUTO(vmovd)
CYBOZU_TEST_EQUAL_ARRAY(c.getCode(), tbl, n);
}

CYBOZU_TEST_AUTO(vmovw)
{
struct Code : Xbyak::CodeGenerator {
Code()
{
setDefaultEncodingAVX10(PreAVX10v2Encoding);
vmovw(eax, xm1); // always avx10.1
vmovw(xm1, eax); // always avx10.1
vmovw(xm3, xm1); // always avx10.2
// AVX10.1
vmovw(ptr[rax+128], xm1);
vmovw(xm1, ptr[rax+128]);
vmovw(ptr[rax+128], xm30);
vmovw(xm30, ptr[rax+128]);

setDefaultEncodingAVX10(AVX10v2Encoding);
vmovw(eax, xm1); // always avx10.1
vmovw(xm1, eax); // always avx10.1
vmovw(xm3, xm1); // always avx10.2
// AVX10.2
vmovw(ptr[rax+128], xm1);
vmovw(xm1, ptr[rax+128]);
vmovw(ptr[rax+128], xm30);
vmovw(xm30, ptr[rax+128]);
}
} c;
const uint8_t tbl[] = {
0x62, 0xf5, 0x7d, 0x08, 0x7e, 0xc8,
0x62, 0xf5, 0x7d, 0x08, 0x6e, 0xc8,
0x62, 0xf5, 0x7e, 0x08, 0x6e, 0xd9,
0x62, 0xf5, 0x7d, 0x08, 0x7e, 0x48, 0x40,
0x62, 0xf5, 0x7d, 0x08, 0x6e, 0x48, 0x40,
0x62, 0x65, 0x7d, 0x08, 0x7e, 0x70, 0x40,
0x62, 0x65, 0x7d, 0x08, 0x6e, 0x70, 0x40,

0x62, 0xf5, 0x7d, 0x08, 0x7e, 0xc8,
0x62, 0xf5, 0x7d, 0x08, 0x6e, 0xc8,
0x62, 0xf5, 0x7e, 0x08, 0x6e, 0xd9,
0x62, 0xf5, 0x7e, 0x08, 0x7e, 0x48, 0x40,
0x62, 0xf5, 0x7e, 0x08, 0x6e, 0x48, 0x40,
0x62, 0x65, 0x7e, 0x08, 0x7e, 0x70, 0x40,
0x62, 0x65, 0x7e, 0x08, 0x6e, 0x70, 0x40,
};
const size_t n = sizeof(tbl) / sizeof(tbl[0]);
CYBOZU_TEST_EQUAL(c.getSize(), n);
CYBOZU_TEST_EQUAL_ARRAY(c.getCode(), tbl, n);
}

#endif

0 comments on commit ab9653f

Please sign in to comment.