It's the Hitachi SH. AFAIK it doesn't have this instruction. Yes, it does. It is called shll. This shifts one bit left, and puts the high order bit (which is one iff X < 0) into the T reg. See the ashlsi_c pattern. I suspect the problem is that the ashlsi_c pattern uses match_operand when it should be using match_dup. See for instance the addc pattern. Jim