Internals: Four state pre-pull (types) (#7520)

This commit is contained in:
Igor Zaworski
2026-04-30 16:56:15 -04:00
committed by GitHub
parent ec03edcddd
commit 25d4827bd5
18 changed files with 196 additions and 80 deletions
+8 -2
View File
@@ -1848,11 +1848,14 @@ V3Number& V3Number::opWildEq(const V3Number& lhs, const V3Number& rhs) {
char outc = 1;
for (int bit = 0; bit < std::max(lhs.width(), rhs.width()); ++bit) {
if (!rhs.bitIsXZ(bit)) {
if (lhs.bitIsXZ(bit)) {
outc = 'x';
goto last;
}
if (lhs.bitIs(bit) != rhs.bitIs(bit)) {
outc = 0;
goto last;
}
if (lhs.bitIsXZ(bit)) outc = 'x';
}
}
last:
@@ -1865,11 +1868,14 @@ V3Number& V3Number::opWildNeq(const V3Number& lhs, const V3Number& rhs) {
char outc = 0;
for (int bit = 0; bit < std::max(lhs.width(), rhs.width()); ++bit) {
if (!rhs.bitIsXZ(bit)) {
if (lhs.bitIsXZ(bit)) {
outc = 'x';
goto last;
}
if (lhs.bitIs(bit) != rhs.bitIs(bit)) {
outc = 1;
goto last;
}
if (lhs.bitIsXZ(bit)) outc = 'x';
}
}
last: