インテルのみ表示可能 — GUID: zkp1691737589507
Ixiasoft
4.3.4.2. Floating Point Functions
以下の表は、FPU 動作の詳細な概要を示しています。
カテゴリ | 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 ツールチェーンは融合演算を推論します。