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

stillwater-sc / universal / 25353499732
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: fix/issue-ci-ereal-regression-runtime
DEFAULT BRANCH: master
Ran 05 May 2026 02:15AM UTC
Jobs 1
Files 648
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

05 May 2026 01:47AM UTC coverage: 84.01% (-0.006%) from 84.016%
25353499732

push

github

web-flow
feat(mxfloat): full constexpr support across all operators (#812)

Promotes mxblock (OCP MX block format: e8m0 scale + microfloat element
array) to fully constexpr across construction, quantize, dequantize,
operator[], and dot product.  Builds on the just-merged constexpr
e8m0 (PR #810) and microfloat (PR #811); the only new code paths are
mxblock-specific quantization helpers that bridge std::log2/floor/ldexp
to constexpr.  Part of Epic #723.

What changed
------------

include/sw/universal/number/mxfloat/mxblock_impl.hpp:
  * setbits() marked constexpr (delegates to e8m0::setbits, already constexpr).
  * operator[](size_t) marked constexpr.
  * dot(const mxblock&) marked constexpr (FP-accumulated dot product
    using element-wise to_float; both sides are constexpr after PR #811).
  * dequantize(float*, size_t) marked constexpr.
  * get_element_float() helper marked constexpr.
  * set_element_from_float() marked constexpr; std::round replaced
    with `static_cast<int>(v + (v < 0 ? -0.5f : 0.5f))` at constant
    evaluation; runtime path keeps std::round for performance / bit
    stability with prior behavior.
  * quantize(const float*, size_t) marked constexpr with
    std::is_constant_evaluated() dispatch:
      - std::fabs        -> cx_fabs (sign-flip)
      - std::floor(log2) -> cx_floor_log2 (IEEE 754 bit-extraction;
                            normals via rawExp - 127, subnormals via
                            leading-zero scan of the fraction)
      - std::ldexp       -> cx_ldexp (bounded power-of-2 loop)
    Runtime path keeps the stdlib calls.

  * Three new private static helpers: cx_fabs, cx_floor_log2, cx_ldexp
    (all noexcept + constexpr).

  * Added <cstdint>, <type_traits>, <universal/utility/bit_cast.hpp>
    includes.

static/block/mxfloat/api/constexpr.cpp (new):
  * Default construction smoke test (constexpr mxblock<e4m3, 4>{}).
  * clear() + setbits() + accessors via constexpr lambda.
  * quantize() at constant evaluation:
   ... (continued)

17 of 34 new or added lines in 1 file covered. (50.0%)

45836 of 54560 relevant lines covered (84.01%)

6487106.64 hits per line

Uncovered Changes

Lines Coverage ∆ File
17
80.41
-16.88% include/sw/universal/number/mxfloat/mxblock_impl.hpp
Jobs
ID Job ID Ran Files Coverage
1 25353499732.1 05 May 2026 02:15AM UTC 648
84.01
GitHub Action Run
Source Files on build 25353499732
  • Tree
  • List 648
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25353499732
  • 75046878 on github
  • Prev Build on main (#25352381793)
  • Next Build on main (#25355698320)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc