Trevor Gross
8199433bb2
Make use of new f16 and f128 config options
...
Change from `not(feature = "no-f16-f128")` to `f16_enabled` or
`f128_disabled`, as applicable.
2024-08-03 02:02:44 -04:00
Trevor Gross
b168f56dd4
Configure which platforms get f16 and f128 enabled by default
...
By moving the logic for which platforms get symbols to
`compiler_builtins` rather than rust-lang/rust, we can control where
symbols get enabled without relying on Cargo features. Using Cargo
features turned out to be a problem in [1].
This will help resolve errors like [2].
[1]: https://github.com/rust-lang/rust/issues/128358
[2]: https://github.com/rust-lang/rust/issues/128401
2024-08-03 02:02:44 -04:00
Trevor Gross
b32758cdc2
Add back remaining config on arm_aeabi_alias
...
Intrinsics marked with `arm_aeabi_alias = ...` were having the rest of
their attributes eaten. Add them back.
2024-08-03 02:02:44 -04:00
Trevor Gross
22e4aa37da
Switch to a target structure in build.rs
2024-08-03 02:02:41 -04:00
github-actions[bot]
85d4ef72c8
chore: release
2024-07-28 21:08:01 +00:00
Trevor Gross
99456ad08e
Set allow_dirty to release-plz
...
This should resolve the issue in
<https://github.com/rust-lang/compiler-builtins/pull/643#issuecomment-2254641520 >
2024-07-28 17:00:41 -04:00
Trevor Gross
364dd5fd5b
Add release-plz for automatic releases.
...
This is what `cc-rs` is using and should create a release PR whenever a
change to `master` is made. If the branch is merged, it should publish
the new version.
Includes configuration to disable semver checks and not keep a changelog
since this is an implementation detail.
2024-07-26 23:45:35 -04:00
Andrey Turkin
adabbe73d9
Implement __ctz*i2 intrinsics
2024-07-25 19:26:02 +03:00
Trevor Gross
6ef2b95d46
Add missing symbols from compiler-rt to the README
2024-07-24 13:06:15 +01:00
Trevor Gross
fb27c7283c
Move IBM extended double to the unneeded section
2024-07-24 13:06:15 +01:00
Trevor Gross
a96c82123e
Remove a broken link in README
2024-07-24 13:06:15 +01:00
Andrey Turkin
cc64c7978e
Never use C version of clz builtins
2024-07-24 12:50:04 +01:00
Andrey Turkin
a5c7a17d55
Implement remaining __clz*i2 intrinsics
2024-07-24 12:50:04 +01:00
Trevor Gross
ddd97dc19a
Fix missing extern "C" for unsafe functions
...
`unsafe` functions were being matched in a different block that did not
include `extern $abi`. This means that some intrinsics were getting
generated with the Rust ABI rather than C.
Combine the last two blocks using an optional token matcher, which fixes
this problem and is cleaner.
2024-07-23 04:35:04 -05:00
Andrey Turkin
45465cc488
Implement __bswap[sdt]i2 intrinsics
...
These can be emitted by gcc, at least if requested specifically via __builtin_bswap{32,64,128}.
2024-07-06 11:51:52 +02:00
Andrey Turkin
98195c0348
Get rid of a warning
2024-07-06 05:19:37 +03:00
Trevor Gross
32b12b647b
Remove unnecessary benchmark files
2024-07-05 22:17:50 +02:00
beetrees
086a1c33eb
Temporarily use define_rust_probestack;
2024-07-01 07:42:22 +01:00
beetrees
c6bf88ab1c
Ignore broken nightly/system builtins
2024-07-01 07:42:22 +01:00
beetrees
ffb31aee13
Fix incorrect rounding with subnormal/zero results of float multiplication
2024-06-30 22:03:33 +01:00
Trevor Gross
55b3f8b13d
Enable f128 -> f16 tests on Linux
...
Since updating the docker images in
<https://github.com/rust-lang/compiler-builtins/pull/625 >, it looks like
`__extendhftf2` and `__trunctfhf2` are available on all 64-bit Linux
platforms.
2024-06-25 23:57:08 +02:00
Amanieu d'Antras
1d7f2847e3
Release 0.1.113
2024-06-25 22:52:36 +01:00
beetrees
bf503b5c9b
Fix building on AVR
2024-06-23 19:19:25 +01:00
Trevor Gross
fdec3b6514
Fix unset variables in the build script
...
These were preventing building via Docker locally.
2024-06-22 16:15:46 +02:00
Trevor Gross
21690f7320
Skip f128 tests on powerpc64le
...
__addkf3 and __mulkf3 seem to hit a nondescript SIGILL. This is probably
likely to just be another Qemu limitation.
2024-06-22 06:05:25 -04:00
Trevor Gross
f2092967cb
Update the Ubuntu docker image to the latest version
2024-06-22 05:58:25 -04:00
Trevor Gross
e35091a2d0
Disable libm on x86 without sse2
...
In <https://github.com/rust-lang/compiler-builtins/pull/594 >, symbols
for the Rust port of libm were made always weakly available. This seems
to be causing problems on platforms with ABI issues, as explained at
<https://github.com/rust-lang/rust/pull/125016#issuecomment-2174572661 >.
Disable Rust libm on x86 without sse2 to mitigate this.
2024-06-17 19:38:55 -05:00
Trevor Gross
84e87eb15b
Add caching for downloading compiler-rt
2024-05-24 23:18:59 +02:00
Trevor Gross
98ddf3c66d
Enable cache for Docker images
2024-05-24 23:18:59 +02:00
Trevor Gross
d0fdc0044a
Enable cache for Cargo components of the build
2024-05-24 23:18:59 +02:00
Trevor Gross
6cd17ff4d2
Add benchmarks for floating point math
...
This adds comparisons among the compiler-builtins function, system
functions if available, and optionally handwritten assembly.
These also help us identify inconsistencies between this crate and
system functions, which may otherwise go unnoticed if intrinsics get
lowered to inline operations rather than library calls.
2024-05-24 02:49:41 -04:00
Quentin Perez
2fa55c4ef5
Add Apple visionOS support
2024-05-22 09:49:08 +02:00
Trevor Gross
81fbfedd92
Add some missing functions to examples/intrinsics
2024-05-21 20:13:40 +02:00
Trevor Gross
ec12399470
Update outdated contribution guidelines
2024-05-21 20:13:40 +02:00
Trevor Gross
324544fb6a
Add f16 and f128 intrinsics to the example test
2024-05-21 20:13:40 +02:00
Trevor Gross
d696144b87
Organize functions in intrinsics example
2024-05-21 20:13:40 +02:00
Trevor Gross
c7bd2a5655
Add ppc_alias to the intrinsics! macro
...
PowerPC platforms use `kf` rather than `tf` for `f128`. Add a way to
alias this in the macro to make the code cleaner.
This also fixes the names of `fixunstf*` and `fixtf*` on Power PC
(`fixunskf*` and `fixkf*` are correct).
2024-05-21 03:55:37 -04:00
Trevor Gross
ccd179b231
Add f128 float to integer conversion functions
...
Add the following:
- `__fixtfsi`
- `__fixtfdi`
- `__fixtfti`
- `__fixunstfsi`
- `__fixunstfdi`
- `__fixunstfti`
2024-05-20 20:01:33 -04:00
Trevor Gross
aaaf62bd6b
Add an apfloat fallback for float to integer tests
2024-05-20 20:01:19 -04:00
Trevor Gross
a3b1dfb8d5
Allow a specific fallback function in apfloat_fallback
...
`as` casts are only allowed for primitives, doing the same operations
with `rustc_apfloat` requires using functions. Add a way to specify
these separately.
2024-05-20 20:00:46 -04:00
Trevor Gross
fc53fb64fc
Make float to integer conversions generic
...
Deduplicate code used for float to integer conversions in order to make
adding `f128` conversion functions easier.
2024-05-20 19:46:53 -04:00
Trevor Gross
bac7b1e777
Add CastFrom as a convenience form of CastInto
2024-05-20 19:46:53 -04:00
Henry Wang
0722bc4275
Don't run verbatim test on windows-gnu
2024-05-21 01:09:47 +02:00
Henry Wang
7d60c93165
Only run --features c for verbatim test
2024-05-21 01:09:47 +02:00
theKidOfArcrania
416be726df
verbatim tests only need to build
2024-05-21 01:09:47 +02:00
theKidOfArcrania
fd290b1339
Properly escape /C and fix naming
2024-05-21 01:09:47 +02:00
theKidOfArcrania
e3d86a8350
Instead have cmd.exe dump out path
2024-05-21 01:09:47 +02:00
theKidOfArcrania
0000f98d73
Fix backslash
2024-05-21 01:09:47 +02:00
theKidOfArcrania
e246ba5a46
Use cmd.exe
2024-05-21 01:09:47 +02:00
theKidOfArcrania
24cb0c2bcc
Fix CI
2024-05-21 01:09:47 +02:00