Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for the Zfa ISA extension #330

Merged
merged 4 commits into from
May 7, 2024

Commits on Apr 2, 2024

  1. Add support for the Zfa ISA extension

    This patch introduces the RISC-V Zfa extension, which introduces
    additional floating-point extensions:
    * fli (load-immediate) with pre-defined immediates
    * fminm/fmaxm (like fmin/fmax but with different NaN behaviour)
    * fround/froundmx (round to integer)
    * fcvtmod.w.d (Modular Convert-to-Integer)
    * fmv* to access high bits of float register bigger than XLEN
    * Quiet comparison instructions (fleq/fltq)
    
    Zfa defines its instructions in combination with the following
    extensions:
    * single-precision floating-point (F)
    * double-precision floating-point (D)
    * quad-precision floating-point (Q)
    * half-precision floating-point (Zfh)
    
    Since the RISC-V architecture test framework does not support
    the RISC-V quad-precision floating-point ISA extension (Q) and
    the RISC-V half-precision floating-point ISA extension (Zfh),
    this patch does not include tests for instructions that depend
    on these extensions.
    
    Given missing infrastructure support, the fli.* instruction tests
    are hand written and not generated.
    All other test files are generated using riscv-ctg.
    
    The generated test files have been generated using the following
    command (with $BASEISA={rv32i,rv64i}, $FLEN={32,64}), and CFG=$INSN:
          riscv_ctg.py \
            --cgf sample_cgfs/dataset.cgf \
            --cgf sample_cgfs/zfa/$CGF \
            --base-isa $BASEISA \
            --flen $FLEN \
            -d tests_$BASEISA_$FLEN/
    
    Exceptions are:
    * fcvtmod.w.d.cgf is for FLEN=32 only
    * fmvh.x.d and fmvp.d.x are for BASEISA=rv32i only
    
    The resulting tests have been copied to the target directory.
    
    The generation of the Zfa test cases depends on a PR in the riscv-ctg
    repository:
      riscv-software-src/riscv-ctg#60
    
    The Zfa specification is ratified and can be found here:
      https://github.com/riscv/riscv-isa-manual/blob/main/src/zfa.adoc
    
    Signed-off-by: Christoph Müllner <[email protected]>
    cmuellner committed Apr 2, 2024
    Configuration menu
    Copy the full SHA
    29be788 View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2024

  1. Merge branch 'main' into zfa

    Signed-off-by: Allen Baum <[email protected]>
    allenjbaum authored Apr 9, 2024
    Configuration menu
    Copy the full SHA
    6c62015 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2024

  1. Merge branch 'main' into zfa

    Signed-off-by: Umer Shahid <[email protected]>
    UmerShahidengr authored May 3, 2024
    Configuration menu
    Copy the full SHA
    6288e0d View commit details
    Browse the repository at this point in the history
  2. Update CHANGELOG.md

    Added new entry in Changelog and resolved conflicts
    
    Signed-off-by: Umer Shahid <[email protected]>
    UmerShahidengr authored May 3, 2024
    Configuration menu
    Copy the full SHA
    20e08ad View commit details
    Browse the repository at this point in the history