summary refs log tree commit diff
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-04-13 20:15:15 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-04-13 22:22:02 -0400
commitf4da7d9ccfac4b2f3eb9b1483bfb731acb22f14a (patch)
tree569438bf1b747244a060d5f0447569bb5d3a07de
parent3cabc10e7daad7024b77f78837979e39f5b721af (diff)
downloadroux-f4da7d9ccfac4b2f3eb9b1483bfb731acb22f14a.tar.gz
add regression test for liveon bug
-rw-r--r--test/philv.ssa34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/philv.ssa b/test/philv.ssa
new file mode 100644
index 0000000..f14106f
--- /dev/null
+++ b/test/philv.ssa
@@ -0,0 +1,34 @@
+# regression test for 1f4ff634
+
+# warning! headaches can occur
+# when trying to figure out what
+# the test is doing!
+
+export
+function w $t0() {
+@start
+@loop
+	%x0 =w phi @start 256, @loop %y0
+	%y0 =w phi @start 128, @loop %y1
+	%y1 =w shr %x0, 1
+	jnz %y1, @loop, @end
+@end
+	ret %x0
+}
+
+export
+function w $t1() {  # swapped phis
+@start
+@loop
+	%y0 =w phi @start 128, @loop %y1
+	%x0 =w phi @start 256, @loop %y0
+	%y1 =w shr %x0, 1
+	jnz %y1, @loop, @end
+@end
+	ret %x0
+}
+
+# >>> driver
+# extern int t0(void), t1(void);
+# int main() { return !(t0() == 1 && t1() == 1);}
+# <<<