(modsi3): Move test of exact_log2 into extra condition.
From-SVN: r6205
This commit is contained in:
parent
7df83bcec6
commit
8b4a434166
|
@ -765,18 +765,15 @@
|
|||
[(use (match_operand:SI 0 "gpc_reg_operand" ""))
|
||||
(use (match_operand:SI 1 "gpc_reg_operand" ""))
|
||||
(use (match_operand:SI 2 "const_int_operand" ""))]
|
||||
""
|
||||
"exact_log2 (INTVAL (operands[2])) >= 0"
|
||||
"
|
||||
{
|
||||
int i = exact_log2 (INTVAL (operands[2]));
|
||||
rtx temp1 = gen_reg_rtx (SImode);
|
||||
rtx temp2 = gen_reg_rtx (SImode);
|
||||
|
||||
if (i < 0)
|
||||
FAIL;
|
||||
|
||||
emit_insn (gen_divsi3 (temp1, operands[1], operands[2]));
|
||||
emit_insn (gen_ashlsi3 (temp2, temp1, GEN_INT (i)));
|
||||
emit_insn (gen_ashlsi3 (temp2, temp1,
|
||||
GEN_INT (exact_log2 (INTVAL (operands[2])))));
|
||||
emit_insn (gen_subsi3 (operands[0], operands[1], temp2));
|
||||
DONE;
|
||||
|
||||
|
|
Loading…
Reference in New Issue