[PATCH] D149310: [LegalizeVectorOps] Use all ones mask when expanding i1 VP_SELECT.
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 27 08:26:43 PDT 2023
This revision was automatically updated to reflect the committed changes.
Closed by commit rG0b5396b163b6: [LegalizeVectorOps] Use all ones mask when expanding i1 VP_SELECT. (authored by craig.topper).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D149310/new/
https://reviews.llvm.org/D149310
Files:
llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
Index: llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
===================================================================
--- llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
@@ -1304,11 +1304,11 @@
return DAG.UnrollVectorOp(Node);
SDValue Ones = DAG.getAllOnesConstant(DL, VT);
- SDValue NotMask = DAG.getNode(ISD::VP_XOR, DL, VT, Mask, Ones, Mask, EVL);
+ SDValue NotMask = DAG.getNode(ISD::VP_XOR, DL, VT, Mask, Ones, Ones, EVL);
- Op1 = DAG.getNode(ISD::VP_AND, DL, VT, Op1, Mask, Mask, EVL);
- Op2 = DAG.getNode(ISD::VP_AND, DL, VT, Op2, NotMask, Mask, EVL);
- return DAG.getNode(ISD::VP_OR, DL, VT, Op1, Op2, Mask, EVL);
+ Op1 = DAG.getNode(ISD::VP_AND, DL, VT, Op1, Mask, Ones, EVL);
+ Op2 = DAG.getNode(ISD::VP_AND, DL, VT, Op2, NotMask, Ones, EVL);
+ return DAG.getNode(ISD::VP_OR, DL, VT, Op1, Op2, Ones, EVL);
}
SDValue VectorLegalizer::ExpandVP_MERGE(SDNode *Node) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D149310.517577.patch
Type: text/x-patch
Size: 967 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230427/ad92c9d1/attachment.bin>
More information about the llvm-commits
mailing list