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