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 Trigonometric Operations (512-bit)

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>


Intrinsic Name

Operation

Corresponding
Intel® AVX-512 Instruction

_mm512_acos_pd, _mm512_mask_acos_pd

Calculates inverse cosine value for float64 vector elements.

None.

_mm512_acos_ps, _mm512_mask_acos_ps

Calculates inverse cosine value for float32 vector elements.

None.

_mm512_acosh_pd, _mm512_mask_acosh_pd

Calculates inverse hyperbolic cosine value for float64 vector elements.

None.

_mm512_acosh_ps, _mm512_mask_acosh_ps

Calculates inverse hyperbolic cosine value for float32 vector elements.

None.

_mm512_asin_pd, _mm512_mask_asin_pd

Calculates inverse sine value for float64 vector elements.

None.

_mm512_asin_ps, _mm512_mask_asin_ps

Calculates inverse sine value for float32 vector elements.

None.

_mm512_asinh_pd, _mm512_mask_asinh_pd

Calculates inverse hyperbolic sine value for float64 vector elements.

None.

_mm512_asinh_ps, _mm512_mask_asinh_ps

Calculates inverse hyperbolic sine value for float32 vector elements.

None.

_mm512_atan_pd, _mm512_mask_atan_pd

Calculates inverse tangent value for float64 vector elements.

None.

_mm512_atan_ps, _mm512_mask_atan_ps

Calculates inverse tangent value for float32 vector elements.

None.

_mm512_atan2_pd, _mm512_mask_atan2_pd

Calculates inverse tangent value for float64 elements from multiple vectors.

None.

_mm512_atan2_ps, _mm512_mask_atan2_ps

Calculates inverse tangent value for float32 elements from multiple vectors.

None.

_mm512_atanh_pd, _mm512_mask_atanh_pd

Calculates inverse hyperbolic tangent value for float64 vector elements.

None.

_mm512_atanh_ps, _mm512_mask_atanh_ps

Calculates inverse hyperbolic tangent value for float32 vector elements.

None.

_mm512_cos_pd, _mm512_mask_cos_pd

Calculates cosine value for float64 vector elements.

None.

_mm512_cos_ps, _mm512_mask_cos_ps

Calculates cosine value for float32 vector elements.

None.

_mm512_cosd_pd, _mm512_mask_cosd_pd

Calculates cosine value (in degrees) for float64 vector elements.

None.

_mm512_cosd_ps, _mm512_mask_cosd_ps

Calculates cosine value (in degrees) for float32 vector elements.

None.

_mm512_cosh_pd, _mm512_mask_cosh_pd

Calculates hyperbolic cosine value for float64 vector elements.

None.

_mm512_cosh_ps, _mm512_mask_cosh_ps

Calculates hyperbolic cosine value for float32 vector elements.

None.

_mm512_sin_pd, _mm512_mask_sin_pd

Calculates sine value for float64 vector elements.

None.

_mm512_sin_ps, _mm512_mask_sin_ps

Calculates sine value for float32 vector elements.

None.

_mm512_sincos_pd, _mm512_mask_sincos_pd

Calculates the sine and cosine values for float64 vector elements.

None.

_mm512_sincos_ps, _mm512_mask_sincos_ps

Calculates the sine and cosine values for float32 vector elements.

None.

_mm512_sind_pd, _mm512_mask_sind_pd

Calculates sine value (in degrees) for float64 vector elements.

None.

_mm512_sind_ps, _mm512_mask_sind_ps

Calculates sine value (in degrees) for float32 vector elements.

None.

_mm512_sinh_pd, _mm512_mask_sinh_pd

Calculates hyperbolic sine value for float64 vector elements.

None.

_mm512_sinh_ps, _mm512_mask_sinh_ps

Calculates hyperbolic sine value for float32 vector elements.

None.

_mm512_tan_pd, _mm512_mask_tan_pd

Calculates tangent value for float64 vector elements.

None.

_mm512_tan_ps, _mm512_mask_tan_ps

Calculates tangent value for float32 vector elements.

None.

_mm512_tand_pd, _mm512_mask_tand_pd

Calculates tangent (in degrees) value for float64 vector elements.

None.

_mm512_tand_ps, _mm512_mask_tand_ps

Calculates tangent (in degrees) value for float32 vector elements.

None.

_mm512_tanh_pd, _mm512_mask_tanh_pd

Calculates hyperbolic tangent value for float64 vector elements.

None.

_mm512_tanh_ps, _mm512_mask_tanh_ps

Calculates hyperbolic tangent value for float32 vector elements.

None.


variable definition
k

writemask used as a selector

a

first source vector element

b

second source vector element

src

source element to use based on writemask result


_mm512_acos_pd

extern __m512d __cdecl _mm512_acos_pd(__m512d a);

Computes the inverse cosine of packed float64 elements in a, and stores the result.



_mm512_mask_acos_pd

extern __m512d __cdecl _mm512_mask_acos_pd(__m512d src, __mmask8 k, __m512d a);

Computes the inverse cosine of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_acos_ps

extern __m512 __cdecl _mm512_acos_ps(__m512 a);

Computes the inverse cosine of packed float32 elements in a, and stores the result.



_mm512_mask_acos_ps

extern __m512 __cdecl _mm512_mask_acos_ps(__m512 src, __mmask16 k, __m512 a);

Computes the inverse cosine of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_acosh_pd

extern __m512d __cdecl _mm512_acosh_pd(__m512d a);

Computes the inverse hyperbolic cosine of packed float64 elements in a, and stores the result.



_mm512_mask_acosh_pd

extern __m512d __cdecl _mm512_mask_acosh_pd(__m512d src, __mmask8 k, __m512d a);

Computes the inverse hyperbolic cosine of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_acosh_ps

extern __m512 __cdecl _mm512_acosh_ps(__m512 a);

Computes the inverse hyperbolic cosine of packed float32 elements in a, and stores the result.



_mm512_mask_acosh_ps

extern __m512 __cdecl _mm512_mask_acosh_ps(__m512 src, __mmask16 k, __m512 a);

Computes the inverse hyperbolic cosine of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_asin_pd

extern __m512d __cdecl _mm512_asin_pd(__m512d a);

Computes the inverse sine of packed float64 elements in a, and stores the result.



_mm512_mask_asin_pd

extern __m512d __cdecl _mm512_mask_asin_pd(__m512d src, __mmask8 k, __m512d a);

Computes the inverse sine of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_asin_ps

extern __m512 __cdecl _mm512_asin_ps(__m512 a);

Computes the inverse sine of packed float32 elements in a, and stores the result.



_mm512_mask_asin_ps

extern __m512 __cdecl _mm512_mask_asin_ps(__m512 src, __mmask16 k, __m512 a);

Computes the inverse sine of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_asinh_pd

extern __m512d __cdecl _mm512_asinh_pd(__m512d a);

Computes the inverse hyperbolic sine of packed float64 elements in a, and stores the result.



_mm512_mask_asinh_pd

extern __m512d __cdecl _mm512_mask_asinh_pd(__m512d src, __mmask8 k, __m512d a);

Computes the inverse hyperbolic sine of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_asinh_ps

extern __m512 __cdecl _mm512_asinh_ps(__m512 a);

Computes the inverse hyperbolic sine of packed float32 elements in a, and stores the result.



_mm512_mask_asinh_ps

extern __m512 __cdecl _mm512_mask_asinh_ps(__m512 src, __mmask16 k, __m512 a);

Computes the inverse hyperbolic sine of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_atan2_pd

extern __m512d __cdecl _mm512_atan2_pd(__m512d a, __m512d b);

Computes the inverse tangent of packed float64 elements in a and b, and stores the result.



_mm512_mask_atan2_pd

extern __m512d __cdecl _mm512_mask_atan2_pd(__m512d src, __mmask8 k, __m512d a, __m512d b);

Computes the inverse tangent of packed float64 elements in a and b, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_atan2_ps

extern __m512 __cdecl _mm512_atan2_ps(__m512 a, __m512 b);

Computes the inverse tangent of packed float32 elements in a and b, and stores the result.



_mm512_mask_atan2_ps

extern __m512 __cdecl _mm512_mask_atan2_ps(__m512 src, __mmask16 k, __m512 a, __m512 b);

Computes the inverse tangent of packed float32 elements in a and b, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_atan_pd

extern __m512d __cdecl _mm512_atan_pd(__m512d a);

Computes the inverse tangent of packed float64 elements in a, and stores the result.



_mm512_mask_atan_pd

extern __m512d __cdecl _mm512_mask_atan_pd(__m512d src, __mmask8 k, __m512d a);

Computes the inverse tangent of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_atan_ps

extern __m512 __cdecl _mm512_atan_ps(__m512 a);

Computes the inverse tangent of packed float32 elements in a, and stores the result.



_mm512_mask_atan_ps

extern __m512 __cdecl _mm512_mask_atan_ps(__m512 src, __mmask16 k, __m512 a);

Computes the inverse tangent of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_atanh_pd

extern __m512d __cdecl _mm512_atanh_pd(__m512d a);

Computes the inverse hyperbolic tangent of packed float64 elements in a, and stores the result.



_mm512_mask_atanh_pd

extern __m512d __cdecl _mm512_mask_atanh_pd(__m512d src, __mmask8 k, __m512d a);

Computes the inverse hyperbolic tangent of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_atanh_ps

extern __m512 __cdecl _mm512_atanh_ps(__m512 a);

Computes the inverse hyperbolic tangent of packed float32 elements in a, and stores the result.



_mm512_mask_atanh_ps

extern __m512 __cdecl _mm512_mask_atanh_ps(__m512 src, __mmask16 k, __m512 a);

Computes the inverse hyperbolic tangent of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_cos_pd

extern __m512d __cdecl _mm512_cos_pd(__m512d a);

Computes the cosine of packed float64 elements in a, and stores the result.



_mm512_mask_cos_pd

extern __m512d __cdecl _mm512_mask_cos_pd(__m512d src, __mmask8 k, __m512d a);

Computes the cosine of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_cos_ps

extern __m512 __cdecl _mm512_cos_ps(__m512 a);

Computes the cosine of packed float32 elements in a, and stores the result.



_mm512_mask_cos_ps

extern __m512 __cdecl _mm512_mask_cos_ps(__m512 src, __mmask16 k, __m512 a);

Computes the cosine of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_cosd_pd

extern __m512d __cdecl _mm512_cosd_pd(__m512d a);

Computes the cosine (in degrees) of packed float64 elements in a, and stores the result.



_mm512_mask_cosd_pd

extern __m512d __cdecl _mm512_mask_cosd_pd(__m512d src, __mmask8 k, __m512d a);

Computes the cosine (in degrees) of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_cosd_ps

extern __m512 __cdecl _mm512_cosd_ps(__m512 a);

Computes the cosine (in degrees) of packed float32 elements in a, and stores the result.



_mm512_mask_cosd_ps

extern __m512 __cdecl _mm512_mask_cosd_ps(__m512 src, __mmask16 k, __m512 a);

Computes the cosine (in degrees) of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_cosh_pd

extern __m512d __cdecl _mm512_cosh_pd(__m512d a);

Computes the hyperbolic cosine of packed float64 elements in a, and stores the result.



_mm512_mask_cosh_pd

extern __m512d __cdecl _mm512_mask_cosh_pd(__m512d src, __mmask8 k, __m512d a);

Computes the hyperbolic cosine of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_cosh_ps

extern __m512 __cdecl _mm512_cosh_ps(__m512 a);

Computes the hyperbolic cosine of packed float32 elements in a, and stores the result.



_mm512_mask_cosh_ps

extern __m512 __cdecl _mm512_mask_cosh_ps(__m512 src, __mmask16 k, __m512 a);

Computes the hyperbolic cosine (in degrees) of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_sin_pd

extern __m512d __cdecl _mm512_sin_pd(__m512d a);

Computes the sine of packed float64 elements in a, and stores the result.



_mm512_mask_sin_pd

extern __m512d __cdecl _mm512_mask_sin_pd(__m512d src, __mmask8 k, __m512d a);

Computes the sine of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_sin_ps

extern __m512 __cdecl _mm512_sin_ps(__m512 a);

Computes the sine of packed float32 elements in a, and stores the result.



_mm512_mask_sin_ps

extern __m512 __cdecl _mm512_mask_sin_ps(__m512 src, __mmask16 k, __m512 a);

Computes the sine (in degrees) of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_sincos_pd

extern __m512d __cdecl _mm512_sincos_pd(__m512d a);

Computes the sine and cosine of packed float64 elements in a, and stores the result.



_mm512_mask_sincos_pd

extern __m512d __cdecl _mm512_mask_sincos_pd(__m512d src, __mmask8 k, __m512d a);

Computes the sine and cosine of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_sincos_ps

extern __m512 __cdecl _mm512_sincos_ps(__m512 a);

Computes the sine and cosine of packed float32 elements in a, and stores the result.



_mm512_mask_sincos_ps

extern __m512 __cdecl _mm512_mask_sincos_ps(__m512 src, __mmask16 k, __m512 a);

Computes the sineand cosine of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_sind_pd

extern __m512d __cdecl _mm512_sind_pd(__m512d a);

Computes the sine (in degrees) of packed float64 elements in a, and stores the result.



_mm512_mask_sind_pd

extern __m512d __cdecl _mm512_mask_sind_pd(__m512d src, __mmask8 k, __m512d a);

Computes the sine (in degrees) packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_sind_ps

extern __m512 __cdecl _mm512_sind_ps(__m512 a);

Computes the sine (in degrees) of packed float32 elements in a, and stores the result.



_mm512_mask_sind_ps

extern __m512 __cdecl _mm512_mask_sind_ps(__m512 src, __mmask16 k, __m512 a);

Computes the sine (in degrees) of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_sinh_pd

extern __m512d __cdecl _mm512_sinh_pd(__m512d a);

Computes the hyperbolic sine of packed float64 elements in a, and stores the result.



_mm512_mask_sinh_pd

extern __m512d __cdecl _mm512_mask_sinh_pd(__m512d src, __mmask8 k, __m512d a);

Computes the hyperbolic sine of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_sinh_ps

extern __m512 __cdecl _mm512_sinh_ps(__m512 a);

Computes the hyperbolic sine of packed float32 elements in a, and stores the result.



_mm512_mask_sinh_ps

extern __m512 __cdecl _mm512_mask_sinh_ps(__m512 src, __mmask16 k, __m512 a);

Computes the hyperbolic cosine of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_tan_pd

extern __m512d __cdecl _mm512_tan_pd(__m512d a);

Computes the tangent of packed float64 elements in a, and stores the result.



_mm512_mask_tan_pd

extern __m512d __cdecl _mm512_mask_tan_pd(__m512d src, __mmask8 k, __m512d a);

Computes the tangent of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_tan_ps

extern __m512 __cdecl _mm512_tan_ps(__m512 a);

Computes the tangent of packed float32 elements in a, and stores the result.



_mm512_mask_tan_ps

extern __m512 __cdecl _mm512_mask_tan_ps(__m512 src, __mmask16 k, __m512 a);

Computes the tangent of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_tand_pd

extern __m512d __cdecl _mm512_tand_pd(__m512d a);

Computes the tangent (in degrees) of packed float64 elements in a, and stores the result.



_mm512_mask_tand_pd

extern __m512d __cdecl _mm512_mask_tand_pd(__m512d src, __mmask8 k, __m512d a);

Computes tangent (in degrees) of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_tand_ps

extern __m512 __cdecl _mm512_tand_ps(__m512 a);

Computes the tangent (in degrees) of packed float32 elements in a, and stores the result.



_mm512_mask_tand_ps

extern __m512 __cdecl _mm512_mask_tand_ps(__m512 src, __mmask16 k, __m512 a);

Computes the tangent (in degrees) of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_tanh_pd

extern __m512d __cdecl _mm512_tanh_pd(__m512d a);

Computes the hyperbolic tangent of packed float64 elements in a, and stores the result.



_mm512_mask_tanh_pd

extern __m512d __cdecl _mm512_mask_tanh_pd(__m512d src, __mmask8 k, __m512d a);

Computes the hyperbolic tangent of packed float64 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).



_mm512_tanh_ps

extern __m512 __cdecl _mm512_tanh_ps(__m512 a);

Computes the hyperbolic tangent of packed float32 elements in a, and stores the result.



_mm512_mask_tanh_ps

extern __m512 __cdecl _mm512_mask_tanh_ps(__m512 src, __mmask16 k, __m512 a);

Computes the hyperbolic tangent of packed float32 elements in a, and stores the result using writemask k (elements are copied from src when the corresponding mask bit is not set).