Commit Graph

34 Commits

Author SHA1 Message Date
est31
f90792e1bc Add i128 <-> float conversion functions 2017-05-06 02:22:54 +02:00
est31
144e54d7b0 Rename float conversion macros to something nicer 2017-05-05 23:31:41 +02:00
Jorge Aparicio
b8e8c7f693 no_std compatible tester 2017-04-10 14:38:17 -05:00
Jorge Aparicio
cc0d8ba2d1 remove the current test suite 2017-04-10 11:14:05 -05:00
Jorge Aparicio
109c33ed0a test out of range condition using f64
to avoid imprecision due to rounding to f32
2017-04-08 10:18:19 -05:00
Jorge Aparicio
4c556dc9e7 fix quickcheck tests
the check! macro syntax has changed
2017-03-06 12:17:41 -05:00
Wilfried Chauveau
09d2f2f1f5 exclude from tests values out of integer range (and NaN). 2017-03-06 11:56:52 -05:00
Wilfried Chauveau
d96102d270 implement float/double to (u)int conversion. 2017-03-06 11:56:52 -05:00
Wilfried Chauveau
293fef5ebe impl (unsigned/signed) int to single/double precision float conversion based on llvm algorithms. 2017-03-06 11:55:57 -05:00
Jorge Aparicio
5bb969d8f5 implement float subtraction
as a + (-b)
2017-02-08 10:10:40 -05:00
Jorge Aparicio
47b45d1d62 adjust the check! macro to accept AAPCS intrinsics 2017-02-07 23:07:51 -05:00
Jorge Aparicio
57085be2ea ARM: keep some non-aeabi symbols around
- multi3: there's no aeabi equivalent
- divmod{s,d}i4: these are directly called by __aeabi_{l,i}divmod
- add{s,d}f3: required by the C sub{s,d}f3 implementation

but make sure they also use the AAPCS calling convention
2017-02-07 14:28:02 -05:00
Jorge Aparicio
dfa7b161aa use AAPCS calling convention on all aeabi intrinsics
also, on ARM, inline(always) the actual implementation of the intrinsics so we
end with code like this:

```
00000000 <__aeabi_dadd>:
    (implementation here)
```

instead of "trampolines" like this:

```
00000000 <__aeabi_dadd>:
    (shuffle registers)
    (call __adddf3)

00000000 <__adddf3>:
    (implementation here)
```

closes #116
2017-02-07 09:41:26 -05:00
Matt Ickstadt
f68475e080 Use better cfg name for arm-linux tests 2016-11-12 15:52:59 -06:00
Matt Ickstadt
655f642d3f Add float quickcheck 2016-11-12 14:55:28 -06:00
Christopher Serr
4733417140 Fix a few clippy warnings 2016-10-16 13:53:31 +02:00
Jorge Aparicio
c82403551d fix unsafe warnings 2016-10-07 18:19:40 -05:00
Jorge Aparicio
fd69beba29 get profile.dev (-debug-assertions) + LTO working 2016-10-07 18:19:40 -05:00
Matt Ickstadt
6622c49be6 Implement powi_f2 2016-10-03 11:20:42 -05:00
Matt Ickstadt
02140cddc9 Initial implementation of multitester 2016-10-02 14:38:40 -05:00
Jorge Aparicio
3b8dedd416 Revert "Merge pull request #48 from mattico/add_float_quickcheck"
This reverts commit e34a6058df, reversing
changes made to cab88e6133.
2016-09-30 19:12:17 -05:00
Matt Ickstadt
010d153966 Add Quickcheck types for float tests 2016-09-30 14:29:52 -05:00
Matt Ickstadt
9b1fed8d3f Cleanup add builtin assignments 2016-09-30 14:29:52 -05:00
Matt Ickstadt
58e89b3024 Add floating point deconstruction helpers 2016-09-30 14:29:52 -05:00
Jorge Aparicio
f77ca915c4 add an opt-in cargo feature to build intrinsics from compiler-rt source
closes #63
cc #66
2016-09-29 16:06:24 -05:00
Alex Crichton
8e161a791a Expand and refactor teting infrastructure
This commit moves over most of the testing infrastructure to in-tree docker
images that are all dispatched to from Travis (no other test configuration).
This allows versioning modifications to the test infrastructure as well as the
code itself. Additionally separate docker images allows for easy modification of
one without worrying about tampering of others as well as easy addition of new
targets by simply adding a new `Dockerfile`.

Additionally this commit bundles the master version of the `compiler-rt` source
repository from `llvm-mirror/compiler-rt` to test against. The compiler-rt
library itself is compiled as a `cdylib` which is then dynamically located at
runtime and we look for symbols in. There's a few hoops here, but they currently
get the job done.

All tests now execute against both gcc_s and compiler-rt, and this
testing strategy is now all hidden behind a macro as well (refactoring
all existing tests along the way).
2016-09-28 22:09:55 -07:00
homunkulus
d5e38beef9 Auto merge of #71 - japaric:aeabi-aliases, r=japaric
add missing aeabi aliases
2016-09-22 22:55:43 +00:00
Jorge Aparicio
d34be6ab4e add missing aeabi aliases 2016-09-22 17:02:36 -05:00
Jorge Aparicio
384c48ce9b don't test always against gcc_s
instead test half of the time against gcc_s and the other half test
against the native operation (\*).

(\*) Not all the targets have available a native version of the
intrinsics under test. On those targets we'll end up testing our
implementation against itself half of the time. This is not much of a
problem because we do several quickcheck runs per intrinsic.
2016-09-21 21:38:06 -05:00
Jorge Aparicio
337bd7e209 armhf: don't compare our impls against gcc_s 2016-09-21 21:14:38 -05:00
Jorge Aparicio
9493c37455 test our implementations against gcc_s
if it exposes the same intrinsics that we implement -- gcc_s doesn't
implement all the intrinsics for all the architectures.

closes #65
2016-09-16 15:53:14 -05:00
Jorge Aparicio
2e561b3869 use utility function to compare the repr of floats
follow up of #43
2016-08-21 11:24:58 -05:00
Matt Ickstadt
da53b70d34 Use mem::swap to swap variables 2016-08-20 22:30:02 -05:00
Matt Ickstadt
ef16de3d37 Implement soft float add builtins 2016-08-20 16:06:02 -05:00