add vucomish
This commit is contained in:
parent
412b95f02e
commit
4f543ca0e4
3 changed files with 9 additions and 0 deletions
|
@ -147,6 +147,7 @@ void putVcmp()
|
||||||
, p->name, p->hasIMM ? ", uint8_t imm" : "", type.c_str(), p->code, p->hasIMM ? ", imm" : "");
|
, 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); }");
|
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); }");
|
||||||
|
puts("void vucomish(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_MAP5 | T_MUST_EVEX | T_EW0 | T_SAE_X | T_N2, 0x2E); }");
|
||||||
}
|
}
|
||||||
|
|
||||||
void putVcmpAlias()
|
void putVcmpAlias()
|
||||||
|
|
|
@ -895,6 +895,9 @@ CYBOZU_TEST_AUTO(vaddph)
|
||||||
vcomish(xmm1, ptr[rax+64]);
|
vcomish(xmm1, ptr[rax+64]);
|
||||||
vcomish(xmm1|T_sae, xmm15);
|
vcomish(xmm1|T_sae, xmm15);
|
||||||
|
|
||||||
|
vucomish(xmm1, ptr [rax+0x40]);
|
||||||
|
vucomish(xmm1|T_sae, xmm15);
|
||||||
|
|
||||||
vfmaddsub213ph(xmm1, xmm2, ptr [rax+0x40]);
|
vfmaddsub213ph(xmm1, xmm2, ptr [rax+0x40]);
|
||||||
vfmaddsub213ph(xmm1, xmm2, ptr_b [rax+0x40]);
|
vfmaddsub213ph(xmm1, xmm2, ptr_b [rax+0x40]);
|
||||||
vfmaddsub213ph(xmm1|k3, xmm2, xmm5);
|
vfmaddsub213ph(xmm1|k3, xmm2, xmm5);
|
||||||
|
@ -996,6 +999,10 @@ CYBOZU_TEST_AUTO(vaddph)
|
||||||
0x62, 0xf5, 0x7c, 0x08, 0x2f, 0x48, 0x20,
|
0x62, 0xf5, 0x7c, 0x08, 0x2f, 0x48, 0x20,
|
||||||
0x62, 0xd5, 0x7c, 0x18, 0x2f, 0xcf,
|
0x62, 0xd5, 0x7c, 0x18, 0x2f, 0xcf,
|
||||||
|
|
||||||
|
// vucomish
|
||||||
|
0x62, 0xf5, 0x7c, 0x08, 0x2e, 0x48, 0x20,
|
||||||
|
0x62, 0xd5, 0x7c, 0x18, 0x2e, 0xcf,
|
||||||
|
|
||||||
// vfmaddsub213ph
|
// vfmaddsub213ph
|
||||||
0x62, 0xf6, 0x6d, 0x08, 0xa6, 0x48, 0x04,
|
0x62, 0xf6, 0x6d, 0x08, 0xa6, 0x48, 0x04,
|
||||||
0x62, 0xf6, 0x6d, 0x18, 0xa6, 0x48, 0x20,
|
0x62, 0xf6, 0x6d, 0x18, 0xa6, 0x48, 0x20,
|
||||||
|
|
|
@ -2221,6 +2221,7 @@ void vshufi32x4(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) {
|
||||||
void vshufi64x2(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F3A | T_YMM | T_MUST_EVEX | T_EW1 | T_B64, 0x43, imm); }
|
void vshufi64x2(const Ymm& y1, const Ymm& y2, const Operand& op, uint8_t imm) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F3A | T_YMM | T_MUST_EVEX | T_EW1 | T_B64, 0x43, imm); }
|
||||||
void vsubph(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_EW0 | T_YMM | T_MUST_EVEX | T_ER_Z | T_B16, 0x5C); }
|
void vsubph(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_EW0 | T_YMM | T_MUST_EVEX | T_ER_Z | T_B16, 0x5C); }
|
||||||
void vsubsh(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_F3 | T_EW0 | T_MUST_EVEX | T_ER_X | T_N2, 0x5C); }
|
void vsubsh(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_MAP5 | T_F3 | T_EW0 | T_MUST_EVEX | T_ER_X | T_N2, 0x5C); }
|
||||||
|
void vucomish(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_MAP5 | T_MUST_EVEX | T_EW0 | T_SAE_X | T_N2, 0x2E); }
|
||||||
#ifdef XBYAK64
|
#ifdef XBYAK64
|
||||||
void kmovq(const Opmask& k, const Reg64& r) { opVex(k, 0, r, T_L0 | T_0F | T_F2 | T_W1, 0x92); }
|
void kmovq(const Opmask& k, const Reg64& r) { opVex(k, 0, r, T_L0 | T_0F | T_F2 | T_W1, 0x92); }
|
||||||
void kmovq(const Reg64& r, const Opmask& k) { opVex(r, 0, k, T_L0 | T_0F | T_F2 | T_W1, 0x93); }
|
void kmovq(const Reg64& r, const Opmask& k) { opVex(r, 0, k, T_L0 | T_0F | T_F2 | T_W1, 0x93); }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue