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

--- Comment #10 from Alan Modra <amodra at gcc dot gnu.org> ---
Author: amodra
Date: Sat Jan 14 13:24:46 2017
New Revision: 244465

URL: https://gcc.gnu.org/viewcvs?rev=244465&root=gcc&view=rev
Log:
Avoid PR72749 by not using unspecs

Rather than using unspecs in doloop insns to stop combine creating
these insns, use legitimate_combined_insn.

        PR target/72749
        * combine.c (recog_for_combine_1): Set INSN_CODE before calling
        target legitimate_combined_insn.
        * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
        (rs6000_legitimate_combined_insn): New function.
        * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
        all uses.
        (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
        (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
        (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/combine.c
    trunk/gcc/config/rs6000/rs6000.c
    trunk/gcc/config/rs6000/rs6000.md

Reply via email to