Kelvin, This version shows a lot of improvement.
(cmprb): New expansion. (*cmprb): New insn. (*setb): New insn. (cmprb2): New expansion. (*cmprb2): New insn. (cmpeqb): New expansion. (*cmpeqb): New insn. The named and un-named patterns should have different names. Technically, the names don't have to be unique, but the precedent is for different names, often "foo" and "*foo_internal". Thanks, David