spirv: handle NoContraction in GLSL450 alu ops
we were dropping this when it was set, leading to incorrect algebraic optimizations that broke various types of tests, e.g., running spec@arb_gpu_shader5@execution@precise@fs-fract-of-nan in zink
I broke out the loop iteration here into a util function so we could reuse the handler instead of duplicating it.