aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2014-04-23 15:30:53 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2014-04-23 15:30:53 +0000
commit18b42b2a9c7b632653801344329076b934861930 (patch)
tree256099ed6ac5a6955aed6518a80ba1e475e38ba2 /gcc
parentea1e916837085fa51565e55a57c8c2f9dfaab9ce (diff)
downloadgcc-18b42b2a9c7b632653801344329076b934861930.zip
gcc-18b42b2a9c7b632653801344329076b934861930.tar.gz
gcc-18b42b2a9c7b632653801344329076b934861930.tar.bz2
[AArch64] Add handling of bswap operations in rtx costs
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP. From-SVN: r209706
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/aarch64/aarch64.c8
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e499b25..99f4b0d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+ * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
+
+2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
* config/arm/arm.md (arm_rev16si2): New pattern.
(arm_rev16si2_alt): Likewise.
* config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 68c29aa..277c087 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -4694,6 +4694,14 @@ aarch64_rtx_costs (rtx x, int code, int outer ATTRIBUTE_UNUSED,
return false;
+ case BSWAP:
+ *cost = COSTS_N_INSNS (1);
+
+ if (speed)
+ *cost += extra_cost->alu.rev;
+
+ return false;
+
case IOR:
if (aarch_rev16_p (x))
{