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::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