]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/72805 (AVX512: invalid code generation involving masks)
authorUros Bizjak <uros@gcc.gnu.org>
Thu, 4 Aug 2016 21:25:33 +0000 (23:25 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Thu, 4 Aug 2016 21:25:33 +0000 (23:25 +0200)
PR target/72805
* config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
Cast builtin function result to __mmask16 instead of __mmask8.
(_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
(_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
(_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.

From-SVN: r239155

gcc/ChangeLog
gcc/config/i386/avx512fintrin.h

index ff4f6675938f6886797a60019824de9d9afed2c1..f9a0a0a4c9c1966df2f7aead7a32cbaf57680a47 100644 (file)
@@ -1,3 +1,12 @@
+2016-08-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/72805
+       * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
+       Cast builtin function result to __mmask16 instead of __mmask8.
+       (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
+       (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
+       (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
+
 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
 
        Backport from 2016-08-01 trunk r238948.
@@ -31,9 +40,9 @@
 
 2016-07-20  Martin Jambor  <mjambor@suse.cz>
 
-        PR fortran/71688
-        * trans-decl.c (gfc_generate_function_code): Use get_create rather
-        than create to get a call graph node.
+       PR fortran/71688
+       * trans-decl.c (gfc_generate_function_code): Use get_create rather
+       than create to get a call graph node.
 
 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
 
        without LABEL_DECL, set *handled_ops_p to false instead of true.
 
        2016-04-13  Jakub Jelinek  <jakub@redhat.com>
+
        PR c++/70641
        * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
        on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
index d7e7020577bbb956358d5c065fe7eb206998f08a..5d71bd6c5b66df641a3397cf3e1e3dd0d7bd1bed 100644 (file)
@@ -9130,9 +9130,9 @@ _mm_mask_cmp_round_ss_mask (__mmask8 __M, __m128 __X, __m128 __Y,
                                           (__mmask8)-1))
 
 #define _mm512_cmp_epi32_mask(X, Y, P)                                 \
-  ((__mmask8) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),      \
-                                          (__v16si)(__m512i)(Y), (int)(P),\
-                                          (__mmask16)-1))
+  ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),     \
+                                           (__v16si)(__m512i)(Y), (int)(P), \
+                                           (__mmask16)-1))
 
 #define _mm512_cmp_epu64_mask(X, Y, P)                                 \
   ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X),      \
@@ -9140,66 +9140,66 @@ _mm_mask_cmp_round_ss_mask (__mmask8 __M, __m128 __X, __m128 __Y,
                                            (__mmask8)-1))
 
 #define _mm512_cmp_epu32_mask(X, Y, P)                                 \
-  ((__mmask8) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),     \
-                                           (__v16si)(__m512i)(Y), (int)(P),\
-                                           (__mmask16)-1))
+  ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),    \
+                                            (__v16si)(__m512i)(Y), (int)(P), \
+                                            (__mmask16)-1))
 
-#define _mm512_cmp_round_pd_mask(X, Y, P, R)                                   \
+#define _mm512_cmp_round_pd_mask(X, Y, P, R)                           \
   ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),      \
                                            (__v8df)(__m512d)(Y), (int)(P),\
                                            (__mmask8)-1, R))
 
-#define _mm512_cmp_round_ps_mask(X, Y, P, R)                                   \
+#define _mm512_cmp_round_ps_mask(X, Y, P, R)                           \
   ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),     \
                                             (__v16sf)(__m512)(Y), (int)(P),\
                                             (__mmask16)-1, R))
 
-#define _mm512_mask_cmp_epi64_mask(M, X, Y, P)                                 \
+#define _mm512_mask_cmp_epi64_mask(M, X, Y, P)                         \
   ((__mmask8) __builtin_ia32_cmpq512_mask ((__v8di)(__m512i)(X),       \
                                           (__v8di)(__m512i)(Y), (int)(P),\
                                           (__mmask8)M))
 
-#define _mm512_mask_cmp_epi32_mask(M, X, Y, P)                                 \
-  ((__mmask8) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),      \
-                                          (__v16si)(__m512i)(Y), (int)(P),\
-                                          (__mmask16)M))
+#define _mm512_mask_cmp_epi32_mask(M, X, Y, P)                         \
+  ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),     \
+                                           (__v16si)(__m512i)(Y), (int)(P), \
+                                           (__mmask16)M))
 
-#define _mm512_mask_cmp_epu64_mask(M, X, Y, P)                                 \
+#define _mm512_mask_cmp_epu64_mask(M, X, Y, P)                         \
   ((__mmask8) __builtin_ia32_ucmpq512_mask ((__v8di)(__m512i)(X),      \
                                            (__v8di)(__m512i)(Y), (int)(P),\
                                            (__mmask8)M))
 
-#define _mm512_mask_cmp_epu32_mask(M, X, Y, P)                                 \
-  ((__mmask8) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),     \
-                                           (__v16si)(__m512i)(Y), (int)(P),\
-                                           (__mmask16)M))
+#define _mm512_mask_cmp_epu32_mask(M, X, Y, P)                         \
+  ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),    \
+                                            (__v16si)(__m512i)(Y), (int)(P), \
+                                            (__mmask16)M))
 
-#define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R)                                   \
+#define _mm512_mask_cmp_round_pd_mask(M, X, Y, P, R)                   \
   ((__mmask8) __builtin_ia32_cmppd512_mask ((__v8df)(__m512d)(X),      \
                                            (__v8df)(__m512d)(Y), (int)(P),\
                                            (__mmask8)M, R))
 
-#define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R)                                   \
+#define _mm512_mask_cmp_round_ps_mask(M, X, Y, P, R)                   \
   ((__mmask16) __builtin_ia32_cmpps512_mask ((__v16sf)(__m512)(X),     \
                                             (__v16sf)(__m512)(Y), (int)(P),\
                                             (__mmask16)M, R))
 
-#define _mm_cmp_round_sd_mask(X, Y, P, R)                                      \
+#define _mm_cmp_round_sd_mask(X, Y, P, R)                              \
   ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),         \
                                         (__v2df)(__m128d)(Y), (int)(P),\
                                         (__mmask8)-1, R))
 
-#define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R)                                      \
+#define _mm_mask_cmp_round_sd_mask(M, X, Y, P, R)                      \
   ((__mmask8) __builtin_ia32_cmpsd_mask ((__v2df)(__m128d)(X),         \
                                         (__v2df)(__m128d)(Y), (int)(P),\
                                         (M), R))
 
-#define _mm_cmp_round_ss_mask(X, Y, P, R)                                      \
+#define _mm_cmp_round_ss_mask(X, Y, P, R)                              \
   ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),          \
                                         (__v4sf)(__m128)(Y), (int)(P), \
                                         (__mmask8)-1, R))
 
-#define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R)                                      \
+#define _mm_mask_cmp_round_ss_mask(M, X, Y, P, R)                      \
   ((__mmask8) __builtin_ia32_cmpss_mask ((__v4sf)(__m128)(X),          \
                                         (__v4sf)(__m128)(Y), (int)(P), \
                                         (M), R))