Move thumb and thumb2 tests into separate directories.
[oota-llvm.git] / test / CodeGen / ARM / select.ll
1 ; RUN: llvm-as < %s | llc -march=arm | grep moveq | count 1
2 ; RUN: llvm-as < %s | llc -march=arm | grep movgt | count 1
3 ; RUN: llvm-as < %s | llc -march=arm | grep movlt | count 3
4 ; RUN: llvm-as < %s | llc -march=arm | grep movle | count 1
5 ; RUN: llvm-as < %s | llc -march=arm | grep movls | count 1
6 ; RUN: llvm-as < %s | llc -march=arm | grep movhi | count 1
7 ; RUN: llvm-as < %s | llc -march=arm -mattr=+vfp2 | \
8 ; RUN:   grep fcpydmi | count 1
9
10 define i32 @f1(i32 %a.s) {
11 entry:
12     %tmp = icmp eq i32 %a.s, 4
13     %tmp1.s = select i1 %tmp, i32 2, i32 3
14     ret i32 %tmp1.s
15 }
16
17 define i32 @f2(i32 %a.s) {
18 entry:
19     %tmp = icmp sgt i32 %a.s, 4
20     %tmp1.s = select i1 %tmp, i32 2, i32 3
21     ret i32 %tmp1.s
22 }
23
24 define i32 @f3(i32 %a.s, i32 %b.s) {
25 entry:
26     %tmp = icmp slt i32 %a.s, %b.s
27     %tmp1.s = select i1 %tmp, i32 2, i32 3
28     ret i32 %tmp1.s
29 }
30
31 define i32 @f4(i32 %a.s, i32 %b.s) {
32 entry:
33     %tmp = icmp sle i32 %a.s, %b.s
34     %tmp1.s = select i1 %tmp, i32 2, i32 3
35     ret i32 %tmp1.s
36 }
37
38 define i32 @f5(i32 %a.u, i32 %b.u) {
39 entry:
40     %tmp = icmp ule i32 %a.u, %b.u
41     %tmp1.s = select i1 %tmp, i32 2, i32 3
42     ret i32 %tmp1.s
43 }
44
45 define i32 @f6(i32 %a.u, i32 %b.u) {
46 entry:
47     %tmp = icmp ugt i32 %a.u, %b.u
48     %tmp1.s = select i1 %tmp, i32 2, i32 3
49     ret i32 %tmp1.s
50 }
51
52 define double @f7(double %a, double %b) {
53     %tmp = fcmp olt double %a, 1.234e+00
54     %tmp1 = select i1 %tmp, double -1.000e+00, double %b
55     ret double %tmp1
56 }