1 ; RUN: llc < %s -march=mipsel | FileCheck %s -check-prefix=CHECK
3 @d2 = external global double
4 @d3 = external global double
6 define i32 @sel1(i32 %s, i32 %f0, i32 %f1) nounwind readnone {
9 %tobool = icmp ne i32 %s, 0
10 %cond = select i1 %tobool, i32 %f1, i32 %f0
14 define float @sel2(i32 %s, float %f0, float %f1) nounwind readnone {
17 %tobool = icmp ne i32 %s, 0
18 %cond = select i1 %tobool, float %f0, float %f1
22 define double @sel2_1(i32 %s, double %f0, double %f1) nounwind readnone {
25 %tobool = icmp ne i32 %s, 0
26 %cond = select i1 %tobool, double %f0, double %f1
30 define float @sel3(float %f0, float %f1, float %f2, float %f3) nounwind readnone {
34 %cmp = fcmp oeq float %f2, %f3
35 %cond = select i1 %cmp, float %f0, float %f1
39 define float @sel4(float %f0, float %f1, float %f2, float %f3) nounwind readnone {
43 %cmp = fcmp olt float %f2, %f3
44 %cond = select i1 %cmp, float %f0, float %f1
48 define float @sel5(float %f0, float %f1, float %f2, float %f3) nounwind readnone {
52 %cmp = fcmp ogt float %f2, %f3
53 %cond = select i1 %cmp, float %f0, float %f1
57 define double @sel5_1(double %f0, double %f1, float %f2, float %f3) nounwind readnone {
61 %cmp = fcmp ogt float %f2, %f3
62 %cond = select i1 %cmp, double %f0, double %f1
66 define double @sel6(double %f0, double %f1, double %f2, double %f3) nounwind readnone {
70 %cmp = fcmp oeq double %f2, %f3
71 %cond = select i1 %cmp, double %f0, double %f1
75 define double @sel7(double %f0, double %f1, double %f2, double %f3) nounwind readnone {
79 %cmp = fcmp olt double %f2, %f3
80 %cond = select i1 %cmp, double %f0, double %f1
84 define double @sel8(double %f0, double %f1, double %f2, double %f3) nounwind readnone {
88 %cmp = fcmp ogt double %f2, %f3
89 %cond = select i1 %cmp, double %f0, double %f1
93 define float @sel8_1(float %f0, float %f1, double %f2, double %f3) nounwind readnone {
97 %cmp = fcmp ogt double %f2, %f3
98 %cond = select i1 %cmp, float %f0, float %f1
102 define i32 @sel9(i32 %f0, i32 %f1, float %f2, float %f3) nounwind readnone {
106 %cmp = fcmp oeq float %f2, %f3
107 %cond = select i1 %cmp, i32 %f0, i32 %f1
111 define i32 @sel10(i32 %f0, i32 %f1, float %f2, float %f3) nounwind readnone {
115 %cmp = fcmp olt float %f2, %f3
116 %cond = select i1 %cmp, i32 %f0, i32 %f1
120 define i32 @sel11(i32 %f0, i32 %f1, float %f2, float %f3) nounwind readnone {
124 %cmp = fcmp ogt float %f2, %f3
125 %cond = select i1 %cmp, i32 %f0, i32 %f1
129 define i32 @sel12(i32 %f0, i32 %f1) nounwind readonly {
133 %tmp = load double* @d2, align 8
134 %tmp1 = load double* @d3, align 8
135 %cmp = fcmp oeq double %tmp, %tmp1
136 %cond = select i1 %cmp, i32 %f0, i32 %f1
140 define i32 @sel13(i32 %f0, i32 %f1) nounwind readonly {
144 %tmp = load double* @d2, align 8
145 %tmp1 = load double* @d3, align 8
146 %cmp = fcmp olt double %tmp, %tmp1
147 %cond = select i1 %cmp, i32 %f0, i32 %f1
151 define i32 @sel14(i32 %f0, i32 %f1) nounwind readonly {
155 %tmp = load double* @d2, align 8
156 %tmp1 = load double* @d3, align 8
157 %cmp = fcmp ogt double %tmp, %tmp1
158 %cond = select i1 %cmp, i32 %f0, i32 %f1