В архитектуре RISC-V нет встроенной поддержки浮点ной арифметики — базовый ISA (RV32I или RV64I) её не включает. Всё решают расширения. Первым стало расширение F для одинарной точности (binary32/FP32). Оно добавило отдельный регистровый файл (FRF) шириной FLEN и набор операций, включая FMA (fused multiply-add). RISC-V пошёл на extra cost: 32 дополнительных регистра, отдельные загрузки/сохранения и пересылки между FRF и общим XRF. Зато это упрощает аллокацию и позволяет XLEN и FLEN быть разными — платишь только за то, что нужно. Расширение D добавило двойную точность (binary64), Q — четверную (binary128, почти не используется). Потом подтянули половинную точность (binary16): расширения Zfh (полный набор) и Zfhmin (только перемещение данных и конвертация — чтобы сэкономить железо, храня binary16 как формат, а считая после продвижения до binary32).
Почти все остальные浮点ные расширения требуют F. Например, Zfa расширяет F, D и Zfh — добавляет загрузку浮点ной константы, тихие сравнения и округление. А можно вообще отказаться от отдельного регистрового файла — для этого есть семейство Zfinx (и Zdinx с Zhinx/Zhinxmin). Они используют XRF (общий регистровый файл), убирают избыточные浮点ные загрузки/сохранения и определяют sign extension вместо NaN boxing для 32-битного значения в 64-битном регистре.
Векторная поддержка (RVV 1.0) ещё обширнее. Для всех скалярных инструкций есть векторные варианты плюс уникальные: widening-операции, оценки reciprocal/reciprocal square-root, narrowing-конвертации с rounding towards odd. Векторные multiply-accumulate — деструктивные (один из операндов перезаписывается). Есть редукции (sum/min/max), вектор-скаляр и обратный вектор-скаляр (vfrdiv.vf, vfrsub.vf). Позже добавили Zvfhmin и Zvfh для векторной половинной точности.
Нестандартные форматы: BFloat16 (урезанный binary32, но RISC-V требует полной поддержки subnormal). Скалярное расширение Zfbfmin — только перемещения и конвертации в/из single. Векторные: Zvfbfmin (минимальный) и Zvfbfwma (widening multiply-accumulate BF16→FP32). Все три ратифицированы и входят в профиль RVA23U64. В разработке Zvfbfa — почти полная векторная поддержка BFloat16 (кроме деления, квадратного корня, редукций и конвертаций в/из целых шире 8 бит).
Для 8-битных форматов есть проект Zvfofp8min — конвертации из/в binary32 и BFloat16 для Open Compute OFP8. И проект Zvfofp4min для 4-битного формата E2M1. Всё в процессе. Также активно обсуждается micro-scaling — блоки значений с общим scaling factor (стандарт OpenCompute MX и IEEE P3109 для 16-битных форматов и меньше). P3109 задаёт фреймворк на сотни форматов, несовместимый ни с OFP8/MX, ни с IEEE 754. RISC-V, скорее всего, организует вокруг него профили.
Основной вызов для RISC-V International — конкуренция стандартов мелких форматов (специфицировать быстро для рынка vs. долгосрочно, не тратя кодировочное пространство впустую). Решают через активное сообщество участников, параллельно поддерживая эксперименты с кастомными расширениями.