Thumb tests.
[oota-llvm.git] / test / CodeGen / ARM / long.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm &&
2 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "\-2147483648" | wc -l | grep 3 &&
3 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "mvn" | wc -l | grep 3 &&
4 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "adds" | wc -l | grep 1 &&
5 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "adc" | wc -l | grep 1 &&
6 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "subs " | wc -l | grep 1 &&
7 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "sbc" | wc -l | grep 1 &&
8 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "smull" | wc -l | grep 1 &&
9 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep "umull" | wc -l | grep 1 &&
10 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -enable-thumb &&
11 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -enable-thumb | grep "mvn" | wc -l | grep 1 &&
12 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -enable-thumb | grep "adds" | wc -l | grep 1 &&
13 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -enable-thumb | grep "adc" | wc -l | grep 1 &&
14 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -enable-thumb | grep "subs " | wc -l | grep 1 &&
15 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -enable-thumb | grep "sbc" | wc -l | grep 1 &&
16 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -enable-thumb | grep "__muldi3"
17
18 long %f1() {
19 entry:
20         ret long 0
21 }
22
23 long %f2() {
24 entry:
25         ret long 1
26 }
27
28 long %f3() {
29 entry:
30         ret long 2147483647
31 }
32
33 long %f4() {
34 entry:
35         ret long 2147483648
36 }
37
38 long %f5() {
39 entry:
40         ret long 9223372036854775807
41 }
42
43 ulong %f6(ulong %x, ulong %y) {
44 entry:
45         %tmp1 = add ulong %y, 1
46         ret ulong %tmp1
47 }
48
49 void %f7() {
50 entry:
51         %tmp = call long %f8()
52         ret void
53 }
54 declare long %f8()
55
56 long %f9(long %a, long %b) {
57 entry:
58         %tmp = sub long %a, %b
59         ret long %tmp
60 }
61
62 long %f(int %a, int %b) {
63 entry:
64         %tmp = cast int %a to long
65         %tmp1 = cast int %b to long
66         %tmp2 = mul long %tmp1, %tmp
67         ret long %tmp2
68 }
69
70 ulong %g(uint %a, uint %b) {
71 entry:
72         %tmp = cast uint %a to ulong
73         %tmp1 = cast uint %b to ulong
74         %tmp2 = mul ulong %tmp1, %tmp
75         ret ulong %tmp2
76 }
77
78 ulong %f10() {
79 entry:
80         %a = alloca ulong, align 8
81         %retval = load ulong* %a
82         ret ulong %retval
83 }