This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/64204] New: gcc.dg/c11-atomic-2.c fails on powerpc 64-bit little endian after -mupper-regs patches went in
- From: "meissner at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 05 Dec 2014 21:31:39 +0000
- Subject: [Bug target/64204] New: gcc.dg/c11-atomic-2.c fails on powerpc 64-bit little endian after -mupper-regs patches went in
- Auto-submitted: auto-generated
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.