On Thu, Mar 19, 2015 at 10:24 AM, Ilya Tocar <tocarip.in...@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.to...@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.

Uros.

Reply via email to