This patch adds the bfloat type to the AArch64 backend:
- adds it as part of the FPR16 register class
- adds bfloat calling conventions
- as f16 is now not the only FPR16 type anymore, we need to constrain a number of instruction patterns using FPR16Op to help out the TableGen type inferrer
This patch is part of a series implementing the Bfloat16 extension of the
Armv8.6-a architecture, as detailed here:
The bfloat type, and its properties are specified in the Arm Architecture
Reference Manual:
Shouldn't this and the types below be predicated on Subtarget->hasBF16()?
We've been fixing up cases in SVE for bfloat intrinsics where we missed predicating intrinsics / patterns on +bf16. I fixed this for the sizeless bfloat types added here in D82494 and it revealed the places we'd forgot to add the guard.