[PATCH] OpenCL half support

Please find attached Clang/LLVM patches for supporting 'half' - the
half-precision floating-point type, which in particular is used in OpenCL C.
Please review.

Background and motivation. Whilst the half type is defined by IEEE 754-2008
as storage only (i.e. no arithmetic is supposed to be performed on values of
this type), it's growing in importance in embedded systems. The cl_khr_fp16
extension of OpenCL lifts restrictions for declaring half variables and
arrays, dereferencing half pointers, performing arithmetic and conversions,
etc. The latest version of the C++ ABI supports half as well. Therefore,
we believe half should become a fundamental type in LLVM. (After all, LLVM
already supports x86_fp80, fp128 and ppc_fp128.)

Anton.

00003-half-llvm.patch (11.7 KB)

00003-half-clang.patch (23.1 KB)