[PATCH] D46493: [DagCombiner] Not all 'andn''s work with immediates.

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat May 5 04:15:46 PDT 2018


lebedev.ri created this revision.
lebedev.ri added reviewers: spatel, craig.topper.

Split off from https://reviews.llvm.org/D46031.

In masked merge case, this degrades IPC by decreasing instruction count.
F6108777: diff.txt <https://reviews.llvm.org/F6108777>
The next patch should be able to recover and improve this.

This also affects the transform @spatel have added in https://reviews.llvm.org/D27489 / https://reviews.llvm.org/rL289738,
and the test coverage for X86 was missing.
But after i have added it, and looked at the changes in MCA, i'm somewhat confused.
F6093591: icmp-opt.txt <https://reviews.llvm.org/F6093591> F6093592: pos_sel_constants.txt <https://reviews.llvm.org/F6093592> F6093593: pos_sel_special_constant.txt <https://reviews.llvm.org/F6093593>
I'd say this regression is an improvement, since `IPC` increased in that case?


Repository:
  rL LLVM

https://reviews.llvm.org/D46493

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  lib/Target/X86/X86ISelLowering.cpp
  lib/Target/X86/X86ISelLowering.h
  test/CodeGen/X86/icmp-opt.ll
  test/CodeGen/X86/selectcc-to-shiftand.ll
  test/CodeGen/X86/unfold-masked-merge-scalar-variablemask.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46493.145363.patch
Type: text/x-patch
Size: 4602 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180505/8c00e995/attachment.bin>


More information about the llvm-commits mailing list