https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61878

            Bug ID: 61878
           Summary: Missing intrinsic functions in avx512intrin.h
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: agner at agner dot org

A few compare functions are missing in avx512intrin.h, e.g.
_mm512_cmpgt_epu32_mask and _mm512_cmpgt_epu64_mask

All intrinsic functions for typecasting are also missing. Please add these
functions, as they are indispensable.

See https://software.intel.com/en-us/node/513903 and
https://software.intel.com/sites/landingpage/IntrinsicsGuide/ for documentation
of these functions.

Definitions copied from Intel's zmmintrin.h:

/* Conversion from one type to another, no change in value. */

extern __m512  __ICL_INTRINCC _mm512_castpd_ps(__m512d);
extern __m512i __ICL_INTRINCC _mm512_castpd_si512(__m512d);
extern __m512d __ICL_INTRINCC _mm512_castps_pd(__m512);
extern __m512i __ICL_INTRINCC _mm512_castps_si512(__m512);
extern __m512  __ICL_INTRINCC _mm512_castsi512_ps(__m512i);
extern __m512d __ICL_INTRINCC _mm512_castsi512_pd(__m512i);

* Casts from a larger type to a smaller type.
 */
extern __m128d __ICL_INTRINCC _mm512_castpd512_pd128(__m512d);
extern __m128  __ICL_INTRINCC _mm512_castps512_ps128(__m512);
extern __m128i __ICL_INTRINCC _mm512_castsi512_si128(__m512i);
extern __m256d __ICL_INTRINCC _mm512_castpd512_pd256(__m512d);
extern __m256  __ICL_INTRINCC _mm512_castps512_ps256(__m512);
extern __m256i __ICL_INTRINCC _mm512_castsi512_si256(__m512i);

/*
 * Casts from a smaller type to a larger type.
 * Upper elements of the result are undefined.
 */
extern __m512d __ICL_INTRINCC _mm512_castpd128_pd512(__m128d);
extern __m512  __ICL_INTRINCC _mm512_castps128_ps512(__m128);
extern __m512i __ICL_INTRINCC _mm512_castsi128_si512(__m128i);
extern __m512d __ICL_INTRINCC _mm512_castpd256_pd512(__m256d);
extern __m512  __ICL_INTRINCC _mm512_castps256_ps512(__m256);
extern __m512i __ICL_INTRINCC _mm512_castsi256_si512(__m256i);

Reply via email to