add vcomish
This commit is contained in:
parent
cd036ea174
commit
ab9481b4c6
3 changed files with 13 additions and 0 deletions
|
@ -146,6 +146,7 @@ void putVcmp()
|
|||
printf("void %s(const Opmask& k, const Xmm& x, const Operand& op%s) { opAVX_K_X_XM(k, x, op, %s, 0x%02X%s); }\n"
|
||||
, p->name, p->hasIMM ? ", uint8_t imm" : "", type.c_str(), p->code, p->hasIMM ? ", imm" : "");
|
||||
}
|
||||
puts("void vcomish(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_MAP5 | T_MUST_EVEX | T_EW0 | T_SAE_X | T_N2, 0x2F); }");
|
||||
}
|
||||
|
||||
void putVcmpAlias()
|
||||
|
|
|
@ -891,9 +891,13 @@ CYBOZU_TEST_AUTO(vaddph)
|
|||
|
||||
vcmpsh(k1, xm15, ptr[rax+64], 1);
|
||||
vcmpsh(k3|k5, xmm1, xmm25|T_sae, 4);
|
||||
|
||||
vcomish(xmm1, ptr[rax+64]);
|
||||
vcomish(xmm1|T_sae, xmm15);
|
||||
}
|
||||
} c;
|
||||
const uint8_t tbl[] = {
|
||||
// vaddph
|
||||
0x62, 0xF5, 0x74, 0x48, 0x58, 0x40, 0x01,
|
||||
0x62, 0xF5, 0x74, 0x28, 0x58, 0x40, 0x02,
|
||||
0x62, 0xF5, 0x74, 0x08, 0x58, 0x40, 0x04,
|
||||
|
@ -902,9 +906,11 @@ CYBOZU_TEST_AUTO(vaddph)
|
|||
0x62, 0xF5, 0x74, 0x38, 0x58, 0x40, 0x20,
|
||||
0x62, 0xF5, 0x74, 0x18, 0x58, 0x40, 0x20,
|
||||
|
||||
// vaddsh
|
||||
0x62, 0xF5, 0x06, 0x08, 0x58, 0x40, 0x20,
|
||||
0x62, 0xF5, 0x06, 0xBD, 0x58, 0xC3,
|
||||
|
||||
// vcmpph
|
||||
0x62, 0xf3, 0x04, 0x08, 0xc2, 0x48, 0x04, 0x01,
|
||||
0x62, 0xf3, 0x04, 0x28, 0xc2, 0x50, 0x02, 0x02,
|
||||
0x62, 0xf3, 0x04, 0x48, 0xc2, 0x58, 0x01, 0x03,
|
||||
|
@ -912,8 +918,13 @@ CYBOZU_TEST_AUTO(vaddph)
|
|||
0x62, 0xf3, 0x04, 0x38, 0xc2, 0x50, 0x20, 0x02,
|
||||
0x62, 0xf3, 0x04, 0x58, 0xc2, 0x58, 0x20, 0x03,
|
||||
|
||||
// vcmpsh
|
||||
0x62, 0xf3, 0x06, 0x08, 0xc2, 0x48, 0x20, 0x01,
|
||||
0x62, 0x93, 0x76, 0x1d, 0xc2, 0xd9, 0x04,
|
||||
|
||||
// vcomish
|
||||
0x62, 0xf5, 0x7c, 0x08, 0x2f, 0x48, 0x20,
|
||||
0x62, 0xd5, 0x7c, 0x18, 0x2f, 0xcf,
|
||||
};
|
||||
const size_t n = sizeof(tbl) / sizeof(tbl[0]);
|
||||
CYBOZU_TEST_EQUAL(c.getSize(), n);
|
||||
|
|
|
@ -1891,6 +1891,7 @@ void vcmpunordpd(const Opmask& k, const Xmm& x, const Operand& op) { vcmppd(k, x
|
|||
void vcmpunordps(const Opmask& k, const Xmm& x, const Operand& op) { vcmpps(k, x, op, 3); }
|
||||
void vcmpunordsd(const Opmask& k, const Xmm& x, const Operand& op) { vcmpsd(k, x, op, 3); }
|
||||
void vcmpunordss(const Opmask& k, const Xmm& x, const Operand& op) { vcmpss(k, x, op, 3); }
|
||||
void vcomish(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_MAP5 | T_MUST_EVEX | T_EW0 | T_SAE_X | T_N2, 0x2F); }
|
||||
void vcompressb(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N1 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x63); }
|
||||
void vcompresspd(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x8A); }
|
||||
void vcompressps(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x8A); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue