nir/opt_algebraic: Add fmul(a, 2.0) -> fadd(a, a)
Investigated for Bifrost, but should be the same or cheaper for any reasonable architecture. For the compilers I maintain: * Bifrost - fadd can be scheduled 2x as frequently as ffma, there is no fmul separate from ffma. * Midgard - fadd x, x is used as a canonical form, again for easier scheduling. * AGX - fmul and fadd are both native ops, but fmul is heavier weight (unknown whether this is a performance issue or just power consumption). Also saves a move / uniform file slot for the constant. Since floating point multiplication is inherently more expensive than addition, presumably this is a win for everyone else too. Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>