The ROme OpTimistic Simulator
3.0.0
A General-Purpose Multithreaded Parallel/Distributed Simulation Platform
intrinsics.h
Go to the documentation of this file.
1
13
#pragma once
14
24
#define intrinsics_ctz(x) \
25
__extension__({ \
26
__builtin_choose_expr( \
27
__builtin_types_compatible_p(__typeof__ (x), unsigned), \
28
__builtin_ctz(x), \
29
__builtin_choose_expr( \
30
__builtin_types_compatible_p(__typeof__ (x), unsigned long), \
31
__builtin_ctzl(x), \
32
__builtin_choose_expr( \
33
__builtin_types_compatible_p(__typeof__ (x), unsigned long long),\
34
__builtin_ctzll(x), \
35
(void)0))); \
36
})
37
47
#define intrinsics_clz(x) \
48
__extension__({ \
49
__builtin_choose_expr( \
50
__builtin_types_compatible_p(__typeof__ (x), unsigned), \
51
__builtin_clz(x), \
52
__builtin_choose_expr( \
53
__builtin_types_compatible_p(__typeof__ (x), unsigned long), \
54
__builtin_clzl(x), \
55
__builtin_choose_expr( \
56
__builtin_types_compatible_p(__typeof__ (x), unsigned long long),\
57
__builtin_clzll(x), \
58
(void)0))); \
59
})
60
70
#define intrinsics_popcount(x) \
71
__extension__({ \
72
__builtin_choose_expr( \
73
__builtin_types_compatible_p(__typeof__ (x), unsigned), \
74
__builtin_popcount(x), \
75
__builtin_choose_expr( \
76
__builtin_types_compatible_p(__typeof__ (x), unsigned long), \
77
__builtin_popcountl(x), \
78
__builtin_choose_expr( \
79
__builtin_types_compatible_p(__typeof__ (x), unsigned long long),\
80
__builtin_popcountll(x), \
81
(void)0))); \
82
})
83
src
core
intrinsics.h
Generated by
1.8.17