On Monday, 11 July 2022 at 18:15:16 UTC, Ivan Kazmenko wrote:
Hi.

I'm looking at the compiler output of DMD (-O -release), LDC (-O -release), and GDC (-O3) for a simple array operation:

```
void add1 (int [] a)
{
    foreach (i; 0..a.length)
        a[i] += 1;
}
```

Here are the outputs: https://godbolt.org/z/GcznbjEaf

From what I gather at the view linked above, DMD does not use XMM registers for speedup, and does not unroll the loop either.
[snip]

Specifying a SIMD capable target will reveal an even wider gap in capability. (LDC -mcpu=x86-64-v3 or gdc -march=x86-64-v3).


Reply via email to