diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9f34aae5386db993cb69303e523213e06c26585b..be07e1ff45b7919d24d249a304bdf743c3a47dcd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -2,6 +2,10 @@
 
 	* gcc.dg/pr14092-1.c: Use intptr_t for the cast.
 
+2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
+
+        * g++.dg/simd-2.C: Set -maltivec for ppc64.
+
 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
 
         * gcc.dg/ppc64-abi-3.c: New test.
diff --git a/gcc/testsuite/g++.dg/eh/simd-2.C b/gcc/testsuite/g++.dg/eh/simd-2.C
index 1a9851e37f0bbe90f056766ab4bf600f3f0a226c..55f603aa3589aa349453842d0f696cd4145e6efb 100644
--- a/gcc/testsuite/g++.dg/eh/simd-2.C
+++ b/gcc/testsuite/g++.dg/eh/simd-2.C
@@ -2,10 +2,21 @@
 // Contributed by Aldy Hernandez (aldy@quesejoda.com).
 // { dg-options "-O" }
 // { dg-options "-O -w" { target i?86-*-* } }
+// { dg-options "-O -maltivec" { target powerpc64-*-linux* } }
 // { dg-do run }
-// { dg-error "" "PR target/12916" { target sparc64-*-* sparcv9-*-* } 12 }
-// { dg-error "" "PR target/12916" { target sparc-*-* } 14 }
+// { dg-error "" "PR target/12916" { target sparc64-*-* sparcv9-*-* } 23 }
+// { dg-error "" "PR target/12916" { target sparc-*-* } 25 }
+#ifdef __powerpc64__
+#include <signal.h>
+extern void
+exit (int);
 
+void 
+sig_ill_handler (int sig)
+{
+    exit(0);
+}
+#endif
 typedef int __attribute__((mode(V4SI))) vecint;
 
 vecint vecfunc (vecint beachbum)
@@ -44,6 +55,12 @@ void f1 (void)
 
 int main ()
 {
+#ifdef __powerpc64__
+  /* Exit on systems without altivec.  */
+  signal (SIGILL, sig_ill_handler);
+  asm volatile (".long 0x10000484");  
+  signal (SIGILL, SIG_DFL);
+#endif
   f1 ();
   return 0;
 }