]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/compile: on PPC64, fix sign/zero extension when masking
authorPaul E. Murphy <murp@ibm.com>
Tue, 11 Jul 2023 14:07:43 +0000 (09:07 -0500)
committerPaul Murphy <murp@ibm.com>
Wed, 12 Jul 2023 16:34:02 +0000 (16:34 +0000)
commit5e4000ad7ff153d90e77c97d7f29d3a2fa6c7de0
tree878d8a3ba1b023d500fa8042ae877e70026d277a
parentaf8f94e3c5885647d6f85d2d5227b5fc6b637c52
cmd/compile: on PPC64, fix sign/zero extension when masking

(ANDCCconst [y] (MOV.*reg x)) should only be merged when zero
extending. Otherwise, sign bits are lost on negative values.

(ANDCCconst [0xFF] (MOVBreg x)) should be simplified to a zero
extension of x. Likewise for the MOVHreg variant.

Fixes #61297

Change-Id: I04e4fd7dc6a826e870681f37506620d48393698b
Reviewed-on: https://go-review.googlesource.com/c/go/+/508775
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Paul Murphy <murp@ibm.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/cmd/compile/internal/ssa/_gen/PPC64.rules
src/cmd/compile/internal/ssa/rewritePPC64.go
test/codegen/bits.go