Skip to content

Commit 0b5ed29

Browse files
committed
Ensure KnownBits passed to computeKnownBitsFromRangeMetadata has correct size
Signed-off-by: John Lu <[email protected]>
1 parent 4067581 commit 0b5ed29

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

llvm/lib/Analysis/ValueTracking.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,8 @@ void llvm::computeKnownBitsFromRangeMetadata(const MDNode &Ranges,
433433
// The first CommonPrefixBits of all values in Range are equal.
434434
unsigned CommonPrefixBits =
435435
(Range.getUnsignedMax() ^ Range.getUnsignedMin()).countl_zero();
436+
// BitWidth must equal the Ranges BitWidth for the correct number of high bits to be set.
437+
assert(BitWidth == Lower->getBitWidth() );
436438
APInt Mask = APInt::getHighBitsSet(BitWidth, CommonPrefixBits);
437439
APInt UnsignedMax = Range.getUnsignedMax().zextOrTrunc(BitWidth);
438440
Known.One &= UnsignedMax & Mask;

0 commit comments

Comments
 (0)