Do you have any thoughts on changing types like Vec16cb into mask types when AVX512 is available? Does code using the VCL tend to depend on using the boolean-vector types as proper vectors?
For example, static inline Vec16cb operator != (Vec16c const & a, Vec16c const & b) could use __mmask16 _mm_cmpneq_epi8_mask (__m128i a, __m128i b), but we'd also have to expand that mask back to a vector. There's an instruction for that, but we *definitely* don't want to ever generate braindead code that keeps turning compare results into vectors and then back into masks. |