test/codegen: port all small memmove tests to codegen

This change ports all the remaining tests checking that small memmoves
are replaced with MOVs to the new codegen test harness, and deletes
them from the asm_test file.

Change-Id: I01c94b441e27a5d61518035af62d62779dafeb56
Reviewed-on: https://go-review.googlesource.com/100476
Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
Alberto Donizetti 2018-03-14 11:07:06 +01:00
parent 858042b8fd
commit cd3aae9b81
2 changed files with 24 additions and 53 deletions

View file

@ -630,36 +630,6 @@ var linuxAMD64Tests = []*asmTest{
`,
pos: []string{"\tANDQ\t\\$4095,"},
},
{
// Test that small memmove was replaced with direct movs
fn: `
func $() {
x := [...]byte{1, 2, 3, 4, 5, 6, 7}
copy(x[1:], x[:])
}
`,
neg: []string{"memmove"},
},
{
// Same as above but with different size
fn: `
func $() {
x := [...]byte{1, 2, 3, 4}
copy(x[1:], x[:])
}
`,
neg: []string{"memmove"},
},
{
// Same as above but with different size
fn: `
func $() {
x := [...]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}
copy(x[1:], x[:])
}
`,
neg: []string{"memmove"},
},
{
fn: `
func $(p int, q *int) bool {
@ -765,26 +735,6 @@ var linux386Tests = []*asmTest{
`,
pos: []string{"\tANDL\t\\$4095,"},
},
{
// Test that small memmove was replaced with direct movs
fn: `
func $() {
x := [...]byte{1, 2, 3, 4, 5, 6, 7}
copy(x[1:], x[:])
}
`,
neg: []string{"memmove"},
},
{
// Same as above but with different size
fn: `
func $() {
x := [...]byte{1, 2, 3, 4}
copy(x[1:], x[:])
}
`,
neg: []string{"memmove"},
},
}
var linuxS390XTests = []*asmTest{

View file

@ -6,7 +6,28 @@
package codegen
func movesmall() {
x := [...]byte{1, 2, 3, 4, 5, 6, 7}
copy(x[1:], x[:]) // arm64:-".*memmove"
// These tests check that memmoves calls on small data are replaced
// with MOVs
func movesmall4() {
x := [...]byte{1, 2, 3, 4}
// 386:-".*memmove"
// amd64:-".*memmove"
// arm:-".*memmove"
// arm64:-".*memmove"
copy(x[1:], x[:])
}
func movesmall7() {
x := [...]byte{1, 2, 3, 4, 5, 6, 7}
// 386:-".*memmove"
// amd64:-".*memmove"
// arm64:-".*memmove"
copy(x[1:], x[:])
}
func movesmall16() {
x := [...]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}
// amd64:-".*memmove"
copy(x[1:], x[:])
}