MULT inside MINUS as either argument. Use rs6000_cost->dmul -
rs6000_cost->fp not 0 as adjustment for outer NEG.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120442
138bc75d-0d04-0410-961f-
82ee72b054a4
+2007-01-04 Joseph Myers <joseph@codesourcery.com>
+
+ * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
+ MULT inside MINUS as either argument. Use rs6000_cost->dmul -
+ rs6000_cost->fp not 0 as adjustment for outer NEG.
+
2007-01-04 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_release_function_body): New function.
2007-01-04 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_release_function_body): New function.
case MINUS:
if (mode == DFmode)
{
case MINUS:
if (mode == DFmode)
{
- if (GET_CODE (XEXP (x, 0)) == MULT)
+ if (GET_CODE (XEXP (x, 0)) == MULT
+ || GET_CODE (XEXP (x, 1)) == MULT)
{
/* FNMA accounted in outer NEG. */
if (outer_code == NEG)
{
/* FNMA accounted in outer NEG. */
if (outer_code == NEG)
+ *total = rs6000_cost->dmul - rs6000_cost->fp;
else
*total = rs6000_cost->dmul;
}
else
*total = rs6000_cost->dmul;
}