aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2020-07-10 09:33:10 +0100
committerSimon Pilgrim <llvm-dev@redking.me.uk>2020-07-10 09:33:27 +0100
commit77133cc1e2c91678082d2098b959757e72dfce60 (patch)
tree64bf86d541aacf883235bb1b4c62ea6654d5fa4d /clang/lib/Frontend/CompilerInvocation.cpp
parent00997d1cad9ecd40c92aeae40269f6bfb9e58d11 (diff)
downloadllvm-77133cc1e2c91678082d2098b959757e72dfce60.zip
llvm-77133cc1e2c91678082d2098b959757e72dfce60.tar.gz
llvm-77133cc1e2c91678082d2098b959757e72dfce60.tar.bz2
[X86][AVX] Attempt to fold PACK(SHUFFLE(X,Y),SHUFFLE(X,Y)) -> SHUFFLE(PACK(X,Y)).
Truncations lowered as shuffles of multiple (concatenated) vectors often leave us with lane-crossing shuffles that feed a PACKSS/PACKUS, if both shuffles are fed from the same 2 vector sources, then we can PACK the sources directly and shuffle the result instead. This is currently limited to whole i128 lanes in a 256-bit vector, but we can extend this if the need arises (but I'm not seeing many examples in real world code).
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions