• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -mtriple=arm-eabi -mcpu=swift %s -o - | FileCheck %s
2; RUN: llc -mtriple=arm-eabi -mcpu=cortex-a8 -mattr=-neon %s -o -
3
4define float @fmin_ole(float %x) nounwind {
5;CHECK-LABEL: fmin_ole:
6;CHECK: vmin.f32
7  %cond = fcmp ole float 1.0, %x
8  %min1 = select i1 %cond, float 1.0, float %x
9  ret float %min1
10}
11
12define float @fmin_ole_zero(float %x) nounwind {
13;CHECK-LABEL: fmin_ole_zero:
14;CHECK-NOT: vmin.f32
15  %cond = fcmp ole float 0.0, %x
16  %min1 = select i1 %cond, float 0.0, float %x
17  ret float %min1
18}
19
20define float @fmin_ult(float %x) nounwind {
21;CHECK-LABEL: fmin_ult:
22;CHECK: vmin.f32
23  %cond = fcmp ult float %x, 1.0
24  %min1 = select i1 %cond, float %x, float 1.0
25  ret float %min1
26}
27
28define float @fmax_ogt(float %x) nounwind {
29;CHECK-LABEL: fmax_ogt:
30;CHECK: vmax.f32
31  %cond = fcmp ogt float 1.0, %x
32  %max1 = select i1 %cond, float 1.0, float %x
33  ret float %max1
34}
35
36define float @fmax_uge(float %x) nounwind {
37;CHECK-LABEL: fmax_uge:
38;CHECK: vmax.f32
39  %cond = fcmp uge float %x, 1.0
40  %max1 = select i1 %cond, float %x, float 1.0
41  ret float %max1
42}
43
44define float @fmax_uge_zero(float %x) nounwind {
45;CHECK-LABEL: fmax_uge_zero:
46;CHECK-NOT: vmax.f32
47  %cond = fcmp uge float %x, 0.0
48  %max1 = select i1 %cond, float %x, float 0.0
49  ret float %max1
50}
51
52define float @fmax_olt_reverse(float %x) nounwind {
53;CHECK-LABEL: fmax_olt_reverse:
54;CHECK: vmax.f32
55  %cond = fcmp olt float %x, 1.0
56  %max1 = select i1 %cond, float 1.0, float %x
57  ret float %max1
58}
59
60define float @fmax_ule_reverse(float %x) nounwind {
61;CHECK-LABEL: fmax_ule_reverse:
62;CHECK: vmax.f32
63  %cond = fcmp ult float 1.0, %x
64  %max1 = select i1 %cond, float %x, float 1.0
65  ret float %max1
66}
67
68define float @fmin_oge_reverse(float %x) nounwind {
69;CHECK-LABEL: fmin_oge_reverse:
70;CHECK: vmin.f32
71  %cond = fcmp oge float %x, 1.0
72  %min1 = select i1 %cond, float 1.0, float %x
73  ret float %min1
74}
75
76define float @fmin_ugt_reverse(float %x) nounwind {
77;CHECK-LABEL: fmin_ugt_reverse:
78;CHECK: vmin.f32
79  %cond = fcmp ugt float 1.0, %x
80  %min1 = select i1 %cond, float %x, float 1.0
81  ret float %min1
82}
83