diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-07-10 09:33:10 +0100 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-07-10 09:33:27 +0100 |
commit | 77133cc1e2c91678082d2098b959757e72dfce60 (patch) | |
tree | 64bf86d541aacf883235bb1b4c62ea6654d5fa4d /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 00997d1cad9ecd40c92aeae40269f6bfb9e58d11 (diff) | |
download | llvm-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