blob: d301c6a4ca90b4509abfa491064e2f6c98b24482 [file] [log] [blame]
Bob Wilson9f6c4c12010-02-18 06:05:53 +00001; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s
2
3define float @fmin_ole(float %x) nounwind {
4;CHECK: fmin_ole:
5;CHECK: vmin.f32
6 %cond = fcmp ole float 1.0, %x
7 %min1 = select i1 %cond, float 1.0, float %x
8 ret float %min1
9}
10
Bob Wilsone742bb52010-02-24 22:15:53 +000011define float @fmin_ole_zero(float %x) nounwind {
12;CHECK: fmin_ole_zero:
13;CHECK-NOT: vmin.f32
14 %cond = fcmp ole float 0.0, %x
15 %min1 = select i1 %cond, float 0.0, float %x
16 ret float %min1
17}
18
Bob Wilson9f6c4c12010-02-18 06:05:53 +000019define float @fmin_ult(float %x) nounwind {
20;CHECK: fmin_ult:
21;CHECK: vmin.f32
22 %cond = fcmp ult float %x, 1.0
23 %min1 = select i1 %cond, float %x, float 1.0
24 ret float %min1
25}
26
27define float @fmax_ogt(float %x) nounwind {
28;CHECK: fmax_ogt:
29;CHECK: vmax.f32
30 %cond = fcmp ogt float 1.0, %x
31 %max1 = select i1 %cond, float 1.0, float %x
32 ret float %max1
33}
34
35define float @fmax_uge(float %x) nounwind {
36;CHECK: fmax_uge:
37;CHECK: vmax.f32
38 %cond = fcmp uge float %x, 1.0
39 %max1 = select i1 %cond, float %x, float 1.0
40 ret float %max1
41}
42
Bob Wilsone742bb52010-02-24 22:15:53 +000043define float @fmax_uge_zero(float %x) nounwind {
44;CHECK: fmax_uge_zero:
45;CHECK-NOT: vmax.f32
46 %cond = fcmp uge float %x, 0.0
47 %max1 = select i1 %cond, float %x, float 0.0
48 ret float %max1
49}
50
Bob Wilson9f6c4c12010-02-18 06:05:53 +000051define float @fmax_olt_reverse(float %x) nounwind {
52;CHECK: fmax_olt_reverse:
53;CHECK: vmax.f32
54 %cond = fcmp olt float %x, 1.0
55 %max1 = select i1 %cond, float 1.0, float %x
56 ret float %max1
57}
58
59define float @fmax_ule_reverse(float %x) nounwind {
60;CHECK: fmax_ule_reverse:
61;CHECK: vmax.f32
62 %cond = fcmp ult float 1.0, %x
63 %max1 = select i1 %cond, float %x, float 1.0
64 ret float %max1
65}
66
67define float @fmin_oge_reverse(float %x) nounwind {
68;CHECK: fmin_oge_reverse:
69;CHECK: vmin.f32
70 %cond = fcmp oge float %x, 1.0
71 %min1 = select i1 %cond, float 1.0, float %x
72 ret float %min1
73}
74
75define float @fmin_ugt_reverse(float %x) nounwind {
76;CHECK: fmin_ugt_reverse:
77;CHECK: vmin.f32
78 %cond = fcmp ugt float 1.0, %x
79 %min1 = select i1 %cond, float %x, float 1.0
80 ret float %min1
81}