summary refs log tree commit diff
path: root/test/isel1.ssa
diff options
context:
space:
mode:
Diffstat (limited to 'test/isel1.ssa')
-rw-r--r--test/isel1.ssa24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/isel1.ssa b/test/isel1.ssa
new file mode 100644
index 0000000..879a871
--- /dev/null
+++ b/test/isel1.ssa
@@ -0,0 +1,24 @@
+# tests that the address matcher is not
+# confused by the two multiplications
+
+# note: the code handling apple asm fixes
+# ruins the good work of the matcher here,
+# I should revisit these fixes
+
+export function w $f(l %i, l %j) {
+@start
+	%off1 =l mul %i, 8
+	%a_i =l add $a, %off1
+	%off2 =l mul %j, 4
+	%a_ij =l add %a_i, %off2
+	%x =w loadsw %a_ij
+	ret %x
+}
+
+# >>> driver
+# int a[] = {1, 2, 3, 4};
+# extern int f(long long, long long);
+# int main() {
+# 	return !(f(0, 0) == 1 && f(0, 1) == 2 && f(1, 0) == 3 && f(1, 1) == 4);
+# }
+# <<<