On Wednesday, 26 July 2023 06:33:41 MDT Richard Biener wrote: > Btw, how the experimental SIMD C++ standard library handles > these issue might be also interesting to research (author CCed)
I only skimmed over this thread now. FWIW, I would really like better support for AVX-512 bitmasks for the std::experimental::simd implementation (std::simd for C++26). I probably want better support for all the other targets that use bitmasks - but so far I only have experience with AVX512. To make the AVX512 implementation of std::experimental::simd efficient I have to call intrinsics/builtins instead of directly expressing what I want to do using the [[gnu::vector_size]] types. There are some instances where I have to convert between bitmask and element-sized mask vectors - and to make that efficient I call all kinds of intrinsics/builtins. And from what I've seen, a bitmask -> mask vector -> bitmask conversion won't be recognized as a no-op (the other way around, as well). At this point I have no technical input to this thread. But if there's anything you want me to test - whether it helps in the simd implementation - let me know. -Matthias -- ────────────────────────────────────────────────────────────────────────── Dr. Matthias Kretz https://mattkretz.github.io GSI Helmholtz Center for Heavy Ion Research https://gsi.de std::simd ──────────────────────────────────────────────────────────────────────────