------- Comment #3 from pinskia at gcc dot gnu dot org 2006-07-08 04:56 ------- We have before reload: (insn 45 44 46 3 (set (reg:V4HI 131 [ D.1754 ]) (const_vector:V4HI [ (const_int 0 [0x0]) (const_int 0 [0x0]) (const_int 0 [0x0]) (const_int 0 [0x0]) ])) 933 {*movv4hi_internal} (nil) (nil))
Which then gets turned into: (insn 73 44 45 3 (set (reg:SI 10 10) (high:SI (symbol_ref/u:SI ("*.LC0") [flags 0x2]))) 319 {elf_high} (nil) (nil)) (insn 45 73 74 3 (set (reg:V4HI 0 0 [orig:131 D.1754 ] [131]) (mem/u/c/i:V4HI (lo_sum:SI (reg:SI 10 10) (symbol_ref/u:SI ("*.LC0") [flags 0x2])) [0 S8 A64])) 933 {*movv4hi_internal} (nil) (nil)) Which is normally fine except for the fact V4HI memory only accepts reg+reg and not reg+imm. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27566