This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [x86, 6/n] Replace builtins with vector extensions


On Tue, 11 Nov 2014, Kirill Yukhin wrote:

Hello Marc, UroÅ,
On 10 Nov 21:33, Uros Bizjak wrote:
On Sun, Nov 9, 2014 at 5:26 PM, Marc Glisse <marc.glisse@inria.fr> wrote:
Hello,

< > and == for integer vectors of size 128. I was surprised not to find
_mm_cmplt_epi64 anywhere. Note that I can do the same for size 256, but not
512, there is no corresponding intrinsic, there are only _mask versions that
return a mask.

Let's ask Kirill (CC'd) about missing intrinsics.
We have no `_mm_cmplt_epi64' intrinsic because there's no such instruction in Intel ISA.

We have _mm_cmplt_epi32 without a corresponding instruction though ;-)
(yes, it is useless)

All we have is [V]PCMP[EQ|GT] on pre-AVX-512* and VPCMP starting from
AVX-512*.
VPCMP is able to model VPCMPLT by specifiyng corresponding immediate and we
have intrinsics for that (config/i386/avx512fintrin.h):
	extern __inline __mmask16
	__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
	_mm512_cmplt_epu32_mask (__m512i __X, __m512i __Y)

--
Marc Glisse


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]