fix(riscv): allow vfncvt FP-to-int narrowing at SEW=8 - #212
Closed
carlosqwqqwq wants to merge 2 commits into
Closed
Conversation
cpu.rs exceeded the AGENTS.md hard split triggers (2000 lines / 150 kB). Move the vector (RVV) element access and data-path execution group, including set_vtype, into cpu/vector.rs with no behavior change.
The FP-to-integer vfncvt variants convert a 16-bit FP source to an 8-bit integer, which is legal at SEW=8; the int-to-FP and FP-to-FP variants stay reserved there. ftoi gains the 8-bit saturating paths used by the new legal encodings.
carlosqwqqwq
force-pushed
the
fix-riscv-vfncvt-sew8-toint
branch
from
August 11, 2026 18:00
9fcb90a to
3763693
Compare
Member
|
Thanks @carlosqwqqwq. The legal SEW=8 FP-to-integer narrowing fix is now consolidated into #203 in commit d1de115, with you credited as co-author. The rollup keeps FP8-producing variants reserved and adds exact rounding, saturation, NaN/infinity, NV/NX, SMIR interpreter, O0/O2 JIT, and live QEMU coverage. Closing this PR in favor of #203. |
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.
fix(riscv): allow vfncvt FP-to-int narrowing at SEW=8
Closes #211
Summary
The FP-to-integer
vfncvtvariants (vfncvt.xu.f.w/vfncvt.x.f.w/vfncvt.rtz.xu.f.w/vfncvt.rtz.x.f.w) convert a 2*SEW FP value to an SEW integer and are legal for every SEW: at SEW=8 a 16-bit FP source converts to an 8-bit integer. The previous SEW restriction (introduced by the #135 fix) rejected SEW=8 for all variants, which over-rejects the legal FP-to-int encodings. The int-to-FP and FP-to-FP variants still produce an SEW FP value and stay reserved at SEW=8.Validation
ftoigains the 8-bit saturating paths (NaN -> i8/u8 max, out-of-range saturation, RNE rounding) used by the newly legal encodings.cargo test --lib: 8213 passed, 0 failed.Notes
The vector semantics live in
cpu/vector.rsafter the refactor in #202, so this change does not grow the oversizedcpu.rs.