https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66126
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Richard Biener from comment #1) > i?86 passes it in %mm0 (oops) (with -msse2), even if the function is > externally visible. > > I think -msse shouldn't change the ABI. 8-byte vectors are passed to functions in mmx registers. This is part of 32bit ABI. The 64bit ABI is different, 8-byte vectors are passed in sse registers. The problem is that when mmx register is referenced, shared x87/mmx register stack switches into mmx mode until emms is executed. When in mmx mode, all x87 registers show nan. This is not a gcc bug.