aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/KnownBits.cpp
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2023-05-24 10:32:20 +0200
committerNikita Popov <npopov@redhat.com>2023-05-24 10:34:44 +0200
commitd4bfc144eaa6e34eafaab1e8574421ebd2bb78ed (patch)
tree42f03a8cdc80a0f940aea4dde64b1f09fd963405 /llvm/lib/Support/KnownBits.cpp
parent577b163277f6481f37331d38b8d6f1b186b11a68 (diff)
downloadllvm-d4bfc144eaa6e34eafaab1e8574421ebd2bb78ed.zip
llvm-d4bfc144eaa6e34eafaab1e8574421ebd2bb78ed.tar.gz
llvm-d4bfc144eaa6e34eafaab1e8574421ebd2bb78ed.tar.bz2
[KnownBits] Check for conflict-freedom in exhaustive tests
And make sure udiv() Exact does not produce conflicts.
Diffstat (limited to 'llvm/lib/Support/KnownBits.cpp')
-rw-r--r--llvm/lib/Support/KnownBits.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Support/KnownBits.cpp b/llvm/lib/Support/KnownBits.cpp
index 1a5f1ad..13d79a38 100644
--- a/llvm/lib/Support/KnownBits.cpp
+++ b/llvm/lib/Support/KnownBits.cpp
@@ -839,6 +839,8 @@ KnownBits KnownBits::udiv(const KnownBits &LHS, const KnownBits &RHS,
Known.Zero.setBit(0);
// Odd / Even -> impossible
// Even / Even -> unknown
+ if (Known.hasConflict())
+ Known.setAllZero();
}
return Known;