ARM64: toFloat() intrinsics with ARMv8 FP16.

This CL intrinsifies toFloat() method with ARMv8.2 FP16 instructions.

This CL depends on the android framework and libcore changes:
moving FP16 implementations into libcore.

Tested with local micro benchmark on Pixel 3, compared to original
android.util.Half.toFloat() Java implementation, this intrinsic is
50% faster.

In real-life case, the FP16 toFloat() intrinsic can help
accelerate ColorLong ARGB decoding in Android framework.

This intrinsic implementation archieves bit-level compatibility with the
original Java implementation android.util.Half.toFloat().

Test: 580-fp16
Test: art/test/testrunner/run_build_test_target.py -j80 art-test-javac
Test: test-art-host, test-art-target

Change-Id: I059c69747067b84f2c532465e32a1dcd3c25269f
14 files changed