From 5d68d7eccd5aea01f5072664c59b4426dc63bbb8 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Sun, 16 Apr 2023 12:56:37 -0500 Subject: [PATCH] Updated benchmarks after internal API changes --- benches/bench_btree.toml | 17 ++-- benches/bench_rbyd.toml | 203 ++++++++++++++------------------------- 2 files changed, 85 insertions(+), 135 deletions(-) diff --git a/benches/bench_btree.toml b/benches/bench_btree.toml index 1eb2bb25..5b070cda 100644 --- a/benches/bench_btree.toml +++ b/benches/bench_btree.toml @@ -5,6 +5,7 @@ defines.LOOKAHEAD_SIZE = 'BLOCK_COUNT / 8' [cases.bench_btree_lookup] defines.N = [8, 16, 32, 64, 128, 256, 1024] +defines.VALIDATE = [1, 0] # 0 = in-order # 1 = reversed-order # 2 = random-order @@ -31,11 +32,14 @@ code = ''' lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 - : BENCH_PRNG(&prng) % (btree.weight+1); + : BENCH_PRNG(&prng) % (lfsr_btree_weight(&btree)+1); lfsr_btree_push(&lfs, &btree, i_, LFSR_TAG_INLINED, 1, &alphas[i % 26], 1) => 0; } + // assume an unfetched btree + btree.root.off = 0; + // bench lookup BENCH_START(); lfs_size_t i = BENCH_PRNG(&prng) % N; @@ -45,8 +49,8 @@ code = ''' lfs_size_t weight_; lfsr_btree_get(&lfs, &btree, i, - &tag_, &id_, &weight_, - buffer, 4) => 1; + &id_, &tag_, &weight_, + buffer, 4, VALIDATE) => 1; assert(tag_ == LFSR_TAG_INLINED); assert(id_ == i); assert(weight_ == 1); @@ -55,6 +59,7 @@ code = ''' [cases.bench_btree_commit] defines.N = [8, 16, 32, 64, 128, 256, 1024] +defines.VALIDATE = 0 # 0 = in-order # 1 = reversed-order # 2 = random-order @@ -85,7 +90,7 @@ code = ''' lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 - : BENCH_PRNG(&prng) % (btree.weight+1); + : BENCH_PRNG(&prng) % (lfsr_btree_weight(&btree)+1); lfsr_btree_push(&lfs, &btree, i_, LFSR_TAG_INLINED, 1, &alphas[i % 26], 1) => 0; } @@ -105,8 +110,8 @@ code = ''' lfs_size_t weight_; lfsr_btree_get(&lfs, &btree, i, - &tag_, &id_, &weight_, - buffer, 4) => 1; + &id_, &tag_, &weight_, + buffer, 4, VALIDATE) => 1; assert(tag_ == LFSR_TAG_INLINED); assert(id_ == i); assert(weight_ == 1); diff --git a/benches/bench_rbyd.toml b/benches/bench_rbyd.toml index e56b5402..3978f953 100644 --- a/benches/bench_rbyd.toml +++ b/benches/bench_rbyd.toml @@ -27,7 +27,6 @@ code = ''' .crc = 0, .trunk = 0, .weight = 0, - .erased = true, }; lfs_bd_erase(&lfs, rbyd.block) => 0; @@ -44,20 +43,19 @@ code = ''' = (ORDER == 0) ? i : (ORDER == 1) ? (N-1-i) : BENCH_PRNG(&prng) % N; - attrs[i] = *LFSR_ATTR( - UATTR(i_ & 0xff), -1, "\xaa\xaa\xaa\xaa", 4, - (i+1 < N) ? &attrs[i+1] : NULL); + attrs[i] = LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xaa\xaa\xaa\xaa", 4); } - lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, attrs, N) => 0; } else { for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? (N-1-i) : BENCH_PRNG(&prng) % N; - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(UATTR(i_ & 0xff), -1, "\xaa\xaa\xaa\xaa", 4, - NULL)) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xaa\xaa\xaa\xaa", 4))) => 0; } } BENCH_STOP(); @@ -87,7 +85,6 @@ code = ''' .crc = 0, .trunk = 0, .weight = 0, - .erased = true, }; lfs_bd_erase(&lfs, rbyd.block) => 0; @@ -103,20 +100,19 @@ code = ''' = (ORDER == 0) ? i : (ORDER == 1) ? (N-1-i) : BENCH_PRNG(&prng) % N; - attrs[i] = *LFSR_ATTR( - UATTR(i_ & 0xff), -1, "\xaa\xaa\xaa\xaa", 4, - (i+1 < N) ? &attrs[i+1] : NULL); + attrs[i] = LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xaa\xaa\xaa\xaa", 4); } - lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, attrs, N) => 0; } else { for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? (N-1-i) : BENCH_PRNG(&prng) % N; - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(UATTR(i_ & 0xff), -1, "\xaa\xaa\xaa\xaa", 4, - NULL)) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xaa\xaa\xaa\xaa", 4))) => 0; } } @@ -147,7 +143,6 @@ code = ''' .crc = 0, .trunk = 0, .weight = 0, - .erased = true, }; lfs_bd_erase(&lfs, rbyd.block) => 0; @@ -163,20 +158,19 @@ code = ''' = (ORDER == 0) ? i : (ORDER == 1) ? (N-1-i) : BENCH_PRNG(&prng) % N; - attrs[i] = *LFSR_ATTR( - UATTR(i_ & 0xff), -1, "\xaa\xaa\xaa\xaa", 4, - (i+1 < N) ? &attrs[i+1] : NULL); + attrs[i] = LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xaa\xaa\xaa\xaa", 4); } - lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, attrs, N) => 0; } else { for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? (N-1-i) : BENCH_PRNG(&prng) % N; - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(UATTR(i_ & 0xff), -1, "\xaa\xaa\xaa\xaa", 4, - NULL)) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xaa\xaa\xaa\xaa", 4))) => 0; } } @@ -187,11 +181,9 @@ code = ''' lfsr_tag_t tag_; lfs_ssize_t id_; lfs_size_t weight_; - lfs_off_t off_; - lfs_size_t size_; - int err = lfsr_rbyd_lookup(&lfs, &rbyd, - LFSR_TAG_UATTR(i_ & 0xff), -1, - &tag_, &id_, &weight_, &off_, &size_); + lfsr_data_t data_; + int err = lfsr_rbyd_lookup(&lfs, &rbyd, -1, LFSR_TAG_UATTR(i_ & 0xff), + &id_, &tag_, &weight_, &data_); // note that random order may have some collisions assert(!err || err == LFS_ERR_NOENT); BENCH_STOP(); @@ -219,7 +211,6 @@ code = ''' .crc = 0, .trunk = 0, .weight = 0, - .erased = true, }; lfs_bd_erase(&lfs, rbyd.block) => 0; @@ -235,20 +226,19 @@ code = ''' = (ORDER == 0) ? i : (ORDER == 1) ? (N-1-i) : BENCH_PRNG(&prng) % N; - attrs[i] = *LFSR_ATTR( - UATTR(i_ & 0xff), -1, "\xaa\xaa\xaa\xaa", 4, - (i+1 < N) ? &attrs[i+1] : NULL); + attrs[i] = LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xaa\xaa\xaa\xaa", 4); } - lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, attrs, N) => 0; } else { for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? (N-1-i) : BENCH_PRNG(&prng) % N; - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(UATTR(i_ & 0xff), -1, "\xaa\xaa\xaa\xaa", 4, - NULL)) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xaa\xaa\xaa\xaa", 4))) => 0; } } @@ -256,12 +246,13 @@ code = ''' BENCH_START(); lfs_off_t i_ = BENCH_PRNG(&prng) % N; - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(UATTR(i_ & 0xff), -1, "\xbb\xbb\xbb\xbb", 4, NULL)) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xbb\xbb\xbb\xbb", 4))) => 0; BENCH_STOP(); uint8_t buffer[4]; - lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG_UATTR(i_ & 0xff), -1, buffer, 4) => 4; + lfsr_rbyd_get(&lfs, &rbyd, -1, LFSR_TAG_UATTR(i_ & 0xff), buffer, 4) => 4; assert(memcmp(buffer, "\xbb\xbb\xbb\xbb", 4) == 0); ''' @@ -287,7 +278,6 @@ code = ''' .crc = 0, .trunk = 0, .weight = 0, - .erased = true, }; lfs_bd_erase(&lfs, rbyd.block) => 0; @@ -303,20 +293,19 @@ code = ''' = (ORDER == 0) ? i : (ORDER == 1) ? (N-1-i) : BENCH_PRNG(&prng) % N; - attrs[i] = *LFSR_ATTR( - UATTR(i_ & 0xff), -1, "\xaa\xaa\xaa\xaa", 4, - (i+1 < N) ? &attrs[i+1] : NULL); + attrs[i] = LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xaa\xaa\xaa\xaa", 4); } - lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, attrs, N) => 0; } else { for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? (N-1-i) : BENCH_PRNG(&prng) % N; - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(UATTR(i_ & 0xff), -1, "\xaa\xaa\xaa\xaa", 4, - NULL)) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(-1, UATTR(i_ & 0xff), 0, + "\xaa\xaa\xaa\xaa", 4))) => 0; } } @@ -324,12 +313,12 @@ code = ''' BENCH_START(); lfs_off_t i_ = BENCH_PRNG(&prng) % N; - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(RMUATTR(i_ & 0xff), -1, NULL, 0, NULL)) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(-1, RMUATTR(i_ & 0xff), 0, NULL, 0))) => 0; BENCH_STOP(); uint8_t buffer[4]; - lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG_UATTR(i_ & 0xff), -1, buffer, 4) + lfsr_rbyd_get(&lfs, &rbyd, -1, LFSR_TAG_UATTR(i_ & 0xff), buffer, 4) => LFS_ERR_NOENT; ''' @@ -355,7 +344,6 @@ code = ''' .crc = 0, .trunk = 0, .weight = 0, - .erased = true, }; lfs_bd_erase(&lfs, rbyd.block) => 0; @@ -364,30 +352,23 @@ code = ''' uint32_t prng = 42; BENCH_START(); if (COMMIT == 0) { - struct lfsr_attr attrs[2*N]; + struct lfsr_attr attrs[N]; for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 : BENCH_PRNG(&prng) % (rbyd.weight+1); - attrs[2*i+0] = *LFSR_ATTR( - GROW, i_, NULL, 1, - &attrs[2*i+1]); - attrs[2*i+1] = *LFSR_ATTR( - MKREG, i_, "\xaa\xaa\xaa\xaa", 4, - (i+1 < N) ? &attrs[2*i+2] : NULL); + attrs[i] = LFSR_ATTR(i_, MKREG, +1, "\xaa\xaa\xaa\xaa", 4); } - lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, attrs, N) => 0; } else { for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 : BENCH_PRNG(&prng) % (rbyd.weight+1); - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(GROW, i_, NULL, 1, - LFSR_ATTR(MKREG, i_, "\xaa\xaa\xaa\xaa", 4, - NULL))) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(i_, MKREG, +1, "\xaa\xaa\xaa\xaa", 4))) => 0; } } BENCH_STOP(); @@ -417,7 +398,6 @@ code = ''' .crc = 0, .trunk = 0, .weight = 0, - .erased = true, }; lfs_bd_erase(&lfs, rbyd.block) => 0; @@ -425,30 +405,23 @@ code = ''' // indexes within a valid range as the rbyd grows uint32_t prng = 42; if (COMMIT == 0) { - struct lfsr_attr attrs[2*N]; + struct lfsr_attr attrs[N]; for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 : BENCH_PRNG(&prng) % (rbyd.weight+1); - attrs[2*i+0] = *LFSR_ATTR( - GROW, i_, NULL, 1, - &attrs[2*i+1]); - attrs[2*i+1] = *LFSR_ATTR( - MKREG, i_, "\xaa\xaa\xaa\xaa", 4, - (i+1 < N) ? &attrs[2*i+2] : NULL); + attrs[i] = LFSR_ATTR(i_, MKREG, +1, "\xaa\xaa\xaa\xaa", 4); } - lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, attrs, N) => 0; } else { for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 : BENCH_PRNG(&prng) % (rbyd.weight+1); - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(GROW, i_, NULL, 1, - LFSR_ATTR(MKREG, i_, "\xaa\xaa\xaa\xaa", 4, - NULL))) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(i_, MKREG, +1, "\xaa\xaa\xaa\xaa", 4))) => 0; } } @@ -479,7 +452,6 @@ code = ''' .crc = 0, .trunk = 0, .weight = 0, - .erased = true, }; lfs_bd_erase(&lfs, rbyd.block) => 0; @@ -487,30 +459,23 @@ code = ''' // indexes within a valid range as the rbyd grows uint32_t prng = 42; if (COMMIT == 0) { - struct lfsr_attr attrs[2*N]; + struct lfsr_attr attrs[N]; for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 : BENCH_PRNG(&prng) % (rbyd.weight+1); - attrs[2*i+0] = *LFSR_ATTR( - GROW, i_, NULL, 1, - &attrs[2*i+1]); - attrs[2*i+1] = *LFSR_ATTR( - MKREG, i_, "\xaa\xaa\xaa\xaa", 4, - (i+1 < N) ? &attrs[2*i+2] : NULL); + attrs[i] = LFSR_ATTR(i_, MKREG, +1, "\xaa\xaa\xaa\xaa", 4); } - lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, attrs, N) => 0; } else { for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 : BENCH_PRNG(&prng) % (rbyd.weight+1); - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(GROW, i_, NULL, 1, - LFSR_ATTR(MKREG, i_, "\xaa\xaa\xaa\xaa", 4, - NULL))) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(i_, MKREG, +1, "\xaa\xaa\xaa\xaa", 4))) => 0; } } @@ -521,12 +486,11 @@ code = ''' lfsr_tag_t tag_; lfs_ssize_t id_; lfs_size_t weight_; - lfs_off_t off_; - lfs_size_t size_; - lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG_MKREG, i_, - &tag_, &id_, &weight_, &off_, &size_) => 0; - assert(tag_ == LFSR_TAG_MKREG); + lfsr_data_t data_; + lfsr_rbyd_lookup(&lfs, &rbyd, i_, LFSR_TAG_REG, + &id_, &tag_, &weight_, &data_) => 0; assert(id_ == i_); + assert(tag_ == LFSR_TAG_REG); BENCH_STOP(); ''' @@ -552,7 +516,6 @@ code = ''' .crc = 0, .trunk = 0, .weight = 0, - .erased = true, }; lfs_bd_erase(&lfs, rbyd.block) => 0; @@ -560,30 +523,23 @@ code = ''' // indexes within a valid range as the rbyd grows uint32_t prng = 42; if (COMMIT == 0) { - struct lfsr_attr attrs[2*N]; + struct lfsr_attr attrs[N]; for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 : BENCH_PRNG(&prng) % (rbyd.weight+1); - attrs[2*i+0] = *LFSR_ATTR( - GROW, i_, NULL, 1, - &attrs[2*i+1]); - attrs[2*i+1] = *LFSR_ATTR( - MKREG, i_, "\xaa\xaa\xaa\xaa", 4, - (i+1 < N) ? &attrs[2*i+2] : NULL); + attrs[i] = LFSR_ATTR(i_, MKREG, +1, "\xaa\xaa\xaa\xaa", 4); } - lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, attrs, N) => 0; } else { for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 : BENCH_PRNG(&prng) % (rbyd.weight+1); - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(GROW, i_, NULL, 1, - LFSR_ATTR(MKREG, i_, "\xaa\xaa\xaa\xaa", 4, - NULL))) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(i_, MKREG, +1, "\xaa\xaa\xaa\xaa", 4))) => 0; } } @@ -591,14 +547,12 @@ code = ''' BENCH_START(); lfs_off_t i_ = BENCH_PRNG(&prng) % (N+1); - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(GROW, i_, NULL, 1, - LFSR_ATTR(MKREG, i_, "\xbb\xbb\xbb\xbb", 4, - NULL))) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(i_, MKREG, +1, "\xbb\xbb\xbb\xbb", 4))) => 0; BENCH_STOP(); uint8_t buffer[4]; - lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG_MKREG, i_, buffer, 4) => 4; + lfsr_rbyd_get(&lfs, &rbyd, i_, LFSR_TAG_REG, buffer, 4) => 4; assert(memcmp(buffer, "\xbb\xbb\xbb\xbb", 4) == 0); ''' @@ -624,7 +578,6 @@ code = ''' .crc = 0, .trunk = 0, .weight = 0, - .erased = true, }; lfs_bd_erase(&lfs, rbyd.block) => 0; @@ -632,30 +585,23 @@ code = ''' // indexes within a valid range as the rbyd grows uint32_t prng = 42; if (COMMIT == 0) { - struct lfsr_attr attrs[2*N]; + struct lfsr_attr attrs[N]; for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 : BENCH_PRNG(&prng) % (rbyd.weight+1); - attrs[2*i+0] = *LFSR_ATTR( - GROW, i_, NULL, 1, - &attrs[2*i+1]); - attrs[2*i+1] = *LFSR_ATTR( - MKREG, i_, "\xaa\xaa\xaa\xaa", 4, - (i+1 < N) ? &attrs[2*i+2] : NULL); + attrs[i] = LFSR_ATTR(i_, MKREG, +1, "\xaa\xaa\xaa\xaa", 4); } - lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, attrs, N) => 0; } else { for (lfs_size_t i = 0; i < N; i++) { lfs_off_t i_ = (ORDER == 0) ? i : (ORDER == 1) ? 0 : BENCH_PRNG(&prng) % (rbyd.weight+1); - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(GROW, i_, NULL, 1, - LFSR_ATTR(MKREG, i_, "\xaa\xaa\xaa\xaa", 4, - NULL))) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(i_, MKREG, +1, "\xaa\xaa\xaa\xaa", 4))) => 0; } } @@ -663,8 +609,7 @@ code = ''' BENCH_START(); lfs_off_t i_ = BENCH_PRNG(&prng) % N; - lfsr_rbyd_commit(&lfs, &rbyd, - LFSR_ATTR(SHRINK, i_, NULL, 1, - NULL)) => 0; + lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS( + LFSR_ATTR(i_, MKUNR, -1, NULL, 0))) => 0; BENCH_STOP(); '''