]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: ARM64 optimize []float64 and []float32 access
authorEgon Elbre <egonelbre@gmail.com>
Fri, 27 Nov 2020 15:10:33 +0000 (17:10 +0200)
committerCherry Zhang <cherryyz@google.com>
Wed, 24 Feb 2021 19:49:08 +0000 (19:49 +0000)
commit3ee32439b5114c1fe5f04891b678613aa72e13c2
tree4b720a21892117f69ca39f8aca1f370a20d07e1c
parent80ddc17ae1b3ffacc42c19b999956f9ccef3ddd1
cmd/compile: ARM64 optimize []float64 and []float32 access

Optimize load and store to []float64 and []float32.
Previously it used LSL instead of shifted register indexed load/store.

Before:

    LSL   $3, R0, R0
    FMOVD F0, (R1)(R0)

After:

    FMOVD F0, (R1)(R0<<3)

Fixes #42798

Change-Id: I0c0912140c3dce5aa6abc27097c0eb93833cc589
Reviewed-on: https://go-review.googlesource.com/c/go/+/273706
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Giovanni Bajo <rasky@develer.com>
src/cmd/compile/internal/arm64/ssa.go
src/cmd/compile/internal/ssa/gen/ARM64.rules
src/cmd/compile/internal/ssa/gen/ARM64Ops.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/rewriteARM64.go
test/codegen/floats.go
test/codegen/memops.go