[ARM] Basic bfloat support
This patch adds basic support for BFloat in the Arm backend.
For now the code generation relies on fullfp16 being present.
- adds the bfloat scalar and vector types in the necessary register classes,
- adjusts the calling convention to cope with bfloat argument passing and return,
- adds codegen patterns for moves, loads and stores.
It's tested mostly by the intrinsic patches that depend on it (load/store, convert/copy).
The following people contributed to this patch:
- Alexandros Lamprineas
- Ties Stuij
Differential Revision: https://reviews.llvm.org/D81373