3.5.8.14L2BM→DRAMグループ内縮約命令
すべてのグループについて、 2 個両方のL2BMから等サイズで読んでL2B方向に縮約し、同じグループの
DRAMに書き込む。
単位動作は 64 長語である。
スループットは 16 長語/サイクルである。
code:txt
文法
mvr2<op>/n<size><tag> $lc<addr_c> $d<addr_p>
code:txt
縮約演算指定<op>については3.5.5節を参照のこと。
code:txt
効果
uint_t n=size / 64
for i= 0:n
uint_t src_addr=addr_c + 64 *i
uint_t dst_addr=addr_d + 64 *i
forall group
LongWord buf64 = 0, ..., 0
forall l2b
buf0:64 =op(buf0:64,MEMgroupl2b.l2bmsrc_addr:src_addr+64)
MEMgroup.dramdst_addr:dst_addr+64 = buf
code:txt
注意:縮約を内部的に実際にこの手順で行っているわけではない。
エラー
sizeが単位動作 64 の倍数でないとエラーになる。
code:txt
例
mvr2dfadd/n64 $lc0 $d0
すべてのグループについて、 2 つのL2BMから 64 長語ずつ読んで倍精度浮動小数点数加算を行い、完成し
た 64 長語をDRAMに書き込む。