[phobos] phobos commit, revision 2186

David Simcha dsimcha at gmail.com
Sun Nov 21 09:18:15 PST 2010


Can others on this mailing list please submit info about their CPUs 
(manufacturer and core type) and whether the unit tests pass?  My 
working hypothesis (mostly because I can't think of anything else that's 
at all plausible) is that this discrepancy is somehow hardware-related.  
I'll start and give an example of what I'm looking for:

Intel Penryn:  Pass
AMD Brisbane:  Fail

On 11/21/2010 1:19 AM, Don Clugston wrote:
> On 21 November 2010 05:48, David Simcha<dsimcha at gmail.com>  wrote:
>> More research into this issue:  I compiled the unittest.exe executable on my
>> main (desktop) computer, ran it under my primary OS (Win7 64) and it
>> failed..  I then ran the exact same executable (no recompile) on my Linux
>> Partition (Ubuntu 10.10 64) using Wine and it failed.
>>
>> I then ran the exact same executable on my laptop on my primary OS (also
>> Win7 64) and it passed.  I ran it on my laptop's Linux partition under Wine
>> (Ubuntu 10.10 32) and it passed.
>>
>> The only difference between the two systems that might account for this is
>> that the laptop has an Intel Penryn CPU, whereas the desktop as an AMD
>> Brisbane CPU.  Does anyone know whether different x86 CPUs can produce
>> subtly different floating point results when executing the exact same code?
>> Alternatively, is it possible that some processor-specific optimizations to
>> some function getting called by Don's code could be causing slightly
>> different results?
> That's _very_ interesting. The code in question doesn't use the C
> runtime at all.
> If it's the same exe, then the difference can only lie in the CPU or
> in the environment.
> Eg, if it starts with 80-bit floats disabled.
> But the fact that every other test passes on your system, makes that
> seem unlikely.
> Does the failing system have execution protection enabled?
>
> The only documented floating point difference between AMD and Intel
> that I know of, is that AMD
> raises the invalid exception when loading an 80-bit NaN, but Intel
> doesn't. BTW I found that difference
> myself, and added it to Wikipedia. That difference is not relevant here.
>
> If the CPU itself is responsible for the difference, that's a CPU bug.
> BTW this test was present in Tango for years, and nobody ever reported
> this issue before.
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
>



More information about the phobos mailing list