[PATCH] D60610: [X86][SSE] Recognise vXi1 boolean anyof/allof reduction patterns

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 12 05:28:22 PDT 2019


RKSimon created this revision.
RKSimon added reviewers: spatel, craig.topper, andreadb, lebedev.ri.
Herald added a project: LLVM.

Currently combineHorizontalPredicateResult only handles anyof/allof reduction patterns of legal types, which can be tricky to match as type legalization of bools can introduce bitcasts/truncs/extensions.

This patch extends to combineHorizontalPredicateResult to recognise vXi1 bool reductions as well and uses the existing combineBitcastvxi1 helper to create the MOVMSK necessary to then compare the signmask result.

This ensures the accuracy of the reduction costs added in D60403 <https://reviews.llvm.org/D60403> which assume the MOVMSK generation.


Repository:
  rL LLVM

https://reviews.llvm.org/D60610

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/vector-compare-all_of.ll
  test/CodeGen/X86/vector-compare-any_of.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60610.194846.patch
Type: text/x-patch
Size: 33891 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190412/7721ba6d/attachment.bin>


More information about the llvm-commits mailing list