summary refs log tree commit diff
path: root/lisc/test/_alt.ssa
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-03-03 11:55:13 -0500
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-03-03 11:55:13 -0500
commit67f611fbef3cf16162867bdf83cb9c8a051dac4a (patch)
treeec8fc677fdd95a4f399955cfc2b82de4d42d1217 /lisc/test/_alt.ssa
parent99965071d2106e60c8929cca7e79be465cc228e1 (diff)
downloadroux-67f611fbef3cf16162867bdf83cb9c8a051dac4a.tar.gz
testbed is now functional
I would like to make sure some _ tests are
passing, however I have to think of a nice
way to grab debug output and compare it
nicely.  Some require NReg == 3, that is a
pain in the ass.  Maybe they can be changed
to work for the full register set.
Diffstat (limited to 'lisc/test/_alt.ssa')
-rw-r--r--lisc/test/_alt.ssa25
1 files changed, 25 insertions, 0 deletions
diff --git a/lisc/test/_alt.ssa b/lisc/test/_alt.ssa
new file mode 100644
index 0000000..3f89e5e
--- /dev/null
+++ b/lisc/test/_alt.ssa
@@ -0,0 +1,25 @@
+# an example with reducible control
+# flow graph that exposes poor
+# handling of looping constructs
+
+function $test() {
+@start
+	%ten =w copy 10
+	%dum =w copy 0  # dummy live-through temporary
+@loop
+	%alt =w phi @start 0, @left %alt1, @right %alt1
+	%cnt =w phi @start 100, @left %cnt, @right %cnt1
+	%alt1 =w sub 1, %alt
+	jnz %alt1, @right, @left
+@left
+	%x =w phi @loop 10, @left %x1
+	%x1 =w sub %x, 1
+	%z =w copy %x
+	jnz %z, @left, @loop
+@right
+	%cnt1 =w sub %cnt, %ten
+	jnz %cnt1, @loop, @end
+@end
+	%ret =w add %cnt, %dum
+	ret
+}