From d5ff631e6b86787857913049fc5312969211a1c7 Mon Sep 17 00:00:00 2001 From: Alberto Donizetti Date: Mon, 9 Apr 2018 14:24:35 +0200 Subject: [PATCH] test/codegen: port last remaining misc bit/arithmetic tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit And delete them from asm_test. Change-Id: I9a75efe9858ef9d7ac86065f860c2ae3f25b0941 Reviewed-on: https://go-review.googlesource.com/105597 Reviewed-by: Daniel Martí --- src/cmd/compile/internal/gc/asm_test.go | 37 ------------------------- test/codegen/arithmetic.go | 5 ++++ test/codegen/bitfield.go | 8 ++++++ 3 files changed, 13 insertions(+), 37 deletions(-) diff --git a/src/cmd/compile/internal/gc/asm_test.go b/src/cmd/compile/internal/gc/asm_test.go index a503b89bf3..a23e958995 100644 --- a/src/cmd/compile/internal/gc/asm_test.go +++ b/src/cmd/compile/internal/gc/asm_test.go @@ -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 diff --git a/test/codegen/arithmetic.go b/test/codegen/arithmetic.go index 0cd4d2ee23..d38f80c1e9 100644 --- a/test/codegen/arithmetic.go +++ b/test/codegen/arithmetic.go @@ -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 { diff --git a/test/codegen/bitfield.go b/test/codegen/bitfield.go index 937f735cea..08788f1447 100644 --- a/test/codegen/bitfield.go +++ b/test/codegen/bitfield.go @@ -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 +}