From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55000) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VeZ2F-0006LN-Ii for qemu-devel@nongnu.org; Thu, 07 Nov 2013 18:30:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VeZ26-0006NT-VE for qemu-devel@nongnu.org; Thu, 07 Nov 2013 18:30:47 -0500 Sender: Richard Henderson Message-ID: <527C2297.7040407@twiddle.net> Date: Fri, 08 Nov 2013 09:30:31 +1000 From: Richard Henderson MIME-Version: 1.0 References: <1383769916-5582-1-git-send-email-tommusta@gmail.com> <1383769916-5582-13-git-send-email-tommusta@gmail.com> <527C221A.5000609@twiddle.net> In-Reply-To: <527C221A.5000609@twiddle.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 12/14] VSX Stage 4: Add Scalar SP Fused Multiply-Adds List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Tom Musta , qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org On 11/08/2013 09:28 AM, Richard Henderson wrote: > On 11/07/2013 06:31 AM, Tom Musta wrote: >> } \ >> + \ >> + if (r2sp) { \ >> + float32 tmp32 = float64_to_float32(xt_out.fld[i], \ >> + &env->fp_status); \ >> + xt_out.fld[i] = float32_to_float64(tmp32, &env->fp_status); \ >> + } \ >> + \ > > You can't get correct results for a single-precision fma from a > double-precision fma and merely rounding the results. > > See e.g. glibc's sysdeps/ieee754/dbl-64/s_fmaf.c. Blah, nevermind. That would be using separate add+mul in double-precision, not using a double-precision fma primitive. r~