[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