]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: add constant fold comparison tests
authorKeith Randall <khr@golang.org>
Sun, 29 May 2016 04:59:17 +0000 (21:59 -0700)
committerKeith Randall <khr@golang.org>
Sun, 29 May 2016 20:23:55 +0000 (20:23 +0000)
Increases generic.rules coverage from 91% to 95%.

Change-Id: I981eb94f3cd10d2f87c836576a43786787a25d83
Reviewed-on: https://go-review.googlesource.com/23556
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Todd Neal <todd@tneal.org>
src/cmd/compile/internal/gc/constFold_test.go
src/cmd/compile/internal/gc/testdata/gen/constFoldGen.go

index 118183dd2fa68e0b588708e767c71b4db8bd5202..ef6a3c115dbc5f6c8c64525a72f1615bfd577886 100644 (file)
@@ -12414,3 +12414,5695 @@ func TestConstFoldint8uint8rsh(t *testing.T) {
                t.Errorf("127 >> 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)
+               }
+       }
+}
index eea6165938e81f47643efa78eba23be02fbefe12..28cdcc339b757672c25bea8a475392d390bb676c 100644 (file)
@@ -208,6 +208,89 @@ func main() {
                        }
                }
        }
+
+       // Constant folding for comparisons
+       for _, s := range szs {
+               fmt.Fprintf(w, "func TestConstFoldCompare%s(t *testing.T) {\n", s.name)
+               for _, x := range s.i {
+                       for _, y := range s.i {
+                               fmt.Fprintf(w, "\t{\n")
+                               fmt.Fprintf(w, "\t\tvar x %s = %d\n", s.name, x)
+                               fmt.Fprintf(w, "\t\tvar y %s = %d\n", s.name, y)
+                               if x == y {
+                                       fmt.Fprintf(w, "\t\tif !(x == y) { t.Errorf(\"!(%%d == %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x == y { t.Errorf(\"%%d == %%d\", x, y) }\n")
+                               }
+                               if x != y {
+                                       fmt.Fprintf(w, "\t\tif !(x != y) { t.Errorf(\"!(%%d != %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x != y { t.Errorf(\"%%d != %%d\", x, y) }\n")
+                               }
+                               if x < y {
+                                       fmt.Fprintf(w, "\t\tif !(x < y) { t.Errorf(\"!(%%d < %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x < y { t.Errorf(\"%%d < %%d\", x, y) }\n")
+                               }
+                               if x > y {
+                                       fmt.Fprintf(w, "\t\tif !(x > y) { t.Errorf(\"!(%%d > %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x > y { t.Errorf(\"%%d > %%d\", x, y) }\n")
+                               }
+                               if x <= y {
+                                       fmt.Fprintf(w, "\t\tif !(x <= y) { t.Errorf(\"!(%%d <= %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x <= y { t.Errorf(\"%%d <= %%d\", x, y) }\n")
+                               }
+                               if x >= y {
+                                       fmt.Fprintf(w, "\t\tif !(x >= y) { t.Errorf(\"!(%%d >= %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x >= y { t.Errorf(\"%%d >= %%d\", x, y) }\n")
+                               }
+                               fmt.Fprintf(w, "\t}\n")
+                       }
+               }
+               for _, x := range s.u {
+                       for _, y := range s.u {
+                               fmt.Fprintf(w, "\t{\n")
+                               fmt.Fprintf(w, "\t\tvar x %s = %d\n", s.name, x)
+                               fmt.Fprintf(w, "\t\tvar y %s = %d\n", s.name, y)
+                               if x == y {
+                                       fmt.Fprintf(w, "\t\tif !(x == y) { t.Errorf(\"!(%%d == %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x == y { t.Errorf(\"%%d == %%d\", x, y) }\n")
+                               }
+                               if x != y {
+                                       fmt.Fprintf(w, "\t\tif !(x != y) { t.Errorf(\"!(%%d != %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x != y { t.Errorf(\"%%d != %%d\", x, y) }\n")
+                               }
+                               if x < y {
+                                       fmt.Fprintf(w, "\t\tif !(x < y) { t.Errorf(\"!(%%d < %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x < y { t.Errorf(\"%%d < %%d\", x, y) }\n")
+                               }
+                               if x > y {
+                                       fmt.Fprintf(w, "\t\tif !(x > y) { t.Errorf(\"!(%%d > %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x > y { t.Errorf(\"%%d > %%d\", x, y) }\n")
+                               }
+                               if x <= y {
+                                       fmt.Fprintf(w, "\t\tif !(x <= y) { t.Errorf(\"!(%%d <= %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x <= y { t.Errorf(\"%%d <= %%d\", x, y) }\n")
+                               }
+                               if x >= y {
+                                       fmt.Fprintf(w, "\t\tif !(x >= y) { t.Errorf(\"!(%%d >= %%d)\", x, y) }\n")
+                               } else {
+                                       fmt.Fprintf(w, "\t\tif x >= y { t.Errorf(\"%%d >= %%d\", x, y) }\n")
+                               }
+                               fmt.Fprintf(w, "\t}\n")
+                       }
+               }
+               fmt.Fprintf(w, "}\n")
+       }
+
        // gofmt result
        b := w.Bytes()
        src, err := format.Source(b)