3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-24 01:25:33 +00:00

cxxrtl: Fix value::ctlz

This commit is contained in:
Merry 2023-12-13 12:15:12 +00:00
parent ded63bedd5
commit d7cb6981b5
2 changed files with 9 additions and 2 deletions

View file

@ -511,7 +511,8 @@ struct value : public expr_base<value<Bits>> {
for (size_t n = 0; n < chunks; n++) {
chunk::type x = data[chunks - 1 - n];
// First add to `count` as if the chunk is zero
count += (n == 0 ? Bits % chunk::bits : chunk::bits);
constexpr size_t msb_chunk_bits = Bits % chunk::bits != 0 ? Bits % chunk::bits : chunk::bits;
count += (n == 0 ? msb_chunk_bits : chunk::bits);
// If the chunk isn't zero, correct the `count` value and return
if (x != 0) {
for (; x != 0; count--)