diff options
| author | Julian Zhu <jz531210@gmail.com> | 2025-05-17 00:27:37 +0800 |
|---|---|---|
| committer | Keith Randall <khr@golang.org> | 2025-05-19 11:27:35 -0700 |
| commit | d52679006c8e08875fac92aca1f723fce488d0d2 (patch) | |
| tree | 2690b36fee4276e7b13bedfb4d57c9a5c9a6f20e /test | |
| parent | 972639fc4cf257f04f9690e63bea7cd729b3edd2 (diff) | |
| download | go-d52679006c8e08875fac92aca1f723fce488d0d2.tar.xz | |
cmd/compile: fold negation into addition/subtraction on mipsx
Fold negation into addition/subtraction and avoid double negation.
file before after Δ %
addr2line 3742022 3741986 -36 -0.001%
asm 6668616 6668628 +12 +0.000%
buildid 3583786 3583630 -156 -0.004%
cgo 6020370 6019634 -736 -0.012%
compile 29416016 29417336 +1320 +0.004%
cover 6801903 6801675 -228 -0.003%
dist 4485916 4485816 -100 -0.002%
doc 10652787 10652251 -536 -0.005%
fix 4115988 4115560 -428 -0.010%
link 9002328 9001616 -712 -0.008%
nm 3733148 3732780 -368 -0.010%
objdump 6163292 6163068 -224 -0.004%
pack 2944768 2944604 -164 -0.006%
pprof 18909973 18908773 -1200 -0.006%
test2json 3394662 3394778 +116 +0.003%
trace 17350911 17349751 -1160 -0.007%
vet 10077727 10077527 -200 -0.002%
go 19118769 19118609 -160 -0.001%
total 166182982 166178022 -4960 -0.003%
Change-Id: Id55698800fd70f3cb2ff48393584456b87208921
Reviewed-on: https://go-review.googlesource.com/c/go/+/673556
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'test')
| -rw-r--r-- | test/codegen/arithmetic.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/test/codegen/arithmetic.go b/test/codegen/arithmetic.go index 1023a62bee..6d8e62c721 100644 --- a/test/codegen/arithmetic.go +++ b/test/codegen/arithmetic.go @@ -92,6 +92,7 @@ func SubFromConst(a int) int { func SubFromConstNeg(a int) int { // loong64: "ADDV[U]\t\\$40" + // mips: "ADD[U]\t\\$40" // mips64: "ADDV[U]\t\\$40" // ppc64x: `ADD\t[$]40,\sR[0-9]+,\sR` // riscv64: "ADDI\t\\$40",-"NEG" @@ -101,6 +102,7 @@ func SubFromConstNeg(a int) int { func SubSubFromConst(a int) int { // loong64: "ADDV[U]\t\\$20" + // mips: "ADD[U]\t\\$20" // mips64: "ADDV[U]\t\\$20" // ppc64x: `ADD\t[$]20,\sR[0-9]+,\sR` // riscv64: "ADDI\t\\$20",-"NEG" @@ -117,6 +119,7 @@ func AddSubFromConst(a int) int { func NegSubFromConst(a int) int { // loong64: "ADDV[U]\t\\$-20" + // mips: "ADD[U]\t\\$-20" // mips64: "ADDV[U]\t\\$-20" // ppc64x: `ADD\t[$]-20,\sR[0-9]+,\sR` // riscv64: "ADDI\t\\$-20" @@ -126,6 +129,7 @@ func NegSubFromConst(a int) int { func NegAddFromConstNeg(a int) int { // loong64: "ADDV[U]\t\\$-40","SUBV" + // mips: "ADD[U]\t\\$-40","SUB" // mips64: "ADDV[U]\t\\$-40","SUBV" // ppc64x: `SUBC\tR[0-9]+,\s[$]40,\sR` // riscv64: "ADDI\t\\$-40","NEG" @@ -136,6 +140,7 @@ func NegAddFromConstNeg(a int) int { func SubSubNegSimplify(a, b int) int { // amd64:"NEGQ" // loong64:"SUBV" + // mips:"SUB" // mips64:"SUBV" // ppc64x:"NEG" // riscv64:"NEG",-"SUB" @@ -146,6 +151,7 @@ func SubSubNegSimplify(a, b int) int { func SubAddSimplify(a, b int) int { // amd64:-"SUBQ",-"ADDQ" // loong64:-"SUBV",-"ADDV" + // mips:-"SUB",-"ADD" // mips64:-"SUBV",-"ADDV" // ppc64x:-"SUB",-"ADD" // riscv64:-"SUB",-"ADD" @@ -155,6 +161,7 @@ func SubAddSimplify(a, b int) int { func SubAddSimplify2(a, b, c int) (int, int, int, int, int, int) { // amd64:-"ADDQ" + // mips:"SUB",-"ADD" // mips64:"SUBV",-"ADDV" // loong64:"SUBV",-"ADDV" r := (a + b) - (a + c) @@ -165,6 +172,7 @@ func SubAddSimplify2(a, b, c int) (int, int, int, int, int, int) { // amd64:-"ADDQ" r3 := (b + a) - (c + a) // amd64:-"SUBQ" + // mips:"ADD",-"SUB" // mips64:"ADDV",-"SUBV" // loong64:"ADDV",-"SUBV" r4 := (a - c) + (c + b) @@ -176,6 +184,7 @@ func SubAddSimplify2(a, b, c int) (int, int, int, int, int, int) { func SubAddNegSimplify(a, b int) int { // amd64:"NEGQ",-"ADDQ",-"SUBQ" // loong64:"SUBV",-"ADDV" + // mips:"SUB",-"ADD" // mips64:"SUBV",-"ADDV" // ppc64x:"NEG",-"ADD",-"SUB" // riscv64:"NEG",-"ADD",-"SUB" @@ -186,6 +195,7 @@ func SubAddNegSimplify(a, b int) int { func AddAddSubSimplify(a, b, c int) int { // amd64:-"SUBQ" // loong64:"ADDV",-"SUBV" + // mips:"ADD",-"SUB" // mips64:"ADDV",-"SUBV" // ppc64x:-"SUB" // riscv64:"ADD","ADD",-"SUB" |
