diff mbox

[i386] : Fix wrong cast in _mm512_{,mask_}cmp_ep{i,u}32_mask intrinsics

Message ID CAFULd4YKuvX7GFAYjbJ-HdmOgpVCZ173Q9o537kn4mL6XvsJFQ@mail.gmail.com
State New
Headers show

Commit Message

Uros Bizjak Aug. 4, 2016, 9:17 p.m. UTC
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.

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline and release branches.

Uros.
diff mbox

Patch

Index: config/i386/avx512fintrin.h
===================================================================
--- config/i386/avx512fintrin.h	(revision 239146)
+++ config/i386/avx512fintrin.h	(working copy)
@@ -9130,7 +9130,7 @@  _mm_mask_cmp_round_ss_mask (__mmask8 __M, __m128 _
 					   (__mmask8)-1))
 
 #define _mm512_cmp_epi32_mask(X, Y, P)					\
-  ((__mmask8) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),	\
+  ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),	\
 					   (__v16si)(__m512i)(Y), (int)(P),\
 					   (__mmask16)-1))
 
@@ -9140,7 +9140,7 @@  _mm_mask_cmp_round_ss_mask (__mmask8 __M, __m128 _
 					    (__mmask8)-1))
 
 #define _mm512_cmp_epu32_mask(X, Y, P)					\
-  ((__mmask8) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),	\
+  ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),	\
 					    (__v16si)(__m512i)(Y), (int)(P),\
 					    (__mmask16)-1))
 
@@ -9160,7 +9160,7 @@  _mm_mask_cmp_round_ss_mask (__mmask8 __M, __m128 _
 					   (__mmask8)M))
 
 #define _mm512_mask_cmp_epi32_mask(M, X, Y, P)					\
-  ((__mmask8) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),	\
+  ((__mmask16) __builtin_ia32_cmpd512_mask ((__v16si)(__m512i)(X),	\
 					   (__v16si)(__m512i)(Y), (int)(P),\
 					   (__mmask16)M))
 
@@ -9170,7 +9170,7 @@  _mm_mask_cmp_round_ss_mask (__mmask8 __M, __m128 _
 					    (__mmask8)M))
 
 #define _mm512_mask_cmp_epu32_mask(M, X, Y, P)					\
-  ((__mmask8) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),	\
+  ((__mmask16) __builtin_ia32_ucmpd512_mask ((__v16si)(__m512i)(X),	\
 					    (__v16si)(__m512i)(Y), (int)(P),\
 					    (__mmask16)M))