]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/56043 (ICE in rs6000_builtin_vectorized_libmass for vsx-mass-1.c)
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Fri, 8 Feb 2013 19:36:04 +0000 (19:36 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Fri, 8 Feb 2013 19:36:04 +0000 (19:36 +0000)
[gcc]
2013-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/56043
* config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
If there is no implicit builtin declaration, just return NULL.

[gcc/testsuite]
2013-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/56043
* gcc.target/powerpc/vsx-mass-1.c: Only run this test on
powerpc*-*-linux*.

From-SVN: r195898

gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c

index 8fa59127b466641ddc5bddceb05509edc0f998e0..9d668885f259f0d9c88c43ea382da41f091e722b 100644 (file)
@@ -1,3 +1,9 @@
+2013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/56043
+       * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
+       If there is no implicit builtin declaration, just return NULL.
+
 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/sse.md (FMAMODEM): New mode iterator.
index 8b5f030c5511e74cd20d8aa2bb44dcced4790857..fbf57be44a3474f683ed14505202068c8773d3d1 100644 (file)
@@ -3699,7 +3699,8 @@ rs6000_builtin_vectorized_libmass (tree fndecl, tree type_out, tree type_in)
          bdecl = builtin_decl_implicit (fn);
          suffix = "d2";                                /* pow -> powd2 */
          if (el_mode != DFmode
-             || n != 2)
+             || n != 2
+             || !bdecl)
            return NULL_TREE;
          break;
 
@@ -3736,7 +3737,8 @@ rs6000_builtin_vectorized_libmass (tree fndecl, tree type_out, tree type_in)
          bdecl = builtin_decl_implicit (fn);
          suffix = "4";                                 /* powf -> powf4 */
          if (el_mode != SFmode
-             || n != 4)
+             || n != 4
+             || !bdecl)
            return NULL_TREE;
          break;
 
@@ -3749,6 +3751,9 @@ rs6000_builtin_vectorized_libmass (tree fndecl, tree type_out, tree type_in)
 
   gcc_assert (suffix != NULL);
   bname = IDENTIFIER_POINTER (DECL_NAME (bdecl));
+  if (!bname)
+    return NULL_TREE;
+
   strcpy (name, bname + sizeof ("__builtin_") - 1);
   strcat (name, suffix);
 
index be17827348c2055eb2653980df47fbca86ddc26c..583e7d59f45108b14c282cf67664202736c4c955 100644 (file)
@@ -1,3 +1,9 @@
+2013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/56043
+       * gcc.target/powerpc/vsx-mass-1.c: Only run this test on
+       powerpc*-*-linux*.
+
 2013-02-08  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
 
        * 20101011-1.c: Add __MICROBLAZE__ exception to set DO_TEST 0
index e4a82f60cbadbc1b64b4726ba440515b32bc2cda..adb5c9fae31a2490c7e9601aa7f79261d0358588 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { powerpc*-*-* } } } */
+/* { dg-do compile { target { powerpc*-*-linux* } } } */
 /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
 /* { dg-require-effective-target powerpc_vsx_ok } */
 /* { dg-options "-O3 -ftree-vectorize -mcpu=power7 -ffast-math -mveclibabi=mass" } */