aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.vnet.ibm.com>2013-02-08 19:36:04 +0000
committerMichael Meissner <meissner@gcc.gnu.org>2013-02-08 19:36:04 +0000
commite1122ddda6332ca3a430b3944053ad8ecf11fb20 (patch)
treecf6d22291ee54fbbf0dfadb2c0e4c22d089bd678
parent540817f4effea70ca4389cc69075d736a3b44c56 (diff)
downloadgcc-e1122ddda6332ca3a430b3944053ad8ecf11fb20.zip
gcc-e1122ddda6332ca3a430b3944053ad8ecf11fb20.tar.gz
gcc-e1122ddda6332ca3a430b3944053ad8ecf11fb20.tar.bz2
re PR target/56043 (ICE in rs6000_builtin_vectorized_libmass for vsx-mass-1.c)
[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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c9
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c2
4 files changed, 20 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8fa5912..9d66888 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 8b5f030..fbf57be 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index be17827..583e7d5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c b/gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c
index e4a82f6..adb5c9f 100644
--- a/gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/vsx-mass-1.c
@@ -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" } */