[X86] LowerVectorAllEqual - split ALLOF(CMPEQ(X,Y)) -> AND(CMPEQ(X[0],Y[0]),CMPEQ...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 5 Apr 2023 11:28:26 +0000 (12:28 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 5 Apr 2023 12:28:09 +0000 (13:28 +0100)
commitcc89ebe2b9230f34831176ada8876dff3fffc24b
tree58c1eb12681f1d464097f46a034331ab7eb03ac4
parent79a1e32915631469b4ea50c0e00ccd7ecc828d00
[X86] LowerVectorAllEqual - split ALLOF(CMPEQ(X,Y)) -> AND(CMPEQ(X[0],Y[0]),CMPEQ(X[1],Y[1]),....) on MOVMSK codegen

Fix minor regression on pre-PTEST targets, since these are always 128-bits we're better off reducing the comparison results (assuming we're not comparing against 0/-1).
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/vector-reduce-and-bool.ll