mirror of https://github.com/golang/go.git
test/codegen: port math/bits.OnesCount tests to codegen
And remove them from ssa_test. Change-Id: I3efac5fea529bb0efa2dae32124530482ba5058e Reviewed-on: https://go-review.googlesource.com/98815 Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
f624445473
commit
18ae5eca3b
|
|
@ -547,34 +547,6 @@ var linuxAMD64Tests = []*asmTest{
|
||||||
`,
|
`,
|
||||||
pos: []string{"\tROLW\t\\$8,"},
|
pos: []string{"\tROLW\t\\$8,"},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func pop1(x uint64) int {
|
|
||||||
return bits.OnesCount64(x)
|
|
||||||
}`,
|
|
||||||
pos: []string{"\tPOPCNTQ\t", "support_popcnt"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func pop2(x uint32) int {
|
|
||||||
return bits.OnesCount32(x)
|
|
||||||
}`,
|
|
||||||
pos: []string{"\tPOPCNTL\t", "support_popcnt"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func pop3(x uint16) int {
|
|
||||||
return bits.OnesCount16(x)
|
|
||||||
}`,
|
|
||||||
pos: []string{"\tPOPCNTL\t", "support_popcnt"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func pop4(x uint) int {
|
|
||||||
return bits.OnesCount(x)
|
|
||||||
}`,
|
|
||||||
pos: []string{"\tPOPCNTQ\t", "support_popcnt"},
|
|
||||||
},
|
|
||||||
// multiplication merging tests
|
// multiplication merging tests
|
||||||
{
|
{
|
||||||
fn: `
|
fn: `
|
||||||
|
|
@ -1492,30 +1464,6 @@ var linuxARM64Tests = []*asmTest{
|
||||||
`,
|
`,
|
||||||
pos: []string{"TBZ"},
|
pos: []string{"TBZ"},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func $(x uint64) int {
|
|
||||||
return bits.OnesCount64(x)
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
pos: []string{"\tVCNT\t", "\tVUADDLV\t"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func $(x uint32) int {
|
|
||||||
return bits.OnesCount32(x)
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
pos: []string{"\tVCNT\t", "\tVUADDLV\t"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
fn: `
|
|
||||||
func $(x uint16) int {
|
|
||||||
return bits.OnesCount16(x)
|
|
||||||
}
|
|
||||||
`,
|
|
||||||
pos: []string{"\tVCNT\t", "\tVUADDLV\t"},
|
|
||||||
},
|
|
||||||
// Load-combining tests.
|
// Load-combining tests.
|
||||||
{
|
{
|
||||||
fn: `
|
fn: `
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,34 @@ func Len8(n uint8) int {
|
||||||
return bits.Len8(n)
|
return bits.Len8(n)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------------- //
|
||||||
|
// bits.OnesCount //
|
||||||
|
// -------------------- //
|
||||||
|
|
||||||
|
func OnesCount(n uint) int {
|
||||||
|
//amd64:"POPCNTQ",".*support_popcnt"
|
||||||
|
//arm64:"VCNT","VUADDLV"
|
||||||
|
return bits.OnesCount(n)
|
||||||
|
}
|
||||||
|
|
||||||
|
func OnesCount64(n uint64) int {
|
||||||
|
//amd64:"POPCNTQ",".*support_popcnt"
|
||||||
|
//arm64:"VCNT","VUADDLV"
|
||||||
|
return bits.OnesCount64(n)
|
||||||
|
}
|
||||||
|
|
||||||
|
func OnesCount32(n uint32) int {
|
||||||
|
//amd64:"POPCNTL",".*support_popcnt"
|
||||||
|
//arm64:"VCNT","VUADDLV"
|
||||||
|
return bits.OnesCount32(n)
|
||||||
|
}
|
||||||
|
|
||||||
|
func OnesCount16(n uint16) int {
|
||||||
|
//amd64:"POPCNTL",".*support_popcnt"
|
||||||
|
//arm64:"VCNT","VUADDLV"
|
||||||
|
return bits.OnesCount16(n)
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------ //
|
// ------------------------ //
|
||||||
// bits.TrailingZeros //
|
// bits.TrailingZeros //
|
||||||
// ------------------------ //
|
// ------------------------ //
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue