From: Alberto Donizetti Date: Wed, 14 Mar 2018 10:07:06 +0000 (+0100) Subject: test/codegen: port all small memmove tests to codegen X-Git-Tag: go1.11beta1~1212 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cd3aae9b815389a5e2f05066beffdf9678534325;p=gostls13.git 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 TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- 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() { +// 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} - copy(x[1:], x[:]) // arm64:-".*memmove" + // 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[:]) }