Files
mercury/tests/hard_coded/arith_int32.exp
Julien Fischer c23ace77c8 Absolute value for fixed size signed integers.
library/int8.m:
library/int16.m:
library/int32.m:
    Implement abs/1, unchecked_abs/1 and nabs/1 for int8, in16 and int32.

tests/hard_coded/arith_int{8,16,32}.{m,exp}:
    Extend these tests to cover abs and nabs.
2018-01-14 19:54:26 -05:00

795 lines
15 KiB
Plaintext

*** Test unary operation '+' ***
+ -2147483648 = -2147483648
+ -32768 = -32768
+ -128 = -128
+ 0 = 0
+ 1 = 1
+ 2 = 2
+ 8 = 8
+ 10 = 10
+ 16 = 16
+ 127 = 127
+ 32767 = 32767
+ 2147483647 = 2147483647
*** Test unary operation '-' ***
- -2147483648 = -2147483648
- -32768 = 32768
- -128 = 128
- 0 = 0
- 1 = -1
- 2 = -2
- 8 = -8
- 10 = -10
- 16 = -16
- 127 = -127
- 32767 = -32767
- 2147483647 = -2147483647
*** Test unary operation 'abs' ***
abs -2147483648 = <<exception>>
abs -32768 = 32768
abs -128 = 128
abs 0 = 0
abs 1 = 1
abs 2 = 2
abs 8 = 8
abs 10 = 10
abs 16 = 16
abs 127 = 127
abs 32767 = 32767
abs 2147483647 = 2147483647
*** Test unary operation 'nabs' ***
nabs -2147483648 = -2147483648
nabs -32768 = -32768
nabs -128 = -128
nabs 0 = 0
nabs 1 = -1
nabs 2 = -2
nabs 8 = -8
nabs 10 = -10
nabs 16 = -16
nabs 127 = -127
nabs 32767 = -32767
nabs 2147483647 = -2147483647
*** Test binary operation '+' ***
-2147483648 + -2147483648 = 0
-2147483648 + -32768 = 2147450880
-2147483648 + -128 = 2147483520
-2147483648 + 0 = -2147483648
-2147483648 + 1 = -2147483647
-2147483648 + 2 = -2147483646
-2147483648 + 8 = -2147483640
-2147483648 + 10 = -2147483638
-2147483648 + 16 = -2147483632
-2147483648 + 127 = -2147483521
-2147483648 + 32767 = -2147450881
-2147483648 + 2147483647 = -1
-32768 + -2147483648 = 2147450880
-32768 + -32768 = -65536
-32768 + -128 = -32896
-32768 + 0 = -32768
-32768 + 1 = -32767
-32768 + 2 = -32766
-32768 + 8 = -32760
-32768 + 10 = -32758
-32768 + 16 = -32752
-32768 + 127 = -32641
-32768 + 32767 = -1
-32768 + 2147483647 = 2147450879
-128 + -2147483648 = 2147483520
-128 + -32768 = -32896
-128 + -128 = -256
-128 + 0 = -128
-128 + 1 = -127
-128 + 2 = -126
-128 + 8 = -120
-128 + 10 = -118
-128 + 16 = -112
-128 + 127 = -1
-128 + 32767 = 32639
-128 + 2147483647 = 2147483519
0 + -2147483648 = -2147483648
0 + -32768 = -32768
0 + -128 = -128
0 + 0 = 0
0 + 1 = 1
0 + 2 = 2
0 + 8 = 8
0 + 10 = 10
0 + 16 = 16
0 + 127 = 127
0 + 32767 = 32767
0 + 2147483647 = 2147483647
1 + -2147483648 = -2147483647
1 + -32768 = -32767
1 + -128 = -127
1 + 0 = 1
1 + 1 = 2
1 + 2 = 3
1 + 8 = 9
1 + 10 = 11
1 + 16 = 17
1 + 127 = 128
1 + 32767 = 32768
1 + 2147483647 = -2147483648
2 + -2147483648 = -2147483646
2 + -32768 = -32766
2 + -128 = -126
2 + 0 = 2
2 + 1 = 3
2 + 2 = 4
2 + 8 = 10
2 + 10 = 12
2 + 16 = 18
2 + 127 = 129
2 + 32767 = 32769
2 + 2147483647 = -2147483647
8 + -2147483648 = -2147483640
8 + -32768 = -32760
8 + -128 = -120
8 + 0 = 8
8 + 1 = 9
8 + 2 = 10
8 + 8 = 16
8 + 10 = 18
8 + 16 = 24
8 + 127 = 135
8 + 32767 = 32775
8 + 2147483647 = -2147483641
10 + -2147483648 = -2147483638
10 + -32768 = -32758
10 + -128 = -118
10 + 0 = 10
10 + 1 = 11
10 + 2 = 12
10 + 8 = 18
10 + 10 = 20
10 + 16 = 26
10 + 127 = 137
10 + 32767 = 32777
10 + 2147483647 = -2147483639
16 + -2147483648 = -2147483632
16 + -32768 = -32752
16 + -128 = -112
16 + 0 = 16
16 + 1 = 17
16 + 2 = 18
16 + 8 = 24
16 + 10 = 26
16 + 16 = 32
16 + 127 = 143
16 + 32767 = 32783
16 + 2147483647 = -2147483633
127 + -2147483648 = -2147483521
127 + -32768 = -32641
127 + -128 = -1
127 + 0 = 127
127 + 1 = 128
127 + 2 = 129
127 + 8 = 135
127 + 10 = 137
127 + 16 = 143
127 + 127 = 254
127 + 32767 = 32894
127 + 2147483647 = -2147483522
32767 + -2147483648 = -2147450881
32767 + -32768 = -1
32767 + -128 = 32639
32767 + 0 = 32767
32767 + 1 = 32768
32767 + 2 = 32769
32767 + 8 = 32775
32767 + 10 = 32777
32767 + 16 = 32783
32767 + 127 = 32894
32767 + 32767 = 65534
32767 + 2147483647 = -2147450882
2147483647 + -2147483648 = -1
2147483647 + -32768 = 2147450879
2147483647 + -128 = 2147483519
2147483647 + 0 = 2147483647
2147483647 + 1 = -2147483648
2147483647 + 2 = -2147483647
2147483647 + 8 = -2147483641
2147483647 + 10 = -2147483639
2147483647 + 16 = -2147483633
2147483647 + 127 = -2147483522
2147483647 + 32767 = -2147450882
2147483647 + 2147483647 = -2
*** Test binary operation '-' ***
-2147483648 - -2147483648 = 0
-2147483648 - -32768 = -2147450880
-2147483648 - -128 = -2147483520
-2147483648 - 0 = -2147483648
-2147483648 - 1 = 2147483647
-2147483648 - 2 = 2147483646
-2147483648 - 8 = 2147483640
-2147483648 - 10 = 2147483638
-2147483648 - 16 = 2147483632
-2147483648 - 127 = 2147483521
-2147483648 - 32767 = 2147450881
-2147483648 - 2147483647 = 1
-32768 - -2147483648 = 2147450880
-32768 - -32768 = 0
-32768 - -128 = -32640
-32768 - 0 = -32768
-32768 - 1 = -32769
-32768 - 2 = -32770
-32768 - 8 = -32776
-32768 - 10 = -32778
-32768 - 16 = -32784
-32768 - 127 = -32895
-32768 - 32767 = -65535
-32768 - 2147483647 = 2147450881
-128 - -2147483648 = 2147483520
-128 - -32768 = 32640
-128 - -128 = 0
-128 - 0 = -128
-128 - 1 = -129
-128 - 2 = -130
-128 - 8 = -136
-128 - 10 = -138
-128 - 16 = -144
-128 - 127 = -255
-128 - 32767 = -32895
-128 - 2147483647 = 2147483521
0 - -2147483648 = -2147483648
0 - -32768 = 32768
0 - -128 = 128
0 - 0 = 0
0 - 1 = -1
0 - 2 = -2
0 - 8 = -8
0 - 10 = -10
0 - 16 = -16
0 - 127 = -127
0 - 32767 = -32767
0 - 2147483647 = -2147483647
1 - -2147483648 = -2147483647
1 - -32768 = 32769
1 - -128 = 129
1 - 0 = 1
1 - 1 = 0
1 - 2 = -1
1 - 8 = -7
1 - 10 = -9
1 - 16 = -15
1 - 127 = -126
1 - 32767 = -32766
1 - 2147483647 = -2147483646
2 - -2147483648 = -2147483646
2 - -32768 = 32770
2 - -128 = 130
2 - 0 = 2
2 - 1 = 1
2 - 2 = 0
2 - 8 = -6
2 - 10 = -8
2 - 16 = -14
2 - 127 = -125
2 - 32767 = -32765
2 - 2147483647 = -2147483645
8 - -2147483648 = -2147483640
8 - -32768 = 32776
8 - -128 = 136
8 - 0 = 8
8 - 1 = 7
8 - 2 = 6
8 - 8 = 0
8 - 10 = -2
8 - 16 = -8
8 - 127 = -119
8 - 32767 = -32759
8 - 2147483647 = -2147483639
10 - -2147483648 = -2147483638
10 - -32768 = 32778
10 - -128 = 138
10 - 0 = 10
10 - 1 = 9
10 - 2 = 8
10 - 8 = 2
10 - 10 = 0
10 - 16 = -6
10 - 127 = -117
10 - 32767 = -32757
10 - 2147483647 = -2147483637
16 - -2147483648 = -2147483632
16 - -32768 = 32784
16 - -128 = 144
16 - 0 = 16
16 - 1 = 15
16 - 2 = 14
16 - 8 = 8
16 - 10 = 6
16 - 16 = 0
16 - 127 = -111
16 - 32767 = -32751
16 - 2147483647 = -2147483631
127 - -2147483648 = -2147483521
127 - -32768 = 32895
127 - -128 = 255
127 - 0 = 127
127 - 1 = 126
127 - 2 = 125
127 - 8 = 119
127 - 10 = 117
127 - 16 = 111
127 - 127 = 0
127 - 32767 = -32640
127 - 2147483647 = -2147483520
32767 - -2147483648 = -2147450881
32767 - -32768 = 65535
32767 - -128 = 32895
32767 - 0 = 32767
32767 - 1 = 32766
32767 - 2 = 32765
32767 - 8 = 32759
32767 - 10 = 32757
32767 - 16 = 32751
32767 - 127 = 32640
32767 - 32767 = 0
32767 - 2147483647 = -2147450880
2147483647 - -2147483648 = -1
2147483647 - -32768 = -2147450881
2147483647 - -128 = -2147483521
2147483647 - 0 = 2147483647
2147483647 - 1 = 2147483646
2147483647 - 2 = 2147483645
2147483647 - 8 = 2147483639
2147483647 - 10 = 2147483637
2147483647 - 16 = 2147483631
2147483647 - 127 = 2147483520
2147483647 - 32767 = 2147450880
2147483647 - 2147483647 = 0
*** Test binary operation '*' ***
-2147483648 * -2147483648 = 0
-2147483648 * -32768 = 0
-2147483648 * -128 = 0
-2147483648 * 0 = 0
-2147483648 * 1 = -2147483648
-2147483648 * 2 = 0
-2147483648 * 8 = 0
-2147483648 * 10 = 0
-2147483648 * 16 = 0
-2147483648 * 127 = -2147483648
-2147483648 * 32767 = -2147483648
-2147483648 * 2147483647 = -2147483648
-32768 * -2147483648 = 0
-32768 * -32768 = 1073741824
-32768 * -128 = 4194304
-32768 * 0 = 0
-32768 * 1 = -32768
-32768 * 2 = -65536
-32768 * 8 = -262144
-32768 * 10 = -327680
-32768 * 16 = -524288
-32768 * 127 = -4161536
-32768 * 32767 = -1073709056
-32768 * 2147483647 = 32768
-128 * -2147483648 = 0
-128 * -32768 = 4194304
-128 * -128 = 16384
-128 * 0 = 0
-128 * 1 = -128
-128 * 2 = -256
-128 * 8 = -1024
-128 * 10 = -1280
-128 * 16 = -2048
-128 * 127 = -16256
-128 * 32767 = -4194176
-128 * 2147483647 = 128
0 * -2147483648 = 0
0 * -32768 = 0
0 * -128 = 0
0 * 0 = 0
0 * 1 = 0
0 * 2 = 0
0 * 8 = 0
0 * 10 = 0
0 * 16 = 0
0 * 127 = 0
0 * 32767 = 0
0 * 2147483647 = 0
1 * -2147483648 = -2147483648
1 * -32768 = -32768
1 * -128 = -128
1 * 0 = 0
1 * 1 = 1
1 * 2 = 2
1 * 8 = 8
1 * 10 = 10
1 * 16 = 16
1 * 127 = 127
1 * 32767 = 32767
1 * 2147483647 = 2147483647
2 * -2147483648 = 0
2 * -32768 = -65536
2 * -128 = -256
2 * 0 = 0
2 * 1 = 2
2 * 2 = 4
2 * 8 = 16
2 * 10 = 20
2 * 16 = 32
2 * 127 = 254
2 * 32767 = 65534
2 * 2147483647 = -2
8 * -2147483648 = 0
8 * -32768 = -262144
8 * -128 = -1024
8 * 0 = 0
8 * 1 = 8
8 * 2 = 16
8 * 8 = 64
8 * 10 = 80
8 * 16 = 128
8 * 127 = 1016
8 * 32767 = 262136
8 * 2147483647 = -8
10 * -2147483648 = 0
10 * -32768 = -327680
10 * -128 = -1280
10 * 0 = 0
10 * 1 = 10
10 * 2 = 20
10 * 8 = 80
10 * 10 = 100
10 * 16 = 160
10 * 127 = 1270
10 * 32767 = 327670
10 * 2147483647 = -10
16 * -2147483648 = 0
16 * -32768 = -524288
16 * -128 = -2048
16 * 0 = 0
16 * 1 = 16
16 * 2 = 32
16 * 8 = 128
16 * 10 = 160
16 * 16 = 256
16 * 127 = 2032
16 * 32767 = 524272
16 * 2147483647 = -16
127 * -2147483648 = -2147483648
127 * -32768 = -4161536
127 * -128 = -16256
127 * 0 = 0
127 * 1 = 127
127 * 2 = 254
127 * 8 = 1016
127 * 10 = 1270
127 * 16 = 2032
127 * 127 = 16129
127 * 32767 = 4161409
127 * 2147483647 = 2147483521
32767 * -2147483648 = -2147483648
32767 * -32768 = -1073709056
32767 * -128 = -4194176
32767 * 0 = 0
32767 * 1 = 32767
32767 * 2 = 65534
32767 * 8 = 262136
32767 * 10 = 327670
32767 * 16 = 524272
32767 * 127 = 4161409
32767 * 32767 = 1073676289
32767 * 2147483647 = 2147450881
2147483647 * -2147483648 = -2147483648
2147483647 * -32768 = 32768
2147483647 * -128 = 128
2147483647 * 0 = 0
2147483647 * 1 = 2147483647
2147483647 * 2 = -2
2147483647 * 8 = -8
2147483647 * 10 = -10
2147483647 * 16 = -16
2147483647 * 127 = 2147483521
2147483647 * 32767 = 2147450881
2147483647 * 2147483647 = 1
*** Test binary operation '/' ***
-2147483648 / -2147483648 = 1
-2147483648 / -32768 = 65536
-2147483648 / -128 = 16777216
-2147483648 / 0 = <<exception>>
-2147483648 / 1 = -2147483648
-2147483648 / 2 = -1073741824
-2147483648 / 8 = -268435456
-2147483648 / 10 = -214748364
-2147483648 / 16 = -134217728
-2147483648 / 127 = -16909320
-2147483648 / 32767 = -65538
-2147483648 / 2147483647 = -1
-32768 / -2147483648 = 0
-32768 / -32768 = 1
-32768 / -128 = 256
-32768 / 0 = <<exception>>
-32768 / 1 = -32768
-32768 / 2 = -16384
-32768 / 8 = -4096
-32768 / 10 = -3276
-32768 / 16 = -2048
-32768 / 127 = -258
-32768 / 32767 = -1
-32768 / 2147483647 = 0
-128 / -2147483648 = 0
-128 / -32768 = 0
-128 / -128 = 1
-128 / 0 = <<exception>>
-128 / 1 = -128
-128 / 2 = -64
-128 / 8 = -16
-128 / 10 = -12
-128 / 16 = -8
-128 / 127 = -1
-128 / 32767 = 0
-128 / 2147483647 = 0
0 / -2147483648 = 0
0 / -32768 = 0
0 / -128 = 0
0 / 0 = <<exception>>
0 / 1 = 0
0 / 2 = 0
0 / 8 = 0
0 / 10 = 0
0 / 16 = 0
0 / 127 = 0
0 / 32767 = 0
0 / 2147483647 = 0
1 / -2147483648 = 0
1 / -32768 = 0
1 / -128 = 0
1 / 0 = <<exception>>
1 / 1 = 1
1 / 2 = 0
1 / 8 = 0
1 / 10 = 0
1 / 16 = 0
1 / 127 = 0
1 / 32767 = 0
1 / 2147483647 = 0
2 / -2147483648 = 0
2 / -32768 = 0
2 / -128 = 0
2 / 0 = <<exception>>
2 / 1 = 2
2 / 2 = 1
2 / 8 = 0
2 / 10 = 0
2 / 16 = 0
2 / 127 = 0
2 / 32767 = 0
2 / 2147483647 = 0
8 / -2147483648 = 0
8 / -32768 = 0
8 / -128 = 0
8 / 0 = <<exception>>
8 / 1 = 8
8 / 2 = 4
8 / 8 = 1
8 / 10 = 0
8 / 16 = 0
8 / 127 = 0
8 / 32767 = 0
8 / 2147483647 = 0
10 / -2147483648 = 0
10 / -32768 = 0
10 / -128 = 0
10 / 0 = <<exception>>
10 / 1 = 10
10 / 2 = 5
10 / 8 = 1
10 / 10 = 1
10 / 16 = 0
10 / 127 = 0
10 / 32767 = 0
10 / 2147483647 = 0
16 / -2147483648 = 0
16 / -32768 = 0
16 / -128 = 0
16 / 0 = <<exception>>
16 / 1 = 16
16 / 2 = 8
16 / 8 = 2
16 / 10 = 1
16 / 16 = 1
16 / 127 = 0
16 / 32767 = 0
16 / 2147483647 = 0
127 / -2147483648 = 0
127 / -32768 = 0
127 / -128 = 0
127 / 0 = <<exception>>
127 / 1 = 127
127 / 2 = 63
127 / 8 = 15
127 / 10 = 12
127 / 16 = 7
127 / 127 = 1
127 / 32767 = 0
127 / 2147483647 = 0
32767 / -2147483648 = 0
32767 / -32768 = 0
32767 / -128 = -255
32767 / 0 = <<exception>>
32767 / 1 = 32767
32767 / 2 = 16383
32767 / 8 = 4095
32767 / 10 = 3276
32767 / 16 = 2047
32767 / 127 = 258
32767 / 32767 = 1
32767 / 2147483647 = 0
2147483647 / -2147483648 = 0
2147483647 / -32768 = -65535
2147483647 / -128 = -16777215
2147483647 / 0 = <<exception>>
2147483647 / 1 = 2147483647
2147483647 / 2 = 1073741823
2147483647 / 8 = 268435455
2147483647 / 10 = 214748364
2147483647 / 16 = 134217727
2147483647 / 127 = 16909320
2147483647 / 32767 = 65538
2147483647 / 2147483647 = 1
*** Test binary operation 'rem' ***
-2147483648 rem -2147483648 = 0
-2147483648 rem -32768 = 0
-2147483648 rem -128 = 0
-2147483648 rem 0 = <<exception>>
-2147483648 rem 1 = 0
-2147483648 rem 2 = 0
-2147483648 rem 8 = 0
-2147483648 rem 10 = -8
-2147483648 rem 16 = 0
-2147483648 rem 127 = -8
-2147483648 rem 32767 = -2
-2147483648 rem 2147483647 = -1
-32768 rem -2147483648 = -32768
-32768 rem -32768 = 0
-32768 rem -128 = 0
-32768 rem 0 = <<exception>>
-32768 rem 1 = 0
-32768 rem 2 = 0
-32768 rem 8 = 0
-32768 rem 10 = -8
-32768 rem 16 = 0
-32768 rem 127 = -2
-32768 rem 32767 = -1
-32768 rem 2147483647 = -32768
-128 rem -2147483648 = -128
-128 rem -32768 = -128
-128 rem -128 = 0
-128 rem 0 = <<exception>>
-128 rem 1 = 0
-128 rem 2 = 0
-128 rem 8 = 0
-128 rem 10 = -8
-128 rem 16 = 0
-128 rem 127 = -1
-128 rem 32767 = -128
-128 rem 2147483647 = -128
0 rem -2147483648 = 0
0 rem -32768 = 0
0 rem -128 = 0
0 rem 0 = <<exception>>
0 rem 1 = 0
0 rem 2 = 0
0 rem 8 = 0
0 rem 10 = 0
0 rem 16 = 0
0 rem 127 = 0
0 rem 32767 = 0
0 rem 2147483647 = 0
1 rem -2147483648 = 1
1 rem -32768 = 1
1 rem -128 = 1
1 rem 0 = <<exception>>
1 rem 1 = 0
1 rem 2 = 1
1 rem 8 = 1
1 rem 10 = 1
1 rem 16 = 1
1 rem 127 = 1
1 rem 32767 = 1
1 rem 2147483647 = 1
2 rem -2147483648 = 2
2 rem -32768 = 2
2 rem -128 = 2
2 rem 0 = <<exception>>
2 rem 1 = 0
2 rem 2 = 0
2 rem 8 = 2
2 rem 10 = 2
2 rem 16 = 2
2 rem 127 = 2
2 rem 32767 = 2
2 rem 2147483647 = 2
8 rem -2147483648 = 8
8 rem -32768 = 8
8 rem -128 = 8
8 rem 0 = <<exception>>
8 rem 1 = 0
8 rem 2 = 0
8 rem 8 = 0
8 rem 10 = 8
8 rem 16 = 8
8 rem 127 = 8
8 rem 32767 = 8
8 rem 2147483647 = 8
10 rem -2147483648 = 10
10 rem -32768 = 10
10 rem -128 = 10
10 rem 0 = <<exception>>
10 rem 1 = 0
10 rem 2 = 0
10 rem 8 = 2
10 rem 10 = 0
10 rem 16 = 10
10 rem 127 = 10
10 rem 32767 = 10
10 rem 2147483647 = 10
16 rem -2147483648 = 16
16 rem -32768 = 16
16 rem -128 = 16
16 rem 0 = <<exception>>
16 rem 1 = 0
16 rem 2 = 0
16 rem 8 = 0
16 rem 10 = 6
16 rem 16 = 0
16 rem 127 = 16
16 rem 32767 = 16
16 rem 2147483647 = 16
127 rem -2147483648 = 127
127 rem -32768 = 127
127 rem -128 = 127
127 rem 0 = <<exception>>
127 rem 1 = 0
127 rem 2 = 1
127 rem 8 = 7
127 rem 10 = 7
127 rem 16 = 15
127 rem 127 = 0
127 rem 32767 = 127
127 rem 2147483647 = 127
32767 rem -2147483648 = 32767
32767 rem -32768 = 32767
32767 rem -128 = 127
32767 rem 0 = <<exception>>
32767 rem 1 = 0
32767 rem 2 = 1
32767 rem 8 = 7
32767 rem 10 = 7
32767 rem 16 = 15
32767 rem 127 = 1
32767 rem 32767 = 0
32767 rem 2147483647 = 32767
2147483647 rem -2147483648 = 2147483647
2147483647 rem -32768 = 32767
2147483647 rem -128 = 127
2147483647 rem 0 = <<exception>>
2147483647 rem 1 = 0
2147483647 rem 2 = 1
2147483647 rem 8 = 7
2147483647 rem 10 = 7
2147483647 rem 16 = 15
2147483647 rem 127 = 7
2147483647 rem 32767 = 1
2147483647 rem 2147483647 = 0