// 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)
		}
	}
}
