From: <bug...@fr...> - 2010-03-26 00:24:34
|
http://bugs.freedesktop.org/show_bug.cgi?id=27286 --- Comment #5 from Brian Paul <bri...@gm...> 2010-03-25 17:23:47 PST --- Off-hand, I _think_ this is an issue with the SSE rcp (reciprocol) instruction. Per the comment in the code, I think we need to produce a more accurate result: static void emit_rcp ( struct x86_function *func, unsigned xmm_dst, unsigned xmm_src ) { /* On Intel CPUs at least, this is only accurate to 12 bits -- not * good enough. Need to either emit a proper divide or use the * iterative technique described below in emit_rsqrt(). */ sse2_rcpps( func, make_xmm( xmm_dst ), make_xmm( xmm_src ) ); } Maybe someone handier with SSE can try to fix this. The emit_rsqrt() function further down uses a Newton-Raphson step to improve the results. That could help. -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. |