sh3-linux-gnu and sh3eb-linux-gnu:
Tests that now fail, but worked before (3 tests): gcc.target/sh/pr51244-11.c scan-assembler-not subc|and|bra gcc.target/sh/pr51244-11.c scan-assembler-times bf\t0f 1 gcc.target/sh/pr51244-11.c scan-assembler-times bt\t0f 1 Previously we'd match this pattern: (define_insn "*cset_zero" [(set (match_operand:SI 0 "arith_reg_dest" "=r") (if_then_else:SI (match_operand:SI 1 "cbranch_treg_value") (match_operand:SI 2 "arith_reg_operand" "0") (const_int 0)))] "TARGET_SH1 && TARGET_ZDCBRANCH" After your change we no longer try to do so. I really don't care about the SH port. But isn't this really a symptom of a larger problem. Namely that by not generating if-then-else you've hosed every target that implements conditional moves via if-then-else constructs? Jeff