OSDN Git Service

[x86] lower shuffle of extracts to AVX2 vperm instructions
authorSanjay Patel <spatel@rotateright.com>
Wed, 16 Jan 2019 14:15:18 +0000 (14:15 +0000)
committerSanjay Patel <spatel@rotateright.com>
Wed, 16 Jan 2019 14:15:18 +0000 (14:15 +0000)
commit0cb1621554afa8612836c4edfc890fe337320008
tree413c3bbbd3b33cb5440bc8e7b024737a221d3f98
parent5d37f6c75626db314b8dbf06231c8ffb502189fb
[x86] lower shuffle of extracts to AVX2 vperm instructions

I was trying to prevent shuffle regressions while matching more horizontal ops
and ended up here:
  shuf (extract X, 0), (extract X, 4), Mask --> extract (shuf X, undef, Mask'), 0

The affected tests were added for:
https://bugs.llvm.org/show_bug.cgi?id=34380

This patch won't change the examples in the bug report itself, but we should be
able to extend this to catch more types.

Differential Revision: https://reviews.llvm.org/D56756

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351346 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/avx512-shuffles/partial_permute.ll