sketchbook
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
ammintrin.h File Reference
#include <pmmintrin.h>

Go to the source code of this file.

Macros

#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...
 

Macro Definition Documentation

#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.

__m128i _mm_extracti_si64(__m128i x, const int len, const int idx);
This intrinsic corresponds to the \c EXTRQ instruction.
Parameters
xThe value from which bits are extracted.
lenBits [5:0] specify the length; the other bits are ignored. If bits [5:0] are zero, the length is interpreted as 64.
idxBits [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), \
(__v2di)(__m128i)(y), \
(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.

__m128i _mm_inserti_si64(__m128i x, __m128i y, const int len,
const int idx);
This intrinsic corresponds to the \c INSERTQ instruction.
Parameters
xThe 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.
yThe source operand containing the bits to be extracted. The extracted bits are the least significant bits of operand y of length len.
lenBits [5:0] specify the length; the other bits are ignored. If bits [5:0] are zero, the length is interpreted as 64.
idxBits [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.