go/src/math
root a8a6f90a23 math: support to handle huge arguments in tan function on s390x
Currently on s390x, tan assembly implementation is not handling huge arguments at all. This change is to check for large arguments and revert back to native go implantation from assembly code in case of huge arguments.

The changes are implemented in assembly code to get better performance over native go implementation.

Benchmark details of tan function with table driven inputs are updated as part of the issue link.

Fixes #37854

Change-Id: I4e5321e65c27b7ce8c497fc9d3991ca8604753d2
Reviewed-on: https://go-review.googlesource.com/c/go/+/470595
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
2023-07-27 23:30:00 +00:00
..
big math/big: rename Int.ToFloat64 to Float64 2023-06-02 14:22:24 +00:00
bits math/bits: directly calculate quo/rem when hi is zero in Div64 2022-11-14 05:09:39 +00:00
cmplx all: add missing periods in comments 2022-11-18 17:59:44 +00:00
rand math/rand: clarify Seed deprecation note 2023-04-04 20:18:09 +00:00
abs.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
acos_s390x.s
acosh.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
acosh_s390x.s
all_test.go math: add test that covers riscv64 fnm{add,sub} codegen 2023-07-07 17:39:26 +00:00
arith_s390x.go
arith_s390x_test.go
asin.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
asin_s390x.s
asinh.go all: fix mismatched symbols 2023-06-13 20:02:49 +00:00
asinh_s390x.s
atan.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
atan2.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
atan2_s390x.s
atan_s390x.s
atanh.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
atanh_s390x.s all: replace leading spaces with tabs in assembly 2023-03-23 20:52:57 +00:00
bits.go all: replace `` and '' with “ (U+201C) and ” (U+201D) in doc comments 2022-04-05 17:52:29 +00:00
cbrt.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
cbrt_s390x.s
const.go math: show value of integer constants in comments 2022-09-21 14:07:39 +00:00
const_test.go
copysign.go math: improve documentation of Copysign 2022-04-14 17:42:53 +00:00
cosh_s390x.s
dim.go math: document that Min/Max differ from min/max 2023-06-15 19:45:12 +00:00
dim_amd64.s
dim_arm64.s
dim_asm.go
dim_noasm.go
dim_riscv64.s
dim_s390x.s
erf.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
erf_s390x.s
erfc_s390x.s
erfinv.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
example_test.go
exp.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
exp2_asm.go
exp2_noasm.go
exp_amd64.go
exp_amd64.s
exp_arm64.s
exp_asm.go
exp_noasm.go
exp_s390x.s
expm1.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
expm1_s390x.s
export_s390x_test.go
export_test.go
floor.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
floor_386.s
floor_amd64.s
floor_arm64.s
floor_asm.go
floor_noasm.go
floor_ppc64x.s
floor_s390x.s
floor_wasm.s
fma.go math: fix portable FMA when x*y < 0 and x*y == -z 2023-07-05 22:05:30 +00:00
frexp.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
gamma.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
huge_test.go math: test large negative values as args for trig functions 2023-07-17 21:05:34 +00:00
hypot.go math: optimize Hypot function 2022-10-01 01:51:35 +00:00
hypot_386.s
hypot_amd64.s
hypot_asm.go
hypot_noasm.go
j0.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
j1.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
jn.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
ldexp.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
lgamma.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
log.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
log1p.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
log1p_s390x.s
log10.go
log10_s390x.s
log_amd64.s all: replace leading spaces with tabs in assembly 2023-03-23 20:52:57 +00:00
log_asm.go
log_s390x.s
log_stub.go
logb.go math: fix function name in comment 2022-11-07 19:46:45 +00:00
mod.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
modf.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
modf_arm64.s
modf_asm.go
modf_noasm.go
modf_ppc64x.s
nextafter.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
pow.go math: handle int64 overflows for odd integer exponents in Pow(-0, y) 2023-01-24 19:10:58 +00:00
pow10.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
pow_s390x.s all: fix spelling errors 2023-06-14 00:03:57 +00:00
remainder.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
signbit.go
sin.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
sin_s390x.s
sincos.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
sinh.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
sinh_s390x.s
sqrt.go cmd/compile,math: remove all sqrt assembly code 2022-08-15 17:07:57 +00:00
stubs.go
stubs_s390x.s
tan.go all: fix some lint issues 2022-05-08 17:27:54 +00:00
tan_s390x.s math: support to handle huge arguments in tan function on s390x 2023-07-27 23:30:00 +00:00
tanh.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
tanh_s390x.s
trig_reduce.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
unsafe.go