------- 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