[PATCH] D46528: [DAGCombine][X86][AArch64] Masked merge unfolding: vector edition.

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 7 08:46:36 PDT 2018


lebedev.ri created this revision.
lebedev.ri added reviewers: spatel, craig.topper.
Herald added subscribers: kristof.beyls, rengolin.
Herald added a reviewer: javed.absar.

This **appears** to be the last missing piece for the masked merge pattern handling in the backend.

This is PR37104 <https://bugs.llvm.org/show_bug.cgi?id=37104>.

PR6773 <https://bugs.llvm.org/show_bug.cgi?id=6773> will introduce an IR canonicalization that is likely bad for the end assembly.
Previously, `andps`+`andnps` / `bsl` would be generated. (see `@out`)
Now, they would no longer be generated  (see `@in`), and we need to make sure that they are generated.

Before reviewing this, it is best to finish with the scalar part.


Repository:
  rL LLVM

https://reviews.llvm.org/D46528

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  lib/Target/AArch64/AArch64ISelLowering.h
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/AArch64/unfold-masked-merge-vector-variablemask-const.ll
  test/CodeGen/AArch64/unfold-masked-merge-vector-variablemask.ll
  test/CodeGen/X86/machine-cp.ll
  test/CodeGen/X86/unfold-masked-merge-vector-variablemask-const.ll
  test/CodeGen/X86/unfold-masked-merge-vector-variablemask.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46528.145471.patch
Type: text/x-patch
Size: 33541 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180507/05e47577/attachment-0001.bin>


More information about the llvm-commits mailing list