Files
mercury/tests/hard_coded/bit_twiddle_uint32.exp
Julien Fischer 58341fd955 Add more operations 32-bit unsigned integers.
library/uint32.m:
    Add num_zeros/1, num_ones/1, num_leading_zeros/1, num_trailing_zeros/1
    and reverse_bits/1.

tests/hard_coded/Mmakefile:
tests/hard_coded/bit_twiddle_uint32.{m,exp}:
     Add tests of the above operations.
2018-03-14 05:11:32 -04:00

72 lines
3.5 KiB
Plaintext

*** Test function 'num_zeros' ***
num_zeros(00000000000000000000000000000000) = 32
num_zeros(00000000000000000000000000000001) = 31
num_zeros(00000000000000000000000000000010) = 31
num_zeros(00000000000000000000000000001000) = 31
num_zeros(00000000000000000000000000001010) = 30
num_zeros(00000000000000000000000000010000) = 31
num_zeros(00000000000000000000000011111111) = 24
num_zeros(00000000000000001111111111111111) = 16
num_zeros(11111111111111111111111111111111) = 0
*** Test function 'num_ones' ***
num_ones(00000000000000000000000000000000) = 0
num_ones(00000000000000000000000000000001) = 1
num_ones(00000000000000000000000000000010) = 1
num_ones(00000000000000000000000000001000) = 1
num_ones(00000000000000000000000000001010) = 2
num_ones(00000000000000000000000000010000) = 1
num_ones(00000000000000000000000011111111) = 8
num_ones(00000000000000001111111111111111) = 16
num_ones(11111111111111111111111111111111) = 32
*** Test function 'num_leading_zeros' ***
num_leading_zeros(00000000000000000000000000000000) = 32
num_leading_zeros(00000000000000000000000000000001) = 31
num_leading_zeros(00000000000000000000000000000010) = 30
num_leading_zeros(00000000000000000000000000001000) = 28
num_leading_zeros(00000000000000000000000000001010) = 28
num_leading_zeros(00000000000000000000000000010000) = 27
num_leading_zeros(00000000000000000000000011111111) = 24
num_leading_zeros(00000000000000001111111111111111) = 16
num_leading_zeros(11111111111111111111111111111111) = 0
*** Test function 'num_trailing_zeros' ***
num_trailing_zeros(00000000000000000000000000000000) = 32
num_trailing_zeros(00000000000000000000000000000001) = 0
num_trailing_zeros(00000000000000000000000000000010) = 1
num_trailing_zeros(00000000000000000000000000001000) = 3
num_trailing_zeros(00000000000000000000000000001010) = 1
num_trailing_zeros(00000000000000000000000000010000) = 4
num_trailing_zeros(00000000000000000000000011111111) = 0
num_trailing_zeros(00000000000000001111111111111111) = 0
num_trailing_zeros(11111111111111111111111111111111) = 0
*** Test function 'reverse_bits' ***
reverse_bits(00000000000000000000000000000000) = 00000000000000000000000000000000
reverse_bits(00000000000000000000000000000001) = 10000000000000000000000000000000
reverse_bits(00000000000000000000000000000010) = 01000000000000000000000000000000
reverse_bits(00000000000000000000000000001000) = 00010000000000000000000000000000
reverse_bits(00000000000000000000000000001010) = 01010000000000000000000000000000
reverse_bits(00000000000000000000000000010000) = 00001000000000000000000000000000
reverse_bits(00000000000000000000000011111111) = 11111111000000000000000000000000
reverse_bits(00000000000000001111111111111111) = 11111111111111110000000000000000
reverse_bits(11111111111111111111111111111111) = 11111111111111111111111111111111
*** Test function 'reverse_bytes' ***
reverse_bytes(00000000000000000000000000000000) = 00000000000000000000000000000000
reverse_bytes(00000000000000000000000000000001) = 00000001000000000000000000000000
reverse_bytes(00000000000000000000000000000010) = 00000010000000000000000000000000
reverse_bytes(00000000000000000000000000001000) = 00001000000000000000000000000000
reverse_bytes(00000000000000000000000000001010) = 00001010000000000000000000000000
reverse_bytes(00000000000000000000000000010000) = 00010000000000000000000000000000
reverse_bytes(00000000000000000000000011111111) = 11111111000000000000000000000000
reverse_bytes(00000000000000001111111111111111) = 11111111111111110000000000000000
reverse_bytes(11111111111111111111111111111111) = 11111111111111111111111111111111