aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <[email protected]>2023-11-29 18:01:30 +0900
committerMITSUNARI Shigeo <[email protected]>2023-11-29 18:01:30 +0900
commit98ce73bb22d124a5c755c442aa083bb685c01e13 (patch)
tree22057f41d8d4b29eb99bac6b87ccf31485f800ad /test
parente2d9685af9fb6b0b8e792876b00fa44f18efcf78 (diff)
downloadxbyak-98ce73bb22d124a5c755c442aa083bb685c01e13.tar.gz
xbyak-98ce73bb22d124a5c755c442aa083bb685c01e13.zip
add cfcmov tests
Diffstat (limited to 'test')
-rw-r--r--test/apx.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/apx.cpp b/test/apx.cpp
index 817c760..b1f2b03 100644
--- a/test/apx.cpp
+++ b/test/apx.cpp
@@ -1621,6 +1621,41 @@ CYBOZU_TEST_AUTO(cfcmov)
cfcmovb(r20w, r30w, ptr [r9]);
cfcmovb(r20d, r30d, ptr [r9]);
cfcmovb(r20, r30, ptr [r9]);
+
+ // all
+ cfcmovo(r20, r21, r22);
+ cfcmovo(r20, r21, ptr [r22]);
+ cfcmovno(r20, r21, r22);
+ cfcmovno(r20, r21, ptr [r22]);
+ cfcmovb(r20, r21, r22);
+ cfcmovb(r20, r21, ptr [r22]);
+ cfcmovnb(r20, r21, r22);
+ cfcmovnb(r20, r21, ptr [r22]);
+ cfcmovz(r20, r21, r22);
+ cfcmovz(r20, r21, ptr [r22]);
+ cfcmovnz(r20, r21, r22);
+ cfcmovnz(r20, r21, ptr [r22]);
+ cfcmovbe(r20, r21, r22);
+ cfcmovbe(r20, r21, ptr [r22]);
+ cfcmovnbe(r20, r21, r22);
+ cfcmovnbe(r20, r21, ptr [r22]);
+ cfcmovs(r20, r21, r22);
+ cfcmovs(r20, r21, ptr [r22]);
+ cfcmovns(r20, r21, r22);
+ cfcmovns(r20, r21, ptr [r22]);
+ cfcmovp(r20, r21, r22);
+ cfcmovp(r20, r21, ptr [r22]);
+ cfcmovnp(r20, r21, r22);
+ cfcmovnp(r20, r21, ptr [r22]);
+ cfcmovl(r20, r21, r22);
+ cfcmovl(r20, r21, ptr [r22]);
+ cfcmovnl(r20, r21, r22);
+ cfcmovnl(r20, r21, ptr [r22]);
+ cfcmovle(r20, r21, r22);
+ cfcmovle(r20, r21, ptr [r22]);
+ cfcmovnle(r20, r21, r22);
+ cfcmovnle(r20, r21, ptr [r22]);
+
}
} c;
const uint8_t tbl[] = {
@@ -1630,6 +1665,19 @@ CYBOZU_TEST_AUTO(cfcmov)
0x62, 0x44, 0x7c, 0x08, 0x42, 0x31, 0x62, 0x44, 0xfc, 0x08, 0x42, 0x31, 0x62, 0x4c, 0x5d, 0x14,
0x42, 0xf7, 0x62, 0x4c, 0x5c, 0x14, 0x42, 0xf7, 0x62, 0x4c, 0xdc, 0x14, 0x42, 0xf7, 0x62, 0x44,
0x5d, 0x14, 0x42, 0x31, 0x62, 0x44, 0x5c, 0x14, 0x42, 0x31, 0x62, 0x44, 0xdc, 0x14, 0x42, 0x31,
+ // all
+ 0x62, 0xec, 0xdc, 0x14, 0x40, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x40, 0x2e, 0x62, 0xec, 0xdc, 0x14,
+ 0x41, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x41, 0x2e, 0x62, 0xec, 0xdc, 0x14, 0x42, 0xee, 0x62, 0xec,
+ 0xdc, 0x14, 0x42, 0x2e, 0x62, 0xec, 0xdc, 0x14, 0x43, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x43, 0x2e,
+ 0x62, 0xec, 0xdc, 0x14, 0x44, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x44, 0x2e, 0x62, 0xec, 0xdc, 0x14,
+ 0x45, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x45, 0x2e, 0x62, 0xec, 0xdc, 0x14, 0x46, 0xee, 0x62, 0xec,
+ 0xdc, 0x14, 0x46, 0x2e, 0x62, 0xec, 0xdc, 0x14, 0x47, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x47, 0x2e,
+ 0x62, 0xec, 0xdc, 0x14, 0x48, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x48, 0x2e, 0x62, 0xec, 0xdc, 0x14,
+ 0x49, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x49, 0x2e, 0x62, 0xec, 0xdc, 0x14, 0x4a, 0xee, 0x62, 0xec,
+ 0xdc, 0x14, 0x4a, 0x2e, 0x62, 0xec, 0xdc, 0x14, 0x4b, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x4b, 0x2e,
+ 0x62, 0xec, 0xdc, 0x14, 0x4c, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x4c, 0x2e, 0x62, 0xec, 0xdc, 0x14,
+ 0x4d, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x4d, 0x2e, 0x62, 0xec, 0xdc, 0x14, 0x4e, 0xee, 0x62, 0xec,
+ 0xdc, 0x14, 0x4e, 0x2e, 0x62, 0xec, 0xdc, 0x14, 0x4f, 0xee, 0x62, 0xec, 0xdc, 0x14, 0x4f, 0x2e,
};
const size_t n = sizeof(tbl);
CYBOZU_TEST_EQUAL(c.getSize(), n);