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

Reply via email to