[Bug middle-end/33989] Extra load/store for float with union

2010-11-11 Thread phiren at gmail dot com
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

[Bug middle-end/33989] Extra load/store for float with union

2010-11-11 Thread phiren at gmail dot com
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,

[Bug middle-end/33989] Extra load/store for float with union

2010-11-11 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33989 Richard Guenther changed: What|Removed |Added Known to fail|| --- Comment #13 from Richard Guenther

[Bug middle-end/33989] Extra load/store for float with union

2010-11-11 Thread phiren at gmail dot com
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

[Bug middle-end/33989] Extra load/store for float with union

2010-03-08 Thread pinskia at gcc dot gnu dot org
--- 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 ---

[Bug middle-end/33989] Extra load/store for float with union

2008-12-28 Thread pinskia at gcc dot gnu dot org
--- 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

[Bug middle-end/33989] Extra load/store for float with union

2008-03-14 Thread rguenth at gcc dot gnu dot org
--- 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

[Bug middle-end/33989] Extra load/store for float with union

2008-03-14 Thread pinskia at gcc dot gnu dot org
--- 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?

[Bug middle-end/33989] Extra load/store for float with union

2008-03-14 Thread pinskia at gcc dot gnu dot org
--- 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

[Bug middle-end/33989] Extra load/store for float with union

2008-03-14 Thread pinskia at gcc dot gnu dot org
--- 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

[Bug middle-end/33989] Extra load/store for float with union

2008-03-14 Thread rguenth at gcc dot gnu dot org
--- 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

[Bug middle-end/33989] Extra load/store for float with union

2008-03-14 Thread rguenth at gcc dot gnu dot org
--- 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

[Bug middle-end/33989] Extra load/store for float with union

2008-02-28 Thread rguenth at gcc dot gnu dot org
--- 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)

[Bug middle-end/33989] Extra load/store for float with union

2008-01-02 Thread rguenth at gcc dot gnu dot org
--- 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|

[Bug middle-end/33989] Extra load/store for float with union

2007-11-04 Thread pinskia at gcc dot gnu dot org
--- 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