Hi,
Currently, TableGen is very conservative about the aliases it is capable of printing: any kind of Operand Record in the InstAlias, except for some explicitly understood Registers, means that TableGen will simply skip the alias for printing purposes.
This completely relaxes that restriction: a complicated Operand is assumed to *always* be printed and any available PrintMethod is used. For out of tree targets, the previous behaviour can be restored by setting "Emit" to 0 in any InstAlias. In the future a more flexible predication mechanism might be useful.
This seems to have affected 3.5 targets:
+ ARM64/AArch64: I made some fairly minimal changes here to reduce the number of tests that need rewriting. The rest are deferred for later.
+ Mips: it looked like both aliases for "break" should have been printed, but .td file order was significant so I swapped them.
+ x86: I couldn't find any documentation on whether "imull $3, %eax, %eax" (for example) should print as "imull $3, %eax". Given the prevalence of 2-operand instructions I decided it probably should and updated the test.
Does the change look OK?
Cheers.
Tim.