Let x
be a __m256i
containing the data for 8 32 bit unsigned integers.
I want a mask of type __m256
(float) indicating whether each of the values in x
is greater than the corresponding uint32 in another __m256i
vector.
I don't have AVX512 so can't use _mm256_cmp_epu32_mask
.
FOLLOW-UP:
Thank you @EOF. I've got this:
__m256i maxOfBoth = _mm256_max_epu32(val, t);
__m256i greater_than = _mm256_cmpeq_epi32(maxOfBoth, val);
__m256 mask = _mm256_castsi256_ps(greater_than);
mask
seems to contain nans where the ones should be.. My casting is wrong maybe.. How do I make sure that mask is 0.0s and 1.0s?