summaryrefslogtreecommitdiff
path: root/rs/java/android/renderscript/ProgramFragmentFixedFunction.java
diff options
context:
space:
mode:
authorxueliang.zhong <xueliang.zhong@linaro.org>2018-12-14 11:18:49 +0000
committerXueliang Zhong <xueliang.zhong@linaro.org>2018-12-17 10:25:25 +0000
commitea652eac63c3c0e826c28a5f3e4404d0e9da6a59 (patch)
treeff216ddeb5d81a308e6cdf6cf5f0c5d9bf51462e /rs/java/android/renderscript/ProgramFragmentFixedFunction.java
parent17f9b9bfb66be366e874ed98d52a622e0b97df2a (diff)
Quiet SNaN inputs in Half.toFloat()
This CL fixes Half.toFloat() in handling SNaN inputs, to make sure the Java implementation has same semantics as the hardware implementations (Arm and Intel). 1. Armv8.2 implementation (FCVT): // tested as ART intrinsic on Pixel3 __ Fmov(h31, w1); // input: w1 register __ Fcvt(s0, h31); // output: s0 register 2. X86 implementation (VCVTPH2PS): // clang -mf16c test.c float x86_toFloat(short h) { __v8hi v = {h, 0, 0, 0, 0, 0, 0, 0}; __v4sf r = __builtin_ia32_vcvtph2ps(v); return r[0]; } 3. Java implementation (software): android.util.Half.toFloat(short); Test: Exhaustive testing of 0x0..0xFFFF input bits on above three implementations and compare output values. Change-Id: Iff137858379bf43e59cde94c9d19c2054a3d4f93
Diffstat (limited to 'rs/java/android/renderscript/ProgramFragmentFixedFunction.java')
0 files changed, 0 insertions, 0 deletions