diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index abcb381ade233e5798bd21d7dd7e05609f0bac3b..5afbebf33a7f6aadd6e8f421eab3aa20876ee2c3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2002-07-29  Aldy Hernandez  <aldyh@redhat.com>
+
+	* config/rs6000/spe.h (__internal_ev_mwhgumian): Cast vector
+	constants to __ev64_s32__.
+	(__internal_ev_mwhgsmian): Same.
+	(__internal_ev_mwhgsmfan): Same.
+	(__internal_ev_mwhgssfan): Same.
+	(__internal_ev_mwhgumiaa): Same.
+	(__internal_ev_mwhgsmiaa): Same.
+	(__internal_ev_mwhgsmfaa): Same.
+	(__internal_ev_mwhgssfaa): Same.
+
 2002-07-29  David Edelsohn  <edelsohn@gnu.org>
 
 	* varasm.c (assemble_variable): Narrow test for uninitialized
diff --git a/gcc/config/rs6000/spe.h b/gcc/config/rs6000/spe.h
index bac1c386300e0bc50db9da24fcf428f00897333b..2032eb7485514ab3da0e490f94e09ce47a72d029 100644
--- a/gcc/config/rs6000/spe.h
+++ b/gcc/config/rs6000/spe.h
@@ -463,15 +463,13 @@ __internal_ev_mwhumianw (__ev64_opaque__ a, __ev64_opaque__ b)
   return __ev_subfumiaaw (t);
 }
 
-/* ** */
-
 static inline __ev64_opaque__
 __internal_ev_mwhgssfaa (__ev64_opaque__ a, __ev64_opaque__ b)
 {
   __ev64_opaque__ t;
 
   t = __ev_mwhssf (a, b);
-  return __ev_mwsmiaa (t, ((__ev64_opaque__){1, 1}));
+  return __ev_mwsmiaa (t, ((__ev64_s32__){1, 1}));
 }
 
 static inline __ev64_opaque__
@@ -480,7 +478,7 @@ __internal_ev_mwhgsmfaa (__ev64_opaque__ a, __ev64_opaque__ b)
   __ev64_opaque__ t;
 
   t = __ev_mwhsmf (a, b);
-  return __ev_mwsmiaa (t, ((__ev64_opaque__){1, 1}));
+  return __ev_mwsmiaa (t, ((__ev64_s32__){1, 1}));
 }
 
 static inline __ev64_opaque__
@@ -489,7 +487,7 @@ __internal_ev_mwhgsmiaa (__ev64_opaque__ a, __ev64_opaque__ b)
   __ev64_opaque__ t;
 
   t = __ev_mwhsmi (a, b);
-  return __ev_mwsmiaa (t, ((__ev64_opaque__){1, 1}));
+  return __ev_mwsmiaa (t, ((__ev64_s32__){1, 1}));
 }
 
 static inline __ev64_opaque__
@@ -498,7 +496,7 @@ __internal_ev_mwhgumiaa (__ev64_opaque__ a, __ev64_opaque__ b)
   __ev64_opaque__ t;
 
   t = __ev_mwhumi (a, b);
-  return __ev_mwumiaa (t, ((__ev64_opaque__){1, 1}));
+  return __ev_mwumiaa (t, ((__ev64_s32__){1, 1}));
 }
 
 static inline __ev64_opaque__
@@ -507,7 +505,7 @@ __internal_ev_mwhgssfan (__ev64_opaque__ a, __ev64_opaque__ b)
   __ev64_opaque__ t;
 
   t = __ev_mwhssf (a, b);
-  return __ev_mwsmian (t, ((__ev64_opaque__){1, 1}));
+  return __ev_mwsmian (t, ((__ev64_s32__){1, 1}));
 }
 
 static inline __ev64_opaque__
@@ -516,7 +514,7 @@ __internal_ev_mwhgsmfan (__ev64_opaque__ a, __ev64_opaque__ b)
   __ev64_opaque__ t;
 
   t = __ev_mwhsmf (a, b);
-  return __ev_mwsmian (t, ((__ev64_opaque__){1, 1}));
+  return __ev_mwsmian (t, ((__ev64_s32__){1, 1}));
 }
 
 static inline __ev64_opaque__
@@ -525,7 +523,7 @@ __internal_ev_mwhgsmian (__ev64_opaque__ a, __ev64_opaque__ b)
   __ev64_opaque__ t;
 
   t = __ev_mwhsmi (a, b);
-  return __ev_mwsmian (t, ((__ev64_opaque__){1, 1}));
+  return __ev_mwsmian (t, ((__ev64_s32__){1, 1}));
 }
 
 static inline __ev64_opaque__
@@ -534,7 +532,7 @@ __internal_ev_mwhgumian (__ev64_opaque__ a, __ev64_opaque__ b)
   __ev64_opaque__ t;
 
   t = __ev_mwhumi (a, b);
-  return __ev_mwumian (t, ((__ev64_opaque__){1, 1}));
+  return __ev_mwumian (t, ((__ev64_s32__){1, 1}));
 }
 
 /* END OF NOT SUPPORTED */