[all-commits] [llvm/llvm-project] c143db: [X86][SSE] combineHorizontalPredicateResult - impr...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Fri Jun 19 03:43:52 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c143db3b1032042193c152790bcefe34365e6d6c
      https://github.com/llvm/llvm-project/commit/c143db3b1032042193c152790bcefe34365e6d6c
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2020-06-19 (Fri, 19 Jun 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/vector-reduce-and-bool.ll

  Log Message:
  -----------
  [X86][SSE] combineHorizontalPredicateResult - improve all_of(X == 0) for vXi64 on pre-SSE41 targets

Without SSE41 we don't have the PCMPEQQ instruction, making cmp-with-zero reductions more complicated than necessary. We can compare as vXi32 (PCMPEQD) and tweak the MOVMSK comparison to test upper/lower DWORD comparisons.

This pre-fixes something that occurs with null tests for vectors of (64-bit) pointers such as in PR35129.




More information about the All-commits mailing list