blob: 29c55c6bd97522710cf31caa8a4acd545e1d7bfa [file] [log] [blame]
Bob Wilson20399e12009-10-09 17:20:46 +00001; RUN: llc < %s -march=arm | FileCheck %s
2; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s --check-prefix=CHECK-VFP
Dan Gohmanf17a25c2007-07-18 16:29:46 +00003
4define i32 @f1(i32 %a.s) {
Bob Wilson20399e12009-10-09 17:20:46 +00005;CHECK: f1:
6;CHECK: moveq
Dan Gohmanf17a25c2007-07-18 16:29:46 +00007entry:
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
13define i32 @f2(i32 %a.s) {
Bob Wilson20399e12009-10-09 17:20:46 +000014;CHECK: f2:
15;CHECK: movgt
Dan Gohmanf17a25c2007-07-18 16:29:46 +000016entry:
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
22define i32 @f3(i32 %a.s, i32 %b.s) {
Bob Wilson20399e12009-10-09 17:20:46 +000023;CHECK: f3:
24;CHECK: movlt
Dan Gohmanf17a25c2007-07-18 16:29:46 +000025entry:
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
31define i32 @f4(i32 %a.s, i32 %b.s) {
Bob Wilson20399e12009-10-09 17:20:46 +000032;CHECK: f4:
33;CHECK: movle
Dan Gohmanf17a25c2007-07-18 16:29:46 +000034entry:
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
40define i32 @f5(i32 %a.u, i32 %b.u) {
Bob Wilson20399e12009-10-09 17:20:46 +000041;CHECK: f5:
42;CHECK: movls
Dan Gohmanf17a25c2007-07-18 16:29:46 +000043entry:
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
49define i32 @f6(i32 %a.u, i32 %b.u) {
Bob Wilson20399e12009-10-09 17:20:46 +000050;CHECK: f6:
51;CHECK: movhi
Dan Gohmanf17a25c2007-07-18 16:29:46 +000052entry:
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
58define double @f7(double %a, double %b) {
Bob Wilson20399e12009-10-09 17:20:46 +000059;CHECK: f7:
60;CHECK: movlt
61;CHECK: movlt
62;CHECK-VFP: f7:
Jim Grosbache2fda532009-11-09 00:11:35 +000063;CHECK-VFP: vmovmi
Dan Gohmanf17a25c2007-07-18 16:29:46 +000064 %tmp = fcmp olt double %a, 1.234e+00
65 %tmp1 = select i1 %tmp, double -1.000e+00, double %b
66 ret double %tmp1
67}