mirror of https://github.com/golang/go.git
test/codegen: port 2^n muls tests to codegen harness
And delete them from the asm_test.go file. Change-Id: I124c8c352299646ec7db0968cdb0fe59a3b5d83d Reviewed-on: https://go-review.googlesource.com/99475 Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Giovanni Bajo <rasky@develer.com>
This commit is contained in:
parent
0585d41c87
commit
3772b2e1d5
|
|
@ -272,26 +272,6 @@ var allAsmTests = []*asmTests{
|
||||||
}
|
}
|
||||||
|
|
||||||
var linuxAMD64Tests = []*asmTest{
|
var linuxAMD64Tests = []*asmTest{
|
||||||
// multiplication by powers of two
|
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func $(n int) int {
|
|
||||||
return n * 64
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
pos: []string{"\tSHLQ\t\\$6,"},
|
|
||||||
neg: []string{"IMULQ"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func $(n int) int {
|
|
||||||
return -128*n
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
pos: []string{"SHLQ"},
|
|
||||||
neg: []string{"IMULQ"},
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
fn: `
|
fn: `
|
||||||
func $(x int) int {
|
func $(x int) int {
|
||||||
|
|
@ -927,26 +907,6 @@ var linuxAMD64Tests = []*asmTest{
|
||||||
}
|
}
|
||||||
|
|
||||||
var linux386Tests = []*asmTest{
|
var linux386Tests = []*asmTest{
|
||||||
// multiplication by powers of two
|
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func $(n int) int {
|
|
||||||
return 32*n
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
pos: []string{"SHLL"},
|
|
||||||
neg: []string{"IMULL"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func $(n int) int {
|
|
||||||
return -64*n
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
pos: []string{"SHLL"},
|
|
||||||
neg: []string{"IMULL"},
|
|
||||||
},
|
|
||||||
|
|
||||||
// multiplication merging tests
|
// multiplication merging tests
|
||||||
{
|
{
|
||||||
fn: `
|
fn: `
|
||||||
|
|
@ -1155,26 +1115,6 @@ var linuxS390XTests = []*asmTest{
|
||||||
}
|
}
|
||||||
|
|
||||||
var linuxARMTests = []*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: `
|
fn: `
|
||||||
func f0(x uint32) uint32 {
|
func f0(x uint32) uint32 {
|
||||||
|
|
@ -1222,26 +1162,6 @@ var linuxARMTests = []*asmTest{
|
||||||
}
|
}
|
||||||
|
|
||||||
var linuxARM64Tests = []*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: `
|
fn: `
|
||||||
func f0(x uint64) uint64 {
|
func f0(x uint64) uint64 {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
// asmcheck
|
||||||
|
|
||||||
|
// Copyright 2018 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package codegen
|
||||||
|
|
||||||
|
// This file contains codegen tests related to arithmetic
|
||||||
|
// simplifications/optimizations.
|
||||||
|
|
||||||
|
func Pow2Muls(n1, n2 int) (int, int) {
|
||||||
|
// amd64:"SHLQ\t[$]5",-"IMULQ"
|
||||||
|
// 386:"SHLL\t[$]5",-"IMULL"
|
||||||
|
// arm:"SLL\t[$]5",-"MUL"
|
||||||
|
// arm64:"LSL\t[$]5",-"MUL"
|
||||||
|
a := n1 * 32
|
||||||
|
|
||||||
|
// amd64:"SHLQ\t[$]6",-"IMULQ"
|
||||||
|
// 386:"SHLL\t[$]6",-"IMULL"
|
||||||
|
// arm:"SLL\t[$]6",-"MUL"
|
||||||
|
// arm64:"LSL\t[$]6",-"MUL"
|
||||||
|
b := -64 * n2
|
||||||
|
|
||||||
|
return a, b
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue