diff options
author | Cuong Manh Le <cuong.manhle.vn@gmail.com> | 2020-04-21 13:04:59 +0700 |
---|---|---|
committer | Cuong Manh Le <cuong.manhle.vn@gmail.com> | 2020-04-21 18:15:14 +0000 |
commit | 65c9b575664a1012c4fa91c9736aa1f1d324cdb4 (patch) | |
tree | 67a6eb9afabc33f5688d47f0f858b1ab3c7e8133 /src/cmd/compile/internal/ssa/rewrite_test.go | |
parent | a95bf77e1a756d3d3a03c73d2898d8553b8b6168 (diff) | |
download | go-65c9b575664a1012c4fa91c9736aa1f1d324cdb4.tar.gz go-65c9b575664a1012c4fa91c9736aa1f1d324cdb4.zip |
cmd/compile: remove nlz function
Use nlzX variants instead. While at it, also remove tests involve
nlz/nlo/nto/log2, since when we are calling directly "math/bits"
functions.
Passes toolstash-check.
Change-Id: I83899741a29e05bc2c19d73652961ac795001781
Reviewed-on: https://go-review.googlesource.com/c/go/+/229138
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewrite_test.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/rewrite_test.go | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/src/cmd/compile/internal/ssa/rewrite_test.go b/src/cmd/compile/internal/ssa/rewrite_test.go index 8a097b04f6..4321c307dc 100644 --- a/src/cmd/compile/internal/ssa/rewrite_test.go +++ b/src/cmd/compile/internal/ssa/rewrite_test.go @@ -6,104 +6,6 @@ package ssa import "testing" -// TestNlzNto tests nlz/nto of the same number which is used in some of -// the rewrite rules. -func TestNlzNto(t *testing.T) { - // construct the bit pattern 000...111, nlz(x) + nto(0) = 64 - var x int64 - for i := int64(0); i < 64; i++ { - if got := nto(x); got != i { - t.Errorf("expected nto(0x%X) = %d, got %d", x, i, got) - } - if got := nlz(x); got != 64-i { - t.Errorf("expected nlz(0x%X) = %d, got %d", x, 64-i, got) - } - x = (x << 1) | 1 - } - - x = 0 - // construct the bit pattern 000...111, with bit 33 set as well. - for i := int64(0); i < 64; i++ { - tx := x | (1 << 32) - // nto should be the number of bits we've shifted on, with an extra bit - // at iter 32 - ntoExp := i - if ntoExp == 32 { - ntoExp = 33 - } - if got := nto(tx); got != ntoExp { - t.Errorf("expected nto(0x%X) = %d, got %d", tx, ntoExp, got) - } - - // sinec bit 33 is set, nlz can be no greater than 31 - nlzExp := 64 - i - if nlzExp > 31 { - nlzExp = 31 - } - if got := nlz(tx); got != nlzExp { - t.Errorf("expected nlz(0x%X) = %d, got %d", tx, nlzExp, got) - } - x = (x << 1) | 1 - } - -} - -func TestNlz(t *testing.T) { - var nlzTests = []struct { - v int64 - exp int64 - }{{0x00, 64}, - {0x01, 63}, - {0x0F, 60}, - {0xFF, 56}, - {0xffffFFFF, 32}, - {-0x01, 0}} - - for _, tc := range nlzTests { - if got := nlz(tc.v); got != tc.exp { - t.Errorf("expected nlz(0x%X) = %d, got %d", tc.v, tc.exp, got) - } - } -} - -func TestNto(t *testing.T) { - var ntoTests = []struct { - v int64 - exp int64 - }{{0x00, 0}, - {0x01, 1}, - {0x0F, 4}, - {0xFF, 8}, - {0xffffFFFF, 32}, - {-0x01, 64}} - - for _, tc := range ntoTests { - if got := nto(tc.v); got != tc.exp { - t.Errorf("expected nto(0x%X) = %d, got %d", tc.v, tc.exp, got) - } - } -} - -func TestLog2(t *testing.T) { - var log2Tests = []struct { - v int64 - exp int64 - }{{0, -1}, // nlz expects log2(0) == -1 - {1, 0}, - {2, 1}, - {4, 2}, - {7, 2}, - {8, 3}, - {9, 3}, - {1024, 10}} - - for _, tc := range log2Tests { - if got := log2(tc.v); got != tc.exp { - t.Errorf("expected log2(%d) = %d, got %d", tc.v, tc.exp, got) - } - } -} - // We generate memmove for copy(x[1:], x[:]), however we may change it to OpMove, // because size is known. Check that OpMove is alias-safe, or we did call memmove. func TestMove(t *testing.T) { |