[PATCH] D109295: [X86] Handle inverted inputs when matching VPTERNLOG from 2 binary ops.

Pengfei Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 6 05:47:46 PDT 2021


pengfei added a comment.

In D109295#2984246 <https://reviews.llvm.org/D109295#2984246>, @RKSimon wrote:

> LGTM but @pengfei might have seen some other cases that D109273 <https://reviews.llvm.org/D109273> would address.

The general approach looks great. I don't have other cases. Thanks Craig.



================
Comment at: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:4232
+  if (IsNot(A)) {
+    TernlogMagicA = ~TernlogMagicA;
+    ParentA = A.getNode();
----------------
LuoYuanke wrote:
> It seems for VPTERNLOG instruction we can accept the 4th operand whose value is allZero or allOne no matter what is logic operation is.
Do you mean the FALSE and TRUE in table 5-10 and 5-11? I think we don't need a VPTERNLOG to generate allZero and allOne.


================
Comment at: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:4234
+    ParentA = A.getNode();
+    A = A.getOperand(0);
+  }
----------------
LuoYuanke wrote:
> Is the constant operand canonicalized as operand(1)?
We checked it in line 4225.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109295/new/

https://reviews.llvm.org/D109295



More information about the llvm-commits mailing list