Build constants using instructions mov/orr or mvn/eor.
[oota-llvm.git] / test / CodeGen / ARM / constants.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm -o %t.s -f &&
2 ; RUN: grep "mov r0, #0" %t.s     | wc -l | grep 1 &&
3 ; RUN: grep "mov r0, #255" %t.s   | wc -l | grep 1 &&
4 ; RUN: grep "mov r0, #256" %t.s   | wc -l | grep 1 &&
5 ; RUN: grep "mov r0, #1" %t.s     | wc -l | grep 2 &&
6 ; RUN: grep "orr r0, r0, #256" %t.s     | wc -l | grep 1 &&
7 ; RUN: grep "mov r0, #-1073741761" %t.s | wc -l | grep 1 &&
8 ; RUN: grep "mov r0, #1008" %t.s  | wc -l | grep 1 &&
9 ; RUN: grep "cmp r0, #65536" %t.s | wc -l | grep 1 &&
10 ; RUN: grep "\.comm.*a,4,4" %t.s  | wc -l | grep 1
11
12 %a = internal global int 0
13
14 uint %f1() {
15   ret uint 0
16 }
17
18 uint %f2() {
19   ret uint 255
20 }
21
22 uint %f3() {
23   ret uint 256
24 }
25
26 uint %f4() {
27   ret uint 257
28 }
29
30 uint %f5() {
31   ret uint 3221225535
32 }
33
34 uint %f6() {
35   ret uint 1008
36 }
37
38 void %f7(uint %a) {
39 entry:
40         %b = setgt uint %a, 65536
41         br bool %b, label %r, label %r
42
43 r:
44         ret void
45 }