This patch adds the fp16 neon vector intrinsic for ARM as described in the ARM ACLE document.
While this patch may seem large at first but it is essentially a modification/addition on top of some old work by doing this:
- Port AArch64 patch https://reviews.llvm.org/D32511 to ARM.
- Enable the frontend fp16 data type for ARM (which is a revert of patch https://reviews.llvm.org/D41360).