Hi all,
I'm mostly worried about the R600 changes here. I scratched my head trying to understand just what the assembly meant, but still only have the haziest notion.
Anyway, this DAG combine is very similar to the one above it, but has different enough requirements that I've put it in a separate block. It's particularly useful for tidying up some trivial manipulations (const-masking to reconstruct a value, as seen in the R600 test actually, if I'm reading it right), especially when they're unavoidably tied to parameter passing so IR-level optimisations can't do anything.
Does it look sane?
Cheers.
Tim.