------- Comment #3 from ubizjak at gmail dot com 2007-02-26 19:51 -------
(In reply to comment #2)
> Shouldn't rtl invariant motion catch this?
It would be nice, but the problem is again in the fact that we lie to the
compiler about supported instructions. This one is not a valid x86 insn:
(insn 12 8 13 2 (set (mem:V4SI (symbol_ref:DI ("b") <var_decl 0x2aaaae15b000
b>) [3 S16 A128])
(const_vector:V4SI [
(const_int 0 [0x0])
(const_int 0 [0x0])
(const_int 0 [0x0])
(const_int 0 [0x0])
])) 919 {*movv4si_internal} (nil)
(nil))
This sequence is later split into pxor+store, unfortunatelly a bit late in the
game, after RTL optimizers have already done their job.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30970