25c7181f1b
Using nir_gather_ssa_types works much better. There's 2 differences compared to what I was doing before: 1. Multiple passes to allow data to propagate forward and backward through the whole shader. 2. Allowing a value to have indeterminate types due to having both int and float usages. So this deletes some code and gets better results. Wish I'd known this existed last week. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23062>