[PATCH] D29690: [AVX512] Fix EXTRACT_VECTOR_ELT for v2i1/v4i1/v32i1/v64i1 with variable index.

Igor Breger via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 7 15:17:00 PST 2017


igorb created this revision.

Enable EXTRACT_VECTOR_ELT for v2i1/v4i1/v32i1/v64i1 with variable index.  
Handle all possible cases for EXTRACT_VECTOR_ELT with variable index .Use BUILD_VECTOR to create VPERMV indexes instead special node VINSERT , all necessary logic exist in BUILD_VECTOR  lowering.

Fix Bug 31731 <https://llvm.org/bugs/show_bug.cgi?id=31731>

In this patch  i disable one of the tests (new test) , it fail  (as trunk ) on KNL with not related to this path error .

define zeroext i8 @test_extractelement_varible_v64i1(<64 x i8> %a, <64 x i8> %b, i32 %index) {
;  %t1 = icmp ugt <64 x i8> %a, %b
;  %t2 = extractelement <64 x i1> %t1, i32 %index
;  %res = zext i1 %t2 to i8
;  ret i8 %res
;}


Repository:
  rL LLVM

https://reviews.llvm.org/D29690

Files:
  lib/Target/X86/X86ISelLowering.cpp
  lib/Target/X86/X86ISelLowering.h
  lib/Target/X86/X86InstrAVX512.td
  lib/Target/X86/X86InstrFragmentsSIMD.td
  lib/Target/X86/X86InstrSSE.td
  test/CodeGen/X86/avx512-insert-extract.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29690.87532.patch
Type: text/x-patch
Size: 31912 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170207/ca23ca1d/attachment-0001.bin>


More information about the llvm-commits mailing list