[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH] target/ppc: rewrite f[n]m[add, sub] using float64
From: |
Nikunj A Dadhania |
Subject: |
Re: [Qemu-ppc] [PATCH] target/ppc: rewrite f[n]m[add, sub] using float64_muladd |
Date: |
Wed, 01 Mar 2017 13:54:02 +0530 |
User-agent: |
Notmuch/0.21 (https://notmuchmail.org) Emacs/25.0.94.1 (x86_64-redhat-linux-gnu) |
Nikunj A Dadhania <address@hidden> writes:
> Bharata B Rao <address@hidden> writes:
>
>> On Wed, Mar 01, 2017 at 01:14:11PM +0530, Nikunj A Dadhania wrote:
>>> Use the softfloat api for fused multiply-add. As we are using the fused
>>> multiply-add, the intermediate result for setting VXISI is not
>>> available.
>>
>> Isn't the behaviour of setting VXISI similar to vector muladd instructions ?
>> If so refer to VSX_MADD() to see when VXISI is set.
>
> if ((float64_is_infinity(xa.fld) ||
> float64_is_infinity(b->fld)) &&
> float64_is_infinity(c->fld))) {
> float_invalid_op_excp(env, POWERPC_EXCP_FP_VXISI, sfprf);
> }
>
> AFAIU, VXISI is set when (infinity - infinity). The above doesn't take
> into consideration about substraction.
To be precise:
"If the product of x and y is an Infinity and z is an Infinity of the
opposite sign, vxisi_flag is set to 1."
Regards
Nikunj