-
Notifications
You must be signed in to change notification settings - Fork 259
Extensions
Michael R. Crusoe edited this page Sep 4, 2020
·
2 revisions
For the most part, SIMDe tries to stick to the official APIs. However, sometimes functions which would be useful to us are missing, so we write one.
Non-standard extensions have an "x" prefix before the function name; e.g., simde_x_mm_set_pu8
. Below is a list of all non-standard extensions implemented by SIMDe, as well as a description of what they do and why they exist.
simde__m64
simde_x_mm_set_pu8(uint8_t e7, uint8_t e6, uint8_t e5, uint8_t e4,
uint8_t e3, uint8_t e2, uint8_t e1, uint8_t e0);
simde__m64
simde_x_mm_set_pu16(uint16_t e3, uint16_t e2, uint16_t e1, uint16_t e0);
Acts like _mm_set_pi8
and _mm_set_pi16
, but with unsigned 8-bit or 16-bit integers instead of signed integers.
This function makes it easy to load 8-bit unsigned integers, especially values greater than 2^7 - 1
, while avoiding warnings such as clang's -Wconstant-conversion
.
simde__m64
simde_x_mm_set_pu16(uint16_t e3, uint16_t e2, uint16_t e1, uint16_t e0);
Same as simde_x_mm_set_pu16
but for 16-bit instead of 8-bit.