diff options
| author | Jakub Ciolek <jakub@ciolek.dev> | 2025-01-07 07:00:24 +0100 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2025-02-03 08:42:01 -0800 |
| commit | e57769d5ad251a26d7676cd7a63e5332b26a35f0 (patch) | |
| tree | 6b2076ab7d1ea49bbb6a1e10b6580734064151e4 /test/codegen | |
| parent | f7dbbf251980763609a65efe15ef9f8ed0cc5a95 (diff) | |
| download | go-e57769d5ad251a26d7676cd7a63e5332b26a35f0.tar.xz | |
cmd/compile: on AMD64, prefer XOR/AND for (x & 1) == 0 check
It's shorter to encode. Additionally, XOR and AND generally
have higher throughput than BT/SET*.
compilecmp:
runtime
runtime.(*sweepClass).split 58 -> 56 (-3.45%)
runtime.sweepClass.split 14 -> 11 (-21.43%)
runtime [cmd/compile]
runtime.(*sweepClass).split 58 -> 56 (-3.45%)
runtime.sweepClass.split 14 -> 11 (-21.43%)
strconv
strconv.ryuFtoaShortest changed
strconv [cmd/compile]
strconv.ryuFtoaShortest changed
math/big
math/big.(*Int).MulRange 255 -> 252 (-1.18%)
testing/quick
testing/quick.sizedValue changed
internal/fuzz
internal/fuzz.(*pcgRand).bool 69 -> 70 (+1.45%)
cmd/internal/obj/x86
cmd/internal/obj/x86.(*AsmBuf).asmevex changed
math/big [cmd/compile]
math/big.(*Int).MulRange 255 -> 252 (-1.18%)
cmd/internal/obj/x86 [cmd/compile]
cmd/internal/obj/x86.(*AsmBuf).asmevex changed
net/http
net/http.(*http2stream).isPushed 11 -> 10 (-9.09%)
cmd/vendor/github.com/google/pprof/internal/binutils
cmd/vendor/github.com/google/pprof/internal/binutils.(*file).computeBase changed
Change-Id: I9cb2987eb263c85ee4e93d6f8455c91a55273173
Reviewed-on: https://go-review.googlesource.com/c/go/+/640975
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'test/codegen')
| -rw-r--r-- | test/codegen/bool.go | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/test/codegen/bool.go b/test/codegen/bool.go index 164ca1b224..2024759a5c 100644 --- a/test/codegen/bool.go +++ b/test/codegen/bool.go @@ -47,6 +47,7 @@ func convertNeqBool32(x uint32) bool { func convertEqBool32(x uint32) bool { // ppc64x:"RLDICL",-"CMPW","XOR",-"ISEL" + // amd64:"ANDL","XORL",-"BTL",-"SETCC" return x&1 == 0 } @@ -57,6 +58,7 @@ func convertNeqBool64(x uint64) bool { func convertEqBool64(x uint64) bool { // ppc64x:"RLDICL","XOR",-"CMP",-"ISEL" + // amd64:"ANDL","XORL",-"BTL",-"SETCC" return x&1 == 0 } |
