[X86] LowerFunnelShift - allow non-constant vXi8 unpack(y,x) << zext(z) lowering...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 29 Jan 2022 13:58:25 +0000 (13:58 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Sat, 29 Jan 2022 13:58:30 +0000 (13:58 +0000)
commit7e849fd97b6abd1de30ffc66da1ebf47afc7ab70
tree99c1fd353f7299d3fa28b9f25639f1b9e4c257ca
parenta6cabd98021fe357d666614601eca2031bf775de
[X86] LowerFunnelShift - allow non-constant vXi8 unpack(y,x) << zext(z) lowering pre-AVX512

Without AVX512 (which can efficiently extend/truncate to vXi16/vXi32), unpacking/packing to vXi16 is more efficient that relying on the (uops-heavy) PBLENDV shift expansion
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/vector-fshl-128.ll
llvm/test/CodeGen/X86/vector-fshl-256.ll