10#if !defined X86GPRINTRIN_H_ 
   11#error "Never use <bmi2intrin.h> directly; include <x86gprintrin.h> instead." 
   17extern __inline 
unsigned int 
   20  return ((__X << (32 - 
__Y)) >> (32 - 
__Y));
 
   23extern __inline 
unsigned int 
   24    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
   26  unsigned long long __res = (
unsigned long long)__X * 
__Y;
 
   27  *
__P = (
unsigned int)(__res >> 32);
 
   28  return (
unsigned int)__res;
 
   32extern __inline 
unsigned long long 
   33    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
   34    _bzhi_u64(
unsigned long long __X, 
unsigned long long __Y) {
 
   35  return ((__X << (64 - 
__Y)) >> (64 - 
__Y));
 
   39extern __inline 
unsigned long long 
   40    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
   41    _mulx_u64(
unsigned long long __X, 
unsigned long long __Y,
 
   42              unsigned long long *
__P) {
 
   43  unsigned __int128 __res = (
unsigned __int128)__X * 
__Y;
 
   44  *
__P = (
unsigned long long)(__res >> 64);
 
   45  return (
unsigned long long)__res;
 
   50extern __inline 
unsigned long long 
   51    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
   52    _pdep_u64(
unsigned long long __X, 
unsigned long long __M) {
 
   53  unsigned long __result = 0x0UL;
 
   54  const unsigned long __mask = 0x8000000000000000UL;
 
   55  unsigned long __m = __M;
 
   56  unsigned long __c, __t;
 
   62  __p = 64 - __builtin_popcountl(__M);
 
   67    __c = __builtin_clzl(__m);
 
   69    __m ^= (__mask >> 
__c);
 
   70    __result |= (__t & (__mask >> 
__c));
 
   76extern __inline 
unsigned long long 
   77    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
   78    _pext_u64(
unsigned long long __X, 
unsigned long long __M) {
 
   79  unsigned long __p = 0x4040404040404040UL; 
 
   80  const unsigned long __mask = 0x8000000000000000UL;
 
   81  unsigned long __m = __M;
 
   83  unsigned long __result;
 
   87  if (__builtin_constant_p(__M) && (__builtin_popcountl(__M) <= 8)) {
 
   92    for (__i = 0; __i < __builtin_popcountl(__M); __i++) {
 
   93      __c = __builtin_clzl(__m);
 
   95      __m ^= (__mask >> 
__c);
 
   97    __result = __builtin_bpermd(
__p, __X);
 
   99    __p = 64 - __builtin_popcountl(__M);
 
  108      __c = __builtin_clzl(__m);
 
  109      __t = (__X & (__mask >> 
__c)) >> (
__p - 
__c);
 
  110      __m ^= (__mask >> 
__c);
 
  120extern __inline 
unsigned int 
  121    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
  123  return _pdep_u64(__X, 
__Y);
 
  126extern __inline 
unsigned int 
  127    __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
  129  return _pext_u64(__X, 
__Y);
 
_Float16 __2f16 __attribute__((ext_vector_type(2)))
Zeroes the upper 128 bits (bits 255:128) of all YMM registers.
static __inline__ vector float vector float vector float __c
static __inline__ uint32_t volatile uint32_t * __p
static __inline__ unsigned int __DEFAULT_FN_ATTRS _pext_u32(unsigned int __X, unsigned int __Y)
Extract (gather) bits from the unsigned 32-bit integer __X into the low-order bits of the 32-bit resu...
static __inline__ unsigned int __DEFAULT_FN_ATTRS _bzhi_u32(unsigned int __X, unsigned int __Y)
Copies the unsigned 32-bit integer __X and zeroes the upper bits starting at bit number __Y.
static __inline__ unsigned int __DEFAULT_FN_ATTRS _mulx_u32(unsigned int __X, unsigned int __Y, unsigned int *__P)
Multiplies the unsigned 32-bit integers __X and __Y to form a 64-bit product.
static __inline__ unsigned int __DEFAULT_FN_ATTRS _pdep_u32(unsigned int __X, unsigned int __Y)
Deposit (scatter) low-order bits from the unsigned 32-bit integer __X into the 32-bit result,...
__inline unsigned int unsigned int unsigned int * __P
__inline unsigned int unsigned int __Y