3.6.8.4 入力の精度拡張
表3.8に示した命令のうち、「PE側速度」が 2 長語である縮約命令を用い、かつ縮約演算指定が単精度の浮動小数点数演算であるとする。
このとき、PE側オペランドの末尾にeを付加することで、PE側オペランドから読み出した値を半精度浮動小数点数と解釈して、単精度浮動小数点数への精度拡張を行える。
精度拡張の際のサイクル内でのデータの並びは次の通りである。
p番PEから送られた 2 長語のMSB側 1長語について、さらにMSB側からj番目の半精度語に 4 ×p+j(16進表記)の番号を与えると、
L1BM上での 8 長語は、それらを単精度語にした上でMSB側から014589cd2367abefの順に並べたものになる。
この並びは、これによってL1BMに書かれたデータに対し 2 長語放送を行ってPEで半精度への丸めを行うと、元のPE上での並びと一致するように決められている。
code:例
l1bmrffadd $lr0ve $llb0
l1bmrffadd参照
GRF0からサイクル・PEあたり 4 半精度語を読み出して単精度へ変換後に加算で縮約し、サイクルあたり16 単精度語(=8長語)をL1BMに書き込む。