[PATCH] D25594: [AVX-512] Add support for creating SIGN_EXTEND_VECTOR_INREG and ZERO_EXTEND_VECTOR_INREG for 512-bit vectors to support vpmovzxbq and vpmovsxbq.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 13 23:20:41 PDT 2016


craig.topper created this revision.
craig.topper added reviewers: RKSimon, delena.
craig.topper added a subscriber: llvm-commits.

The one tricky thing about this is that the sign/zero_extend_inreg uses v64i8 as an input type which isn't legal without BWI support. Though the vpmovsxbq and vpmovzxbq instructions themselves don't require BWI. To support this we need to add custom lowering for ZERO_EXTEND_VECTOR_INREG with v64i8 input. This can mostly reuse the existing sign extend code with a couple checks for sign extend vs zero extend added.


https://reviews.llvm.org/D25594

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/avx512-pmovxrm.ll
  test/CodeGen/X86/vector-sext.ll
  test/CodeGen/X86/vector-zext.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D25594.74620.patch
Type: text/x-patch
Size: 11751 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161014/2c5531c1/attachment.bin>


More information about the llvm-commits mailing list