authorgravatar for david@vortan.devDavid Rubin <david@vortan.dev> 2024-12-12 18:23:48-08:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-12-13 13:24:38+01:00
log82f35c51866826fb71eb6f27d9210bb738d602e9
tree77f458447ffedf2d4f0fb2bb362ecaa17bb839dd
parenta68119f8f1d54b70e713e1e8ce07491ddba0f093

add branchHint to `std.Random.float`


1 files changed, 3 insertions(+), 3 deletions(-)

lib/std/Random.zig+3-3
......@@ -271,11 +271,10 @@ pub fn float(r: Random, comptime T: type) T {
271271 const rand = r.int(u64);
272272 var rand_lz = @clz(rand);
273273 if (rand_lz >= 41) {
274 // TODO: when #5177 or #489 is implemented,
275 // tell the compiler it is unlikely (1/2^41) to reach this point.
276 // (Same for the if branch and the f64 calculations below.)
274 @branchHint(.unlikely);
277275 rand_lz = 41 + @clz(r.int(u64));
278276 if (rand_lz == 41 + 64) {
277 @branchHint(.unlikely);
279278 // It is astronomically unlikely to reach this point.
280279 rand_lz += @clz(r.int(u32) | 0x7FF);
281280 }
......@@ -297,6 +296,7 @@ pub fn float(r: Random, comptime T: type) T {
297296 const addl_rand_lz = @clz(r.int(u64));
298297 rand_lz += addl_rand_lz;
299298 if (addl_rand_lz != 64) {
299 @branchHint(.likely);
300300 break;
301301 }
302302 if (rand_lz >= 1022) {