summary refs log tree commit diff
path: root/test/rega1.ssa
diff options
context:
space:
mode:
Diffstat (limited to 'test/rega1.ssa')
-rw-r--r--test/rega1.ssa24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/rega1.ssa b/test/rega1.ssa
new file mode 100644
index 0000000..9e87c89
--- /dev/null
+++ b/test/rega1.ssa
@@ -0,0 +1,24 @@
+# tests that %b and %a0 do not end up in
+# the same register at the start of @loop
+
+export function l $f(l %a) {
+@start
+@loop
+	%b =l phi @start 42, @loop0 %a1, @loop1 %a1
+	%a0 =l phi @start %a, @loop0 %a1, @loop1 %a1
+	%a1 =l sub %a0, 1
+	jnz %b, @loop0, @loop1
+@loop0
+	jnz %a1, @loop, @end
+@loop1
+	jnz %a1, @loop, @end
+@end
+	ret %b
+}
+
+# >>> driver
+# extern long long f(long long);
+# int main() {
+# 	return !(f(1) == 42 && f(2) == 1 && f(42) == 1);
+# }
+# <<<