mirror of
https://github.com/golang/go
synced 2024-10-05 09:21:22 -06:00
b4b2ddb867
The existing implementation uses code written in Go to implement Sqrt; this adds the assembler to use the sqrt instruction for Power and makes the necessary changes to allow it to be inlined. The following tests showed this relative improvement: benchmark delta BenchmarkSqrt -97.91% BenchmarkSqrtIndirect -96.65% BenchmarkSqrtGo -35.93% BenchmarkSqrtPrime -96.94% Fixes #14349 Change-Id: I8074f4dc63486e756587564ceb320aca300bf5fa Reviewed-on: https://go-review.googlesource.com/19515 Reviewed-by: Minux Ma <minux@golang.org>
15 lines
327 B
ArmAsm
15 lines
327 B
ArmAsm
// Copyright 2016 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// +build ppc64 ppc64le
|
|
|
|
#include "textflag.h"
|
|
|
|
// func Sqrt(x float64) float64
|
|
TEXT ·Sqrt(SB),NOSPLIT,$0
|
|
FMOVD x+0(FP), F0
|
|
FSQRT F0, F0
|
|
FMOVD F0, ret+8(FP)
|
|
RET
|