[all-commits] [llvm/llvm-project] aab8b2: [X86] MatchVectorAllZeroTest - add support for icm...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Fri Mar 31 07:45:13 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: aab8b2eb080d795fd47be8191ddaac422b781a84
https://github.com/llvm/llvm-project/commit/aab8b2eb080d795fd47be8191ddaac422b781a84
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2023-03-31 (Fri, 31 Mar 2023)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/memcmp-more-load-pairs.ll
M llvm/test/CodeGen/X86/memcmp.ll
M llvm/test/CodeGen/X86/movmsk-cmp.ll
M llvm/test/CodeGen/X86/pr53419.ll
M llvm/test/CodeGen/X86/setcc-wide-types.ll
M llvm/test/CodeGen/X86/vector-reduce-or-bool.ll
M llvm/test/CodeGen/X86/vector-reduce-or-cmp.ll
Log Message:
-----------
[X86] MatchVectorAllZeroTest - add support for icmp(bitcast(icmp_ne(X,Y)),0) vector reduction patterns
Many allof/anyof/noneof reduction patterns are canonicalized by bitcasting a vXi1 vector comparison result to iN and compared against 0/-1.
This patch adds support for recognizing a icmp_ne vector comparison against 0, which matches an 'whole vectors are equal' comparison pattern.
There are a few more steps to follow in future patches - we need to add support to MatchVectorAllZeroTest for comparing against -1 (in some cases), and this initial refactoring of LowerVectorAllZero to LowerVectorAllEqual needs to be extended so we can fully merge with the similar combineVectorSizedSetCCEquality code (which deals with scalar integer memcmp patterns).
Another step towards Issue #53419
Differential Revision: https://reviews.llvm.org/D147243
More information about the All-commits
mailing list