Linux vmi284606.contaboserver.net 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.57 (Ubuntu)
: 167.86.127.34 | : 216.73.217.31
Cant Read [ /etc/named.conf ]
7.2.24-0ubuntu0.18.04.17
root
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
local /
go /
src /
cmd /
compile /
internal /
gc /
[ HOME SHELL ]
Name
Size
Permission
Action
builtin
[ DIR ]
drwxr-xr-x
testdata
[ DIR ]
drwxr-xr-x
alg.go
16.28
KB
-rw-r--r--
align.go
9.85
KB
-rw-r--r--
bexport.go
4.41
KB
-rw-r--r--
bimport.go
667
B
-rw-r--r--
bitset.go
1.15
KB
-rw-r--r--
bootstrap.go
311
B
-rw-r--r--
builtin.go
16.41
KB
-rw-r--r--
builtin_test.go
622
B
-rw-r--r--
bv.go
5.5
KB
-rw-r--r--
class_string.go
712
B
-rw-r--r--
closure.go
15.57
KB
-rw-r--r--
const.go
27.21
KB
-rw-r--r--
constFold_test.go
322.99
KB
-rw-r--r--
dcl.go
28.37
KB
-rw-r--r--
dep_test.go
587
B
-rw-r--r--
dump.go
6.37
KB
-rw-r--r--
dwinl.go
10.07
KB
-rw-r--r--
esc.go
12.22
KB
-rw-r--r--
escape.go
37.37
KB
-rw-r--r--
export.go
5.33
KB
-rw-r--r--
fixedbugs_test.go
2.23
KB
-rw-r--r--
float_test.go
11.51
KB
-rw-r--r--
fmt.go
41.71
KB
-rw-r--r--
gen.go
2.33
KB
-rw-r--r--
global_test.go
2.57
KB
-rw-r--r--
go.go
7.4
KB
-rw-r--r--
gsubr.go
9.08
KB
-rw-r--r--
iexport.go
31.65
KB
-rw-r--r--
iface_test.go
1.92
KB
-rw-r--r--
iimport.go
22.79
KB
-rw-r--r--
init.go
3.29
KB
-rw-r--r--
initorder.go
9.84
KB
-rw-r--r--
inl.go
35.08
KB
-rw-r--r--
inl_test.go
6.64
KB
-rw-r--r--
lang_test.go
1.46
KB
-rw-r--r--
lex.go
5.96
KB
-rw-r--r--
lex_test.go
3.63
KB
-rw-r--r--
logic_test.go
11.08
KB
-rw-r--r--
main.go
43.75
KB
-rw-r--r--
mapfile_mmap.go
1.21
KB
-rw-r--r--
mapfile_read.go
485
B
-rw-r--r--
mkbuiltin.go
5.34
KB
-rw-r--r--
mpfloat.go
6.56
KB
-rw-r--r--
mpint.go
5.34
KB
-rw-r--r--
noder.go
37.65
KB
-rw-r--r--
obj.go
11.44
KB
-rw-r--r--
op_string.go
4.88
KB
-rw-r--r--
order.go
37.39
KB
-rw-r--r--
pgen.go
21.66
KB
-rw-r--r--
pgen_test.go
6.01
KB
-rw-r--r--
phi.go
14.72
KB
-rw-r--r--
plive.go
44.51
KB
-rw-r--r--
pprof.go
274
B
-rw-r--r--
racewalk.go
2.61
KB
-rw-r--r--
range.go
13.72
KB
-rw-r--r--
reflect.go
48.07
KB
-rw-r--r--
reproduciblebuilds_test.go
1.46
KB
-rw-r--r--
scc.go
4.18
KB
-rw-r--r--
scope.go
2.8
KB
-rw-r--r--
scope_test.go
13.67
KB
-rw-r--r--
select.go
9.16
KB
-rw-r--r--
shift_test.go
21.46
KB
-rw-r--r--
sinit.go
26.75
KB
-rw-r--r--
sizeof_test.go
844
B
-rw-r--r--
ssa.go
224.4
KB
-rw-r--r--
ssa_test.go
5.1
KB
-rw-r--r--
subr.go
43.73
KB
-rw-r--r--
swt.go
18.51
KB
-rw-r--r--
syntax.go
36.41
KB
-rw-r--r--
timings.go
5.75
KB
-rw-r--r--
trace.go
494
B
-rw-r--r--
truncconst_test.go
1.76
KB
-rw-r--r--
typecheck.go
87.11
KB
-rw-r--r--
types.go
1.19
KB
-rw-r--r--
types_acc.go
491
B
-rw-r--r--
universe.go
10.88
KB
-rw-r--r--
unsafe.go
1.8
KB
-rw-r--r--
util.go
2.18
KB
-rw-r--r--
walk.go
101.89
KB
-rw-r--r--
zerorange_test.go
1.89
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : constFold_test.go
// run // Code generated by gen/constFoldGen.go. DO NOT EDIT. package gc import "testing" func TestConstFolduint64add(t *testing.T) { var x, y, r uint64 x = 0 y = 0 r = x + y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "+", r) } y = 1 r = x + y if r != 1 { t.Errorf("0 %s 1 = %d, want 1", "+", r) } y = 4294967296 r = x + y if r != 4294967296 { t.Errorf("0 %s 4294967296 = %d, want 4294967296", "+", r) } y = 18446744073709551615 r = x + y if r != 18446744073709551615 { t.Errorf("0 %s 18446744073709551615 = %d, want 18446744073709551615", "+", r) } x = 1 y = 0 r = x + y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "+", r) } y = 1 r = x + y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "+", r) } y = 4294967296 r = x + y if r != 4294967297 { t.Errorf("1 %s 4294967296 = %d, want 4294967297", "+", r) } y = 18446744073709551615 r = x + y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", "+", r) } x = 4294967296 y = 0 r = x + y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "+", r) } y = 1 r = x + y if r != 4294967297 { t.Errorf("4294967296 %s 1 = %d, want 4294967297", "+", r) } y = 4294967296 r = x + y if r != 8589934592 { t.Errorf("4294967296 %s 4294967296 = %d, want 8589934592", "+", r) } y = 18446744073709551615 r = x + y if r != 4294967295 { t.Errorf("4294967296 %s 18446744073709551615 = %d, want 4294967295", "+", r) } x = 18446744073709551615 y = 0 r = x + y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "+", r) } y = 1 r = x + y if r != 0 { t.Errorf("18446744073709551615 %s 1 = %d, want 0", "+", r) } y = 4294967296 r = x + y if r != 4294967295 { t.Errorf("18446744073709551615 %s 4294967296 = %d, want 4294967295", "+", r) } y = 18446744073709551615 r = x + y if r != 18446744073709551614 { t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 18446744073709551614", "+", r) } } func TestConstFolduint64sub(t *testing.T) { var x, y, r uint64 x = 0 y = 0 r = x - y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "-", r) } y = 1 r = x - y if r != 18446744073709551615 { t.Errorf("0 %s 1 = %d, want 18446744073709551615", "-", r) } y = 4294967296 r = x - y if r != 18446744069414584320 { t.Errorf("0 %s 4294967296 = %d, want 18446744069414584320", "-", r) } y = 18446744073709551615 r = x - y if r != 1 { t.Errorf("0 %s 18446744073709551615 = %d, want 1", "-", r) } x = 1 y = 0 r = x - y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "-", r) } y = 1 r = x - y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "-", r) } y = 4294967296 r = x - y if r != 18446744069414584321 { t.Errorf("1 %s 4294967296 = %d, want 18446744069414584321", "-", r) } y = 18446744073709551615 r = x - y if r != 2 { t.Errorf("1 %s 18446744073709551615 = %d, want 2", "-", r) } x = 4294967296 y = 0 r = x - y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "-", r) } y = 1 r = x - y if r != 4294967295 { t.Errorf("4294967296 %s 1 = %d, want 4294967295", "-", r) } y = 4294967296 r = x - y if r != 0 { t.Errorf("4294967296 %s 4294967296 = %d, want 0", "-", r) } y = 18446744073709551615 r = x - y if r != 4294967297 { t.Errorf("4294967296 %s 18446744073709551615 = %d, want 4294967297", "-", r) } x = 18446744073709551615 y = 0 r = x - y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "-", r) } y = 1 r = x - y if r != 18446744073709551614 { t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "-", r) } y = 4294967296 r = x - y if r != 18446744069414584319 { t.Errorf("18446744073709551615 %s 4294967296 = %d, want 18446744069414584319", "-", r) } y = 18446744073709551615 r = x - y if r != 0 { t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", "-", r) } } func TestConstFolduint64div(t *testing.T) { var x, y, r uint64 x = 0 y = 1 r = x / y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "/", r) } y = 4294967296 r = x / y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "/", r) } y = 18446744073709551615 r = x / y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "/", r) } x = 1 y = 1 r = x / y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "/", r) } y = 4294967296 r = x / y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", "/", r) } y = 18446744073709551615 r = x / y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", "/", r) } x = 4294967296 y = 1 r = x / y if r != 4294967296 { t.Errorf("4294967296 %s 1 = %d, want 4294967296", "/", r) } y = 4294967296 r = x / y if r != 1 { t.Errorf("4294967296 %s 4294967296 = %d, want 1", "/", r) } y = 18446744073709551615 r = x / y if r != 0 { t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", "/", r) } x = 18446744073709551615 y = 1 r = x / y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551615", "/", r) } y = 4294967296 r = x / y if r != 4294967295 { t.Errorf("18446744073709551615 %s 4294967296 = %d, want 4294967295", "/", r) } y = 18446744073709551615 r = x / y if r != 1 { t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 1", "/", r) } } func TestConstFolduint64mul(t *testing.T) { var x, y, r uint64 x = 0 y = 0 r = x * y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "*", r) } y = 4294967296 r = x * y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "*", r) } y = 18446744073709551615 r = x * y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "*", r) } x = 1 y = 0 r = x * y if r != 0 { t.Errorf("1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "*", r) } y = 4294967296 r = x * y if r != 4294967296 { t.Errorf("1 %s 4294967296 = %d, want 4294967296", "*", r) } y = 18446744073709551615 r = x * y if r != 18446744073709551615 { t.Errorf("1 %s 18446744073709551615 = %d, want 18446744073709551615", "*", r) } x = 4294967296 y = 0 r = x * y if r != 0 { t.Errorf("4294967296 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 4294967296 { t.Errorf("4294967296 %s 1 = %d, want 4294967296", "*", r) } y = 4294967296 r = x * y if r != 0 { t.Errorf("4294967296 %s 4294967296 = %d, want 0", "*", r) } y = 18446744073709551615 r = x * y if r != 18446744069414584320 { t.Errorf("4294967296 %s 18446744073709551615 = %d, want 18446744069414584320", "*", r) } x = 18446744073709551615 y = 0 r = x * y if r != 0 { t.Errorf("18446744073709551615 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551615", "*", r) } y = 4294967296 r = x * y if r != 18446744069414584320 { t.Errorf("18446744073709551615 %s 4294967296 = %d, want 18446744069414584320", "*", r) } y = 18446744073709551615 r = x * y if r != 1 { t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 1", "*", r) } } func TestConstFolduint64mod(t *testing.T) { var x, y, r uint64 x = 0 y = 1 r = x % y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "%", r) } y = 18446744073709551615 r = x % y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "%", r) } x = 1 y = 1 r = x % y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 1 { t.Errorf("1 %s 4294967296 = %d, want 1", "%", r) } y = 18446744073709551615 r = x % y if r != 1 { t.Errorf("1 %s 18446744073709551615 = %d, want 1", "%", r) } x = 4294967296 y = 1 r = x % y if r != 0 { t.Errorf("4294967296 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 0 { t.Errorf("4294967296 %s 4294967296 = %d, want 0", "%", r) } y = 18446744073709551615 r = x % y if r != 4294967296 { t.Errorf("4294967296 %s 18446744073709551615 = %d, want 4294967296", "%", r) } x = 18446744073709551615 y = 1 r = x % y if r != 0 { t.Errorf("18446744073709551615 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 4294967295 { t.Errorf("18446744073709551615 %s 4294967296 = %d, want 4294967295", "%", r) } y = 18446744073709551615 r = x % y if r != 0 { t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", "%", r) } } func TestConstFoldint64add(t *testing.T) { var x, y, r int64 x = -9223372036854775808 y = -9223372036854775808 r = x + y if r != 0 { t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "+", r) } y = -9223372036854775807 r = x + y if r != 1 { t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want 1", "+", r) } y = -4294967296 r = x + y if r != 9223372032559808512 { t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 9223372032559808512", "+", r) } y = -1 r = x + y if r != 9223372036854775807 { t.Errorf("-9223372036854775808 %s -1 = %d, want 9223372036854775807", "+", r) } y = 0 r = x + y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "+", r) } y = 1 r = x + y if r != -9223372036854775807 { t.Errorf("-9223372036854775808 %s 1 = %d, want -9223372036854775807", "+", r) } y = 4294967296 r = x + y if r != -9223372032559808512 { t.Errorf("-9223372036854775808 %s 4294967296 = %d, want -9223372032559808512", "+", r) } y = 9223372036854775806 r = x + y if r != -2 { t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want -2", "+", r) } y = 9223372036854775807 r = x + y if r != -1 { t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -1", "+", r) } x = -9223372036854775807 y = -9223372036854775808 r = x + y if r != 1 { t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want 1", "+", r) } y = -9223372036854775807 r = x + y if r != 2 { t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 2", "+", r) } y = -4294967296 r = x + y if r != 9223372032559808513 { t.Errorf("-9223372036854775807 %s -4294967296 = %d, want 9223372032559808513", "+", r) } y = -1 r = x + y if r != -9223372036854775808 { t.Errorf("-9223372036854775807 %s -1 = %d, want -9223372036854775808", "+", r) } y = 0 r = x + y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "+", r) } y = 1 r = x + y if r != -9223372036854775806 { t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775806", "+", r) } y = 4294967296 r = x + y if r != -9223372032559808511 { t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -9223372032559808511", "+", r) } y = 9223372036854775806 r = x + y if r != -1 { t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want -1", "+", r) } y = 9223372036854775807 r = x + y if r != 0 { t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want 0", "+", r) } x = -4294967296 y = -9223372036854775808 r = x + y if r != 9223372032559808512 { t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 9223372032559808512", "+", r) } y = -9223372036854775807 r = x + y if r != 9223372032559808513 { t.Errorf("-4294967296 %s -9223372036854775807 = %d, want 9223372032559808513", "+", r) } y = -4294967296 r = x + y if r != -8589934592 { t.Errorf("-4294967296 %s -4294967296 = %d, want -8589934592", "+", r) } y = -1 r = x + y if r != -4294967297 { t.Errorf("-4294967296 %s -1 = %d, want -4294967297", "+", r) } y = 0 r = x + y if r != -4294967296 { t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "+", r) } y = 1 r = x + y if r != -4294967295 { t.Errorf("-4294967296 %s 1 = %d, want -4294967295", "+", r) } y = 4294967296 r = x + y if r != 0 { t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "+", r) } y = 9223372036854775806 r = x + y if r != 9223372032559808510 { t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 9223372032559808510", "+", r) } y = 9223372036854775807 r = x + y if r != 9223372032559808511 { t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 9223372032559808511", "+", r) } x = -1 y = -9223372036854775808 r = x + y if r != 9223372036854775807 { t.Errorf("-1 %s -9223372036854775808 = %d, want 9223372036854775807", "+", r) } y = -9223372036854775807 r = x + y if r != -9223372036854775808 { t.Errorf("-1 %s -9223372036854775807 = %d, want -9223372036854775808", "+", r) } y = -4294967296 r = x + y if r != -4294967297 { t.Errorf("-1 %s -4294967296 = %d, want -4294967297", "+", r) } y = -1 r = x + y if r != -2 { t.Errorf("-1 %s -1 = %d, want -2", "+", r) } y = 0 r = x + y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "+", r) } y = 1 r = x + y if r != 0 { t.Errorf("-1 %s 1 = %d, want 0", "+", r) } y = 4294967296 r = x + y if r != 4294967295 { t.Errorf("-1 %s 4294967296 = %d, want 4294967295", "+", r) } y = 9223372036854775806 r = x + y if r != 9223372036854775805 { t.Errorf("-1 %s 9223372036854775806 = %d, want 9223372036854775805", "+", r) } y = 9223372036854775807 r = x + y if r != 9223372036854775806 { t.Errorf("-1 %s 9223372036854775807 = %d, want 9223372036854775806", "+", r) } x = 0 y = -9223372036854775808 r = x + y if r != -9223372036854775808 { t.Errorf("0 %s -9223372036854775808 = %d, want -9223372036854775808", "+", r) } y = -9223372036854775807 r = x + y if r != -9223372036854775807 { t.Errorf("0 %s -9223372036854775807 = %d, want -9223372036854775807", "+", r) } y = -4294967296 r = x + y if r != -4294967296 { t.Errorf("0 %s -4294967296 = %d, want -4294967296", "+", r) } y = -1 r = x + y if r != -1 { t.Errorf("0 %s -1 = %d, want -1", "+", r) } y = 0 r = x + y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "+", r) } y = 1 r = x + y if r != 1 { t.Errorf("0 %s 1 = %d, want 1", "+", r) } y = 4294967296 r = x + y if r != 4294967296 { t.Errorf("0 %s 4294967296 = %d, want 4294967296", "+", r) } y = 9223372036854775806 r = x + y if r != 9223372036854775806 { t.Errorf("0 %s 9223372036854775806 = %d, want 9223372036854775806", "+", r) } y = 9223372036854775807 r = x + y if r != 9223372036854775807 { t.Errorf("0 %s 9223372036854775807 = %d, want 9223372036854775807", "+", r) } x = 1 y = -9223372036854775808 r = x + y if r != -9223372036854775807 { t.Errorf("1 %s -9223372036854775808 = %d, want -9223372036854775807", "+", r) } y = -9223372036854775807 r = x + y if r != -9223372036854775806 { t.Errorf("1 %s -9223372036854775807 = %d, want -9223372036854775806", "+", r) } y = -4294967296 r = x + y if r != -4294967295 { t.Errorf("1 %s -4294967296 = %d, want -4294967295", "+", r) } y = -1 r = x + y if r != 0 { t.Errorf("1 %s -1 = %d, want 0", "+", r) } y = 0 r = x + y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "+", r) } y = 1 r = x + y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "+", r) } y = 4294967296 r = x + y if r != 4294967297 { t.Errorf("1 %s 4294967296 = %d, want 4294967297", "+", r) } y = 9223372036854775806 r = x + y if r != 9223372036854775807 { t.Errorf("1 %s 9223372036854775806 = %d, want 9223372036854775807", "+", r) } y = 9223372036854775807 r = x + y if r != -9223372036854775808 { t.Errorf("1 %s 9223372036854775807 = %d, want -9223372036854775808", "+", r) } x = 4294967296 y = -9223372036854775808 r = x + y if r != -9223372032559808512 { t.Errorf("4294967296 %s -9223372036854775808 = %d, want -9223372032559808512", "+", r) } y = -9223372036854775807 r = x + y if r != -9223372032559808511 { t.Errorf("4294967296 %s -9223372036854775807 = %d, want -9223372032559808511", "+", r) } y = -4294967296 r = x + y if r != 0 { t.Errorf("4294967296 %s -4294967296 = %d, want 0", "+", r) } y = -1 r = x + y if r != 4294967295 { t.Errorf("4294967296 %s -1 = %d, want 4294967295", "+", r) } y = 0 r = x + y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "+", r) } y = 1 r = x + y if r != 4294967297 { t.Errorf("4294967296 %s 1 = %d, want 4294967297", "+", r) } y = 4294967296 r = x + y if r != 8589934592 { t.Errorf("4294967296 %s 4294967296 = %d, want 8589934592", "+", r) } y = 9223372036854775806 r = x + y if r != -9223372032559808514 { t.Errorf("4294967296 %s 9223372036854775806 = %d, want -9223372032559808514", "+", r) } y = 9223372036854775807 r = x + y if r != -9223372032559808513 { t.Errorf("4294967296 %s 9223372036854775807 = %d, want -9223372032559808513", "+", r) } x = 9223372036854775806 y = -9223372036854775808 r = x + y if r != -2 { t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want -2", "+", r) } y = -9223372036854775807 r = x + y if r != -1 { t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want -1", "+", r) } y = -4294967296 r = x + y if r != 9223372032559808510 { t.Errorf("9223372036854775806 %s -4294967296 = %d, want 9223372032559808510", "+", r) } y = -1 r = x + y if r != 9223372036854775805 { t.Errorf("9223372036854775806 %s -1 = %d, want 9223372036854775805", "+", r) } y = 0 r = x + y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "+", r) } y = 1 r = x + y if r != 9223372036854775807 { t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775807", "+", r) } y = 4294967296 r = x + y if r != -9223372032559808514 { t.Errorf("9223372036854775806 %s 4294967296 = %d, want -9223372032559808514", "+", r) } y = 9223372036854775806 r = x + y if r != -4 { t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want -4", "+", r) } y = 9223372036854775807 r = x + y if r != -3 { t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want -3", "+", r) } x = 9223372036854775807 y = -9223372036854775808 r = x + y if r != -1 { t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want -1", "+", r) } y = -9223372036854775807 r = x + y if r != 0 { t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want 0", "+", r) } y = -4294967296 r = x + y if r != 9223372032559808511 { t.Errorf("9223372036854775807 %s -4294967296 = %d, want 9223372032559808511", "+", r) } y = -1 r = x + y if r != 9223372036854775806 { t.Errorf("9223372036854775807 %s -1 = %d, want 9223372036854775806", "+", r) } y = 0 r = x + y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "+", r) } y = 1 r = x + y if r != -9223372036854775808 { t.Errorf("9223372036854775807 %s 1 = %d, want -9223372036854775808", "+", r) } y = 4294967296 r = x + y if r != -9223372032559808513 { t.Errorf("9223372036854775807 %s 4294967296 = %d, want -9223372032559808513", "+", r) } y = 9223372036854775806 r = x + y if r != -3 { t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want -3", "+", r) } y = 9223372036854775807 r = x + y if r != -2 { t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want -2", "+", r) } } func TestConstFoldint64sub(t *testing.T) { var x, y, r int64 x = -9223372036854775808 y = -9223372036854775808 r = x - y if r != 0 { t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "-", r) } y = -9223372036854775807 r = x - y if r != -1 { t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want -1", "-", r) } y = -4294967296 r = x - y if r != -9223372032559808512 { t.Errorf("-9223372036854775808 %s -4294967296 = %d, want -9223372032559808512", "-", r) } y = -1 r = x - y if r != -9223372036854775807 { t.Errorf("-9223372036854775808 %s -1 = %d, want -9223372036854775807", "-", r) } y = 0 r = x - y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "-", r) } y = 1 r = x - y if r != 9223372036854775807 { t.Errorf("-9223372036854775808 %s 1 = %d, want 9223372036854775807", "-", r) } y = 4294967296 r = x - y if r != 9223372032559808512 { t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 9223372032559808512", "-", r) } y = 9223372036854775806 r = x - y if r != 2 { t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want 2", "-", r) } y = 9223372036854775807 r = x - y if r != 1 { t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want 1", "-", r) } x = -9223372036854775807 y = -9223372036854775808 r = x - y if r != 1 { t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want 1", "-", r) } y = -9223372036854775807 r = x - y if r != 0 { t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 0", "-", r) } y = -4294967296 r = x - y if r != -9223372032559808511 { t.Errorf("-9223372036854775807 %s -4294967296 = %d, want -9223372032559808511", "-", r) } y = -1 r = x - y if r != -9223372036854775806 { t.Errorf("-9223372036854775807 %s -1 = %d, want -9223372036854775806", "-", r) } y = 0 r = x - y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "-", r) } y = 1 r = x - y if r != -9223372036854775808 { t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775808", "-", r) } y = 4294967296 r = x - y if r != 9223372032559808513 { t.Errorf("-9223372036854775807 %s 4294967296 = %d, want 9223372032559808513", "-", r) } y = 9223372036854775806 r = x - y if r != 3 { t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want 3", "-", r) } y = 9223372036854775807 r = x - y if r != 2 { t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want 2", "-", r) } x = -4294967296 y = -9223372036854775808 r = x - y if r != 9223372032559808512 { t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 9223372032559808512", "-", r) } y = -9223372036854775807 r = x - y if r != 9223372032559808511 { t.Errorf("-4294967296 %s -9223372036854775807 = %d, want 9223372032559808511", "-", r) } y = -4294967296 r = x - y if r != 0 { t.Errorf("-4294967296 %s -4294967296 = %d, want 0", "-", r) } y = -1 r = x - y if r != -4294967295 { t.Errorf("-4294967296 %s -1 = %d, want -4294967295", "-", r) } y = 0 r = x - y if r != -4294967296 { t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "-", r) } y = 1 r = x - y if r != -4294967297 { t.Errorf("-4294967296 %s 1 = %d, want -4294967297", "-", r) } y = 4294967296 r = x - y if r != -8589934592 { t.Errorf("-4294967296 %s 4294967296 = %d, want -8589934592", "-", r) } y = 9223372036854775806 r = x - y if r != 9223372032559808514 { t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 9223372032559808514", "-", r) } y = 9223372036854775807 r = x - y if r != 9223372032559808513 { t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 9223372032559808513", "-", r) } x = -1 y = -9223372036854775808 r = x - y if r != 9223372036854775807 { t.Errorf("-1 %s -9223372036854775808 = %d, want 9223372036854775807", "-", r) } y = -9223372036854775807 r = x - y if r != 9223372036854775806 { t.Errorf("-1 %s -9223372036854775807 = %d, want 9223372036854775806", "-", r) } y = -4294967296 r = x - y if r != 4294967295 { t.Errorf("-1 %s -4294967296 = %d, want 4294967295", "-", r) } y = -1 r = x - y if r != 0 { t.Errorf("-1 %s -1 = %d, want 0", "-", r) } y = 0 r = x - y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "-", r) } y = 1 r = x - y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "-", r) } y = 4294967296 r = x - y if r != -4294967297 { t.Errorf("-1 %s 4294967296 = %d, want -4294967297", "-", r) } y = 9223372036854775806 r = x - y if r != -9223372036854775807 { t.Errorf("-1 %s 9223372036854775806 = %d, want -9223372036854775807", "-", r) } y = 9223372036854775807 r = x - y if r != -9223372036854775808 { t.Errorf("-1 %s 9223372036854775807 = %d, want -9223372036854775808", "-", r) } x = 0 y = -9223372036854775808 r = x - y if r != -9223372036854775808 { t.Errorf("0 %s -9223372036854775808 = %d, want -9223372036854775808", "-", r) } y = -9223372036854775807 r = x - y if r != 9223372036854775807 { t.Errorf("0 %s -9223372036854775807 = %d, want 9223372036854775807", "-", r) } y = -4294967296 r = x - y if r != 4294967296 { t.Errorf("0 %s -4294967296 = %d, want 4294967296", "-", r) } y = -1 r = x - y if r != 1 { t.Errorf("0 %s -1 = %d, want 1", "-", r) } y = 0 r = x - y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "-", r) } y = 1 r = x - y if r != -1 { t.Errorf("0 %s 1 = %d, want -1", "-", r) } y = 4294967296 r = x - y if r != -4294967296 { t.Errorf("0 %s 4294967296 = %d, want -4294967296", "-", r) } y = 9223372036854775806 r = x - y if r != -9223372036854775806 { t.Errorf("0 %s 9223372036854775806 = %d, want -9223372036854775806", "-", r) } y = 9223372036854775807 r = x - y if r != -9223372036854775807 { t.Errorf("0 %s 9223372036854775807 = %d, want -9223372036854775807", "-", r) } x = 1 y = -9223372036854775808 r = x - y if r != -9223372036854775807 { t.Errorf("1 %s -9223372036854775808 = %d, want -9223372036854775807", "-", r) } y = -9223372036854775807 r = x - y if r != -9223372036854775808 { t.Errorf("1 %s -9223372036854775807 = %d, want -9223372036854775808", "-", r) } y = -4294967296 r = x - y if r != 4294967297 { t.Errorf("1 %s -4294967296 = %d, want 4294967297", "-", r) } y = -1 r = x - y if r != 2 { t.Errorf("1 %s -1 = %d, want 2", "-", r) } y = 0 r = x - y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "-", r) } y = 1 r = x - y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "-", r) } y = 4294967296 r = x - y if r != -4294967295 { t.Errorf("1 %s 4294967296 = %d, want -4294967295", "-", r) } y = 9223372036854775806 r = x - y if r != -9223372036854775805 { t.Errorf("1 %s 9223372036854775806 = %d, want -9223372036854775805", "-", r) } y = 9223372036854775807 r = x - y if r != -9223372036854775806 { t.Errorf("1 %s 9223372036854775807 = %d, want -9223372036854775806", "-", r) } x = 4294967296 y = -9223372036854775808 r = x - y if r != -9223372032559808512 { t.Errorf("4294967296 %s -9223372036854775808 = %d, want -9223372032559808512", "-", r) } y = -9223372036854775807 r = x - y if r != -9223372032559808513 { t.Errorf("4294967296 %s -9223372036854775807 = %d, want -9223372032559808513", "-", r) } y = -4294967296 r = x - y if r != 8589934592 { t.Errorf("4294967296 %s -4294967296 = %d, want 8589934592", "-", r) } y = -1 r = x - y if r != 4294967297 { t.Errorf("4294967296 %s -1 = %d, want 4294967297", "-", r) } y = 0 r = x - y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "-", r) } y = 1 r = x - y if r != 4294967295 { t.Errorf("4294967296 %s 1 = %d, want 4294967295", "-", r) } y = 4294967296 r = x - y if r != 0 { t.Errorf("4294967296 %s 4294967296 = %d, want 0", "-", r) } y = 9223372036854775806 r = x - y if r != -9223372032559808510 { t.Errorf("4294967296 %s 9223372036854775806 = %d, want -9223372032559808510", "-", r) } y = 9223372036854775807 r = x - y if r != -9223372032559808511 { t.Errorf("4294967296 %s 9223372036854775807 = %d, want -9223372032559808511", "-", r) } x = 9223372036854775806 y = -9223372036854775808 r = x - y if r != -2 { t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want -2", "-", r) } y = -9223372036854775807 r = x - y if r != -3 { t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want -3", "-", r) } y = -4294967296 r = x - y if r != -9223372032559808514 { t.Errorf("9223372036854775806 %s -4294967296 = %d, want -9223372032559808514", "-", r) } y = -1 r = x - y if r != 9223372036854775807 { t.Errorf("9223372036854775806 %s -1 = %d, want 9223372036854775807", "-", r) } y = 0 r = x - y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "-", r) } y = 1 r = x - y if r != 9223372036854775805 { t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775805", "-", r) } y = 4294967296 r = x - y if r != 9223372032559808510 { t.Errorf("9223372036854775806 %s 4294967296 = %d, want 9223372032559808510", "-", r) } y = 9223372036854775806 r = x - y if r != 0 { t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 0", "-", r) } y = 9223372036854775807 r = x - y if r != -1 { t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want -1", "-", r) } x = 9223372036854775807 y = -9223372036854775808 r = x - y if r != -1 { t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want -1", "-", r) } y = -9223372036854775807 r = x - y if r != -2 { t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want -2", "-", r) } y = -4294967296 r = x - y if r != -9223372032559808513 { t.Errorf("9223372036854775807 %s -4294967296 = %d, want -9223372032559808513", "-", r) } y = -1 r = x - y if r != -9223372036854775808 { t.Errorf("9223372036854775807 %s -1 = %d, want -9223372036854775808", "-", r) } y = 0 r = x - y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "-", r) } y = 1 r = x - y if r != 9223372036854775806 { t.Errorf("9223372036854775807 %s 1 = %d, want 9223372036854775806", "-", r) } y = 4294967296 r = x - y if r != 9223372032559808511 { t.Errorf("9223372036854775807 %s 4294967296 = %d, want 9223372032559808511", "-", r) } y = 9223372036854775806 r = x - y if r != 1 { t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want 1", "-", r) } y = 9223372036854775807 r = x - y if r != 0 { t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 0", "-", r) } } func TestConstFoldint64div(t *testing.T) { var x, y, r int64 x = -9223372036854775808 y = -9223372036854775808 r = x / y if r != 1 { t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 1", "/", r) } y = -9223372036854775807 r = x / y if r != 1 { t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want 1", "/", r) } y = -4294967296 r = x / y if r != 2147483648 { t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 2147483648", "/", r) } y = -1 r = x / y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s -1 = %d, want -9223372036854775808", "/", r) } y = 1 r = x / y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 1 = %d, want -9223372036854775808", "/", r) } y = 4294967296 r = x / y if r != -2147483648 { t.Errorf("-9223372036854775808 %s 4294967296 = %d, want -2147483648", "/", r) } y = 9223372036854775806 r = x / y if r != -1 { t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want -1", "/", r) } y = 9223372036854775807 r = x / y if r != -1 { t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -1", "/", r) } x = -9223372036854775807 y = -9223372036854775808 r = x / y if r != 0 { t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want 0", "/", r) } y = -9223372036854775807 r = x / y if r != 1 { t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 1", "/", r) } y = -4294967296 r = x / y if r != 2147483647 { t.Errorf("-9223372036854775807 %s -4294967296 = %d, want 2147483647", "/", r) } y = -1 r = x / y if r != 9223372036854775807 { t.Errorf("-9223372036854775807 %s -1 = %d, want 9223372036854775807", "/", r) } y = 1 r = x / y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775807", "/", r) } y = 4294967296 r = x / y if r != -2147483647 { t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -2147483647", "/", r) } y = 9223372036854775806 r = x / y if r != -1 { t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want -1", "/", r) } y = 9223372036854775807 r = x / y if r != -1 { t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want -1", "/", r) } x = -4294967296 y = -9223372036854775808 r = x / y if r != 0 { t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 0", "/", r) } y = -9223372036854775807 r = x / y if r != 0 { t.Errorf("-4294967296 %s -9223372036854775807 = %d, want 0", "/", r) } y = -4294967296 r = x / y if r != 1 { t.Errorf("-4294967296 %s -4294967296 = %d, want 1", "/", r) } y = -1 r = x / y if r != 4294967296 { t.Errorf("-4294967296 %s -1 = %d, want 4294967296", "/", r) } y = 1 r = x / y if r != -4294967296 { t.Errorf("-4294967296 %s 1 = %d, want -4294967296", "/", r) } y = 4294967296 r = x / y if r != -1 { t.Errorf("-4294967296 %s 4294967296 = %d, want -1", "/", r) } y = 9223372036854775806 r = x / y if r != 0 { t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 0", "/", r) } y = 9223372036854775807 r = x / y if r != 0 { t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 0", "/", r) } x = -1 y = -9223372036854775808 r = x / y if r != 0 { t.Errorf("-1 %s -9223372036854775808 = %d, want 0", "/", r) } y = -9223372036854775807 r = x / y if r != 0 { t.Errorf("-1 %s -9223372036854775807 = %d, want 0", "/", r) } y = -4294967296 r = x / y if r != 0 { t.Errorf("-1 %s -4294967296 = %d, want 0", "/", r) } y = -1 r = x / y if r != 1 { t.Errorf("-1 %s -1 = %d, want 1", "/", r) } y = 1 r = x / y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", "/", r) } y = 4294967296 r = x / y if r != 0 { t.Errorf("-1 %s 4294967296 = %d, want 0", "/", r) } y = 9223372036854775806 r = x / y if r != 0 { t.Errorf("-1 %s 9223372036854775806 = %d, want 0", "/", r) } y = 9223372036854775807 r = x / y if r != 0 { t.Errorf("-1 %s 9223372036854775807 = %d, want 0", "/", r) } x = 0 y = -9223372036854775808 r = x / y if r != 0 { t.Errorf("0 %s -9223372036854775808 = %d, want 0", "/", r) } y = -9223372036854775807 r = x / y if r != 0 { t.Errorf("0 %s -9223372036854775807 = %d, want 0", "/", r) } y = -4294967296 r = x / y if r != 0 { t.Errorf("0 %s -4294967296 = %d, want 0", "/", r) } y = -1 r = x / y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "/", r) } y = 1 r = x / y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "/", r) } y = 4294967296 r = x / y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "/", r) } y = 9223372036854775806 r = x / y if r != 0 { t.Errorf("0 %s 9223372036854775806 = %d, want 0", "/", r) } y = 9223372036854775807 r = x / y if r != 0 { t.Errorf("0 %s 9223372036854775807 = %d, want 0", "/", r) } x = 1 y = -9223372036854775808 r = x / y if r != 0 { t.Errorf("1 %s -9223372036854775808 = %d, want 0", "/", r) } y = -9223372036854775807 r = x / y if r != 0 { t.Errorf("1 %s -9223372036854775807 = %d, want 0", "/", r) } y = -4294967296 r = x / y if r != 0 { t.Errorf("1 %s -4294967296 = %d, want 0", "/", r) } y = -1 r = x / y if r != -1 { t.Errorf("1 %s -1 = %d, want -1", "/", r) } y = 1 r = x / y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "/", r) } y = 4294967296 r = x / y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", "/", r) } y = 9223372036854775806 r = x / y if r != 0 { t.Errorf("1 %s 9223372036854775806 = %d, want 0", "/", r) } y = 9223372036854775807 r = x / y if r != 0 { t.Errorf("1 %s 9223372036854775807 = %d, want 0", "/", r) } x = 4294967296 y = -9223372036854775808 r = x / y if r != 0 { t.Errorf("4294967296 %s -9223372036854775808 = %d, want 0", "/", r) } y = -9223372036854775807 r = x / y if r != 0 { t.Errorf("4294967296 %s -9223372036854775807 = %d, want 0", "/", r) } y = -4294967296 r = x / y if r != -1 { t.Errorf("4294967296 %s -4294967296 = %d, want -1", "/", r) } y = -1 r = x / y if r != -4294967296 { t.Errorf("4294967296 %s -1 = %d, want -4294967296", "/", r) } y = 1 r = x / y if r != 4294967296 { t.Errorf("4294967296 %s 1 = %d, want 4294967296", "/", r) } y = 4294967296 r = x / y if r != 1 { t.Errorf("4294967296 %s 4294967296 = %d, want 1", "/", r) } y = 9223372036854775806 r = x / y if r != 0 { t.Errorf("4294967296 %s 9223372036854775806 = %d, want 0", "/", r) } y = 9223372036854775807 r = x / y if r != 0 { t.Errorf("4294967296 %s 9223372036854775807 = %d, want 0", "/", r) } x = 9223372036854775806 y = -9223372036854775808 r = x / y if r != 0 { t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want 0", "/", r) } y = -9223372036854775807 r = x / y if r != 0 { t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want 0", "/", r) } y = -4294967296 r = x / y if r != -2147483647 { t.Errorf("9223372036854775806 %s -4294967296 = %d, want -2147483647", "/", r) } y = -1 r = x / y if r != -9223372036854775806 { t.Errorf("9223372036854775806 %s -1 = %d, want -9223372036854775806", "/", r) } y = 1 r = x / y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775806", "/", r) } y = 4294967296 r = x / y if r != 2147483647 { t.Errorf("9223372036854775806 %s 4294967296 = %d, want 2147483647", "/", r) } y = 9223372036854775806 r = x / y if r != 1 { t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 1", "/", r) } y = 9223372036854775807 r = x / y if r != 0 { t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want 0", "/", r) } x = 9223372036854775807 y = -9223372036854775808 r = x / y if r != 0 { t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want 0", "/", r) } y = -9223372036854775807 r = x / y if r != -1 { t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want -1", "/", r) } y = -4294967296 r = x / y if r != -2147483647 { t.Errorf("9223372036854775807 %s -4294967296 = %d, want -2147483647", "/", r) } y = -1 r = x / y if r != -9223372036854775807 { t.Errorf("9223372036854775807 %s -1 = %d, want -9223372036854775807", "/", r) } y = 1 r = x / y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 1 = %d, want 9223372036854775807", "/", r) } y = 4294967296 r = x / y if r != 2147483647 { t.Errorf("9223372036854775807 %s 4294967296 = %d, want 2147483647", "/", r) } y = 9223372036854775806 r = x / y if r != 1 { t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want 1", "/", r) } y = 9223372036854775807 r = x / y if r != 1 { t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 1", "/", r) } } func TestConstFoldint64mul(t *testing.T) { var x, y, r int64 x = -9223372036854775808 y = -9223372036854775808 r = x * y if r != 0 { t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "*", r) } y = -9223372036854775807 r = x * y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want -9223372036854775808", "*", r) } y = -4294967296 r = x * y if r != 0 { t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 0", "*", r) } y = -1 r = x * y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s -1 = %d, want -9223372036854775808", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-9223372036854775808 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 1 = %d, want -9223372036854775808", "*", r) } y = 4294967296 r = x * y if r != 0 { t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 0", "*", r) } y = 9223372036854775806 r = x * y if r != 0 { t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want 0", "*", r) } y = 9223372036854775807 r = x * y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -9223372036854775808", "*", r) } x = -9223372036854775807 y = -9223372036854775808 r = x * y if r != -9223372036854775808 { t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r) } y = -9223372036854775807 r = x * y if r != 1 { t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 1", "*", r) } y = -4294967296 r = x * y if r != -4294967296 { t.Errorf("-9223372036854775807 %s -4294967296 = %d, want -4294967296", "*", r) } y = -1 r = x * y if r != 9223372036854775807 { t.Errorf("-9223372036854775807 %s -1 = %d, want 9223372036854775807", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-9223372036854775807 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775807", "*", r) } y = 4294967296 r = x * y if r != 4294967296 { t.Errorf("-9223372036854775807 %s 4294967296 = %d, want 4294967296", "*", r) } y = 9223372036854775806 r = x * y if r != 9223372036854775806 { t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want 9223372036854775806", "*", r) } y = 9223372036854775807 r = x * y if r != -1 { t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want -1", "*", r) } x = -4294967296 y = -9223372036854775808 r = x * y if r != 0 { t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 0", "*", r) } y = -9223372036854775807 r = x * y if r != -4294967296 { t.Errorf("-4294967296 %s -9223372036854775807 = %d, want -4294967296", "*", r) } y = -4294967296 r = x * y if r != 0 { t.Errorf("-4294967296 %s -4294967296 = %d, want 0", "*", r) } y = -1 r = x * y if r != 4294967296 { t.Errorf("-4294967296 %s -1 = %d, want 4294967296", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-4294967296 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -4294967296 { t.Errorf("-4294967296 %s 1 = %d, want -4294967296", "*", r) } y = 4294967296 r = x * y if r != 0 { t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "*", r) } y = 9223372036854775806 r = x * y if r != 8589934592 { t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 8589934592", "*", r) } y = 9223372036854775807 r = x * y if r != 4294967296 { t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 4294967296", "*", r) } x = -1 y = -9223372036854775808 r = x * y if r != -9223372036854775808 { t.Errorf("-1 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r) } y = -9223372036854775807 r = x * y if r != 9223372036854775807 { t.Errorf("-1 %s -9223372036854775807 = %d, want 9223372036854775807", "*", r) } y = -4294967296 r = x * y if r != 4294967296 { t.Errorf("-1 %s -4294967296 = %d, want 4294967296", "*", r) } y = -1 r = x * y if r != 1 { t.Errorf("-1 %s -1 = %d, want 1", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", "*", r) } y = 4294967296 r = x * y if r != -4294967296 { t.Errorf("-1 %s 4294967296 = %d, want -4294967296", "*", r) } y = 9223372036854775806 r = x * y if r != -9223372036854775806 { t.Errorf("-1 %s 9223372036854775806 = %d, want -9223372036854775806", "*", r) } y = 9223372036854775807 r = x * y if r != -9223372036854775807 { t.Errorf("-1 %s 9223372036854775807 = %d, want -9223372036854775807", "*", r) } x = 0 y = -9223372036854775808 r = x * y if r != 0 { t.Errorf("0 %s -9223372036854775808 = %d, want 0", "*", r) } y = -9223372036854775807 r = x * y if r != 0 { t.Errorf("0 %s -9223372036854775807 = %d, want 0", "*", r) } y = -4294967296 r = x * y if r != 0 { t.Errorf("0 %s -4294967296 = %d, want 0", "*", r) } y = -1 r = x * y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "*", r) } y = 4294967296 r = x * y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "*", r) } y = 9223372036854775806 r = x * y if r != 0 { t.Errorf("0 %s 9223372036854775806 = %d, want 0", "*", r) } y = 9223372036854775807 r = x * y if r != 0 { t.Errorf("0 %s 9223372036854775807 = %d, want 0", "*", r) } x = 1 y = -9223372036854775808 r = x * y if r != -9223372036854775808 { t.Errorf("1 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r) } y = -9223372036854775807 r = x * y if r != -9223372036854775807 { t.Errorf("1 %s -9223372036854775807 = %d, want -9223372036854775807", "*", r) } y = -4294967296 r = x * y if r != -4294967296 { t.Errorf("1 %s -4294967296 = %d, want -4294967296", "*", r) } y = -1 r = x * y if r != -1 { t.Errorf("1 %s -1 = %d, want -1", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "*", r) } y = 4294967296 r = x * y if r != 4294967296 { t.Errorf("1 %s 4294967296 = %d, want 4294967296", "*", r) } y = 9223372036854775806 r = x * y if r != 9223372036854775806 { t.Errorf("1 %s 9223372036854775806 = %d, want 9223372036854775806", "*", r) } y = 9223372036854775807 r = x * y if r != 9223372036854775807 { t.Errorf("1 %s 9223372036854775807 = %d, want 9223372036854775807", "*", r) } x = 4294967296 y = -9223372036854775808 r = x * y if r != 0 { t.Errorf("4294967296 %s -9223372036854775808 = %d, want 0", "*", r) } y = -9223372036854775807 r = x * y if r != 4294967296 { t.Errorf("4294967296 %s -9223372036854775807 = %d, want 4294967296", "*", r) } y = -4294967296 r = x * y if r != 0 { t.Errorf("4294967296 %s -4294967296 = %d, want 0", "*", r) } y = -1 r = x * y if r != -4294967296 { t.Errorf("4294967296 %s -1 = %d, want -4294967296", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("4294967296 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 4294967296 { t.Errorf("4294967296 %s 1 = %d, want 4294967296", "*", r) } y = 4294967296 r = x * y if r != 0 { t.Errorf("4294967296 %s 4294967296 = %d, want 0", "*", r) } y = 9223372036854775806 r = x * y if r != -8589934592 { t.Errorf("4294967296 %s 9223372036854775806 = %d, want -8589934592", "*", r) } y = 9223372036854775807 r = x * y if r != -4294967296 { t.Errorf("4294967296 %s 9223372036854775807 = %d, want -4294967296", "*", r) } x = 9223372036854775806 y = -9223372036854775808 r = x * y if r != 0 { t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want 0", "*", r) } y = -9223372036854775807 r = x * y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want 9223372036854775806", "*", r) } y = -4294967296 r = x * y if r != 8589934592 { t.Errorf("9223372036854775806 %s -4294967296 = %d, want 8589934592", "*", r) } y = -1 r = x * y if r != -9223372036854775806 { t.Errorf("9223372036854775806 %s -1 = %d, want -9223372036854775806", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("9223372036854775806 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775806", "*", r) } y = 4294967296 r = x * y if r != -8589934592 { t.Errorf("9223372036854775806 %s 4294967296 = %d, want -8589934592", "*", r) } y = 9223372036854775806 r = x * y if r != 4 { t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 4", "*", r) } y = 9223372036854775807 r = x * y if r != -9223372036854775806 { t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want -9223372036854775806", "*", r) } x = 9223372036854775807 y = -9223372036854775808 r = x * y if r != -9223372036854775808 { t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r) } y = -9223372036854775807 r = x * y if r != -1 { t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want -1", "*", r) } y = -4294967296 r = x * y if r != 4294967296 { t.Errorf("9223372036854775807 %s -4294967296 = %d, want 4294967296", "*", r) } y = -1 r = x * y if r != -9223372036854775807 { t.Errorf("9223372036854775807 %s -1 = %d, want -9223372036854775807", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("9223372036854775807 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 1 = %d, want 9223372036854775807", "*", r) } y = 4294967296 r = x * y if r != -4294967296 { t.Errorf("9223372036854775807 %s 4294967296 = %d, want -4294967296", "*", r) } y = 9223372036854775806 r = x * y if r != -9223372036854775806 { t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want -9223372036854775806", "*", r) } y = 9223372036854775807 r = x * y if r != 1 { t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 1", "*", r) } } func TestConstFoldint64mod(t *testing.T) { var x, y, r int64 x = -9223372036854775808 y = -9223372036854775808 r = x % y if r != 0 { t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "%", r) } y = -9223372036854775807 r = x % y if r != -1 { t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want -1", "%", r) } y = -4294967296 r = x % y if r != 0 { t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-9223372036854775808 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 0 { t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 0", "%", r) } y = 9223372036854775806 r = x % y if r != -2 { t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want -2", "%", r) } y = 9223372036854775807 r = x % y if r != -1 { t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -1", "%", r) } x = -9223372036854775807 y = -9223372036854775808 r = x % y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want -9223372036854775807", "%", r) } y = -9223372036854775807 r = x % y if r != 0 { t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 0", "%", r) } y = -4294967296 r = x % y if r != -4294967295 { t.Errorf("-9223372036854775807 %s -4294967296 = %d, want -4294967295", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-9223372036854775807 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-9223372036854775807 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != -4294967295 { t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -4294967295", "%", r) } y = 9223372036854775806 r = x % y if r != -1 { t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want -1", "%", r) } y = 9223372036854775807 r = x % y if r != 0 { t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want 0", "%", r) } x = -4294967296 y = -9223372036854775808 r = x % y if r != -4294967296 { t.Errorf("-4294967296 %s -9223372036854775808 = %d, want -4294967296", "%", r) } y = -9223372036854775807 r = x % y if r != -4294967296 { t.Errorf("-4294967296 %s -9223372036854775807 = %d, want -4294967296", "%", r) } y = -4294967296 r = x % y if r != 0 { t.Errorf("-4294967296 %s -4294967296 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-4294967296 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-4294967296 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 0 { t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "%", r) } y = 9223372036854775806 r = x % y if r != -4294967296 { t.Errorf("-4294967296 %s 9223372036854775806 = %d, want -4294967296", "%", r) } y = 9223372036854775807 r = x % y if r != -4294967296 { t.Errorf("-4294967296 %s 9223372036854775807 = %d, want -4294967296", "%", r) } x = -1 y = -9223372036854775808 r = x % y if r != -1 { t.Errorf("-1 %s -9223372036854775808 = %d, want -1", "%", r) } y = -9223372036854775807 r = x % y if r != -1 { t.Errorf("-1 %s -9223372036854775807 = %d, want -1", "%", r) } y = -4294967296 r = x % y if r != -1 { t.Errorf("-1 %s -4294967296 = %d, want -1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-1 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-1 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != -1 { t.Errorf("-1 %s 4294967296 = %d, want -1", "%", r) } y = 9223372036854775806 r = x % y if r != -1 { t.Errorf("-1 %s 9223372036854775806 = %d, want -1", "%", r) } y = 9223372036854775807 r = x % y if r != -1 { t.Errorf("-1 %s 9223372036854775807 = %d, want -1", "%", r) } x = 0 y = -9223372036854775808 r = x % y if r != 0 { t.Errorf("0 %s -9223372036854775808 = %d, want 0", "%", r) } y = -9223372036854775807 r = x % y if r != 0 { t.Errorf("0 %s -9223372036854775807 = %d, want 0", "%", r) } y = -4294967296 r = x % y if r != 0 { t.Errorf("0 %s -4294967296 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "%", r) } y = 9223372036854775806 r = x % y if r != 0 { t.Errorf("0 %s 9223372036854775806 = %d, want 0", "%", r) } y = 9223372036854775807 r = x % y if r != 0 { t.Errorf("0 %s 9223372036854775807 = %d, want 0", "%", r) } x = 1 y = -9223372036854775808 r = x % y if r != 1 { t.Errorf("1 %s -9223372036854775808 = %d, want 1", "%", r) } y = -9223372036854775807 r = x % y if r != 1 { t.Errorf("1 %s -9223372036854775807 = %d, want 1", "%", r) } y = -4294967296 r = x % y if r != 1 { t.Errorf("1 %s -4294967296 = %d, want 1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("1 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 1 { t.Errorf("1 %s 4294967296 = %d, want 1", "%", r) } y = 9223372036854775806 r = x % y if r != 1 { t.Errorf("1 %s 9223372036854775806 = %d, want 1", "%", r) } y = 9223372036854775807 r = x % y if r != 1 { t.Errorf("1 %s 9223372036854775807 = %d, want 1", "%", r) } x = 4294967296 y = -9223372036854775808 r = x % y if r != 4294967296 { t.Errorf("4294967296 %s -9223372036854775808 = %d, want 4294967296", "%", r) } y = -9223372036854775807 r = x % y if r != 4294967296 { t.Errorf("4294967296 %s -9223372036854775807 = %d, want 4294967296", "%", r) } y = -4294967296 r = x % y if r != 0 { t.Errorf("4294967296 %s -4294967296 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("4294967296 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("4294967296 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 0 { t.Errorf("4294967296 %s 4294967296 = %d, want 0", "%", r) } y = 9223372036854775806 r = x % y if r != 4294967296 { t.Errorf("4294967296 %s 9223372036854775806 = %d, want 4294967296", "%", r) } y = 9223372036854775807 r = x % y if r != 4294967296 { t.Errorf("4294967296 %s 9223372036854775807 = %d, want 4294967296", "%", r) } x = 9223372036854775806 y = -9223372036854775808 r = x % y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want 9223372036854775806", "%", r) } y = -9223372036854775807 r = x % y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want 9223372036854775806", "%", r) } y = -4294967296 r = x % y if r != 4294967294 { t.Errorf("9223372036854775806 %s -4294967296 = %d, want 4294967294", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("9223372036854775806 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("9223372036854775806 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 4294967294 { t.Errorf("9223372036854775806 %s 4294967296 = %d, want 4294967294", "%", r) } y = 9223372036854775806 r = x % y if r != 0 { t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 0", "%", r) } y = 9223372036854775807 r = x % y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want 9223372036854775806", "%", r) } x = 9223372036854775807 y = -9223372036854775808 r = x % y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want 9223372036854775807", "%", r) } y = -9223372036854775807 r = x % y if r != 0 { t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want 0", "%", r) } y = -4294967296 r = x % y if r != 4294967295 { t.Errorf("9223372036854775807 %s -4294967296 = %d, want 4294967295", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("9223372036854775807 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("9223372036854775807 %s 1 = %d, want 0", "%", r) } y = 4294967296 r = x % y if r != 4294967295 { t.Errorf("9223372036854775807 %s 4294967296 = %d, want 4294967295", "%", r) } y = 9223372036854775806 r = x % y if r != 1 { t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want 1", "%", r) } y = 9223372036854775807 r = x % y if r != 0 { t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 0", "%", r) } } func TestConstFolduint32add(t *testing.T) { var x, y, r uint32 x = 0 y = 0 r = x + y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "+", r) } y = 1 r = x + y if r != 1 { t.Errorf("0 %s 1 = %d, want 1", "+", r) } y = 4294967295 r = x + y if r != 4294967295 { t.Errorf("0 %s 4294967295 = %d, want 4294967295", "+", r) } x = 1 y = 0 r = x + y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "+", r) } y = 1 r = x + y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "+", r) } y = 4294967295 r = x + y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", "+", r) } x = 4294967295 y = 0 r = x + y if r != 4294967295 { t.Errorf("4294967295 %s 0 = %d, want 4294967295", "+", r) } y = 1 r = x + y if r != 0 { t.Errorf("4294967295 %s 1 = %d, want 0", "+", r) } y = 4294967295 r = x + y if r != 4294967294 { t.Errorf("4294967295 %s 4294967295 = %d, want 4294967294", "+", r) } } func TestConstFolduint32sub(t *testing.T) { var x, y, r uint32 x = 0 y = 0 r = x - y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "-", r) } y = 1 r = x - y if r != 4294967295 { t.Errorf("0 %s 1 = %d, want 4294967295", "-", r) } y = 4294967295 r = x - y if r != 1 { t.Errorf("0 %s 4294967295 = %d, want 1", "-", r) } x = 1 y = 0 r = x - y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "-", r) } y = 1 r = x - y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "-", r) } y = 4294967295 r = x - y if r != 2 { t.Errorf("1 %s 4294967295 = %d, want 2", "-", r) } x = 4294967295 y = 0 r = x - y if r != 4294967295 { t.Errorf("4294967295 %s 0 = %d, want 4294967295", "-", r) } y = 1 r = x - y if r != 4294967294 { t.Errorf("4294967295 %s 1 = %d, want 4294967294", "-", r) } y = 4294967295 r = x - y if r != 0 { t.Errorf("4294967295 %s 4294967295 = %d, want 0", "-", r) } } func TestConstFolduint32div(t *testing.T) { var x, y, r uint32 x = 0 y = 1 r = x / y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "/", r) } y = 4294967295 r = x / y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "/", r) } x = 1 y = 1 r = x / y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "/", r) } y = 4294967295 r = x / y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", "/", r) } x = 4294967295 y = 1 r = x / y if r != 4294967295 { t.Errorf("4294967295 %s 1 = %d, want 4294967295", "/", r) } y = 4294967295 r = x / y if r != 1 { t.Errorf("4294967295 %s 4294967295 = %d, want 1", "/", r) } } func TestConstFolduint32mul(t *testing.T) { var x, y, r uint32 x = 0 y = 0 r = x * y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "*", r) } y = 4294967295 r = x * y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "*", r) } x = 1 y = 0 r = x * y if r != 0 { t.Errorf("1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "*", r) } y = 4294967295 r = x * y if r != 4294967295 { t.Errorf("1 %s 4294967295 = %d, want 4294967295", "*", r) } x = 4294967295 y = 0 r = x * y if r != 0 { t.Errorf("4294967295 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 4294967295 { t.Errorf("4294967295 %s 1 = %d, want 4294967295", "*", r) } y = 4294967295 r = x * y if r != 1 { t.Errorf("4294967295 %s 4294967295 = %d, want 1", "*", r) } } func TestConstFolduint32mod(t *testing.T) { var x, y, r uint32 x = 0 y = 1 r = x % y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "%", r) } y = 4294967295 r = x % y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "%", r) } x = 1 y = 1 r = x % y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "%", r) } y = 4294967295 r = x % y if r != 1 { t.Errorf("1 %s 4294967295 = %d, want 1", "%", r) } x = 4294967295 y = 1 r = x % y if r != 0 { t.Errorf("4294967295 %s 1 = %d, want 0", "%", r) } y = 4294967295 r = x % y if r != 0 { t.Errorf("4294967295 %s 4294967295 = %d, want 0", "%", r) } } func TestConstFoldint32add(t *testing.T) { var x, y, r int32 x = -2147483648 y = -2147483648 r = x + y if r != 0 { t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "+", r) } y = -2147483647 r = x + y if r != 1 { t.Errorf("-2147483648 %s -2147483647 = %d, want 1", "+", r) } y = -1 r = x + y if r != 2147483647 { t.Errorf("-2147483648 %s -1 = %d, want 2147483647", "+", r) } y = 0 r = x + y if r != -2147483648 { t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "+", r) } y = 1 r = x + y if r != -2147483647 { t.Errorf("-2147483648 %s 1 = %d, want -2147483647", "+", r) } y = 2147483647 r = x + y if r != -1 { t.Errorf("-2147483648 %s 2147483647 = %d, want -1", "+", r) } x = -2147483647 y = -2147483648 r = x + y if r != 1 { t.Errorf("-2147483647 %s -2147483648 = %d, want 1", "+", r) } y = -2147483647 r = x + y if r != 2 { t.Errorf("-2147483647 %s -2147483647 = %d, want 2", "+", r) } y = -1 r = x + y if r != -2147483648 { t.Errorf("-2147483647 %s -1 = %d, want -2147483648", "+", r) } y = 0 r = x + y if r != -2147483647 { t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "+", r) } y = 1 r = x + y if r != -2147483646 { t.Errorf("-2147483647 %s 1 = %d, want -2147483646", "+", r) } y = 2147483647 r = x + y if r != 0 { t.Errorf("-2147483647 %s 2147483647 = %d, want 0", "+", r) } x = -1 y = -2147483648 r = x + y if r != 2147483647 { t.Errorf("-1 %s -2147483648 = %d, want 2147483647", "+", r) } y = -2147483647 r = x + y if r != -2147483648 { t.Errorf("-1 %s -2147483647 = %d, want -2147483648", "+", r) } y = -1 r = x + y if r != -2 { t.Errorf("-1 %s -1 = %d, want -2", "+", r) } y = 0 r = x + y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "+", r) } y = 1 r = x + y if r != 0 { t.Errorf("-1 %s 1 = %d, want 0", "+", r) } y = 2147483647 r = x + y if r != 2147483646 { t.Errorf("-1 %s 2147483647 = %d, want 2147483646", "+", r) } x = 0 y = -2147483648 r = x + y if r != -2147483648 { t.Errorf("0 %s -2147483648 = %d, want -2147483648", "+", r) } y = -2147483647 r = x + y if r != -2147483647 { t.Errorf("0 %s -2147483647 = %d, want -2147483647", "+", r) } y = -1 r = x + y if r != -1 { t.Errorf("0 %s -1 = %d, want -1", "+", r) } y = 0 r = x + y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "+", r) } y = 1 r = x + y if r != 1 { t.Errorf("0 %s 1 = %d, want 1", "+", r) } y = 2147483647 r = x + y if r != 2147483647 { t.Errorf("0 %s 2147483647 = %d, want 2147483647", "+", r) } x = 1 y = -2147483648 r = x + y if r != -2147483647 { t.Errorf("1 %s -2147483648 = %d, want -2147483647", "+", r) } y = -2147483647 r = x + y if r != -2147483646 { t.Errorf("1 %s -2147483647 = %d, want -2147483646", "+", r) } y = -1 r = x + y if r != 0 { t.Errorf("1 %s -1 = %d, want 0", "+", r) } y = 0 r = x + y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "+", r) } y = 1 r = x + y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "+", r) } y = 2147483647 r = x + y if r != -2147483648 { t.Errorf("1 %s 2147483647 = %d, want -2147483648", "+", r) } x = 2147483647 y = -2147483648 r = x + y if r != -1 { t.Errorf("2147483647 %s -2147483648 = %d, want -1", "+", r) } y = -2147483647 r = x + y if r != 0 { t.Errorf("2147483647 %s -2147483647 = %d, want 0", "+", r) } y = -1 r = x + y if r != 2147483646 { t.Errorf("2147483647 %s -1 = %d, want 2147483646", "+", r) } y = 0 r = x + y if r != 2147483647 { t.Errorf("2147483647 %s 0 = %d, want 2147483647", "+", r) } y = 1 r = x + y if r != -2147483648 { t.Errorf("2147483647 %s 1 = %d, want -2147483648", "+", r) } y = 2147483647 r = x + y if r != -2 { t.Errorf("2147483647 %s 2147483647 = %d, want -2", "+", r) } } func TestConstFoldint32sub(t *testing.T) { var x, y, r int32 x = -2147483648 y = -2147483648 r = x - y if r != 0 { t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "-", r) } y = -2147483647 r = x - y if r != -1 { t.Errorf("-2147483648 %s -2147483647 = %d, want -1", "-", r) } y = -1 r = x - y if r != -2147483647 { t.Errorf("-2147483648 %s -1 = %d, want -2147483647", "-", r) } y = 0 r = x - y if r != -2147483648 { t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "-", r) } y = 1 r = x - y if r != 2147483647 { t.Errorf("-2147483648 %s 1 = %d, want 2147483647", "-", r) } y = 2147483647 r = x - y if r != 1 { t.Errorf("-2147483648 %s 2147483647 = %d, want 1", "-", r) } x = -2147483647 y = -2147483648 r = x - y if r != 1 { t.Errorf("-2147483647 %s -2147483648 = %d, want 1", "-", r) } y = -2147483647 r = x - y if r != 0 { t.Errorf("-2147483647 %s -2147483647 = %d, want 0", "-", r) } y = -1 r = x - y if r != -2147483646 { t.Errorf("-2147483647 %s -1 = %d, want -2147483646", "-", r) } y = 0 r = x - y if r != -2147483647 { t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "-", r) } y = 1 r = x - y if r != -2147483648 { t.Errorf("-2147483647 %s 1 = %d, want -2147483648", "-", r) } y = 2147483647 r = x - y if r != 2 { t.Errorf("-2147483647 %s 2147483647 = %d, want 2", "-", r) } x = -1 y = -2147483648 r = x - y if r != 2147483647 { t.Errorf("-1 %s -2147483648 = %d, want 2147483647", "-", r) } y = -2147483647 r = x - y if r != 2147483646 { t.Errorf("-1 %s -2147483647 = %d, want 2147483646", "-", r) } y = -1 r = x - y if r != 0 { t.Errorf("-1 %s -1 = %d, want 0", "-", r) } y = 0 r = x - y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "-", r) } y = 1 r = x - y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "-", r) } y = 2147483647 r = x - y if r != -2147483648 { t.Errorf("-1 %s 2147483647 = %d, want -2147483648", "-", r) } x = 0 y = -2147483648 r = x - y if r != -2147483648 { t.Errorf("0 %s -2147483648 = %d, want -2147483648", "-", r) } y = -2147483647 r = x - y if r != 2147483647 { t.Errorf("0 %s -2147483647 = %d, want 2147483647", "-", r) } y = -1 r = x - y if r != 1 { t.Errorf("0 %s -1 = %d, want 1", "-", r) } y = 0 r = x - y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "-", r) } y = 1 r = x - y if r != -1 { t.Errorf("0 %s 1 = %d, want -1", "-", r) } y = 2147483647 r = x - y if r != -2147483647 { t.Errorf("0 %s 2147483647 = %d, want -2147483647", "-", r) } x = 1 y = -2147483648 r = x - y if r != -2147483647 { t.Errorf("1 %s -2147483648 = %d, want -2147483647", "-", r) } y = -2147483647 r = x - y if r != -2147483648 { t.Errorf("1 %s -2147483647 = %d, want -2147483648", "-", r) } y = -1 r = x - y if r != 2 { t.Errorf("1 %s -1 = %d, want 2", "-", r) } y = 0 r = x - y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "-", r) } y = 1 r = x - y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "-", r) } y = 2147483647 r = x - y if r != -2147483646 { t.Errorf("1 %s 2147483647 = %d, want -2147483646", "-", r) } x = 2147483647 y = -2147483648 r = x - y if r != -1 { t.Errorf("2147483647 %s -2147483648 = %d, want -1", "-", r) } y = -2147483647 r = x - y if r != -2 { t.Errorf("2147483647 %s -2147483647 = %d, want -2", "-", r) } y = -1 r = x - y if r != -2147483648 { t.Errorf("2147483647 %s -1 = %d, want -2147483648", "-", r) } y = 0 r = x - y if r != 2147483647 { t.Errorf("2147483647 %s 0 = %d, want 2147483647", "-", r) } y = 1 r = x - y if r != 2147483646 { t.Errorf("2147483647 %s 1 = %d, want 2147483646", "-", r) } y = 2147483647 r = x - y if r != 0 { t.Errorf("2147483647 %s 2147483647 = %d, want 0", "-", r) } } func TestConstFoldint32div(t *testing.T) { var x, y, r int32 x = -2147483648 y = -2147483648 r = x / y if r != 1 { t.Errorf("-2147483648 %s -2147483648 = %d, want 1", "/", r) } y = -2147483647 r = x / y if r != 1 { t.Errorf("-2147483648 %s -2147483647 = %d, want 1", "/", r) } y = -1 r = x / y if r != -2147483648 { t.Errorf("-2147483648 %s -1 = %d, want -2147483648", "/", r) } y = 1 r = x / y if r != -2147483648 { t.Errorf("-2147483648 %s 1 = %d, want -2147483648", "/", r) } y = 2147483647 r = x / y if r != -1 { t.Errorf("-2147483648 %s 2147483647 = %d, want -1", "/", r) } x = -2147483647 y = -2147483648 r = x / y if r != 0 { t.Errorf("-2147483647 %s -2147483648 = %d, want 0", "/", r) } y = -2147483647 r = x / y if r != 1 { t.Errorf("-2147483647 %s -2147483647 = %d, want 1", "/", r) } y = -1 r = x / y if r != 2147483647 { t.Errorf("-2147483647 %s -1 = %d, want 2147483647", "/", r) } y = 1 r = x / y if r != -2147483647 { t.Errorf("-2147483647 %s 1 = %d, want -2147483647", "/", r) } y = 2147483647 r = x / y if r != -1 { t.Errorf("-2147483647 %s 2147483647 = %d, want -1", "/", r) } x = -1 y = -2147483648 r = x / y if r != 0 { t.Errorf("-1 %s -2147483648 = %d, want 0", "/", r) } y = -2147483647 r = x / y if r != 0 { t.Errorf("-1 %s -2147483647 = %d, want 0", "/", r) } y = -1 r = x / y if r != 1 { t.Errorf("-1 %s -1 = %d, want 1", "/", r) } y = 1 r = x / y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", "/", r) } y = 2147483647 r = x / y if r != 0 { t.Errorf("-1 %s 2147483647 = %d, want 0", "/", r) } x = 0 y = -2147483648 r = x / y if r != 0 { t.Errorf("0 %s -2147483648 = %d, want 0", "/", r) } y = -2147483647 r = x / y if r != 0 { t.Errorf("0 %s -2147483647 = %d, want 0", "/", r) } y = -1 r = x / y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "/", r) } y = 1 r = x / y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "/", r) } y = 2147483647 r = x / y if r != 0 { t.Errorf("0 %s 2147483647 = %d, want 0", "/", r) } x = 1 y = -2147483648 r = x / y if r != 0 { t.Errorf("1 %s -2147483648 = %d, want 0", "/", r) } y = -2147483647 r = x / y if r != 0 { t.Errorf("1 %s -2147483647 = %d, want 0", "/", r) } y = -1 r = x / y if r != -1 { t.Errorf("1 %s -1 = %d, want -1", "/", r) } y = 1 r = x / y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "/", r) } y = 2147483647 r = x / y if r != 0 { t.Errorf("1 %s 2147483647 = %d, want 0", "/", r) } x = 2147483647 y = -2147483648 r = x / y if r != 0 { t.Errorf("2147483647 %s -2147483648 = %d, want 0", "/", r) } y = -2147483647 r = x / y if r != -1 { t.Errorf("2147483647 %s -2147483647 = %d, want -1", "/", r) } y = -1 r = x / y if r != -2147483647 { t.Errorf("2147483647 %s -1 = %d, want -2147483647", "/", r) } y = 1 r = x / y if r != 2147483647 { t.Errorf("2147483647 %s 1 = %d, want 2147483647", "/", r) } y = 2147483647 r = x / y if r != 1 { t.Errorf("2147483647 %s 2147483647 = %d, want 1", "/", r) } } func TestConstFoldint32mul(t *testing.T) { var x, y, r int32 x = -2147483648 y = -2147483648 r = x * y if r != 0 { t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "*", r) } y = -2147483647 r = x * y if r != -2147483648 { t.Errorf("-2147483648 %s -2147483647 = %d, want -2147483648", "*", r) } y = -1 r = x * y if r != -2147483648 { t.Errorf("-2147483648 %s -1 = %d, want -2147483648", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-2147483648 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -2147483648 { t.Errorf("-2147483648 %s 1 = %d, want -2147483648", "*", r) } y = 2147483647 r = x * y if r != -2147483648 { t.Errorf("-2147483648 %s 2147483647 = %d, want -2147483648", "*", r) } x = -2147483647 y = -2147483648 r = x * y if r != -2147483648 { t.Errorf("-2147483647 %s -2147483648 = %d, want -2147483648", "*", r) } y = -2147483647 r = x * y if r != 1 { t.Errorf("-2147483647 %s -2147483647 = %d, want 1", "*", r) } y = -1 r = x * y if r != 2147483647 { t.Errorf("-2147483647 %s -1 = %d, want 2147483647", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-2147483647 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -2147483647 { t.Errorf("-2147483647 %s 1 = %d, want -2147483647", "*", r) } y = 2147483647 r = x * y if r != -1 { t.Errorf("-2147483647 %s 2147483647 = %d, want -1", "*", r) } x = -1 y = -2147483648 r = x * y if r != -2147483648 { t.Errorf("-1 %s -2147483648 = %d, want -2147483648", "*", r) } y = -2147483647 r = x * y if r != 2147483647 { t.Errorf("-1 %s -2147483647 = %d, want 2147483647", "*", r) } y = -1 r = x * y if r != 1 { t.Errorf("-1 %s -1 = %d, want 1", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", "*", r) } y = 2147483647 r = x * y if r != -2147483647 { t.Errorf("-1 %s 2147483647 = %d, want -2147483647", "*", r) } x = 0 y = -2147483648 r = x * y if r != 0 { t.Errorf("0 %s -2147483648 = %d, want 0", "*", r) } y = -2147483647 r = x * y if r != 0 { t.Errorf("0 %s -2147483647 = %d, want 0", "*", r) } y = -1 r = x * y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "*", r) } y = 2147483647 r = x * y if r != 0 { t.Errorf("0 %s 2147483647 = %d, want 0", "*", r) } x = 1 y = -2147483648 r = x * y if r != -2147483648 { t.Errorf("1 %s -2147483648 = %d, want -2147483648", "*", r) } y = -2147483647 r = x * y if r != -2147483647 { t.Errorf("1 %s -2147483647 = %d, want -2147483647", "*", r) } y = -1 r = x * y if r != -1 { t.Errorf("1 %s -1 = %d, want -1", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "*", r) } y = 2147483647 r = x * y if r != 2147483647 { t.Errorf("1 %s 2147483647 = %d, want 2147483647", "*", r) } x = 2147483647 y = -2147483648 r = x * y if r != -2147483648 { t.Errorf("2147483647 %s -2147483648 = %d, want -2147483648", "*", r) } y = -2147483647 r = x * y if r != -1 { t.Errorf("2147483647 %s -2147483647 = %d, want -1", "*", r) } y = -1 r = x * y if r != -2147483647 { t.Errorf("2147483647 %s -1 = %d, want -2147483647", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("2147483647 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 2147483647 { t.Errorf("2147483647 %s 1 = %d, want 2147483647", "*", r) } y = 2147483647 r = x * y if r != 1 { t.Errorf("2147483647 %s 2147483647 = %d, want 1", "*", r) } } func TestConstFoldint32mod(t *testing.T) { var x, y, r int32 x = -2147483648 y = -2147483648 r = x % y if r != 0 { t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "%", r) } y = -2147483647 r = x % y if r != -1 { t.Errorf("-2147483648 %s -2147483647 = %d, want -1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-2147483648 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-2147483648 %s 1 = %d, want 0", "%", r) } y = 2147483647 r = x % y if r != -1 { t.Errorf("-2147483648 %s 2147483647 = %d, want -1", "%", r) } x = -2147483647 y = -2147483648 r = x % y if r != -2147483647 { t.Errorf("-2147483647 %s -2147483648 = %d, want -2147483647", "%", r) } y = -2147483647 r = x % y if r != 0 { t.Errorf("-2147483647 %s -2147483647 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-2147483647 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-2147483647 %s 1 = %d, want 0", "%", r) } y = 2147483647 r = x % y if r != 0 { t.Errorf("-2147483647 %s 2147483647 = %d, want 0", "%", r) } x = -1 y = -2147483648 r = x % y if r != -1 { t.Errorf("-1 %s -2147483648 = %d, want -1", "%", r) } y = -2147483647 r = x % y if r != -1 { t.Errorf("-1 %s -2147483647 = %d, want -1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-1 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-1 %s 1 = %d, want 0", "%", r) } y = 2147483647 r = x % y if r != -1 { t.Errorf("-1 %s 2147483647 = %d, want -1", "%", r) } x = 0 y = -2147483648 r = x % y if r != 0 { t.Errorf("0 %s -2147483648 = %d, want 0", "%", r) } y = -2147483647 r = x % y if r != 0 { t.Errorf("0 %s -2147483647 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "%", r) } y = 2147483647 r = x % y if r != 0 { t.Errorf("0 %s 2147483647 = %d, want 0", "%", r) } x = 1 y = -2147483648 r = x % y if r != 1 { t.Errorf("1 %s -2147483648 = %d, want 1", "%", r) } y = -2147483647 r = x % y if r != 1 { t.Errorf("1 %s -2147483647 = %d, want 1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("1 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "%", r) } y = 2147483647 r = x % y if r != 1 { t.Errorf("1 %s 2147483647 = %d, want 1", "%", r) } x = 2147483647 y = -2147483648 r = x % y if r != 2147483647 { t.Errorf("2147483647 %s -2147483648 = %d, want 2147483647", "%", r) } y = -2147483647 r = x % y if r != 0 { t.Errorf("2147483647 %s -2147483647 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("2147483647 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("2147483647 %s 1 = %d, want 0", "%", r) } y = 2147483647 r = x % y if r != 0 { t.Errorf("2147483647 %s 2147483647 = %d, want 0", "%", r) } } func TestConstFolduint16add(t *testing.T) { var x, y, r uint16 x = 0 y = 0 r = x + y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "+", r) } y = 1 r = x + y if r != 1 { t.Errorf("0 %s 1 = %d, want 1", "+", r) } y = 65535 r = x + y if r != 65535 { t.Errorf("0 %s 65535 = %d, want 65535", "+", r) } x = 1 y = 0 r = x + y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "+", r) } y = 1 r = x + y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "+", r) } y = 65535 r = x + y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", "+", r) } x = 65535 y = 0 r = x + y if r != 65535 { t.Errorf("65535 %s 0 = %d, want 65535", "+", r) } y = 1 r = x + y if r != 0 { t.Errorf("65535 %s 1 = %d, want 0", "+", r) } y = 65535 r = x + y if r != 65534 { t.Errorf("65535 %s 65535 = %d, want 65534", "+", r) } } func TestConstFolduint16sub(t *testing.T) { var x, y, r uint16 x = 0 y = 0 r = x - y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "-", r) } y = 1 r = x - y if r != 65535 { t.Errorf("0 %s 1 = %d, want 65535", "-", r) } y = 65535 r = x - y if r != 1 { t.Errorf("0 %s 65535 = %d, want 1", "-", r) } x = 1 y = 0 r = x - y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "-", r) } y = 1 r = x - y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "-", r) } y = 65535 r = x - y if r != 2 { t.Errorf("1 %s 65535 = %d, want 2", "-", r) } x = 65535 y = 0 r = x - y if r != 65535 { t.Errorf("65535 %s 0 = %d, want 65535", "-", r) } y = 1 r = x - y if r != 65534 { t.Errorf("65535 %s 1 = %d, want 65534", "-", r) } y = 65535 r = x - y if r != 0 { t.Errorf("65535 %s 65535 = %d, want 0", "-", r) } } func TestConstFolduint16div(t *testing.T) { var x, y, r uint16 x = 0 y = 1 r = x / y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "/", r) } y = 65535 r = x / y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "/", r) } x = 1 y = 1 r = x / y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "/", r) } y = 65535 r = x / y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", "/", r) } x = 65535 y = 1 r = x / y if r != 65535 { t.Errorf("65535 %s 1 = %d, want 65535", "/", r) } y = 65535 r = x / y if r != 1 { t.Errorf("65535 %s 65535 = %d, want 1", "/", r) } } func TestConstFolduint16mul(t *testing.T) { var x, y, r uint16 x = 0 y = 0 r = x * y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "*", r) } y = 65535 r = x * y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "*", r) } x = 1 y = 0 r = x * y if r != 0 { t.Errorf("1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "*", r) } y = 65535 r = x * y if r != 65535 { t.Errorf("1 %s 65535 = %d, want 65535", "*", r) } x = 65535 y = 0 r = x * y if r != 0 { t.Errorf("65535 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 65535 { t.Errorf("65535 %s 1 = %d, want 65535", "*", r) } y = 65535 r = x * y if r != 1 { t.Errorf("65535 %s 65535 = %d, want 1", "*", r) } } func TestConstFolduint16mod(t *testing.T) { var x, y, r uint16 x = 0 y = 1 r = x % y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "%", r) } y = 65535 r = x % y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "%", r) } x = 1 y = 1 r = x % y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "%", r) } y = 65535 r = x % y if r != 1 { t.Errorf("1 %s 65535 = %d, want 1", "%", r) } x = 65535 y = 1 r = x % y if r != 0 { t.Errorf("65535 %s 1 = %d, want 0", "%", r) } y = 65535 r = x % y if r != 0 { t.Errorf("65535 %s 65535 = %d, want 0", "%", r) } } func TestConstFoldint16add(t *testing.T) { var x, y, r int16 x = -32768 y = -32768 r = x + y if r != 0 { t.Errorf("-32768 %s -32768 = %d, want 0", "+", r) } y = -32767 r = x + y if r != 1 { t.Errorf("-32768 %s -32767 = %d, want 1", "+", r) } y = -1 r = x + y if r != 32767 { t.Errorf("-32768 %s -1 = %d, want 32767", "+", r) } y = 0 r = x + y if r != -32768 { t.Errorf("-32768 %s 0 = %d, want -32768", "+", r) } y = 1 r = x + y if r != -32767 { t.Errorf("-32768 %s 1 = %d, want -32767", "+", r) } y = 32766 r = x + y if r != -2 { t.Errorf("-32768 %s 32766 = %d, want -2", "+", r) } y = 32767 r = x + y if r != -1 { t.Errorf("-32768 %s 32767 = %d, want -1", "+", r) } x = -32767 y = -32768 r = x + y if r != 1 { t.Errorf("-32767 %s -32768 = %d, want 1", "+", r) } y = -32767 r = x + y if r != 2 { t.Errorf("-32767 %s -32767 = %d, want 2", "+", r) } y = -1 r = x + y if r != -32768 { t.Errorf("-32767 %s -1 = %d, want -32768", "+", r) } y = 0 r = x + y if r != -32767 { t.Errorf("-32767 %s 0 = %d, want -32767", "+", r) } y = 1 r = x + y if r != -32766 { t.Errorf("-32767 %s 1 = %d, want -32766", "+", r) } y = 32766 r = x + y if r != -1 { t.Errorf("-32767 %s 32766 = %d, want -1", "+", r) } y = 32767 r = x + y if r != 0 { t.Errorf("-32767 %s 32767 = %d, want 0", "+", r) } x = -1 y = -32768 r = x + y if r != 32767 { t.Errorf("-1 %s -32768 = %d, want 32767", "+", r) } y = -32767 r = x + y if r != -32768 { t.Errorf("-1 %s -32767 = %d, want -32768", "+", r) } y = -1 r = x + y if r != -2 { t.Errorf("-1 %s -1 = %d, want -2", "+", r) } y = 0 r = x + y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "+", r) } y = 1 r = x + y if r != 0 { t.Errorf("-1 %s 1 = %d, want 0", "+", r) } y = 32766 r = x + y if r != 32765 { t.Errorf("-1 %s 32766 = %d, want 32765", "+", r) } y = 32767 r = x + y if r != 32766 { t.Errorf("-1 %s 32767 = %d, want 32766", "+", r) } x = 0 y = -32768 r = x + y if r != -32768 { t.Errorf("0 %s -32768 = %d, want -32768", "+", r) } y = -32767 r = x + y if r != -32767 { t.Errorf("0 %s -32767 = %d, want -32767", "+", r) } y = -1 r = x + y if r != -1 { t.Errorf("0 %s -1 = %d, want -1", "+", r) } y = 0 r = x + y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "+", r) } y = 1 r = x + y if r != 1 { t.Errorf("0 %s 1 = %d, want 1", "+", r) } y = 32766 r = x + y if r != 32766 { t.Errorf("0 %s 32766 = %d, want 32766", "+", r) } y = 32767 r = x + y if r != 32767 { t.Errorf("0 %s 32767 = %d, want 32767", "+", r) } x = 1 y = -32768 r = x + y if r != -32767 { t.Errorf("1 %s -32768 = %d, want -32767", "+", r) } y = -32767 r = x + y if r != -32766 { t.Errorf("1 %s -32767 = %d, want -32766", "+", r) } y = -1 r = x + y if r != 0 { t.Errorf("1 %s -1 = %d, want 0", "+", r) } y = 0 r = x + y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "+", r) } y = 1 r = x + y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "+", r) } y = 32766 r = x + y if r != 32767 { t.Errorf("1 %s 32766 = %d, want 32767", "+", r) } y = 32767 r = x + y if r != -32768 { t.Errorf("1 %s 32767 = %d, want -32768", "+", r) } x = 32766 y = -32768 r = x + y if r != -2 { t.Errorf("32766 %s -32768 = %d, want -2", "+", r) } y = -32767 r = x + y if r != -1 { t.Errorf("32766 %s -32767 = %d, want -1", "+", r) } y = -1 r = x + y if r != 32765 { t.Errorf("32766 %s -1 = %d, want 32765", "+", r) } y = 0 r = x + y if r != 32766 { t.Errorf("32766 %s 0 = %d, want 32766", "+", r) } y = 1 r = x + y if r != 32767 { t.Errorf("32766 %s 1 = %d, want 32767", "+", r) } y = 32766 r = x + y if r != -4 { t.Errorf("32766 %s 32766 = %d, want -4", "+", r) } y = 32767 r = x + y if r != -3 { t.Errorf("32766 %s 32767 = %d, want -3", "+", r) } x = 32767 y = -32768 r = x + y if r != -1 { t.Errorf("32767 %s -32768 = %d, want -1", "+", r) } y = -32767 r = x + y if r != 0 { t.Errorf("32767 %s -32767 = %d, want 0", "+", r) } y = -1 r = x + y if r != 32766 { t.Errorf("32767 %s -1 = %d, want 32766", "+", r) } y = 0 r = x + y if r != 32767 { t.Errorf("32767 %s 0 = %d, want 32767", "+", r) } y = 1 r = x + y if r != -32768 { t.Errorf("32767 %s 1 = %d, want -32768", "+", r) } y = 32766 r = x + y if r != -3 { t.Errorf("32767 %s 32766 = %d, want -3", "+", r) } y = 32767 r = x + y if r != -2 { t.Errorf("32767 %s 32767 = %d, want -2", "+", r) } } func TestConstFoldint16sub(t *testing.T) { var x, y, r int16 x = -32768 y = -32768 r = x - y if r != 0 { t.Errorf("-32768 %s -32768 = %d, want 0", "-", r) } y = -32767 r = x - y if r != -1 { t.Errorf("-32768 %s -32767 = %d, want -1", "-", r) } y = -1 r = x - y if r != -32767 { t.Errorf("-32768 %s -1 = %d, want -32767", "-", r) } y = 0 r = x - y if r != -32768 { t.Errorf("-32768 %s 0 = %d, want -32768", "-", r) } y = 1 r = x - y if r != 32767 { t.Errorf("-32768 %s 1 = %d, want 32767", "-", r) } y = 32766 r = x - y if r != 2 { t.Errorf("-32768 %s 32766 = %d, want 2", "-", r) } y = 32767 r = x - y if r != 1 { t.Errorf("-32768 %s 32767 = %d, want 1", "-", r) } x = -32767 y = -32768 r = x - y if r != 1 { t.Errorf("-32767 %s -32768 = %d, want 1", "-", r) } y = -32767 r = x - y if r != 0 { t.Errorf("-32767 %s -32767 = %d, want 0", "-", r) } y = -1 r = x - y if r != -32766 { t.Errorf("-32767 %s -1 = %d, want -32766", "-", r) } y = 0 r = x - y if r != -32767 { t.Errorf("-32767 %s 0 = %d, want -32767", "-", r) } y = 1 r = x - y if r != -32768 { t.Errorf("-32767 %s 1 = %d, want -32768", "-", r) } y = 32766 r = x - y if r != 3 { t.Errorf("-32767 %s 32766 = %d, want 3", "-", r) } y = 32767 r = x - y if r != 2 { t.Errorf("-32767 %s 32767 = %d, want 2", "-", r) } x = -1 y = -32768 r = x - y if r != 32767 { t.Errorf("-1 %s -32768 = %d, want 32767", "-", r) } y = -32767 r = x - y if r != 32766 { t.Errorf("-1 %s -32767 = %d, want 32766", "-", r) } y = -1 r = x - y if r != 0 { t.Errorf("-1 %s -1 = %d, want 0", "-", r) } y = 0 r = x - y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "-", r) } y = 1 r = x - y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "-", r) } y = 32766 r = x - y if r != -32767 { t.Errorf("-1 %s 32766 = %d, want -32767", "-", r) } y = 32767 r = x - y if r != -32768 { t.Errorf("-1 %s 32767 = %d, want -32768", "-", r) } x = 0 y = -32768 r = x - y if r != -32768 { t.Errorf("0 %s -32768 = %d, want -32768", "-", r) } y = -32767 r = x - y if r != 32767 { t.Errorf("0 %s -32767 = %d, want 32767", "-", r) } y = -1 r = x - y if r != 1 { t.Errorf("0 %s -1 = %d, want 1", "-", r) } y = 0 r = x - y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "-", r) } y = 1 r = x - y if r != -1 { t.Errorf("0 %s 1 = %d, want -1", "-", r) } y = 32766 r = x - y if r != -32766 { t.Errorf("0 %s 32766 = %d, want -32766", "-", r) } y = 32767 r = x - y if r != -32767 { t.Errorf("0 %s 32767 = %d, want -32767", "-", r) } x = 1 y = -32768 r = x - y if r != -32767 { t.Errorf("1 %s -32768 = %d, want -32767", "-", r) } y = -32767 r = x - y if r != -32768 { t.Errorf("1 %s -32767 = %d, want -32768", "-", r) } y = -1 r = x - y if r != 2 { t.Errorf("1 %s -1 = %d, want 2", "-", r) } y = 0 r = x - y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "-", r) } y = 1 r = x - y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "-", r) } y = 32766 r = x - y if r != -32765 { t.Errorf("1 %s 32766 = %d, want -32765", "-", r) } y = 32767 r = x - y if r != -32766 { t.Errorf("1 %s 32767 = %d, want -32766", "-", r) } x = 32766 y = -32768 r = x - y if r != -2 { t.Errorf("32766 %s -32768 = %d, want -2", "-", r) } y = -32767 r = x - y if r != -3 { t.Errorf("32766 %s -32767 = %d, want -3", "-", r) } y = -1 r = x - y if r != 32767 { t.Errorf("32766 %s -1 = %d, want 32767", "-", r) } y = 0 r = x - y if r != 32766 { t.Errorf("32766 %s 0 = %d, want 32766", "-", r) } y = 1 r = x - y if r != 32765 { t.Errorf("32766 %s 1 = %d, want 32765", "-", r) } y = 32766 r = x - y if r != 0 { t.Errorf("32766 %s 32766 = %d, want 0", "-", r) } y = 32767 r = x - y if r != -1 { t.Errorf("32766 %s 32767 = %d, want -1", "-", r) } x = 32767 y = -32768 r = x - y if r != -1 { t.Errorf("32767 %s -32768 = %d, want -1", "-", r) } y = -32767 r = x - y if r != -2 { t.Errorf("32767 %s -32767 = %d, want -2", "-", r) } y = -1 r = x - y if r != -32768 { t.Errorf("32767 %s -1 = %d, want -32768", "-", r) } y = 0 r = x - y if r != 32767 { t.Errorf("32767 %s 0 = %d, want 32767", "-", r) } y = 1 r = x - y if r != 32766 { t.Errorf("32767 %s 1 = %d, want 32766", "-", r) } y = 32766 r = x - y if r != 1 { t.Errorf("32767 %s 32766 = %d, want 1", "-", r) } y = 32767 r = x - y if r != 0 { t.Errorf("32767 %s 32767 = %d, want 0", "-", r) } } func TestConstFoldint16div(t *testing.T) { var x, y, r int16 x = -32768 y = -32768 r = x / y if r != 1 { t.Errorf("-32768 %s -32768 = %d, want 1", "/", r) } y = -32767 r = x / y if r != 1 { t.Errorf("-32768 %s -32767 = %d, want 1", "/", r) } y = -1 r = x / y if r != -32768 { t.Errorf("-32768 %s -1 = %d, want -32768", "/", r) } y = 1 r = x / y if r != -32768 { t.Errorf("-32768 %s 1 = %d, want -32768", "/", r) } y = 32766 r = x / y if r != -1 { t.Errorf("-32768 %s 32766 = %d, want -1", "/", r) } y = 32767 r = x / y if r != -1 { t.Errorf("-32768 %s 32767 = %d, want -1", "/", r) } x = -32767 y = -32768 r = x / y if r != 0 { t.Errorf("-32767 %s -32768 = %d, want 0", "/", r) } y = -32767 r = x / y if r != 1 { t.Errorf("-32767 %s -32767 = %d, want 1", "/", r) } y = -1 r = x / y if r != 32767 { t.Errorf("-32767 %s -1 = %d, want 32767", "/", r) } y = 1 r = x / y if r != -32767 { t.Errorf("-32767 %s 1 = %d, want -32767", "/", r) } y = 32766 r = x / y if r != -1 { t.Errorf("-32767 %s 32766 = %d, want -1", "/", r) } y = 32767 r = x / y if r != -1 { t.Errorf("-32767 %s 32767 = %d, want -1", "/", r) } x = -1 y = -32768 r = x / y if r != 0 { t.Errorf("-1 %s -32768 = %d, want 0", "/", r) } y = -32767 r = x / y if r != 0 { t.Errorf("-1 %s -32767 = %d, want 0", "/", r) } y = -1 r = x / y if r != 1 { t.Errorf("-1 %s -1 = %d, want 1", "/", r) } y = 1 r = x / y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", "/", r) } y = 32766 r = x / y if r != 0 { t.Errorf("-1 %s 32766 = %d, want 0", "/", r) } y = 32767 r = x / y if r != 0 { t.Errorf("-1 %s 32767 = %d, want 0", "/", r) } x = 0 y = -32768 r = x / y if r != 0 { t.Errorf("0 %s -32768 = %d, want 0", "/", r) } y = -32767 r = x / y if r != 0 { t.Errorf("0 %s -32767 = %d, want 0", "/", r) } y = -1 r = x / y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "/", r) } y = 1 r = x / y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "/", r) } y = 32766 r = x / y if r != 0 { t.Errorf("0 %s 32766 = %d, want 0", "/", r) } y = 32767 r = x / y if r != 0 { t.Errorf("0 %s 32767 = %d, want 0", "/", r) } x = 1 y = -32768 r = x / y if r != 0 { t.Errorf("1 %s -32768 = %d, want 0", "/", r) } y = -32767 r = x / y if r != 0 { t.Errorf("1 %s -32767 = %d, want 0", "/", r) } y = -1 r = x / y if r != -1 { t.Errorf("1 %s -1 = %d, want -1", "/", r) } y = 1 r = x / y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "/", r) } y = 32766 r = x / y if r != 0 { t.Errorf("1 %s 32766 = %d, want 0", "/", r) } y = 32767 r = x / y if r != 0 { t.Errorf("1 %s 32767 = %d, want 0", "/", r) } x = 32766 y = -32768 r = x / y if r != 0 { t.Errorf("32766 %s -32768 = %d, want 0", "/", r) } y = -32767 r = x / y if r != 0 { t.Errorf("32766 %s -32767 = %d, want 0", "/", r) } y = -1 r = x / y if r != -32766 { t.Errorf("32766 %s -1 = %d, want -32766", "/", r) } y = 1 r = x / y if r != 32766 { t.Errorf("32766 %s 1 = %d, want 32766", "/", r) } y = 32766 r = x / y if r != 1 { t.Errorf("32766 %s 32766 = %d, want 1", "/", r) } y = 32767 r = x / y if r != 0 { t.Errorf("32766 %s 32767 = %d, want 0", "/", r) } x = 32767 y = -32768 r = x / y if r != 0 { t.Errorf("32767 %s -32768 = %d, want 0", "/", r) } y = -32767 r = x / y if r != -1 { t.Errorf("32767 %s -32767 = %d, want -1", "/", r) } y = -1 r = x / y if r != -32767 { t.Errorf("32767 %s -1 = %d, want -32767", "/", r) } y = 1 r = x / y if r != 32767 { t.Errorf("32767 %s 1 = %d, want 32767", "/", r) } y = 32766 r = x / y if r != 1 { t.Errorf("32767 %s 32766 = %d, want 1", "/", r) } y = 32767 r = x / y if r != 1 { t.Errorf("32767 %s 32767 = %d, want 1", "/", r) } } func TestConstFoldint16mul(t *testing.T) { var x, y, r int16 x = -32768 y = -32768 r = x * y if r != 0 { t.Errorf("-32768 %s -32768 = %d, want 0", "*", r) } y = -32767 r = x * y if r != -32768 { t.Errorf("-32768 %s -32767 = %d, want -32768", "*", r) } y = -1 r = x * y if r != -32768 { t.Errorf("-32768 %s -1 = %d, want -32768", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-32768 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -32768 { t.Errorf("-32768 %s 1 = %d, want -32768", "*", r) } y = 32766 r = x * y if r != 0 { t.Errorf("-32768 %s 32766 = %d, want 0", "*", r) } y = 32767 r = x * y if r != -32768 { t.Errorf("-32768 %s 32767 = %d, want -32768", "*", r) } x = -32767 y = -32768 r = x * y if r != -32768 { t.Errorf("-32767 %s -32768 = %d, want -32768", "*", r) } y = -32767 r = x * y if r != 1 { t.Errorf("-32767 %s -32767 = %d, want 1", "*", r) } y = -1 r = x * y if r != 32767 { t.Errorf("-32767 %s -1 = %d, want 32767", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-32767 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -32767 { t.Errorf("-32767 %s 1 = %d, want -32767", "*", r) } y = 32766 r = x * y if r != 32766 { t.Errorf("-32767 %s 32766 = %d, want 32766", "*", r) } y = 32767 r = x * y if r != -1 { t.Errorf("-32767 %s 32767 = %d, want -1", "*", r) } x = -1 y = -32768 r = x * y if r != -32768 { t.Errorf("-1 %s -32768 = %d, want -32768", "*", r) } y = -32767 r = x * y if r != 32767 { t.Errorf("-1 %s -32767 = %d, want 32767", "*", r) } y = -1 r = x * y if r != 1 { t.Errorf("-1 %s -1 = %d, want 1", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", "*", r) } y = 32766 r = x * y if r != -32766 { t.Errorf("-1 %s 32766 = %d, want -32766", "*", r) } y = 32767 r = x * y if r != -32767 { t.Errorf("-1 %s 32767 = %d, want -32767", "*", r) } x = 0 y = -32768 r = x * y if r != 0 { t.Errorf("0 %s -32768 = %d, want 0", "*", r) } y = -32767 r = x * y if r != 0 { t.Errorf("0 %s -32767 = %d, want 0", "*", r) } y = -1 r = x * y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "*", r) } y = 32766 r = x * y if r != 0 { t.Errorf("0 %s 32766 = %d, want 0", "*", r) } y = 32767 r = x * y if r != 0 { t.Errorf("0 %s 32767 = %d, want 0", "*", r) } x = 1 y = -32768 r = x * y if r != -32768 { t.Errorf("1 %s -32768 = %d, want -32768", "*", r) } y = -32767 r = x * y if r != -32767 { t.Errorf("1 %s -32767 = %d, want -32767", "*", r) } y = -1 r = x * y if r != -1 { t.Errorf("1 %s -1 = %d, want -1", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "*", r) } y = 32766 r = x * y if r != 32766 { t.Errorf("1 %s 32766 = %d, want 32766", "*", r) } y = 32767 r = x * y if r != 32767 { t.Errorf("1 %s 32767 = %d, want 32767", "*", r) } x = 32766 y = -32768 r = x * y if r != 0 { t.Errorf("32766 %s -32768 = %d, want 0", "*", r) } y = -32767 r = x * y if r != 32766 { t.Errorf("32766 %s -32767 = %d, want 32766", "*", r) } y = -1 r = x * y if r != -32766 { t.Errorf("32766 %s -1 = %d, want -32766", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("32766 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 32766 { t.Errorf("32766 %s 1 = %d, want 32766", "*", r) } y = 32766 r = x * y if r != 4 { t.Errorf("32766 %s 32766 = %d, want 4", "*", r) } y = 32767 r = x * y if r != -32766 { t.Errorf("32766 %s 32767 = %d, want -32766", "*", r) } x = 32767 y = -32768 r = x * y if r != -32768 { t.Errorf("32767 %s -32768 = %d, want -32768", "*", r) } y = -32767 r = x * y if r != -1 { t.Errorf("32767 %s -32767 = %d, want -1", "*", r) } y = -1 r = x * y if r != -32767 { t.Errorf("32767 %s -1 = %d, want -32767", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("32767 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 32767 { t.Errorf("32767 %s 1 = %d, want 32767", "*", r) } y = 32766 r = x * y if r != -32766 { t.Errorf("32767 %s 32766 = %d, want -32766", "*", r) } y = 32767 r = x * y if r != 1 { t.Errorf("32767 %s 32767 = %d, want 1", "*", r) } } func TestConstFoldint16mod(t *testing.T) { var x, y, r int16 x = -32768 y = -32768 r = x % y if r != 0 { t.Errorf("-32768 %s -32768 = %d, want 0", "%", r) } y = -32767 r = x % y if r != -1 { t.Errorf("-32768 %s -32767 = %d, want -1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-32768 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-32768 %s 1 = %d, want 0", "%", r) } y = 32766 r = x % y if r != -2 { t.Errorf("-32768 %s 32766 = %d, want -2", "%", r) } y = 32767 r = x % y if r != -1 { t.Errorf("-32768 %s 32767 = %d, want -1", "%", r) } x = -32767 y = -32768 r = x % y if r != -32767 { t.Errorf("-32767 %s -32768 = %d, want -32767", "%", r) } y = -32767 r = x % y if r != 0 { t.Errorf("-32767 %s -32767 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-32767 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-32767 %s 1 = %d, want 0", "%", r) } y = 32766 r = x % y if r != -1 { t.Errorf("-32767 %s 32766 = %d, want -1", "%", r) } y = 32767 r = x % y if r != 0 { t.Errorf("-32767 %s 32767 = %d, want 0", "%", r) } x = -1 y = -32768 r = x % y if r != -1 { t.Errorf("-1 %s -32768 = %d, want -1", "%", r) } y = -32767 r = x % y if r != -1 { t.Errorf("-1 %s -32767 = %d, want -1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-1 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-1 %s 1 = %d, want 0", "%", r) } y = 32766 r = x % y if r != -1 { t.Errorf("-1 %s 32766 = %d, want -1", "%", r) } y = 32767 r = x % y if r != -1 { t.Errorf("-1 %s 32767 = %d, want -1", "%", r) } x = 0 y = -32768 r = x % y if r != 0 { t.Errorf("0 %s -32768 = %d, want 0", "%", r) } y = -32767 r = x % y if r != 0 { t.Errorf("0 %s -32767 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "%", r) } y = 32766 r = x % y if r != 0 { t.Errorf("0 %s 32766 = %d, want 0", "%", r) } y = 32767 r = x % y if r != 0 { t.Errorf("0 %s 32767 = %d, want 0", "%", r) } x = 1 y = -32768 r = x % y if r != 1 { t.Errorf("1 %s -32768 = %d, want 1", "%", r) } y = -32767 r = x % y if r != 1 { t.Errorf("1 %s -32767 = %d, want 1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("1 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "%", r) } y = 32766 r = x % y if r != 1 { t.Errorf("1 %s 32766 = %d, want 1", "%", r) } y = 32767 r = x % y if r != 1 { t.Errorf("1 %s 32767 = %d, want 1", "%", r) } x = 32766 y = -32768 r = x % y if r != 32766 { t.Errorf("32766 %s -32768 = %d, want 32766", "%", r) } y = -32767 r = x % y if r != 32766 { t.Errorf("32766 %s -32767 = %d, want 32766", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("32766 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("32766 %s 1 = %d, want 0", "%", r) } y = 32766 r = x % y if r != 0 { t.Errorf("32766 %s 32766 = %d, want 0", "%", r) } y = 32767 r = x % y if r != 32766 { t.Errorf("32766 %s 32767 = %d, want 32766", "%", r) } x = 32767 y = -32768 r = x % y if r != 32767 { t.Errorf("32767 %s -32768 = %d, want 32767", "%", r) } y = -32767 r = x % y if r != 0 { t.Errorf("32767 %s -32767 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("32767 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("32767 %s 1 = %d, want 0", "%", r) } y = 32766 r = x % y if r != 1 { t.Errorf("32767 %s 32766 = %d, want 1", "%", r) } y = 32767 r = x % y if r != 0 { t.Errorf("32767 %s 32767 = %d, want 0", "%", r) } } func TestConstFolduint8add(t *testing.T) { var x, y, r uint8 x = 0 y = 0 r = x + y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "+", r) } y = 1 r = x + y if r != 1 { t.Errorf("0 %s 1 = %d, want 1", "+", r) } y = 255 r = x + y if r != 255 { t.Errorf("0 %s 255 = %d, want 255", "+", r) } x = 1 y = 0 r = x + y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "+", r) } y = 1 r = x + y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "+", r) } y = 255 r = x + y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", "+", r) } x = 255 y = 0 r = x + y if r != 255 { t.Errorf("255 %s 0 = %d, want 255", "+", r) } y = 1 r = x + y if r != 0 { t.Errorf("255 %s 1 = %d, want 0", "+", r) } y = 255 r = x + y if r != 254 { t.Errorf("255 %s 255 = %d, want 254", "+", r) } } func TestConstFolduint8sub(t *testing.T) { var x, y, r uint8 x = 0 y = 0 r = x - y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "-", r) } y = 1 r = x - y if r != 255 { t.Errorf("0 %s 1 = %d, want 255", "-", r) } y = 255 r = x - y if r != 1 { t.Errorf("0 %s 255 = %d, want 1", "-", r) } x = 1 y = 0 r = x - y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "-", r) } y = 1 r = x - y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "-", r) } y = 255 r = x - y if r != 2 { t.Errorf("1 %s 255 = %d, want 2", "-", r) } x = 255 y = 0 r = x - y if r != 255 { t.Errorf("255 %s 0 = %d, want 255", "-", r) } y = 1 r = x - y if r != 254 { t.Errorf("255 %s 1 = %d, want 254", "-", r) } y = 255 r = x - y if r != 0 { t.Errorf("255 %s 255 = %d, want 0", "-", r) } } func TestConstFolduint8div(t *testing.T) { var x, y, r uint8 x = 0 y = 1 r = x / y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "/", r) } y = 255 r = x / y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "/", r) } x = 1 y = 1 r = x / y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "/", r) } y = 255 r = x / y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", "/", r) } x = 255 y = 1 r = x / y if r != 255 { t.Errorf("255 %s 1 = %d, want 255", "/", r) } y = 255 r = x / y if r != 1 { t.Errorf("255 %s 255 = %d, want 1", "/", r) } } func TestConstFolduint8mul(t *testing.T) { var x, y, r uint8 x = 0 y = 0 r = x * y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "*", r) } y = 255 r = x * y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "*", r) } x = 1 y = 0 r = x * y if r != 0 { t.Errorf("1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "*", r) } y = 255 r = x * y if r != 255 { t.Errorf("1 %s 255 = %d, want 255", "*", r) } x = 255 y = 0 r = x * y if r != 0 { t.Errorf("255 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 255 { t.Errorf("255 %s 1 = %d, want 255", "*", r) } y = 255 r = x * y if r != 1 { t.Errorf("255 %s 255 = %d, want 1", "*", r) } } func TestConstFolduint8mod(t *testing.T) { var x, y, r uint8 x = 0 y = 1 r = x % y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "%", r) } y = 255 r = x % y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "%", r) } x = 1 y = 1 r = x % y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "%", r) } y = 255 r = x % y if r != 1 { t.Errorf("1 %s 255 = %d, want 1", "%", r) } x = 255 y = 1 r = x % y if r != 0 { t.Errorf("255 %s 1 = %d, want 0", "%", r) } y = 255 r = x % y if r != 0 { t.Errorf("255 %s 255 = %d, want 0", "%", r) } } func TestConstFoldint8add(t *testing.T) { var x, y, r int8 x = -128 y = -128 r = x + y if r != 0 { t.Errorf("-128 %s -128 = %d, want 0", "+", r) } y = -127 r = x + y if r != 1 { t.Errorf("-128 %s -127 = %d, want 1", "+", r) } y = -1 r = x + y if r != 127 { t.Errorf("-128 %s -1 = %d, want 127", "+", r) } y = 0 r = x + y if r != -128 { t.Errorf("-128 %s 0 = %d, want -128", "+", r) } y = 1 r = x + y if r != -127 { t.Errorf("-128 %s 1 = %d, want -127", "+", r) } y = 126 r = x + y if r != -2 { t.Errorf("-128 %s 126 = %d, want -2", "+", r) } y = 127 r = x + y if r != -1 { t.Errorf("-128 %s 127 = %d, want -1", "+", r) } x = -127 y = -128 r = x + y if r != 1 { t.Errorf("-127 %s -128 = %d, want 1", "+", r) } y = -127 r = x + y if r != 2 { t.Errorf("-127 %s -127 = %d, want 2", "+", r) } y = -1 r = x + y if r != -128 { t.Errorf("-127 %s -1 = %d, want -128", "+", r) } y = 0 r = x + y if r != -127 { t.Errorf("-127 %s 0 = %d, want -127", "+", r) } y = 1 r = x + y if r != -126 { t.Errorf("-127 %s 1 = %d, want -126", "+", r) } y = 126 r = x + y if r != -1 { t.Errorf("-127 %s 126 = %d, want -1", "+", r) } y = 127 r = x + y if r != 0 { t.Errorf("-127 %s 127 = %d, want 0", "+", r) } x = -1 y = -128 r = x + y if r != 127 { t.Errorf("-1 %s -128 = %d, want 127", "+", r) } y = -127 r = x + y if r != -128 { t.Errorf("-1 %s -127 = %d, want -128", "+", r) } y = -1 r = x + y if r != -2 { t.Errorf("-1 %s -1 = %d, want -2", "+", r) } y = 0 r = x + y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "+", r) } y = 1 r = x + y if r != 0 { t.Errorf("-1 %s 1 = %d, want 0", "+", r) } y = 126 r = x + y if r != 125 { t.Errorf("-1 %s 126 = %d, want 125", "+", r) } y = 127 r = x + y if r != 126 { t.Errorf("-1 %s 127 = %d, want 126", "+", r) } x = 0 y = -128 r = x + y if r != -128 { t.Errorf("0 %s -128 = %d, want -128", "+", r) } y = -127 r = x + y if r != -127 { t.Errorf("0 %s -127 = %d, want -127", "+", r) } y = -1 r = x + y if r != -1 { t.Errorf("0 %s -1 = %d, want -1", "+", r) } y = 0 r = x + y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "+", r) } y = 1 r = x + y if r != 1 { t.Errorf("0 %s 1 = %d, want 1", "+", r) } y = 126 r = x + y if r != 126 { t.Errorf("0 %s 126 = %d, want 126", "+", r) } y = 127 r = x + y if r != 127 { t.Errorf("0 %s 127 = %d, want 127", "+", r) } x = 1 y = -128 r = x + y if r != -127 { t.Errorf("1 %s -128 = %d, want -127", "+", r) } y = -127 r = x + y if r != -126 { t.Errorf("1 %s -127 = %d, want -126", "+", r) } y = -1 r = x + y if r != 0 { t.Errorf("1 %s -1 = %d, want 0", "+", r) } y = 0 r = x + y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "+", r) } y = 1 r = x + y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "+", r) } y = 126 r = x + y if r != 127 { t.Errorf("1 %s 126 = %d, want 127", "+", r) } y = 127 r = x + y if r != -128 { t.Errorf("1 %s 127 = %d, want -128", "+", r) } x = 126 y = -128 r = x + y if r != -2 { t.Errorf("126 %s -128 = %d, want -2", "+", r) } y = -127 r = x + y if r != -1 { t.Errorf("126 %s -127 = %d, want -1", "+", r) } y = -1 r = x + y if r != 125 { t.Errorf("126 %s -1 = %d, want 125", "+", r) } y = 0 r = x + y if r != 126 { t.Errorf("126 %s 0 = %d, want 126", "+", r) } y = 1 r = x + y if r != 127 { t.Errorf("126 %s 1 = %d, want 127", "+", r) } y = 126 r = x + y if r != -4 { t.Errorf("126 %s 126 = %d, want -4", "+", r) } y = 127 r = x + y if r != -3 { t.Errorf("126 %s 127 = %d, want -3", "+", r) } x = 127 y = -128 r = x + y if r != -1 { t.Errorf("127 %s -128 = %d, want -1", "+", r) } y = -127 r = x + y if r != 0 { t.Errorf("127 %s -127 = %d, want 0", "+", r) } y = -1 r = x + y if r != 126 { t.Errorf("127 %s -1 = %d, want 126", "+", r) } y = 0 r = x + y if r != 127 { t.Errorf("127 %s 0 = %d, want 127", "+", r) } y = 1 r = x + y if r != -128 { t.Errorf("127 %s 1 = %d, want -128", "+", r) } y = 126 r = x + y if r != -3 { t.Errorf("127 %s 126 = %d, want -3", "+", r) } y = 127 r = x + y if r != -2 { t.Errorf("127 %s 127 = %d, want -2", "+", r) } } func TestConstFoldint8sub(t *testing.T) { var x, y, r int8 x = -128 y = -128 r = x - y if r != 0 { t.Errorf("-128 %s -128 = %d, want 0", "-", r) } y = -127 r = x - y if r != -1 { t.Errorf("-128 %s -127 = %d, want -1", "-", r) } y = -1 r = x - y if r != -127 { t.Errorf("-128 %s -1 = %d, want -127", "-", r) } y = 0 r = x - y if r != -128 { t.Errorf("-128 %s 0 = %d, want -128", "-", r) } y = 1 r = x - y if r != 127 { t.Errorf("-128 %s 1 = %d, want 127", "-", r) } y = 126 r = x - y if r != 2 { t.Errorf("-128 %s 126 = %d, want 2", "-", r) } y = 127 r = x - y if r != 1 { t.Errorf("-128 %s 127 = %d, want 1", "-", r) } x = -127 y = -128 r = x - y if r != 1 { t.Errorf("-127 %s -128 = %d, want 1", "-", r) } y = -127 r = x - y if r != 0 { t.Errorf("-127 %s -127 = %d, want 0", "-", r) } y = -1 r = x - y if r != -126 { t.Errorf("-127 %s -1 = %d, want -126", "-", r) } y = 0 r = x - y if r != -127 { t.Errorf("-127 %s 0 = %d, want -127", "-", r) } y = 1 r = x - y if r != -128 { t.Errorf("-127 %s 1 = %d, want -128", "-", r) } y = 126 r = x - y if r != 3 { t.Errorf("-127 %s 126 = %d, want 3", "-", r) } y = 127 r = x - y if r != 2 { t.Errorf("-127 %s 127 = %d, want 2", "-", r) } x = -1 y = -128 r = x - y if r != 127 { t.Errorf("-1 %s -128 = %d, want 127", "-", r) } y = -127 r = x - y if r != 126 { t.Errorf("-1 %s -127 = %d, want 126", "-", r) } y = -1 r = x - y if r != 0 { t.Errorf("-1 %s -1 = %d, want 0", "-", r) } y = 0 r = x - y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "-", r) } y = 1 r = x - y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "-", r) } y = 126 r = x - y if r != -127 { t.Errorf("-1 %s 126 = %d, want -127", "-", r) } y = 127 r = x - y if r != -128 { t.Errorf("-1 %s 127 = %d, want -128", "-", r) } x = 0 y = -128 r = x - y if r != -128 { t.Errorf("0 %s -128 = %d, want -128", "-", r) } y = -127 r = x - y if r != 127 { t.Errorf("0 %s -127 = %d, want 127", "-", r) } y = -1 r = x - y if r != 1 { t.Errorf("0 %s -1 = %d, want 1", "-", r) } y = 0 r = x - y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "-", r) } y = 1 r = x - y if r != -1 { t.Errorf("0 %s 1 = %d, want -1", "-", r) } y = 126 r = x - y if r != -126 { t.Errorf("0 %s 126 = %d, want -126", "-", r) } y = 127 r = x - y if r != -127 { t.Errorf("0 %s 127 = %d, want -127", "-", r) } x = 1 y = -128 r = x - y if r != -127 { t.Errorf("1 %s -128 = %d, want -127", "-", r) } y = -127 r = x - y if r != -128 { t.Errorf("1 %s -127 = %d, want -128", "-", r) } y = -1 r = x - y if r != 2 { t.Errorf("1 %s -1 = %d, want 2", "-", r) } y = 0 r = x - y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "-", r) } y = 1 r = x - y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "-", r) } y = 126 r = x - y if r != -125 { t.Errorf("1 %s 126 = %d, want -125", "-", r) } y = 127 r = x - y if r != -126 { t.Errorf("1 %s 127 = %d, want -126", "-", r) } x = 126 y = -128 r = x - y if r != -2 { t.Errorf("126 %s -128 = %d, want -2", "-", r) } y = -127 r = x - y if r != -3 { t.Errorf("126 %s -127 = %d, want -3", "-", r) } y = -1 r = x - y if r != 127 { t.Errorf("126 %s -1 = %d, want 127", "-", r) } y = 0 r = x - y if r != 126 { t.Errorf("126 %s 0 = %d, want 126", "-", r) } y = 1 r = x - y if r != 125 { t.Errorf("126 %s 1 = %d, want 125", "-", r) } y = 126 r = x - y if r != 0 { t.Errorf("126 %s 126 = %d, want 0", "-", r) } y = 127 r = x - y if r != -1 { t.Errorf("126 %s 127 = %d, want -1", "-", r) } x = 127 y = -128 r = x - y if r != -1 { t.Errorf("127 %s -128 = %d, want -1", "-", r) } y = -127 r = x - y if r != -2 { t.Errorf("127 %s -127 = %d, want -2", "-", r) } y = -1 r = x - y if r != -128 { t.Errorf("127 %s -1 = %d, want -128", "-", r) } y = 0 r = x - y if r != 127 { t.Errorf("127 %s 0 = %d, want 127", "-", r) } y = 1 r = x - y if r != 126 { t.Errorf("127 %s 1 = %d, want 126", "-", r) } y = 126 r = x - y if r != 1 { t.Errorf("127 %s 126 = %d, want 1", "-", r) } y = 127 r = x - y if r != 0 { t.Errorf("127 %s 127 = %d, want 0", "-", r) } } func TestConstFoldint8div(t *testing.T) { var x, y, r int8 x = -128 y = -128 r = x / y if r != 1 { t.Errorf("-128 %s -128 = %d, want 1", "/", r) } y = -127 r = x / y if r != 1 { t.Errorf("-128 %s -127 = %d, want 1", "/", r) } y = -1 r = x / y if r != -128 { t.Errorf("-128 %s -1 = %d, want -128", "/", r) } y = 1 r = x / y if r != -128 { t.Errorf("-128 %s 1 = %d, want -128", "/", r) } y = 126 r = x / y if r != -1 { t.Errorf("-128 %s 126 = %d, want -1", "/", r) } y = 127 r = x / y if r != -1 { t.Errorf("-128 %s 127 = %d, want -1", "/", r) } x = -127 y = -128 r = x / y if r != 0 { t.Errorf("-127 %s -128 = %d, want 0", "/", r) } y = -127 r = x / y if r != 1 { t.Errorf("-127 %s -127 = %d, want 1", "/", r) } y = -1 r = x / y if r != 127 { t.Errorf("-127 %s -1 = %d, want 127", "/", r) } y = 1 r = x / y if r != -127 { t.Errorf("-127 %s 1 = %d, want -127", "/", r) } y = 126 r = x / y if r != -1 { t.Errorf("-127 %s 126 = %d, want -1", "/", r) } y = 127 r = x / y if r != -1 { t.Errorf("-127 %s 127 = %d, want -1", "/", r) } x = -1 y = -128 r = x / y if r != 0 { t.Errorf("-1 %s -128 = %d, want 0", "/", r) } y = -127 r = x / y if r != 0 { t.Errorf("-1 %s -127 = %d, want 0", "/", r) } y = -1 r = x / y if r != 1 { t.Errorf("-1 %s -1 = %d, want 1", "/", r) } y = 1 r = x / y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", "/", r) } y = 126 r = x / y if r != 0 { t.Errorf("-1 %s 126 = %d, want 0", "/", r) } y = 127 r = x / y if r != 0 { t.Errorf("-1 %s 127 = %d, want 0", "/", r) } x = 0 y = -128 r = x / y if r != 0 { t.Errorf("0 %s -128 = %d, want 0", "/", r) } y = -127 r = x / y if r != 0 { t.Errorf("0 %s -127 = %d, want 0", "/", r) } y = -1 r = x / y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "/", r) } y = 1 r = x / y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "/", r) } y = 126 r = x / y if r != 0 { t.Errorf("0 %s 126 = %d, want 0", "/", r) } y = 127 r = x / y if r != 0 { t.Errorf("0 %s 127 = %d, want 0", "/", r) } x = 1 y = -128 r = x / y if r != 0 { t.Errorf("1 %s -128 = %d, want 0", "/", r) } y = -127 r = x / y if r != 0 { t.Errorf("1 %s -127 = %d, want 0", "/", r) } y = -1 r = x / y if r != -1 { t.Errorf("1 %s -1 = %d, want -1", "/", r) } y = 1 r = x / y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "/", r) } y = 126 r = x / y if r != 0 { t.Errorf("1 %s 126 = %d, want 0", "/", r) } y = 127 r = x / y if r != 0 { t.Errorf("1 %s 127 = %d, want 0", "/", r) } x = 126 y = -128 r = x / y if r != 0 { t.Errorf("126 %s -128 = %d, want 0", "/", r) } y = -127 r = x / y if r != 0 { t.Errorf("126 %s -127 = %d, want 0", "/", r) } y = -1 r = x / y if r != -126 { t.Errorf("126 %s -1 = %d, want -126", "/", r) } y = 1 r = x / y if r != 126 { t.Errorf("126 %s 1 = %d, want 126", "/", r) } y = 126 r = x / y if r != 1 { t.Errorf("126 %s 126 = %d, want 1", "/", r) } y = 127 r = x / y if r != 0 { t.Errorf("126 %s 127 = %d, want 0", "/", r) } x = 127 y = -128 r = x / y if r != 0 { t.Errorf("127 %s -128 = %d, want 0", "/", r) } y = -127 r = x / y if r != -1 { t.Errorf("127 %s -127 = %d, want -1", "/", r) } y = -1 r = x / y if r != -127 { t.Errorf("127 %s -1 = %d, want -127", "/", r) } y = 1 r = x / y if r != 127 { t.Errorf("127 %s 1 = %d, want 127", "/", r) } y = 126 r = x / y if r != 1 { t.Errorf("127 %s 126 = %d, want 1", "/", r) } y = 127 r = x / y if r != 1 { t.Errorf("127 %s 127 = %d, want 1", "/", r) } } func TestConstFoldint8mul(t *testing.T) { var x, y, r int8 x = -128 y = -128 r = x * y if r != 0 { t.Errorf("-128 %s -128 = %d, want 0", "*", r) } y = -127 r = x * y if r != -128 { t.Errorf("-128 %s -127 = %d, want -128", "*", r) } y = -1 r = x * y if r != -128 { t.Errorf("-128 %s -1 = %d, want -128", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-128 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -128 { t.Errorf("-128 %s 1 = %d, want -128", "*", r) } y = 126 r = x * y if r != 0 { t.Errorf("-128 %s 126 = %d, want 0", "*", r) } y = 127 r = x * y if r != -128 { t.Errorf("-128 %s 127 = %d, want -128", "*", r) } x = -127 y = -128 r = x * y if r != -128 { t.Errorf("-127 %s -128 = %d, want -128", "*", r) } y = -127 r = x * y if r != 1 { t.Errorf("-127 %s -127 = %d, want 1", "*", r) } y = -1 r = x * y if r != 127 { t.Errorf("-127 %s -1 = %d, want 127", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-127 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -127 { t.Errorf("-127 %s 1 = %d, want -127", "*", r) } y = 126 r = x * y if r != 126 { t.Errorf("-127 %s 126 = %d, want 126", "*", r) } y = 127 r = x * y if r != -1 { t.Errorf("-127 %s 127 = %d, want -1", "*", r) } x = -1 y = -128 r = x * y if r != -128 { t.Errorf("-1 %s -128 = %d, want -128", "*", r) } y = -127 r = x * y if r != 127 { t.Errorf("-1 %s -127 = %d, want 127", "*", r) } y = -1 r = x * y if r != 1 { t.Errorf("-1 %s -1 = %d, want 1", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("-1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", "*", r) } y = 126 r = x * y if r != -126 { t.Errorf("-1 %s 126 = %d, want -126", "*", r) } y = 127 r = x * y if r != -127 { t.Errorf("-1 %s 127 = %d, want -127", "*", r) } x = 0 y = -128 r = x * y if r != 0 { t.Errorf("0 %s -128 = %d, want 0", "*", r) } y = -127 r = x * y if r != 0 { t.Errorf("0 %s -127 = %d, want 0", "*", r) } y = -1 r = x * y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "*", r) } y = 126 r = x * y if r != 0 { t.Errorf("0 %s 126 = %d, want 0", "*", r) } y = 127 r = x * y if r != 0 { t.Errorf("0 %s 127 = %d, want 0", "*", r) } x = 1 y = -128 r = x * y if r != -128 { t.Errorf("1 %s -128 = %d, want -128", "*", r) } y = -127 r = x * y if r != -127 { t.Errorf("1 %s -127 = %d, want -127", "*", r) } y = -1 r = x * y if r != -1 { t.Errorf("1 %s -1 = %d, want -1", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("1 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 1 { t.Errorf("1 %s 1 = %d, want 1", "*", r) } y = 126 r = x * y if r != 126 { t.Errorf("1 %s 126 = %d, want 126", "*", r) } y = 127 r = x * y if r != 127 { t.Errorf("1 %s 127 = %d, want 127", "*", r) } x = 126 y = -128 r = x * y if r != 0 { t.Errorf("126 %s -128 = %d, want 0", "*", r) } y = -127 r = x * y if r != 126 { t.Errorf("126 %s -127 = %d, want 126", "*", r) } y = -1 r = x * y if r != -126 { t.Errorf("126 %s -1 = %d, want -126", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("126 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 126 { t.Errorf("126 %s 1 = %d, want 126", "*", r) } y = 126 r = x * y if r != 4 { t.Errorf("126 %s 126 = %d, want 4", "*", r) } y = 127 r = x * y if r != -126 { t.Errorf("126 %s 127 = %d, want -126", "*", r) } x = 127 y = -128 r = x * y if r != -128 { t.Errorf("127 %s -128 = %d, want -128", "*", r) } y = -127 r = x * y if r != -1 { t.Errorf("127 %s -127 = %d, want -1", "*", r) } y = -1 r = x * y if r != -127 { t.Errorf("127 %s -1 = %d, want -127", "*", r) } y = 0 r = x * y if r != 0 { t.Errorf("127 %s 0 = %d, want 0", "*", r) } y = 1 r = x * y if r != 127 { t.Errorf("127 %s 1 = %d, want 127", "*", r) } y = 126 r = x * y if r != -126 { t.Errorf("127 %s 126 = %d, want -126", "*", r) } y = 127 r = x * y if r != 1 { t.Errorf("127 %s 127 = %d, want 1", "*", r) } } func TestConstFoldint8mod(t *testing.T) { var x, y, r int8 x = -128 y = -128 r = x % y if r != 0 { t.Errorf("-128 %s -128 = %d, want 0", "%", r) } y = -127 r = x % y if r != -1 { t.Errorf("-128 %s -127 = %d, want -1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-128 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-128 %s 1 = %d, want 0", "%", r) } y = 126 r = x % y if r != -2 { t.Errorf("-128 %s 126 = %d, want -2", "%", r) } y = 127 r = x % y if r != -1 { t.Errorf("-128 %s 127 = %d, want -1", "%", r) } x = -127 y = -128 r = x % y if r != -127 { t.Errorf("-127 %s -128 = %d, want -127", "%", r) } y = -127 r = x % y if r != 0 { t.Errorf("-127 %s -127 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-127 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-127 %s 1 = %d, want 0", "%", r) } y = 126 r = x % y if r != -1 { t.Errorf("-127 %s 126 = %d, want -1", "%", r) } y = 127 r = x % y if r != 0 { t.Errorf("-127 %s 127 = %d, want 0", "%", r) } x = -1 y = -128 r = x % y if r != -1 { t.Errorf("-1 %s -128 = %d, want -1", "%", r) } y = -127 r = x % y if r != -1 { t.Errorf("-1 %s -127 = %d, want -1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("-1 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("-1 %s 1 = %d, want 0", "%", r) } y = 126 r = x % y if r != -1 { t.Errorf("-1 %s 126 = %d, want -1", "%", r) } y = 127 r = x % y if r != -1 { t.Errorf("-1 %s 127 = %d, want -1", "%", r) } x = 0 y = -128 r = x % y if r != 0 { t.Errorf("0 %s -128 = %d, want 0", "%", r) } y = -127 r = x % y if r != 0 { t.Errorf("0 %s -127 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("0 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "%", r) } y = 126 r = x % y if r != 0 { t.Errorf("0 %s 126 = %d, want 0", "%", r) } y = 127 r = x % y if r != 0 { t.Errorf("0 %s 127 = %d, want 0", "%", r) } x = 1 y = -128 r = x % y if r != 1 { t.Errorf("1 %s -128 = %d, want 1", "%", r) } y = -127 r = x % y if r != 1 { t.Errorf("1 %s -127 = %d, want 1", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("1 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", "%", r) } y = 126 r = x % y if r != 1 { t.Errorf("1 %s 126 = %d, want 1", "%", r) } y = 127 r = x % y if r != 1 { t.Errorf("1 %s 127 = %d, want 1", "%", r) } x = 126 y = -128 r = x % y if r != 126 { t.Errorf("126 %s -128 = %d, want 126", "%", r) } y = -127 r = x % y if r != 126 { t.Errorf("126 %s -127 = %d, want 126", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("126 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("126 %s 1 = %d, want 0", "%", r) } y = 126 r = x % y if r != 0 { t.Errorf("126 %s 126 = %d, want 0", "%", r) } y = 127 r = x % y if r != 126 { t.Errorf("126 %s 127 = %d, want 126", "%", r) } x = 127 y = -128 r = x % y if r != 127 { t.Errorf("127 %s -128 = %d, want 127", "%", r) } y = -127 r = x % y if r != 0 { t.Errorf("127 %s -127 = %d, want 0", "%", r) } y = -1 r = x % y if r != 0 { t.Errorf("127 %s -1 = %d, want 0", "%", r) } y = 1 r = x % y if r != 0 { t.Errorf("127 %s 1 = %d, want 0", "%", r) } y = 126 r = x % y if r != 1 { t.Errorf("127 %s 126 = %d, want 1", "%", r) } y = 127 r = x % y if r != 0 { t.Errorf("127 %s 127 = %d, want 0", "%", r) } } func TestConstFolduint64uint64lsh(t *testing.T) { var x, r uint64 var y uint64 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 4294967296 y = 0 r = x << y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r) } y = 1 r = x << y if r != 8589934592 { t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("4294967296 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 18446744073709551615 y = 0 r = x << y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r) } y = 1 r = x << y if r != 18446744073709551614 { t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("18446744073709551615 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", "<<", r) } } func TestConstFolduint64uint64rsh(t *testing.T) { var x, r uint64 var y uint64 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 4294967296 y = 0 r = x >> y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r) } y = 1 r = x >> y if r != 2147483648 { t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("4294967296 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 18446744073709551615 y = 0 r = x >> y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r) } y = 1 r = x >> y if r != 9223372036854775807 { t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("18446744073709551615 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", ">>", r) } } func TestConstFolduint64uint32lsh(t *testing.T) { var x, r uint64 var y uint32 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r) } x = 4294967296 y = 0 r = x << y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r) } y = 1 r = x << y if r != 8589934592 { t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("4294967296 %s 4294967295 = %d, want 0", "<<", r) } x = 18446744073709551615 y = 0 r = x << y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r) } y = 1 r = x << y if r != 18446744073709551614 { t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("18446744073709551615 %s 4294967295 = %d, want 0", "<<", r) } } func TestConstFolduint64uint32rsh(t *testing.T) { var x, r uint64 var y uint32 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r) } x = 4294967296 y = 0 r = x >> y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r) } y = 1 r = x >> y if r != 2147483648 { t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("4294967296 %s 4294967295 = %d, want 0", ">>", r) } x = 18446744073709551615 y = 0 r = x >> y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r) } y = 1 r = x >> y if r != 9223372036854775807 { t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("18446744073709551615 %s 4294967295 = %d, want 0", ">>", r) } } func TestConstFolduint64uint16lsh(t *testing.T) { var x, r uint64 var y uint16 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", "<<", r) } x = 4294967296 y = 0 r = x << y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r) } y = 1 r = x << y if r != 8589934592 { t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("4294967296 %s 65535 = %d, want 0", "<<", r) } x = 18446744073709551615 y = 0 r = x << y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r) } y = 1 r = x << y if r != 18446744073709551614 { t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("18446744073709551615 %s 65535 = %d, want 0", "<<", r) } } func TestConstFolduint64uint16rsh(t *testing.T) { var x, r uint64 var y uint16 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", ">>", r) } x = 4294967296 y = 0 r = x >> y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r) } y = 1 r = x >> y if r != 2147483648 { t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("4294967296 %s 65535 = %d, want 0", ">>", r) } x = 18446744073709551615 y = 0 r = x >> y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r) } y = 1 r = x >> y if r != 9223372036854775807 { t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("18446744073709551615 %s 65535 = %d, want 0", ">>", r) } } func TestConstFolduint64uint8lsh(t *testing.T) { var x, r uint64 var y uint8 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", "<<", r) } x = 4294967296 y = 0 r = x << y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r) } y = 1 r = x << y if r != 8589934592 { t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("4294967296 %s 255 = %d, want 0", "<<", r) } x = 18446744073709551615 y = 0 r = x << y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r) } y = 1 r = x << y if r != 18446744073709551614 { t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("18446744073709551615 %s 255 = %d, want 0", "<<", r) } } func TestConstFolduint64uint8rsh(t *testing.T) { var x, r uint64 var y uint8 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", ">>", r) } x = 4294967296 y = 0 r = x >> y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r) } y = 1 r = x >> y if r != 2147483648 { t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("4294967296 %s 255 = %d, want 0", ">>", r) } x = 18446744073709551615 y = 0 r = x >> y if r != 18446744073709551615 { t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r) } y = 1 r = x >> y if r != 9223372036854775807 { t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("18446744073709551615 %s 255 = %d, want 0", ">>", r) } } func TestConstFoldint64uint64lsh(t *testing.T) { var x, r int64 var y uint64 x = -9223372036854775808 y = 0 r = x << y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-9223372036854775808 %s 18446744073709551615 = %d, want 0", "<<", r) } x = -9223372036854775807 y = 0 r = x << y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-9223372036854775807 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-9223372036854775807 %s 18446744073709551615 = %d, want 0", "<<", r) } x = -4294967296 y = 0 r = x << y if r != -4294967296 { t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r) } y = 1 r = x << y if r != -8589934592 { t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-4294967296 %s 18446744073709551615 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 4294967296 y = 0 r = x << y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r) } y = 1 r = x << y if r != 8589934592 { t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("4294967296 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 9223372036854775806 y = 0 r = x << y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("9223372036854775806 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("9223372036854775806 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 9223372036854775807 y = 0 r = x << y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("9223372036854775807 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("9223372036854775807 %s 18446744073709551615 = %d, want 0", "<<", r) } } func TestConstFoldint64uint64rsh(t *testing.T) { var x, r int64 var y uint64 x = -9223372036854775808 y = 0 r = x >> y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r) } y = 1 r = x >> y if r != -4611686018427387904 { t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-9223372036854775808 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-9223372036854775808 %s 18446744073709551615 = %d, want -1", ">>", r) } x = -9223372036854775807 y = 0 r = x >> y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r) } y = 1 r = x >> y if r != -4611686018427387904 { t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-9223372036854775807 %s 18446744073709551615 = %d, want -1", ">>", r) } x = -4294967296 y = 0 r = x >> y if r != -4294967296 { t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r) } y = 1 r = x >> y if r != -2147483648 { t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-4294967296 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-4294967296 %s 18446744073709551615 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 4294967296 y = 0 r = x >> y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r) } y = 1 r = x >> y if r != 2147483648 { t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("4294967296 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 9223372036854775806 y = 0 r = x >> y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r) } y = 1 r = x >> y if r != 4611686018427387903 { t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("9223372036854775806 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("9223372036854775806 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 9223372036854775807 y = 0 r = x >> y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r) } y = 1 r = x >> y if r != 4611686018427387903 { t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("9223372036854775807 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("9223372036854775807 %s 18446744073709551615 = %d, want 0", ">>", r) } } func TestConstFoldint64uint32lsh(t *testing.T) { var x, r int64 var y uint32 x = -9223372036854775808 y = 0 r = x << y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-9223372036854775808 %s 4294967295 = %d, want 0", "<<", r) } x = -9223372036854775807 y = 0 r = x << y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-9223372036854775807 %s 4294967295 = %d, want 0", "<<", r) } x = -4294967296 y = 0 r = x << y if r != -4294967296 { t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r) } y = 1 r = x << y if r != -8589934592 { t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-4294967296 %s 4294967295 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r) } x = 4294967296 y = 0 r = x << y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r) } y = 1 r = x << y if r != 8589934592 { t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("4294967296 %s 4294967295 = %d, want 0", "<<", r) } x = 9223372036854775806 y = 0 r = x << y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("9223372036854775806 %s 4294967295 = %d, want 0", "<<", r) } x = 9223372036854775807 y = 0 r = x << y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("9223372036854775807 %s 4294967295 = %d, want 0", "<<", r) } } func TestConstFoldint64uint32rsh(t *testing.T) { var x, r int64 var y uint32 x = -9223372036854775808 y = 0 r = x >> y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r) } y = 1 r = x >> y if r != -4611686018427387904 { t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-9223372036854775808 %s 4294967295 = %d, want -1", ">>", r) } x = -9223372036854775807 y = 0 r = x >> y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r) } y = 1 r = x >> y if r != -4611686018427387904 { t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-9223372036854775807 %s 4294967295 = %d, want -1", ">>", r) } x = -4294967296 y = 0 r = x >> y if r != -4294967296 { t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r) } y = 1 r = x >> y if r != -2147483648 { t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-4294967296 %s 4294967295 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r) } x = 4294967296 y = 0 r = x >> y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r) } y = 1 r = x >> y if r != 2147483648 { t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("4294967296 %s 4294967295 = %d, want 0", ">>", r) } x = 9223372036854775806 y = 0 r = x >> y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r) } y = 1 r = x >> y if r != 4611686018427387903 { t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("9223372036854775806 %s 4294967295 = %d, want 0", ">>", r) } x = 9223372036854775807 y = 0 r = x >> y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r) } y = 1 r = x >> y if r != 4611686018427387903 { t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("9223372036854775807 %s 4294967295 = %d, want 0", ">>", r) } } func TestConstFoldint64uint16lsh(t *testing.T) { var x, r int64 var y uint16 x = -9223372036854775808 y = 0 r = x << y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-9223372036854775808 %s 65535 = %d, want 0", "<<", r) } x = -9223372036854775807 y = 0 r = x << y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-9223372036854775807 %s 65535 = %d, want 0", "<<", r) } x = -4294967296 y = 0 r = x << y if r != -4294967296 { t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r) } y = 1 r = x << y if r != -8589934592 { t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-4294967296 %s 65535 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-1 %s 65535 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", "<<", r) } x = 4294967296 y = 0 r = x << y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r) } y = 1 r = x << y if r != 8589934592 { t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("4294967296 %s 65535 = %d, want 0", "<<", r) } x = 9223372036854775806 y = 0 r = x << y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("9223372036854775806 %s 65535 = %d, want 0", "<<", r) } x = 9223372036854775807 y = 0 r = x << y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("9223372036854775807 %s 65535 = %d, want 0", "<<", r) } } func TestConstFoldint64uint16rsh(t *testing.T) { var x, r int64 var y uint16 x = -9223372036854775808 y = 0 r = x >> y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r) } y = 1 r = x >> y if r != -4611686018427387904 { t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-9223372036854775808 %s 65535 = %d, want -1", ">>", r) } x = -9223372036854775807 y = 0 r = x >> y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r) } y = 1 r = x >> y if r != -4611686018427387904 { t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-9223372036854775807 %s 65535 = %d, want -1", ">>", r) } x = -4294967296 y = 0 r = x >> y if r != -4294967296 { t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r) } y = 1 r = x >> y if r != -2147483648 { t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-4294967296 %s 65535 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-1 %s 65535 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", ">>", r) } x = 4294967296 y = 0 r = x >> y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r) } y = 1 r = x >> y if r != 2147483648 { t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("4294967296 %s 65535 = %d, want 0", ">>", r) } x = 9223372036854775806 y = 0 r = x >> y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r) } y = 1 r = x >> y if r != 4611686018427387903 { t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("9223372036854775806 %s 65535 = %d, want 0", ">>", r) } x = 9223372036854775807 y = 0 r = x >> y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r) } y = 1 r = x >> y if r != 4611686018427387903 { t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("9223372036854775807 %s 65535 = %d, want 0", ">>", r) } } func TestConstFoldint64uint8lsh(t *testing.T) { var x, r int64 var y uint8 x = -9223372036854775808 y = 0 r = x << y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-9223372036854775808 %s 255 = %d, want 0", "<<", r) } x = -9223372036854775807 y = 0 r = x << y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-9223372036854775807 %s 255 = %d, want 0", "<<", r) } x = -4294967296 y = 0 r = x << y if r != -4294967296 { t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r) } y = 1 r = x << y if r != -8589934592 { t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-4294967296 %s 255 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-1 %s 255 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", "<<", r) } x = 4294967296 y = 0 r = x << y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r) } y = 1 r = x << y if r != 8589934592 { t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("4294967296 %s 255 = %d, want 0", "<<", r) } x = 9223372036854775806 y = 0 r = x << y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("9223372036854775806 %s 255 = %d, want 0", "<<", r) } x = 9223372036854775807 y = 0 r = x << y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("9223372036854775807 %s 255 = %d, want 0", "<<", r) } } func TestConstFoldint64uint8rsh(t *testing.T) { var x, r int64 var y uint8 x = -9223372036854775808 y = 0 r = x >> y if r != -9223372036854775808 { t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r) } y = 1 r = x >> y if r != -4611686018427387904 { t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-9223372036854775808 %s 255 = %d, want -1", ">>", r) } x = -9223372036854775807 y = 0 r = x >> y if r != -9223372036854775807 { t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r) } y = 1 r = x >> y if r != -4611686018427387904 { t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-9223372036854775807 %s 255 = %d, want -1", ">>", r) } x = -4294967296 y = 0 r = x >> y if r != -4294967296 { t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r) } y = 1 r = x >> y if r != -2147483648 { t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-4294967296 %s 255 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-1 %s 255 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", ">>", r) } x = 4294967296 y = 0 r = x >> y if r != 4294967296 { t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r) } y = 1 r = x >> y if r != 2147483648 { t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("4294967296 %s 255 = %d, want 0", ">>", r) } x = 9223372036854775806 y = 0 r = x >> y if r != 9223372036854775806 { t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r) } y = 1 r = x >> y if r != 4611686018427387903 { t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("9223372036854775806 %s 255 = %d, want 0", ">>", r) } x = 9223372036854775807 y = 0 r = x >> y if r != 9223372036854775807 { t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r) } y = 1 r = x >> y if r != 4611686018427387903 { t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("9223372036854775807 %s 255 = %d, want 0", ">>", r) } } func TestConstFolduint32uint64lsh(t *testing.T) { var x, r uint32 var y uint64 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 4294967295 y = 0 r = x << y if r != 4294967295 { t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r) } y = 1 r = x << y if r != 4294967294 { t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("4294967295 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("4294967295 %s 18446744073709551615 = %d, want 0", "<<", r) } } func TestConstFolduint32uint64rsh(t *testing.T) { var x, r uint32 var y uint64 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 4294967295 y = 0 r = x >> y if r != 4294967295 { t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r) } y = 1 r = x >> y if r != 2147483647 { t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("4294967295 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("4294967295 %s 18446744073709551615 = %d, want 0", ">>", r) } } func TestConstFolduint32uint32lsh(t *testing.T) { var x, r uint32 var y uint32 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r) } x = 4294967295 y = 0 r = x << y if r != 4294967295 { t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r) } y = 1 r = x << y if r != 4294967294 { t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("4294967295 %s 4294967295 = %d, want 0", "<<", r) } } func TestConstFolduint32uint32rsh(t *testing.T) { var x, r uint32 var y uint32 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r) } x = 4294967295 y = 0 r = x >> y if r != 4294967295 { t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r) } y = 1 r = x >> y if r != 2147483647 { t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("4294967295 %s 4294967295 = %d, want 0", ">>", r) } } func TestConstFolduint32uint16lsh(t *testing.T) { var x, r uint32 var y uint16 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", "<<", r) } x = 4294967295 y = 0 r = x << y if r != 4294967295 { t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r) } y = 1 r = x << y if r != 4294967294 { t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("4294967295 %s 65535 = %d, want 0", "<<", r) } } func TestConstFolduint32uint16rsh(t *testing.T) { var x, r uint32 var y uint16 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", ">>", r) } x = 4294967295 y = 0 r = x >> y if r != 4294967295 { t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r) } y = 1 r = x >> y if r != 2147483647 { t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("4294967295 %s 65535 = %d, want 0", ">>", r) } } func TestConstFolduint32uint8lsh(t *testing.T) { var x, r uint32 var y uint8 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", "<<", r) } x = 4294967295 y = 0 r = x << y if r != 4294967295 { t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r) } y = 1 r = x << y if r != 4294967294 { t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("4294967295 %s 255 = %d, want 0", "<<", r) } } func TestConstFolduint32uint8rsh(t *testing.T) { var x, r uint32 var y uint8 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", ">>", r) } x = 4294967295 y = 0 r = x >> y if r != 4294967295 { t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r) } y = 1 r = x >> y if r != 2147483647 { t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("4294967295 %s 255 = %d, want 0", ">>", r) } } func TestConstFoldint32uint64lsh(t *testing.T) { var x, r int32 var y uint64 x = -2147483648 y = 0 r = x << y if r != -2147483648 { t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-2147483648 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-2147483648 %s 18446744073709551615 = %d, want 0", "<<", r) } x = -2147483647 y = 0 r = x << y if r != -2147483647 { t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-2147483647 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-2147483647 %s 18446744073709551615 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 2147483647 y = 0 r = x << y if r != 2147483647 { t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("2147483647 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("2147483647 %s 18446744073709551615 = %d, want 0", "<<", r) } } func TestConstFoldint32uint64rsh(t *testing.T) { var x, r int32 var y uint64 x = -2147483648 y = 0 r = x >> y if r != -2147483648 { t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r) } y = 1 r = x >> y if r != -1073741824 { t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-2147483648 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-2147483648 %s 18446744073709551615 = %d, want -1", ">>", r) } x = -2147483647 y = 0 r = x >> y if r != -2147483647 { t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r) } y = 1 r = x >> y if r != -1073741824 { t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-2147483647 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-2147483647 %s 18446744073709551615 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 2147483647 y = 0 r = x >> y if r != 2147483647 { t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r) } y = 1 r = x >> y if r != 1073741823 { t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("2147483647 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("2147483647 %s 18446744073709551615 = %d, want 0", ">>", r) } } func TestConstFoldint32uint32lsh(t *testing.T) { var x, r int32 var y uint32 x = -2147483648 y = 0 r = x << y if r != -2147483648 { t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-2147483648 %s 4294967295 = %d, want 0", "<<", r) } x = -2147483647 y = 0 r = x << y if r != -2147483647 { t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-2147483647 %s 4294967295 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r) } x = 2147483647 y = 0 r = x << y if r != 2147483647 { t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("2147483647 %s 4294967295 = %d, want 0", "<<", r) } } func TestConstFoldint32uint32rsh(t *testing.T) { var x, r int32 var y uint32 x = -2147483648 y = 0 r = x >> y if r != -2147483648 { t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r) } y = 1 r = x >> y if r != -1073741824 { t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-2147483648 %s 4294967295 = %d, want -1", ">>", r) } x = -2147483647 y = 0 r = x >> y if r != -2147483647 { t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r) } y = 1 r = x >> y if r != -1073741824 { t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-2147483647 %s 4294967295 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r) } x = 2147483647 y = 0 r = x >> y if r != 2147483647 { t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r) } y = 1 r = x >> y if r != 1073741823 { t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("2147483647 %s 4294967295 = %d, want 0", ">>", r) } } func TestConstFoldint32uint16lsh(t *testing.T) { var x, r int32 var y uint16 x = -2147483648 y = 0 r = x << y if r != -2147483648 { t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-2147483648 %s 65535 = %d, want 0", "<<", r) } x = -2147483647 y = 0 r = x << y if r != -2147483647 { t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-2147483647 %s 65535 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-1 %s 65535 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", "<<", r) } x = 2147483647 y = 0 r = x << y if r != 2147483647 { t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("2147483647 %s 65535 = %d, want 0", "<<", r) } } func TestConstFoldint32uint16rsh(t *testing.T) { var x, r int32 var y uint16 x = -2147483648 y = 0 r = x >> y if r != -2147483648 { t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r) } y = 1 r = x >> y if r != -1073741824 { t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-2147483648 %s 65535 = %d, want -1", ">>", r) } x = -2147483647 y = 0 r = x >> y if r != -2147483647 { t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r) } y = 1 r = x >> y if r != -1073741824 { t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-2147483647 %s 65535 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-1 %s 65535 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", ">>", r) } x = 2147483647 y = 0 r = x >> y if r != 2147483647 { t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r) } y = 1 r = x >> y if r != 1073741823 { t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("2147483647 %s 65535 = %d, want 0", ">>", r) } } func TestConstFoldint32uint8lsh(t *testing.T) { var x, r int32 var y uint8 x = -2147483648 y = 0 r = x << y if r != -2147483648 { t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-2147483648 %s 255 = %d, want 0", "<<", r) } x = -2147483647 y = 0 r = x << y if r != -2147483647 { t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-2147483647 %s 255 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-1 %s 255 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", "<<", r) } x = 2147483647 y = 0 r = x << y if r != 2147483647 { t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("2147483647 %s 255 = %d, want 0", "<<", r) } } func TestConstFoldint32uint8rsh(t *testing.T) { var x, r int32 var y uint8 x = -2147483648 y = 0 r = x >> y if r != -2147483648 { t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r) } y = 1 r = x >> y if r != -1073741824 { t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-2147483648 %s 255 = %d, want -1", ">>", r) } x = -2147483647 y = 0 r = x >> y if r != -2147483647 { t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r) } y = 1 r = x >> y if r != -1073741824 { t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-2147483647 %s 255 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-1 %s 255 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", ">>", r) } x = 2147483647 y = 0 r = x >> y if r != 2147483647 { t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r) } y = 1 r = x >> y if r != 1073741823 { t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("2147483647 %s 255 = %d, want 0", ">>", r) } } func TestConstFolduint16uint64lsh(t *testing.T) { var x, r uint16 var y uint64 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 65535 y = 0 r = x << y if r != 65535 { t.Errorf("65535 %s 0 = %d, want 65535", "<<", r) } y = 1 r = x << y if r != 65534 { t.Errorf("65535 %s 1 = %d, want 65534", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("65535 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("65535 %s 18446744073709551615 = %d, want 0", "<<", r) } } func TestConstFolduint16uint64rsh(t *testing.T) { var x, r uint16 var y uint64 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 65535 y = 0 r = x >> y if r != 65535 { t.Errorf("65535 %s 0 = %d, want 65535", ">>", r) } y = 1 r = x >> y if r != 32767 { t.Errorf("65535 %s 1 = %d, want 32767", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("65535 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("65535 %s 18446744073709551615 = %d, want 0", ">>", r) } } func TestConstFolduint16uint32lsh(t *testing.T) { var x, r uint16 var y uint32 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r) } x = 65535 y = 0 r = x << y if r != 65535 { t.Errorf("65535 %s 0 = %d, want 65535", "<<", r) } y = 1 r = x << y if r != 65534 { t.Errorf("65535 %s 1 = %d, want 65534", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("65535 %s 4294967295 = %d, want 0", "<<", r) } } func TestConstFolduint16uint32rsh(t *testing.T) { var x, r uint16 var y uint32 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r) } x = 65535 y = 0 r = x >> y if r != 65535 { t.Errorf("65535 %s 0 = %d, want 65535", ">>", r) } y = 1 r = x >> y if r != 32767 { t.Errorf("65535 %s 1 = %d, want 32767", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("65535 %s 4294967295 = %d, want 0", ">>", r) } } func TestConstFolduint16uint16lsh(t *testing.T) { var x, r uint16 var y uint16 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", "<<", r) } x = 65535 y = 0 r = x << y if r != 65535 { t.Errorf("65535 %s 0 = %d, want 65535", "<<", r) } y = 1 r = x << y if r != 65534 { t.Errorf("65535 %s 1 = %d, want 65534", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("65535 %s 65535 = %d, want 0", "<<", r) } } func TestConstFolduint16uint16rsh(t *testing.T) { var x, r uint16 var y uint16 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", ">>", r) } x = 65535 y = 0 r = x >> y if r != 65535 { t.Errorf("65535 %s 0 = %d, want 65535", ">>", r) } y = 1 r = x >> y if r != 32767 { t.Errorf("65535 %s 1 = %d, want 32767", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("65535 %s 65535 = %d, want 0", ">>", r) } } func TestConstFolduint16uint8lsh(t *testing.T) { var x, r uint16 var y uint8 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", "<<", r) } x = 65535 y = 0 r = x << y if r != 65535 { t.Errorf("65535 %s 0 = %d, want 65535", "<<", r) } y = 1 r = x << y if r != 65534 { t.Errorf("65535 %s 1 = %d, want 65534", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("65535 %s 255 = %d, want 0", "<<", r) } } func TestConstFolduint16uint8rsh(t *testing.T) { var x, r uint16 var y uint8 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", ">>", r) } x = 65535 y = 0 r = x >> y if r != 65535 { t.Errorf("65535 %s 0 = %d, want 65535", ">>", r) } y = 1 r = x >> y if r != 32767 { t.Errorf("65535 %s 1 = %d, want 32767", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("65535 %s 255 = %d, want 0", ">>", r) } } func TestConstFoldint16uint64lsh(t *testing.T) { var x, r int16 var y uint64 x = -32768 y = 0 r = x << y if r != -32768 { t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-32768 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-32768 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-32768 %s 18446744073709551615 = %d, want 0", "<<", r) } x = -32767 y = 0 r = x << y if r != -32767 { t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-32767 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-32767 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-32767 %s 18446744073709551615 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 32766 y = 0 r = x << y if r != 32766 { t.Errorf("32766 %s 0 = %d, want 32766", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("32766 %s 1 = %d, want -4", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("32766 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("32766 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 32767 y = 0 r = x << y if r != 32767 { t.Errorf("32767 %s 0 = %d, want 32767", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("32767 %s 1 = %d, want -2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("32767 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("32767 %s 18446744073709551615 = %d, want 0", "<<", r) } } func TestConstFoldint16uint64rsh(t *testing.T) { var x, r int16 var y uint64 x = -32768 y = 0 r = x >> y if r != -32768 { t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r) } y = 1 r = x >> y if r != -16384 { t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-32768 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-32768 %s 18446744073709551615 = %d, want -1", ">>", r) } x = -32767 y = 0 r = x >> y if r != -32767 { t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r) } y = 1 r = x >> y if r != -16384 { t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-32767 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-32767 %s 18446744073709551615 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 32766 y = 0 r = x >> y if r != 32766 { t.Errorf("32766 %s 0 = %d, want 32766", ">>", r) } y = 1 r = x >> y if r != 16383 { t.Errorf("32766 %s 1 = %d, want 16383", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("32766 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("32766 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 32767 y = 0 r = x >> y if r != 32767 { t.Errorf("32767 %s 0 = %d, want 32767", ">>", r) } y = 1 r = x >> y if r != 16383 { t.Errorf("32767 %s 1 = %d, want 16383", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("32767 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("32767 %s 18446744073709551615 = %d, want 0", ">>", r) } } func TestConstFoldint16uint32lsh(t *testing.T) { var x, r int16 var y uint32 x = -32768 y = 0 r = x << y if r != -32768 { t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-32768 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-32768 %s 4294967295 = %d, want 0", "<<", r) } x = -32767 y = 0 r = x << y if r != -32767 { t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-32767 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-32767 %s 4294967295 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r) } x = 32766 y = 0 r = x << y if r != 32766 { t.Errorf("32766 %s 0 = %d, want 32766", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("32766 %s 1 = %d, want -4", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("32766 %s 4294967295 = %d, want 0", "<<", r) } x = 32767 y = 0 r = x << y if r != 32767 { t.Errorf("32767 %s 0 = %d, want 32767", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("32767 %s 1 = %d, want -2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("32767 %s 4294967295 = %d, want 0", "<<", r) } } func TestConstFoldint16uint32rsh(t *testing.T) { var x, r int16 var y uint32 x = -32768 y = 0 r = x >> y if r != -32768 { t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r) } y = 1 r = x >> y if r != -16384 { t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-32768 %s 4294967295 = %d, want -1", ">>", r) } x = -32767 y = 0 r = x >> y if r != -32767 { t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r) } y = 1 r = x >> y if r != -16384 { t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-32767 %s 4294967295 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r) } x = 32766 y = 0 r = x >> y if r != 32766 { t.Errorf("32766 %s 0 = %d, want 32766", ">>", r) } y = 1 r = x >> y if r != 16383 { t.Errorf("32766 %s 1 = %d, want 16383", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("32766 %s 4294967295 = %d, want 0", ">>", r) } x = 32767 y = 0 r = x >> y if r != 32767 { t.Errorf("32767 %s 0 = %d, want 32767", ">>", r) } y = 1 r = x >> y if r != 16383 { t.Errorf("32767 %s 1 = %d, want 16383", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("32767 %s 4294967295 = %d, want 0", ">>", r) } } func TestConstFoldint16uint16lsh(t *testing.T) { var x, r int16 var y uint16 x = -32768 y = 0 r = x << y if r != -32768 { t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-32768 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-32768 %s 65535 = %d, want 0", "<<", r) } x = -32767 y = 0 r = x << y if r != -32767 { t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-32767 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-32767 %s 65535 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-1 %s 65535 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", "<<", r) } x = 32766 y = 0 r = x << y if r != 32766 { t.Errorf("32766 %s 0 = %d, want 32766", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("32766 %s 1 = %d, want -4", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("32766 %s 65535 = %d, want 0", "<<", r) } x = 32767 y = 0 r = x << y if r != 32767 { t.Errorf("32767 %s 0 = %d, want 32767", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("32767 %s 1 = %d, want -2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("32767 %s 65535 = %d, want 0", "<<", r) } } func TestConstFoldint16uint16rsh(t *testing.T) { var x, r int16 var y uint16 x = -32768 y = 0 r = x >> y if r != -32768 { t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r) } y = 1 r = x >> y if r != -16384 { t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-32768 %s 65535 = %d, want -1", ">>", r) } x = -32767 y = 0 r = x >> y if r != -32767 { t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r) } y = 1 r = x >> y if r != -16384 { t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-32767 %s 65535 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-1 %s 65535 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", ">>", r) } x = 32766 y = 0 r = x >> y if r != 32766 { t.Errorf("32766 %s 0 = %d, want 32766", ">>", r) } y = 1 r = x >> y if r != 16383 { t.Errorf("32766 %s 1 = %d, want 16383", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("32766 %s 65535 = %d, want 0", ">>", r) } x = 32767 y = 0 r = x >> y if r != 32767 { t.Errorf("32767 %s 0 = %d, want 32767", ">>", r) } y = 1 r = x >> y if r != 16383 { t.Errorf("32767 %s 1 = %d, want 16383", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("32767 %s 65535 = %d, want 0", ">>", r) } } func TestConstFoldint16uint8lsh(t *testing.T) { var x, r int16 var y uint8 x = -32768 y = 0 r = x << y if r != -32768 { t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-32768 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-32768 %s 255 = %d, want 0", "<<", r) } x = -32767 y = 0 r = x << y if r != -32767 { t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-32767 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-32767 %s 255 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-1 %s 255 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", "<<", r) } x = 32766 y = 0 r = x << y if r != 32766 { t.Errorf("32766 %s 0 = %d, want 32766", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("32766 %s 1 = %d, want -4", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("32766 %s 255 = %d, want 0", "<<", r) } x = 32767 y = 0 r = x << y if r != 32767 { t.Errorf("32767 %s 0 = %d, want 32767", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("32767 %s 1 = %d, want -2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("32767 %s 255 = %d, want 0", "<<", r) } } func TestConstFoldint16uint8rsh(t *testing.T) { var x, r int16 var y uint8 x = -32768 y = 0 r = x >> y if r != -32768 { t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r) } y = 1 r = x >> y if r != -16384 { t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-32768 %s 255 = %d, want -1", ">>", r) } x = -32767 y = 0 r = x >> y if r != -32767 { t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r) } y = 1 r = x >> y if r != -16384 { t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-32767 %s 255 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-1 %s 255 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", ">>", r) } x = 32766 y = 0 r = x >> y if r != 32766 { t.Errorf("32766 %s 0 = %d, want 32766", ">>", r) } y = 1 r = x >> y if r != 16383 { t.Errorf("32766 %s 1 = %d, want 16383", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("32766 %s 255 = %d, want 0", ">>", r) } x = 32767 y = 0 r = x >> y if r != 32767 { t.Errorf("32767 %s 0 = %d, want 32767", ">>", r) } y = 1 r = x >> y if r != 16383 { t.Errorf("32767 %s 1 = %d, want 16383", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("32767 %s 255 = %d, want 0", ">>", r) } } func TestConstFolduint8uint64lsh(t *testing.T) { var x, r uint8 var y uint64 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 255 y = 0 r = x << y if r != 255 { t.Errorf("255 %s 0 = %d, want 255", "<<", r) } y = 1 r = x << y if r != 254 { t.Errorf("255 %s 1 = %d, want 254", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("255 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("255 %s 18446744073709551615 = %d, want 0", "<<", r) } } func TestConstFolduint8uint64rsh(t *testing.T) { var x, r uint8 var y uint64 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 255 y = 0 r = x >> y if r != 255 { t.Errorf("255 %s 0 = %d, want 255", ">>", r) } y = 1 r = x >> y if r != 127 { t.Errorf("255 %s 1 = %d, want 127", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("255 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("255 %s 18446744073709551615 = %d, want 0", ">>", r) } } func TestConstFolduint8uint32lsh(t *testing.T) { var x, r uint8 var y uint32 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r) } x = 255 y = 0 r = x << y if r != 255 { t.Errorf("255 %s 0 = %d, want 255", "<<", r) } y = 1 r = x << y if r != 254 { t.Errorf("255 %s 1 = %d, want 254", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("255 %s 4294967295 = %d, want 0", "<<", r) } } func TestConstFolduint8uint32rsh(t *testing.T) { var x, r uint8 var y uint32 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r) } x = 255 y = 0 r = x >> y if r != 255 { t.Errorf("255 %s 0 = %d, want 255", ">>", r) } y = 1 r = x >> y if r != 127 { t.Errorf("255 %s 1 = %d, want 127", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("255 %s 4294967295 = %d, want 0", ">>", r) } } func TestConstFolduint8uint16lsh(t *testing.T) { var x, r uint8 var y uint16 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", "<<", r) } x = 255 y = 0 r = x << y if r != 255 { t.Errorf("255 %s 0 = %d, want 255", "<<", r) } y = 1 r = x << y if r != 254 { t.Errorf("255 %s 1 = %d, want 254", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("255 %s 65535 = %d, want 0", "<<", r) } } func TestConstFolduint8uint16rsh(t *testing.T) { var x, r uint8 var y uint16 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", ">>", r) } x = 255 y = 0 r = x >> y if r != 255 { t.Errorf("255 %s 0 = %d, want 255", ">>", r) } y = 1 r = x >> y if r != 127 { t.Errorf("255 %s 1 = %d, want 127", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("255 %s 65535 = %d, want 0", ">>", r) } } func TestConstFolduint8uint8lsh(t *testing.T) { var x, r uint8 var y uint8 x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", "<<", r) } x = 255 y = 0 r = x << y if r != 255 { t.Errorf("255 %s 0 = %d, want 255", "<<", r) } y = 1 r = x << y if r != 254 { t.Errorf("255 %s 1 = %d, want 254", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("255 %s 255 = %d, want 0", "<<", r) } } func TestConstFolduint8uint8rsh(t *testing.T) { var x, r uint8 var y uint8 x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", ">>", r) } x = 255 y = 0 r = x >> y if r != 255 { t.Errorf("255 %s 0 = %d, want 255", ">>", r) } y = 1 r = x >> y if r != 127 { t.Errorf("255 %s 1 = %d, want 127", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("255 %s 255 = %d, want 0", ">>", r) } } func TestConstFoldint8uint64lsh(t *testing.T) { var x, r int8 var y uint64 x = -128 y = 0 r = x << y if r != -128 { t.Errorf("-128 %s 0 = %d, want -128", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-128 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-128 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-128 %s 18446744073709551615 = %d, want 0", "<<", r) } x = -127 y = 0 r = x << y if r != -127 { t.Errorf("-127 %s 0 = %d, want -127", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-127 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-127 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-127 %s 18446744073709551615 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 126 y = 0 r = x << y if r != 126 { t.Errorf("126 %s 0 = %d, want 126", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("126 %s 1 = %d, want -4", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("126 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("126 %s 18446744073709551615 = %d, want 0", "<<", r) } x = 127 y = 0 r = x << y if r != 127 { t.Errorf("127 %s 0 = %d, want 127", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("127 %s 1 = %d, want -2", "<<", r) } y = 4294967296 r = x << y if r != 0 { t.Errorf("127 %s 4294967296 = %d, want 0", "<<", r) } y = 18446744073709551615 r = x << y if r != 0 { t.Errorf("127 %s 18446744073709551615 = %d, want 0", "<<", r) } } func TestConstFoldint8uint64rsh(t *testing.T) { var x, r int8 var y uint64 x = -128 y = 0 r = x >> y if r != -128 { t.Errorf("-128 %s 0 = %d, want -128", ">>", r) } y = 1 r = x >> y if r != -64 { t.Errorf("-128 %s 1 = %d, want -64", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-128 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-128 %s 18446744073709551615 = %d, want -1", ">>", r) } x = -127 y = 0 r = x >> y if r != -127 { t.Errorf("-127 %s 0 = %d, want -127", ">>", r) } y = 1 r = x >> y if r != -64 { t.Errorf("-127 %s 1 = %d, want -64", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-127 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-127 %s 18446744073709551615 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 4294967296 r = x >> y if r != -1 { t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r) } y = 18446744073709551615 r = x >> y if r != -1 { t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 126 y = 0 r = x >> y if r != 126 { t.Errorf("126 %s 0 = %d, want 126", ">>", r) } y = 1 r = x >> y if r != 63 { t.Errorf("126 %s 1 = %d, want 63", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("126 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("126 %s 18446744073709551615 = %d, want 0", ">>", r) } x = 127 y = 0 r = x >> y if r != 127 { t.Errorf("127 %s 0 = %d, want 127", ">>", r) } y = 1 r = x >> y if r != 63 { t.Errorf("127 %s 1 = %d, want 63", ">>", r) } y = 4294967296 r = x >> y if r != 0 { t.Errorf("127 %s 4294967296 = %d, want 0", ">>", r) } y = 18446744073709551615 r = x >> y if r != 0 { t.Errorf("127 %s 18446744073709551615 = %d, want 0", ">>", r) } } func TestConstFoldint8uint32lsh(t *testing.T) { var x, r int8 var y uint32 x = -128 y = 0 r = x << y if r != -128 { t.Errorf("-128 %s 0 = %d, want -128", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-128 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-128 %s 4294967295 = %d, want 0", "<<", r) } x = -127 y = 0 r = x << y if r != -127 { t.Errorf("-127 %s 0 = %d, want -127", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-127 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-127 %s 4294967295 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r) } x = 126 y = 0 r = x << y if r != 126 { t.Errorf("126 %s 0 = %d, want 126", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("126 %s 1 = %d, want -4", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("126 %s 4294967295 = %d, want 0", "<<", r) } x = 127 y = 0 r = x << y if r != 127 { t.Errorf("127 %s 0 = %d, want 127", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("127 %s 1 = %d, want -2", "<<", r) } y = 4294967295 r = x << y if r != 0 { t.Errorf("127 %s 4294967295 = %d, want 0", "<<", r) } } func TestConstFoldint8uint32rsh(t *testing.T) { var x, r int8 var y uint32 x = -128 y = 0 r = x >> y if r != -128 { t.Errorf("-128 %s 0 = %d, want -128", ">>", r) } y = 1 r = x >> y if r != -64 { t.Errorf("-128 %s 1 = %d, want -64", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-128 %s 4294967295 = %d, want -1", ">>", r) } x = -127 y = 0 r = x >> y if r != -127 { t.Errorf("-127 %s 0 = %d, want -127", ">>", r) } y = 1 r = x >> y if r != -64 { t.Errorf("-127 %s 1 = %d, want -64", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-127 %s 4294967295 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 4294967295 r = x >> y if r != -1 { t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r) } x = 126 y = 0 r = x >> y if r != 126 { t.Errorf("126 %s 0 = %d, want 126", ">>", r) } y = 1 r = x >> y if r != 63 { t.Errorf("126 %s 1 = %d, want 63", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("126 %s 4294967295 = %d, want 0", ">>", r) } x = 127 y = 0 r = x >> y if r != 127 { t.Errorf("127 %s 0 = %d, want 127", ">>", r) } y = 1 r = x >> y if r != 63 { t.Errorf("127 %s 1 = %d, want 63", ">>", r) } y = 4294967295 r = x >> y if r != 0 { t.Errorf("127 %s 4294967295 = %d, want 0", ">>", r) } } func TestConstFoldint8uint16lsh(t *testing.T) { var x, r int8 var y uint16 x = -128 y = 0 r = x << y if r != -128 { t.Errorf("-128 %s 0 = %d, want -128", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-128 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-128 %s 65535 = %d, want 0", "<<", r) } x = -127 y = 0 r = x << y if r != -127 { t.Errorf("-127 %s 0 = %d, want -127", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-127 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-127 %s 65535 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("-1 %s 65535 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", "<<", r) } x = 126 y = 0 r = x << y if r != 126 { t.Errorf("126 %s 0 = %d, want 126", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("126 %s 1 = %d, want -4", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("126 %s 65535 = %d, want 0", "<<", r) } x = 127 y = 0 r = x << y if r != 127 { t.Errorf("127 %s 0 = %d, want 127", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("127 %s 1 = %d, want -2", "<<", r) } y = 65535 r = x << y if r != 0 { t.Errorf("127 %s 65535 = %d, want 0", "<<", r) } } func TestConstFoldint8uint16rsh(t *testing.T) { var x, r int8 var y uint16 x = -128 y = 0 r = x >> y if r != -128 { t.Errorf("-128 %s 0 = %d, want -128", ">>", r) } y = 1 r = x >> y if r != -64 { t.Errorf("-128 %s 1 = %d, want -64", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-128 %s 65535 = %d, want -1", ">>", r) } x = -127 y = 0 r = x >> y if r != -127 { t.Errorf("-127 %s 0 = %d, want -127", ">>", r) } y = 1 r = x >> y if r != -64 { t.Errorf("-127 %s 1 = %d, want -64", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-127 %s 65535 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 65535 r = x >> y if r != -1 { t.Errorf("-1 %s 65535 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("0 %s 65535 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("1 %s 65535 = %d, want 0", ">>", r) } x = 126 y = 0 r = x >> y if r != 126 { t.Errorf("126 %s 0 = %d, want 126", ">>", r) } y = 1 r = x >> y if r != 63 { t.Errorf("126 %s 1 = %d, want 63", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("126 %s 65535 = %d, want 0", ">>", r) } x = 127 y = 0 r = x >> y if r != 127 { t.Errorf("127 %s 0 = %d, want 127", ">>", r) } y = 1 r = x >> y if r != 63 { t.Errorf("127 %s 1 = %d, want 63", ">>", r) } y = 65535 r = x >> y if r != 0 { t.Errorf("127 %s 65535 = %d, want 0", ">>", r) } } func TestConstFoldint8uint8lsh(t *testing.T) { var x, r int8 var y uint8 x = -128 y = 0 r = x << y if r != -128 { t.Errorf("-128 %s 0 = %d, want -128", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("-128 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-128 %s 255 = %d, want 0", "<<", r) } x = -127 y = 0 r = x << y if r != -127 { t.Errorf("-127 %s 0 = %d, want -127", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("-127 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-127 %s 255 = %d, want 0", "<<", r) } x = -1 y = 0 r = x << y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("-1 %s 1 = %d, want -2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("-1 %s 255 = %d, want 0", "<<", r) } x = 0 y = 0 r = x << y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", "<<", r) } y = 1 r = x << y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", "<<", r) } x = 1 y = 0 r = x << y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", "<<", r) } y = 1 r = x << y if r != 2 { t.Errorf("1 %s 1 = %d, want 2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", "<<", r) } x = 126 y = 0 r = x << y if r != 126 { t.Errorf("126 %s 0 = %d, want 126", "<<", r) } y = 1 r = x << y if r != -4 { t.Errorf("126 %s 1 = %d, want -4", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("126 %s 255 = %d, want 0", "<<", r) } x = 127 y = 0 r = x << y if r != 127 { t.Errorf("127 %s 0 = %d, want 127", "<<", r) } y = 1 r = x << y if r != -2 { t.Errorf("127 %s 1 = %d, want -2", "<<", r) } y = 255 r = x << y if r != 0 { t.Errorf("127 %s 255 = %d, want 0", "<<", r) } } func TestConstFoldint8uint8rsh(t *testing.T) { var x, r int8 var y uint8 x = -128 y = 0 r = x >> y if r != -128 { t.Errorf("-128 %s 0 = %d, want -128", ">>", r) } y = 1 r = x >> y if r != -64 { t.Errorf("-128 %s 1 = %d, want -64", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-128 %s 255 = %d, want -1", ">>", r) } x = -127 y = 0 r = x >> y if r != -127 { t.Errorf("-127 %s 0 = %d, want -127", ">>", r) } y = 1 r = x >> y if r != -64 { t.Errorf("-127 %s 1 = %d, want -64", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-127 %s 255 = %d, want -1", ">>", r) } x = -1 y = 0 r = x >> y if r != -1 { t.Errorf("-1 %s 0 = %d, want -1", ">>", r) } y = 1 r = x >> y if r != -1 { t.Errorf("-1 %s 1 = %d, want -1", ">>", r) } y = 255 r = x >> y if r != -1 { t.Errorf("-1 %s 255 = %d, want -1", ">>", r) } x = 0 y = 0 r = x >> y if r != 0 { t.Errorf("0 %s 0 = %d, want 0", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("0 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("0 %s 255 = %d, want 0", ">>", r) } x = 1 y = 0 r = x >> y if r != 1 { t.Errorf("1 %s 0 = %d, want 1", ">>", r) } y = 1 r = x >> y if r != 0 { t.Errorf("1 %s 1 = %d, want 0", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("1 %s 255 = %d, want 0", ">>", r) } x = 126 y = 0 r = x >> y if r != 126 { t.Errorf("126 %s 0 = %d, want 126", ">>", r) } y = 1 r = x >> y if r != 63 { t.Errorf("126 %s 1 = %d, want 63", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("126 %s 255 = %d, want 0", ">>", r) } x = 127 y = 0 r = x >> y if r != 127 { t.Errorf("127 %s 0 = %d, want 127", ">>", r) } y = 1 r = x >> y if r != 63 { t.Errorf("127 %s 1 = %d, want 63", ">>", r) } y = 255 r = x >> y if r != 0 { t.Errorf("127 %s 255 = %d, want 0", ">>", r) } } func TestConstFoldCompareuint64(t *testing.T) { { var x uint64 = 0 var y uint64 = 0 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint64 = 0 var y uint64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint64 = 0 var y uint64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint64 = 0 var y uint64 = 18446744073709551615 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint64 = 1 var y uint64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint64 = 1 var y uint64 = 1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint64 = 1 var y uint64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint64 = 1 var y uint64 = 18446744073709551615 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint64 = 4294967296 var y uint64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint64 = 4294967296 var y uint64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint64 = 4294967296 var y uint64 = 4294967296 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint64 = 4294967296 var y uint64 = 18446744073709551615 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint64 = 18446744073709551615 var y uint64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint64 = 18446744073709551615 var y uint64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint64 = 18446744073709551615 var y uint64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint64 = 18446744073709551615 var y uint64 = 18446744073709551615 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } } func TestConstFoldCompareint64(t *testing.T) { { var x int64 = -9223372036854775808 var y int64 = -9223372036854775808 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = -9223372036854775808 var y int64 = -9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775808 var y int64 = -4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775808 var y int64 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775808 var y int64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775808 var y int64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775808 var y int64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775808 var y int64 = 9223372036854775806 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775808 var y int64 = 9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775807 var y int64 = -9223372036854775808 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = -9223372036854775807 var y int64 = -9223372036854775807 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = -9223372036854775807 var y int64 = -4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775807 var y int64 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775807 var y int64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775807 var y int64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775807 var y int64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775807 var y int64 = 9223372036854775806 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -9223372036854775807 var y int64 = 9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -4294967296 var y int64 = -9223372036854775808 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = -4294967296 var y int64 = -9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = -4294967296 var y int64 = -4294967296 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = -4294967296 var y int64 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -4294967296 var y int64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -4294967296 var y int64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -4294967296 var y int64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -4294967296 var y int64 = 9223372036854775806 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -4294967296 var y int64 = 9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -1 var y int64 = -9223372036854775808 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = -1 var y int64 = -9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = -1 var y int64 = -4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = -1 var y int64 = -1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = -1 var y int64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -1 var y int64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -1 var y int64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -1 var y int64 = 9223372036854775806 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = -1 var y int64 = 9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 0 var y int64 = -9223372036854775808 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 0 var y int64 = -9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 0 var y int64 = -4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 0 var y int64 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 0 var y int64 = 0 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 0 var y int64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 0 var y int64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 0 var y int64 = 9223372036854775806 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 0 var y int64 = 9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 1 var y int64 = -9223372036854775808 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 1 var y int64 = -9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 1 var y int64 = -4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 1 var y int64 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 1 var y int64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 1 var y int64 = 1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 1 var y int64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 1 var y int64 = 9223372036854775806 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 1 var y int64 = 9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 4294967296 var y int64 = -9223372036854775808 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 4294967296 var y int64 = -9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 4294967296 var y int64 = -4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 4294967296 var y int64 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 4294967296 var y int64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 4294967296 var y int64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 4294967296 var y int64 = 4294967296 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 4294967296 var y int64 = 9223372036854775806 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 4294967296 var y int64 = 9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 9223372036854775806 var y int64 = -9223372036854775808 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775806 var y int64 = -9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775806 var y int64 = -4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775806 var y int64 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775806 var y int64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775806 var y int64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775806 var y int64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775806 var y int64 = 9223372036854775806 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775806 var y int64 = 9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int64 = 9223372036854775807 var y int64 = -9223372036854775808 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775807 var y int64 = -9223372036854775807 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775807 var y int64 = -4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775807 var y int64 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775807 var y int64 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775807 var y int64 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775807 var y int64 = 4294967296 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775807 var y int64 = 9223372036854775806 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int64 = 9223372036854775807 var y int64 = 9223372036854775807 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } } func TestConstFoldCompareuint32(t *testing.T) { { var x uint32 = 0 var y uint32 = 0 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint32 = 0 var y uint32 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint32 = 0 var y uint32 = 4294967295 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint32 = 1 var y uint32 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint32 = 1 var y uint32 = 1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint32 = 1 var y uint32 = 4294967295 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint32 = 4294967295 var y uint32 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint32 = 4294967295 var y uint32 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint32 = 4294967295 var y uint32 = 4294967295 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } } func TestConstFoldCompareint32(t *testing.T) { { var x int32 = -2147483648 var y int32 = -2147483648 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = -2147483648 var y int32 = -2147483647 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -2147483648 var y int32 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -2147483648 var y int32 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -2147483648 var y int32 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -2147483648 var y int32 = 2147483647 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -2147483647 var y int32 = -2147483648 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = -2147483647 var y int32 = -2147483647 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = -2147483647 var y int32 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -2147483647 var y int32 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -2147483647 var y int32 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -2147483647 var y int32 = 2147483647 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -1 var y int32 = -2147483648 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = -1 var y int32 = -2147483647 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = -1 var y int32 = -1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = -1 var y int32 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -1 var y int32 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = -1 var y int32 = 2147483647 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = 0 var y int32 = -2147483648 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 0 var y int32 = -2147483647 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 0 var y int32 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 0 var y int32 = 0 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 0 var y int32 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = 0 var y int32 = 2147483647 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = 1 var y int32 = -2147483648 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 1 var y int32 = -2147483647 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 1 var y int32 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 1 var y int32 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 1 var y int32 = 1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 1 var y int32 = 2147483647 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int32 = 2147483647 var y int32 = -2147483648 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 2147483647 var y int32 = -2147483647 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 2147483647 var y int32 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 2147483647 var y int32 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 2147483647 var y int32 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int32 = 2147483647 var y int32 = 2147483647 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } } func TestConstFoldCompareuint16(t *testing.T) { { var x uint16 = 0 var y uint16 = 0 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint16 = 0 var y uint16 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint16 = 0 var y uint16 = 65535 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint16 = 1 var y uint16 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint16 = 1 var y uint16 = 1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint16 = 1 var y uint16 = 65535 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint16 = 65535 var y uint16 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint16 = 65535 var y uint16 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint16 = 65535 var y uint16 = 65535 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } } func TestConstFoldCompareint16(t *testing.T) { { var x int16 = -32768 var y int16 = -32768 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = -32768 var y int16 = -32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -32768 var y int16 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -32768 var y int16 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -32768 var y int16 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -32768 var y int16 = 32766 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -32768 var y int16 = 32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -32767 var y int16 = -32768 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = -32767 var y int16 = -32767 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = -32767 var y int16 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -32767 var y int16 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -32767 var y int16 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -32767 var y int16 = 32766 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -32767 var y int16 = 32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -1 var y int16 = -32768 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = -1 var y int16 = -32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = -1 var y int16 = -1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = -1 var y int16 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -1 var y int16 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -1 var y int16 = 32766 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = -1 var y int16 = 32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = 0 var y int16 = -32768 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 0 var y int16 = -32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 0 var y int16 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 0 var y int16 = 0 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 0 var y int16 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = 0 var y int16 = 32766 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = 0 var y int16 = 32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = 1 var y int16 = -32768 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 1 var y int16 = -32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 1 var y int16 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 1 var y int16 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 1 var y int16 = 1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 1 var y int16 = 32766 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = 1 var y int16 = 32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = 32766 var y int16 = -32768 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32766 var y int16 = -32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32766 var y int16 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32766 var y int16 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32766 var y int16 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32766 var y int16 = 32766 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32766 var y int16 = 32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int16 = 32767 var y int16 = -32768 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32767 var y int16 = -32767 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32767 var y int16 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32767 var y int16 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32767 var y int16 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32767 var y int16 = 32766 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int16 = 32767 var y int16 = 32767 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } } func TestConstFoldCompareuint8(t *testing.T) { { var x uint8 = 0 var y uint8 = 0 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint8 = 0 var y uint8 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint8 = 0 var y uint8 = 255 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint8 = 1 var y uint8 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint8 = 1 var y uint8 = 1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint8 = 1 var y uint8 = 255 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x uint8 = 255 var y uint8 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint8 = 255 var y uint8 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x uint8 = 255 var y uint8 = 255 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } } func TestConstFoldCompareint8(t *testing.T) { { var x int8 = -128 var y int8 = -128 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = -128 var y int8 = -127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -128 var y int8 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -128 var y int8 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -128 var y int8 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -128 var y int8 = 126 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -128 var y int8 = 127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -127 var y int8 = -128 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = -127 var y int8 = -127 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = -127 var y int8 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -127 var y int8 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -127 var y int8 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -127 var y int8 = 126 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -127 var y int8 = 127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -1 var y int8 = -128 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = -1 var y int8 = -127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = -1 var y int8 = -1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = -1 var y int8 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -1 var y int8 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -1 var y int8 = 126 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = -1 var y int8 = 127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = 0 var y int8 = -128 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 0 var y int8 = -127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 0 var y int8 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 0 var y int8 = 0 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 0 var y int8 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = 0 var y int8 = 126 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = 0 var y int8 = 127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = 1 var y int8 = -128 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 1 var y int8 = -127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 1 var y int8 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 1 var y int8 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 1 var y int8 = 1 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 1 var y int8 = 126 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = 1 var y int8 = 127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = 126 var y int8 = -128 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 126 var y int8 = -127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 126 var y int8 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 126 var y int8 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 126 var y int8 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 126 var y int8 = 126 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 126 var y int8 = 127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if !(x < y) { t.Errorf("!(%d < %d)", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if x >= y { t.Errorf("%d >= %d", x, y) } } { var x int8 = 127 var y int8 = -128 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 127 var y int8 = -127 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 127 var y int8 = -1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 127 var y int8 = 0 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 127 var y int8 = 1 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 127 var y int8 = 126 if x == y { t.Errorf("%d == %d", x, y) } if !(x != y) { t.Errorf("!(%d != %d)", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if !(x > y) { t.Errorf("!(%d > %d)", x, y) } if x <= y { t.Errorf("%d <= %d", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } { var x int8 = 127 var y int8 = 127 if !(x == y) { t.Errorf("!(%d == %d)", x, y) } if x != y { t.Errorf("%d != %d", x, y) } if x < y { t.Errorf("%d < %d", x, y) } if x > y { t.Errorf("%d > %d", x, y) } if !(x <= y) { t.Errorf("!(%d <= %d)", x, y) } if !(x >= y) { t.Errorf("!(%d >= %d)", x, y) } } }
Close