pub fn mulsh(a: i32, b: i32, s: u32) -> i32
⌊(a·b + 2^(s−1)) / 2^s⌋, low 32 bits (the GPU emulates the 64-bit product).
⌊(a·b + 2^(s−1)) / 2^s⌋