std::experimental::simd implementation
Matthias Kretz
m.kretz@gsi.de
Thu Nov 1 16:34:00 GMT 2018
I'm working on getting my code reorganized, refactored, and underscored for
submission to libstdc++. You can find the current state at: https://
github.com/VcDevel/Vc/tree/mkretz/contribute_to_libstdc%2B%2B/experimental
I'll need a bit of help to get it ready:
* I'm sure there's a bit of internal machinery that I had to write that
libstdc++ already has. Any idea how to deduplicate this? I have no idea about
the libstdc++ internals.
* Naming conventions. I've started adding underscores, but I guess you'd like
to have at least _M_ prefixes for data members? Where do I find the
documentation?
* I have no idea how to integrate my tests. I have not even tried to
understand how testing currently works in libstdc++, so that's at least one
part... ;-)
* I reduced the number of source files. But 200k headers isn't pretty either.
There's still some room for refactoring to get the size down (constexpr if is
such a great help - and my (too late) discovery how to deduce value_type and
size from a [[gnu::vector_size(N)]] builtin type) - I'm mostly focusing on
this. (I'm down from more than 1MB total size.)
* I have a lot of x86 specific code (using intrinsics) to avoid missed
optimization. I prefer to keep them in constexpr if blocks, as otherwise the
boilerplate for extra functions just explodes. Is that acceptable?
So far.
Cheers,
Matthias
--
──────────────────────────────────────────────────────────────────────────
Dr. Matthias Kretz https://kretzfamily.de
GSI Helmholtzzentrum für Schwerionenforschung https://gsi.de
SIMD easy and portable https://github.com/VcDevel/Vc
──────────────────────────────────────────────────────────────────────────
More information about the Libstdc++
mailing list