Fix some casts to work without -flax-vector-conversions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72981 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Headers/emmintrin.h b/lib/Headers/emmintrin.h
index 1061bf3..96a67f0 100644
--- a/lib/Headers/emmintrin.h
+++ b/lib/Headers/emmintrin.h
@@ -129,25 +129,25 @@
 static inline __m128d __attribute__((__always_inline__, __nodebug__))
 _mm_and_pd(__m128d a, __m128d b)
 {
-  return (__m128)((__v4si)a & (__v4si)b);
+  return (__m128d)((__v4si)a & (__v4si)b);
 }
 
 static inline __m128d __attribute__((__always_inline__, __nodebug__))
 _mm_andnot_pd(__m128d a, __m128d b)
 {
-  return (__m128)(~(__v4si)a & (__v4si)b);
+  return (__m128d)(~(__v4si)a & (__v4si)b);
 }
 
 static inline __m128d __attribute__((__always_inline__, __nodebug__))
 _mm_or_pd(__m128d a, __m128d b)
 {
-  return (__m128)((__v4si)a | (__v4si)b);
+  return (__m128d)((__v4si)a | (__v4si)b);
 }
 
 static inline __m128d __attribute__((__always_inline__, __nodebug__))
 _mm_xor_pd(__m128d a, __m128d b)
 {
-  return (__m128)((__v4si)a ^ (__v4si)b);
+  return (__m128d)((__v4si)a ^ (__v4si)b);
 }
 
 static inline __m128d __attribute__((__always_inline__, __nodebug__))
@@ -1190,7 +1190,7 @@
 {
   __v8hi c = (__v8hi)a;
   c[imm & 7] = b;
-  return c;
+  return (__m128i)c;
 }
 
 static inline int __attribute__((__always_inline__, __nodebug__))
diff --git a/lib/Headers/xmmintrin.h b/lib/Headers/xmmintrin.h
index f896893..96940ef 100644
--- a/lib/Headers/xmmintrin.h
+++ b/lib/Headers/xmmintrin.h
@@ -634,7 +634,7 @@
 {
    __v4hi b = (__v4hi)a;
    b[n & 3] = d;
-   return b;
+   return (__m64)b;
 }
 
 static inline __m64 __attribute__((__always_inline__, __nodebug__))