Files
mercury/tests/hard_coded/uint_bitwise.exp
Julien Fischer f5769f0d58 Implement checked shifts for uints.
library/uint.m:
     Add checked left and right shift operations on uints.

tests/hard_coded/Mmakefile:
tests/hard_coded/uint_bitwise.m:
     Test bitwise operators on uints.

tests/hard_coded/uint_bitwise.exp:
     Expected output for 64-bit machines.

tests/hard_coded/uint_bitwise.exp2:
     Expected output for 32-bit machines (as well as the
     C# and Java grades).
2017-05-07 13:59:09 +10:00

326 lines
49 KiB
Plaintext

*** Test unary operation '\' ***
\ 0000000000000000000000000000000000000000000000000000000000000000 = 1111111111111111111111111111111111111111111111111111111111111111
\ 0000000000000000000000000000000000000000000000000000000000000001 = 1111111111111111111111111111111111111111111111111111111111111110
\ 0000000000000000000000000000000000000000000000000000000000000010 = 1111111111111111111111111111111111111111111111111111111111111101
\ 0000000000000000000000000000000000000000000000000000000000001000 = 1111111111111111111111111111111111111111111111111111111111110111
\ 0000000000000000000000000000000000000000000000000000000000001010 = 1111111111111111111111111111111111111111111111111111111111110101
\ 0000000000000000000000000000000000000000000000000000000000010000 = 1111111111111111111111111111111111111111111111111111111111101111
\ 1111111111111111111111111111111111111111111111111111111111111111 = 0000000000000000000000000000000000000000000000000000000000000000
*** Test binary operation '/\' ***
0000000000000000000000000000000000000000000000000000000000000000 /\ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 /\ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 /\ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 /\ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 /\ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 /\ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 /\ 1111111111111111111111111111111111111111111111111111111111111111 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 /\ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 /\ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000001 /\ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 /\ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 /\ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 /\ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 /\ 1111111111111111111111111111111111111111111111111111111111111111 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000010 /\ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 /\ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 /\ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000010 /\ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 /\ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000010 /\ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 /\ 1111111111111111111111111111111111111111111111111111111111111111 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000001000 /\ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 /\ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 /\ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 /\ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000001000 /\ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000001000 /\ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 /\ 1111111111111111111111111111111111111111111111111111111111111111 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000001010 /\ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 /\ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 /\ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000001010 /\ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000001010 /\ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001010 /\ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 /\ 1111111111111111111111111111111111111111111111111111111111111111 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000010000 /\ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 /\ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 /\ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 /\ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 /\ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 /\ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000010000 /\ 1111111111111111111111111111111111111111111111111111111111111111 = 0000000000000000000000000000000000000000000000000000000000010000
1111111111111111111111111111111111111111111111111111111111111111 /\ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111111111111111111111 /\ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000001
1111111111111111111111111111111111111111111111111111111111111111 /\ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000010
1111111111111111111111111111111111111111111111111111111111111111 /\ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001000
1111111111111111111111111111111111111111111111111111111111111111 /\ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001010
1111111111111111111111111111111111111111111111111111111111111111 /\ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000010000
1111111111111111111111111111111111111111111111111111111111111111 /\ 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111111
*** Test binary operation '\/' ***
0000000000000000000000000000000000000000000000000000000000000000 \/ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 \/ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000000 \/ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000000 \/ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000000000 \/ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000000000 \/ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000000000 \/ 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000000000000000000001 \/ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000001 \/ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000001 \/ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000011
0000000000000000000000000000000000000000000000000000000000000001 \/ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001001
0000000000000000000000000000000000000000000000000000000000000001 \/ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001011
0000000000000000000000000000000000000000000000000000000000000001 \/ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000010001
0000000000000000000000000000000000000000000000000000000000000001 \/ 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000000000000000000010 \/ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000010 \/ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000011
0000000000000000000000000000000000000000000000000000000000000010 \/ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000010 \/ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000000010 \/ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000000010 \/ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000010010
0000000000000000000000000000000000000000000000000000000000000010 \/ 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000000000000000001000 \/ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000001000 \/ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000001001
0000000000000000000000000000000000000000000000000000000000001000 \/ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001000 \/ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000001000 \/ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001000 \/ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000011000
0000000000000000000000000000000000000000000000000000000000001000 \/ 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000000000000000001010 \/ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001010 \/ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000001011
0000000000000000000000000000000000000000000000000000000000001010 \/ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001010 \/ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001010 \/ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001010 \/ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000011010
0000000000000000000000000000000000000000000000000000000000001010 \/ 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000000000000000010000 \/ 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000010000 \/ 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000010001
0000000000000000000000000000000000000000000000000000000000010000 \/ 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000010010
0000000000000000000000000000000000000000000000000000000000010000 \/ 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000011000
0000000000000000000000000000000000000000000000000000000000010000 \/ 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000011010
0000000000000000000000000000000000000000000000000000000000010000 \/ 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000010000 \/ 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 \/ 0000000000000000000000000000000000000000000000000000000000000000 = 1111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 \/ 0000000000000000000000000000000000000000000000000000000000000001 = 1111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 \/ 0000000000000000000000000000000000000000000000000000000000000010 = 1111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 \/ 0000000000000000000000000000000000000000000000000000000000001000 = 1111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 \/ 0000000000000000000000000000000000000000000000000000000000001010 = 1111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 \/ 0000000000000000000000000000000000000000000000000000000000010000 = 1111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 \/ 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111111
*** Test binary operation 'xor' ***
0000000000000000000000000000000000000000000000000000000000000000 xor 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 xor 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000000 xor 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000000 xor 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000000000 xor 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000000000 xor 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000000000 xor 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000000000000000000001 xor 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000001 xor 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 xor 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000011
0000000000000000000000000000000000000000000000000000000000000001 xor 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001001
0000000000000000000000000000000000000000000000000000000000000001 xor 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001011
0000000000000000000000000000000000000000000000000000000000000001 xor 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000010001
0000000000000000000000000000000000000000000000000000000000000001 xor 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111110
0000000000000000000000000000000000000000000000000000000000000010 xor 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000010 xor 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000000011
0000000000000000000000000000000000000000000000000000000000000010 xor 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 xor 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000000010 xor 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000000010 xor 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000010010
0000000000000000000000000000000000000000000000000000000000000010 xor 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111111101
0000000000000000000000000000000000000000000000000000000000001000 xor 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000001000 xor 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000001001
0000000000000000000000000000000000000000000000000000000000001000 xor 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001000 xor 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 xor 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000001000 xor 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000011000
0000000000000000000000000000000000000000000000000000000000001000 xor 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111110111
0000000000000000000000000000000000000000000000000000000000001010 xor 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001010 xor 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000001011
0000000000000000000000000000000000000000000000000000000000001010 xor 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000001010 xor 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000001010 xor 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 xor 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000011010
0000000000000000000000000000000000000000000000000000000000001010 xor 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111110101
0000000000000000000000000000000000000000000000000000000000010000 xor 0000000000000000000000000000000000000000000000000000000000000000 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000010000 xor 0000000000000000000000000000000000000000000000000000000000000001 = 0000000000000000000000000000000000000000000000000000000000010001
0000000000000000000000000000000000000000000000000000000000010000 xor 0000000000000000000000000000000000000000000000000000000000000010 = 0000000000000000000000000000000000000000000000000000000000010010
0000000000000000000000000000000000000000000000000000000000010000 xor 0000000000000000000000000000000000000000000000000000000000001000 = 0000000000000000000000000000000000000000000000000000000000011000
0000000000000000000000000000000000000000000000000000000000010000 xor 0000000000000000000000000000000000000000000000000000000000001010 = 0000000000000000000000000000000000000000000000000000000000011010
0000000000000000000000000000000000000000000000000000000000010000 xor 0000000000000000000000000000000000000000000000000000000000010000 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 xor 1111111111111111111111111111111111111111111111111111111111111111 = 1111111111111111111111111111111111111111111111111111111111101111
1111111111111111111111111111111111111111111111111111111111111111 xor 0000000000000000000000000000000000000000000000000000000000000000 = 1111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 xor 0000000000000000000000000000000000000000000000000000000000000001 = 1111111111111111111111111111111111111111111111111111111111111110
1111111111111111111111111111111111111111111111111111111111111111 xor 0000000000000000000000000000000000000000000000000000000000000010 = 1111111111111111111111111111111111111111111111111111111111111101
1111111111111111111111111111111111111111111111111111111111111111 xor 0000000000000000000000000000000000000000000000000000000000001000 = 1111111111111111111111111111111111111111111111111111111111110111
1111111111111111111111111111111111111111111111111111111111111111 xor 0000000000000000000000000000000000000000000000000000000000001010 = 1111111111111111111111111111111111111111111111111111111111110101
1111111111111111111111111111111111111111111111111111111111111111 xor 0000000000000000000000000000000000000000000000000000000000010000 = 1111111111111111111111111111111111111111111111111111111111101111
1111111111111111111111111111111111111111111111111111111111111111 xor 1111111111111111111111111111111111111111111111111111111111111111 = 0000000000000000000000000000000000000000000000000000000000000000
*** Test binary operation '>>' ***
0000000000000000000000000000000000000000000000000000000000000000 >> -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000000000 >> 0 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 >> 1 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 >> 2 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 >> 3 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 >> 4 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 >> 8 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 >> 16 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 >> 24 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 >> 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 >> 64 = <<exception>>
0000000000000000000000000000000000000000000000000000000000000001 >> -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000000001 >> 0 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000001 >> 1 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 >> 2 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 >> 3 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 >> 4 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 >> 8 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 >> 16 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 >> 24 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 >> 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 >> 64 = <<exception>>
0000000000000000000000000000000000000000000000000000000000000010 >> -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000000010 >> 0 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000010 >> 1 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000010 >> 2 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 >> 3 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 >> 4 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 >> 8 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 >> 16 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 >> 24 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 >> 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 >> 64 = <<exception>>
0000000000000000000000000000000000000000000000000000000000001000 >> -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000001000 >> 0 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000001000 >> 1 = 0000000000000000000000000000000000000000000000000000000000000100
0000000000000000000000000000000000000000000000000000000000001000 >> 2 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000001000 >> 3 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000001000 >> 4 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 >> 8 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 >> 16 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 >> 24 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 >> 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 >> 64 = <<exception>>
0000000000000000000000000000000000000000000000000000000000001010 >> -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000001010 >> 0 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001010 >> 1 = 0000000000000000000000000000000000000000000000000000000000000101
0000000000000000000000000000000000000000000000000000000000001010 >> 2 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000001010 >> 3 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000001010 >> 4 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 >> 8 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 >> 16 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 >> 24 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 >> 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 >> 64 = <<exception>>
0000000000000000000000000000000000000000000000000000000000010000 >> -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000010000 >> 0 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000010000 >> 1 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000010000 >> 2 = 0000000000000000000000000000000000000000000000000000000000000100
0000000000000000000000000000000000000000000000000000000000010000 >> 3 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000010000 >> 4 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000010000 >> 8 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 >> 16 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 >> 24 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 >> 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 >> 64 = <<exception>>
1111111111111111111111111111111111111111111111111111111111111111 >> -1 = <<exception>>
1111111111111111111111111111111111111111111111111111111111111111 >> 0 = 1111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 >> 1 = 0111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 >> 2 = 0011111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 >> 3 = 0001111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 >> 4 = 0000111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 >> 8 = 0000000011111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 >> 16 = 0000000000000000111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 >> 24 = 0000000000000000000000001111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 >> 63 = 0000000000000000000000000000000000000000000000000000000000000001
1111111111111111111111111111111111111111111111111111111111111111 >> 64 = <<exception>>
*** Test binary operation '<<' ***
0000000000000000000000000000000000000000000000000000000000000000 << -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000000000 << 0 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 << 1 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 << 2 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 << 3 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 << 4 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 << 8 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 << 16 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 << 24 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 << 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 << 64 = <<exception>>
0000000000000000000000000000000000000000000000000000000000000001 << -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000000001 << 0 = 0000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000001 << 1 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000001 << 2 = 0000000000000000000000000000000000000000000000000000000000000100
0000000000000000000000000000000000000000000000000000000000000001 << 3 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000000001 << 4 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000000001 << 8 = 0000000000000000000000000000000000000000000000000000000100000000
0000000000000000000000000000000000000000000000000000000000000001 << 16 = 0000000000000000000000000000000000000000000000010000000000000000
0000000000000000000000000000000000000000000000000000000000000001 << 24 = 0000000000000000000000000000000000000001000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 << 63 = 1000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000001 << 64 = <<exception>>
0000000000000000000000000000000000000000000000000000000000000010 << -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000000010 << 0 = 0000000000000000000000000000000000000000000000000000000000000010
0000000000000000000000000000000000000000000000000000000000000010 << 1 = 0000000000000000000000000000000000000000000000000000000000000100
0000000000000000000000000000000000000000000000000000000000000010 << 2 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000000010 << 3 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000000010 << 4 = 0000000000000000000000000000000000000000000000000000000000100000
0000000000000000000000000000000000000000000000000000000000000010 << 8 = 0000000000000000000000000000000000000000000000000000001000000000
0000000000000000000000000000000000000000000000000000000000000010 << 16 = 0000000000000000000000000000000000000000000000100000000000000000
0000000000000000000000000000000000000000000000000000000000000010 << 24 = 0000000000000000000000000000000000000010000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 << 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000010 << 64 = <<exception>>
0000000000000000000000000000000000000000000000000000000000001000 << -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000001000 << 0 = 0000000000000000000000000000000000000000000000000000000000001000
0000000000000000000000000000000000000000000000000000000000001000 << 1 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000001000 << 2 = 0000000000000000000000000000000000000000000000000000000000100000
0000000000000000000000000000000000000000000000000000000000001000 << 3 = 0000000000000000000000000000000000000000000000000000000001000000
0000000000000000000000000000000000000000000000000000000000001000 << 4 = 0000000000000000000000000000000000000000000000000000000010000000
0000000000000000000000000000000000000000000000000000000000001000 << 8 = 0000000000000000000000000000000000000000000000000000100000000000
0000000000000000000000000000000000000000000000000000000000001000 << 16 = 0000000000000000000000000000000000000000000010000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 << 24 = 0000000000000000000000000000000000001000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 << 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001000 << 64 = <<exception>>
0000000000000000000000000000000000000000000000000000000000001010 << -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000001010 << 0 = 0000000000000000000000000000000000000000000000000000000000001010
0000000000000000000000000000000000000000000000000000000000001010 << 1 = 0000000000000000000000000000000000000000000000000000000000010100
0000000000000000000000000000000000000000000000000000000000001010 << 2 = 0000000000000000000000000000000000000000000000000000000000101000
0000000000000000000000000000000000000000000000000000000000001010 << 3 = 0000000000000000000000000000000000000000000000000000000001010000
0000000000000000000000000000000000000000000000000000000000001010 << 4 = 0000000000000000000000000000000000000000000000000000000010100000
0000000000000000000000000000000000000000000000000000000000001010 << 8 = 0000000000000000000000000000000000000000000000000000101000000000
0000000000000000000000000000000000000000000000000000000000001010 << 16 = 0000000000000000000000000000000000000000000010100000000000000000
0000000000000000000000000000000000000000000000000000000000001010 << 24 = 0000000000000000000000000000000000001010000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 << 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000001010 << 64 = <<exception>>
0000000000000000000000000000000000000000000000000000000000010000 << -1 = <<exception>>
0000000000000000000000000000000000000000000000000000000000010000 << 0 = 0000000000000000000000000000000000000000000000000000000000010000
0000000000000000000000000000000000000000000000000000000000010000 << 1 = 0000000000000000000000000000000000000000000000000000000000100000
0000000000000000000000000000000000000000000000000000000000010000 << 2 = 0000000000000000000000000000000000000000000000000000000001000000
0000000000000000000000000000000000000000000000000000000000010000 << 3 = 0000000000000000000000000000000000000000000000000000000010000000
0000000000000000000000000000000000000000000000000000000000010000 << 4 = 0000000000000000000000000000000000000000000000000000000100000000
0000000000000000000000000000000000000000000000000000000000010000 << 8 = 0000000000000000000000000000000000000000000000000001000000000000
0000000000000000000000000000000000000000000000000000000000010000 << 16 = 0000000000000000000000000000000000000000000100000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 << 24 = 0000000000000000000000000000000000010000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 << 63 = 0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010000 << 64 = <<exception>>
1111111111111111111111111111111111111111111111111111111111111111 << -1 = <<exception>>
1111111111111111111111111111111111111111111111111111111111111111 << 0 = 1111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111111111111111111111111111111111111111 << 1 = 1111111111111111111111111111111111111111111111111111111111111110
1111111111111111111111111111111111111111111111111111111111111111 << 2 = 1111111111111111111111111111111111111111111111111111111111111100
1111111111111111111111111111111111111111111111111111111111111111 << 3 = 1111111111111111111111111111111111111111111111111111111111111000
1111111111111111111111111111111111111111111111111111111111111111 << 4 = 1111111111111111111111111111111111111111111111111111111111110000
1111111111111111111111111111111111111111111111111111111111111111 << 8 = 1111111111111111111111111111111111111111111111111111111100000000
1111111111111111111111111111111111111111111111111111111111111111 << 16 = 1111111111111111111111111111111111111111111111110000000000000000
1111111111111111111111111111111111111111111111111111111111111111 << 24 = 1111111111111111111111111111111111111111000000000000000000000000
1111111111111111111111111111111111111111111111111111111111111111 << 63 = 1000000000000000000000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111111111111111111111 << 64 = <<exception>>