See also PR 17626. This is another bug in the peephole2 patterns; constants aren't truncated/sign-extended when changing to a shorter mode. This causes ICEs like the following: x/gcc/testsuite/gcc.dg/cris-peep2-xsrand2.c: In function 'andwlsr': x/gcc/testsuite/gcc.dg/cris-peep2-xsrand2.c:16: error: unrecognizable insn: (insn 31 30 25 0 (set (reg:HI 10 r10) (and:HI (reg:HI 10 r10) (const_int 65399 [0xff77]))) -1 (nil) (nil)) x/gcc/testsuite/gcc.dg/cris-peep2-xsrand2.c:16: internal compiler error: in extract_insn, at recog.c:2034
-- Summary: Recent peephole2:s may cause internal compiler errors (2) Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: hp at gcc dot gnu dot org ReportedBy: hp at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: cris-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17984