public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: "Jiang, Haochen" <haochen.jiang@intel.com>
To: "Beulich, Jan" <JBeulich@suse.com>
Cc: "hjl.tools@gmail.com" <hjl.tools@gmail.com>,
	"Kong, Lingling" <lingling.kong@intel.com>,
	"binutils@sourceware.org" <binutils@sourceware.org>
Subject: RE: [PATCH 2/2] Support Intel AVX-NE-CONVERT
Date: Tue, 1 Nov 2022 01:24:14 +0000	[thread overview]
Message-ID: <SA1PR11MB59462642931A2653A373CF28EC369@SA1PR11MB5946.namprd11.prod.outlook.com> (raw)
In-Reply-To: <ac86975b-be13-236d-ba08-1e4477ecb2d3@suse.com>

> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Monday, October 31, 2022 5:15 PM
> To: Jiang, Haochen <haochen.jiang@intel.com>
> Cc: hjl.tools@gmail.com; Kong, Lingling <lingling.kong@intel.com>;
> binutils@sourceware.org
> Subject: Re: [PATCH 2/2] Support Intel AVX-NE-CONVERT
> 
> On 31.10.2022 07:06, Haochen Jiang wrote:
> > @@ -7786,6 +7819,14 @@ static const struct dis386 vex_w_table[][2] = {
> >      /* VEX_W_0F3879 */
> >      { "%XEvpbroadcastw",	{ XM, EXw }, PREFIX_DATA },
> >    },
> > +  {
> > +    /* VEX_W_0F38B0_M_1 */
> > +    { PREFIX_TABLE (PREFIX_VEX_0F38B0_M_1_W_0) },  },  {
> > +    /* VEX_W_0F38B1_M_1 */
> > +    { PREFIX_TABLE (PREFIX_VEX_0F38B1_M_1_W_0) },  },
> >    {
> >      /* VEX_W_0F38B4 */
> >      { Bad_Opcode },
> > @@ -8611,6 +8652,14 @@ static const struct dis386 mod_table[][2] = {
> >      /* MOD_VEX_0F388E */
> >      { "vpmaskmov%DQ",	{ Mx, Vex, XM }, PREFIX_DATA },
> >    },
> > +  {
> > +    /* MOD_VEX_0F38B0 */
> > +    { VEX_W_TABLE (VEX_W_0F38B0_M_1) },  },  {
> > +    /* MOD_VEX_0F38B1 */
> > +    { VEX_W_TABLE (VEX_W_0F38B1_M_1) },  },
> 
> Why ..._M_1 when these are used in slot 0 of the array?

We will change that. It should be zero.

> 
> > --- a/opcodes/i386-opc.tbl
> > +++ b/opcodes/i386-opc.tbl
> > @@ -3056,6 +3056,18 @@ vdpbf16ps, 0xf352, None, CpuAVX512_BF16,
> > Modrm|Space0F38|VexVVVV|Masking=3|VexW0
> >
> >  // AVX512_BF16 instructions end.
> >
> > +// AVX-NE-CONVERT instructions.
> > +
> > +vbcstnebf162ps, 0xf3b1, None, CpuAVX_NE_CONVERT,
> >
> +Modrm|Vex|Space0F38|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|N
> o_qSuf|No_
> > +ldSuf, { Word|Unspecified|BaseIndex, RegXMM|RegYMM }
> vbcstnesh2ps,
> > +0x66b1, None, CpuAVX_NE_CONVERT,
> >
> +Modrm|Vex|Space0F38|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|N
> o_qSuf|No_
> > +ldSuf, { Word|Unspecified|BaseIndex, RegXMM|RegYMM }
> vcvtneebf162ps,
> > +0xf3b0, None, CpuAVX_NE_CONVERT,
> >
> +Modrm|Vex|Space0F38|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|N
> o_qSuf|No_
> > +ldSuf, { Xmmword|Ymmword|Unspecified|BaseIndex,
> RegXMM|RegYMM }
> > +vcvtneeph2ps, 0x66b0, None, CpuAVX_NE_CONVERT,
> >
> +Modrm|Vex|Space0F38|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|N
> o_qSuf|No_
> > +ldSuf, { Xmmword|Ymmword|Unspecified|BaseIndex,
> RegXMM|RegYMM }
> > +vcvtneobf162ps, 0xf2b0, None, CpuAVX_NE_CONVERT,
> >
> +Modrm|Vex|Space0F38|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|N
> o_qSuf|No_
> > +ldSuf, { Xmmword|Ymmword|Unspecified|BaseIndex,
> RegXMM|RegYMM }
> > +vcvtneoph2ps, 0xb0, None, CpuAVX_NE_CONVERT,
> >
> +Modrm|Vex|Space0F38|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|N
> o_qSuf|No_
> > +ldSuf, { Xmmword|Ymmword|Unspecified|BaseIndex,
> RegXMM|RegYMM }
> 
> There's still no CheckRegSize for these last four.

Sorry for not mention that. I checked code and I suppose if we are using one
memory operand and one register operand, CheckRegSize seems like doing
nothing since the check function will return 1 for memory operand.

Correct me if I am wrong.

Haochen 

> 
> Jan

  reply	other threads:[~2022-11-01  1:26 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-31  6:05 [PATCH v4 0/2] " Haochen Jiang
2022-10-31  6:06 ` [PATCH 1/2] i386: Add <Vxy> and <Exy> Haochen Jiang
2022-10-31  9:04   ` Jan Beulich
2022-10-31 16:30     ` H.J. Lu
2022-11-01  8:50       ` Kong, Lingling
2022-11-01 14:42         ` H.J. Lu
2022-10-31  6:06 ` [PATCH 2/2] Support Intel AVX-NE-CONVERT Haochen Jiang
2022-10-31  9:14   ` Jan Beulich
2022-11-01  1:24     ` Jiang, Haochen [this message]
2022-11-01  6:50       ` Jan Beulich
2022-11-01  8:08         ` Kong, Lingling
2022-11-01  9:04     ` Kong, Lingling
2022-11-02  7:47       ` Jan Beulich
2022-11-02  8:50         ` Kong, Lingling
2022-11-02  9:53           ` Jan Beulich
2022-11-03  2:44           ` H.J. Lu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=SA1PR11MB59462642931A2653A373CF28EC369@SA1PR11MB5946.namprd11.prod.outlook.com \
    --to=haochen.jiang@intel.com \
    --cc=JBeulich@suse.com \
    --cc=binutils@sourceware.org \
    --cc=hjl.tools@gmail.com \
    --cc=lingling.kong@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).