• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

bitshifter / glam-rs / 35342051359
99%

Build:
DEFAULT BRANCH: main
Ran 18 Sep 2026 11:57AM UTC
Jobs 4
Files 154
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Sep 2026 11:55AM UTC coverage: 99.032% (-0.03%) from 99.058%
35342051359

push

github

web-flow
perf: use fma whenever the target supports it (#853)

# Objective

- Fixes #736.

The `fast-math` feature only gated one thing: FMA in the SSE2 back-end,
and only when the `fma` target feature was also enabled. Meanwhile the
NEON back-end has always used fused multiply-add unconditionally, and
the explicit `mul_add` API already uses FMA when the target supports it.
This was inconsistent.

## Solution

- FMA is now used in the SSE2 implementation whenever the target
supports it, instead of being gated by `fast-math`. This makes SSE2
consistent with NEON, which has always used fused multiply-add. FMA has
a single rounding step so the affected operations are at least as
accurate as before.
- The `fast-math` feature is deprecated and is now a no-op. It is kept
so existing manifests continue to build, and will be removed in a future
breaking release.
- NEON `vmla`/`vmls` intrinsics are switched to the explicit
`vfma`/`vfms` forms.
- Additional internal multiply-adds are fused: `Vec3A::cross`,
`Quat::slerp` and `Quat::mul_quat`.
- Added a CI job that tests with `-C target-feature=+fma`.

Measured on x86_64 with `cargo bench --bench quat --bench vec3a --
--quick` (`fma` vs baseline without FMA):

| bench | 16 | 1024 |
|---|---|---|
| `vec3a cross` | −3.0% | −1.8% |
| `vec3a slerp` | −10.6% | −11.2% |
| `quat slerp` | −10.7% | −10.9% |
| `quat mul quat` | −15.3% | −25.3% |

14 of 15 new or added lines in 6 files covered. (93.33%)

36 existing lines in 5 files now uncovered.

93232 of 94143 relevant lines covered (99.03%)

123530.13 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
94.4
-2.61% src/f32/neon/quat.rs

Coverage Regressions

Lines Coverage ∆ File
12
94.4
-2.61% src/f32/neon/quat.rs
8
97.96
-2.04% src/f32/coresimd/mat2.rs
8
99.22
-0.78% src/f64/dmat4.rs
5
85.92
-7.04% src/coresimd.rs
3
95.62
-2.19% src/bool/coresimd/bvec3a.rs
Jobs
ID Job ID Ran Files Coverage
1 scalar_math-ubuntu-latest - 35342051359.1 18 Sep 2026 11:57AM UTC 121
98.89
GitHub Action Run
2 native_simd-macos-latest - 35342051359.2 18 Sep 2026 11:57AM UTC 122
98.89
GitHub Action Run
3 core_simd-ubuntu-latest - 35342051359.3 18 Sep 2026 11:57AM UTC 121
98.93
GitHub Action Run
4 native_simd-ubuntu-latest - 35342051359.4 18 Sep 2026 11:57AM UTC 122
98.88
GitHub Action Run
Source Files on build 35342051359
  • Tree
  • List 154
  • Changed 33
  • Source Changed 6
  • Coverage Changed 31
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35342051359
  • ca88a767 on github
  • Prev Build on main (#35218159043)
  • Next Build on main (#35491186871)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc