diff options
| author | xueliang.zhong <xueliang.zhong@linaro.org> | 2019-01-18 16:59:47 -0800 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2019-01-18 16:59:47 -0800 |
| commit | 01e3a8919bad9bcb29e86158306efd89ba8ee8ee (patch) | |
| tree | b3ccb85fb09c10f65858e870a28ae155afcbbde2 /core/java | |
| parent | 55d0e93a15064a023586046f6bca48462140540d (diff) | |
| parent | b67858ba355fe9b84db3fe0e2f1844ea4c009762 (diff) | |
Merge "Quiet SNaN inputs in Half.toFloat()" am: a879fd8b02 am: fea7e9f20d
am: b67858ba35
Change-Id: I5edd03a8e40d32618ded5f409e72b8e29c75137b
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/util/Half.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/core/java/android/util/Half.java b/core/java/android/util/Half.java index 5718d994620d..70d049a6e985 100644 --- a/core/java/android/util/Half.java +++ b/core/java/android/util/Half.java @@ -162,6 +162,7 @@ public final class Half extends Number implements Comparable<Half> { private static final int FP32_EXPONENT_MASK = 0xff; private static final int FP32_SIGNIFICAND_MASK = 0x7fffff; private static final int FP32_EXPONENT_BIAS = 127; + private static final int FP32_QNAN_MASK = 0x400000; private static final int FP32_DENORMAL_MAGIC = 126 << 23; private static final float FP32_DENORMAL_FLOAT = Float.intBitsToFloat(FP32_DENORMAL_MAGIC); @@ -903,6 +904,9 @@ public final class Half extends Number implements Comparable<Half> { outM = m << 13; if (e == 0x1f) { // Infinite or NaN outE = 0xff; + if (outM != 0) { // SNaNs are quieted + outM |= FP32_QNAN_MASK; + } } else { outE = e - FP16_EXPONENT_BIAS + FP32_EXPONENT_BIAS; } |
