Sent from my iPhone
On Oct 25, 2012, at 7:54 PM, Eli Friedman <[email protected]> wrote: > On Thu, Oct 25, 2012 at 7:35 PM, Manman Ren <[email protected]> wrote: >> >> >> Sent from my iPhone >> >> On Oct 25, 2012, at 6:13 PM, Eli Friedman <[email protected]> wrote: >> >>> On Thu, Oct 25, 2012 at 5:25 PM, Manman Ren <[email protected]> wrote: >>>> Author: mren >>>> Date: Thu Oct 25 19:25:10 2012 >>>> New Revision: 166743 >>>> >>>> URL: http://llvm.org/viewvc/llvm-project?rev=166743&view=rev >>>> Log: >>>> X86 SSE Intrinsics: update header for sqrt_ss, rsqrt_ss and rcp_ss. >>>> >>>> There intrinsics pass through the upper FP values from the input. >>>> rdar://12558838 >>>> >>>> Modified: >>>> cfe/trunk/lib/Headers/xmmintrin.h >>>> cfe/trunk/test/CodeGen/sse-builtins.c >>>> >>>> Modified: cfe/trunk/lib/Headers/xmmintrin.h >>>> URL: >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/xmmintrin.h?rev=166743&r1=166742&r2=166743&view=diff >>>> ============================================================================== >>>> --- cfe/trunk/lib/Headers/xmmintrin.h (original) >>>> +++ cfe/trunk/lib/Headers/xmmintrin.h Thu Oct 25 19:25:10 2012 >>>> @@ -95,7 +95,8 @@ >>>> static __inline__ __m128 __attribute__((__always_inline__, __nodebug__)) >>>> _mm_sqrt_ss(__m128 a) >>>> { >>>> - return __builtin_ia32_sqrtss(a); >>>> + __m128 c = __builtin_ia32_sqrtss(a); >>>> + return (__m128) { c[0], a[1], a[2], a[3] }; >>>> } >>> >>> What does exactly does __builtin_ia32_sqrtss return, if not the result >>> of a sqrtss instruction? >> builtin returns the result of sqrtss instruction, which only updates the >> lowest FP. mm_sqrt_ss has the upper FPs pass through to the output. > > What exactly is in the top 96 bits of the return value of > __builtin_ia32_sqrtss, then? Those bits are undefined with the current implementation, same goes for sqrt_sd. -Manman > > -Eli _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
