summaryrefslogtreecommitdiff
path: root/test/Feature/basictest.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Feature/basictest.ll')
-rw-r--r--test/Feature/basictest.ll53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/Feature/basictest.ll b/test/Feature/basictest.ll
new file mode 100644
index 0000000000..b50c4f3f67
--- /dev/null
+++ b/test/Feature/basictest.ll
@@ -0,0 +1,53 @@
+implementation
+
+void "test function"(int %i0, int %j0)
+ %x = int 1
+begin
+Startup: ; Basic block #0
+ %i1 = add int %i0, 1
+ %j1 = add int %j0, 1
+ %x = setle int %i1, %j1
+ br bool %x, label %Increment, label %Decrement
+
+Merge: ; Basic block #3
+ %i4 = phi int %i2, %i3 ; Forward ref vars...
+ %j2 = add int %j1, %i4
+ ret void
+
+Increment: ; Basic block #1
+ %i2 = add int %i1, 1
+ br label %Merge
+
+Decrement: ; Basic block #2
+ %i3 = sub int %i1, %x
+ br label %Merge
+end
+
+
+; Test "stripped" format where nothing is symbolic... this is how the bytecode
+; format looks anyways (except for negative vs positive offsets)...
+;
+void "void"(int, int) ; Def %0, %1
+ int 0 ; Def 2
+ int -4 ; Def 3
+begin
+ add int %0, %1 ; Def 4
+ sub int %4, %3 ; Def 5
+ setle int %5, %2 ; Def 0 - bool plane
+ br bool %0, label %1, label %0
+
+ add int %0, %1 ; Def 6
+ sub int %4, %3 ; Def 7
+ setle int %7, %2 ; Def 1 - bool plane
+ ret void
+end
+
+; This function always returns zero
+int "zarro"()
+ uint 4000000000 ; Def 0 - uint plane
+ int 0 ; Def 0 - int plane
+begin
+Startup:
+ ret int %0
+end
+