lowRISC / lowRISC/ibex

[dv] Psuedo instruction coverage for Bitmanip

Open
#1,926 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
SystemVerilog
Stars
2.1k
Forks
810
Avg merge
5d 23h
Merged PRs (30d)
9

Description

Three bitmanip instructions seem to be missing coverage, orc.b, zext.h and rev8. They are being executed but they can be interpreted as pseudo-instruction forms of more general instructions or instructions in their own right depending on what bitmanip implementation you are using.

We should consider reworking our coverage collection to ensure executing these samples both the pseudo instruction form and the general instruction form (so it works with configs that don't have the general instruction form).

In the case of zext.h we don't implement the more general pack it uses but have to emit it in that form from the Ibex tracer due to LLVM/GCC tooling issues, see https://github.com/lowRISC/ibex/issues/1228

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the coverage collection code and the samples for orc.b, zext.h, and rev8. Determine how each sample is currently executed and how configurations without the general instruction form are handled; done means coverage exercises both the pseudo-instruction and general-instruction forms where applicable, including the zext.h/pack case.

Written by the indexing model from the issue text.

Assessment

Domain
testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.