http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33989
--- Comment #15 from Scott Mansell 2010-11-12
04:04:25 UTC ---
Weirdly, it works fine with doubles.
Testcase:
union a
{
long int i;
double f;
};
void d(double *a, long int *b, double e)
{
union a c;
c.f = *a + e;
*b = c.i;
}
Results
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33989
--- Comment #14 from Scott Mansell 2010-11-12
03:15:21 UTC ---
I downloaded and compiled the 2010-11-6 snapshot of gcc 4.6.
I'm still getting the extra load/store in ppc with -O3.
.L.f:
lfs 0,0(3)
fadds 0,1,0
stfs 0,-16(1)
lwz 0,
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33989
Richard Guenther changed:
What|Removed |Added
Known to fail||
--- Comment #13 from Richard Guenther
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33989
Scott Mansell changed:
What|Removed |Added
CC||phiren at gmail dot com
--- Comment #12 f
--- Comment #11 from pinskia at gcc dot gnu dot org 2010-03-08 17:16
---
No longer working on this one, I lost the patches when I left sony.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
---
--- Comment #10 from pinskia at gcc dot gnu dot org 2008-12-29 04:18
---
(In reply to comment #9)
> Can we fix this at expansion time? Thus, move the VIEW_CONVERT_EXPR from the
> rhs to the lhs? This might be a target dependent optimization.
Yes but then we have to fix fwprop to forw
--- Comment #9 from rguenth at gcc dot gnu dot org 2008-03-14 19:37 ---
Can we fix this at expansion time? Thus, move the VIEW_CONVERT_EXPR from the
rhs to the lhs? This might be a target dependent optimization.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33989
--- Comment #8 from pinskia at gcc dot gnu dot org 2008-03-14 19:14 ---
We do get:
*b = VIEW_CONVERT_EXPR(*a + e);
Now, if produced:
VIEW_CONVERT_EXPR(*b) = *a + e;
We might produce better code as SImode is not able to held in FPRs.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?
--- Comment #7 from pinskia at gcc dot gnu dot org 2008-03-14 19:12 ---
PPC still gets bad code:
_f:
lfs f0,0(r3)
fadds f0,f1,f0
stfs f0,-8(r1)
lwz r0,-8(r1)
stw r0,0(r4)
blr
--
pinskia at gcc dot gnu dot org changed:
What
--- Comment #6 from pinskia at gcc dot gnu dot org 2008-03-14 17:34 ---
> *b = VIEW_CONVERT_EXPR(*a + e);
I don't think this is fully fixed for PPC, I will check later today to be sure.
-- Pinski
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33989
--- Comment #5 from rguenth at gcc dot gnu dot org 2008-03-14 16:16 ---
Fixed.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
Status|NEW
--- Comment #4 from rguenth at gcc dot gnu dot org 2008-03-14 14:52 ---
Subject: Bug 33989
Author: rguenth
Date: Fri Mar 14 14:52:07 2008
New Revision: 133218
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133218
Log:
2008-03-14 Richard Guenther <[EMAIL PROTECTED]>
PR
--- Comment #3 from rguenth at gcc dot gnu dot org 2008-02-28 16:47 ---
With the patch proposed for PR34043 we get
f:
.LFB2:
addss (%rdi), %xmm0
movd%xmm0, (%rsi)
ret
instead of
f:
.LFB2:
addss (%rdi), %xmm0
movss %xmm0, -4(%rsp)
--- Comment #2 from rguenth at gcc dot gnu dot org 2008-01-02 14:14 ---
Confirmed.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
CC|
--- Comment #1 from pinskia at gcc dot gnu dot org 2007-11-05 03:09 ---
So if I have emit_move_insn not to produce:
(insn 10 9 11 3 t1.c:10 (set (subreg:SF (reg/v:SI 119 [ c ]) 0)
(reg:SF 123)) -1 (nil))
but instead:
(insn 10 9 11 3 t1.c:10 (set (reg/v:SI 119 [ c ])
(subr
15 matches
Mail list logo