Florent DEFAY <spira.inhabitant@xxxxxxxxx> writes: > (insn 8 7 9 toto.c:4 (set:HI (reg:HI 15) > (ashift:HI (reg:HI 15) > (const_int 1 [0x1]))) -1 (nil)) > > (insn 9 8 10 toto.c:4 (set:HI (reg:HI 15) > (ashift:HI (reg:HI 15) > (const_int 1 [0x1]))) -1 (nil)) > > (insn 10 9 11 toto.c:4 (set (reg:HI 16) > (reg:HI 15)) -1 (expr_list:REG_EQUAL (ashift:HI (reg:HI 15) > (const_int 2 [0x2])) > (nil))) I would look at your define_expand for ashifthi3. It loks like you are modifying the input register when doing a shift by a constant. Ian