aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--NOTE.md2
-rw-r--r--problems/15-Contains/04.vsm147
3 files changed, 150 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 3ff578c..f94f53d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-all: inversion
+all: contains
matrix_square_testcase_1:
./judge --enable-get problems/14-Matrix-Square/testcase_1_double_4x4.vsm problems/14-Matrix-Square/answer_1_double_4x4.vsm
@@ -16,7 +16,7 @@ mod3:
./judge --enable-get problems/13-Mod-3/testcase.vsm problems/13-Mod-3/08.vsm
contains:
- ./judge --enable-get problems/15-Contains/testcase.vsm problems/15-Contains/03.vsm
+ ./judge --enable-get problems/15-Contains/testcase.vsm problems/15-Contains/04.vsm
inversion:
./judge --enable-get problems/19-Inversion/testcase.vsm problems/19-Inversion/04.vsm
diff --git a/NOTE.md b/NOTE.md
index 45cd2e6..4624933 100644
--- a/NOTE.md
+++ b/NOTE.md
@@ -13,7 +13,7 @@
| Convert Endian | 100 | 0 |
| Mod 3 | 48 | 52 |
| Matrix Square | 100 | 0 |
-| Contains | 19 | 81 |
+| Contains | 25 | 75 |
| Count Up | 69 | 31 |
| Transpose MAB | 47 | 53 |
| Inversion Small | 42 | 58 |
diff --git a/problems/15-Contains/04.vsm b/problems/15-Contains/04.vsm
new file mode 100644
index 0000000..5b13b21
--- /dev/null
+++ b/problems/15-Contains/04.vsm
@@ -0,0 +1,147 @@
+lpackbit $mabid $ls0 $t
+
+lpassa $llm0v $llr0v
+lpassa $llm16v $llr16v
+
+lxor $lr0 $ln0v $lr32v
+lxor $lr0 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr0 $ln16v $lr48v
+lxor $lr0 $ln24v $nowrite
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr2 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr2 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr2 $ln16v $lr48v; l1bmp $llb0 $llm32v
+lxor $lr2 $ln24v $nowrite; l1bmp $llb8 $llm48v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr4 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr4 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr4 $ln16v $lr48v; l1bmp $llb0 $llm64v
+lxor $lr4 $ln24v $nowrite; l1bmp $llb8 $llm80v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr6 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr6 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr6 $ln16v $lr48v; l1bmp $llb0 $llm96v
+lxor $lr6 $ln24v $nowrite; l1bmp $llb8 $llm112v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr8 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr8 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr8 $ln16v $lr48v; l1bmp $llb0 $llm128v
+lxor $lr8 $ln24v $nowrite; l1bmp $llb8 $llm144v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr10 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr10 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr10 $ln16v $lr48v; l1bmp $llb0 $llm160v
+lxor $lr10 $ln24v $nowrite; l1bmp $llb8 $llm176v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr12 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr12 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr12 $ln16v $lr48v; l1bmp $llb0 $llm192v
+lxor $lr12 $ln24v $nowrite; l1bmp $llb8 $llm208v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr14 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr14 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr14 $ln16v $lr48v; l1bmp $llb0 $llm224v
+lxor $lr14 $ln24v $nowrite; l1bmp $llb8 $llm240v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr16 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr16 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr16 $ln16v $lr48v; l1bmp $llb0 $llm256v
+lxor $lr16 $ln24v $nowrite; l1bmp $llb8 $llm272v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr18 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr18 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr18 $ln16v $lr48v; l1bmp $llb0 $llm288v
+lxor $lr18 $ln24v $nowrite; l1bmp $llb8 $llm304v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr20 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr20 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr20 $ln16v $lr48v; l1bmp $llb0 $llm320v
+lxor $lr20 $ln24v $nowrite; l1bmp $llb8 $llm336v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr22 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr22 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr22 $ln16v $lr48v; l1bmp $llb0 $llm352v
+lxor $lr22 $ln24v $nowrite; l1bmp $llb8 $llm368v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr24 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr24 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr24 $ln16v $lr48v; l1bmp $llb0 $llm384v
+lxor $lr24 $ln24v $nowrite; l1bmp $llb8 $llm400v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr26 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr26 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr26 $ln16v $lr48v; l1bmp $llb0 $llm416v
+lxor $lr26 $ln24v $nowrite; l1bmp $llb8 $llm432v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr28 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr28 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr28 $ln16v $lr48v; l1bmp $llb0 $llm448v
+lxor $lr28 $ln24v $nowrite; l1bmp $llb8 $llm464v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+
+lxor $lr30 $ln0v $lr32v; l1bmrland $aluf $lb0
+lxor $lr30 $ln8v $nowrite
+ulmin $aluf $lr32v $lr40v
+lxor $lr30 $ln16v $lr48v; l1bmp $llb0 $llm480v
+lxor $lr30 $ln24v $nowrite; l1bmp $llb8 $llm496v
+ulmin $aluf $lr48v $nowrite
+ulmin $aluf $lr40v $nowrite
+l1bmrland $aluf $lb0
+nop
+nop
+l1bmp $llb0 $llm512v
+l1bmp $llb8 $llm528v
+
+nop
+nop
+
+l1bmrland $lmt32v32 $lbi
+l1bmrland $lmt160v32 $lbi; l1bmm $lbi $nowrite
+l1bmrland $lmt288v32 $lbi; l1bmm $lbi $nowrite; llnot $lbf $ln32v
+l1bmrland $lmt416v32 $lbi; l1bmm $lbi $nowrite; llnot $lbf $ln40v
+ l1bmm $lbi $nowrite; llnot $lbf $ln48v
+ llnot $lbf $ln56v