Thread overview
[Issue 7581] New: Compiler uses wrong instructions to move complex value from ST to xmm registers
Feb 25, 2012
yebblies
Feb 25, 2012
yebblies
Feb 26, 2012
yebblies
Apr 25, 2012
Walter Bright
February 25, 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@gmail.com
        ReportedBy: yebblies@gmail.com


--- Comment #0 from yebblies <yebblies@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: -------
February 25, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7581


yebblies <yebblies@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull


--- Comment #1 from yebblies <yebblies@gmail.com> 2012-02-26 00:24:54 EST ---
https://github.com/D-Programming-Language/dmd/pull/760

This is fixed by pull 760

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 26, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7581



--- Comment #2 from yebblies <yebblies@gmail.com> 2012-02-27 03:37:39 EST ---
New pull

https://github.com/D-Programming-Language/dmd/pull/769

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 25, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7581



--- Comment #3 from github-bugzilla@puremagic.com 2012-04-24 21:54:30 PDT ---
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/e45925dafe7a9c71fc6eaaa852ed526e01768981
yebblies' fix Issue 7581 - Compiler uses wrong instructions to move complex
value from ST to xmm registers

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 25, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7581



--- Comment #4 from github-bugzilla@puremagic.com 2012-04-24 21:54:59 PDT ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/0cf3c08642bb0cae819464e6a1aaecfb09b2d03c
yebblies' fix Issue 7581 - Compiler uses wrong instructions to move complex
value from ST to xmm registers

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 25, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7581


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla@digitalmars.com
         Resolution|                            |FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------