mips.c (mips_rtx_costs): Fix cost estimate for nor (AND (NOT OP1) (NOT OP2)).
2013-10-22 Steve Ellcey <sellcey@mips.com> * config/mips/mips.c (mips_rtx_costs): Fix cost estimate for nor (AND (NOT OP1) (NOT OP2)). From-SVN: r203932
This commit is contained in:
parent
88f4509ce6
commit
ade97eb169
|
@ -1,3 +1,8 @@
|
|||
2013-10-22 Steve Ellcey <sellcey@mips.com>
|
||||
|
||||
* config/mips/mips.c (mips_rtx_costs): Fix cost estimate for nor
|
||||
(AND (NOT OP1) (NOT OP2)).
|
||||
|
||||
2013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com>
|
||||
|
||||
* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
|
||||
|
|
|
@ -3796,6 +3796,18 @@ mips_rtx_costs (rtx x, int code, int outer_code, int opno ATTRIBUTE_UNUSED,
|
|||
return true;
|
||||
}
|
||||
}
|
||||
/* (AND (NOT op0) (NOT op1) is a nor operation that can be done in
|
||||
a single instruction. */
|
||||
if (!TARGET_MIPS16
|
||||
&& GET_CODE (XEXP (x, 0)) == NOT
|
||||
&& GET_CODE (XEXP (x, 1)) == NOT)
|
||||
{
|
||||
cost = GET_MODE_SIZE (mode) > UNITS_PER_WORD ? 2 : 1;
|
||||
*total = (COSTS_N_INSNS (cost)
|
||||
+ set_src_cost (XEXP (XEXP (x, 0), 0), speed)
|
||||
+ set_src_cost (XEXP (XEXP (x, 1), 0), speed));
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Fall through. */
|
||||
|
||||
|
|
Loading…
Reference in New Issue