freedreno/ir3: half vs full reg in standalone compiler output

Handle hrN.c in printing outputs/inputs.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
WIP: freedreno/ir3: ra debug

Some compile time RA debug
WIP: freedreno/ir3: split out legalize pass
WIP/XXX: freedreno/ir3: always write to TEMP for texture samp

For instructions that produce multiple outputs (and therefore fanout
nodes), always insert extra mov.  This saves some complication on the
backend of having to merge things like:

   TEX OUT[0].xy, ...
   TEX OUT[0].zw, ...

XXX however we also need this for dsx/dsy and any other cat5
instructions.. so maybe there is a better place to do this..
WIP: freedreno/ir3: group inputs/outputs

Also mark neighbors for inputs/outputs, as they must exist in sequential
scalar registers.

NOTE: has the slight problem that it can't optimize out mov's for things
like:

  MOV OUT[n], IN[m]

to handle that, we would need to, in case of a conflict, detect that the
conflict could be resolved by eliminating a group of mov's.
WIP: freedreno/ir3: simplify RA