P24 adds the six official branch tests to the P23 strict subset.
Status: RTL pass for a 31-test official subset. These are upstream
riscv-arch-testsources built inRVTEST_SELFCHECKmode, UART-loaded into the P17 external-memory model, and accepted only when the core reaches the local pass convention.
The Result
Run it:
make -C projects/24_rv32i_branch_tests/test
| group | result |
|---|---|
P23 baseline: no-op/fence, LUI, AUIPC, jumps, immediate ALU, R-type ALU | PASS |
I-beq-00.S | PASS |
I-bne-00.S | PASS |
I-blt-00.S | PASS |
I-bltu-00.S | PASS |
I-bge-00.S | PASS |
I-bgeu-00.S | PASS |
Summary: PASS=31 FAIL=0 NOT RUN=0
This is not a full RV32I compliance claim. It is a larger, strict, official subset.
Signature Model
The branch tests use the reference-emulated signature flow:
- Build the official test in normal signature-writing mode.
- Run that image through the local RV32I interpreter.
- Read the signature words.
- Rebuild the test in
RVTEST_SELFCHECKmode with those words.
For P24, that path covers JAL, JALR, and the six branch tests.
What This Proves
The official pass set now covers baseline tests, upper-immediate operations, direct and indirect jumps, all branch predicates, and the modeled ALU subset.
The remaining unclaimed RV32I/I tests are loads and stores.