an examination of the OpenPOWER SIMD instructions is needed.
to be recorded at https://libre-soc.org/openpower/simd_vsx/
VSX cannot strictly be called "Vector" because vectors are variable-length,
where VSX is fixed-length (i.e. SIMD).
preliminary investigation shows the inclusion of:
* DSP-style integer clamp/saturate operations
* pixel-style data reordering (in and out of 16 RGB and 32-bit formats)
* a very good type of rotate that reads a mask from part of a register
* min/max selection on both integer and FP
* FP estimation functions (log, exp, recp, rsqrt) and associated
* FP extraction and insertion of exponent and mantissa from/into integers
* FP single to double precision conversion.
* Rijndael FIPS-197 and SHA-256/512 primitives
* there are some bitmanip operations that also seem not to be
vector operations, but are more along the lines of taking advantage
of the fact that the VSX registers are 128 bit
even the operations labelled "vector permute" are a form of 128-bit bitmanip
operating at the byte level (i.e. not vector).
the only operations that could conceivably be called "vector" are
the vector extract/insert and splat instructions, although, again,
these can be covered by some careful design of 128-bit bitmanip
analysis of these instructions is valuable with a view to guiding whether
and how they should be included in Simple-V