The ARM jit cannot handle these tests as of 2010-10-27.
[oota-llvm.git] / test / ExecutionEngine / test-loadstore.ll
1 ; RUN: llvm-as %s -o %t.bc
2 ; RUN: lli %t.bc > /dev/null
3 ; XFAIL: arm
4
5 define void @test(i8* %P, i16* %P.upgrd.1, i32* %P.upgrd.2, i64* %P.upgrd.3) {
6         %V = load i8* %P                ; <i8> [#uses=1]
7         store i8 %V, i8* %P
8         %V.upgrd.4 = load i16* %P.upgrd.1               ; <i16> [#uses=1]
9         store i16 %V.upgrd.4, i16* %P.upgrd.1
10         %V.upgrd.5 = load i32* %P.upgrd.2               ; <i32> [#uses=1]
11         store i32 %V.upgrd.5, i32* %P.upgrd.2
12         %V.upgrd.6 = load i64* %P.upgrd.3               ; <i64> [#uses=1]
13         store i64 %V.upgrd.6, i64* %P.upgrd.3
14         ret void
15 }
16
17 define i32 @varalloca(i32 %Size) {
18         ;; Variable sized alloca
19         %X = alloca i32, i32 %Size              ; <i32*> [#uses=2]
20         store i32 %Size, i32* %X
21         %Y = load i32* %X               ; <i32> [#uses=1]
22         ret i32 %Y
23 }
24
25 define i32 @main() {
26         %A = alloca i8          ; <i8*> [#uses=1]
27         %B = alloca i16         ; <i16*> [#uses=1]
28         %C = alloca i32         ; <i32*> [#uses=1]
29         %D = alloca i64         ; <i64*> [#uses=1]
30         call void @test( i8* %A, i16* %B, i32* %C, i64* %D )
31         call i32 @varalloca( i32 7 )            ; <i32>:1 [#uses=0]
32         ret i32 0
33 }