[PATCH] D40633: [PCG] Poor shuffle lane tracking (PR35454 )

Konstantin Belochapka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 12 16:21:36 PST 2017


kbelochapka updated this revision to Diff 126643.
kbelochapka added a comment.

Reimplemented the fix based on the reviewers recommendations.
Now the fix makes an attempt to transform sequence :
SHUFFLE<T0>(MASK) -->  BITCACT<T1> -->  BINOP<T1> --> BITCAST<T0> --> SHUFFLE<T0>(MASK)
into:
BITCAST<T1> -->  BINOP<T1> --> SHUFFLE<T1>(NEW_MASK)
It is always possible when sizeof of BINOP vector element type is smaller than sizeof of SHUFFLE vector element type,
and sometimes is possible  when it is not.


https://reviews.llvm.org/D40633

Files:
  lib/Transforms/InstCombine/InstCombineInternal.h
  lib/Transforms/InstCombine/InstCombineVectorOps.cpp
  lib/Transforms/InstCombine/InstructionCombining.cpp
  test/Transforms/InstCombine/vec_shuffle.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D40633.126643.patch
Type: text/x-patch
Size: 33668 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171213/c72ac268/attachment.bin>


More information about the llvm-commits mailing list