https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68973

--- Comment #21 from Alan Modra <amodra at gcc dot gnu.org> ---
Author: amodra
Date: Thu Mar 31 06:24:40 2016
New Revision: 234608

URL: https://gcc.gnu.org/viewcvs?rev=234608&root=gcc&view=rev
Log:
[RS6000] reload_vsx_from_gprsf splitter

This is PR68973 part 2, caused by the reload_vsx_from_gprsf splitter
emitting an invalid move.  Part 1 deferred for branch until it is
proven that the reload change is necessary.

        Backport from mainline
        2016-02-16  Alan Modra  <amo...@gmail.com>
        PR target/68973
        * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
        (p8_mtvsrd_df, p8_mtvsrd_sf): New.
        (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
        (p8_mtvsrwz): New.
        (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
        (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
        (p8_fmrgow_<mode>): Likewise.
        (reload_vsx_from_gpr<mode>): Adjust for above.  Use "wa" for
        clobber constraint.
        (reload_fpr_from_gpr<mode>): Adjust for above.  Use "d" for
        op0 constraint.
        (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
        to use movdi_internal64.  Remove op0_di.
        * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.

Modified:
    branches/gcc-5-branch/gcc/ChangeLog
    branches/gcc-5-branch/gcc/config/rs6000/rs6000.md
    branches/gcc-5-branch/gcc/config/rs6000/vsx.md

Reply via email to