diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-12-11 07:05:02 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-12-11 07:05:02 -0500 |
commit | 8b4a434166512309c0ad08af2dc70bc0e18eed74 (patch) | |
tree | e56d10b6494193b6a8146fd5708720b437380d95 | |
parent | 7df83bcec6fa04b6de733a9a36c3038bc4de589a (diff) | |
download | gcc-8b4a434166512309c0ad08af2dc70bc0e18eed74.zip gcc-8b4a434166512309c0ad08af2dc70bc0e18eed74.tar.gz gcc-8b4a434166512309c0ad08af2dc70bc0e18eed74.tar.bz2 |
(modsi3): Move test of exact_log2 into extra condition.
From-SVN: r6205
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index a36623a..bb719a5 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -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; |