Make this test pass on Linux.
[oota-llvm.git] / test / CodeGen / ARM / select.ll
1 ; RUN: llc < %s -march=arm | FileCheck %s
2 ; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s --check-prefix=CHECK-VFP
3
4 define i32 @f1(i32 %a.s) {
5 ;CHECK: f1:
6 ;CHECK: moveq
7 entry:
8     %tmp = icmp eq i32 %a.s, 4
9     %tmp1.s = select i1 %tmp, i32 2, i32 3
10     ret i32 %tmp1.s
11 }
12
13 define i32 @f2(i32 %a.s) {
14 ;CHECK: f2:
15 ;CHECK: movgt
16 entry:
17     %tmp = icmp sgt i32 %a.s, 4
18     %tmp1.s = select i1 %tmp, i32 2, i32 3
19     ret i32 %tmp1.s
20 }
21
22 define i32 @f3(i32 %a.s, i32 %b.s) {
23 ;CHECK: f3:
24 ;CHECK: movlt
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 ;CHECK: f4:
33 ;CHECK: movle
34 entry:
35     %tmp = icmp sle i32 %a.s, %b.s
36     %tmp1.s = select i1 %tmp, i32 2, i32 3
37     ret i32 %tmp1.s
38 }
39
40 define i32 @f5(i32 %a.u, i32 %b.u) {
41 ;CHECK: f5:
42 ;CHECK: movls
43 entry:
44     %tmp = icmp ule i32 %a.u, %b.u
45     %tmp1.s = select i1 %tmp, i32 2, i32 3
46     ret i32 %tmp1.s
47 }
48
49 define i32 @f6(i32 %a.u, i32 %b.u) {
50 ;CHECK: f6:
51 ;CHECK: movhi
52 entry:
53     %tmp = icmp ugt i32 %a.u, %b.u
54     %tmp1.s = select i1 %tmp, i32 2, i32 3
55     ret i32 %tmp1.s
56 }
57
58 define double @f7(double %a, double %b) {
59 ;CHECK: f7:
60 ;CHECK: movlt
61 ;CHECK: movlt
62 ;CHECK-VFP: f7:
63 ;CHECK-VFP: vmovmi
64     %tmp = fcmp olt double %a, 1.234e+00
65     %tmp1 = select i1 %tmp, double -1.000e+00, double %b
66     ret double %tmp1
67 }