]> granicus.if.org Git - clang/commitdiff
[X86][SSE] Make unsigned integer vector types generally available
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 29 May 2016 18:49:08 +0000 (18:49 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sun, 29 May 2016 18:49:08 +0000 (18:49 +0000)
As discussed on http://reviews.llvm.org/D20684, move the unsigned integer vector types used for zero extension to make them available for general use.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@271187 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Headers/avx2intrin.h
lib/Headers/emmintrin.h
lib/Headers/smmintrin.h

index e025d6f9e2fff2cc689162917d6bfd706fd5ae34..029199e4cd8e911c918e26bc62a0ef8acf0c3835 100644 (file)
@@ -402,42 +402,36 @@ _mm256_cvtepi32_epi64(__m128i __V)
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_cvtepu8_epi16(__m128i __V)
 {
-  typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
   return (__m256i)__builtin_convertvector((__v16qu)__V, __v16hi);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_cvtepu8_epi32(__m128i __V)
 {
-  typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
   return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8si);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_cvtepu8_epi64(__m128i __V)
 {
-  typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
   return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3), __v4di);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_cvtepu16_epi32(__m128i __V)
 {
-  typedef unsigned short __v8hu __attribute__((__vector_size__(16)));
   return (__m256i)__builtin_convertvector((__v8hu)__V, __v8si);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_cvtepu16_epi64(__m128i __V)
 {
-  typedef unsigned short __v8hu __attribute__((__vector_size__(16)));
   return (__m256i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1, 2, 3), __v4di);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_cvtepu32_epi64(__m128i __V)
 {
-  typedef unsigned int __v4su __attribute__((__vector_size__(16)));
   return (__m256i)__builtin_convertvector((__v4su)__V, __v4di);
 }
 
index f9a1a1a005967ca9913a42d1b10aee422d0e6b9e..a7669b7ea87d7b24a72573af2fe7ca036e4fc2ed 100644 (file)
@@ -35,6 +35,12 @@ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
 typedef short __v8hi __attribute__((__vector_size__(16)));
 typedef char __v16qi __attribute__((__vector_size__(16)));
 
+/* Unsigned types */
+typedef unsigned long long __v2du __attribute__ ((__vector_size__ (16)));
+typedef unsigned int __v4su __attribute__((__vector_size__(16)));
+typedef unsigned short __v8hu __attribute__((__vector_size__(16)));
+typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
+
 /* We need an explicitly signed variant for char. Note that this shouldn't
  * appear in the interface though. */
 typedef signed char __v16qs __attribute__((__vector_size__(16)));
index a45a24c4735bb934988df82f57b9658888e6c5cb..37abb7001d52355dc5988bde3d5c32463d3b5f38 100644 (file)
@@ -324,42 +324,36 @@ _mm_cvtepi32_epi64(__m128i __V)
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cvtepu8_epi16(__m128i __V)
 {
-  typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
   return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cvtepu8_epi32(__m128i __V)
 {
-  typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
   return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3), __v4si);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cvtepu8_epi64(__m128i __V)
 {
-  typedef unsigned char __v16qu __attribute__((__vector_size__(16)));
   return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1), __v2di);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cvtepu16_epi32(__m128i __V)
 {
-  typedef unsigned short __v8hu __attribute__((__vector_size__(16)));
   return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1, 2, 3), __v4si);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cvtepu16_epi64(__m128i __V)
 {
-  typedef unsigned short __v8hu __attribute__((__vector_size__(16)));
   return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1), __v2di);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_cvtepu32_epi64(__m128i __V)
 {
-  typedef unsigned int __v4su __attribute__((__vector_size__(16)));
   return (__m128i)__builtin_convertvector(__builtin_shufflevector((__v4su)__V, (__v4su)__V, 0, 1), __v2di);
 }