https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82855
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 42550 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42550&action=edit gcc8-pr82855-1.patch Untested patch, part 3. With these 3, I get for the second function with -O2 -mavx512{vl,dq} -mtune=intel: vpxord %xmm0, %xmm0, %xmm0 xorl %eax, %eax vpcmpeqd (%rdi), %ymm0, %k1 ktestb %k1, %k1 sete %al With the generic tuning, the load is performed separately from the comparison.