Version of testmemory to test alloca, load and store.
authorVikram S. Adve <vadve@cs.uiuc.edu>
Sat, 21 Jul 2001 12:46:12 +0000 (12:46 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Sat, 21 Jul 2001 12:46:12 +0000 (12:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238 91177308-0d34-0410-b5e6-96231b3b80d8

test/Feature/testalloca.ll [new file with mode: 0644]

diff --git a/test/Feature/testalloca.ll b/test/Feature/testalloca.ll
new file mode 100644 (file)
index 0000000..cb867c0
--- /dev/null
@@ -0,0 +1,23 @@
+%inners = type {float, {ubyte } }
+%struct = type { int , {float, {ubyte } } , ulong }
+
+implementation
+
+int "test function"(int %i0, int %j0)
+begin
+    alloca [ubyte], uint 5
+    %ptr = alloca int                       ; yields {int*}:ptr
+    store int 3, int* %ptr                  ; yields {void}
+    %val = load int* %ptr                   ; yields {int}:val = int %3
+
+    %sptr = alloca %struct                  ; yields {%struct*}:sptr
+    %nsptr = getelementptr %struct * %sptr, ubyte 1  ; yields {inners*}:nsptr
+    %ubsptr = getelementptr %inners * %nsptr, ubyte 1  ; yields {{ubyte}*}:ubsptr
+    store ubyte 4, {ubyte} * %ubsptr, ubyte 0
+    
+    %fptr = getelementptr %struct * %sptr, ubyte 1, ubyte 0  ; yields {float*}:fptr
+    store float 4.0, float * %fptr
+    
+    ret int 3
+end
+