[Issue 7581] New: Compiler uses wrong instructions to move complex value from ST to xmm registers
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Feb 25 04:43:19 PST 2012
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: yebblies at gmail.com
ReportedBy: yebblies at gmail.com
--- Comment #0 from yebblies <yebblies at 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: -------
More information about the Digitalmars-d-bugs
mailing list