|
Message-Id: <31E6F5E3-4AFF-401B-8DA7-D213AC34BC65@gmail.com> Date: Sat, 18 Apr 2015 21:08:08 +0800 From: Lei Zhang <zhanglei.april@...il.com> To: john-dev@...ts.openwall.com Subject: Re: AVX512 support detection > On Apr 18, 2015, at 7:48 PM, magnum <john.magnum@...hmail.com> wrote: > > On 2015-04-18 13:33, magnum wrote: >> Oh, and I think these too are not found in MIC (not even _epi32) and >> maybe not even for AVX512: >> >> _mm512_cmpeq_epi32 >> _mm512_cmpeq_epi8 >> >> A recent change to wordlist.c needs vcmpeq_epi8() so I guess we should >> emulate it, or perhaps drop __MIC__ and maybe __AVX512__ from that code. > > It looks like _mm512_cmp_epi8_mask() in AVX512BW will emulate > _mm512_cmpeq_epi8 nicely while _mm512_cmp_epi32_mask exist on MIC but > not AVX512? _mm512_cmp_epi32_mask exists on both MIC and AVX512, while _mm512_cmp_epi8/16/64_mask are only available on AVX512. Actually, it seems that any intrinsics with a "epi8" or "epi16" in its name are in the AVX512BW territory, thus not available on MIC. Some intrinsics with "epi64", like _mm512_add_epi64, are not available on MIC either. I think there's no need to emulate vcmpeq_epi8 with _mm512_cmp_epi8_mask, which will introduce unnecessary overhead. In cases where vcmpeq_epi8 is needed, we can replace it with proper use of _mm512_cmp_epi8_mask. I've already done the same when implementing vtesteq_epi32, although with epi32 instead of epi8. BTW, to make use of _mm512_cmp_epi8_mask, we also need some converting function to convert the result(__mask64) to a normal integer. There is a _mm512_mask2int intrinsic on MIC, that converts a __mmask16 to an integer. But I can't find some intrinsics from Intel's intrinsics guide that can handle __mmask32 or __mmask64. Even _mm512_mask2int is listed to be available on MIC only. The current intrinsics guide might be somehow incomplete yet. Lei
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.