diff options
| author | Keith Randall <khr@golang.org> | 2015-09-10 11:05:42 -0700 |
|---|---|---|
| committer | Keith Randall <khr@golang.org> | 2015-09-10 20:05:12 +0000 |
| commit | db380bf44bcd8bcfdcbb68d18855111090282a63 (patch) | |
| tree | 2dcb8f60840283c5673296ed9e5cbbacfd16d306 /src/cmd/compile/internal/gc/testdata | |
| parent | 2f518071577d177c5ec5b4c0c9e9dcd14e9cd32a (diff) | |
| download | go-db380bf44bcd8bcfdcbb68d18855111090282a63.tar.xz | |
[dev.ssa] cmd/compile/internal/ssa: add == and != for complex
Change-Id: Iefabce4eb0dbc313dd1863513b45307cc76c545a
Reviewed-on: https://go-review.googlesource.com/14468
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/gc/testdata')
| -rw-r--r-- | src/cmd/compile/internal/gc/testdata/fp_ssa.go | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/gc/testdata/fp_ssa.go b/src/cmd/compile/internal/gc/testdata/fp_ssa.go index 6985cd0641..e7480a1138 100644 --- a/src/cmd/compile/internal/gc/testdata/fp_ssa.go +++ b/src/cmd/compile/internal/gc/testdata/fp_ssa.go @@ -1557,6 +1557,45 @@ func cx64imag_ssa(a complex64) float32 { return imag(a) } +func cx128eq_ssa(a, b complex128) bool { + switch { // prevent inlining + } + return a == b +} + +func cx128ne_ssa(a, b complex128) bool { + switch { // prevent inlining + } + return a != b +} + +func cx64eq_ssa(a, b complex64) bool { + switch { // prevent inlining + } + return a == b +} + +func cx64ne_ssa(a, b complex64) bool { + switch { // prevent inlining + } + return a != b +} + +func expectTrue(s string, b bool) int { + if !b { + println("expected true for", s, ", got false") + return 1 + } + return 0 +} +func expectFalse(s string, b bool) int { + if b { + println("expected false for", s, ", got true") + return 1 + } + return 0 +} + func complexTest128() int { fails := 0 var a complex128 = 1 + 2i @@ -1569,6 +1608,10 @@ func complexTest128() int { r := cx128real_ssa(a) i := cx128imag_ssa(a) cnst := cx128cnst_ssa(a) + c1 := cx128eq_ssa(a, a) + c2 := cx128eq_ssa(a, b) + c3 := cx128ne_ssa(a, a) + c4 := cx128ne_ssa(a, b) fails += expectCx128("sum", sum, 4+8i) fails += expectCx128("diff", diff, 2+4i) @@ -1578,6 +1621,10 @@ func complexTest128() int { fails += expect64("real", r, 1) fails += expect64("imag", i, 2) fails += expectCx128("cnst", cnst, -4+7i) + fails += expectTrue(fmt.Sprintf("%v==%v", a, a), c1) + fails += expectFalse(fmt.Sprintf("%v==%v", a, b), c2) + fails += expectFalse(fmt.Sprintf("%v!=%v", a, a), c3) + fails += expectTrue(fmt.Sprintf("%v!=%v", a, b), c4) return fails } @@ -1593,6 +1640,10 @@ func complexTest64() int { neg := cx64neg_ssa(a) r := cx64real_ssa(a) i := cx64imag_ssa(a) + c1 := cx64eq_ssa(a, a) + c2 := cx64eq_ssa(a, b) + c3 := cx64ne_ssa(a, a) + c4 := cx64ne_ssa(a, b) fails += expectCx64("sum", sum, 4+8i) fails += expectCx64("diff", diff, 2+4i) @@ -1601,6 +1652,10 @@ func complexTest64() int { fails += expectCx64("neg", neg, -1-2i) fails += expect32("real", r, 1) fails += expect32("imag", i, 2) + fails += expectTrue(fmt.Sprintf("%v==%v", a, a), c1) + fails += expectFalse(fmt.Sprintf("%v==%v", a, b), c2) + fails += expectFalse(fmt.Sprintf("%v!=%v", a, a), c3) + fails += expectTrue(fmt.Sprintf("%v!=%v", a, b), c4) return fails } |
