Nios® Vプロセッサー・リファレンス・マニュアル

ID 683632
日付 12/11/2023
Public
ドキュメント目次

4.3.4.2. Floating Point Functions

以下の表は、FPU 動作の詳細な概要を示しています。
表 74.  浮動少数点演算ライブラリー
カテゴリ mkpimageツールの動作 サイクル2 結果 異常な 丸め3 GCC 推論
演算 FDIV.S 14 b 0 にフラッシュ RNE b
FSUB.S 1 b 0 にフラッシュ RNE b
ファッドエス 1 b 0 にフラッシュ RNE b
FMUL.S 2 0.75 x fb 0 にフラッシュ RNE b
FSQRT.S 12 A 0 にフラッシュ 忠実な 4 sqrt(a)
fMIN 2 (a < b) ? a:b サポートされる RNE fminf()
f MAX 2 (a < b) ? b:a サポートされる RNE fmaxf()
融合算術5 FMADD.S 3 A B C 0 にフラッシュ RNE {a, b, c}
FMSUB.S 3 A B C 0 にフラッシュ RNE {a, b, c}
FNMSUB.S 3 {a, b, c} 0 にフラッシュ RNE {a, b, c}
FNMADD.S 3 {a, b, c} 0 にフラッシュ RNE {a, b, c}
変換 FCVT.SW / FCVT.S.WU 3 int_to_float(a) サポートされる None 鋳造
FCVT.WS / FCVT.WU.S 3 float_to_int(a) サポートされる Round-toward-Zero 鋳造
最も近い値に丸め、最大振幅に関連付けます 丸め(a)
比較 FLT.S 1 b'1 0 0 にフラッシュ RNE b
FLE.S 1 b'1 0 0 にフラッシュ RNE a <= b
FEQ.S 1 b'1 0 0 にフラッシュ RNE a == b
サインインジェクション FSGNJN.S (FNEG.S) 1 -a サポートされる RNE -a
FSGNJX.S (FABS.S) 1 ||A|| サポートされる RNE fabsf(a)
分類 FCLASS.S 2 トピックを参照 浮動小数点の分類 サポートされる None fpclassify(a)
注: a、b、c を単精度浮動小数点値と仮定します。 Nios® V プロセッサー融合演算には、乗算と加算の間に丸めステージがあります。
次のリストでは、上の表のヘッダーについて説明します。
  • 手術 - 浮動小数点演算の名前を指定します。名前は、対応する RISC-V 浮動小数点命令の名前と一致します。
  • サイクル - 命令の実行にかかるサイクル数を指定します。
  • 結果- 操作によって実行される計算を説明します。
  • 異常な- 操作が非正規入力と非正規出力をどのように処理するかを説明します。非正規化とは、大きさが約 1.17549435082e-38 未満の数値です。
  • 丸め - FPU が結果を丸める方法について説明します。
  • GCC 推論- GCC が命令操作を推論する C コードを示します。
2 暫定結果。
3 近似値への丸め、偶数 (RNE) に関連付けられます。
4 忠実な丸めでは、RNE の 0.5 ULP と比較して、最大誤差は 1 Unit of Least Precision (ULP) です。領域を節約し、FSQRT.S のレイテンシーを削減するために、忠実な丸めが採用されています。
5 最適化レベルが -O3 以上の場合、GCC ツールチェーンは融合演算を推論します。