[all-commits] [llvm/llvm-project] 4431a2: [X86][SSE] Combine unary shuffle(HORIZOP, HORIZOP) ...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Sun Apr 5 14:51:12 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 4431a29c60e7c56fe17a1053f7ae55994af6fdba
https://github.com/llvm/llvm-project/commit/4431a29c60e7c56fe17a1053f7ae55994af6fdba
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2020-04-05 (Sun, 05 Apr 2020)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/haddsub-shuf.ll
M llvm/test/CodeGen/X86/haddsub-undef.ll
M llvm/test/CodeGen/X86/phaddsub-undef.ll
M llvm/test/CodeGen/X86/shuffle-vs-trunc-256.ll
M llvm/test/CodeGen/X86/vec_saddo.ll
M llvm/test/CodeGen/X86/vec_smulo.ll
M llvm/test/CodeGen/X86/vec_ssubo.ll
M llvm/test/CodeGen/X86/vec_uaddo.ll
M llvm/test/CodeGen/X86/vec_umulo.ll
M llvm/test/CodeGen/X86/vec_usubo.ll
Log Message:
-----------
[X86][SSE] Combine unary shuffle(HORIZOP,HORIZOP) -> HORIZOP
We had previously limited the shuffle(HORIZOP,HORIZOP) combine to binary shuffles, but we can often merge unary shuffles just as well, folding in UNDEF/ZERO values into the 64-bit half lanes.
For the (P)HADD/HSUB cases this is limited to fast-horizontal cases but PACKSS/PACKUS combines under all cases.
More information about the All-commits
mailing list