Skip to content

Commit 21befdc

Browse files
cherrymuithanm
authored andcommitted
[release-branch.go1.18] cmd/compile: fix boolean comparison on RISCV64
Following CL 421457, for RISCV64. May fix RISCV64 builds. Updates #52788. Updates #53397. Change-Id: Ifc34658703d1e8b97665e7b862060152e3005d71 Reviewed-on: https://go-review.googlesource.com/c/go/+/405553 Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Cherry Mui <cherryyz@google.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/421460 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com>
1 parent 276a7bf commit 21befdc

File tree

2 files changed

+50
-3
lines changed

2 files changed

+50
-3
lines changed

Diff for: src/cmd/compile/internal/ssa/gen/RISCV64.rules

+5-1
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,7 @@
583583
(AtomicOr32 ...) => (LoweredAtomicOr32 ...)
584584

585585
// Conditional branches
586-
(If cond yes no) => (BNEZ cond yes no)
586+
(If cond yes no) => (BNEZ (MOVBUreg <typ.UInt64> cond) yes no)
587587

588588
// Optimizations
589589

@@ -621,6 +621,10 @@
621621
(MOVWstore [off] {sym} ptr (MOVDconst [0]) mem) => (MOVWstorezero [off] {sym} ptr mem)
622622
(MOVDstore [off] {sym} ptr (MOVDconst [0]) mem) => (MOVDstorezero [off] {sym} ptr mem)
623623

624+
// Boolean ops are already extended.
625+
(MOVBUreg x:((SEQZ|SNEZ) _)) => x
626+
(MOVBUreg x:((SLT|SLTU) _ _)) => x
627+
624628
// Avoid sign/zero extension for consts.
625629
(MOVBreg (MOVDconst [c])) => (MOVDconst [int64(int8(c))])
626630
(MOVHreg (MOVDconst [c])) => (MOVDconst [int64(int16(c))])

Diff for: src/cmd/compile/internal/ssa/rewriteRISCV64.go

+45-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)