aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/opGen.go
diff options
context:
space:
mode:
authorfanzha02 <fannie.zhang@arm.com>2020-05-20 08:49:59 +0000
committerfannie zhang <Fannie.Zhang@arm.com>2021-03-23 01:36:23 +0000
commitb182ba7fabcd233a03bb8169634605a7fac6a856 (patch)
treedff96264a696344a3a64901de5b1a3a888f15f7a /src/cmd/compile/internal/ssa/opGen.go
parentd25476ebb2c645495db7ae22585a8e74171b106e (diff)
downloadgo-b182ba7fabcd233a03bb8169634605a7fac6a856.tar.gz
go-b182ba7fabcd233a03bb8169634605a7fac6a856.zip
cmd/compile: optimize codes with arm64 REV16 instruction
Optimize some patterns into rev16/rev16w instruction. Pattern1: (c & 0xff00ff00)>>8 | (c & 0x00ff00ff)<<8 To: rev16w c Pattern2: (c & 0xff00ff00ff00ff00)>>8 | (c & 0x00ff00ff00ff00ff)<<8 To: rev16 c This patch is a copy of CL 239637, contributed by Alice Xu(dianhong.xu@arm.com). Change-Id: I96936c1db87618bc1903c04221c7e9b2779455b3 Reviewed-on: https://go-review.googlesource.com/c/go/+/268377 Trust: fannie zhang <Fannie.Zhang@arm.com> Run-TryBot: fannie zhang <Fannie.Zhang@arm.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/opGen.go')
-rw-r--r--src/cmd/compile/internal/ssa/opGen.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go
index db51ed95c5..3f84a09289 100644
--- a/src/cmd/compile/internal/ssa/opGen.go
+++ b/src/cmd/compile/internal/ssa/opGen.go
@@ -1366,6 +1366,7 @@ const (
OpARM64FSQRTS
OpARM64REV
OpARM64REVW
+ OpARM64REV16
OpARM64REV16W
OpARM64RBIT
OpARM64RBITW
@@ -18213,6 +18214,19 @@ var opcodeTable = [...]opInfo{
},
},
{
+ name: "REV16",
+ argLen: 1,
+ asm: arm64.AREV16,
+ reg: regInfo{
+ inputs: []inputInfo{
+ {0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
+ },
+ outputs: []outputInfo{
+ {0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
+ },
+ },
+ },
+ {
name: "REV16W",
argLen: 1,
asm: arm64.AREV16W,