igorb created this revision.
igorb added reviewers: m_zuckerman, AsafBadouh, delena.
igorb added a subscriber: cfe-commits.
igorb set the repository for this revision to rL LLVM.

[Clang][AVX512][intrinsics]  Fix vperm{w|d|q|ps|pd}  intrinsics. Index is first 
argument to buildin function.

Repository:
  rL LLVM

http://reviews.llvm.org/D20321

Files:
  lib/Headers/avx512bwintrin.h
  lib/Headers/avx512fintrin.h
  lib/Headers/avx512vlbwintrin.h
  lib/Headers/avx512vlintrin.h

Index: lib/Headers/avx512vlintrin.h
===================================================================
--- lib/Headers/avx512vlintrin.h
+++ lib/Headers/avx512vlintrin.h
@@ -9100,111 +9100,111 @@
 static __inline__ __m256d __DEFAULT_FN_ATTRS
 _mm256_permutexvar_pd (__m256i __X, __m256d __Y)
 {
-  return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
-                 (__v4di) __X,
+  return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __X /* idx */,
+                 (__v4di) __Y,
                  (__v4df) _mm256_undefined_si256 (),
                  (__mmask8) -1);
 }
 
 static __inline__ __m256d __DEFAULT_FN_ATTRS
 _mm256_mask_permutexvar_pd (__m256d __W, __mmask8 __U, __m256i __X,
           __m256d __Y)
 {
-  return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
-                 (__v4di) __X,
+  return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __X /* idx */,
+                 (__v4di) __Y,
                  (__v4df) __W,
                  (__mmask8) __U);
 }
 
 static __inline__ __m256d __DEFAULT_FN_ATTRS
 _mm256_maskz_permutexvar_pd (__mmask8 __U, __m256i __X, __m256d __Y)
 {
-  return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __Y,
-                 (__v4di) __X,
+  return (__m256d) __builtin_ia32_permvardf256_mask ((__v4df) __X /* idx */,
+                 (__v4di) __Y,
                  (__v4df) _mm256_setzero_pd (),
                  (__mmask8) __U);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_maskz_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
 {
-  return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
-                 (__v4di) __X,
+  return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __X /* idx */,
+                 (__v4di) __Y,
                  (__v4di) _mm256_setzero_si256 (),
                  (__mmask8) __M);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_permutexvar_epi64 (__mmask8 __M, __m256i __X, __m256i __Y)
 {
-  return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
-                 (__v4di) __X,
+  return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __X /* idx */,
+                 (__v4di) __Y,
                  (__v4di) _mm256_undefined_si256 (),
                  (__mmask8) -1);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_mask_permutexvar_epi64 (__m256i __W, __mmask8 __M, __m256i __X,
              __m256i __Y)
 {
-  return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __Y,
-                 (__v4di) __X,
+  return (__m256i) __builtin_ia32_permvardi256_mask ((__v4di) __X /* idx */,
+                 (__v4di) __Y,
                  (__v4di) __W,
                  __M);
 }
 
 static __inline__ __m256 __DEFAULT_FN_ATTRS
 _mm256_mask_permutexvar_ps (__m256 __W, __mmask8 __U, __m256i __X,
           __m256 __Y)
 {
-  return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
-                (__v8si) __X,
+  return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __X /* idx */,
+                (__v8si) __Y,
                 (__v8sf) __W,
                 (__mmask8) __U);
 }
 
 static __inline__ __m256 __DEFAULT_FN_ATTRS
 _mm256_maskz_permutexvar_ps (__mmask8 __U, __m256i __X, __m256 __Y)
 {
-  return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
-                (__v8si) __X,
+  return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __X /* idx */,
+                (__v8si) __Y,
                 (__v8sf) _mm256_setzero_ps (),
                 (__mmask8) __U);
 }
 
 static __inline__ __m256 __DEFAULT_FN_ATTRS
 _mm256_permutexvar_ps (__m256i __X, __m256 __Y)
 {
-  return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __Y,
-                (__v8si) __X,
+  return (__m256) __builtin_ia32_permvarsf256_mask ((__v8sf) __X /* idx */,
+                (__v8si) __Y,
                 (__v8sf) _mm256_undefined_si256 (),
                 (__mmask8) -1);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_maskz_permutexvar_epi32 (__mmask8 __M, __m256i __X, __m256i __Y)
 {
-  return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
-                 (__v8si) __X,
+  return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __X /* idx */,
+                 (__v8si) __Y,
                  (__v8si) _mm256_setzero_si256 (),
                  __M);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_mask_permutexvar_epi32 (__m256i __W, __mmask8 __M, __m256i __X,
              __m256i __Y)
 {
-  return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
-                 (__v8si) __X,
+  return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __X /* idx */,
+                 (__v8si) __Y,
                  (__v8si) __W,
                  (__mmask8) __M);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_permutexvar_epi32 (__m256i __X, __m256i __Y)
 {
-  return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __Y,
-                 (__v8si) __X,
+  return (__m256i) __builtin_ia32_permvarsi256_mask ((__v8si) __X /* idx */,
+                 (__v8si) __Y,
                  (__v8si) _mm256_undefined_si256(),
                  (__mmask8) -1);
 }
Index: lib/Headers/avx512vlbwintrin.h
===================================================================
--- lib/Headers/avx512vlbwintrin.h
+++ lib/Headers/avx512vlbwintrin.h
@@ -3316,56 +3316,56 @@
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_permutexvar_epi16 (__m128i __A, __m128i __B)
 {
-  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
-                 (__v8hi) __A,
+  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __A /* idx */,
+                 (__v8hi) __B,
                  (__v8hi) _mm_undefined_si128 (),
                  (__mmask8) -1);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_maskz_permutexvar_epi16 (__mmask8 __M, __m128i __A, __m128i __B)
 {
-  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
-                 (__v8hi) __A,
+  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __A /* idx */,
+                 (__v8hi) __B,
                  (__v8hi) _mm_setzero_si128 (),
                  (__mmask8) __M);
 }
 
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_mask_permutexvar_epi16 (__m128i __W, __mmask8 __M, __m128i __A,
           __m128i __B)
 {
-  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __B,
-                 (__v8hi) __A,
+  return (__m128i) __builtin_ia32_permvarhi128_mask ((__v8hi) __A /* idx */,
+                 (__v8hi) __B,
                  (__v8hi) __W,
                  (__mmask8) __M);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_permutexvar_epi16 (__m256i __A, __m256i __B)
 {
-  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
-                 (__v16hi) __A,
+  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __A /* idx */,
+                 (__v16hi) __B,
                  (__v16hi) _mm256_undefined_si256 (),
                  (__mmask16) -1);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_maskz_permutexvar_epi16 (__mmask16 __M, __m256i __A,
         __m256i __B)
 {
-  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
-                 (__v16hi) __A,
+  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __A/* idx */,
+                 (__v16hi) __B,
                  (__v16hi) _mm256_setzero_si256 (),
                  (__mmask16) __M);
 }
 
 static __inline__ __m256i __DEFAULT_FN_ATTRS
 _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A,
              __m256i __B)
 {
-  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __B,
-                 (__v16hi) __A,
+  return (__m256i) __builtin_ia32_permvarhi256_mask ((__v16hi) __A /* idx */,
+                 (__v16hi) __B,
                  (__v16hi) __W,
                  (__mmask16) __M);
 }
Index: lib/Headers/avx512fintrin.h
===================================================================
--- lib/Headers/avx512fintrin.h
+++ lib/Headers/avx512fintrin.h
@@ -8385,109 +8385,109 @@
 static __inline__ __m512d __DEFAULT_FN_ATTRS
 _mm512_permutexvar_pd (__m512i __X, __m512d __Y)
 {
-  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
-                 (__v8di) __X,
+  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __X /* idx */,
+                 (__v8di) __Y,
                  (__v8df) _mm512_undefined_pd (),
                  (__mmask8) -1);
 }
 
 static __inline__ __m512d __DEFAULT_FN_ATTRS
 _mm512_mask_permutexvar_pd (__m512d __W, __mmask8 __U, __m512i __X, __m512d __Y)
 {
-  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
-                 (__v8di) __X,
+  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __X /* idx */,
+                 (__v8di) __Y,
                  (__v8df) __W,
                  (__mmask8) __U);
 }
 
 static __inline__ __m512d __DEFAULT_FN_ATTRS
 _mm512_maskz_permutexvar_pd (__mmask8 __U, __m512i __X, __m512d __Y)
 {
-  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __Y,
-                 (__v8di) __X,
+  return (__m512d) __builtin_ia32_permvardf512_mask ((__v8df) __X /* idx */,
+                 (__v8di) __Y,
                  (__v8df) _mm512_setzero_pd (),
                  (__mmask8) __U);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_maskz_permutexvar_epi64 (__mmask8 __M, __m512i __X, __m512i __Y)
 {
-  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
-                 (__v8di) __X,
+  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __X /* idx */,
+                 (__v8di) __Y,
                  (__v8di) _mm512_setzero_si512 (),
                  __M);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_permutexvar_epi64 (__m512i __X, __m512i __Y)
 {
-  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
-                 (__v8di) __X,
+  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __X /* idx */,
+                 (__v8di) __Y,
                  (__v8di) _mm512_undefined_epi32 (),
                  (__mmask8) -1);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_mask_permutexvar_epi64 (__m512i __W, __mmask8 __M, __m512i __X,
              __m512i __Y)
 {
-  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __Y,
-                 (__v8di) __X,
+  return (__m512i) __builtin_ia32_permvardi512_mask ((__v8di) __X /* idx */,
+                 (__v8di) __Y,
                  (__v8di) __W,
                  __M);
 }
 
 static __inline__ __m512 __DEFAULT_FN_ATTRS
 _mm512_permutexvar_ps (__m512i __X, __m512 __Y)
 {
-  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
-                (__v16si) __X,
+  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __X /* idx */,
+                (__v16si) __Y,
                 (__v16sf) _mm512_undefined_ps (),
                 (__mmask16) -1);
 }
 
 static __inline__ __m512 __DEFAULT_FN_ATTRS
 _mm512_mask_permutexvar_ps (__m512 __W, __mmask16 __U, __m512i __X, __m512 __Y)
 {
-  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
-                (__v16si) __X,
+  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __X /* idx */,
+                (__v16si) __Y,
                 (__v16sf) __W,
                 (__mmask16) __U);
 }
 
 static __inline__ __m512 __DEFAULT_FN_ATTRS
 _mm512_maskz_permutexvar_ps (__mmask16 __U, __m512i __X, __m512 __Y)
 {
-  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __Y,
-                (__v16si) __X,
+  return (__m512) __builtin_ia32_permvarsf512_mask ((__v16sf) __X /* idx */,
+                (__v16si) __Y,
                 (__v16sf) _mm512_setzero_ps (),
                 (__mmask16) __U);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_maskz_permutexvar_epi32 (__mmask16 __M, __m512i __X, __m512i __Y)
 {
-  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
-                 (__v16si) __X,
+  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __X /* idx */,
+                 (__v16si) __Y,
                  (__v16si) _mm512_setzero_si512 (),
                  __M);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_permutexvar_epi32 (__m512i __X, __m512i __Y)
 {
-  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
-                 (__v16si) __X,
+  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __X /* idx */,
+                 (__v16si) __Y,
                  (__v16si) _mm512_undefined_epi32 (),
                  (__mmask16) -1);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_mask_permutexvar_epi32 (__m512i __W, __mmask16 __M, __m512i __X,
              __m512i __Y)
 {
-  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __Y,
-                 (__v16si) __X,
+  return (__m512i) __builtin_ia32_permvarsi512_mask ((__v16si) __X /* idx */,
+                 (__v16si) __Y,
                  (__v16si) __W,
                  __M);
 }
Index: lib/Headers/avx512bwintrin.h
===================================================================
--- lib/Headers/avx512bwintrin.h
+++ lib/Headers/avx512bwintrin.h
@@ -2148,28 +2148,28 @@
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_permutexvar_epi16 (__m512i __A, __m512i __B)
 {
-  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
-                 (__v32hi) __A,
+  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __A /* idx */,
+                 (__v32hi) __B,
                  (__v32hi) _mm512_undefined_epi32 (),
                  (__mmask32) -1);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_maskz_permutexvar_epi16 (__mmask32 __M, __m512i __A,
         __m512i __B)
 {
-  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
-                 (__v32hi) __A,
+  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __A /* idx */,
+                 (__v32hi) __B,
                  (__v32hi) _mm512_setzero_hi(),
                  (__mmask32) __M);
 }
 
 static __inline__ __m512i __DEFAULT_FN_ATTRS
 _mm512_mask_permutexvar_epi16 (__m512i __W, __mmask32 __M, __m512i __A,
              __m512i __B)
 {
-  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __B,
-                 (__v32hi) __A,
+  return (__m512i) __builtin_ia32_permvarhi512_mask ((__v32hi) __A /* idx */,
+                 (__v32hi) __B,
                  (__v32hi) __W,
                  (__mmask32) __M);
 }
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to