1
0
mirror of https://github.com/golang/go synced 2024-11-11 21:10:21 -07:00

cmd/compile: use SSA tests on legacy compiler

Why not?  Because the 386 backend can't handle one of them.
But other than that, it should work.

Change-Id: Iaeb9735f8c3c281136a0734376dec5ddba21be3b
Reviewed-on: https://go-review.googlesource.com/22748
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
Keith Randall 2016-05-03 17:21:36 -07:00
parent 9dee7771f5
commit 9f8ecd75fc
2 changed files with 10 additions and 8 deletions

View File

@ -23,9 +23,6 @@ func buildTest(t *testing.T, filename string) {
doTest(t, filename, "build")
}
func doTest(t *testing.T, filename string, kind string) {
if runtime.GOARCH != "amd64" {
t.Skipf("skipping SSA tests on %s for now", runtime.GOARCH)
}
testenv.MustHaveGoBuild(t)
var stdout, stderr bytes.Buffer
cmd := exec.Command("go", kind, filepath.Join("testdata", filename))
@ -52,7 +49,12 @@ func TestBreakContinue(t *testing.T) { runTest(t, "break_ssa.go") }
func TestTypeAssertion(t *testing.T) { runTest(t, "assert_ssa.go") }
// TestArithmetic tests that both backends have the same result for arithmetic expressions.
func TestArithmetic(t *testing.T) { runTest(t, "arith_ssa.go") }
func TestArithmetic(t *testing.T) {
if runtime.GOARCH == "386" {
t.Skip("legacy 386 compiler can't handle this test")
}
runTest(t, "arith_ssa.go")
}
// TestFP tests that both backends have the same result for floating point expressions.
func TestFP(t *testing.T) { runTest(t, "fp_ssa.go") }

View File

@ -179,7 +179,7 @@ func lsh_1_uint64_ssa(a uint64) uint64 {
//go:noinline
func lsh_uint64_4294967296_ssa(a uint64) uint64 {
return a << 4294967296
return a << uint64(4294967296)
}
//go:noinline
@ -189,7 +189,7 @@ func lsh_4294967296_uint64_ssa(a uint64) uint64 {
//go:noinline
func lsh_uint64_18446744073709551615_ssa(a uint64) uint64 {
return a << 18446744073709551615
return a << uint64(18446744073709551615)
}
//go:noinline
@ -219,7 +219,7 @@ func rsh_1_uint64_ssa(a uint64) uint64 {
//go:noinline
func rsh_uint64_4294967296_ssa(a uint64) uint64 {
return a >> 4294967296
return a >> uint64(4294967296)
}
//go:noinline
@ -229,7 +229,7 @@ func rsh_4294967296_uint64_ssa(a uint64) uint64 {
//go:noinline
func rsh_uint64_18446744073709551615_ssa(a uint64) uint64 {
return a >> 18446744073709551615
return a >> uint64(18446744073709551615)
}
//go:noinline