Hi,

I ran across this obvious error when developing a test case for another
patch.  The value assigned for the most significant bit of a value is
obviously wrong for zero here.  I haven't added a test case because this
will be covered by the test case added for the other patch.

Bootstrapped and tested for powerpc64le-unknown-linux-gnu with no
regressions.  Committed as obvious.

Thanks,
Bill


2014-02-19  Bill Schmidt  <wschm...@linux.vnet.ibm.com>

        * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
        bit of zero.


Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c  (revision 207910)
+++ gcc/config/rs6000/rs6000.c  (working copy)
@@ -5020,7 +5020,7 @@ vspltis_constant (rtx op, unsigned step, unsigned
 
   val = const_vector_elt_as_int (op, BYTES_BIG_ENDIAN ? nunits - 1 : 0);
   splat_val = val;
-  msb_val = val > 0 ? 0 : -1;
+  msb_val = val >= 0 ? 0 : -1;
 
   /* Construct the value to be splatted, if possible.  If not, return 0.  */
   for (i = 2; i <= copies; i *= 2)


Reply via email to