nir: algebraic both directions
I've been trying to get NIR_VALIDATE coverage in CI, but algebraic has been showing O(n^2) behavior on dEQP tests like dEQP-GLES2.functional.uniform_api.random.3
that pushes them up against dEQP's per-test timeout (which I actually had to disable even before turning on validation). I found a way to fix the n^2 behavior, but as far as I can see I have to drop the automaton in the process. The compiler seems to be going as fast as ever on shader-db (I hoped for faster as a result of this series, honestly), but I wonder if we can keep the automaton working somehow.
@mattst88 @cwabbott0 for people whose commits are related to this.