Intel® C++ Compiler 16.0 User and Reference Guide
Scales float32 vectors. Corresponding instruction is VSCALEPS. This intrinsic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).
Without Mask extern __m512 __cdecl _mm512_scale_ps(_m512 v2, _m512i v3); |
With Mask extern __m512 __cdecl _mm512_mask_scale_ps(_m512 v1_old, __mmask16 k1, _m512 v2, _m512i v3); |
v2 |
float32 vector used for rounding |
v3 |
float32 vector providing exponent element to be multiplied to corresponding element in vector v2 |
v1_old |
Source vector that retains old values of the destination vector; the resulting vector gets corresponding elements from v1_old for zero mask bits |
k1 |
Writemask; only those elements of the source vectors with corresponding bit set to '1' in the k1 mask are computed and stored in the result; elements in the result vector corresponding to zero bit in k1 are copied from corresponding elements of vector v1_old |
Performs an element-by-element scale of float32 vector v2 by multiplying it by 2**exponent, where exponent is the corresponding element of vector v3.
This intrinsic is required for scaling 'u' and 'v' coordinates according to the mipmap size, which is 2**mipmap level, and for the evaluation of Exp2. Where the exponent goes out of range, the operation is handled as if a multiplication of float32 vectors with 2**exp is performed.
The masked variant has one additional argument: k1. Only those elements in the source vectors with the corresponding bit set in vector mask k1 are used for computing.
Returns the result of the scaling operation.