From 8b4a434166512309c0ad08af2dc70bc0e18eed74 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 11 Dec 1993 07:05:02 -0500 Subject: [PATCH] (modsi3): Move test of exact_log2 into extra condition. From-SVN: r6205 --- gcc/config/rs6000/rs6000.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index a36623a9ba7..bb719a5d376 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; -- 2.30.2