<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/library/compiler-builtins/etc/function-definitions.json, branch auto</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=auto</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=auto'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-05-03T18:17:49+00:00</updated>
<entry>
<title>Use runtime feature detection for fma routines on x86</title>
<updated>2025-05-03T18:17:49+00:00</updated>
<author>
<name>Trevor Gross</name>
<email>tmgross@umich.edu</email>
</author>
<published>2025-04-29T22:16:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8995ac0448312c94f85ffe3ec92e44b85834aead'/>
<id>urn:sha1:8995ac0448312c94f85ffe3ec92e44b85834aead</id>
<content type='text'>
Get performance closer to the glibc implementations by adding assembly
fma routines, with runtime feature detection so they are used even if
not compiled with `+fma` (as the distributed standard library is often
not). Glibc uses ifuncs, this implementation stores a function pointer
in an atomic.

Results of CPU flags are also cached in order to avoid repeating the
startup time in calls to different functions. The feature detection code
is a slightly simplified version of `std-detect`.

Musl sources were used as a reference [1].

Fixes: https://github.com/rust-lang/rust/issues/140452 once synced

[1]: https://github.com/bminor/musl/blob/c47ad25ea3b484e10326f933e927c0bc8cded3da/src/math/x32/fma.c
</content>
</entry>
<entry>
<title>Rename the i686 module to x86</title>
<updated>2025-05-03T18:17:49+00:00</updated>
<author>
<name>Trevor Gross</name>
<email>tmgross@umich.edu</email>
</author>
<published>2025-05-01T17:49:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4a1dc96652ea5cbd7e0273df19c828324699f4db'/>
<id>urn:sha1:4a1dc96652ea5cbd7e0273df19c828324699f4db</id>
<content type='text'>
This module is used for both i686 and x86-64.
</content>
</entry>
<entry>
<title>Refactor the fma modules</title>
<updated>2025-04-29T23:09:50+00:00</updated>
<author>
<name>Trevor Gross</name>
<email>tmgross@umich.edu</email>
</author>
<published>2025-04-29T20:52:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=caf337d46742aca1705c3254e8d45d7238a8435c'/>
<id>urn:sha1:caf337d46742aca1705c3254e8d45d7238a8435c</id>
<content type='text'>
Move implementations to `generic/` like the other functions. This also
allows us to combine the `fma` and `fma_wide` modules.
</content>
</entry>
<entry>
<title>libm: Reorganize into compiler-builtins</title>
<updated>2025-04-19T21:20:24+00:00</updated>
<author>
<name>Trevor Gross</name>
<email>tmgross@umich.edu</email>
</author>
<published>2025-04-19T20:58:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=911a70381a9e7c84400b156e3cbcd805f3e64034'/>
<id>urn:sha1:911a70381a9e7c84400b156e3cbcd805f3e64034</id>
<content type='text'>
Distribute everything from `libm/` to better locations in the repo.
`libm/libm/*` has not moved yet to avoid Git seeing the move as an edit
to `Cargo.toml`.

Files that remain to be merged somehow are in `etc/libm`.
</content>
</entry>
</feed>
