https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42588
Andrew Pinski changed:
What|Removed |Added
Target Milestone|--- |4.9.0
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42588
Bug 42588 depends on bug 33989, which changed state.
Bug 33989 Summary: Extra load/store for float with union
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33989
What|Removed |Added
--
--- Comment #3 from pinskia at gcc dot gnu dot org 2010-01-03 06:51 ---
This is related to PR 33989.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42588
--- Comment #2 from pinskia at gcc dot gnu dot org 2010-01-03 06:49 ---
Here is an example which shows the issue on PPC also:
union __anonunion___u_19
{
double __d;
int __i[2];
};
extern int __signbit (double *__x)
{
union __anonunion___u_19 __u;
{
__u.__d = *__x;
re
--- Comment #1 from pinskia at gcc dot gnu dot org 2010-01-03 06:46 ---
;; __u.__d = __x_1(D);
(insn 6 5 0 t.c:15 (set (subreg:DF (reg/v:DI 60 [ __u ]) 0)
(reg/v:DF 62 [ __x ])) -1 (nil))
That causes a reload to happen:
Reload 0: reload_out (DF) = (subreg:DF (reg/v:DI 60 [ __u