mirror of
https://github.com/golang/go
synced 2024-11-02 11:50:30 +00:00
test/codegen: port last remaining misc bit/arithmetic tests
And delete them from asm_test. Change-Id: I9a75efe9858ef9d7ac86065f860c2ae3f25b0941 Reviewed-on: https://go-review.googlesource.com/105597 Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
This commit is contained in:
parent
49ed4cbe85
commit
d5ff631e6b
3 changed files with 13 additions and 37 deletions
|
@ -238,11 +238,6 @@ var allAsmTests = []*asmTests{
|
|||
os: "linux",
|
||||
tests: linuxARM64Tests,
|
||||
},
|
||||
{
|
||||
arch: "mips64",
|
||||
os: "linux",
|
||||
tests: linuxMIPS64Tests,
|
||||
},
|
||||
{
|
||||
arch: "amd64",
|
||||
os: "plan9",
|
||||
|
@ -251,14 +246,6 @@ var allAsmTests = []*asmTests{
|
|||
}
|
||||
|
||||
var linuxAMD64Tests = []*asmTest{
|
||||
{
|
||||
fn: `
|
||||
func $(x int) int {
|
||||
return x * 96
|
||||
}
|
||||
`,
|
||||
pos: []string{"\tSHLQ\t\\$5,", "\tLEAQ\t\\(.*\\)\\(.*\\*2\\),"},
|
||||
},
|
||||
{
|
||||
// make sure assembly output has matching offset and base register.
|
||||
fn: `
|
||||
|
@ -339,17 +326,6 @@ var linuxARM64Tests = []*asmTest{
|
|||
`,
|
||||
pos: []string{"\tAND\t"},
|
||||
},
|
||||
{
|
||||
// check that we don't emit comparisons for constant shift
|
||||
fn: `
|
||||
//go:nosplit
|
||||
func $(x int) int {
|
||||
return x << 17
|
||||
}
|
||||
`,
|
||||
pos: []string{"LSL\t\\$17"},
|
||||
neg: []string{"CMP"},
|
||||
},
|
||||
// Load-combining tests.
|
||||
{
|
||||
fn: `
|
||||
|
@ -375,19 +351,6 @@ var linuxARM64Tests = []*asmTest{
|
|||
},
|
||||
}
|
||||
|
||||
var linuxMIPS64Tests = []*asmTest{
|
||||
{
|
||||
// check that we don't emit comparisons for constant shift
|
||||
fn: `
|
||||
func $(x int) int {
|
||||
return x << 17
|
||||
}
|
||||
`,
|
||||
pos: []string{"SLLV\t\\$17"},
|
||||
neg: []string{"SGT"},
|
||||
},
|
||||
}
|
||||
|
||||
var plan9AMD64Tests = []*asmTest{
|
||||
// We should make sure that the compiler doesn't generate floating point
|
||||
// instructions for non-float operations on Plan 9, because floating point
|
||||
|
|
|
@ -30,6 +30,11 @@ func Pow2Muls(n1, n2 int) (int, int) {
|
|||
return a, b
|
||||
}
|
||||
|
||||
func Mul_96(n int) int {
|
||||
// amd64:`SHLQ\t[$]5`,`LEAQ\t\(.*\)\(.*\*2\),`
|
||||
return n * 96
|
||||
}
|
||||
|
||||
// Multiplications merging tests
|
||||
|
||||
func MergeMuls1(n int) int {
|
||||
|
|
|
@ -222,3 +222,11 @@ func ubfx11(x uint64) uint64 {
|
|||
// arm64:"UBFX\t[$]1, R[0-9]+, [$]19",-"LSL",-"LSR"
|
||||
return ((x & 0xfffff) << 3) >> 4
|
||||
}
|
||||
|
||||
// Check that we don't emit comparisons for constant shifts.
|
||||
//go:nosplit
|
||||
func shift_no_cmp(x int) int {
|
||||
// arm64:`LSL\t[$]17`,-`CMP`
|
||||
// mips64:`SLLV\t[$]17`,-`SGT`
|
||||
return x << 17
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue