From https://github.com/rust-lang/libm/pull/404#issuecomment-2572399955: > i think for `i586` it should just use `frndint` with setting the x87 CW (actually not slow) for `floor`/`ceil`. like: https://github.com/NetBSD/src/blob/20433927938987dd64c8f6aa46904b7aca3fa39e/lib/libm/arch/i387/s_ceil.S