From 0708771cce056c3bf9b89793ebb5aa5305b194b5 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Sun, 24 Jul 2022 13:12:21 +0100 Subject: [PATCH] [DAG] MaskedVectorIsZero - don't bother with (-1).isSubsetOf mask check. NFC. Just use KnownBits::isZero() to ensure all the bits are known zero. --- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 3 +-- llvm/lib/Target/X86/X86ISelLowering.cpp | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 4414373..84e1ade 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -2529,8 +2529,7 @@ bool SelectionDAG::MaskedValueIsZero(SDValue V, const APInt &Mask, /// DemandedElts. We use this predicate to simplify operations downstream. bool SelectionDAG::MaskedVectorIsZero(SDValue V, const APInt &DemandedElts, unsigned Depth /* = 0 */) const { - APInt Mask = APInt::getAllOnes(V.getScalarValueSizeInBits()); - return Mask.isSubsetOf(computeKnownBits(V, DemandedElts, Depth).Zero); + return computeKnownBits(V, DemandedElts, Depth).isZero(); } /// MaskedValueIsAllOnes - Return true if '(Op & Mask) == Mask'. diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 5a4533c..6071e3b 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -37522,8 +37522,8 @@ static bool matchBinaryShuffle(MVT MaskVT, ArrayRef Mask, break; } if (IsBlend) { - if (DAG.computeKnownBits(V1, DemandedZeroV1).isZero() && - DAG.computeKnownBits(V2, DemandedZeroV2).isZero()) { + if (DAG.MaskedVectorIsZero(V1, DemandedZeroV1) && + DAG.MaskedVectorIsZero(V2, DemandedZeroV2)) { Shuffle = ISD::OR; SrcVT = DstVT = MaskVT.changeTypeToInteger(); return true; @@ -41191,7 +41191,7 @@ bool X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode( SDValue Src = Op.getOperand(0); APInt DemandedUpperElts = DemandedElts; DemandedUpperElts.clearLowBits(1); - if (TLO.DAG.computeKnownBits(Src, DemandedUpperElts, Depth + 1).isZero()) + if (TLO.DAG.MaskedVectorIsZero(Src, DemandedUpperElts, Depth + 1)) return TLO.CombineTo(Op, Src); break; } -- 2.7.4