This has been separated off from D69618 to reduce diff clutter, as it really stands on its own. The 'a' modifier is rarely used, but emits splatting code from NeonEmitter.cpp when it is. This functionality can be implemented directly in .td files though, at a net reduction in lines of code.
There are a few test changes, but they're just moving bitcasts around due to the slightly different input Clang sees. Nothing really changes.