Commit Graph

229 Commits

Author SHA1 Message Date
Amanieu d'Antras c3737d59fd Merge pull request #267 from Amanieu/fmaf 2022-08-10 02:17:52 +02:00
Amanieu d'Antras 6fea5fbe1a Fix fmaf not to depend on FE_TOWARDZERO
Ported from upstream musl commit 4f3d346bffdf9ed2b1803653643dc31242490944

Fixes #263
2022-08-10 01:11:33 +01:00
Amanieu d'Antras c108db9ea8 Merge pull request #265 from ankane/no_panic 2022-08-01 16:53:42 +02:00
Andrew Kane e4c6d24a71 Ensure more functions do not panic 2022-07-31 13:57:20 -07:00
Outurnate 1236519785 Use smaller IPIO2 table for 16 and 32 bit architectures 2022-07-31 14:37:57 -04:00
Andrew Kane 33ccb28a97 Remove panics from tgamma and tgammaf 2022-07-29 16:52:30 -07:00
Peter Michael Green 5e68d37130 Apply formatting fixes from CI 2022-01-04 21:16:11 +00:00
Peter Michael Green 9b6f469d5b allow force_eval! to produce a result and use that result to more explicitly force rounding on x87. 2022-01-04 21:06:28 +00:00
Peter Michael Green 1606eeae5c only allow x87-specific result in j1f.rs test on x87 2022-01-04 20:59:42 +00:00
Peter Michael Green db80cfb906 round to storage format in some tests before comparison to prevent spurious errors on x87. 2022-01-04 20:30:43 +00:00
Peter Michael Green fa70d9bda7 Add forced rounding to storage format for x87 to rem_pio2.rs as well. 2022-01-04 20:30:43 +00:00
Peter Michael Green 16ce35bb19 Use force_eval instead of to_bits/from_bits combination,
Using to_bits/from_bits to force conversion to storage format
apparently doesn't work in release mode. Also add an architecture
conditional to avoid pessimising other architectures.
2022-01-04 20:30:43 +00:00
Peter Michael Green 8b0db9f5ba Fix testcases on x87 2022-01-04 20:30:43 +00:00
Peter Michael Green 5672d67229 force test_near_pi in rem_pio2.rs to be evaluated at runtime not compiletime. 2022-01-04 20:30:43 +00:00
Amanieu d'Antras 66925cff62 Disable musl tests on powerpc64 2022-01-04 00:09:07 +01:00
Amanieu d'Antras d1e9aa0f11 Disable powerpc64 tests which were broken by the LLVM 13 upgrade 2022-01-03 19:00:31 +01:00
Brian Vincent 842592e468 Optimize round and roundf 2021-06-30 22:35:47 -05:00
Jethro Beekman 8f10cf581f Fix substract with borrow in FMA
Fixes #242
2021-06-24 15:59:32 +02:00
Jethro Beekman c18c704856 Fix build failure with latest nightly 2021-06-24 15:59:32 +02:00
Alex Crichton fe396e00b7 Use macros for more division/array checks (#244)
* Use macros for more division/array checks

This commit moves over more array accesses to the `i!` macro to avoid
bounds checks when debug assertions are disabled. This is surfaced from
rust-lang/compiler-builtins#360 where recent changes in codegen units
has caused some bounds checks to not get elided in release mode. This
also adds a `div!` macro to work around rust-lang/rust#72751.

* Don't test/bench our shim crate

It's not intended to run all our tests
2020-05-29 14:16:51 -05:00
AJ Frantz e149ec36ef Fix sincosf for interval (7*pi/4, 9*pi/4) (#233)
A mistake was made in porting musl's implementation which caused the sin
and cos components to be reversed.

closes #232
2019-11-22 13:16:00 -06:00
Christopher Serr a5e39d8f1a Fix sincosf(PI) (#229)
Looks like the implementation was not ported correctly. Some negations
were forgotten in a certain branch. Here is the original code in musl
that has the negations:

https://github.com/bpowers/musl/blob/94cb2ec2a0ffcb47d24dbf7a30e462505396cf54/src/math/sincosf.c#L66-L67

Resolves #228
2019-10-18 08:23:57 -05:00
Lokathor 52983bee33 suppress useless clippy warnings 2019-09-05 08:57:15 -06:00
Lokathor 27705ead8a use sebug_assertions 2019-09-05 08:33:34 -06:00
Lokathor 7474c17c6a swap stable to be unstable, use debug_assertions 2019-09-05 08:33:23 -06:00
Lokathor 2a89eb02ca swap stable to be unstable 2019-09-05 08:33:03 -06:00
Lokathor cd32f2619a rustfmt fixes 2019-08-13 23:45:50 -06:00
Lokathor 2df659a64b slightly improve spec and sanity check coverage 2019-08-13 23:40:54 -06:00
Lokathor b0f666e1a2 update comments 2019-08-08 18:21:18 -06:00
Lokathor a3d55e685d update comments 2019-08-08 18:21:10 -06:00
Lokathor a9fa14dd6a move use/const statements to a limited scope 2019-08-07 14:16:10 -06:00
Lokathor 519c5d6cdd apply rustfmt 2019-08-07 14:10:34 -06:00
Lokathor b351893c5d Improve sqrt/sqrtf if stable intrinsics allow 2019-08-07 14:06:12 -06:00
Alex Crichton a3a35958de Merge pull request #209 from gnzlbg/fma
Fix overflow bugs in fma
2019-07-11 09:29:20 -05:00
gnzlbg a52ff87b71 Fix overflow bug in fma 2019-07-10 18:33:38 +02:00
Alex Crichton a0a5bd85c9 Remove most #[inline] annotations
These annotations fall into a few categories

* Some simply aren't needed since functions will always be in the same
  CGU anyway and are already candidates for inlining.
* Many are on massive functions which shouldn't be inlined across crates
  due to code size concerns.
* Others aren't necessary since calls to this crate are rarely inlined
  anyway (since it's lowered through LLVM).

If this crate is called directly and inlining is needed then LTO can
always be turned on, otherwise this will benefit downstream consumers by
avoiding re-codegen'ing so many functions.
2019-07-10 08:42:28 -07:00
gnzlbg 4420289c7c Add FMA tests that cause it to segfault 2019-07-10 16:57:13 +02:00
Alex Crichton 3a59e938c7 Merge pull request #205 from gnzlbg/fenv
Floating-point environment APIs are private
2019-07-09 10:47:50 -05:00
gnzlbg b5bc134383 Floating-point environment APIs are private 2019-07-09 17:33:01 +02:00
gnzlbg 4c49563a8a Add nextafter and nextafterf from musl 2019-07-09 17:17:08 +02:00
Alex Crichton f43bc0d254 Merge pull request #196 from Schultzer/add-remainder
Add remainder
2019-07-04 06:45:20 +02:00
gnzlbg 3f815cee8b Remove traits from README 2019-07-03 23:53:35 +02:00
gnzlbg 5ec03fb1bb Remove F32Ext and F64Ext 2019-07-03 23:35:07 +02:00
Benjamin Schultzer da9c12b2da Only return the fp value.
Signed-off-by: Benjamin Schultzer <benjamin@schultzer.com>
2019-07-03 14:24:16 -07:00
Benjamin Schultzer a0dd0550ad Add remainder
This PR adds the missing `remainder` and `remainderf` found in musl libm respectly https://git.musl-libc.org/cgit/musl/tree/src/math/remainder.c and https://git.musl-libc.org/cgit/musl/tree/src/math/remainderf.c

Signed-off-by: Benjamin Schultzer <benjamin@schultzer.com>
2019-07-03 12:01:21 -07:00
Benjamin Schultzer 311e4c8407 Add signum
Signed-off-by: Benjamin Schultzer <benjamin@schultzer.com>
2019-07-02 12:02:43 -07:00
Alex Crichton 885afa39c2 Merge pull request #191 from m1el/fuzz-rem-overflows
Fixed a few int overflows
2019-07-02 10:41:48 -05:00
Igor null 0f037e9a64 Fixed a few int overflows
rem_pio2 had incorrect u32/i32 operations
remquo has a straight int overflow
2019-07-02 16:48:59 +03:00
Benjamin Schultzer c345238ed2 Add benchmark suite
Signed-off-by: Benjamin Schultzer <benjamin@schultzer.com>
2019-07-01 18:37:23 -07:00
gnzlbg 57b168cda5 Merge pull request #188 from m1el/negative-round
Fixed rounding to negative zero
2019-07-01 16:38:33 +02:00