| Age | Commit message (Collapse) | Author |
|
Removes an extra function call for TrailingZeroes and thus may
increase chances for inlining.
Change-Id: Iefd8d4402dc89b64baf4e5c865eb3dadade623af
Reviewed-on: https://go-review.googlesource.com/37613
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
|
|
benchmark old ns/op new ns/op delta
BenchmarkLeadingZeros-8 8.43 3.10 -63.23%
BenchmarkLeadingZeros8-8 8.13 1.33 -83.64%
BenchmarkLeadingZeros16-8 7.34 2.07 -71.80%
BenchmarkLeadingZeros32-8 7.99 2.87 -64.08%
BenchmarkLeadingZeros64-8 8.13 2.96 -63.59%
Measured on 2.3 GHz Intel Core i7 running macOS 10.12.3.
Change-Id: Id343531b408d42ac45f10c76f60e85bdb977f91e
Reviewed-on: https://go-review.googlesource.com/37582
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
|
|
For sizes > 8, the existing code is faster.
benchmark old ns/op new ns/op delta
BenchmarkTrailingZeros8-8 1.95 1.29 -33.85%
Measured on 2.3 GHz Intel Core i7 running macOS 10.12.3.
Change-Id: I6f3a33ec633a2c544ec29693c141f2f99335c745
Reviewed-on: https://go-review.googlesource.com/37581
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
|
|
Measured on 2.3 GHz Intel Core i7, running maxOS 10.12.3.
benchmark old ns/op new ns/op delta
BenchmarkRotateLeft-8 7.87 7.00 -11.05%
BenchmarkRotateLeft8-8 8.41 4.52 -46.25%
BenchmarkRotateLeft16-8 8.07 4.55 -43.62%
BenchmarkRotateLeft32-8 8.36 4.73 -43.42%
BenchmarkRotateLeft64-8 7.93 4.78 -39.72%
BenchmarkRotateRight-8 8.23 6.72 -18.35%
BenchmarkRotateRight8-8 8.76 4.39 -49.89%
BenchmarkRotateRight16-8 9.07 4.44 -51.05%
BenchmarkRotateRight32-8 8.85 4.46 -49.60%
BenchmarkRotateRight64-8 8.11 4.43 -45.38%
Change-Id: I79ea1e9e6fc65f95794a91f860a911efed3aa8a1
Reviewed-on: https://go-review.googlesource.com/37219
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
|
|
Also: Changed Reverse/ReverseBytes implementations to use
the same (smaller) masks as OnesCount.
BenchmarkOnesCount-8 37.0 6.26 -83.08%
BenchmarkOnesCount8-8 7.24 1.99 -72.51%
BenchmarkOnesCount16-8 11.3 2.47 -78.14%
BenchmarkOnesCount32-8 18.4 3.02 -83.59%
BenchmarkOnesCount64-8 40.0 3.78 -90.55%
BenchmarkReverse-8 6.69 6.22 -7.03%
BenchmarkReverse8-8 1.64 1.64 +0.00%
BenchmarkReverse16-8 2.26 2.18 -3.54%
BenchmarkReverse32-8 2.88 2.87 -0.35%
BenchmarkReverse64-8 5.64 4.34 -23.05%
BenchmarkReverseBytes-8 2.48 2.17 -12.50%
BenchmarkReverseBytes16-8 0.63 0.95 +50.79%
BenchmarkReverseBytes32-8 1.13 1.24 +9.73%
BenchmarkReverseBytes64-8 2.50 2.16 -13.60%
OnesCount-8 37.0ns ± 0% 6.3ns ± 0% ~ (p=1.000 n=1+1)
OnesCount8-8 7.24ns ± 0% 1.99ns ± 0% ~ (p=1.000 n=1+1)
OnesCount16-8 11.3ns ± 0% 2.5ns ± 0% ~ (p=1.000 n=1+1)
OnesCount32-8 18.4ns ± 0% 3.0ns ± 0% ~ (p=1.000 n=1+1)
OnesCount64-8 40.0ns ± 0% 3.8ns ± 0% ~ (p=1.000 n=1+1)
Reverse-8 6.69ns ± 0% 6.22ns ± 0% ~ (p=1.000 n=1+1)
Reverse8-8 1.64ns ± 0% 1.64ns ± 0% ~ (all samples are equal)
Reverse16-8 2.26ns ± 0% 2.18ns ± 0% ~ (p=1.000 n=1+1)
Reverse32-8 2.88ns ± 0% 2.87ns ± 0% ~ (p=1.000 n=1+1)
Reverse64-8 5.64ns ± 0% 4.34ns ± 0% ~ (p=1.000 n=1+1)
ReverseBytes-8 2.48ns ± 0% 2.17ns ± 0% ~ (p=1.000 n=1+1)
ReverseBytes16-8 0.63ns ± 0% 0.95ns ± 0% ~ (p=1.000 n=1+1)
ReverseBytes32-8 1.13ns ± 0% 1.24ns ± 0% ~ (p=1.000 n=1+1)
ReverseBytes64-8 2.50ns ± 0% 2.16ns ± 0% ~ (p=1.000 n=1+1)
Change-Id: I591b0ffc83fc3a42828256b6e5030f32c64f9497
Reviewed-on: https://go-review.googlesource.com/37218
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
|
|
Measured on 2.3 GHz Intel Core i7, running maxOS 10.12.3.
benchmark old ns/op new ns/op delta
BenchmarkReverseBytes-8 11.4 3.51 -69.21%
BenchmarkReverseBytes16-8 6.87 0.64 -90.68%
BenchmarkReverseBytes32-8 7.79 0.65 -91.66%
BenchmarkReverseBytes64-8 11.6 0.64 -94.48%
name old time/op new time/op delta
ReverseBytes-8 11.4ns ± 0% 3.5ns ± 0% ~ (p=1.000 n=1+1)
ReverseBytes16-8 6.87ns ± 0% 0.64ns ± 0% ~ (p=1.000 n=1+1)
ReverseBytes32-8 7.79ns ± 0% 0.65ns ± 0% ~ (p=1.000 n=1+1)
ReverseBytes64-8 11.6ns ± 0% 0.6ns ± 0% ~ (p=1.000 n=1+1)
Change-Id: I67b529652b3b613c61687e9e185e8d4ee40c51a2
Reviewed-on: https://go-review.googlesource.com/37211
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
|
|
Measured on 2.3 GHz Intel Core i7, running maxOS 10.12.3.
name old time/op new time/op delta
Reverse-8 76.6ns ± 0% 8.1ns ± 0% ~ (p=1.000 n=1+1)
Reverse8-8 12.6ns ± 0% 0.6ns ± 0% ~ (p=1.000 n=1+1)
Reverse16-8 20.8ns ± 0% 0.6ns ± 0% ~ (p=1.000 n=1+1)
Reverse32-8 36.5ns ± 0% 0.6ns ± 0% ~ (p=1.000 n=1+1)
Reverse64-8 74.0ns ± 0% 6.4ns ± 0% ~ (p=1.000 n=1+1)
benchmark old ns/op new ns/op delta
BenchmarkReverse-8 76.6 8.07 -89.46%
BenchmarkReverse8-8 12.6 0.64 -94.92%
BenchmarkReverse16-8 20.8 0.64 -96.92%
BenchmarkReverse32-8 36.5 0.64 -98.25%
BenchmarkReverse64-8 74.0 6.38 -91.38%
Change-Id: I6b99b10cee2f2babfe79342b50ee36a45a34da30
Reviewed-on: https://go-review.googlesource.com/37149
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
|
|
Initial platform-independent implementation.
For #18616.
Change-Id: I4585c55b963101af9059c06c1b8a866cb384754c
Reviewed-on: https://go-review.googlesource.com/36315
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
|