Go to the source code of this file.
|
#define | __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4a"))) |
|
#define | _mm_extracti_si64(x, len, idx) |
| Extracts the specified bits from the lower 64 bits of the 128-bit integer vector operand at the index idx and of the length len. More...
|
|
#define | _mm_inserti_si64(x, y, len, idx) |
| Inserts bits of a specified length from the source integer vector y into the lower 64 bits of the destination integer vector x at the index idx and of the length len. More...
|
|
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4a"))) |
#define _mm_extracti_si64 |
( |
|
x, |
|
|
|
len, |
|
|
|
idx |
|
) |
| |
Value:((__m128i)__builtin_ia32_extrqi((__v2di)(__m128i)(x), \
(char)(len), (char)(idx)))
Extracts the specified bits from the lower 64 bits of the 128-bit integer vector operand at the index idx and of the length len.
This intrinsic corresponds to the \c EXTRQ instruction.
- Parameters
-
x | The value from which bits are extracted. |
len | Bits [5:0] specify the length; the other bits are ignored. If bits [5:0] are zero, the length is interpreted as 64. |
idx | Bits [5:0] specify the index of the least significant bit; the other bits are ignored. If the sum of the index and length is greater than 64, the result is undefined. If the length and index are both zero, bits [63:0] of parameter x are extracted. If the length is zero but the index is non-zero, the result is undefined. |
- Returns
- A 128-bit integer vector whose lower 64 bits contain the bits extracted from the source operand.
#define _mm_inserti_si64 |
( |
|
x, |
|
|
|
y, |
|
|
|
len, |
|
|
|
idx |
|
) |
| |
Value:((__m128i)__builtin_ia32_insertqi((__v2di)(__m128i)(x), \
(char)(len), (char)(idx)))
static __inline__ uint32_t uint32_t y
Definition: arm_acle.h:113
Inserts bits of a specified length from the source integer vector y into the lower 64 bits of the destination integer vector x at the index idx and of the length len.
This intrinsic corresponds to the \c INSERTQ instruction.
- Parameters
-
x | The destination operand where bits will be inserted. The inserted bits are defined by the length len and by the index idx specifying the least significant bit. |
y | The source operand containing the bits to be extracted. The extracted bits are the least significant bits of operand y of length len. |
len | Bits [5:0] specify the length; the other bits are ignored. If bits [5:0] are zero, the length is interpreted as 64. |
idx | Bits [5:0] specify the index of the least significant bit; the other bits are ignored. If the sum of the index and length is greater than 64, the result is undefined. If the length and index are both zero, bits [63:0] of parameter y are inserted into parameter x. If the length is zero but the index is non-zero, the result is undefined. |
- Returns
- A 128-bit integer vector containing the original lower 64-bits of destination operand x with the specified bitfields replaced by the lower bits of source operand y. The upper 64 bits of the return value are undefined.