Commit 6a9ee02f by Kyrylo Tkachov Committed by Kyrylo Tkachov

[ARM] Fix costing of vmul+vcvt combine pattern

	* config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
	combine_vcvtf2i pattern.

From-SVN: r230116
parent aad146c3
2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
combine_vcvtf2i pattern.
2015-11-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c (neon_valid_immediate): Remove integer
CONST_DOUBLE handling. It should never occur.
......@@ -11049,6 +11049,23 @@ arm_new_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer_code,
case UNSIGNED_FIX:
if (TARGET_HARD_FLOAT)
{
/* The *combine_vcvtf2i reduces a vmul+vcvt into
a vcvt fixed-point conversion. */
if (code == FIX && mode == SImode
&& GET_CODE (XEXP (x, 0)) == FIX
&& GET_MODE (XEXP (x, 0)) == SFmode
&& GET_CODE (XEXP (XEXP (x, 0), 0)) == MULT
&& vfp3_const_double_for_bits (XEXP (XEXP (XEXP (x, 0), 0), 1))
> 0)
{
if (speed_p)
*cost += extra_cost->fp[0].toint;
*cost += rtx_cost (XEXP (XEXP (XEXP (x, 0), 0), 0), mode,
code, 0, speed_p);
return true;
}
if (GET_MODE_CLASS (mode) == MODE_INT)
{
mode = GET_MODE (XEXP (x, 0));
......
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