Hi Guys, I am checking in the patch below to the mainline and 4.7 branch sources to fix a typo in the comparesi3_extend patterns in the rx.md file. Operand 0 is an input operand but it had an = modifier applied to it. This confused gcc's internals and resulted in several ICEs in the gcc testsuite.
Cheers Nick gcc/ChangeLog 2012-06-27 Nick Clifton <ni...@redhat.com> * config/rx/rx.md (comparesi3_extend): Remove = modifier from input operand. Index: gcc/config/rx/rx.md =================================================================== --- gcc/config/rx/rx.md (revision 189013) +++ gcc/config/rx/rx.md (working copy) @@ -1868,7 +1868,7 @@ (define_insn "comparesi3_<extend_types:code><small_int_modes:mode>" [(set (reg:CC CC_REG) - (compare:CC (match_operand:SI 0 "register_operand" "=r") + (compare:CC (match_operand:SI 0 "register_operand" "r") (extend_types:SI (match_operand:small_int_modes 1 "rx_restricted_mem_operand" "Q"))))] "(optimize < 3 || optimize_size)" "cmp\t%<extend_types:letter>1, %0"