summary refs log tree commit diff
path: root/test/philv.ssa
diff options
context:
space:
mode:
Diffstat (limited to 'test/philv.ssa')
-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);}
+# <<<