• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc  < %s -march=mipsel | FileCheck %s
2
3define void @func0(float %f2, float %f3) nounwind {
4entry:
5; CHECK: c.eq.s
6; CHECK: bc1f
7  %cmp = fcmp oeq float %f2, %f3
8  br i1 %cmp, label %if.then, label %if.else
9
10if.then:                                          ; preds = %entry
11  tail call void (...)* @g0() nounwind
12  br label %if.end
13
14if.else:                                          ; preds = %entry
15  tail call void (...)* @g1() nounwind
16  br label %if.end
17
18if.end:                                           ; preds = %if.else, %if.then
19  ret void
20}
21
22declare void @g0(...)
23
24declare void @g1(...)
25
26define void @func1(float %f2, float %f3) nounwind {
27entry:
28; CHECK: c.olt.s
29; CHECK: bc1f
30  %cmp = fcmp olt float %f2, %f3
31  br i1 %cmp, label %if.then, label %if.else
32
33if.then:                                          ; preds = %entry
34  tail call void (...)* @g0() nounwind
35  br label %if.end
36
37if.else:                                          ; preds = %entry
38  tail call void (...)* @g1() nounwind
39  br label %if.end
40
41if.end:                                           ; preds = %if.else, %if.then
42  ret void
43}
44
45define void @func2(float %f2, float %f3) nounwind {
46entry:
47; CHECK: c.ole.s
48; CHECK: bc1f
49  %cmp = fcmp ugt float %f2, %f3
50  br i1 %cmp, label %if.else, label %if.then
51
52if.then:                                          ; preds = %entry
53  tail call void (...)* @g0() nounwind
54  br label %if.end
55
56if.else:                                          ; preds = %entry
57  tail call void (...)* @g1() nounwind
58  br label %if.end
59
60if.end:                                           ; preds = %if.else, %if.then
61  ret void
62}
63
64define void @func3(double %f2, double %f3) nounwind {
65entry:
66; CHECK: c.eq.d
67; CHECK: bc1f
68  %cmp = fcmp oeq double %f2, %f3
69  br i1 %cmp, label %if.then, label %if.else
70
71if.then:                                          ; preds = %entry
72  tail call void (...)* @g0() nounwind
73  br label %if.end
74
75if.else:                                          ; preds = %entry
76  tail call void (...)* @g1() nounwind
77  br label %if.end
78
79if.end:                                           ; preds = %if.else, %if.then
80  ret void
81}
82
83define void @func4(double %f2, double %f3) nounwind {
84entry:
85; CHECK: c.olt.d
86; CHECK: bc1f
87  %cmp = fcmp olt double %f2, %f3
88  br i1 %cmp, label %if.then, label %if.else
89
90if.then:                                          ; preds = %entry
91  tail call void (...)* @g0() nounwind
92  br label %if.end
93
94if.else:                                          ; preds = %entry
95  tail call void (...)* @g1() nounwind
96  br label %if.end
97
98if.end:                                           ; preds = %if.else, %if.then
99  ret void
100}
101
102define void @func5(double %f2, double %f3) nounwind {
103entry:
104; CHECK: c.ole.d
105; CHECK: bc1f
106  %cmp = fcmp ugt double %f2, %f3
107  br i1 %cmp, label %if.else, label %if.then
108
109if.then:                                          ; preds = %entry
110  tail call void (...)* @g0() nounwind
111  br label %if.end
112
113if.else:                                          ; preds = %entry
114  tail call void (...)* @g1() nounwind
115  br label %if.end
116
117if.end:                                           ; preds = %if.else, %if.then
118  ret void
119}
120