24 #if !defined _X86INTRIN_H_INCLUDED && !defined _IMMINTRIN_H_INCLUDED
25 # error "Never use <lzcntintrin.h> directly; include <x86intrin.h> instead."
29 # error "LZCNT instruction is not enabled"
32 #ifndef _LZCNTINTRIN_H_INCLUDED
33 #define _LZCNTINTRIN_H_INCLUDED
35 extern __inline
unsigned short __attribute__((__gnu_inline__, __always_inline__, __artificial__))
36 __lzcnt16 (
unsigned short __X)
38 return __builtin_clzs (__X);
41 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
42 __lzcnt32 (
unsigned int __X)
44 return __builtin_clz (__X);
47 extern __inline
unsigned int __attribute__((__gnu_inline__, __always_inline__, __artificial__))
48 _lzcnt_u32 (
unsigned int __X)
50 return __builtin_clz (__X);
54 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
55 __lzcnt64 (
unsigned long long __X)
57 return __builtin_clzll (__X);
60 extern __inline
unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
61 _lzcnt_u64 (
unsigned long long __X)
63 return __builtin_clzll (__X);
__inline unsigned short __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __lzcnt16(unsigned short __X)
Definition: lzcntintrin.h:35
__inline unsigned char unsigned int __X
Definition: adxintrin.h:33