aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/rewriteRISCV64.go
diff options
context:
space:
mode:
authorJoel Sing <joel@sing.id.au>2020-03-02 04:25:54 +1100
committerJoel Sing <joel@sing.id.au>2020-03-03 12:04:46 +0000
commitc9ece81cc8c1a81ebdebcf6dfc13ebf5c4cbdb61 (patch)
treef613d6e93d85e55180e4cf129f13345beab48dfa /src/cmd/compile/internal/ssa/rewriteRISCV64.go
parentd28b8524a4d5d86d7b1e2df790abff6244de2a00 (diff)
downloadgo-c9ece81cc8c1a81ebdebcf6dfc13ebf5c4cbdb61.tar.gz
go-c9ece81cc8c1a81ebdebcf6dfc13ebf5c4cbdb61.zip
cmd/compile: absorb SNEZ into branch on riscv64
Change-Id: I55fd93843a7fb574a7dd66ebb87fdd96e944d555 Reviewed-on: https://go-review.googlesource.com/c/go/+/221682 Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewriteRISCV64.go')
-rw-r--r--src/cmd/compile/internal/ssa/rewriteRISCV64.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/ssa/rewriteRISCV64.go b/src/cmd/compile/internal/ssa/rewriteRISCV64.go
index b363b10ad7..6b3f4f70b5 100644
--- a/src/cmd/compile/internal/ssa/rewriteRISCV64.go
+++ b/src/cmd/compile/internal/ssa/rewriteRISCV64.go
@@ -4387,6 +4387,15 @@ func rewriteValueRISCV64_OpZeroExt8to64(v *Value) bool {
}
func rewriteBlockRISCV64(b *Block) bool {
switch b.Kind {
+ case BlockRISCV64BNE:
+ // match: (BNE (SNEZ x) yes no)
+ // result: (BNE x yes no)
+ for b.Controls[0].Op == OpRISCV64SNEZ {
+ v_0 := b.Controls[0]
+ x := v_0.Args[0]
+ b.resetWithControl(BlockRISCV64BNE, x)
+ return true
+ }
case BlockIf:
// match: (If cond yes no)
// result: (BNE cond yes no)