24 #ifndef _X86INTRIN_H_INCLUDED
25 # error "Never use <tbmintrin.h> directly; include <x86intrin.h> instead."
29 # error "TBM instruction set not enabled"
32 #ifndef _TBMINTRIN_H_INCLUDED
33 #define _TBMINTRIN_H_INCLUDED
36 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
39 return __builtin_ia32_bextri_u32 (__X, __I);
42 #define __bextri_u32(X, I) \
43 ((unsigned int)__builtin_ia32_bextri_u32 ((unsigned int)(X), \
47 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
48 __blcfill_u32 (
unsigned int __X)
50 return __X & (__X + 1);
53 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
54 __blci_u32 (
unsigned int __X)
56 return __X | ~(__X + 1);
59 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
60 __blcic_u32 (
unsigned int __X)
62 return ~__X & (__X + 1);
65 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
66 __blcmsk_u32 (
unsigned int __X)
68 return __X ^ (__X + 1);
71 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
72 __blcs_u32 (
unsigned int __X)
74 return __X | (__X + 1);
77 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
78 __blsfill_u32 (
unsigned int __X)
80 return __X | (__X - 1);
83 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
84 __blsic_u32 (
unsigned int __X)
86 return ~__X | (__X - 1);
89 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
90 __t1mskc_u32 (
unsigned int __X)
92 return ~__X | (__X + 1);
95 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
96 __tzmsk_u32 (
unsigned int __X)
98 return ~__X & (__X - 1);
105 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
106 __bextri_u64 (
unsigned long long __X, const
unsigned int __I)
108 return __builtin_ia32_bextri_u64 (__X, __I);
111 #define __bextri_u64(X, I) \
112 ((unsigned long long)__builtin_ia32_bextri_u64 ((unsigned long long)(X), \
113 (unsigned long long)(I)))
116 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
117 __blcfill_u64 (
unsigned long long __X)
119 return __X & (__X + 1);
122 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
123 __blci_u64 (
unsigned long long __X)
125 return __X | ~(__X + 1);
128 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
129 __blcic_u64 (
unsigned long long __X)
131 return ~__X & (__X + 1);
134 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
135 __blcmsk_u64 (
unsigned long long __X)
137 return __X ^ (__X + 1);
140 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
141 __blcs_u64 (
unsigned long long __X)
143 return __X | (__X + 1);
146 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
147 __blsfill_u64 (
unsigned long long __X)
149 return __X | (__X - 1);
152 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
153 __blsic_u64 (
unsigned long long __X)
155 return ~__X | (__X - 1);
158 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
159 __t1mskc_u64 (
unsigned long long __X)
161 return ~__X | (__X + 1);
164 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
165 __tzmsk_u64 (
unsigned long long __X)
167 return ~__X & (__X - 1);
#define __bextri_u32(X, I)
Definition: tbmintrin.h:42
__inline unsigned char unsigned int __X
Definition: adxintrin.h:33
__inline unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __blcfill_u32(unsigned int __X)
Definition: tbmintrin.h:47