aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/memmove_test.go
diff options
context:
space:
mode:
authorJoe Tsai <joetsai@digital-static.net>2016-08-31 20:44:42 +0000
committerJoe Tsai <thebrokentoaster@gmail.com>2016-08-31 21:07:35 +0000
commit6fb4b15f98bba7ef3966c5edc6b8fe2cc99c6beb (patch)
tree113c3762033fd7957b36cfc6b876a959ae3e925c /src/runtime/memmove_test.go
parentcc0248aea53b252ec5c0e1c57e32edb102bc36fe (diff)
downloadgo-6fb4b15f98bba7ef3966c5edc6b8fe2cc99c6beb.tar.gz
go-6fb4b15f98bba7ef3966c5edc6b8fe2cc99c6beb.zip
Revert "runtime: improve memmove for amd64"
This reverts commit 3607c5f4f18ad4d423e40996ebf7f46b2f79ce02. This was causing failures on amd64 machines without AVX. Fixes #16939 Change-Id: I70080fbb4e7ae791857334f2bffd847d08cb25fa Reviewed-on: https://go-review.googlesource.com/28274 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/runtime/memmove_test.go')
-rw-r--r--[-rwxr-xr-x]src/runtime/memmove_test.go104
1 files changed, 0 insertions, 104 deletions
diff --git a/src/runtime/memmove_test.go b/src/runtime/memmove_test.go
index 080ca28667..2124cb9d49 100755..100644
--- a/src/runtime/memmove_test.go
+++ b/src/runtime/memmove_test.go
@@ -5,9 +5,7 @@
package runtime_test
import (
- "crypto/rand"
"fmt"
- "internal/race"
. "runtime"
"testing"
)
@@ -84,108 +82,6 @@ func TestMemmoveAlias(t *testing.T) {
}
}
-func TestMemmoveLarge0x180000(t *testing.T) {
- if race.Enabled {
- t.Skip("skipping large memmove test under race detector")
- }
- testSize(t, 0x180000)
-}
-
-func TestMemmoveOverlapLarge0x120000(t *testing.T) {
- if race.Enabled {
- t.Skip("skipping large memmove test under race detector")
- }
- testOverlap(t, 0x120000)
-}
-
-func testSize(t *testing.T, size int) {
- src := make([]byte, size)
- dst := make([]byte, size)
- _, _ = rand.Read(src)
- _, _ = rand.Read(dst)
-
- ref := make([]byte, size)
- copyref(ref, dst)
-
- for n := size - 50; n > 1; n >>= 1 {
- for x := 0; x <= size-n; x = x*7 + 1 { // offset in src
- for y := 0; y <= size-n; y = y*9 + 1 { // offset in dst
- copy(dst[y:y+n], src[x:x+n])
- copyref(ref[y:y+n], src[x:x+n])
- p := cmpb(dst, ref)
- if p >= 0 {
- t.Fatalf("Copy failed, copying from src[%d:%d] to dst[%d:%d].\nOffset %d is different, %v != %v", x, x+n, y, y+n, p, dst[p], ref[p])
- }
- }
- }
- }
-}
-
-func testOverlap(t *testing.T, size int) {
- src := make([]byte, size)
- test := make([]byte, size)
- ref := make([]byte, size)
- _, _ = rand.Read(src)
-
- for n := size - 50; n > 1; n >>= 1 {
- for x := 0; x <= size-n; x = x*7 + 1 { // offset in src
- for y := 0; y <= size-n; y = y*9 + 1 { // offset in dst
- // Reset input
- copyref(test, src)
- copyref(ref, src)
- copy(test[y:y+n], test[x:x+n])
- if y <= x {
- copyref(ref[y:y+n], ref[x:x+n])
- } else {
- copybw(ref[y:y+n], ref[x:x+n])
- }
- p := cmpb(test, ref)
- if p >= 0 {
- t.Fatalf("Copy failed, copying from src[%d:%d] to dst[%d:%d].\nOffset %d is different, %v != %v", x, x+n, y, y+n, p, test[p], ref[p])
- }
- }
- }
- }
-
-}
-
-// Forward copy.
-func copyref(dst, src []byte) {
- for i, v := range src {
- dst[i] = v
- }
-}
-
-// Backwards copy
-func copybw(dst, src []byte) {
- if len(src) == 0 {
- return
- }
- for i := len(src) - 1; i >= 0; i-- {
- dst[i] = src[i]
- }
-}
-
-// Returns offset of difference
-func matchLen(a, b []byte, max int) int {
- a = a[:max]
- b = b[:max]
- for i, av := range a {
- if b[i] != av {
- return i
- }
- }
- return max
-}
-
-func cmpb(a, b []byte) int {
- l := matchLen(a, b, len(a))
- if l == len(a) {
- return -1
- }
- return l
-}
-
func benchmarkSizes(b *testing.B, sizes []int, fn func(b *testing.B, n int)) {
for _, n := range sizes {
b.Run(fmt.Sprint(n), func(b *testing.B) {