Inversion Small

Submission Date: 2024/12/1 10:42:43
Status: Accepted
Author: gaiwee5doh8daiV5
Lines: 39

VSM

# Generate literal 0 to 15 into $lr0-$lr31
imm i"4" $s1
imm i"0" $r1
imm i"1" $r3
imm i"2" $r5
imm i"3" $r7
nop/2
ladd $ls0 $lr0v $lr8v
ladd $ls0 $aluf $lr16v
ladd $ls0 $aluf $lr24v
# Save MAB ID into $ls256
lpassa $mabid $ls256
# Save pivot - 1 into $lr128
ladd $mabid $aluf $lt
nop/2
ldec $lmt $lr128
# Generate cycle masks for each MAB
# MAB0: 1111111111111111
# MAB1: 0111111111111111
# ...
# MAB15: 0000000000000000
lsub $lr0v $ls256 $omr1
lsub $lr8v $ls256 $omr2
lsub $lr16v $ls256 $omr3
lsub $lr24v $ls256 $omr4
# d getd $omr1n0c0b0m2p0 4
# Calculate inversion flags
lsub $lr128 $lm0v $omr5/$imr1
lsub $lr128 $lm8v $omr6/$imr2
lsub $lr128 $lm16v $omr7/$imr3
lsub $lr128 $lm24v $omr8/$imr4
lpassa $lr2 $ls200v/$imr5 $lr200v/$imr5
lpassa $lr2 $ls208v/$imr6 $lr208v/$imr6
lpassa $lr2 $ls216v/$imr7 $lr216v/$imr7
lpassa $lr2 $ls224v/$imr8 $lr224v/$imr8
# Reduce in addr axis
ladd $ls200v $lr208v $ls232v $lr232v
ladd $ls216v $lr224v $ls240v $lr240v
ladd $lr232 $ln0 $nowrite # ln0 is zero
ladd $lr234 $aluf $nowrite
ladd $lr236 $aluf $nowrite
ladd $lr238 $aluf $nowrite
ladd $lr240 $aluf $nowrite
ladd $lr242 $aluf $nowrite
ladd $lr244 $aluf $nowrite
ladd $lr246 $aluf $nowrite
# Reduce in MAB axis
l1bmrliadd $aluf $lb0
l1bmm $lbi $ln0
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Output

ACCEPTED!! score=39 j=39 m=0 bytes=911
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Error

------------------- vsm --------------------
# ======= In(0): ((8_L2B:1, 8_L1B:1), (16:1))@LM0 / ULong =======
d set $lm0n0c0b0 1 0000000000000004 # values=[4] / ULong @[0,0]
d set $lm2n0c0b0 1 0000000000000002 # values=[2] / ULong @[0,1]
d set $lm4n0c0b0 1 0000000000000006 # values=[6] / ULong @[0,2]
d set $lm6n0c0b0 1 0000000000000004 # values=[4] / ULong @[0,3]
d set $lm8n0c0b0 1 0000000000000008 # values=[8] / ULong @[0,4]
d set $lm10n0c0b0 1 0000000000000006 # values=[6] / ULong @[0,5]
d set $lm12n0c0b0 1 0000000000000001 # values=[1] / ULong @[0,6]
d set $lm14n0c0b0 1 0000000000000003 # values=[3] / ULong @[0,7]
d set $lm16n0c0b0 1 0000000000000008 # values=[8] / ULong @[0,8]
d set $lm18n0c0b0 1 0000000000000001 # values=[1] / ULong @[0,9]
d set $lm20n0c0b0 1 0000000000000009 # values=[9] / ULong @[0,10]
d set $lm22n0c0b0 1 0000000000000008 # values=[8] / ULong @[0,11]
d set $lm24n0c0b0 1 0000000000000009 # values=[9] / ULong @[0,12]
d set $lm26n0c0b0 1 0000000000000004 # values=[4] / ULong @[0,13]
d set $lm28n0c0b0 1 0000000000000001 # values=[1] / ULong @[0,14]
d set $lm30n0c0b0 1 0000000000000003 # values=[3] / ULong @[0,15]
d set $lm0n0c0b1 1 0000000000000000 # values=[0] / ULong @[1,0]
d set $lm2n0c0b1 1 0000000000000004 # values=[4] / ULong @[1,1]
d set $lm4n0c0b1 1 0000000000000003 # values=[3] / ULong @[1,2]
d set $lm6n0c0b1 1 0000000000000002 # values=[2] / ULong @[1,3]
d set $lm8n0c0b1 1 0000000000000005 # values=[5] / ULong @[1,4]
d set $lm10n0c0b1 1 0000000000000001 # values=[1] / ULong @[1,5]
d set $lm12n0c0b1 1 0000000000000002 # values=[2] / ULong @[1,6]
d set $lm14n0c0b1 1 0000000000000004 # values=[4] / ULong @[1,7]
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX