Conditional compilation to detect AVX2

Johan Engelen j at
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 ( :
> 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")`

(Note: the machine appears to have a sandybridge 
CPU, which does not have AVX2; but you can test with AVX (one) 


More information about the digitalmars-d-ldc mailing list