diff --git a/src/cmd/compile/internal/gc/asm_test.go b/src/cmd/compile/internal/gc/asm_test.go index b2148c7f29..f2d37e69c9 100644 --- a/src/cmd/compile/internal/gc/asm_test.go +++ b/src/cmd/compile/internal/gc/asm_test.go @@ -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{ diff --git a/test/codegen/movesmall.go b/test/codegen/movesmall.go index 9ad83a5b9e..e22c85948d 100644 --- a/test/codegen/movesmall.go +++ b/test/codegen/movesmall.go @@ -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[:]) }