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

pinskia at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Nov 5 03:09:00 GMT 2007



------- 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 ])
        (subreg:SI (reg:SF 123) 0)) -1 (nil))
I could not get the (subreg:SI (reg:SF 123) 0) propgated into
 (insn 11 10 16 3 t1.c:11 (set (mem:SI (reg/v/f:DI 121 [ b ]) [3 S4 A32])
        (reg/v:SI 119 [ c ])) -1 (nil))

I have not figured out why yet.  Once that is done, we can have simplify_set in
combine change the modes of the mem.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33989



More information about the Gcc-bugs mailing list