@@ -28,6 +28,7 @@ define i32 @fcmp_false(float %a, float %b) nounwind {
2828 ret i32 %2
2929}
3030
31+ ; FIXME: slli+srli on RV64 are unnecessary
3132define i32 @fcmp_oeq (float %a , float %b ) nounwind {
3233; CHECKIF-LABEL: fcmp_oeq:
3334; CHECKIF: # %bb.0:
@@ -60,6 +61,7 @@ define i32 @fcmp_oeq(float %a, float %b) nounwind {
6061 ret i32 %2
6162}
6263
64+ ; FIXME: sext.w on RV64 is unnecessary
6365define i32 @fcmp_ogt (float %a , float %b ) nounwind {
6466; CHECKIF-LABEL: fcmp_ogt:
6567; CHECKIF: # %bb.0:
@@ -91,6 +93,7 @@ define i32 @fcmp_ogt(float %a, float %b) nounwind {
9193 ret i32 %2
9294}
9395
96+ ; FIXME: sext.w on RV64 is unnecessary
9497define i32 @fcmp_oge (float %a , float %b ) nounwind {
9598; CHECKIF-LABEL: fcmp_oge:
9699; CHECKIF: # %bb.0:
@@ -124,6 +127,7 @@ define i32 @fcmp_oge(float %a, float %b) nounwind {
124127 ret i32 %2
125128}
126129
130+ ; FIXME: sext.w on RV64 is unnecessary
127131define i32 @fcmp_olt (float %a , float %b ) nounwind {
128132; CHECKIF-LABEL: fcmp_olt:
129133; CHECKIF: # %bb.0:
@@ -155,6 +159,8 @@ define i32 @fcmp_olt(float %a, float %b) nounwind {
155159 ret i32 %2
156160}
157161
162+ ; FIXME: sext.w on RV64 is unnecessary
163+ ; FIXME: sgtz+xori can be slti a0, a0, 1
158164define i32 @fcmp_ole (float %a , float %b ) nounwind {
159165; CHECKIF-LABEL: fcmp_ole:
160166; CHECKIF: # %bb.0:
@@ -188,6 +194,7 @@ define i32 @fcmp_ole(float %a, float %b) nounwind {
188194 ret i32 %2
189195}
190196
197+ ; FIXME: slli+srli on RV64 are unnecessary
191198define i32 @fcmp_one (float %a , float %b ) nounwind {
192199; CHECKIF-LABEL: fcmp_one:
193200; CHECKIF: # %bb.0:
@@ -250,6 +257,7 @@ define i32 @fcmp_one(float %a, float %b) nounwind {
250257 ret i32 %2
251258}
252259
260+ ; FIXME: slli+srli on RV64 are unnecessary
253261define i32 @fcmp_ord (float %a , float %b ) nounwind {
254262; CHECKIF-LABEL: fcmp_ord:
255263; CHECKIF: # %bb.0:
@@ -284,6 +292,7 @@ define i32 @fcmp_ord(float %a, float %b) nounwind {
284292 ret i32 %2
285293}
286294
295+ ; FIXME: slli+srli on RV64 are unnecessary
287296define i32 @fcmp_ueq (float %a , float %b ) nounwind {
288297; CHECKIF-LABEL: fcmp_ueq:
289298; CHECKIF: # %bb.0:
@@ -347,6 +356,7 @@ define i32 @fcmp_ueq(float %a, float %b) nounwind {
347356 ret i32 %2
348357}
349358
359+ ; FIXME: sext.w on RV64 is unnecessary
350360define i32 @fcmp_ugt (float %a , float %b ) nounwind {
351361; CHECKIF-LABEL: fcmp_ugt:
352362; CHECKIF: # %bb.0:
@@ -379,6 +389,7 @@ define i32 @fcmp_ugt(float %a, float %b) nounwind {
379389 ret i32 %2
380390}
381391
392+ ; FIXME: sext.w on RV64 is unnecessary
382393define i32 @fcmp_uge (float %a , float %b ) nounwind {
383394; CHECKIF-LABEL: fcmp_uge:
384395; CHECKIF: # %bb.0:
@@ -413,6 +424,7 @@ define i32 @fcmp_uge(float %a, float %b) nounwind {
413424 ret i32 %2
414425}
415426
427+ ; FIXME: sext.w on RV64 is unnecessary
416428define i32 @fcmp_ult (float %a , float %b ) nounwind {
417429; CHECKIF-LABEL: fcmp_ult:
418430; CHECKIF: # %bb.0:
@@ -445,6 +457,8 @@ define i32 @fcmp_ult(float %a, float %b) nounwind {
445457 ret i32 %2
446458}
447459
460+ ; FIXME: sext.w on RV64 is unnecessary
461+ ; FIXME: sgtz+xori can be slti a0, a0, 1
448462define i32 @fcmp_ule (float %a , float %b ) nounwind {
449463; CHECKIF-LABEL: fcmp_ule:
450464; CHECKIF: # %bb.0:
@@ -479,6 +493,7 @@ define i32 @fcmp_ule(float %a, float %b) nounwind {
479493 ret i32 %2
480494}
481495
496+ ; FIXME: slli+srli on RV64 are unnecessary
482497define i32 @fcmp_une (float %a , float %b ) nounwind {
483498; CHECKIF-LABEL: fcmp_une:
484499; CHECKIF: # %bb.0:
@@ -512,6 +527,7 @@ define i32 @fcmp_une(float %a, float %b) nounwind {
512527 ret i32 %2
513528}
514529
530+ ; FIXME: slli+srli on RV64 are unnecessary
515531define i32 @fcmp_uno (float %a , float %b ) nounwind {
516532; CHECKIF-LABEL: fcmp_uno:
517533; CHECKIF: # %bb.0:
0 commit comments