stdc_leading_zeros_{uc,us,ui,ul,ull}
stdc_leading_ones_{uc,us,ui,ul,ull}
stdc_trailing_zeros_{uc,us,ui,ul,ull}
stdc_trailing_ones_{uc,us,ui,ul,ull}
stdc_first_leading_zero_{uc,us,ui,ul,ull}
stdc_first_leading_one_{uc,us,ui,ul,ull}
stdc_first_trailing_zero_{uc,us,ui,ul,ull}
stdc_first_trailing_one_{uc,us,ui,ul,ull}
stdc_count_zeros_{uc,us,ui,ul,ull}
stdc_count_ones_{uc,us,ui,ul,ull}
stdc_has_single_bit_{uc,us,ui,ul,ull}
stdc_bit_width_{uc,us,ui,ul,ull}
stdc_bit_floor_{uc,us,ui,ul,ull}
stdc_bit_ceil_{uc,us,ui,ul,ull}
Lower type-specific <stdbit.h> functions to LLVM intrinsics
(ctlz/cttz/ctpop). Includes constant expression support and tests for
Sema, CodeGen, and constant evaluation.
Followup:#79630
104 lines
4.6 KiB
C
104 lines
4.6 KiB
C
#ifndef LLVM_CLANG_TEST_STDBIT_H
|
|
#define LLVM_CLANG_TEST_STDBIT_H
|
|
|
|
#define stdc_leading_zeros(x) (__builtin_stdc_leading_zeros((x)))
|
|
#define stdc_leading_ones(x) (__builtin_stdc_leading_ones((x)))
|
|
#define stdc_trailing_zeros(x) (__builtin_stdc_trailing_zeros((x)))
|
|
#define stdc_trailing_ones(x) (__builtin_stdc_trailing_ones((x)))
|
|
#define stdc_first_leading_zero(x) (__builtin_stdc_first_leading_zero((x)))
|
|
#define stdc_first_leading_one(x) (__builtin_stdc_first_leading_one((x)))
|
|
#define stdc_first_trailing_zero(x) (__builtin_stdc_first_trailing_zero((x)))
|
|
#define stdc_first_trailing_one(x) (__builtin_stdc_first_trailing_one((x)))
|
|
#define stdc_count_zeros(x) (__builtin_stdc_count_zeros((x)))
|
|
#define stdc_count_ones(x) (__builtin_stdc_count_ones((x)))
|
|
#define stdc_has_single_bit(x) ((_Bool)__builtin_stdc_has_single_bit((x)))
|
|
#define stdc_bit_width(x) (__builtin_stdc_bit_width((x)))
|
|
#define stdc_bit_floor(x) (__builtin_stdc_bit_floor((x)))
|
|
#define stdc_bit_ceil(x) (__builtin_stdc_bit_ceil((x)))
|
|
|
|
unsigned int stdc_leading_zeros_uc(unsigned char);
|
|
unsigned int stdc_leading_zeros_us(unsigned short);
|
|
unsigned int stdc_leading_zeros_ui(unsigned int);
|
|
unsigned int stdc_leading_zeros_ul(unsigned long);
|
|
unsigned int stdc_leading_zeros_ull(unsigned long long);
|
|
|
|
unsigned int stdc_leading_ones_uc(unsigned char);
|
|
unsigned int stdc_leading_ones_us(unsigned short);
|
|
unsigned int stdc_leading_ones_ui(unsigned int);
|
|
unsigned int stdc_leading_ones_ul(unsigned long);
|
|
unsigned int stdc_leading_ones_ull(unsigned long long);
|
|
|
|
unsigned int stdc_trailing_zeros_uc(unsigned char);
|
|
unsigned int stdc_trailing_zeros_us(unsigned short);
|
|
unsigned int stdc_trailing_zeros_ui(unsigned int);
|
|
unsigned int stdc_trailing_zeros_ul(unsigned long);
|
|
unsigned int stdc_trailing_zeros_ull(unsigned long long);
|
|
|
|
unsigned int stdc_trailing_ones_uc(unsigned char);
|
|
unsigned int stdc_trailing_ones_us(unsigned short);
|
|
unsigned int stdc_trailing_ones_ui(unsigned int);
|
|
unsigned int stdc_trailing_ones_ul(unsigned long);
|
|
unsigned int stdc_trailing_ones_ull(unsigned long long);
|
|
|
|
unsigned int stdc_first_leading_zero_uc(unsigned char);
|
|
unsigned int stdc_first_leading_zero_us(unsigned short);
|
|
unsigned int stdc_first_leading_zero_ui(unsigned int);
|
|
unsigned int stdc_first_leading_zero_ul(unsigned long);
|
|
unsigned int stdc_first_leading_zero_ull(unsigned long long);
|
|
|
|
unsigned int stdc_first_leading_one_uc(unsigned char);
|
|
unsigned int stdc_first_leading_one_us(unsigned short);
|
|
unsigned int stdc_first_leading_one_ui(unsigned int);
|
|
unsigned int stdc_first_leading_one_ul(unsigned long);
|
|
unsigned int stdc_first_leading_one_ull(unsigned long long);
|
|
|
|
unsigned int stdc_first_trailing_zero_uc(unsigned char);
|
|
unsigned int stdc_first_trailing_zero_us(unsigned short);
|
|
unsigned int stdc_first_trailing_zero_ui(unsigned int);
|
|
unsigned int stdc_first_trailing_zero_ul(unsigned long);
|
|
unsigned int stdc_first_trailing_zero_ull(unsigned long long);
|
|
|
|
unsigned int stdc_first_trailing_one_uc(unsigned char);
|
|
unsigned int stdc_first_trailing_one_us(unsigned short);
|
|
unsigned int stdc_first_trailing_one_ui(unsigned int);
|
|
unsigned int stdc_first_trailing_one_ul(unsigned long);
|
|
unsigned int stdc_first_trailing_one_ull(unsigned long long);
|
|
|
|
unsigned int stdc_count_zeros_uc(unsigned char);
|
|
unsigned int stdc_count_zeros_us(unsigned short);
|
|
unsigned int stdc_count_zeros_ui(unsigned int);
|
|
unsigned int stdc_count_zeros_ul(unsigned long);
|
|
unsigned int stdc_count_zeros_ull(unsigned long long);
|
|
|
|
unsigned int stdc_count_ones_uc(unsigned char);
|
|
unsigned int stdc_count_ones_us(unsigned short);
|
|
unsigned int stdc_count_ones_ui(unsigned int);
|
|
unsigned int stdc_count_ones_ul(unsigned long);
|
|
unsigned int stdc_count_ones_ull(unsigned long long);
|
|
|
|
_Bool stdc_has_single_bit_uc(unsigned char);
|
|
_Bool stdc_has_single_bit_us(unsigned short);
|
|
_Bool stdc_has_single_bit_ui(unsigned int);
|
|
_Bool stdc_has_single_bit_ul(unsigned long);
|
|
_Bool stdc_has_single_bit_ull(unsigned long long);
|
|
|
|
unsigned int stdc_bit_width_uc(unsigned char);
|
|
unsigned int stdc_bit_width_us(unsigned short);
|
|
unsigned int stdc_bit_width_ui(unsigned int);
|
|
unsigned int stdc_bit_width_ul(unsigned long);
|
|
unsigned int stdc_bit_width_ull(unsigned long long);
|
|
|
|
unsigned char stdc_bit_floor_uc(unsigned char);
|
|
unsigned short stdc_bit_floor_us(unsigned short);
|
|
unsigned int stdc_bit_floor_ui(unsigned int);
|
|
unsigned long stdc_bit_floor_ul(unsigned long);
|
|
unsigned long long stdc_bit_floor_ull(unsigned long long);
|
|
|
|
unsigned char stdc_bit_ceil_uc(unsigned char);
|
|
unsigned short stdc_bit_ceil_us(unsigned short);
|
|
unsigned int stdc_bit_ceil_ui(unsigned int);
|
|
unsigned long stdc_bit_ceil_ul(unsigned long);
|
|
unsigned long long stdc_bit_ceil_ull(unsigned long long);
|
|
|
|
#endif
|