rs6000.c (rs6000_expand_binop_builtin): Add evsubifw to builtins accepting 5-bit...
authorAldy Hernandez <aldyh@redhat.com>
Mon, 5 May 2003 17:40:03 +0000 (17:40 +0000)
committerAldy Hernandez <aldyh@gcc.gnu.org>
Mon, 5 May 2003 17:40:03 +0000 (17:40 +0000)
2003-05-05  Aldy Hernandez  <aldyh@redhat.com>

        * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
        evsubifw to builtins accepting 5-bit unsigned constants.
        (easy_vector_constant): Return if V1DImode.  Fix typo.

[[Split portion of a mixed commit.]]

From-SVN: r66490.2

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 4477e0f681bedf0d4df9ac912ad202554d9ae46f..84bd44520143b0d5846bb45cde3b450fcc0baab6 100644 (file)
@@ -1,3 +1,9 @@
+2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
+        evsubifw to builtins accepting 5-bit unsigned constants.
+        (easy_vector_constant): Return if V1DImode.  Fix typo.
+
 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
 
         * config/rs6000/spe.h: Revert licensing change from last patch.
index b5faabddc13cb5ef9d34ed1c210cde54f630065c..2f2830159e2c8cdbfa5fb65f447f53e9b17d7b6f 100644 (file)
@@ -1510,6 +1510,9 @@ easy_vector_constant (op, mode)
   if (GET_MODE_CLASS (mode) != MODE_VECTOR_INT)
     return 0;
 
+  if (TARGET_SPE && mode == V1DImode)
+    return 0;
+
   cst  = INTVAL (CONST_VECTOR_ELT (op, 0));
   cst2 = INTVAL (CONST_VECTOR_ELT (op, 1));
 
@@ -1524,7 +1527,7 @@ easy_vector_constant (op, mode)
      have the e500 timing specs.  */
   if (TARGET_SPE && mode == V2SImode
       && cst  >= -0x7fff && cst <= 0x7fff
-      && cst2 >= -0x7fff && cst <= 0x7fff)
+      && cst2 >= -0x7fff && cst2 <= 0x7fff)
     return 1;
 
   if (TARGET_ALTIVEC && EASY_VECTOR_15 (cst, op, mode))
@@ -4721,6 +4724,7 @@ rs6000_expand_binop_builtin (icode, arglist, target)
       || icode == CODE_FOR_spe_evrlwi
       || icode == CODE_FOR_spe_evslwi
       || icode == CODE_FOR_spe_evsrwis
+      || icode == CODE_FOR_spe_evsubifw
       || icode == CODE_FOR_spe_evsrwiu)
     {
       /* Only allow 5-bit unsigned literals.  */