Commit b49e978e by Richard Kenner

(RTX_COST, case MULT): Handle s8addx and s4addx.

(RTX_COST, case MULT): Correctly assign cost to multiplies by a power of two.
(RTX_COST, case ASHIFT, ASHIFTRT, LSHIFTRT, IF_THEN_ELSE): New cases.

From-SVN: r3710
parent e14fa9c4
......@@ -1290,12 +1290,26 @@ extern char *current_function_name;
case MINUS: \
if (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \
return COSTS_N_INSNS (6); \
else if (GET_CODE (XEXP (X, 0)) == MULT \
&& const48_operand (XEXP (XEXP (X, 0), 1), VOIDmode)) \
return 2 + rtx_cost (XEXP (XEXP (X, 0), 0)) + rtx_cost (XEXP (X, 1)); \
break; \
case MULT: \
if (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \
return COSTS_N_INSNS (6); \
else \
else if (GET_CODE (XEXP (X, 1)) != CONST_INT \
|| exact_log2 (INTVAL (XEXP (X, 1))) < 0) \
return COSTS_N_INSNS (21); \
else if (const48_operand (XEXP (X, 1), VOIDmode)) \
break; \
return COSTS_N_INSNS (2); \
case ASHIFT: \
if (GET_CODE (XEXP (X, 1)) == CONST_INT \
&& INTVAL (XEXP (X, 1)) <= 3) \
break; \
/* ... fall through ... */ \
case ASHIFTRT: case LSHIFTRT: case IF_THEN_ELSE: \
return COSTS_N_INSNS (2); \
case DIV: \
case UDIV: \
case MOD: \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment