ARM: support legalisation of "fptrunc ... to half" operations.
X86: support fpext/fptrunc operations to and from 16-bit floats.
AArch64: support f16 extend/trunc operations.
R600: support fpext/fptrunc operations to and from f16.
NVPTX: support fpext/fptrunc to and from f16.