1
0
mirror of https://github.com/golang/go synced 2024-11-19 17:14:44 -07:00

cmd/compile: add mul by ±2ⁿ code-generation tests for arm/arm64

This change adds code generation tests for multiplication by ±2ⁿ for
arm and arm64, in preparation for a future CL which will remove the
relevant architecture-specific SSA rules (the reduction is already
performed by rules in generic.rules added in CL 36323).

Change-Id: Iebdd5c3bb2fc632c85888569ff0c49f78569a862
Reviewed-on: https://go-review.googlesource.com/75752
Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
Alberto Donizetti 2017-11-03 11:11:27 +01:00
parent 0966045039
commit 33a9f01729

View File

@ -1816,6 +1816,26 @@ var linuxS390XTests = []*asmTest{
}
var linuxARMTests = []*asmTest{
// multiplication by powers of two
{
fn: `
func $(n int) int {
return 16*n
}
`,
pos: []string{"\tSLL\t[$]4"},
neg: []string{"\tMUL\t"},
},
{
fn: `
func $(n int) int {
return -32*n
}
`,
pos: []string{"\tSLL\t[$]5"},
neg: []string{"\tMUL\t"},
},
{
fn: `
func f0(x uint32) uint32 {
@ -1943,6 +1963,26 @@ var linuxARMTests = []*asmTest{
}
var linuxARM64Tests = []*asmTest{
// multiplication by powers of two
{
fn: `
func $(n int) int {
return 64*n
}
`,
pos: []string{"\tLSL\t[$]6"},
neg: []string{"\tMUL\t"},
},
{
fn: `
func $(n int) int {
return -128*n
}
`,
pos: []string{"\tLSL\t[$]7"},
neg: []string{"\tMUL\t"},
},
{
fn: `
func f0(x uint64) uint64 {