add test of rao-int
This commit is contained in:
parent
0f2f1aaa65
commit
00bfaaa7f6
1 changed files with 63 additions and 0 deletions
|
@ -1993,3 +1993,66 @@ CYBOZU_TEST_AUTO(minmax)
|
||||||
CYBOZU_TEST_EQUAL((std::min)(3, 4), local::min_(3, 4));
|
CYBOZU_TEST_EQUAL((std::min)(3, 4), local::min_(3, 4));
|
||||||
CYBOZU_TEST_EQUAL((std::max)(3, 4), local::max_(3, 4));
|
CYBOZU_TEST_EQUAL((std::max)(3, 4), local::max_(3, 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CYBOZU_TEST_AUTO(rao_int)
|
||||||
|
{
|
||||||
|
struct Code : Xbyak::CodeGenerator {
|
||||||
|
Code()
|
||||||
|
{
|
||||||
|
#ifdef XBYAK64
|
||||||
|
aadd(ptr[rax], ecx);
|
||||||
|
aadd(ptr[eax], ecx);
|
||||||
|
aadd(ptr[rax], r10);
|
||||||
|
aand(ptr[rax], ecx);
|
||||||
|
aand(ptr[eax], ecx);
|
||||||
|
aand(ptr[rax], r10);
|
||||||
|
aor(ptr[rax], ecx);
|
||||||
|
aor(ptr[eax], ecx);
|
||||||
|
aor(ptr[rax], r10);
|
||||||
|
axor(ptr[rax], ecx);
|
||||||
|
axor(ptr[eax], ecx);
|
||||||
|
axor(ptr[rax], r10);
|
||||||
|
#else
|
||||||
|
aadd(ptr[eax], ecx);
|
||||||
|
aand(ptr[eax], ecx);
|
||||||
|
aor(ptr[eax], ecx);
|
||||||
|
axor(ptr[eax], ecx);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
} c;
|
||||||
|
const uint8_t tbl[] = {
|
||||||
|
#ifdef XBYAK64
|
||||||
|
// aadd
|
||||||
|
0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
0x67, 0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
0x4c, 0x0f, 0x38, 0xfc, 0x10,
|
||||||
|
|
||||||
|
// aand
|
||||||
|
0x66, 0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
0x66, 0x67, 0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
0x66, 0x4c, 0x0f, 0x38, 0xfc, 0x10,
|
||||||
|
|
||||||
|
// aor
|
||||||
|
0xf2, 0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
0xf2, 0x67, 0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
0xf2, 0x4c, 0x0f, 0x38, 0xfc, 0x10,
|
||||||
|
|
||||||
|
// axor
|
||||||
|
0xf3, 0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
0xf3, 0x67, 0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
0xf3, 0x4c, 0x0f, 0x38, 0xfc, 0x10,
|
||||||
|
#else
|
||||||
|
// aadd
|
||||||
|
0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
// aand
|
||||||
|
0x66, 0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
// aor
|
||||||
|
0xf2, 0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
// axor
|
||||||
|
0xf3, 0x0f, 0x38, 0xfc, 0x08,
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
const size_t n = sizeof(tbl) / sizeof(tbl[0]);
|
||||||
|
CYBOZU_TEST_EQUAL(c.getSize(), n);
|
||||||
|
CYBOZU_TEST_EQUAL_ARRAY(c.getCode(), tbl, n);
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue