https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93985
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |WONTFIX --- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- To prevent unwanted use of x87 registers, register allocator is prohibited from freely allocating x87 registers without -mfpmath=387 for SFmode and DFmode. You should use long double and 1.0L to get what you want, e.g: --cut here-- double atan (double x) { long double _x = x; long double _res; __asm__("fpatan" : "=t" (_res) : "0" (1.0L) , "u" (_x) : "st(1)"); return _res; } --cut here-- Alternatively, you could use -mfpmath=387,sse to enable x87 regs and x87 instructions also for x86_64.