Files
mercury/tests/hard_coded/arith_int16.exp
Julien Fischer 8f71e926d9 Extend fixed-size int tests to cover min/2 and max/2.
tests/hard_coded/arith_int{8,16,32,64}.{m,exp}:
tests/hard_coded/arith_uint{8,16,32,64}.{m,exp}:
    As above.
2026-03-04 01:07:28 +11:00

924 lines
14 KiB
Plaintext

*** Test unary operation '+' ***
+ -32768 = -32768
+ -128 = -128
+ 0 = 0
+ 1 = 1
+ 2 = 2
+ 8 = 8
+ 10 = 10
+ 16 = 16
+ 127 = 127
+ 255 = 255
+ 32767 = 32767
*** Test unary operation '-' ***
- -32768 = -32768
- -128 = 128
- 0 = 0
- 1 = -1
- 2 = -2
- 8 = -8
- 10 = -10
- 16 = -16
- 127 = -127
- 255 = -255
- 32767 = -32767
*** Test unary operation 'abs' ***
abs -32768 = <<exception>>
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 255 = 255
abs 32767 = 32767
*** Test unary operation 'nabs' ***
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 255 = -255
nabs 32767 = -32767
*** Test binary operation '+' ***
-32768 + -32768 = 0
-32768 + -128 = 32640
-32768 + 0 = -32768
-32768 + 1 = -32767
-32768 + 2 = -32766
-32768 + 8 = -32760
-32768 + 10 = -32758
-32768 + 16 = -32752
-32768 + 127 = -32641
-32768 + 255 = -32513
-32768 + 32767 = -1
-128 + -32768 = 32640
-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 + 255 = 127
-128 + 32767 = 32639
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 + 255 = 255
0 + 32767 = 32767
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 + 255 = 256
1 + 32767 = -32768
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 + 255 = 257
2 + 32767 = -32767
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 + 255 = 263
8 + 32767 = -32761
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 + 255 = 265
10 + 32767 = -32759
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 + 255 = 271
16 + 32767 = -32753
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 + 255 = 382
127 + 32767 = -32642
255 + -32768 = -32513
255 + -128 = 127
255 + 0 = 255
255 + 1 = 256
255 + 2 = 257
255 + 8 = 263
255 + 10 = 265
255 + 16 = 271
255 + 127 = 382
255 + 255 = 510
255 + 32767 = -32514
32767 + -32768 = -1
32767 + -128 = 32639
32767 + 0 = 32767
32767 + 1 = -32768
32767 + 2 = -32767
32767 + 8 = -32761
32767 + 10 = -32759
32767 + 16 = -32753
32767 + 127 = -32642
32767 + 255 = -32514
32767 + 32767 = -2
*** Test binary operation '-' ***
-32768 - -32768 = 0
-32768 - -128 = -32640
-32768 - 0 = -32768
-32768 - 1 = 32767
-32768 - 2 = 32766
-32768 - 8 = 32760
-32768 - 10 = 32758
-32768 - 16 = 32752
-32768 - 127 = 32641
-32768 - 255 = 32513
-32768 - 32767 = 1
-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 - 255 = -383
-128 - 32767 = 32641
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 - 255 = -255
0 - 32767 = -32767
1 - -32768 = -32767
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 - 255 = -254
1 - 32767 = -32766
2 - -32768 = -32766
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 - 255 = -253
2 - 32767 = -32765
8 - -32768 = -32760
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 - 255 = -247
8 - 32767 = -32759
10 - -32768 = -32758
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 - 255 = -245
10 - 32767 = -32757
16 - -32768 = -32752
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 - 255 = -239
16 - 32767 = -32751
127 - -32768 = -32641
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 - 255 = -128
127 - 32767 = -32640
255 - -32768 = -32513
255 - -128 = 383
255 - 0 = 255
255 - 1 = 254
255 - 2 = 253
255 - 8 = 247
255 - 10 = 245
255 - 16 = 239
255 - 127 = 128
255 - 255 = 0
255 - 32767 = -32512
32767 - -32768 = -1
32767 - -128 = -32641
32767 - 0 = 32767
32767 - 1 = 32766
32767 - 2 = 32765
32767 - 8 = 32759
32767 - 10 = 32757
32767 - 16 = 32751
32767 - 127 = 32640
32767 - 255 = 32512
32767 - 32767 = 0
*** Test binary operation '*' ***
-32768 * -32768 = 0
-32768 * -128 = 0
-32768 * 0 = 0
-32768 * 1 = -32768
-32768 * 2 = 0
-32768 * 8 = 0
-32768 * 10 = 0
-32768 * 16 = 0
-32768 * 127 = -32768
-32768 * 255 = -32768
-32768 * 32767 = -32768
-128 * -32768 = 0
-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 * 255 = -32640
-128 * 32767 = 128
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 * 255 = 0
0 * 32767 = 0
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 * 255 = 255
1 * 32767 = 32767
2 * -32768 = 0
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 * 255 = 510
2 * 32767 = -2
8 * -32768 = 0
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 * 255 = 2040
8 * 32767 = -8
10 * -32768 = 0
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 * 255 = 2550
10 * 32767 = -10
16 * -32768 = 0
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 * 255 = 4080
16 * 32767 = -16
127 * -32768 = -32768
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 * 255 = 32385
127 * 32767 = 32641
255 * -32768 = -32768
255 * -128 = -32640
255 * 0 = 0
255 * 1 = 255
255 * 2 = 510
255 * 8 = 2040
255 * 10 = 2550
255 * 16 = 4080
255 * 127 = 32385
255 * 255 = -511
255 * 32767 = 32513
32767 * -32768 = -32768
32767 * -128 = 128
32767 * 0 = 0
32767 * 1 = 32767
32767 * 2 = -2
32767 * 8 = -8
32767 * 10 = -10
32767 * 16 = -16
32767 * 127 = 32641
32767 * 255 = 32513
32767 * 32767 = 1
*** Test binary operation '/' ***
-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 / 255 = -128
-32768 / 32767 = -1
-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 / 255 = 0
-128 / 32767 = 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 / 255 = 0
0 / 32767 = 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 / 255 = 0
1 / 32767 = 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 / 255 = 0
2 / 32767 = 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 / 255 = 0
8 / 32767 = 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 / 255 = 0
10 / 32767 = 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 / 255 = 0
16 / 32767 = 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 / 255 = 0
127 / 32767 = 0
255 / -32768 = 0
255 / -128 = -1
255 / 0 = <<exception>>
255 / 1 = 255
255 / 2 = 127
255 / 8 = 31
255 / 10 = 25
255 / 16 = 15
255 / 127 = 2
255 / 255 = 1
255 / 32767 = 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 / 255 = 128
32767 / 32767 = 1
*** Test binary operation 'rem' ***
-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 255 = -128
-32768 rem 32767 = -1
-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 255 = -128
-128 rem 32767 = -128
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 255 = 0
0 rem 32767 = 0
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 255 = 1
1 rem 32767 = 1
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 255 = 2
2 rem 32767 = 2
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 255 = 8
8 rem 32767 = 8
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 255 = 10
10 rem 32767 = 10
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 255 = 16
16 rem 32767 = 16
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 255 = 127
127 rem 32767 = 127
255 rem -32768 = 255
255 rem -128 = 127
255 rem 0 = <<exception>>
255 rem 1 = 0
255 rem 2 = 1
255 rem 8 = 7
255 rem 10 = 5
255 rem 16 = 15
255 rem 127 = 1
255 rem 255 = 0
255 rem 32767 = 255
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 255 = 127
32767 rem 32767 = 0
*** Test binary operation 'max' ***
-32768 max -32768 = -32768
-32768 max -128 = -128
-32768 max 0 = 0
-32768 max 1 = 1
-32768 max 2 = 2
-32768 max 8 = 8
-32768 max 10 = 10
-32768 max 16 = 16
-32768 max 127 = 127
-32768 max 255 = 255
-32768 max 32767 = 32767
-128 max -32768 = -128
-128 max -128 = -128
-128 max 0 = 0
-128 max 1 = 1
-128 max 2 = 2
-128 max 8 = 8
-128 max 10 = 10
-128 max 16 = 16
-128 max 127 = 127
-128 max 255 = 255
-128 max 32767 = 32767
0 max -32768 = 0
0 max -128 = 0
0 max 0 = 0
0 max 1 = 1
0 max 2 = 2
0 max 8 = 8
0 max 10 = 10
0 max 16 = 16
0 max 127 = 127
0 max 255 = 255
0 max 32767 = 32767
1 max -32768 = 1
1 max -128 = 1
1 max 0 = 1
1 max 1 = 1
1 max 2 = 2
1 max 8 = 8
1 max 10 = 10
1 max 16 = 16
1 max 127 = 127
1 max 255 = 255
1 max 32767 = 32767
2 max -32768 = 2
2 max -128 = 2
2 max 0 = 2
2 max 1 = 2
2 max 2 = 2
2 max 8 = 8
2 max 10 = 10
2 max 16 = 16
2 max 127 = 127
2 max 255 = 255
2 max 32767 = 32767
8 max -32768 = 8
8 max -128 = 8
8 max 0 = 8
8 max 1 = 8
8 max 2 = 8
8 max 8 = 8
8 max 10 = 10
8 max 16 = 16
8 max 127 = 127
8 max 255 = 255
8 max 32767 = 32767
10 max -32768 = 10
10 max -128 = 10
10 max 0 = 10
10 max 1 = 10
10 max 2 = 10
10 max 8 = 10
10 max 10 = 10
10 max 16 = 16
10 max 127 = 127
10 max 255 = 255
10 max 32767 = 32767
16 max -32768 = 16
16 max -128 = 16
16 max 0 = 16
16 max 1 = 16
16 max 2 = 16
16 max 8 = 16
16 max 10 = 16
16 max 16 = 16
16 max 127 = 127
16 max 255 = 255
16 max 32767 = 32767
127 max -32768 = 127
127 max -128 = 127
127 max 0 = 127
127 max 1 = 127
127 max 2 = 127
127 max 8 = 127
127 max 10 = 127
127 max 16 = 127
127 max 127 = 127
127 max 255 = 255
127 max 32767 = 32767
255 max -32768 = 255
255 max -128 = 255
255 max 0 = 255
255 max 1 = 255
255 max 2 = 255
255 max 8 = 255
255 max 10 = 255
255 max 16 = 255
255 max 127 = 255
255 max 255 = 255
255 max 32767 = 32767
32767 max -32768 = 32767
32767 max -128 = 32767
32767 max 0 = 32767
32767 max 1 = 32767
32767 max 2 = 32767
32767 max 8 = 32767
32767 max 10 = 32767
32767 max 16 = 32767
32767 max 127 = 32767
32767 max 255 = 32767
32767 max 32767 = 32767
*** Test binary operation 'min' ***
-32768 min -32768 = -32768
-32768 min -128 = -32768
-32768 min 0 = -32768
-32768 min 1 = -32768
-32768 min 2 = -32768
-32768 min 8 = -32768
-32768 min 10 = -32768
-32768 min 16 = -32768
-32768 min 127 = -32768
-32768 min 255 = -32768
-32768 min 32767 = -32768
-128 min -32768 = -32768
-128 min -128 = -128
-128 min 0 = -128
-128 min 1 = -128
-128 min 2 = -128
-128 min 8 = -128
-128 min 10 = -128
-128 min 16 = -128
-128 min 127 = -128
-128 min 255 = -128
-128 min 32767 = -128
0 min -32768 = -32768
0 min -128 = -128
0 min 0 = 0
0 min 1 = 0
0 min 2 = 0
0 min 8 = 0
0 min 10 = 0
0 min 16 = 0
0 min 127 = 0
0 min 255 = 0
0 min 32767 = 0
1 min -32768 = -32768
1 min -128 = -128
1 min 0 = 0
1 min 1 = 1
1 min 2 = 1
1 min 8 = 1
1 min 10 = 1
1 min 16 = 1
1 min 127 = 1
1 min 255 = 1
1 min 32767 = 1
2 min -32768 = -32768
2 min -128 = -128
2 min 0 = 0
2 min 1 = 1
2 min 2 = 2
2 min 8 = 2
2 min 10 = 2
2 min 16 = 2
2 min 127 = 2
2 min 255 = 2
2 min 32767 = 2
8 min -32768 = -32768
8 min -128 = -128
8 min 0 = 0
8 min 1 = 1
8 min 2 = 2
8 min 8 = 8
8 min 10 = 8
8 min 16 = 8
8 min 127 = 8
8 min 255 = 8
8 min 32767 = 8
10 min -32768 = -32768
10 min -128 = -128
10 min 0 = 0
10 min 1 = 1
10 min 2 = 2
10 min 8 = 8
10 min 10 = 10
10 min 16 = 10
10 min 127 = 10
10 min 255 = 10
10 min 32767 = 10
16 min -32768 = -32768
16 min -128 = -128
16 min 0 = 0
16 min 1 = 1
16 min 2 = 2
16 min 8 = 8
16 min 10 = 10
16 min 16 = 16
16 min 127 = 16
16 min 255 = 16
16 min 32767 = 16
127 min -32768 = -32768
127 min -128 = -128
127 min 0 = 0
127 min 1 = 1
127 min 2 = 2
127 min 8 = 8
127 min 10 = 10
127 min 16 = 16
127 min 127 = 127
127 min 255 = 127
127 min 32767 = 127
255 min -32768 = -32768
255 min -128 = -128
255 min 0 = 0
255 min 1 = 1
255 min 2 = 2
255 min 8 = 8
255 min 10 = 10
255 min 16 = 16
255 min 127 = 127
255 min 255 = 255
255 min 32767 = 255
32767 min -32768 = -32768
32767 min -128 = -128
32767 min 0 = 0
32767 min 1 = 1
32767 min 2 = 2
32767 min 8 = 8
32767 min 10 = 10
32767 min 16 = 16
32767 min 127 = 127
32767 min 255 = 255
32767 min 32767 = 32767