This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, committed] rs6000 std::swap
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 3 Dec 2014 21:19:30 -0500
- Subject: [PATCH, committed] rs6000 std::swap
- Authentication-results: sourceware.org; auth=none
This patch updates rs6000.md and rs6000.c to use std::swap instead of
open coding.
Bootstrapped on powerpc-linux.
Thanks, David
* config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
(floatunssidf2_internal): Same.
* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
(rs6000_emit_int_cmove): Same.
(rs6000_sched_reorder): Same.
(altivec_expand_vec_perm_const): Same.
(rs6000_expand_vec_perm_const_1): Same.
Index: rs6000.c
===================================================================
--- rs6000.c (revision 218338)
+++ rs6000.c (working copy)
@@ -19796,12 +19796,7 @@ rs6000_emit_vector_compare (enum rtx_code rcode,
if (try_again)
{
if (swap_operands)
- {
- rtx tmp;
- tmp = op0;
- op0 = op1;
- op1 = tmp;
- }
+ std::swap (op0, op1);
mask = rs6000_emit_vector_compare_inner (rcode, op0, op1);
if (mask)
@@ -20114,9 +20109,7 @@ rs6000_emit_int_cmove (rtx dest, rtx op, rtx true_
default:
/* We need to swap the sense of the comparison. */
{
- rtx t = true_cond;
- true_cond = false_cond;
- false_cond = t;
+ std::swap (false_cond, true_cond);
PUT_CODE (condition_rtx, reverse_condition (cond_code));
}
break;
@@ -27496,11 +27489,7 @@ rs6000_sched_reorder (FILE *dump ATTRIBUTE_UNUSED,
if (is_nonpipeline_insn (ready[n_ready - 1])
&& (recog_memoized (ready[n_ready - 2]) > 0))
/* Simply swap first two insns. */
- {
- rtx_insn *tmp = ready[n_ready - 1];
- ready[n_ready - 1] = ready[n_ready - 2];
- ready[n_ready - 2] = tmp;
- }
+ std::swap (ready[n_ready - 1], ready[n_ready - 2]);
}
if (rs6000_cpu == PROCESSOR_POWER6)
@@ -31305,7 +31294,7 @@ altivec_expand_vec_perm_const (rtx operands[4])
(or swapped back) to ensure proper right-to-left numbering
from 0 to 2N-1. */
if (swapped ^ !BYTES_BIG_ENDIAN)
- x = op0, op0 = op1, op1 = x;
+ std::swap (op0, op1);
if (imode != V16QImode)
{
op0 = gen_lowpart (imode, op0);
@@ -31361,7 +31350,7 @@ rs6000_expand_vec_perm_const_1 (rtx target, rtx op
return false;
perm0 -= 2;
perm1 += 2;
- x = op0, op0 = op1, op1 = x;
+ std::swap (op0, op1);
}
/* If the second selector does not come from the second operand, fail. */
else if ((perm1 & 2) == 0)
Index: rs6000.md
===================================================================
--- rs6000.md (revision 218315)
+++ rs6000.md (working copy)
@@ -5546,10 +5546,7 @@
highword = adjust_address (operands[4], SImode, 0);
lowword = adjust_address (operands[4], SImode, 4);
if (! WORDS_BIG_ENDIAN)
- {
- rtx tmp;
- tmp = highword; highword = lowword; lowword = tmp;
- }
+ std::swap (lowword, highword);
emit_insn (gen_xorsi3 (operands[6], operands[1],
GEN_INT (~ (HOST_WIDE_INT) 0x7fffffff)));
@@ -5657,10 +5654,7 @@
highword = adjust_address (operands[4], SImode, 0);
lowword = adjust_address (operands[4], SImode, 4);
if (! WORDS_BIG_ENDIAN)
- {
- rtx tmp;
- tmp = highword; highword = lowword; lowword = tmp;
- }
+ std::swap (lowword, highword);
emit_move_insn (lowword, operands[1]);
emit_move_insn (highword, operands[2]);