commit 00f3d2228b96c03e63091f4c92fee0478f39328e
parent 844b97cf37e245a538b5b5946ae5c765d2a7733c
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date: Sat, 10 Dec 2016 20:27:00 -0500
new eight queens test
Diffstat:
A | test/queen.ssa | | | 282 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 282 insertions(+), 0 deletions(-)
diff --git a/test/queen.ssa b/test/queen.ssa
@@ -0,0 +1,282 @@
+# eight queens program
+# generated by minic
+
+export function w $chk(w %t0, w %t1) {
+@l0
+ %x =l alloc4 4
+ storew %t0, %x
+ %y =l alloc4 4
+ storew %t1, %y
+ %i =l alloc4 4
+ %r =l alloc4 4
+ storew 0, %i
+ storew 0, %r
+@l1
+ %t6 =w loadw %i
+ %t7 =w loadw $glo1
+ %t5 =w csltw %t6, %t7
+ jnz %t5, @l2, @l3
+@l2
+ %t10 =w loadw %r
+ %t15 =l loadl $glo3
+ %t16 =w loadw %x
+ %t17 =l extsw %t16
+ %t18 =l mul 8, %t17
+ %t14 =l add %t15, %t18
+ %t13 =l loadl %t14
+ %t19 =w loadw %i
+ %t20 =l extsw %t19
+ %t21 =l mul 4, %t20
+ %t12 =l add %t13, %t21
+ %t11 =w loadw %t12
+ %t9 =w add %t10, %t11
+ storew %t9, %r
+ %t24 =w loadw %r
+ %t29 =l loadl $glo3
+ %t30 =w loadw %i
+ %t31 =l extsw %t30
+ %t32 =l mul 8, %t31
+ %t28 =l add %t29, %t32
+ %t27 =l loadl %t28
+ %t33 =w loadw %y
+ %t34 =l extsw %t33
+ %t35 =l mul 4, %t34
+ %t26 =l add %t27, %t35
+ %t25 =w loadw %t26
+ %t23 =w add %t24, %t25
+ storew %t23, %r
+ %t39 =w loadw %x
+ %t40 =w loadw %i
+ %t38 =w add %t39, %t40
+ %t41 =w loadw $glo1
+ %t37 =w csltw %t38, %t41
+ %t44 =w loadw %y
+ %t45 =w loadw %i
+ %t43 =w add %t44, %t45
+ %t46 =w loadw $glo1
+ %t42 =w csltw %t43, %t46
+ %t36 =w and %t37, %t42
+ jnz %t36, @l4, @l5
+@l4
+ %t49 =w loadw %r
+ %t54 =l loadl $glo3
+ %t56 =w loadw %x
+ %t57 =w loadw %i
+ %t55 =w add %t56, %t57
+ %t58 =l extsw %t55
+ %t59 =l mul 8, %t58
+ %t53 =l add %t54, %t59
+ %t52 =l loadl %t53
+ %t61 =w loadw %y
+ %t62 =w loadw %i
+ %t60 =w add %t61, %t62
+ %t63 =l extsw %t60
+ %t64 =l mul 4, %t63
+ %t51 =l add %t52, %t64
+ %t50 =w loadw %t51
+ %t48 =w add %t49, %t50
+ storew %t48, %r
+@l5
+ %t68 =w loadw %x
+ %t69 =w loadw %i
+ %t67 =w add %t68, %t69
+ %t70 =w loadw $glo1
+ %t66 =w csltw %t67, %t70
+ %t74 =w loadw %y
+ %t75 =w loadw %i
+ %t73 =w sub %t74, %t75
+ %t71 =w cslew 0, %t73
+ %t65 =w and %t66, %t71
+ jnz %t65, @l7, @l8
+@l7
+ %t78 =w loadw %r
+ %t83 =l loadl $glo3
+ %t85 =w loadw %x
+ %t86 =w loadw %i
+ %t84 =w add %t85, %t86
+ %t87 =l extsw %t84
+ %t88 =l mul 8, %t87
+ %t82 =l add %t83, %t88
+ %t81 =l loadl %t82
+ %t90 =w loadw %y
+ %t91 =w loadw %i
+ %t89 =w sub %t90, %t91
+ %t92 =l extsw %t89
+ %t93 =l mul 4, %t92
+ %t80 =l add %t81, %t93
+ %t79 =w loadw %t80
+ %t77 =w add %t78, %t79
+ storew %t77, %r
+@l8
+ %t98 =w loadw %x
+ %t99 =w loadw %i
+ %t97 =w sub %t98, %t99
+ %t95 =w cslew 0, %t97
+ %t102 =w loadw %y
+ %t103 =w loadw %i
+ %t101 =w add %t102, %t103
+ %t104 =w loadw $glo1
+ %t100 =w csltw %t101, %t104
+ %t94 =w and %t95, %t100
+ jnz %t94, @l10, @l11
+@l10
+ %t107 =w loadw %r
+ %t112 =l loadl $glo3
+ %t114 =w loadw %x
+ %t115 =w loadw %i
+ %t113 =w sub %t114, %t115
+ %t116 =l extsw %t113
+ %t117 =l mul 8, %t116
+ %t111 =l add %t112, %t117
+ %t110 =l loadl %t111
+ %t119 =w loadw %y
+ %t120 =w loadw %i
+ %t118 =w add %t119, %t120
+ %t121 =l extsw %t118
+ %t122 =l mul 4, %t121
+ %t109 =l add %t110, %t122
+ %t108 =w loadw %t109
+ %t106 =w add %t107, %t108
+ storew %t106, %r
+@l11
+ %t127 =w loadw %x
+ %t128 =w loadw %i
+ %t126 =w sub %t127, %t128
+ %t124 =w cslew 0, %t126
+ %t132 =w loadw %y
+ %t133 =w loadw %i
+ %t131 =w sub %t132, %t133
+ %t129 =w cslew 0, %t131
+ %t123 =w and %t124, %t129
+ jnz %t123, @l13, @l14
+@l13
+ %t136 =w loadw %r
+ %t141 =l loadl $glo3
+ %t143 =w loadw %x
+ %t144 =w loadw %i
+ %t142 =w sub %t143, %t144
+ %t145 =l extsw %t142
+ %t146 =l mul 8, %t145
+ %t140 =l add %t141, %t146
+ %t139 =l loadl %t140
+ %t148 =w loadw %y
+ %t149 =w loadw %i
+ %t147 =w sub %t148, %t149
+ %t150 =l extsw %t147
+ %t151 =l mul 4, %t150
+ %t138 =l add %t139, %t151
+ %t137 =w loadw %t138
+ %t135 =w add %t136, %t137
+ storew %t135, %r
+@l14
+ %t153 =w loadw %i
+ %t152 =w add %t153, 1
+ storew %t152, %i
+ jmp @l1
+@l3
+ %t154 =w loadw %r
+ ret %t154
+}
+
+export function w $go(w %t0) {
+@l16
+ %y =l alloc4 4
+ storew %t0, %y
+ %x =l alloc4 4
+ %t2 =w loadw %y
+ %t3 =w loadw $glo1
+ %t1 =w ceqw %t2, %t3
+ jnz %t1, @l17, @l18
+@l17
+ %t5 =w loadw $glo2
+ %t4 =w add %t5, 1
+ storew %t4, $glo2
+ ret 0
+@l18
+ storew 0, %x
+@l20
+ %t10 =w loadw %x
+ %t11 =w loadw $glo1
+ %t9 =w csltw %t10, %t11
+ jnz %t9, @l21, @l22
+@l21
+ %t14 =w loadw %x
+ %t15 =w loadw %y
+ %t13 =w call $chk(w %t14, w %t15)
+ %t12 =w ceqw %t13, 0
+ jnz %t12, @l23, @l24
+@l23
+ %t21 =l loadl $glo3
+ %t22 =w loadw %x
+ %t23 =l extsw %t22
+ %t24 =l mul 8, %t23
+ %t20 =l add %t21, %t24
+ %t19 =l loadl %t20
+ %t25 =w loadw %y
+ %t26 =l extsw %t25
+ %t27 =l mul 4, %t26
+ %t18 =l add %t19, %t27
+ %t28 =w loadw %t18
+ %t17 =w add %t28, 1
+ storew %t17, %t18
+ %t31 =w loadw %y
+ %t30 =w add %t31, 1
+ %t29 =w call $go(w %t30)
+ %t37 =l loadl $glo3
+ %t38 =w loadw %x
+ %t39 =l extsw %t38
+ %t40 =l mul 8, %t39
+ %t36 =l add %t37, %t40
+ %t35 =l loadl %t36
+ %t41 =w loadw %y
+ %t42 =l extsw %t41
+ %t43 =l mul 4, %t42
+ %t34 =l add %t35, %t43
+ %t44 =w loadw %t34
+ %t33 =w sub %t44, 1
+ storew %t33, %t34
+@l24
+ %t46 =w loadw %x
+ %t45 =w add %t46, 1
+ storew %t45, %x
+ jmp @l20
+@l22
+ ret 0
+}
+
+export function w $main() {
+@l26
+ %i =l alloc4 4
+ storew 8, $glo1
+ %t4 =w loadw $glo1
+ %t3 =l call $calloc(w %t4, w 8)
+ storel %t3, $glo3
+ storew 0, %i
+@l27
+ %t9 =w loadw %i
+ %t10 =w loadw $glo1
+ %t8 =w csltw %t9, %t10
+ jnz %t8, @l28, @l29
+@l28
+ %t13 =w loadw $glo1
+ %t12 =l call $calloc(w %t13, w 4)
+ %t16 =l loadl $glo3
+ %t17 =w loadw %i
+ %t18 =l extsw %t17
+ %t19 =l mul 8, %t18
+ %t15 =l add %t16, %t19
+ storel %t12, %t15
+ %t21 =w loadw %i
+ %t20 =w add %t21, 1
+ storew %t20, %i
+ jmp @l27
+@l29
+ %t22 =w call $go(w 0)
+ %t25 =w loadw $glo2
+ %t24 =w cnew %t25, 92
+ ret %t24
+}
+
+data $glo1 = { w 0 }
+data $glo2 = { w 0 }
+data $glo3 = { l 0 }