sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as destination register for bmasksi_vis.
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 28 May 2013 09:56:33 +0000 (09:56 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Tue, 28 May 2013 09:56:33 +0000 (09:56 +0000)
* config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
destination register for bmasksi_vis.
(vector_init_bshuffle): Likewise.
* config/sparc/sparc.md (vec_perm_constv8qi): Likewise.

From-SVN: r199370

gcc/ChangeLog
gcc/config/sparc/sparc.c
gcc/config/sparc/sparc.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sparc/bmaskbshuf.c

index 40ebbf3f83c5e6c4408b78f23b7ac3c23477e90d..cd218ab1591187096f72698effbcf002718431a6 100644 (file)
@@ -1,3 +1,10 @@
+2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
+       destination register for bmasksi_vis.
+       (vector_init_bshuffle): Likewise.
+       * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
+
 2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
 
        * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
index 1dc4e3600a8f437137a7b3a722eab3a37ffe5740..d473d6fdd7f70e03043f6c75e78338bef09f11b5 100644 (file)
@@ -11527,7 +11527,7 @@ sparc_expand_vec_perm_bmask (enum machine_mode vmode, rtx sel)
     }
 
   /* Always perform the final addition/merge within the bmask insn.  */
-  emit_insn (gen_bmasksi_vis (gen_reg_rtx (SImode), sel, t_1));
+  emit_insn (gen_bmasksi_vis (gen_rtx_REG (SImode, 0), sel, t_1));
 }
 
 /* Implement TARGET_FRAME_POINTER_REQUIRED.  */
@@ -11766,7 +11766,7 @@ static void
 vector_init_bshuffle (rtx target, rtx elt, enum machine_mode mode,
                      enum machine_mode inner_mode)
 {
-  rtx t1, final_insn;
+  rtx t1, final_insn, sel;
   int bmask;
 
   t1 = gen_reg_rtx (mode);
@@ -11792,8 +11792,8 @@ vector_init_bshuffle (rtx target, rtx elt, enum machine_mode mode,
       gcc_unreachable ();
     }
 
-  emit_insn (gen_bmasksi_vis (gen_reg_rtx (SImode), CONST0_RTX (SImode),
-                             force_reg (SImode, GEN_INT (bmask))));
+  sel = force_reg (SImode, GEN_INT (bmask));
+  emit_insn (gen_bmasksi_vis (gen_rtx_REG (SImode, 0), sel, const0_rtx));
   emit_insn (final_insn);
 }
 
index f710cc7b6b2edb33bd31f5dc5ad4357aee6ba4fe..7f8d425050205a378f00dbee89256e9684355ba1 100644 (file)
     mask |= (INTVAL (XVECEXP (sel, 0, i)) & 0xf) << (28 - i*4);
   sel = force_reg (SImode, gen_int_mode (mask, SImode));
 
-  emit_insn (gen_bmasksi_vis (gen_reg_rtx (SImode), sel, const0_rtx));
+  emit_insn (gen_bmasksi_vis (gen_rtx_REG (SImode, 0), sel, const0_rtx));
   emit_insn (gen_bshufflev8qi_vis (operands[0], operands[1], operands[2]));
   DONE;
 })
index da2e53cb1ae1ebe7a20f5eb6d97ce6f314f3c026..592bb51576b5319a725d187a5add4ef4292b5858 100644 (file)
@@ -1,3 +1,7 @@
+2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc.target/sparc/bmaskbshuf.c: Remove superfluous options.
+
 2013-05-27  Richard Biener  <rguenther@suse.de>
 
        PR middle-end/57412
index 7108a018e5e2cc0c0ffc1bd66f8d5402400f43bf..22809b5f5e997eca2a1192357a5aabf3937216b3 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O -mcpu=ultrasparc3 -mvis -mvis2" } */
+/* { dg-options "-O -mvis2" } */
+
 typedef long long int64_t;
 typedef int vec32 __attribute__((vector_size(8)));
 typedef short vec16 __attribute__((vector_size(8)));