3.6.8.19 l1bmr4<rrn_opcode>-2長語4x4縮約
各L1BMについて、各MAB配下の4PEからサイクルあたり 2 長語ずつを読み出し、PE方向には結合し、3.6.8.1 4x4モードについてで述べた対応でMABに対して縮約と結合を行ってL1BMにサイクルあたり 32 長語で書き込む。
2 長語動作は単精度の浮動小数点数演算または任意精度のborについてのみ可能である。
この命令は3.6.8.4 入力の精度拡張で述べた、半精度から単精度への入力値変換つきの動作を指定可能である。
code:文法
l1bmr<rrn_opcode> $llb<addr_b>
<rrn_opcode>は3.5.5 縮約演算指定で定めた縮約演算指定である。
<src>は読み出し元PEオペランドである。
L1BMアドレス<addr_b>は 32 長語アラインである必要がある。
code:効果
for cycle= 0:4
forall group,l2b,l1b
LongWord data162
data:: =get_unit_value(rrn_opcode)
forall mab,pe
uint_t idx= (mab>> 2) * 4 +pe
dataidx0:2 =rrn_opcode(dataidx0:2,MEMgroupl2bl1bmabpe.
refer_pemem(src,cycle))
uint_t dst_addr=addr_b +cycle* 32
for i= 0:4
MEMgroupl2bl1b.l1bmdst_addr+i*8:dst_addr+i*8+4 =datai*4:(i+1)*40
MEMgroupl2bl1b.l1bmdst_addr+i*8+4:dst_addr+i*8+8 =datai*4:(i+1)*41
注意:縮約を内部的に実際にこの手順で行っているわけではない。