The `generic_as` function in `dyadic_float.h` had a missing `underflow = true` at the exact boundary where `unbiased_exp == -EXP_BIAS - FRACTION_LEN`. At this boundary, the mantissa MSB maps exactly to the round bit, so out_mantissa is 0 and the result can only be 0 or min_subnormal. The value is at most min_subnormal / 2, so it is always tiny and always inexact `underflow` must be signaled. The < case and the general subnormal range both already set underflow = true this boundary case was the only gap. this specifically fix this error in the erfcf16 function ``` Extracted erfcf16.cpp.o from archive for linking Running exhaustive check in --rndn mode... Missing underflow exception for x=0x1.eacp+1 (y=0x1p-24) ``` this fix may also apply to other bfloat16 missing exceptions (@Sukumarsawant) part of: #186483 CC: @lntue
LLVM libc ========= This directory and its subdirectories contain source code for llvm-libc, a retargetable implementation of the C standard library. LLVM is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.