[PATCH] D30866: [X86] Recognize AVX2 gather instructions during lowering so we can modify the source input when the mask is all ones

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 11 10:06:33 PST 2017


craig.topper created this revision.

This patch implements AVX2 gather lowering the same way we do for AVX-512. This way we can recognize when the mask is all ones and change the source to undef. I also copied the forcing the source to zero if it was undef and the mask is not all ones. Not sure how important that is for either avx2 or avx512.

Unfortunately, due to the way fast isel works we are unable to recognize the mask being all ones and instead ended up forcing the source to zero even though the mask is all ones.


https://reviews.llvm.org/D30866

Files:
  lib/Target/X86/X86ISelDAGToDAG.cpp
  lib/Target/X86/X86ISelLowering.cpp
  lib/Target/X86/X86IntrinsicsInfo.h
  test/CodeGen/X86/avx2-gather.ll
  test/CodeGen/X86/avx2-intrinsics-fast-isel.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30866.91476.patch
Type: text/x-patch
Size: 17620 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170311/0be0b7cb/attachment.bin>


More information about the llvm-commits mailing list