On Sunday, 7 December 2025 at 00:42:11 UTC, Guillaume Piolat wrote:
DUB package intel-intrinsics is out in version v1.13.0.
Now with support for all AVX and AVX2 intrinsics.

- Supported: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, BMI2, AVX, AVX2 - Target x86, x86_64, arm64, arm32. All intrinsics have emulation/alt paths.
- DMD, LDC, or GDC

Congratulations! Very nice to have this package.

Now: should you use AVX for consumer software in D?

I would say - yes as much as you can! If it is not AVX512, but AVX and AVX2 could be applied. Maybe the flow could be started with auto-vec for simpler code maintenance.
But nowadays, AVX(2) is supported pretty widely I think.

Projects for inspiration could be taken from Lemire and Ash.
Their projects SIMD-powered used in other consumer products.
simdutf, simdjson, usearch and others

https://github.com/lemire (blog https://lemire.me/blog/)
https://github.com/ashvardanian (blog https://ashvardanian.com/archives/)

- The reach isn't very good, very nascent support on Microsoft Prism and Apple Rosetta.
- In arm, neon vectors are 128-bit anyway.
- You will encounter: https://github.com/dlang/dub/issues/3080 (unless using redub or --combined)

Probably separate ARM targeted arm-intrinsics package could be created with targeting:
- NEON
- SVE
- SVE2


Reply via email to