On Wednesday, 6 January 2021 at 02:30:30 UTC, Walter Bright wrote:
On 1/5/2021 2:42 AM, 9il wrote:
On Tuesday, 5 January 2021 at 09:47:41 UTC, Walter Bright wrote:
On 1/4/2021 11:22 PM, 9il wrote:
I can't reproduce the same DMD output as you.

I did it on Windows 32 bit. I tried it on Linux 32, which does indeed show the behavior you mentioned. At the moment I don't know why the different behaviors.

https://issues.dlang.org/show_bug.cgi?id=21526


It just uses SSE, which I think a good way to go, haha.

As I mentioned upthread, it will use SSE when SSE is baseline on the CPU target, and it will always round to precision.

Does this mean that DMD Linux 32-bit executables should compile with SSE codes?

The baseline Linux target does not have SSE.


I ask because DMD compiles Linux 32-bit executables with x87 codes when -O is passed and with SSE if no -O is passed. That is very weird.

Example, please?

DMD with flag -m32 generates

https://cpp.godbolt.org/z/GMGMra
        assume  CS:.text._D7example1fFffZf
                push    EBP
                mov     EBP,ESP
                sub     ESP,018h
                movss   XMM0,0Ch[EBP]
                movss   XMM1,8[EBP]
                addss   XMM0,XMM1
                movss   -8[EBP],XMM0
                subss   XMM0,XMM1
                movss   -4[EBP],XMM0
                movss   -018h[EBP],XMM0
                fld     float ptr -018h[EBP]
                leave
                ret     8
                add     [EAX],AL

It has been provided in the thread
https://forum.dlang.org/post/gqzdiicrvtlicurxy...@forum.dlang.org

Reply via email to