From bd71b9465948ec523c26dd2d9fea888bd83a2e6c Mon Sep 17 00:00:00 2001 From: limeidan Date: Fri, 18 Jul 2025 10:36:06 +0800 Subject: cmd/compile/internal: optimizing add+sll rule using ALSLV instruction on loong64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Keith Randall LUCI-TryBot-Result: Go LUCI Reviewed-by: abner chenc --- test/codegen/arithmetic.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'test/codegen/arithmetic.go') diff --git a/test/codegen/arithmetic.go b/test/codegen/arithmetic.go index 67adb50fa5..beabfe24eb 100644 --- a/test/codegen/arithmetic.go +++ b/test/codegen/arithmetic.go @@ -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` -- cgit v1.3-6-g1900