aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopVersioning.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2020-10-24 12:42:43 +0100
committerSimon Pilgrim <llvm-dev@redking.me.uk>2020-10-24 12:42:43 +0100
commit310f62b4ff3ecb67cf696a977b194cceb326fa43 (patch)
treea978a2ca6e882d4922fb14680ea6762776ca5d77 /llvm/lib/Transforms/Utils/LoopVersioning.cpp
parentce356e1546c9c538134dcdfc9f2d728b8ba0719c (diff)
downloadllvm-310f62b4ff3ecb67cf696a977b194cceb326fa43.zip
llvm-310f62b4ff3ecb67cf696a977b194cceb326fa43.tar.gz
llvm-310f62b4ff3ecb67cf696a977b194cceb326fa43.tar.bz2
[InstCombine] narrowFunnelShift - fold trunc/zext or(shl(a,x),lshr(b,sub(bw,x))) -> fshl(a,b,x) (PR35155)
As discussed on PR35155, this extends narrowFunnelShift (recently renamed from narrowRotate) to support basic funnel shift patterns. Unlike matchFunnelShift we don't include the computeKnownBits limitation as extracting the pattern from the zext/trunc layers should be a indicator of reasonable funnel shift codegen, in D89139 we demonstrated how to efficiently promote funnel shifts to wider types. Differential Revision: https://reviews.llvm.org/D89542
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopVersioning.cpp')
0 files changed, 0 insertions, 0 deletions