http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
Jakub Jelinek jakub at gcc dot gnu.org changed:
What|Removed |Added
Status|NEW |RESOLVED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
Richard Guenther rguenth at gcc dot gnu.org changed:
What|Removed |Added
Priority|P3 |P2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
--- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-26
13:41:10 UTC ---
Well, the setting of errno by calling another function has similar effects like
calling any other function in between, if you do
float a = sqrtf (x);
foo
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
--- Comment #11 from Paul Zimmermann zimmerma+gcc at loria dot fr 2010-10-22
06:56:20 UTC ---
(In reply to comment #10)
You can use -fno-errno-math if you don't want errno to be set, then there will
be no calls to sqrtf and all 3 calls should
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
--- Comment #9 from Paul Zimmermann zimmerma+gcc at loria dot fr 2010-10-21
19:26:11 UTC ---
(In reply to comment #8)
You really should use hex float to see the diferences. I bet it is just the
final digit of the hex float that is different
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-21
20:55:58 UTC ---
fsqrt insn is always used, and if the result is NaN, it calls library sqrtf
function so that errno is set correctly. The (conditional) call causes (some
of)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
--- Comment #3 from Uros Bizjak ubizjak at gmail dot com 2010-10-20 08:28:57
UTC ---
(In reply to comment #2)
Created attachment 22089 [details]
sh script to test sqrtf
Similar problems can also be found with:
printf
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
Jakub Jelinek jakub at gcc dot gnu.org changed:
What|Removed |Added
CC||jakub at gcc dot
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
--- Comment #5 from Paul Zimmermann zimmerma+gcc at loria dot fr 2010-10-20
09:54:01 UTC ---
(In reply to comment #3)
You should use -ffloat-store to remove excess precision.
the main issue is not the excess of precision, but the fact that
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-20
10:46:14 UTC ---
That depends on the register allocation, whether the result of fsqrt needs to
be flushed into memory or can stay in the i387 register stack. In the former
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
--- Comment #7 from Vincent Lefèvre vincent at vinc17 dot org 2010-10-20
23:43:33 UTC ---
But there's something strange in the generated code: sometimes the fsqrt
instruction is used, sometimes call sqrtf is used (for the same sqrtf() call
in the
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
--- Comment #8 from Andrew Pinski pinskia at gcc dot gnu.org 2010-10-20
23:49:18 UTC ---
%.60f
You really should use hex float to see the diferences. I bet it is just the
final digit of the hex float that is different and only by one. This is
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
Richard Guenther rguenth at gcc dot gnu.org changed:
What|Removed |Added
Target||i?86-*-*
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46080
--- Comment #2 from Vincent Lefèvre vincent at vinc17 dot org 2010-10-20
01:51:56 UTC ---
Created attachment 22089
-- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22089
sh script to test sqrtf
Similar problems can also be found with:
14 matches
Mail list logo