This is the mail archive of the gcc-bugs@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]

[Bug target/68973] [6 regression] Internal compiler error on power for gcc/testsuite/g++.dg/pr67211.C


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

--- Comment #19 from Alan Modra <amodra at gcc dot gnu.org> ---
Author: amodra
Date: Mon Feb 15 23:29:17 2016
New Revision: 233438

URL: https://gcc.gnu.org/viewcvs?rev=233438&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.  The patch also fixes uses of TFmode, which
cannot now be assumed to be IBM double-double.

        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>): Make clobber IF.  Adjust for above
        changes.
        (reload_fpr_from_gpr<mode>): Similarly. 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:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/rs6000.md
    trunk/gcc/config/rs6000/vsx.md

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