Lines Matching refs:a
97 static inline uint32_t lfs2_max(uint32_t a, uint32_t b) { in lfs2_max() argument
98 return (a > b) ? a : b; in lfs2_max()
101 static inline uint32_t lfs2_min(uint32_t a, uint32_t b) { in lfs2_min() argument
102 return (a < b) ? a : b; in lfs2_min()
106 static inline uint32_t lfs2_aligndown(uint32_t a, uint32_t alignment) { in lfs2_aligndown() argument
107 return a - (a % alignment); in lfs2_aligndown()
110 static inline uint32_t lfs2_alignup(uint32_t a, uint32_t alignment) { in lfs2_alignup() argument
111 return lfs2_aligndown(a + alignment-1, alignment); in lfs2_alignup()
115 static inline uint32_t lfs2_npw2(uint32_t a) { in lfs2_npw2() argument
117 return 32 - __builtin_clz(a-1); in lfs2_npw2()
121 a -= 1; in lfs2_npw2()
122 s = (a > 0xffff) << 4; a >>= s; r |= s; in lfs2_npw2()
123 s = (a > 0xff ) << 3; a >>= s; r |= s; in lfs2_npw2()
124 s = (a > 0xf ) << 2; a >>= s; r |= s; in lfs2_npw2()
125 s = (a > 0x3 ) << 1; a >>= s; r |= s; in lfs2_npw2()
126 return (r | (a >> 1)) + 1; in lfs2_npw2()
132 static inline uint32_t lfs2_ctz(uint32_t a) { in lfs2_ctz() argument
134 return __builtin_ctz(a); in lfs2_ctz()
136 return lfs2_npw2((a & -a) + 1) - 1; in lfs2_ctz()
141 static inline uint32_t lfs2_popc(uint32_t a) { in lfs2_popc() argument
143 return __builtin_popcount(a); in lfs2_popc()
145 a = a - ((a >> 1) & 0x55555555); in lfs2_popc()
146 a = (a & 0x33333333) + ((a >> 2) & 0x33333333); in lfs2_popc()
147 return (((a + (a >> 4)) & 0xf0f0f0f) * 0x1010101) >> 24; in lfs2_popc()
153 static inline int lfs2_scmp(uint32_t a, uint32_t b) { in lfs2_scmp() argument
154 return (int)(unsigned)(a - b); in lfs2_scmp()
158 static inline uint32_t lfs2_fromle32(uint32_t a) { in lfs2_fromle32() argument
163 return a; in lfs2_fromle32()
168 return __builtin_bswap32(a); in lfs2_fromle32()
170 return (((uint8_t*)&a)[0] << 0) | in lfs2_fromle32()
171 (((uint8_t*)&a)[1] << 8) | in lfs2_fromle32()
172 (((uint8_t*)&a)[2] << 16) | in lfs2_fromle32()
173 (((uint8_t*)&a)[3] << 24); in lfs2_fromle32()
177 static inline uint32_t lfs2_tole32(uint32_t a) { in lfs2_tole32() argument
178 return lfs2_fromle32(a); in lfs2_tole32()
182 static inline uint32_t lfs2_frombe32(uint32_t a) { in lfs2_frombe32() argument
187 return __builtin_bswap32(a); in lfs2_frombe32()
192 return a; in lfs2_frombe32()
194 return (((uint8_t*)&a)[0] << 24) | in lfs2_frombe32()
195 (((uint8_t*)&a)[1] << 16) | in lfs2_frombe32()
196 (((uint8_t*)&a)[2] << 8) | in lfs2_frombe32()
197 (((uint8_t*)&a)[3] << 0); in lfs2_frombe32()
201 static inline uint32_t lfs2_tobe32(uint32_t a) { in lfs2_tobe32() argument
202 return lfs2_frombe32(a); in lfs2_tobe32()