この節では、ハードウェア固有の組み込み関数をアルファベット順に説明します。
整数から浮動小数点への変換
浮動小数点変数の整数値を、浮動小数点値に変換します。
この組み込み関数は、64 ビット・モードを使用する 64 ビット PowerPC アーキテクチャーで有効です。
引き数タイプおよび属性
結果タイプおよび属性
I と同じです。
結果値
I の倍精度浮動小数点値。
例
... REAL*8 :: R8, RES INTEGER*8 :: I8 EQUIVALENCE(R8, I8) I8 = 89 RES = FCFI(R8) ! RES = 89.0 ...
浮動小数点から整数への変換
現行の丸めモードを使用して、浮動小数点オペランドを、 64 ビットの符号付き固定小数点整数に変換します。
この組み込み関数は、64 ビット・モードを使用するどの PowerPC アーキテクチャーでも有効です。
引き数タイプおよび属性
結果タイプおよび属性
X と同じです。
結果値
結果は、浮動小数点レジスター内の固定小数点整数になります。
浮動小数点を整数に変換してゼロに丸める
浮動小数点オペランドを、64 ビットの符号付き固定小数点整数に変換し、ゼロに丸めます。
この組み込み関数は、64 ビットまたは 32 ビット・モードを使用する 64 ビット PowerPC アーキテクチャーで有効です。
引き数タイプおよび属性
結果タイプおよび属性
X と同じです。
結果値
結果は、浮動小数点変数内のゼロに丸められた固定小数点整数になります。
浮動小数点から整数への変換
現行の丸めモードを使用して、浮動小数点オペランドを、 32 ビットの符号付き固定小数点整数に変換します。
この組み込み関数は、どの PowerPC または POWER2 アーキテクチャーでも有効です。
引き数タイプおよび属性
結果タイプおよび属性
X と同じです。
結果値
結果は、浮動小数点変数内の固定小数点整数になります。
浮動小数点を整数に変換してゼロに丸める
浮動小数点オペランドを、32 ビットの符号付き固定小数点整数に変換し、ゼロに丸めます。
この組み込み関数は、どの PowerPC または POWER2 アーキテクチャーでも有効です。
引き数タイプおよび属性
結果タイプおよび属性
X と同じです。
結果値
結果は、浮動小数点変数内のゼロに丸められた固定小数点整数になります。
浮動小数点の乗算加算
浮動小数点の乗算加算の結果を戻します。
引き数タイプおよび属性
結果タイプおよび属性
A、X、および Y と同じ。
結果値
結果は A*X + Y に等しい値を持ちます。
例
以下の例は、A、B、C および RES1 が単精度実数であるため、 PowerPC コンパイル用の -qarch オプションを使ってコンパイルした場合にのみ有効です。
REAL(4) :: A, B, C, RES1 REAL(8) :: D, E, F, RES2 RES1 = FMADD(A, B, C) RES2 = FMADD(D, E, F) END
浮動小数点の乗算減算
浮動小数点の乗算減算の結果を戻します。
引き数タイプおよび属性
結果タイプおよび属性
A、X、および Y と同じ。
結果値
浮動小数点の負の値 -|X| を戻します。
引き数タイプおよび属性
結果タイプおよび属性
X と同じです。
結果値
結果は、X の浮動小数点の負の値 -|X| になります。
例
次の例では、浮動小数点変数の絶対値の内容が負になります。
REAL(4) :: A, RES1 REAL(8) :: D, RES2 RES1 = FNABS(A) RES2 = FNABS(D)
浮動小数点の負の乗算加算
浮動小数点の負の乗算加算の結果を戻します。
引き数タイプおよび属性
結果タイプおよび属性
X と同じです。
結果値
浮動小数点の負の乗算減算
浮動小数点の負の乗算減算の結果を戻します。
引き数タイプおよび属性
結果タイプおよび属性
A、X、および Y と同じ。
結果値
結果は -(A*X - Y) に等しい値を持ちます。
例
以下の例では、FNMSUB の結果はタイプ REAL(4) です。この値は REAL(8) に変換されてから、RES に割り当てられます。
REAL(4) :: A, B, C REAL(8) :: RES RES = FNMSUB(A, B, C) END
浮動小数点の逆数演算
浮動小数点の逆数演算の処理結果を戻します。
拡張グラフィックス命令コードを使用するどの PowerPC でも有効です。
引き数タイプおよび属性
結果タイプおよび属性
X と同じです。
結果値
平方根の逆数の処理結果を戻します。
拡張グラフィックス命令コードを使用するどの PowerPC でも有効です。
引き数タイプおよび属性
結果タイプおよび属性
X と同じです。
結果値
浮動小数点の選択
浮動小数点の選択処理の結果を戻します。この結果は、X の値をゼロと比較することにより判別されます。
拡張グラフィックス命令コードを使用するどの PowerPC でも有効です。
引き数タイプおよび属性
結果タイプおよび属性
X、Y および Z と同じです。
結果値
ゼロ値は符号なしと見なされます。つまり、+0 と -0 は両方ともゼロと等しい値であると見なされます。
浮動小数点状況フィールドおよび制御レジスター (FPSCR) フィールドに移動します。
R の内容は、 MASK に指定されたフィールド・マスクの制御のもと、 FPSCR に置かれます。
引き数タイプおよび属性
即時に FPSCR フィールドに移動します。
I の値は、BF に指定されている FPSCR フィールドに置かれます。
引き数タイプおよび属性
高位の乗算
オペランド RA と RB の 64 ビットまたは 128 ビットの積の、高位の 32 ビットまたは 64 ビットを戻します。
32 ビット整数については、どの PowerPC でも有効です。
64 ビット整数については、64 ビット・モードの 64 ビット・アーキテクチャーを持つ PowerPC で有効です。
引き数タイプおよび属性
結果タイプおよび属性
RA、RB と同じです。
結果値
オペランド RA と RB の 32 または 64 ビットの積
即時に左シフトして循環させ MASK を挿入
RS の値を SHIFT に指定されたビット数だけ左にシフトして循環させます。次にこの関数は、ビット・マスク MASK の下で、IS に RS を挿入します。
8 バイト整数は 64 ビット・アーキテクチャーでのみ有効です。
引き数タイプおよび属性
結果タイプおよび属性
RS と同じです。
結果値
SHIFT に指定したビット数だけ RS を左シフトして循環させ、その結果をビット・マスク MASK の下で IS に挿入します。
左シフトして循環させマスクと AND 演算
RS の値を SHIFT に指定されたビット数だけ左にシフトして循環させます。シフトして循環されたデータは、MASK との AND 演算が行われ、結果として戻されます。
引き数タイプおよび属性
結果タイプおよび属性
RS と同じです。
結果値
シフトして循環されたデータが、MASK と AND 演算されます。
0 を FPSCR ビットに移動
FPSCR のビット BT が 0 に設定されます。このサブルーチンは値を戻しません。
どの PowerPC でも有効です。
引き数タイプおよび属性
1 を FPSCR ビットに移動
FPSCR のビット BT が 1 に設定されます。このサブルーチンは値を戻しません。
どの PowerPC でも有効です。
引き数タイプおよび属性
浮動小数点を整数に保管
Y の下位 32 ビットの内容が、変換されずに M のワードに保管されます。
どの PowerPC でも有効です。
引き数タイプおよび属性
例
... integer*4 :: m real*8 :: x x = z"00000000abcd0001" call sfti(m, x) ! m = z"abcd0001" ..
オペランド A がオペランド B と比較されます。この比較の結果は、 TO と AND 演算されて 5 つの状態になります。結果が 0 以外の場合は、システム・トラップ・ハンドラーが起動されます。
8 バイト整数は 64 ビット・アーキテクチャーでのみ有効です。
引き数タイプおよび属性
+--------------------------------IBM 拡張の終り-------------------------------+