[X86][AVX] combineBitcastvxi1 - improve handling of vectors truncated to vXi1
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 24 Mar 2021 14:05:43 +0000 (14:05 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 24 Mar 2021 14:05:59 +0000 (14:05 +0000)
commit7920527796eacd596d362ab5266e23189565892e
tree0ea273d522959795684e011a78e271acc6921a17
parent338d16275571df4d841609d7e12bcb310b3a95e6
[X86][AVX] combineBitcastvxi1 - improve handling of vectors truncated to vXi1

If we're truncating to vXi1 from a wider type, then prefer the original wider vector as is simplifies folding the separate truncations + extensions.

AVX1 this is only worth it for v8i1 cases, not v4i1 where we're always better off truncating down to v4i32 for movmsk.

Helps with some regressions encountered in D96609
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/vector-reduce-and-bool.ll
llvm/test/CodeGen/X86/vector-reduce-or-bool.ll
llvm/test/CodeGen/X86/vector-reduce-xor-bool.ll