------- Comment #15 from steven at gcc dot gnu dot org 2005-10-28 16:59 ------- The trouble appears to come from this:
case V16QImode: case V8HImode: case V4SFmode: case V4SImode: case V4HImode: case V2SFmode: case V2SImode: case V1DImode: if (CONSTANT_P (operands[1]) && !easy_vector_constant (operands[1], mode)) operands[1] = force_const_mem (mode, operands[1]); break; We get here with: Breakpoint 14, rs6000_emit_move (dest=0x4010e7f8, source=0x40110670, mode=V16QImode) at rs6000.c:3867 3867 if (CONSTANT_P (operands[1]) (gdb) p debug_rtx(dest) (reg:V16QI 77 0) $3 = void (gdb) p debug_rtx(source) (const_vector:V16QI [ (const_int 0 [0x0]) (const_int 5 [0x5]) (const_int 0 [0x0]) (const_int 5 [0x5]) (const_int 0 [0x0]) (const_int 5 [0x5]) (const_int 0 [0x0]) (const_int 5 [0x5]) (const_int 0 [0x0]) (const_int 5 [0x5]) (const_int 0 [0x0]) (const_int 5 [0x5]) (const_int 0 [0x0]) (const_int 5 [0x5]) (const_int 0 [0x0]) (const_int 5 [0x5]) ]) $4 = void (gdb) And we go to emit_set with: (gdb) p debug_rtx (operands[0]) (reg:V16QI 77 0) $5 = void (gdb) p debug_rtx (operands[1]) (mem/u/c/i:V16QI (symbol_ref/u:SI ("*.LC0") [flags 0x2]) [0 S16 A128]) $6 = void (gdb) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24230