aboutsummaryrefslogtreecommitdiff
path: root/test/mandel.ssa
diff options
context:
space:
mode:
authorQuentin Carbonneaux <[email protected]>2016-03-27 15:00:45 -0400
committerQuentin Carbonneaux <[email protected]>2016-03-27 15:00:45 -0400
commit36635660b40573f6a0c19d50dfdd9277589030de (patch)
treea1b4463f7260462c314bd8d7cb35b3d199143f33 /test/mandel.ssa
parentaad52241c88ad5327a8488c66dc906c8393c9c92 (diff)
extract tests out of src
Diffstat (limited to 'test/mandel.ssa')
-rw-r--r--test/mandel.ssa123
1 files changed, 123 insertions, 0 deletions
diff --git a/test/mandel.ssa b/test/mandel.ssa
new file mode 100644
index 0000000..efefeb3
--- /dev/null
+++ b/test/mandel.ssa
@@ -0,0 +1,123 @@
+# Print the Mandelbrot set on the
+# terminal line output.
+
+function w $mandel(d %x, d %y) {
+@mandel
+ %cr =d sub %y, d_0.5
+ %ci =d copy %x
+@loop
+ %i =w phi @mandel 0, @loop1 %i1
+ %zr =d phi @mandel d_0, @loop1 %zr1
+ %zi =d phi @mandel d_0, @loop1 %zi1
+ %i1 =w add 1, %i
+ %tmp =d mul %zr, %zi
+ %zr2 =d mul %zr, %zr
+ %zi2 =d mul %zi, %zi
+ %zrx =d sub %zr2, %zi2
+ %zr1 =d add %zrx, %cr
+ %zix =d add %tmp, %tmp
+ %zi1 =d add %zix, %ci
+ %sum =d add %zi2, %zr2
+ %cmp1 =w cgtd %sum, d_16
+ jnz %cmp1, @reti, @loop1
+@loop1
+ %cmp2 =w csgtw %i1, 1000
+ jnz %cmp2, @ret0, @loop
+@reti
+ ret %i1
+@ret0
+ ret 0
+}
+
+function w $main() {
+@main
+@loopy
+ %y =d phi @main d_-1, @loopy1 %y1
+@loopx
+ %x =d phi @loopy d_-1, @loopx1 %x1
+ %i =w call $mandel(d %x, d %y)
+ jnz %i, @out, @in
+@in
+ %r0 =w call $putchar(w 42) # '*'
+ jmp @loopx1
+@out
+ %r1 =w call $putchar(w 32) # ' '
+ jmp @loopx1
+@loopx1
+ %x1 =d add %x, d_0.032
+ %cmp1 =w cgtd %x1, d_1
+ jnz %cmp1, @loopy1, @loopx
+@loopy1
+ %r2 =w call $putchar(w 10) # '\n'
+ %y1 =d add %y, d_0.032
+ %cmp2 =w cgtd %y1, d_1
+ jnz %cmp2, @ret, @loopy
+@ret
+ ret 0
+}
+
+# >>> output
+# #
+# #
+# #
+# #
+# * #
+# **** #
+# **** #
+# *** #
+# ***** #
+# ********* #
+# ************ #
+# ***************** #
+# **************** #
+# *************** #
+# **************** #
+# **************** #
+# ***************** #
+# **************** #
+# **************** #
+# ************** #
+# ************* #
+# ************ #
+# ********* #
+# ***** #
+# *********** #
+# ***************** #
+# ********************** #
+# * *********************** ** #
+# *************************** #
+# ***************************** #
+# * ******************************* ** #
+# ** *********************************** #
+# *********************************** * #
+# *********************************** #
+# ************************************* #
+# ************************************* #
+# *************************************** #
+# *************************************** #
+# *************************************** #
+# **************************************** #
+# * **************************************** #
+# ********************************************** **** #
+# **************************************************** #
+# * ***************************************************** #
+# * ***************************************************** #
+# ***** **************************************** **** #
+# * **************************************** * #
+# **************************************** #
+# *************************************** #
+# **************************************** #
+# *************************************** #
+# **************************************** #
+# ************************************ #
+# *********************************** #
+# ********************************* #
+# ************************************ #
+# *** ************* ************** *** #
+# *********** ************ ** #
+# ******** ******** #
+# ** * * #
+# #
+# #
+# #
+# <<<