diff options
| author | eric fang <eric.fang@arm.com> | 2023-09-12 03:01:33 +0000 |
|---|---|---|
| committer | Eric Fang <eric.fang@arm.com> | 2023-09-21 02:36:06 +0000 |
| commit | ace1494d9235be94f1325ab6e45105a446b3224c (patch) | |
| tree | 41d38ad49a29234e7afafa07fb7f439394253b72 /src/syscall/exec_linux_test.go | |
| parent | dd881027c3c556647d5d9f36eda4e9316680647b (diff) | |
| download | go-ace1494d9235be94f1325ab6e45105a446b3224c.tar.xz | |
cmd/compile: optimize absorbing InvertFlags into Noov comparisons for arm64
Previously (LessThanNoov (InvertFlags x)) is lowered as:
CSET
CSET
BIC
With this CL it's lowered as:
CSET
CSEL
This saves one instruction.
Similarly (GreaterEqualNoov (InvertFlags x)) is now lowered as:
CSET
CSINC
$ benchstat old.bench new.bench
goos: linux
goarch: arm64
│ old.bench │ new.bench │
│ sec/op │ sec/op vs base │
InvertLessThanNoov-160 2.249n ± 2% 2.190n ± 1% -2.62% (p=0.003 n=10)
Change-Id: Idd8979b7f4fe466e74b1a201c4aba7f1b0cffb0b
Reviewed-on: https://go-review.googlesource.com/c/go/+/526237
Reviewed-by: Heschi Kreinick <heschi@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Eric Fang <eric.fang@arm.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/syscall/exec_linux_test.go')
0 files changed, 0 insertions, 0 deletions
