math, cmd/internal/gc, cmd/7g: enable SQRT inlining, add assembly implementation
benchmark old ns/op new ns/op delta
BenchmarkSqrt 474 16.5 -96.52%
BenchmarkSqrtIndirect 476 38.1 -92.00%
BenchmarkSqrtGo 484 483 -0.21%
Change-Id: I5ad0132feda0d3275a884523b9e79d83db4fc726
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/8465
Reviewed-by: David Crawshaw <crawshaw@golang.org>
diff --git a/src/cmd/internal/gc/walk.go b/src/cmd/internal/gc/walk.go
index a0a29d3..c845f78 100644
--- a/src/cmd/internal/gc/walk.go
+++ b/src/cmd/internal/gc/walk.go
@@ -624,7 +624,7 @@
if n.Left.Op == ONAME && n.Left.Sym.Name == "Sqrt" && n.Left.Sym.Pkg.Path == "math" {
switch Thearch.Thechar {
- case '5', '6':
+ case '5', '6', '7':
n.Op = OSQRT
n.Left = n.List.N
n.List = nil