[Bug target/81550] [8 regression] gcc.target/powerpc/loop_align.c fails starting with r250482
meissner at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jan 23 20:06:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81550
--- Comment #3 from Michael Meissner <meissner at gcc dot gnu.org> ---
It isn't actually subversion id 250482 that causes the problem. I've built
250481 and 250483 compilers and there is no difference in code. I had 252844,
and it shows the problem.
The difference between the two is 250481 generates code that allows PRE_INC,
PRE_DEC, and PRE_MODIFY on DFmode values for power7.
Now, in theory it should not allow PRE_* on DFmode, since power7 supports
DFmode in both traditional FPR registers and altivec registers. The
traditional FPR loads and store support PRE_* forms of the instruction, but the
VSX loads used for the Altivec registers don't support PRE_* (the original form
of the instructions supported it, but it was removed the hardware shipped).
The debug code (-mdebug=reg) shows that in theory the PRE_* support was turned
off, but somewhere it getting turned back on and the lfdu is generated.
If you compile the code with -mno-update, it generates the same code.
More information about the Gcc-bugs
mailing list