https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64204
Bug ID: 64204 Summary: gcc.dg/c11-atomic-2.c fails on powerpc 64-bit little endian after -mupper-regs patches went in Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: meissner at gcc dot gnu.org Host: powerpc64le-unknown-linux-gnu Target: powerpc64le-unknown-linux-gnu Build: powerpc64le-unknown-linux-gnu The test gcc.dg/c11-atomic-2.c fails on powerpc 64-bit little endian when it is compiled without optimization and the target compiler was configured with --with-cpu=power8. If you optimize the code, it works, and if you compile it with the -mno-upper-regs-df option. The core problem is that an old optimization for Darwin which converts loading up TFmode constants at RTL generation breaks when DFmode registers can go in Altivec registers. While looking at the code, I noticed that we weren't optimizing setting the TFmode to 0.0L on VSX systems, and added support for that as well.