C6/C7: rounding-mode coverage across dot + gemv#27
Merged
Conversation
C6: the five rounding modes (n/z/u/d/a) were only exercised through saxpy. Add them for sdot, ddot, and sgemv, reusing the 1 + 2^-N exact-tie construction (the negative operand is what distinguishes z/d/u/a). This covers an L1 reduction and the L2 matrix-vector dot path, single and double precision, both signs -- and it now runs on macOS after the SoftFloat TLV build fix. C7: the float128 v[0]=lo / v[1]=hi layout is already pinned by test_qasum_layout; mark it done. 3 new tests; suite 218 -> 221, green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Continues the C-series coverage work from PR #26.
C6 — rounding-mode coverage
The five rounding modes (
n/z/u/d/a) were only exercised throughsaxpy. C6 asks for ≥2 routines including a negative operand (the only thingthat distinguishes
z/d/u/a). Added:test_sdot_rounding_modes— L1 reduction, singletest_ddot_rounding_modes— L1 reduction, doubletest_sgemv_rounding_modes— L2 matrix-vector dot path, singleAll reuse the
1 + 2^-Nexact-tie construction and assert the per-mode resultfor both the positive and negative tie. These now run on macOS too, after
the SoftFloat TLV build fix (the rounding path was exactly what the macOS SIGBUS
was masking).
C7 — float128 layout
Already pinned by
test_qasum_layout(v[0]=lo,v[1]=hisign+exponent).Marked done in the backlog.
3 new tests; suite 218 → 221, green on Linux + macOS.
Backlog updated (C6, C7 → done). Remaining C-series: C2 (neg-stride for
swap/copy/complex), C3 (N==0 for d/h/q + matrix), C4/C5 (gemv/gemm transpose +
padding — partially covered already).
🤖 Generated with Claude Code