15 _lengthOfIntrinsicVector =
static_cast<int>(
AVX512) / (
sizeof(T) * bitsPerByte);
16 _degreesOfFreedomPadded =
static_cast<index_t>(_lengthOfIntrinsicVector) *
static_cast<index_t>(ceilf(degreesOfFreedom /
static_cast<float>(_lengthOfIntrinsicVector)));
17 _numberOfIntrinsicVectors = _degreesOfFreedomPadded / _lengthOfIntrinsicVector;
19 _numberOfPaddedEntries =
static_cast<int>(_degreesOfFreedomPadded - degreesOfFreedom);
21 else if ((alignment ==
AVX2|| alignment ==
AVX512) && properties.CPUSupportsAVX2())
25 _lengthOfIntrinsicVector =
static_cast<int>(
AVX2) / (
sizeof(T) * bitsPerByte);
26 _degreesOfFreedomPadded =
static_cast<index_t>(_lengthOfIntrinsicVector) *
static_cast<index_t>(ceilf(degreesOfFreedom /
static_cast<float>(_lengthOfIntrinsicVector)));
27 _numberOfIntrinsicVectors = _degreesOfFreedomPadded / _lengthOfIntrinsicVector;
29 _numberOfPaddedEntries =
static_cast<int>(_degreesOfFreedomPadded - degreesOfFreedom);
33 _lengthOfIntrinsicVector = 1;
34 _degreesOfFreedomPadded = degreesOfFreedom;
38 _masks.reset(
new IntrinsicMasks(_numberOfIntrinsicVectors, _lengthOfIntrinsicVector, _numberOfPaddedEntries));