aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2015-04-30 13:30:49 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2015-04-30 13:30:49 +0000
commit2533c820b3622de5982a3e079763395c5bef38c4 (patch)
tree1e8ac07151dafb58df4db3cad5d31014b1acb7f1
parent577cd070845fb8facf0a451aafe1e444b9374b08 (diff)
downloadgcc-2533c820b3622de5982a3e079763395c5bef38c4.zip
gcc-2533c820b3622de5982a3e079763395c5bef38c4.tar.gz
gcc-2533c820b3622de5982a3e079763395c5bef38c4.tar.bz2
[AArch64] Use extend_arith rtx cost appropriately
* config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith rather than arith_shift cost when costing ADD/MINUS of an extended value. From-SVN: r222623
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/aarch64/aarch64.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 734058e..263f6ac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
+ rather than arith_shift cost when costing ADD/MINUS of an
+ extended value.
+
2015-04-30 Jan Hubicka <hubicka@ucw.cz>
PR lto/65948
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index b8a91dc..df76267a3 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -5819,7 +5819,7 @@ cost_minus:
if (aarch64_rtx_arith_op_extract_p (op1, mode))
{
if (speed)
- *cost += extra_cost->alu.arith_shift;
+ *cost += extra_cost->alu.extend_arith;
*cost += rtx_cost (XEXP (XEXP (op1, 0), 0),
(enum rtx_code) GET_CODE (op1),
@@ -5888,7 +5888,7 @@ cost_plus:
if (aarch64_rtx_arith_op_extract_p (op0, mode))
{
if (speed)
- *cost += extra_cost->alu.arith_shift;
+ *cost += extra_cost->alu.extend_arith;
*cost += rtx_cost (XEXP (XEXP (op0, 0), 0),
(enum rtx_code) GET_CODE (op0),