The class for integer SIMD computations using128-bit registers (MM0-XMM15 for SSE, and Q0-Q15 for NEON).
More...
|
static i128 | SetZero () noexcept |
| Sets all bits to 0 .
|
|
static i128 | SetFull (i128arg dummy) noexcept |
| Sets all bits to 1 .
|
|
static i64 | GetLo (i128 value) noexcept |
| Returns the lower 64 bits of the value argument.
|
|
static i64 | GetHi (i128 value) noexcept |
| Returns the upper 64 bits of the value argument.
|
|
|
static i128 | SetValue (int8_t v, each_int8_tag) noexcept |
| Sets a signed 8-bit integer to sixteen 8-bit lanes.
|
|
static i128 | SetValue (int16_t v, each_int16_tag) noexcept |
| Sets a signed 8-bit integer to sixteen 6-bit lanes.
|
|
static i128 | SetValue (int32_t v, each_int32_tag) noexcept |
| Sets a signed 32-bit integer to four 32-bit lanes.
|
|
static i128 | SetValue (int64_t v, each_int64_tag) noexcept |
| Sets a signed 64-bit integer to two 64-bit lanes.
|
|
static i128 | SetValue (uint8_t v, each_uint8_tag) noexcept |
| Sets an unsigned 8-bit integer to sixteen 8-bit lanes.
|
|
static i128 | SetValue (uint16_t v, each_uint16_tag) noexcept |
| Sets an unsigned 8-bit integer to sixteen 16-bit lanes.
|
|
static i128 | SetValue (uint32_t v, each_uint32_tag) noexcept |
| Sets an unsigned 32-bit integer to four 32-bit lanes.
|
|
static i128 | SetValue (uint64_t v, each_uint64_tag) noexcept |
| Sets an unsigned 64-bit integer to two 64-bit lanes.
|
|
|
template<size_t N> |
static i128 | SetValue (i128 value, each_select32_tag) noexcept |
| Sets all lanes to the 32-bit value in lane N of the value argument. More...
|
|
template<size_t N> |
static i128 | SetValue (i128 value, each_select16_tag) noexcept |
| Sets all lanes to the 16-bit value in lane N of the value argument. More...
|
|
template<size_t N> |
static i128 | SetValue (i128 value, each_select8_tag) noexcept |
| Sets all lanes to the 8-bit value in lane N of the value argument. More...
|
|
|
static i128 | LoadA16 (const void *p) noexcept |
| Loads 16 bytes of data from the 16-byte-aligned address p and sets the value. The argument type is either uintptr_t or intptr_t .
|
|
static i128 | LoadA8 (const void *p) noexcept |
| Loads 8 bytes of data from the 16-byte-aligned address p and sets the value. The argument type is either uintptr_t or intptr_t .
|
|
static i128 | LoadA4 (const void *p) noexcept |
| Loads 4 bytes of data from the 16-byte-aligned address p and sets the value. The argument type is either uintptr_t or intptr_t .
|
|
static i128 | LoadA2 (const void *p) noexcept |
| Loads 2 bytes of data from the 16-byte-aligned address p and sets the value. The argument type is either uintptr_t or intptr_t .
|
|
static i128 | LoadA1 (const void *p) noexcept |
| Loads 16 bytes of data from the unaligned address p and sets the value. The argument type is either uintptr_t or intptr_t .
|
|
static i128 | LoadA16 (uintptr_t p) noexcept |
| Wraps LoadA16(const void* p) .
|
|
static i128 | LoadA8 (uintptr_t p) noexcept |
| Wraps LoadA8(const void* p) .
|
|
static i128 | LoadA4 (uintptr_t p) noexcept |
| Wraps LoadA4(const void* p) .
|
|
static i128 | LoadA2 (uintptr_t p) noexcept |
| Wraps LoadA2(const void* p) .
|
|
static i128 | LoadA1 (uintptr_t p) noexcept |
| Wraps LoadA1(const void* p) .
|
|
static i128 | LoadA16 (intptr_t p) noexcept |
| Wraps LoadA16(const void* p) .
|
|
static i128 | LoadA8 (intptr_t p) noexcept |
| Wraps LoadA8(const void* p) .
|
|
static i128 | LoadA4 (intptr_t p) noexcept |
| Wraps LoadA4(const void* p) .
|
|
static i128 | LoadA2 (intptr_t p) noexcept |
| Wraps LoadA2(const void* p) .
|
|
static i128 | LoadA1 (intptr_t p) noexcept |
| Wraps LoadA1(const void* p) .
|
|
|
static void | StoreA16 (void *p, i128arg value) noexcept |
| Writes the 16 bytes of data of value to the 16-byte-aligned address specified in the p parameter. The argument type is either uintptr_t or intptr_t .
|
|
static void | StoreA8 (void *p, i128arg value) noexcept |
| Writes the 8 bytes of data of value to the 16-byte-aligned address specified in the p parameter. The argument type is either uintptr_t or intptr_t .
|
|
static void | StoreA4 (void *p, i128arg value) noexcept |
| Writes the 4 bytes of data of value to the 16-byte-aligned address specified in the p parameter. The argument type is either uintptr_t or intptr_t .
|
|
static void | StoreA2 (void *p, i128arg value) noexcept |
| Writes the 2 bytes of data of value to the 16-byte-aligned address specified in the p parameter. The argument type is either uintptr_t or intptr_t .
|
|
static void | StoreA1 (void *p, i128arg value) noexcept |
| Writes the 16 bytes of data of value to the unaligned address in the p parameter. The argument type is either uintptr_t or intptr_t .
|
|
static void | StoreA16 (uintptr_t p, i128arg value) noexcept |
| Wraps StoreA16(void* p, i128arg value) .
|
|
static void | StoreA8 (uintptr_t p, i128arg value) noexcept |
| Wraps StoreA8(void* p, i128arg value) .
|
|
static void | StoreA4 (uintptr_t p, i128arg value) noexcept |
| Wraps StoreA4(void* p, i128arg value) .
|
|
static void | StoreA2 (uintptr_t p, i128arg value) noexcept |
| Wraps StoreA2(void* p, i128arg value) .
|
|
static void | StoreA1 (uintptr_t p, i128arg value) noexcept |
| Wraps StoreA1(void* p, i128arg value) .
|
|
static void | StoreA16 (intptr_t p, i128arg value) noexcept |
| Wraps StoreA16(void* p, i128arg value) .
|
|
static void | StoreA8 (intptr_t p, i128arg value) noexcept |
| Wraps StoreA8(void* p, i128arg value) .
|
|
static void | StoreA4 (intptr_t p, i128arg value) noexcept |
| Wraps StoreA4(void* p, i128arg value) .
|
|
static void | StoreA2 (intptr_t p, i128arg value) noexcept |
| Wraps StoreA2(void* p, i128arg value) .
|
|
static void | StoreA1 (intptr_t p, i128arg value) noexcept |
| Wraps StoreA1(void* p, i128arg value) .
|
|
|
template<size_t N> |
static uint8_t | GetUint8FromLane (i128arg value) noexcept |
| Gets a 8-bit unsigned integer from lane N of value. More...
|
|
template<size_t N> |
static uint16_t | GetUint16FromLane (i128arg value) noexcept |
| Gets a 16-bit unsigned integer from lane N of value. More...
|
|
template<size_t N> |
static uint32_t | GetUint32FromLane (i128arg value) noexcept |
| Gets a 32-bit unsigned integer from lane N of value. More...
|
|
template<size_t N> |
static uint64_t | GetUint64FromLane (i128arg value) noexcept |
| Gets a 64-bit unsigned integer from lane N of value. More...
|
|
template<size_t N> |
static i128 | SetUint8ToLane (i128arg value, uint8_t v) noexcept |
| Sets v to the unsigned 8-bit integer from lane N of the value argument. More...
|
|
template<size_t N> |
static i128 | SetUint16ToLane (i128arg value, uint16_t v) noexcept |
| Sets v to the unsigned 16-bit integer from lane N of the value argument. More...
|
|
template<size_t N> |
static i128 | SetUint32ToLane (i128arg value, uint32_t v) noexcept |
| Sets v to the unsigned 32-bit integer from lane N of the value argument. More...
|
|
template<size_t N> |
static i128 | SetUint64ToLane (i128arg value, uint64_t v) noexcept |
| Sets v to the unsigned 64-bit integer from lane N of the value argument. More...
|
|
|
static i128 | Add8 (i128arg a, i128arg b) noexcept |
| Adds the 8-bit integer values of each lane in the a and b arguments. More...
|
|
static i128 | Add16 (i128arg a, i128arg b) noexcept |
| Adds the 16-bit integer values of each lane in the a and b arguments. More...
|
|
static i128 | Add32 (i128arg a, i128arg b) noexcept |
| Adds the 32-bit integer values of each lane in the a and b arguments. More...
|
|
static i128 | Add64 (i128arg a, i128arg b) noexcept |
| Adds the 64-bit integer values of each lane in the a and b arguments. More...
|
|
static i128 | AddInt8Saturated (i128arg a, i128arg b) noexcept |
| Saturated addition of the signed 8-bit integers of each lane in the a and b arguments. More...
|
|
static i128 | AddInt16Saturated (i128arg a, i128arg b) noexcept |
| Saturated addition of the signed 16-bit integers of each lane in the a and b arguments. More...
|
|
static i128 | AddUint8Saturated (i128arg a, i128arg b) noexcept |
| Saturated addition of the unsigned 8-bit integers of each lane in the a and b arguments. More...
|
|
static i128 | AddUint16Saturated (i128arg a, i128arg b) noexcept |
| Saturated addition of the unsigned 16-bit integers of each lane in the a and b arguments. More...
|
|
static i128 | Sub8 (i128arg a, i128arg b) noexcept |
| Subtracts the 8-bit integer values in each lane of the b argument from each lane of the a argument. More...
|
|
static i128 | Sub16 (i128arg a, i128arg b) noexcept |
| Subtracts the 16-bit integer values in each lane of the b argument from each lane of the a argument. More...
|
|
static i128 | Sub32 (i128arg a, i128arg b) noexcept |
| Subtracts the 32-bit integer values in each lane of the b argument from each lane of the a argument. More...
|
|
static i128 | Sub64 (i128arg a, i128arg b) noexcept |
| Subtracts the 64-bit integer values in each lane of the b argument from each lane of the a argument. More...
|
|
static i128 | SubInt8Saturated (i128arg a, i128arg b) noexcept |
| Saturated subtraction of the signed 8-bit integer value in each lane of the b argument from each lane of the a argument. More...
|
|
static i128 | SubInt16Saturated (i128arg a, i128arg b) noexcept |
| Saturated subtraction of the signed 16-bit integer value in each lane of the b argument from each lane of the a argument. More...
|
|
static i128 | SubUint8Saturated (i128arg a, i128arg b) noexcept |
| Saturated subtraction of the unsigned 8-bit integer value in each lane of the b argument from each lane of the a argument. More...
|
|
static i128 | SubUint16Saturated (i128arg a, i128arg b) noexcept |
| Saturated subtraction of the unsigned 16-bit integer value in each lane of the b argument from each lane of the a argument. More...
|
|
static i128 | PairwiseAdd8 (i128arg a, i128arg b) noexcept |
| Horizontal addition of the 8-bit integer value in each lane of the a and b arguments. More...
|
|
static i128 | PairwiseAdd16 (i128arg a, i128arg b) noexcept |
| Horizontal addition of the 16-bit integer value in each lane of the a and b arguments. More...
|
|
static i128 | PairwiseAdd32 (i128arg a, i128arg b) noexcept |
| Horizontal addition of the 32-bit integer value in each lane of the a and b arguments. More...
|
|
static i128 | Mult16 (i128arg a, i128arg b) noexcept |
| Multiplies the 16-bit integer value in each lane of the a and b arguments. More...
|
|
static i128 | MultAdd16 (i128arg a, i128arg b, i128arg c) noexcept |
| Multiplies the 16-bit integer value in each lane of the a and b arguments, and adds the 16-bit integer value in each lane of c to the result. More...
|
|
static i128 | MultSub16 (i128arg a, i128arg b, i128arg c) noexcept |
| Multiplies the 16-bit integer value in each lane of the a and b arguments, and subtracts the 16-bit integer value in each lane of c from the result. More...
|
|
static i128 | Mult32 (i128arg a, i128arg b) noexcept |
| Multiplies the 32-bit integer value in each lane of the a and b arguments. More...
|
|
static i128 | MultAdd32 (i128arg a, i128arg b, i128arg c) noexcept |
| Multiplies the 32-bit integer value in each lane of the a and b arguments, and adds the 32-bit integer value in each lane of c to the result. More...
|
|
static i128 | MultSub32 (i128arg a, i128arg b, i128arg c) noexcept |
| Multiplies the 32-bit integer value in each lane of the a and b arguments, and subtracts the 32-bit integer value in each lane of c from the result. More...
|
|
static i128 | NegateInt8 (i128arg value) noexcept |
| Calculates the negation of the signed 8-bit integer value in each lane of the value argument.
|
|
static i128 | NegateInt16 (i128arg value) noexcept |
| Calculates the negation of the signed 16-bit integer value in each lane of the value argument.
|
|
static i128 | NegateInt32 (i128arg value) noexcept |
| Calculates the negation of the signed 32-bit integer value in each lane of the value argument.
|
|
|
static i128 | MaxInt8 (i128arg a, i128arg b) noexcept |
| Sets the larger signed 8-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MaxInt16 (i128arg a, i128arg b) noexcept |
| Sets the larger signed 16-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MaxInt32 (i128arg a, i128arg b) noexcept |
| Sets the larger signed 32-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MaxUint8 (i128arg a, i128arg b) noexcept |
| Sets the larger unsigned 8-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MaxUint16 (i128arg a, i128arg b) noexcept |
| Sets the larger unsigned 16-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MaxUint32 (i128arg a, i128arg b) noexcept |
| Sets the larger unsigned 32-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MinInt8 (i128arg a, i128arg b) noexcept |
| Sets the smaller signed 8-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MinInt16 (i128arg a, i128arg b) noexcept |
| Sets the smaller signed 16-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MinInt32 (i128arg a, i128arg b) noexcept |
| Sets the smaller signed 32-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MinUint8 (i128arg a, i128arg b) noexcept |
| Sets the smaller unsigned 8-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MinUint16 (i128arg a, i128arg b) noexcept |
| Sets the smaller unsigned 16-bit integer value of each lane in the a and b arguments. More...
|
|
static i128 | MinUint32 (i128arg a, i128arg b) noexcept |
| Sets the smaller unsigned 32-bit integer value of each lane in the a and b arguments. More...
|
|
|
static i128 | AbsInt8 (i128arg value) noexcept |
| Calculates the absolute values for the signed 8-bit integers from each lane of the value argument.
|
|
static i128 | AbsInt16 (i128arg value) noexcept |
| Calculates the absolute values for the signed 16-bit integers from each lane of the value argument.
|
|
static i128 | AbsInt32 (i128arg value) noexcept |
| Calculates the absolute values for the signed 32-bit integers from each lane of the value argument.
|
|
static i128 | AbsDiffInt8 (i128arg a, i128arg b) noexcept |
| Calculates the absolute value of the difference of the signed 8-bit integer values in each lane of the a and b arguments.
|
|
static i128 | AbsDiffInt16 (i128arg a, i128arg b) noexcept |
| Calculates the absolute value of the difference of the signed 16-bit integer values in each lane of the a and b arguments.
|
|
static i128 | AbsDiffInt32 (i128arg a, i128arg b) noexcept |
| Calculates the absolute value of the difference of the signed 32-bit integer values in each lane of the a and b arguments.
|
|
|
static i128 | And (i128arg a, i128arg b) noexcept |
| Calculates the bitwise AND of the a and b arguments.
|
|
static i128 | Or (i128arg a, i128arg b) noexcept |
| Calculates the bitwise OR of the a and b arguments.
|
|
static i128 | Xor (i128arg a, i128arg b) noexcept |
| Calculates the bitwise XOR of the a and b arguments.
|
|
static i128 | Not (i128arg a) noexcept |
| Calculates the bitwise NOT of the a argument.
|
|
static i128 | AndNot (i128arg a, i128arg b) noexcept |
| Calculates the bitwise NOT of the a argument, and the bitwise AND of the b argument. More...
|
|
static i128 | OrNot (i128arg a, i128arg b) noexcept |
| Calculates the bitwise NOT of the a argument, and the bitwise OR of the b argument. More...
|
|
|
static i128 | CmpEq8 (i128arg a, i128arg b) noexcept |
| Compares a and b in units of 8-bit lanes. More...
|
|
static i128 | CmpEq16 (i128arg a, i128arg b) noexcept |
| Compares a and b in units of 16-bit lanes. More...
|
|
static i128 | CmpEq32 (i128arg a, i128arg b) noexcept |
| Compares a and b in units of 32-bit lanes. More...
|
|
static i128 | CmpLtInt8 (i128arg a, i128arg b) noexcept |
| Compares a and b as 8-bit signed integers. More...
|
|
static i128 | CmpLtInt16 (i128arg a, i128arg b) noexcept |
| Compares a and b as 16-bit signed integers. More...
|
|
static i128 | CmpLtInt32 (i128arg a, i128arg b) noexcept |
| Compares a and b as 32-bit signed integers. More...
|
|
static i128 | CmpGtInt8 (i128arg a, i128arg b) noexcept |
| Compares a and b as 8-bit signed integers. More...
|
|
static i128 | CmpGtInt16 (i128arg a, i128arg b) noexcept |
| Compares a and b as 16-bit signed integers. More...
|
|
static i128 | CmpGtInt32 (i128arg a, i128arg b) noexcept |
| Compares a and b as 32-bit signed integers. More...
|
|
static i128 | CmpLtUint8 (i128arg a, i128arg b) noexcept |
| Compares a and b as 8-bit unsigned integers. More...
|
|
static i128 | CmpLtUint16 (i128arg a, i128arg b) noexcept |
| Compares a and b as 16-bit unsigned integers. More...
|
|
static i128 | CmpLtUint32 (i128arg a, i128arg b) noexcept |
| Compares a and b as 32-bit unsigned integers. More...
|
|
static i128 | CmpGtUint8 (i128arg a, i128arg b) noexcept |
| Compares a and b as 8-bit unsigned integers. More...
|
|
static i128 | CmpGtUint16 (i128arg a, i128arg b) noexcept |
| Compares a and b as 16-bit unsigned integers. More...
|
|
static i128 | CmpGtUint32 (i128arg a, i128arg b) noexcept |
| Compares a and b as 32-bit unsigned integers. More...
|
|
static i128 | CmpLeInt8 (i128arg a, i128arg b) noexcept |
| Compares a and b as 8-bit signed integers. More...
|
|
static i128 | CmpLeInt16 (i128arg a, i128arg b) noexcept |
| Compares a and b as 16-bit signed integers. More...
|
|
static i128 | CmpLeInt32 (i128arg a, i128arg b) noexcept |
| Compares a and b as 32-bit signed integers. More...
|
|
static i128 | CmpGeInt8 (i128arg a, i128arg b) noexcept |
| Compares a and b as 8-bit signed integers. More...
|
|
static i128 | CmpGeInt16 (i128arg a, i128arg b) noexcept |
| Compares a and b as 16-bit signed integers. More...
|
|
static i128 | CmpGeInt32 (i128arg a, i128arg b) noexcept |
| Compares a and b as 32-bit signed integers. More...
|
|
static i128 | CmpLeUint8 (i128arg a, i128arg b) noexcept |
| Compares a and b as 8-bit unsigned integers. More...
|
|
static i128 | CmpLeUint16 (i128arg a, i128arg b) noexcept |
| Compares a and b as 16-bit unsigned integers. More...
|
|
static i128 | CmpLeUint32 (i128arg a, i128arg b) noexcept |
| Compares a and b as 32-bit unsigned integers. More...
|
|
static i128 | CmpGeUint8 (i128arg a, i128arg b) noexcept |
| Compares a and b as 8-bit unsigned integers. More...
|
|
static i128 | CmpGeUint16 (i128arg a, i128arg b) noexcept |
| Compares a and b as 16-bit unsigned integers. More...
|
|
static i128 | CmpGeUint32 (i128arg a, i128arg b) noexcept |
| Compares a and b as 32-bit unsigned integers. More...
|
|
|
static i128 | ShiftLeftLogical8 (i128arg value, int count) noexcept |
| Left shifts each 8-bit lane by count digits.
|
|
static i128 | ShiftRightLogical8 (i128arg value, int count) noexcept |
| Conducts a right logical shift of each 8-bit lane by count digits.
|
|
static i128 | ShiftLeftLogical16 (i128arg value, int count) noexcept |
| Left shifts each 16-bit lane by count digits.
|
|
static i128 | ShiftRightLogical16 (i128arg value, int count) noexcept |
| Conducts a right logical shift of each 16-bit lane by count digits.
|
|
static i128 | ShiftRightArithmetic16 (i128arg value, int count) noexcept |
| Conducts a right arithmetic shift of each 16-bit lane by count digits.
|
|
static i128 | ShiftLeftLogical32 (i128arg value, int count) noexcept |
| Left shifts each 32-bit lane by count digits.
|
|
static i128 | ShiftRightLogical32 (i128arg value, int count) noexcept |
| Conducts a right logical shift of each 32-bit lane by count digits.
|
|
static i128 | ShiftRightArithmetic32 (i128arg value, int count) noexcept |
| Conducts a right arithmetic shift of each 32-bit lane by count digits.
|
|
static i128 | ShiftLeftLogical64 (i128arg value, int count) noexcept |
| Left shifts each 64-bit lane by count digits.
|
|
static i128 | ShiftRightLogical64 (i128arg value, int count) noexcept |
| Conducts a right logical shift of each 64-bit lane by count digits.
|
|
|
template<size_t N> |
static i128 | ByteShiftLeft (i128arg value) noexcept |
| Left-shifts value by an amount of N bytes. Empty lanes are set to zero. More...
|
|
template<size_t N> |
static i128 | ByteShiftRight (i128arg value) noexcept |
| Right-shifts value by an amount of N bytes. Empty lanes are set to zero. More...
|
|
template<size_t N> |
static i128 | ByteRotateRight (i128arg value) noexcept |
| Rotates value to the right by an amount of N bytes. More...
|
|
template<size_t N> |
static i128 | AlignR (i128arg a, i128arg b) noexcept |
| Returns the lower 128-bit value after a and b have been right-shifted N bytes to resemble a 256-bit value. More...
|
|
|
static i128 | NarrowFrom16To8 (i128arg lo, i128arg hi) noexcept |
| Cuts the upper 8 bits off of 16-bit-wide lanes and returns sixteen values as a single 128-bit value. More...
|
|
static i128 | NarrowFrom32To16 (i128arg lo, i128arg hi) noexcept |
| Cuts the upper 16 bits off of 32-bit-wide lanes and returns eight values as a single 128-bit value. More...
|
|
static i128 | NarrowFrom64To32 (i128arg lo, i128arg hi) noexcept |
| Cuts the upper 32 bits off of 64-bit-wide lanes and returns four values as a single 128-bit value. More...
|
|
static i128 | ConvertFromUint16ToUint8Saturated (i128arg lo, i128arg hi) noexcept |
| Converts sixteen 16-bit unsigned integers into sixteen 8-bit unsigned integers. Out of range values are clamped. More...
|
|
static i128 | ConvertFromInt16ToInt8Saturated (i128arg lo, i128arg hi) noexcept |
| Converts sixteen 16-bit signed integers into sixteen 8-bit signed integers. Out of range values are clamped. More...
|
|
static i128 | ConvertFromUint32ToUint16Saturated (i128arg lo, i128arg hi) noexcept |
| Converts eight 32-bit unsigned integers into eight 16-bit unsigned integers. Out of range values are clamped. More...
|
|
static i128 | ConvertFromInt32ToInt16Saturated (i128arg lo, i128arg hi) noexcept |
| Converts eight 32-bit signed integers into eight 16-bit signed integers. Out of range values are clamped. More...
|
|
static i128 | ConvertFromInt8ToInt16 (i64arg value) noexcept |
| Converts eight 8-bit signed integers into eight 16-bit signed integers. More...
|
|
static i128 | ConvertFromInt16ToInt32 (i64arg value) noexcept |
| Converts four 16-bit signed integers into four 32-bit signed integers. More...
|
|
static i128 | ConvertFromInt32ToInt64 (i64arg value) noexcept |
| Converts two 32-bit signed integers into two 64-bit signed integers. More...
|
|
static i128 | ConvertFromUint8ToUint16 (i64arg value) noexcept |
| Converts eight 8-bit unsigned integers into eight 16-bit unsigned integers. More...
|
|
static i128 | ConvertFromUint16ToUint32 (i64arg value) noexcept |
| Converts four16-bit unsigned integers into four 32-bit unsigned integers. More...
|
|
static i128 | ConvertFromUint32ToUint64 (i64arg value) noexcept |
| Converts two 32-bit unsigned integers into two 64-bit unsigned integers. More...
|
|
|
static i128 | Zip8 (i64arg a, i64arg b) noexcept |
| Interleaves the 8-bit integer values of the a and b arguments. More...
|
|
static i128 | Unzip8 (i64arg a, i64arg b) noexcept |
| Uninterleaves the 8-bit integer values of the a and b arguments. More...
|
|
static i128 | Zip16 (i64arg a, i64arg b) noexcept |
| Interleaves the 16-bit integer values of the a and b arguments. More...
|
|
static i128 | Unzip16 (i64arg a, i64arg b) noexcept |
| Uninterleaves the 16-bit integer values of the a and b arguments. More...
|
|
static i128 | Zip32 (i64arg a, i64arg b) noexcept |
| Interleaves the 32-bit integer values of the a and b arguments. More...
|
|
static i128 | Unzip32 (i64arg a, i64arg b) noexcept |
| Uninterleaves the 32-bit integer values of the a and b arguments. This works in the same way as the Zip32 function. More...
|
|
|
static i128 | Reverse16 (i128arg value) noexcept |
| Reverses the endianness of eight 16-bit values.
|
|
static i128 | Reverse32 (i128arg value) noexcept |
| Reverses the endianness of four 32-bit values.
|
|
static i128 | Reverse64 (i128arg value) noexcept |
| Reverses the endianness of two 64-bit values.
|
|
|
static int | MoveMask8 (i128arg value) noexcept |
| Consolidates the various 8-bit lanes into a 1-bit value and returns it as an integer. More...
|
|
static int | MoveMask16 (i128arg value) noexcept |
| Consolidates the various 16-bit lanes into a 1-bit value and returns it as an integer. More...
|
|
static int | MoveMask32 (i128arg value) noexcept |
| Consolidates the various 32-bit lanes into a 1-bit value and returns it as an integer. More...
|
|
static bool | IsZero (i128arg value) noexcept |
| Examines whether all bits are 0. More...
|
|
static bool | IsFull (i128arg value) noexcept |
| Examines whether all bits are 1. More...
|
|
static i128 | Select (i128arg mask, i128arg a, i128arg b) noexcept |
| Compounds a and b according to the value of mask. More...
|
|
static i128 | Shuffle8 (i128arg value, i128arg shuffle) noexcept |
| Sorts sixteen 8-bit values in an arbitrary order, including duplicates. More...
|
|