Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 12/16/2022
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 Set 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>

Setting Vectors of Undefined Value


Intrinsic Name

Operation

Corresponding
Intel® AVX-512 Instruction

_mm512_undefined

Returns vector of type __m512i with undefined elements.

None.

_mm512_undefined_epi32

Returns vector of type __m512i with undefined elements.

None.

_mm512_undefined_pd

Returns vector of type __m512d with undefined elements.

None.

_mm512_undefined_ps

Returns vector of type __m512 with undefined elements.

None.

_mm512_set1_pd

Broadcast float64 element to all destination elements.

None.

_mm512_set1_ps

Broadcast float32 element to all destination elements.

None.

_mm512_set4_pd

Broadcast float64 element to destination elements with repeated four element sequence.

None.

_mm512_set4_ps

Broadcast float32 element to destination elements with repeated four element sequence.

None.

_mm512_set_pd

Broadcast packed float64 elements with supplied values.

None.

_mm512_set_ps

Broadcast packed float32 elements with supplied values.

None.

_mm512_setr4_pd

Broadcast packed float64 elements with the repeated four element sequence in reverse order.

None.

_mm512_setr4_ps

Broadcast packed float32 elements with the repeated four element sequence in reverse order.

None.

_mm512_setr_pd

Broadcast packed float64 elements with supplied values in reverse order.

None.

_mm512_setr_ps

Broadcast packed float32 elements with supplied values in reverse order.

None.

_mm512_setzero_pd

Returns vector of type __m512d with all elements set to zero.

VXORPD

_mm512_setzero_ps

Returns vector of type __m512 with all elements set to zero.

VXORPS

_mm512_undefined_pd

Returns vector of type __m512d with undefined elements.

None.

_mm512_undefined_ps

Returns vector of type __m512 with undefined elements.

None.

_mm512_set1_epi8

Broadcast 8-bit integer a to all destination elements.

VPBROADCASTB

_mm512_set1_epi32, _mm512_mask_set1_epi32, _mm512_maskz_set1_epi32

Broadcast a single int32 element to all destination elements.

VPBROADCASTD

_mm512_set1_epi64, _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64

Broadcast a single int64 element to all destination elements.

VPBROADCASTQ

_mm512_set1_epi16

Broadcast a single int16 element to all destination elements

VPBROADCASTW

_mm512_set4_epi32

Broadcast packed int32 elements with repeated four element sequence.

None.

_mm512_set4_epi64

Broadcast packed int64 elements in with repeated four element sequence.

None.

_mm512_set_epi32

Broadcast packed int32 elements with supplied values.

None.

_mm512_set_epi64

Broadcast packed int64 elements with supplied values.

None.

_mm512_setr4_epi32

Broadcast packed int32 elements with repeated four element sequence in reverse order.

None.

_mm512_setr4_epi64

Broadcast packed int64 elements with repeated four element sequence in reverse order.

None.

_mm512_setr_epi32

Broadcast packed int32 elements with supplied values in reverse order.

None.

_mm512_setr_epi64

Broadcast packed int64 elements with supplied values in reverse order.

None.

_mm512_setzero_epi32

_mm512_setzero_si512

Returns vector of type __m512i with all elements set to zero.

VPXOR


variable definition
k

writemask used as a selector

a

first source vector element

e

elements for set operation

a, b, c, d

elements for set operation


_mm512_set1_pd

extern __m512d __cdecl _mm512_set1_pd(double a);

Broadcasts float64 value a to all destination elements.



_mm512_set1_ps

extern __m512 __cdecl _mm512_set1_ps(float a);

Broadcasts float32 value a to all destination elements.



_mm512_set4_pd

extern __m512d __cdecl _mm512_set4_pd(double d, double c, double b, double a);

Sets packed float64 elements in destination with the repeated four element sequence (dcba dcba).



_mm512_set4_ps

extern __m512 __cdecl _mm512_set4_ps(float d, float c, float b, float a);

Sets packed float32 elements in destination with the repeated four element sequence. (dcba dcba dcba dcba).



_mm512_set_pd

extern __m512 __cdecl _mm512_set_pd(float e7, float e6, float e5, float e4, float e3, float e2, float e1, float e0);

Sets packed float64 elements in destination with supplied values.



_mm512_set_ps

extern __m512 __cdecl _mm512_set_ps(float e15, float e14, float e13, float e12, float e11, float e10, float e9, float e8, float e7, float e6, float e5, float e4, float e3, float e2, float e1, float e0);

Sets packed float32 elements in destination with supplied values.



_mm512_setr4_pd

extern __m512d __cdecl _mm512_setr4_pd(double a, double b, double c, double d);

Broadcast packed float64 elements in destination with the repeated four element sequence in reverse order.



_mm512_setr4_ps

extern __m512 __cdecl _mm512_setr4_ps(float a, float b, float c, float d);

Sets packed float32 elements in destination with the repeated four element sequence in reverse order.



_mm512_setr_pd

extern __m512d __cdecl _mm512_setr_pd(double e0, double e1, double e2, double e3, double e4, double e5, double e6, double e7);

Sets packed float64 elements in destination with supplied values in reverse order.



_mm512_setr_ps

extern __m512 __cdecl _mm512_setr_ps(float e0, float e1, float e2, float e3, float e4, float e5, float e6, float e7, float e8, float e9, float e10, float e11, float e12, float e13, float e14, float e15);

Sets packed float32 elements in destination with supplied values in reverse order.



_mm512_setzero_pd

extern __m512 __cdecl _mm512_setzero_pd(void);

Returns vector of type __m512d with all elements set to zero.



_mm512_setzero_ps

extern __m512 __cdecl _mm512_setzero_ps(void);

Returns vector of type __m512 with all elements set to zero.



_mm512_undefined_pd

extern __m512 __cdecl _mm512_undefined_pd(void)

Returns vector of type __m512d with undefined elements.



_mm512_undefined_ps

extern __m512 __cdecl _mm512_undefined_ps(void)

Returns vector of type __m512 with undefined elements.



_mm512_set1_epi16

extern __m512i __cdecl _mm512_set1_epi16(short a);

Broadcast int16 a to all destination elements.



_mm512_set1_epi8

extern __m512i __cdecl _mm512_set1_epi8(char a);

Broadcasts int8 a to all destination elements.



_mm512_set1_epi32

extern __m512i __cdecl _mm512_set1_epi32(int a);

Broadcasts int32 a to all destination elements.



_mm512_mask_set1_epi32

extern __m512i __cdecl _mm512_mask_set1_epi32(__m512i src, __mmask16 k, int a);

Broadcasts int32 a to all destination elements using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_maskz_set1_epi32

extern __m512i __cdecl _mm512_maskz_set1_epi32(__mmask16 k, int a);

Broadcasts int32 a to all destination elements using zeromask k (elements are zeroed out when the corresponding mask bit is not set).



_mm512_set1_epi64

extern __m512i __cdecl _mm512_set1_epi64(__int64 a);

Broadcasts int64 a to all destination elements.



_mm512_mask_set1_epi64

extern __m512i __cdecl _mm512_mask_set1_epi64(__m512i src, __mmask8 k, __int64 a);

Broadcasts int64 a to all destination elements using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_maskz_set1_epi64

extern __m512i __cdecl _mm512_maskz_set1_epi64(__mmask8 k, __int64 a);

Broadcasts int64 a to all destination elements using zeromask k (elements are zeroed out when the corresponding mask bit is not set).



_mm512_set4_epi32

extern __m512i __cdecl _mm512_set4_epi32(int d, int c, int b, int a);

Sets packed int32 in destination with the repeated four element sequence.



_mm512_set4_epi64

extern __m512i __cdecl _mm512_set4_epi64(__int64 d, __int64 c, __int64 b, __int64 a);

Sets packed int64 in destination with the repeated four element sequence.



_mm512_set_epi32

extern __m512i __cdecl _mm512_set_epi32(int e15, int e14, int e13, int e12, int e11, int e10, int e9, int e8, int e7, int e6, int e5, int e4, int e3, int e2, int e1, int e0);

Sets packed int32 in destination with supplied values.



_mm512_set_epi64

extern __m512i __cdecl _mm512_set_epi64(__int64 e7, __int64 e6, __int64 e5, __int64 e4, __int64 e3, __int64 e2, __int64 e1, __int64 e0);

Sets packed int64 in destination with supplied values.



_mm512_setr4_epi32

extern __m512i __cdecl _mm512_setr4_epi32(int a, int b, int c, int d);

Sets packed int32 in destination with the repeated four element sequence in reverse order.



_mm512_setr4_epi64

extern __m512i __cdecl _mm512_setr4_epi64(__int64 a, __int64 b, __int64 c, __int64 d);

Sets packed int64 in destination with the repeated four element sequence in reverse order.



_mm512_setr_epi32

extern __m512i __cdecl _mm512_setr4_epi32(int a, int b, int c, int d);

Sets packed int32 in destination with supplied values in reverse order.



_mm512_setr_epi64

extern __m512i __cdecl _mm512_setr_epi64(__int64 e0, __int64 e1, __int64 e2, __int64 e3, __int64 e4, __int64 e5, __int64 e6, __int64 e7);

Sets packed int64 in destination with supplied values in reverse order.



_mm512_setzero_epi32

extern __m512 __cdecl _mm512_setzero(void);

Returns vector of type __m512i with all elements set to zero.



_mm512_setzero_si512

extern __m512 __cdecl _mm512_setzero(void);

Returns vector of type __m512i with all elements set to zero.



_mm512_undefined_epi32

extern __m512 __cdecl _mm512_undefined_epi32(void);

Returns vector of type __m512i with undefined elements.



_mm512_setzero

extern __m512 __cdecl _mm512_setzero(void);

Returns vector of type __m512 with all elements set to zero.



_mm512_undefined

extern __m512 __cdecl _mm512_undefined(void);

Returns vector of type __m512 with undefined elements.