arch-riscv: Add RVV FP16 support (Zvfh & Zvfhmin) (#1123)
Add support for the following two extensions: [Zvfh](https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#185-zvfh-vector-extension-for-half-precision-floating-point): Vector Extension for Half-Precision Floating-Point [Zvfhmin](https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc#184-zvfhmin-vector-extension-for-minimal-half-precision-floating-point): Vector Extension for Minimal Half-Precision Floating-Point For instructions (`vfncvt[.rtz].x[u].f.w`) and (`vfwcvt.f.x[u].v`) which will become defined when `SEW = 8`, a new template `VectorFloatWideningAndNarrowingCvtDecodeBlock` is added and 8-bit floating point type (`float8_t`) is defined. The data type `float8_t` is introduced in the newer `3e` version of the SoftFloat Package, however, the current version in use is `3d` which does not include this definition. Despite this, `float8_t` is utilized solely for constructing the `vfncvt[.rtz].x[u].f.w` and `vfwcvt.f.x[u].v` instructions when `SEW = 8`. There are no operations that directly manipulate data of the `float8_t` type.
This commit is contained in:
@@ -47,6 +47,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
| the types below may, if desired, be defined as aliases for the native types
|
||||
| (typically 'float' and 'double', and possibly 'long double').
|
||||
*----------------------------------------------------------------------------*/
|
||||
typedef struct { uint8_t v; } float8_t;
|
||||
typedef struct { uint16_t v; } float16_t;
|
||||
typedef struct { uint32_t v; } float32_t;
|
||||
typedef struct { uint64_t v; } float64_t;
|
||||
|
||||
Reference in New Issue
Block a user