Conditional compilation to detect AVX2
Johan Engelen
j at j.nl
Tue May 22 19:07:47 UTC 2018
On Tuesday, 22 May 2018 at 18:27:20 UTC, Jeff wrote:
> Hello,
> Here is a little code exemple where I try to do some
> conditional compilation (https://dlang.org/spec/version.html) :
> https://run.dlang.io/is/i8ML91
>
> Is seems 'D_AVX2' is not defined when I pass the '-mattr=+avx2
> -O3' options: is there something wrong in my code ?
No, this is a bug in LDC.
Because LDC doesn't support the core.simd functions (we do
support the types), we don't define D_SIMD.
But looking at the definition of D_AVX and D_AVX2, we should
indeed define them if the compile target supports them.
For your purpose, the workaround is:
`__traits(targetHasFeature, "avx2")`
https://wiki.dlang.org/LDC-specific_language_changes#targetHasFeature
(Note: the run.dlang.io machine appears to have a sandybridge
CPU, which does not have AVX2; but you can test with AVX (one)
instead)
-Johan
More information about the digitalmars-d-ldc
mailing list