Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Intrinsics for Typecast Operations

The prototypes for Intel® Advanced Vector Extensions 512 (Intel® AVX-512) intrinsics are located in the zmmintrin.h header file.

To use these intrinsics, include the immintrin.h file as follows:

#include <immintrin.h>

NOTE:

These intrinsics are used for compilation and do not generate any instructions.



Intrinsic Name

Operation

Corresponding
Intel® AVX-512 Instruction

_mm512_castpd512_pd128

Casts from larger type to smaller type.

None.

_mm512_castps512_ps128

Casts from larger type to smaller type.

None.

_mm512_castsi512_si128

Casts from larger type to smaller type.

None.

_mm512_castpd512_pd256

Casts from larger type to smaller type.

None.

_mm512_castps512_ps256

Casts from larger type to smaller type.

None.

_mm512_castsi512_si256

Casts from larger type to smaller type.

None.

_mm512_castpd256_pd512

Casts from smaller type to larger type.

None.

_mm512_castps128_ps512

Casts from smaller type to larger type.

None.

_mm512_castsi128_si512

Casts from smaller type to larger type.

None.

_mm512_castpd256_pd512

Casts from smaller type to larger type.

None.

_mm512_castps256_ps512

Casts from smaller type to larger type.

None.

_mm512_castsi256_si512

Casts from smaller type to larger type.

None.

_mm512_castpd_ps

Casts from smaller type to larger type.

None.

_mm512_castpd_si512

Casts from smaller type to larger type.

None.

_mm512_castps_pd

Casts from smaller type to larger type.

None.

_mm512_castps_si512

Casts from smaller type to larger type.

None.

_mm512_castsi512_pd

Casts from smaller type to larger type.

None.

_mm512_castsi512_ps

Casts from smaller type to larger type.

None.


variable definition
a

vector element for casting operation

_mm512_castpd_ps

extern __m512 __cdecl _mm512_castpd_ps(__m512d a);

Casts vector a of type __m512d to type __m512, with no change in value.



_mm512_castpd_si512

extern __m512i __cdecl _mm512_castpd_si512(__m512d a);

Casts vector a of type __m512d to type __m512i, with no change in value.



_mm512_castps_pd

extern __m512d __cdecl _mm512_castps_pd(__m512 a);

Casts vector a of type __m512 to type __m512d, with no change in value.



_mm512_castps_si512

extern __m512i __cdecl _mm512_castps_si512(__m512 a);

Casts vector a of type __m512 to type __m512i, with no change in value.



_mm512_castpd128_pd512

extern __m512d __cdecl _mm512_castpd128_pd512(__m128d a);

Casts vector a of type __m128d to type __m512d.

NOTE:

The upper 384-bits of the result are undefined.



_mm512_castpd256_pd512

extern __m512d __cdecl _mm512_castpd256_pd512(__m256d a);

Casts vector a of type __m256d to type __m512d.

NOTE:

The upper 256-bits of the result are undefined.



_mm512_castpd512_pd128

extern __m128d __cdecl _mm512_castpd512_pd128(__m512d a);

Casts vector a of type __m512d to type __m128d.



_mm512_castps512_ps128

extern __m128 __cdecl _mm512_castps512_ps128(__m512 a);

Casts vector a of type __m512 to type __m128.



_mm512_castpd512_pd256

extern __m256d __cdecl _mm512_castpd512_pd256(__m512d a);

Casts vector a of type __m512d to type __m256d.



_mm512_castps128_ps512

extern __m512 __cdecl _mm512_castps128_ps512(__m128 a);

Casts vector a of type __m128 to type __m512.

NOTE:

The upper 384-bits of the result are undefined.



_mm512_castps256_ps512

extern __m512 __cdecl _mm512_castps256_ps512(__m256 a);

Casts vector a of type __m256 to type __m512.

NOTE:

The upper 256-bits of the result are undefined.



_mm512_castps512_ps256

extern __m256 __cdecl _mm512_castps512_ps256(__m512 a);

Casts vector a of type __m512 to type __m256.



_mm512_castsi128_si512

extern __m512i __cdecl _mm512_castsi128_si512(__m128i a);

Casts vector a of type __m128i to type __m512i.

NOTE:

The upper 384-bits of the result are undefined.



_mm512_castsi256_si512

extern __m512i __cdecl _mm512_castsi256_si512(__m256i a);

Casts vector a of type __m256i to type __m512i.

NOTE:

The upper 256-bits of the result are undefined.



_mm512_castsi512_pd

extern __m512d __cdecl _mm512_castsi512_pd(__m512i a);

Casts vector a of type __m512i to type __m512d, with no change in value.



_mm512_castsi512_ps

extern __m512 __cdecl _mm512_castsi512_ps(__m512i a);

Casts vector a of type __m512i to type __m512, with no change in value.



_mm512_castsi512_si128

extern __m128i __cdecl _mm512_castsi512_si128(__m512i a);

Casts vector a of type __m512d to type __m256d.



_mm512_castsi512_si256

extern __m256i __cdecl _mm512_castsi512_si256(__m512i a);

Casts vector a of type __m512i to type __m256i.