mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-21 12:30:09 +08:00
[AArch64][2/2] Add rtx cost function handling of clz, clrsb, rbit.
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ. (case UNSPEC): Handle UNSPEC_RBIT. From-SVN: r212913
This commit is contained in:
parent
dfc98d99b6
commit
781aeb73bc
@ -1,3 +1,8 @@
|
|||||||
|
2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
|
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
|
||||||
|
(case UNSPEC): Handle UNSPEC_RBIT.
|
||||||
|
|
||||||
2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
* config/aarch64/aarch64.md: Delete UNSPEC_CLS.
|
* config/aarch64/aarch64.md: Delete UNSPEC_CLS.
|
||||||
|
@ -5151,6 +5151,13 @@ aarch64_rtx_costs (rtx x, int code, int outer ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
case CLRSB:
|
||||||
|
case CLZ:
|
||||||
|
if (speed)
|
||||||
|
*cost += extra_cost->alu.clz;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
case COMPARE:
|
case COMPARE:
|
||||||
op0 = XEXP (x, 0);
|
op0 = XEXP (x, 0);
|
||||||
op1 = XEXP (x, 1);
|
op1 = XEXP (x, 1);
|
||||||
@ -5796,6 +5803,14 @@ cost_plus:
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (XINT (x, 1) == UNSPEC_RBIT)
|
||||||
|
{
|
||||||
|
if (speed)
|
||||||
|
*cost += extra_cost->alu.rev;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TRUNCATE:
|
case TRUNCATE:
|
||||||
|
Loading…
Reference in New Issue
Block a user