diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-11-11 10:47:24 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2016-11-11 10:47:24 +0000 |
commit | 065222781483360735e99858312558bd230d9834 (patch) | |
tree | 999aa586a6ad80540e0147a4b9d8cd7d0e3ce20e /llvm/lib/CodeGen | |
parent | da1a43e8616ca68bfe1cbeff15e95a094227c535 (diff) | |
download | bcm5719-llvm-065222781483360735e99858312558bd230d9834.tar.gz bcm5719-llvm-065222781483360735e99858312558bd230d9834.zip |
[SelectionDAG] Add support for vector demandedelts in UDIV opcodes
llvm-svn: 286576
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 93ca120e3cc..48aa1784a9f 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -2192,10 +2192,12 @@ void SelectionDAG::computeKnownBits(SDValue Op, APInt &KnownZero, // For the purposes of computing leading zeros we can conservatively // treat a udiv as a logical right shift by the power of 2 known to // be less than the denominator. - computeKnownBits(Op.getOperand(0), KnownZero2, KnownOne2, Depth+1); + computeKnownBits(Op.getOperand(0), KnownZero2, KnownOne2, DemandedElts, + Depth + 1); unsigned LeadZ = KnownZero2.countLeadingOnes(); - computeKnownBits(Op.getOperand(1), KnownZero2, KnownOne2, Depth+1); + computeKnownBits(Op.getOperand(1), KnownZero2, KnownOne2, DemandedElts, + Depth + 1); unsigned RHSUnknownLeadingOnes = KnownOne2.countLeadingZeros(); if (RHSUnknownLeadingOnes != BitWidth) LeadZ = std::min(BitWidth, |