Files
scriptc/packages
Chris Tate 3eed91a29b Convert sums built on unsigned shifts from 32 bits
An integer `+`, `-` or `*` whose operands and result are proven within
the uint32 range, and whose operand is a `>>>` result or arithmetic on
one, such as `((i + j) * (i + j + 1) >>> 1) + i + 1`, is now 32-bit
arithmetic without wrap, and its double converts from the 32 bits
(`uitofp i32`). Vectorized, that conversion takes three instructions on
x86-64 without AVX-512, where the 64-bit sum's unsigned conversion took
six. Sums of counters and literals, such as `i + 1`, keep the 64-bit
form, whose conversion LLVM folds with their uses as indexes.
2026-10-30 01:20:14 -05:00
..
2026-10-29 20:04:10 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 15:55:05 -05:00
2026-10-29 06:02:00 -05:00
2026-10-29 06:02:00 -05:00