On Sunday, 26 September 2021 at 18:08:46 UTC, james.p.leblanc wrote:
or even moving the array declarations to before
the dot product function, and the avx instructions will disappear!

That's because the `@fastmath` UDA applies to the next declaration only, which is the `x` array in your 2nd example (where it obviously has no effect). Either use `@fastmath:` with the colon to apply it to the entire scope, or use `-ffast-math` in the LDC cmdline.

Similarly, when moving the function to another module and you don't include that module in the cmdline, it's only imported and not compiled and won't show up in the resulting assembly.

Wrt. stack alignment, there aren't any issues with LDC AFAIK (not limited to 16 or whatever like DMD).

Reply via email to