]> Cypherpunks.ru repositories - gostls13.git/commit
[release-branch.go1.21] cmd/compile: fix memcombine pass for big endian, > 1 byte...
authorKeith Randall <khr@golang.org>
Thu, 30 Nov 2023 18:04:16 +0000 (10:04 -0800)
committerCarlos Amedee <carlos@golang.org>
Wed, 6 Dec 2023 21:29:58 +0000 (21:29 +0000)
commit8c840b10d0c34091349fc224756924fea9c54c9b
tree3ea50a800798d54371f9f4ce746b9b0b96c8e834
parent6018ad99a4a951581b2d846a8ccd6f1d4e74fd11
[release-branch.go1.21] cmd/compile: fix memcombine pass for big endian, > 1 byte elements

The shift amounts were wrong in this case, leading to miscompilation
of load combining.

Also the store combining was not triggering when it should.

Fixes #64472

Change-Id: Iaeb08972c5fc1d6f628800334789c6af7216e87b
Reviewed-on: https://go-review.googlesource.com/c/go/+/546355
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com>
Reviewed-by: Keith Randall <khr@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/546356
src/cmd/compile/internal/ssa/memcombine.go
src/cmd/compile/internal/test/memcombine_test.go
test/codegen/memcombine.go