[Bug target/83629] [7/8 Regression] ICE: in decompose_normal_address, at rtlanal.c:6329 with -O2 -fPIC -frename-registers --param=sched-autopref-queue-depth=nnn

segher at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jan 10 15:13:00 GMT 2018


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

--- Comment #4 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Author: segher
Date: Wed Jan 10 15:13:07 2018
New Revision: 256432

URL: https://gcc.gnu.org/viewcvs?rev=256432&root=gcc&view=rev
Log:
rs6000: Wrap diff of immediates in const (PR83629)

In various of our 32-bit load_toc patterns we take the difference of
two immediates (labels) as a term to something bigger; but this isn't
canonical RTL, it needs to be wrapped in CONST.


        PR target/83629
        * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b,
        load_toc_v4_PIC_3c): Wrap const term in CONST RTL.

testsuite/
        PR target/83629
        * gcc.target/powerpc/pr83629.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.target/powerpc/pr83629.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/rs6000.md
    trunk/gcc/testsuite/ChangeLog


More information about the Gcc-bugs mailing list