{
arch: "386",
os: "linux",
- imports: []string{"encoding/binary"},
+ imports: []string{"encoding/binary", "math"},
tests: linux386Tests,
},
{
{
arch: "mips",
os: "linux",
- imports: []string{"math/bits"},
+ imports: []string{"math/bits", "math"},
tests: linuxMIPSTests,
},
{
- arch: "mips64",
- os: "linux",
- tests: linuxMIPS64Tests,
+ arch: "mips64",
+ os: "linux",
+ imports: []string{"math"},
+ tests: linuxMIPS64Tests,
},
{
arch: "ppc64le",
}`,
pos: []string{"\tPOPCNTQ\t", "support_popcnt"},
},
+ {
+ fn: `
+ func $(x float64) float64 {
+ return math.Sqrt(x)
+ }
+ `,
+ pos: []string{"SQRTSD"},
+ },
// multiplication merging tests
{
fn: `
`,
neg: []string{"memmove"},
},
+
+ // Intrinsic tests for math
+ {
+ fn: `
+ func $(x float64) float64 {
+ return math.Sqrt(x)
+ }
+ `,
+ pos: []string{"FSQRT|SQRTSD"}, // 387|sse2
+ },
}
var linuxS390XTests = []*asmTest{
}
var linuxMIPSTests = []*asmTest{
+ // Intrinsic tests for math/bits
{
fn: `
func f0(a uint64) int {
`,
pos: []string{"\tCLZ\t"},
},
+ // Intrinsic tests for math.
+ {
+ fn: `
+ func $(x float64) float64 {
+ return math.Sqrt(x)
+ }
+ `,
+ pos: []string{"SQRTD"},
+ },
{
// check that stack store is optimized away
fn: `
pos: []string{"SLLV\t\\$17"},
neg: []string{"SGT"},
},
+ // Intrinsic tests for math.
+ {
+ fn: `
+ func $(x float64) float64 {
+ return math.Sqrt(x)
+ }
+ `,
+ pos: []string{"SQRTD"},
+ },
}
var linuxPPC64LETests = []*asmTest{