diff options
author | Sanjay Patel <spatel@rotateright.com> | 2020-04-12 09:17:59 -0400 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2020-04-12 10:14:19 -0400 |
commit | c23cbefd9d73e8551b0c8b6cc3f14bb6b067ca92 (patch) | |
tree | f694be2ac0142c58ad40cf8d257726d8a250f452 /llvm/lib/Support/StringMap.cpp | |
parent | 101a69d71b93f901561621508ed36b187e594d91 (diff) | |
download | llvm-c23cbefd9d73e8551b0c8b6cc3f14bb6b067ca92.zip llvm-c23cbefd9d73e8551b0c8b6cc3f14bb6b067ca92.tar.gz llvm-c23cbefd9d73e8551b0c8b6cc3f14bb6b067ca92.tar.bz2 |
[VectorUtils] add IR-level analysis for widening of shuffle mask
This is similar to the recent move/addition of "scaleShuffleMask" (D76508),
but there are a couple of differences:
1. The existing x86 helper (canWidenShuffleElements) always tries to
divide-by-2, so it gets called iteratively and wouldn't handle the
general case of non-pow-2 length.
2. The existing x86 code handles "SM_SentinelZero" - we don't have
that in IR, but this code should be safe to use with that or other
special (negative) values.
The motivation is to enable shuffle folds in instcombine/vector-combine
that are similar to D76844 and D76727, but in the reverse-bitcast direction.
Those patterns are visible in the tests for D40633.
Differential Revision: https://reviews.llvm.org/D77881
Diffstat (limited to 'llvm/lib/Support/StringMap.cpp')
0 files changed, 0 insertions, 0 deletions