]> Cypherpunks.ru repositories - gostls13.git/commit
[release-branch.go1.20] 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)
committerGopher Robot <gobot@golang.org>
Wed, 19 Jul 2023 19:10:08 +0000 (19:10 +0000)
commit6211a024b491f3df6bf3eab11dd50259525b8713
treea563f2be5e7b77dcd72e5f75781f800ee5519802
parent2c358ffe9762ba08c8db0196942395f97775e31b
[release-branch.go1.20] 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 #61320

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>
Reviewed-on: https://go-review.googlesource.com/c/go/+/509195
Auto-Submit: Heschi Kreinick <heschi@google.com>
src/cmd/compile/internal/ssa/_gen/PPC64.rules
src/cmd/compile/internal/ssa/rewritePPC64.go
test/codegen/bits.go