[X86][SSE] combineSetCCMOVMSK - fold MOVMSK(SHUFFLE(X,u)) -> MOVMSK(X)
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 19 Jun 2020 09:27:09 +0000 (10:27 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 19 Jun 2020 09:57:52 +0000 (10:57 +0100)
commitcad2038700b204ba437b269dcba5b995f0c385ab
tree154a29afac0a86baaeb59bdd08a115183adcb23a
parent584d0d5c1749c13625a5d322178ccb4121eea610
[X86][SSE] combineSetCCMOVMSK - fold MOVMSK(SHUFFLE(X,u)) -> MOVMSK(X)

If we're permuting ALL the elements of a single vector, then for allof/anyof MOVMSK tests we can avoid the shuffle entirely.
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/movmsk-cmp.ll
llvm/test/CodeGen/X86/vector-reduce-and-bool.ll
llvm/test/CodeGen/X86/vector-reduce-or-bool.ll