On Thu, Apr 30, 2020 at 10:18 AM Richard Henderson < richard.hender...@linaro.org> wrote:
> On 4/29/20 5:20 PM, 罗勇刚(Yonggang Luo) wrote: > > Question, in hard-float, if we don't want to read the fp register. > > for example: If we wanna compute c = a + b in fp32 > > if c = a + b In hard float > > and if b1 = c - a in hard float > > if b1 != b at bitwise level, the we se the inexat to 1, otherwsie > > we set inexat bit to 0? are this valid? > > > > we can also do it for a * b, a - b, a / b. > > > > That does seem plausible, for all of the normal values for which we would > apply > the hard-float optimization anyway. But we already check for the > exceptional > cases: > > if (unlikely(f32_is_inf(ur))) { > s->float_exception_flags |= float_flag_overflow; > } else if (unlikely(fabsf(ur.h) <= FLT_MIN)) { > if (post == NULL || post(ua, ub)) { > goto soft; > } > } > > I means remove of all thse exceptional cases, and detecting float exception by hard float operation. > > r~ > -- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo