1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
external pop_count : (int [@untagged]) -> (int [@untagged]) =
"bit_lib_pop_count_tagged" "bit_lib_pop_count" [@@noalloc]
external pop_count_slow : int -> int =
"bit_lib_pop_count_tagged" [@@noalloc]
external msb_index : (int [@untagged]) -> (int [@untagged]) =
"bit_lib_msb_index_tagged" "bit_lib_msb_index" [@@noalloc]
external msb_index_slow : int -> int =
"bit_lib_msb_index_tagged" [@@noalloc]
external lsb_index : (int [@untagged]) -> (int [@untagged]) =
"bit_lib_lsb_index_tagged" "bit_lib_lsb_index" [@@noalloc]
external lsb_index_slow : int -> int =
"bit_lib_lsb_index_tagged" [@@noalloc]
let x = x land -x