aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2015-02-04 13:53:56 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2015-02-04 13:53:56 +0000
commita1ac80507d37425ef84fa68431bb2c63d6b27fef (patch)
tree7041efec9b37a932620bd30c24cd98a0ca8d8fbe /gcc
parentcb5c6c29bd43d21f7ab86d53605bc728c5fb5374 (diff)
downloadgcc-a1ac80507d37425ef84fa68431bb2c63d6b27fef.zip
gcc-a1ac80507d37425ef84fa68431bb2c63d6b27fef.tar.gz
gcc-a1ac80507d37425ef84fa68431bb2c63d6b27fef.tar.bz2
[AArch64] Use std::swap instead of manually swapping in aarch64-ldpstp.md
* config/aarch64/aarch64-ldpstp.md: Use std::swap instead of manual swaps in all peepholes. From-SVN: r220403
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64-ldpstp.md168
2 files changed, 53 insertions, 120 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 165f521..d63c59c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+ * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
+ manual swaps in all peepholes.
+
+2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
* config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
of manual swapping implementation.
(aarch64_expand_vec_perm_const_1): Likewise.
diff --git a/gcc/config/aarch64/aarch64-ldpstp.md b/gcc/config/aarch64/aarch64-ldpstp.md
index af8d50e..8d6d882 100644
--- a/gcc/config/aarch64/aarch64-ldpstp.md
+++ b/gcc/config/aarch64/aarch64-ldpstp.md
@@ -27,18 +27,14 @@
[(parallel [(set (match_dup 0) (match_dup 1))
(set (match_dup 2) (match_dup 3))])]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[1], &base, &offset_1);
extract_base_offset_in_addr (operands[3], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[2];
- operands[2] = tmp;
- tmp = operands[1];
- operands[1] = operands[3];
- operands[3] = tmp;
+ std::swap (operands[0], operands[2]);
+ std::swap (operands[1], operands[3]);
}
})
@@ -51,18 +47,14 @@
[(parallel [(set (match_dup 0) (match_dup 1))
(set (match_dup 2) (match_dup 3))])]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[0], &base, &offset_1);
extract_base_offset_in_addr (operands[2], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[2];
- operands[2] = tmp;
- tmp = operands[1];
- operands[1] = operands[3];
- operands[3] = tmp;
+ std::swap (operands[0], operands[2]);
+ std::swap (operands[1], operands[3]);
}
})
@@ -75,18 +67,14 @@
[(parallel [(set (match_dup 0) (match_dup 1))
(set (match_dup 2) (match_dup 3))])]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[1], &base, &offset_1);
extract_base_offset_in_addr (operands[3], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[2];
- operands[2] = tmp;
- tmp = operands[1];
- operands[1] = operands[3];
- operands[3] = tmp;
+ std::swap (operands[0], operands[2]);
+ std::swap (operands[1], operands[3]);
}
})
@@ -99,18 +87,14 @@
[(parallel [(set (match_dup 0) (match_dup 1))
(set (match_dup 2) (match_dup 3))])]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[0], &base, &offset_1);
extract_base_offset_in_addr (operands[2], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[2];
- operands[2] = tmp;
- tmp = operands[1];
- operands[1] = operands[3];
- operands[3] = tmp;
+ std::swap (operands[0], operands[2]);
+ std::swap (operands[1], operands[3]);
}
})
@@ -125,18 +109,14 @@
[(parallel [(set (match_dup 0) (sign_extend:DI (match_dup 1)))
(set (match_dup 2) (sign_extend:DI (match_dup 3)))])]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[1], &base, &offset_1);
extract_base_offset_in_addr (operands[3], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[2];
- operands[2] = tmp;
- tmp = operands[1];
- operands[1] = operands[3];
- operands[3] = tmp;
+ std::swap (operands[0], operands[2]);
+ std::swap (operands[1], operands[3]);
}
})
@@ -149,18 +129,14 @@
[(parallel [(set (match_dup 0) (zero_extend:DI (match_dup 1)))
(set (match_dup 2) (zero_extend:DI (match_dup 3)))])]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[1], &base, &offset_1);
extract_base_offset_in_addr (operands[3], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[2];
- operands[2] = tmp;
- tmp = operands[1];
- operands[1] = operands[3];
- operands[3] = tmp;
+ std::swap (operands[0], operands[2]);
+ std::swap (operands[1], operands[3]);
}
})
@@ -183,24 +159,16 @@
"aarch64_operands_adjust_ok_for_ldpstp (operands, true, <MODE>mode)"
[(const_int 0)]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[1], &base, &offset_1);
extract_base_offset_in_addr (operands[3], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[6];
- operands[6] = tmp;
- tmp = operands[1];
- operands[1] = operands[7];
- operands[7] = tmp;
- tmp = operands[2];
- operands[2] = operands[4];
- operands[4] = tmp;
- tmp = operands[3];
- operands[3] = operands[5];
- operands[5] = tmp;
+ std::swap (operands[0], operands[6]);
+ std::swap (operands[1], operands[7]);
+ std::swap (operands[2], operands[4]);
+ std::swap (operands[3], operands[5]);
}
if (aarch64_gen_adjusted_ldpstp (operands, true, <MODE>mode, UNKNOWN))
@@ -223,24 +191,16 @@
"aarch64_operands_adjust_ok_for_ldpstp (operands, true, <MODE>mode)"
[(const_int 0)]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[1], &base, &offset_1);
extract_base_offset_in_addr (operands[3], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[6];
- operands[6] = tmp;
- tmp = operands[1];
- operands[1] = operands[7];
- operands[7] = tmp;
- tmp = operands[2];
- operands[2] = operands[4];
- operands[4] = tmp;
- tmp = operands[3];
- operands[3] = operands[5];
- operands[5] = tmp;
+ std::swap (operands[0], operands[6]);
+ std::swap (operands[1], operands[7]);
+ std::swap (operands[2], operands[4]);
+ std::swap (operands[3], operands[5]);
}
if (aarch64_gen_adjusted_ldpstp (operands, true, <MODE>mode, UNKNOWN))
@@ -263,24 +223,16 @@
"aarch64_operands_adjust_ok_for_ldpstp (operands, true, SImode)"
[(const_int 0)]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[1], &base, &offset_1);
extract_base_offset_in_addr (operands[3], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[6];
- operands[6] = tmp;
- tmp = operands[1];
- operands[1] = operands[7];
- operands[7] = tmp;
- tmp = operands[2];
- operands[2] = operands[4];
- operands[4] = tmp;
- tmp = operands[3];
- operands[3] = operands[5];
- operands[5] = tmp;
+ std::swap (operands[0], operands[6]);
+ std::swap (operands[1], operands[7]);
+ std::swap (operands[2], operands[4]);
+ std::swap (operands[3], operands[5]);
}
if (aarch64_gen_adjusted_ldpstp (operands, true, SImode, SIGN_EXTEND))
@@ -303,24 +255,16 @@
"aarch64_operands_adjust_ok_for_ldpstp (operands, true, SImode)"
[(const_int 0)]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[1], &base, &offset_1);
extract_base_offset_in_addr (operands[3], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[6];
- operands[6] = tmp;
- tmp = operands[1];
- operands[1] = operands[7];
- operands[7] = tmp;
- tmp = operands[2];
- operands[2] = operands[4];
- operands[4] = tmp;
- tmp = operands[3];
- operands[3] = operands[5];
- operands[5] = tmp;
+ std::swap (operands[0], operands[6]);
+ std::swap (operands[1], operands[7]);
+ std::swap (operands[2], operands[4]);
+ std::swap (operands[3], operands[5]);
}
if (aarch64_gen_adjusted_ldpstp (operands, true, SImode, ZERO_EXTEND))
@@ -343,24 +287,16 @@
"aarch64_operands_adjust_ok_for_ldpstp (operands, false, <MODE>mode)"
[(const_int 0)]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[0], &base, &offset_1);
extract_base_offset_in_addr (operands[2], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[6];
- operands[6] = tmp;
- tmp = operands[1];
- operands[1] = operands[7];
- operands[7] = tmp;
- tmp = operands[2];
- operands[2] = operands[4];
- operands[4] = tmp;
- tmp = operands[3];
- operands[3] = operands[5];
- operands[5] = tmp;
+ std::swap (operands[0], operands[6]);
+ std::swap (operands[1], operands[7]);
+ std::swap (operands[2], operands[4]);
+ std::swap (operands[3], operands[5]);
}
if (aarch64_gen_adjusted_ldpstp (operands, false, <MODE>mode, UNKNOWN))
@@ -383,24 +319,16 @@
"aarch64_operands_adjust_ok_for_ldpstp (operands, false, <MODE>mode)"
[(const_int 0)]
{
- rtx base, offset_1, offset_2, tmp;
+ rtx base, offset_1, offset_2;
extract_base_offset_in_addr (operands[0], &base, &offset_1);
extract_base_offset_in_addr (operands[2], &base, &offset_2);
if (INTVAL (offset_1) > INTVAL (offset_2))
{
- tmp = operands[0];
- operands[0] = operands[6];
- operands[6] = tmp;
- tmp = operands[1];
- operands[1] = operands[7];
- operands[7] = tmp;
- tmp = operands[2];
- operands[2] = operands[4];
- operands[4] = tmp;
- tmp = operands[3];
- operands[3] = operands[5];
- operands[5] = tmp;
+ std::swap (operands[0], operands[6]);
+ std::swap (operands[1], operands[7]);
+ std::swap (operands[2], operands[4]);
+ std::swap (operands[3], operands[5]);
}
if (aarch64_gen_adjusted_ldpstp (operands, false, <MODE>mode, UNKNOWN))