clang 20.0.0git
|
#include <pmmintrin.h>
Go to the source code of this file.
Macros | |
#define | __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4a"), __min_vector_width__(128))) |
#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. | |
#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. | |
Functions | |
static __inline__ __m128i __DEFAULT_FN_ATTRS | _mm_extract_si64 (__m128i __x, __m128i __y) |
Extracts the specified bits from the lower 64 bits of the 128-bit integer vector operand at the index and of the length specified by __y. | |
static __inline__ __m128i __DEFAULT_FN_ATTRS | _mm_insert_si64 (__m128i __x, __m128i __y) |
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 and of the length specified by __y. | |
static __inline__ void __DEFAULT_FN_ATTRS | _mm_stream_sd (void *__p, __m128d __a) |
Stores a 64-bit double-precision value in a 64-bit memory location. | |
static __inline__ void __DEFAULT_FN_ATTRS | _mm_stream_ss (void *__p, __m128 __a) |
Stores a 32-bit single-precision floating-point value in a 32-bit memory location. | |
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("sse4a"), __min_vector_width__(128))) |
Definition at line 20 of file ammintrin.h.
#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.
This intrinsic corresponds to the EXTRQ
instruction.
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. |
Definition at line 46 of file ammintrin.h.
#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.
This intrinsic corresponds to the INSERTQ
instruction.
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. |
Definition at line 108 of file ammintrin.h.
|
static |
Extracts the specified bits from the lower 64 bits of the 128-bit integer vector operand at the index and of the length specified by __y.
This intrinsic corresponds to the EXTRQ
instruction.
__x | The value from which bits are extracted. |
__y | Specifies the index of the least significant bit at [13:8] and the length at [5:0]; all other bits are ignored. If bits [5:0] are zero, the length is interpreted as 64. 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. |
Definition at line 70 of file ammintrin.h.
References __y.
|
static |
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 and of the length specified by __y.
This intrinsic corresponds to the INSERTQ
instruction.
__x | The destination operand where bits will be inserted. The inserted bits are defined by the length and by the index of the least significant bit specified by operand __y. |
__y | The source operand containing the bits to be extracted. The extracted bits are the least significant bits of operand __y with length specified by bits [69:64]. These are inserted into the destination at the index specified by bits [77:72]; all other bits are ignored. If bits [69:64] are zero, the length is interpreted as 64. 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. |
Definition at line 140 of file ammintrin.h.
References __y.
|
static |
Stores a 64-bit double-precision value in a 64-bit memory location.
To minimize caching, the data is flagged as non-temporal (unlikely to be used again soon).
This intrinsic corresponds to the MOVNTSD
instruction.
__p | The 64-bit memory location used to store the register value. |
__a | The 64-bit double-precision floating-point register value to be stored. |
Definition at line 158 of file ammintrin.h.
|
static |
Stores a 32-bit single-precision floating-point value in a 32-bit memory location.
To minimize caching, the data is flagged as non-temporal (unlikely to be used again soon).
This intrinsic corresponds to the MOVNTSS
instruction.
__p | The 32-bit memory location used to store the register value. |
__a | The 32-bit single-precision floating-point register value to be stored. |
Definition at line 176 of file ammintrin.h.