diff options
author | MITSUNARI Shigeo <[email protected]> | 2019-05-24 15:08:19 +0900 |
---|---|---|
committer | MITSUNARI Shigeo <[email protected]> | 2019-05-26 17:34:58 +0900 |
commit | 4cfd520878a1d14acde5441629fe3f705d5470ca (patch) | |
tree | 4cc65c40ecebe6cac7844cc945c4fd317e8c8bf6 /gen | |
parent | 4033564c6f006f3fb520dff1d35e32d4144e6d7a (diff) | |
download | xbyak-4cfd520878a1d14acde5441629fe3f705d5470ca.tar.gz xbyak-4cfd520878a1d14acde5441629fe3f705d5470ca.zip |
add avx512_bf16v5.80
Diffstat (limited to 'gen')
-rw-r--r-- | gen/gen_avx512.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gen/gen_avx512.cpp b/gen/gen_avx512.cpp index 84cd612..3f0508c 100644 --- a/gen/gen_avx512.cpp +++ b/gen/gen_avx512.cpp @@ -368,6 +368,9 @@ void putX_X_XM_IMM() { 0x52, "vpdpwssd", T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_SAE_Z | T_B32, false }, { 0x53, "vpdpwssds", T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_SAE_Z | T_B32, false }, + + { 0x72, "vcvtne2ps2bf16", T_F2 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_SAE_Z | T_B32, false }, + { 0x52, "vdpbf16ps", T_F3 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_SAE_Z | T_B32, false }, }; for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) { const Tbl *p = &tbl[i]; @@ -711,6 +714,8 @@ void putMisc() puts("void vfpclassss(const Opmask& k, const Operand& op, uint8 imm) { if (!op.isXMEM()) throw Error(ERR_BAD_MEM_SIZE); opVex(k, 0, op, T_66 | T_0F3A | T_MUST_EVEX | T_EW0 | T_N4, 0x67, imm); }"); puts("void vpshufbitqmb(const Opmask& k, const Xmm& x, const Operand& op) { opVex(k, &x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x8F); }"); + puts("void vcvtneps2bf16(const Xmm& x, const Operand& op) { int xBit = x.getBit(); int opBit = op.getBit(); if (xBit == 256 && opBit == 0) opBit = 512; if (!(xBit == 128 && (opBit == 128 || opBit == 256)) && !(xBit == 256 && opBit == 512)) throw Error(ERR_BAD_COMBINATION); Xmm t = x; t.setBit(opBit); opAVX_X_XM_IMM(t, op, T_F3 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x72); }"); + } void putV4FMA() |