Skip to content
This repository was archived by the owner on Apr 28, 2025. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rust-lang/libm
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 69219c491ee9f05761d2068fd6d4c7c0de6faa3a
Choose a base ref
...
head repository: rust-lang/libm
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 96d1400326f47381858f8149451a2b2fd8de2ea4
Choose a head ref
  • 4 commits
  • 18 files changed
  • 1 contributor

Commits on Mar 19, 2025

  1. Upgrade all dependencies to the latest

    This is mostly done to get the latest version of `rand`, which includes
    some breaking changes.
    tgross35 committed Mar 19, 2025
    Configuration menu
    Copy the full SHA
    c9672e5 View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2025

  1. Replace calls to core::arch intrinsics with assembly

    Some backends may replace calls to `core::arch` with multiple calls to
    `sqrt` [1], which becomes recursive. Help mitigate this by replacing the
    call with assembly.
    
    Results in the same assembly as the current implementation when built
    with optimizations.
    
    [1]: rust-lang/compiler-builtins#649
    tgross35 committed Apr 9, 2025
    Configuration menu
    Copy the full SHA
    63d069a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4eb6705 View commit details
    Browse the repository at this point in the history
  3. Add assembly version of simple operations on aarch64

    Replace `core::arch` versions of the following with handwritten
    assembly, which avoids recursion issues (cg_gcc using `rint` as a
    fallback) as well as problems with `aarch64be`.
    
    * `rint`
    * `rintf`
    
    Additionally, add assembly versions of the following:
    
    * `fma`
    * `fmaf`
    * `sqrt`
    * `sqrtf`
    
    If the `fp16` target feature is available, which implies `neon`, also
    include the following:
    
    * `rintf16`
    * `sqrtf16`
    
    `sqrt` is added to match the implementation for `x86`. `fma` is included
    since it is used by many other routines.
    
    There are a handful of other operations that have assembly
    implementations. They are omitted here because we should have basic
    float math routines available in `core` in the near future, which will
    allow us to defer to LLVM for assembly lowering rather than implementing
    these ourselves.
    tgross35 committed Apr 9, 2025
    Configuration menu
    Copy the full SHA
    96d1400 View commit details
    Browse the repository at this point in the history
Loading