------- Comment #2 from rguenth at gcc dot gnu dot org 2010-07-07 11:22 ------- The addition by 10 appears during postreload, where we substitute
(insn 24 35 65 4 t.i:9 (set (reg:QI 9 r9 [orig:44 prephitmp.3 ] [44]) (const_int 58 [0x3a])) 45 {movqi} (expr_list:REG_EQUAL (const_int 58 [0x3a]) (nil))) for (insn 24 35 65 4 t.i:9 (set (reg:QI 9 r9 [orig:44 prephitmp.3 ] [44]) (plus:QI (reg:QI 9 r9 [orig:44 prephitmp.3 ] [44]) (const_int 10 [0xa]))) 77 {*addqi3_non_v32} (expr_list:REG_EQUAL (const_int 58 [0x3a]) (nil))) in (insn 69 34 35 4 t.i:8 (set (reg:QI 9 r9) (const_int 48 [0x30])) 45 {movqi} (nil)) (insn 35 69 24 4 t.i:8 (set (mem:QI (plus:SI (reg/v/f:SI 10 r10 [orig:47 s ] [47]) (const_int -1 [0xffffffffffffffff])) [0 MEM[(char *)s_22 + 4294967295B]+0 S1 A8]) (reg:QI 9 r9)) 45 {movqi} (nil)) (insn 24 35 65 4 t.i:9 (set (reg:QI 9 r9 [orig:44 prephitmp.3 ] [44]) (const_int 58 [0x3a])) 45 {movqi} (expr_list:REG_EQUAL (const_int 58 [0x3a]) (nil))) which by itself doesn't look wrong. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44852