http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54525
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> 2012-09-15 08:28:08 UTC --- (In reply to comment #0) > vpcmpgtq %xmm2, %xmm3, %xmm2 > vpcmpeqd %xmm3, %xmm3, %xmm3 [...] > (also notice that for some reason all comparisons (I tried < <= > >= and even > with a ~ in front) generate a combination of gt and eq, never just gt) Hmm, that remark was nonsense, the eq has nothing to do with the gt, it is just the way the compiler generates a constant -1 vector so it can then xor with it to compute a ~.