http://d.puremagic.com/issues/show_bug.cgi?id=7581
Summary: Compiler uses wrong instructions to move complex value from ST to xmm registers Product: D Version: D1 & D2 Platform: x86_64 OS/Version: All Status: NEW Keywords: wrong-code Severity: critical Priority: P2 Component: DMD AssignedTo: yebbl...@gmail.com ReportedBy: yebbl...@gmail.com --- Comment #0 from yebblies <yebbl...@gmail.com> 2012-02-25 23:43:17 EST --- Both asserts should pass, but don't because dmd loads the nan onto the fp stack, stores it into memory _as a double_, then loads it into the xmm registers as a double and returns it. The comparison code treats the xmm regs as if they contain floats, giving the wrong result. void main() { cfloat a() { return cfloat.nan; } assert(a() != 0); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------