[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