[PATCH] Make wider use of "v" constraint in i386.md

Ilya Tocar tocarip.intel@gmail.com
Mon Apr 27 15:28:00 GMT 2015


On 17 Apr 10:09, Uros Bizjak wrote:
> On Thu, Mar 19, 2015 at 10:24 AM, Ilya Tocar <tocarip.intel@gmail.com> wrote:
> > Hi,
> >
> > There were some discussion about "x" constraints being too conservative
> > for some patterns in i386.md.
> > Patch below fixes it. This is probably stage1 material.
> >
> > ChangeLog:
> >
> > gcc/
> >
> > 2015-03-19  Ilya Tocar  <ilya.tocar@intel.com>
> >
> >         * config/i386/i386.h (EXT_SSE_REG_P): New.
> >         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
> >         constraint.
> >         (*cmpi<FPCMP:unord><MODEF:mode>_sse): Ditto.
> >         (*movxi_internal_avx512f): Ditto.
> >         (define_split): Check for xmm16+, when splitting scalar float_extend.
> >         (*extendsfdf2_mixed): Use "v" constraint.
> >         (*extendsfdf2_sse): Ditto.
> >         (define_split): Check for xmm16+, when splitting scalar float_truncate.
> >         (*truncdfsf_fast_sse): Use "v" constraint.
> >         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
> >         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
> >         (define_peephole2): Check for xmm16+, when converting scalar
> >         float_truncate.
> >         (define_peephole2): Check for xmm16+, when converting scalar
> >         float_extend.
> >         (*fop_<mode>_comm_mixed): Use "v" constraint.
> >         (*fop_<mode>_comm_sse): Ditto.
> >         (*fop_<mode>_1_mixed): Ditto.
> >         (*sqrt<mode>2_sse): Ditto.
> >         (*ieee_s<ieee_maxmin><mode>3): Ditto.
> 
> I wonder if there are also changes needed in mmx.md. There are a
> couple of patterns that operate on xmm registers, so they should be
> reviewed if they need to change their constraint to "v" to accept
> extended xmm register set.
>

Doesn't look like it. At first glance non-v stuff in mmx.md isn't even
avx enabled, so v is not relevant. Moreover we don't allow mmx modes
(v2sf etc.) in xmm16+ via  ix86_hard_regno_mode_ok.



More information about the Gcc-patches mailing list