[Issue 20838] on modern (x86_64) CPUs, dmd emit cmpxchg8b instead of CMPXCHG16B

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon May 18 16:45:26 UTC 2020


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

--- Comment #7 from mw <mingwu at gmail.com> ---
Hi kinke,

> so no idea how your results came about

I downloaded directly from:

https://github.com/ldc-developers/ldc/releases/download/v1.21.0/ldc2-1.21.0-linux-x86_64.tar.xz


And I just downloaded 1.20, which is on the d.godbolt.org page you mentioned,
but the result is the same:

--------------------------------------------------------------------------------
$ wget
https://github.com/ldc-developers/ldc/releases/download/v1.20.0/ldc2-1.20.0-linux-x86_64.tar.xz

$ ldc2 -m64 -c c.d
$ obj2asm c.o > c.o.asm
$ grep -i xchg  c.o.asm
                cmpxchg8b       [RSI]
                cmpxchg8b       [RSI]
                cmpxchg8b       [RSI]
                cmpxchg8b       [RSI]
                cmpxchg8b       [RSI]
.data._D100TypeInfo_S3ldc10intrinsics__T13CmpXchgResultTS4core8internal6atomic__T11_AtomicTypeTS1c1NZ5UCentZQCq6__initZ
segment
_D100TypeInfo_S3ldc10intrinsics__T13CmpXchgResultTS4core8internal6atomic__T11_AtomicTypeTS1c1NZ5UCentZQCq6__initZ:
.data._D100TypeInfo_S3ldc10intrinsics__T13CmpXchgResultTS4core8internal6atomic__T11_AtomicTypeTS1c1NZ5UCentZQCq6__initZ
ends

$ ldc2 --version
LDC - the LLVM D compiler (1.20.0):
  based on DMD v2.090.1 and LLVM 9.0.1
  built with LDC - the LLVM D compiler (1.20.0)
  Default target: x86_64-unknown-linux-gnu
  Host CPU: skylake
  http://dlang.org - http://wiki.dlang.org/LDC

$ uname -a
Linux titan 4.15.0-99-generic #100-Ubuntu SMP Wed Apr 22 20:32:56 UTC 2020
x86_64 x86_64 x86_64 GNU/Linux
--------------------------------------------------------------------------------


What else should I check?

Or, can try my step on a Linux box?

--


More information about the Digitalmars-d-bugs mailing list