mirror of
https://github.com/golang/go.git
synced 2025-11-09 05:01:01 +00:00
cmd/compile/internal: optimizing add+sll rule using ALSLV instruction on loong64
Reduce the number of go toolchain instructions on loong64 as follows: file before after Δ % go 1573148 1571708 -1,440 -0.0915% gofmt 320578 320090 -488 -0.1522% asm 555066 554406 -660 -0.1189% cgo 481566 480926 -640 -0.1329% compile 2475962 2473880 -2,082 -0.0841% cover 516536 515920 -616 -0.1193% link 702172 701404 -768 -0.1094% preprofile 238626 238274 -352 -0.1475% vet 792928 792100 -828 -0.1044% Change-Id: I61e462726835959c60e1b4e5256d4020202418ab Reviewed-on: https://go-review.googlesource.com/c/go/+/693877 Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: abner chenc <chenguoqi@loongson.cn>
This commit is contained in:
parent
ea55ca3600
commit
bd71b94659
3 changed files with 29 additions and 0 deletions
|
|
@ -624,6 +624,11 @@ func AddMul(x int) int {
|
|||
return 2*x + 1
|
||||
}
|
||||
|
||||
func AddShift(a, b int) int {
|
||||
// loong64: "ALSLV"
|
||||
return a + (b << 4)
|
||||
}
|
||||
|
||||
func MULA(a, b, c uint32) (uint32, uint32, uint32) {
|
||||
// arm:`MULA`,-`MUL\s`
|
||||
// arm64:`MADDW`,-`MULW`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue