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.



Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.