11#error "Never use <ia32intrin.h> directly; include <x86intrin.h> instead."
31 return __builtin_ctz(__A);
46static __inline__
int __attribute__((__always_inline__, __nodebug__))
48 return 31 - __builtin_clz(__A);
62static __inline__
int __attribute__((__always_inline__, __nodebug__))
64 return __builtin_bswap32(__A);
67static __inline__
int __attribute__((__always_inline__, __nodebug__))
69 return __builtin_bswap32(__A);
72#define _bit_scan_forward(A) __bsfd((A))
73#define _bit_scan_reverse(A) __bsrd((A))
88static __inline__
int __attribute__((__always_inline__, __nodebug__))
89__bsfq(
long long __A) {
90 return __builtin_ctzll(__A);
105static __inline__
int __attribute__((__always_inline__, __nodebug__))
106__bsrq(
long long __A) {
107 return 63 - __builtin_clzll(__A);
121static __inline__
long long __attribute__((__always_inline__, __nodebug__))
122__bswapq(
long long __A) {
123 return __builtin_bswap64(__A);
126#define _bswap64(A) __bswapq((A))
141static __inline__
int __attribute__((__always_inline__, __nodebug__))
142__popcntd(
unsigned int __A)
144 return __builtin_popcount(__A);
147#define _popcnt32(A) __popcntd((A))
162static __inline__
long long __attribute__((__always_inline__, __nodebug__))
163__popcntq(
unsigned long long __A)
165 return __builtin_popcountll(__A);
168#define _popcnt64(A) __popcntq((A))
172static __inline__
unsigned long long __attribute__((__always_inline__, __nodebug__))
175 return __builtin_ia32_readeflags_u64();
178static __inline__
void __attribute__((__always_inline__, __nodebug__))
179__writeeflags(
unsigned long long __f)
181 __builtin_ia32_writeeflags_u64(__f);
185static __inline__
unsigned int __attribute__((__always_inline__, __nodebug__))
188 return __builtin_ia32_readeflags_u32();
191static __inline__
void __attribute__((__always_inline__, __nodebug__))
192__writeeflags(
unsigned int __f)
194 __builtin_ia32_writeeflags_u32(__f);
209_castf32_u32(
float __A) {
211 __builtin_memcpy(&D, &__A,
sizeof(__A));
225static __inline__
unsigned long long __attribute__((__always_inline__))
226_castf64_u64(
double __A) {
227 unsigned long long D;
228 __builtin_memcpy(&D, &__A,
sizeof(__A));
243_castu32_f32(
unsigned int __A) {
245 __builtin_memcpy(&D, &__A,
sizeof(__A));
260_castu64_f64(
unsigned long long __A) {
262 __builtin_memcpy(&D, &__A,
sizeof(__A));
281static __inline__
unsigned int __attribute__((__always_inline__, __nodebug__, __target__(
"sse4.2")))
282__crc32b(
unsigned int __C,
unsigned char __D)
284 return __builtin_ia32_crc32qi(
__C,
__D);
302static __inline__
unsigned int __attribute__((__always_inline__, __nodebug__, __target__(
"sse4.2")))
303__crc32w(
unsigned int __C,
unsigned short __D)
305 return __builtin_ia32_crc32hi(
__C,
__D);
323static __inline__
unsigned int __attribute__((__always_inline__, __nodebug__, __target__(
"sse4.2")))
324__crc32d(
unsigned int __C,
unsigned int __D)
326 return __builtin_ia32_crc32si(
__C,
__D);
345static __inline__
unsigned long long __attribute__((__always_inline__, __nodebug__, __target__(
"sse4.2")))
346__crc32q(
unsigned long long __C,
unsigned long long __D)
348 return __builtin_ia32_crc32di(
__C,
__D);
352static __inline__
unsigned long long __attribute__((__always_inline__, __nodebug__))
354 return __builtin_ia32_rdpmc(__A);
358static __inline__
unsigned long long __attribute__((__always_inline__, __nodebug__))
359__rdtscp(
unsigned int *__A) {
360 return __builtin_ia32_rdtscp(__A);
363#define _rdtsc() __rdtsc()
365#define _rdpmc(A) __rdpmc(A)
367static __inline__
void __attribute__((__always_inline__, __nodebug__))
369 __builtin_ia32_wbinvd();
372static __inline__
unsigned char __attribute__((__always_inline__, __nodebug__))
373__rolb(
unsigned char __X,
int __C) {
374 return __builtin_rotateleft8(__X,
__C);
377static __inline__
unsigned char __attribute__((__always_inline__, __nodebug__))
378__rorb(
unsigned char __X,
int __C) {
379 return __builtin_rotateright8(__X,
__C);
382static __inline__
unsigned short __attribute__((__always_inline__, __nodebug__))
383__rolw(
unsigned short __X,
int __C) {
384 return __builtin_rotateleft16(__X,
__C);
387static __inline__
unsigned short __attribute__((__always_inline__, __nodebug__))
388__rorw(
unsigned short __X,
int __C) {
389 return __builtin_rotateright16(__X,
__C);
392static __inline__
unsigned int __attribute__((__always_inline__, __nodebug__))
393__rold(
unsigned int __X,
int __C) {
394 return __builtin_rotateleft32(__X,
__C);
397static __inline__
unsigned int __attribute__((__always_inline__, __nodebug__))
398__rord(
unsigned int __X,
int __C) {
399 return __builtin_rotateright32(__X,
__C);
403static __inline__
unsigned long long __attribute__((__always_inline__, __nodebug__))
404__rolq(
unsigned long long __X,
int __C) {
405 return __builtin_rotateleft64(__X,
__C);
408static __inline__
unsigned long long __attribute__((__always_inline__, __nodebug__))
409__rorq(
unsigned long long __X,
int __C) {
410 return __builtin_rotateright64(__X,
__C);
418#define _lrotl(a,b) __rolq((a), (b))
419#define _lrotr(a,b) __rorq((a), (b))
421#define _lrotl(a,b) __rold((a), (b))
422#define _lrotr(a,b) __rord((a), (b))
424#define _rotl(a,b) __rold((a), (b))
425#define _rotr(a,b) __rord((a), (b))
429#define _rotwl(a,b) __rolw((a), (b))
430#define _rotwr(a,b) __rorw((a), (b))
_Float16 __2f16 __attribute__((ext_vector_type(2)))
Zeroes the upper 128 bits (bits 255:128) of all YMM registers.
static __inline__ unsigned int unsigned char __D
static __inline__ unsigned char int __C