Contains

Submission Date: 2024/11/30 21:10:39
Status: Accepted
Author: gaiwee5doh8daiV5
Lines: 162

VSM

# Write $lr0-$lr31 in the same layout of A if A[i] is in B
lxor $lm0 $ln0v $omr1
lxor $lm0 $ln8v $omr2
lxor $lm0 $ln16v $omr3
lxor $lm0 $ln24v $omr4
imm i"1" $r1/$imr1
imm i"1" $r1/$imr2
imm i"1" $r1/$imr3
imm i"1" $r1/$imr4
lxor $lm2 $ln0v $omr1
lxor $lm2 $ln8v $omr2
lxor $lm2 $ln16v $omr3
lxor $lm2 $ln24v $omr4
imm i"1" $r3/$imr1
imm i"1" $r3/$imr2
imm i"1" $r3/$imr3
imm i"1" $r3/$imr4
lxor $lm4 $ln0v $omr1
lxor $lm4 $ln8v $omr2
lxor $lm4 $ln16v $omr3
lxor $lm4 $ln24v $omr4
imm i"1" $r5/$imr1
imm i"1" $r5/$imr2
imm i"1" $r5/$imr3
imm i"1" $r5/$imr4
lxor $lm6 $ln0v $omr1
lxor $lm6 $ln8v $omr2
lxor $lm6 $ln16v $omr3
lxor $lm6 $ln24v $omr4
imm i"1" $r7/$imr1
imm i"1" $r7/$imr2
imm i"1" $r7/$imr3
imm i"1" $r7/$imr4
lxor $lm8 $ln0v $omr1
lxor $lm8 $ln8v $omr2
lxor $lm8 $ln16v $omr3
lxor $lm8 $ln24v $omr4
imm i"1" $r9/$imr1
imm i"1" $r9/$imr2
imm i"1" $r9/$imr3
imm i"1" $r9/$imr4
lxor $lm10 $ln0v $omr1
lxor $lm10 $ln8v $omr2
lxor $lm10 $ln16v $omr3
lxor $lm10 $ln24v $omr4
imm i"1" $r11/$imr1
imm i"1" $r11/$imr2
imm i"1" $r11/$imr3
imm i"1" $r11/$imr4
lxor $lm12 $ln0v $omr1
lxor $lm12 $ln8v $omr2
lxor $lm12 $ln16v $omr3
lxor $lm12 $ln24v $omr4
imm i"1" $r13/$imr1
imm i"1" $r13/$imr2
imm i"1" $r13/$imr3
imm i"1" $r13/$imr4
lxor $lm14 $ln0v $omr1
lxor $lm14 $ln8v $omr2
lxor $lm14 $ln16v $omr3
lxor $lm14 $ln24v $omr4
imm i"1" $r15/$imr1
imm i"1" $r15/$imr2
imm i"1" $r15/$imr3
imm i"1" $r15/$imr4
lxor $lm16 $ln0v $omr1
lxor $lm16 $ln8v $omr2
lxor $lm16 $ln16v $omr3
lxor $lm16 $ln24v $omr4
imm i"1" $r17/$imr1
imm i"1" $r17/$imr2
imm i"1" $r17/$imr3
imm i"1" $r17/$imr4
lxor $lm18 $ln0v $omr1
lxor $lm18 $ln8v $omr2
lxor $lm18 $ln16v $omr3
lxor $lm18 $ln24v $omr4
imm i"1" $r19/$imr1
imm i"1" $r19/$imr2
imm i"1" $r19/$imr3
imm i"1" $r19/$imr4
lxor $lm20 $ln0v $omr1
lxor $lm20 $ln8v $omr2
lxor $lm20 $ln16v $omr3
lxor $lm20 $ln24v $omr4
imm i"1" $r21/$imr1
imm i"1" $r21/$imr2
imm i"1" $r21/$imr3
imm i"1" $r21/$imr4
lxor $lm22 $ln0v $omr1
lxor $lm22 $ln8v $omr2
lxor $lm22 $ln16v $omr3
lxor $lm22 $ln24v $omr4
imm i"1" $r23/$imr1
imm i"1" $r23/$imr2
imm i"1" $r23/$imr3
imm i"1" $r23/$imr4
lxor $lm24 $ln0v $omr1
lxor $lm24 $ln8v $omr2
lxor $lm24 $ln16v $omr3
lxor $lm24 $ln24v $omr4
imm i"1" $r25/$imr1
imm i"1" $r25/$imr2
imm i"1" $r25/$imr3
imm i"1" $r25/$imr4
lxor $lm26 $ln0v $omr1
lxor $lm26 $ln8v $omr2
lxor $lm26 $ln16v $omr3
lxor $lm26 $ln24v $omr4
imm i"1" $r27/$imr1
imm i"1" $r27/$imr2
imm i"1" $r27/$imr3
imm i"1" $r27/$imr4
lxor $lm28 $ln0v $omr1
lxor $lm28 $ln8v $omr2
lxor $lm28 $ln16v $omr3
lxor $lm28 $ln24v $omr4
imm i"1" $r29/$imr1
imm i"1" $r29/$imr2
imm i"1" $r29/$imr3
imm i"1" $r29/$imr4
lxor $lm30 $ln0v $omr1
lxor $lm30 $ln8v $omr2
lxor $lm30 $ln16v $omr3
lxor $lm30 $ln24v $omr4
imm i"1" $r31/$imr1
imm i"1" $r31/$imr2
imm i"1" $r31/$imr3
imm i"1" $r31/$imr4
# d getd $lr0n0c0b0m0p0 16
# Reduce the $lr0-$lr31 to $lb0-$lb63
# Note: L1BM is long word addressing different from PE memory
# lb0-lb3 is corresponding to addr 0 of the final answer
# lb0: PE0, lb1: PE1, lb2: PE2, lb3: PE3
# lb4-lb7 is corresponding to addr 1 of the final answer
# lb4: PE0, lb5: PE1, lb6: PE2, lb7: PE3
l1bmrlbor $lr0v2 $lb0
l1bmrlbor $lr8v2 $lb16
l1bmrlbor $lr16v2 $lb32
l1bmrlbor $lr24v2 $lb48
# Broadcast the $lb0-$lb63 to $lr128-$lr255
# Broadcast the $lb0-$lb63 to $ls128-$ls255
nop/2
l1bmp $lb0 $lr128v $ls128v
l1bmp $lb4 $lr136v $ls136v
l1bmp $lb8 $lr144v $ls144v
l1bmp $lb12 $lr152v $ls152v
l1bmp $lb16 $lr160v $ls160v
l1bmp $lb20 $lr168v $ls168v
l1bmp $lb24 $lr176v $ls176v
l1bmp $lb28 $lr184v $ls184v
l1bmp $lb32 $lr192v $ls192v
l1bmp $lb36 $lr200v $ls200v
l1bmp $lb40 $lr208v $ls208v
l1bmp $lb44 $lr216v $ls216v
l1bmp $lb48 $lr224v $ls224v
l1bmp $lb52 $lr232v $ls232v
l1bmp $lb56 $lr240v $ls240v
l1bmp $lb60 $lr248v $ls248v
# d getd $lr0n0c0b0m0p0 64
# Reduce for PE axis
lor $lr128v8 $ls130v8 $nowrite
lor $aluf $lr132v8 $nowrite
lor $aluf $lr134v8 $ln32v2
lor $lr160v8 $ls162v8 $nowrite
lor $aluf $lr164v8 $nowrite
lor $aluf $lr166v8 $ln40v2
lor $lr192v8 $ls194v8 $nowrite
lor $aluf $lr196v8 $nowrite
lor $aluf $lr198v8 $ln48v2
lor $lr224v8 $ls226v8 $nowrite
lor $aluf $lr228v8 $nowrite
lor $aluf $lr230v8 $ln56v2
# d getd $ln32n0c0b0m0p0 16
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Output

ACCEPTED!! score=162 j=162 m=0 bytes=3631
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Error

------------------- vsm --------------------
# ======= In(0): ((8_L2B:1, 8_L1B:1, 16:1))@LM0 / ULong =======
d set $lm0n0c0b0 1 000000000000002F # values=[47] / ULong @[0]
d set $lm2n0c0b0 1 0000000000000066 # values=[102] / ULong @[1]
d set $lm4n0c0b0 1 000000000000029E # values=[670] / ULong @[2]
d set $lm6n0c0b0 1 0000000000000100 # values=[256] / ULong @[3]
d set $lm8n0c0b0 1 0000000000000021 # values=[33] / ULong @[4]
d set $lm10n0c0b0 1 0000000000000305 # values=[773] / ULong @[5]
d set $lm12n0c0b0 1 00000000000003B9 # values=[953] / ULong @[6]
d set $lm14n0c0b0 1 00000000000002F3 # values=[755] / ULong @[7]
d set $lm16n0c0b0 1 000000000000035B # values=[859] / ULong @[8]
d set $lm18n0c0b0 1 0000000000000160 # values=[352] / ULong @[9]
d set $lm20n0c0b0 1 00000000000000F4 # values=[244] / ULong @[10]
d set $lm22n0c0b0 1 000000000000005D # values=[93] / ULong @[11]
d set $lm24n0c0b0 1 00000000000003A2 # values=[930] / ULong @[12]
d set $lm26n0c0b0 1 0000000000000085 # values=[133] / ULong @[13]
d set $lm28n0c0b0 1 00000000000002B0 # values=[688] / ULong @[14]
d set $lm30n0c0b0 1 000000000000004C # values=[76] / ULong @[15]
d set $lm0n0c0b1 1 0000000000000240 # values=[576] / ULong @[16]
d set $lm2n0c0b1 1 0000000000000072 # values=[114] / ULong @[17]
d set $lm4n0c0b1 1 000000000000017A # values=[378] / ULong @[18]
d set $lm6n0c0b1 1 00000000000000FF # values=[255] / ULong @[19]
d set $lm8n0c0b1 1 000000000000030A # values=[778] / ULong @[20]
d set $lm10n0c0b1 1 000000000000011C # values=[284] / ULong @[21]
d set $lm12n0c0b1 1 0000000000000187 # values=[391] / ULong @[22]
d set $lm14n0c0b1 1 0000000000000128 # values=[296] / ULong @[23]
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX