This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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.

Uros.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]