On 18/04/16 19:25, Claudiu Zissulescu wrote:
Forgot to add the reload cases. Here it is the updated patch.

//Claudiu


gcc/
2016-04-18  Claudiu Zissulescu  <claz...@synopsys.com>

        * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
        register_operand.
        (umulsidi3): Likewise.
        (indirect_jump): Fix jump instruction assembly patterns.
        (arcset<code>): Change operand 1 predicate to nonmemory_operand.
        (arcsetltu, arcsetgeu): Likewise.
ChangeLog omission: You are also adding an r/n/r alternative.
        (arcsethi, arcsetls): Fix pattern.
Otherwise this is OK.

If the constant / register comparisons come from an expander, in
general the expander should be fixed to swap the operands and
use the swapped comparison code, to get canonical rtl.
OTOH, constant re-materialization during register allocation can change a reg-reg into a constant-reg comparison, and at that stage, canonicalization would not be expected.

Reply via email to