152fc4fd28
We can produce slightly better code for these in the backend, so do that. For this we need to: 1. Fix our implementation of uadd_carry (which wasn't used) to return an integer instead of a boolean value. 2. Add an implementation of usub_borrow. Notice these are only used in Vulkan. In GL these instructions are always unconditionally lowered by the state tracker in GLSL IR so we never get to see them in the backend. Shader-db stats from a collection of Vulkan samples: total instructions in shared programs: 122351 -> 122345 (<.01%) instructions in affected programs: 196 -> 190 (-3.06%) helped: 2 HURT: 0 total uniforms in shared programs: 18670 -> 18672 (0.01%) uniforms in affected programs: 59 -> 61 (3.39%) helped: 0 HURT: 2 total max-temps in shared programs: 13145 -> 13147 (0.02%) max-temps in affected programs: 27 -> 29 (7.41%) helped: 0 HURT: 2 total inst-and-stalls in shared programs: 123052 -> 123046 (<.01%) inst-and-stalls in affected programs: 197 -> 191 (-3.05%) helped: 2 HURT: 0 Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17372>