Use the llvm-upgrade program to upgrade llvm assembly.
[oota-llvm.git] / test / Transforms / DSAnalysis / arraytest.ll
1 ;
2 ; RUN: llvm-upgrade < %s | llvm-as | opt -analyze -tddatastructure
3 %crazy = type [2 x { [2 x sbyte], short } ]
4
5 implementation
6
7 sbyte *%test1(%crazy* %P1) {    ; No merging, constant indexing
8         %P = getelementptr %crazy* %P1, long 0, long 0, uint 0, long 1
9         ret sbyte *%P
10 }
11
12 sbyte *%test2(%crazy* %P1) {    ; No merging, constant indexing
13         %P = getelementptr %crazy* %P1, long 0, long 1, uint 0, long 0
14         ret sbyte *%P
15 }
16
17 sbyte *%test3(%crazy* %P1) {    ; No merging, constant indexing, must handle outter index
18         %P = getelementptr %crazy* %P1, long -1, long 0, uint 0, long 0
19         ret sbyte *%P
20 }
21
22 sbyte *%mtest1(%crazy* %P1, long %idx) {    ; Merging deepest array
23         %P = getelementptr %crazy* %P1, long 0, long 0, uint 0, long %idx
24         ret sbyte *%P
25 }
26 sbyte *%mtest2(%crazy* %P1, long %idx) {    ; Merge top array
27         %P = getelementptr %crazy* %P1, long 0, long %idx, uint 0, long 1
28         ret sbyte *%P
29 }
30 sbyte *%mtest3(%crazy* %P1, long %idx) {    ; Merge array %crazy is in
31         %P = getelementptr %crazy* %P1, long %idx, long 0, uint 0, long 1
32         ret sbyte *%P
33 }
34
35 sbyte *%m2test1(%crazy* %P1, long %idx) {    ; Merge two arrays
36         %P = getelementptr %crazy* %P1, long 0, long %idx, uint 0, long %idx
37         ret sbyte *%P
38 }
39