The PPC back end currently crashes (fails to select) with f16 input. This patch expands it on subtargets prior to ISA 3.0 (Power9) and uses the HW conversions on Power9.
Not really. That type is really just a pair of doubles and there is no register that can contain it, so it will always be broken up into a pair of doubles by the legalizer.
Why? This is just a def of a pattern fragment. It is only defined here because it is missing in the target independent td file.
The instructions used are defined in a Power9Vector guard and so are these patterns. I realize this is hard to track down from the patch - this file is in desperate need of refactoring :(
Sure, I can get rid of these (actually, I'll just define #0 as nounwind and use it for all the functions so we don't get the CFI nodes).
Other than the test case which still needs to be updated I think that this patch looks good to me.
I do not believe that Pat has a Side Effect flag.
The instruction STXSIHX is already marked as let hasSideEffects = 0.