@@ -68,18 +68,18 @@ define i32 @fcmp_ogt(double %a, double %b) nounwind strictfp {
6868;
6969; RV32IZFINXZDINX-LABEL: fcmp_ogt:
7070; RV32IZFINXZDINX: # %bb.0:
71- ; RV32IZFINXZDINX-NEXT: csrr a5, fflags
71+ ; RV32IZFINXZDINX-NEXT: frflags a5
7272; RV32IZFINXZDINX-NEXT: flt.d a4, a2, a0
73- ; RV32IZFINXZDINX-NEXT: csrw fflags, a5
73+ ; RV32IZFINXZDINX-NEXT: fsflags a5
7474; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
7575; RV32IZFINXZDINX-NEXT: mv a0, a4
7676; RV32IZFINXZDINX-NEXT: ret
7777;
7878; RV64IZFINXZDINX-LABEL: fcmp_ogt:
7979; RV64IZFINXZDINX: # %bb.0:
80- ; RV64IZFINXZDINX-NEXT: csrr a3, fflags
80+ ; RV64IZFINXZDINX-NEXT: frflags a3
8181; RV64IZFINXZDINX-NEXT: flt.d a2, a1, a0
82- ; RV64IZFINXZDINX-NEXT: csrw fflags, a3
82+ ; RV64IZFINXZDINX-NEXT: fsflags a3
8383; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
8484; RV64IZFINXZDINX-NEXT: mv a0, a2
8585; RV64IZFINXZDINX-NEXT: ret
@@ -119,18 +119,18 @@ define i32 @fcmp_oge(double %a, double %b) nounwind strictfp {
119119;
120120; RV32IZFINXZDINX-LABEL: fcmp_oge:
121121; RV32IZFINXZDINX: # %bb.0:
122- ; RV32IZFINXZDINX-NEXT: csrr a5, fflags
122+ ; RV32IZFINXZDINX-NEXT: frflags a5
123123; RV32IZFINXZDINX-NEXT: fle.d a4, a2, a0
124- ; RV32IZFINXZDINX-NEXT: csrw fflags, a5
124+ ; RV32IZFINXZDINX-NEXT: fsflags a5
125125; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
126126; RV32IZFINXZDINX-NEXT: mv a0, a4
127127; RV32IZFINXZDINX-NEXT: ret
128128;
129129; RV64IZFINXZDINX-LABEL: fcmp_oge:
130130; RV64IZFINXZDINX: # %bb.0:
131- ; RV64IZFINXZDINX-NEXT: csrr a3, fflags
131+ ; RV64IZFINXZDINX-NEXT: frflags a3
132132; RV64IZFINXZDINX-NEXT: fle.d a2, a1, a0
133- ; RV64IZFINXZDINX-NEXT: csrw fflags, a3
133+ ; RV64IZFINXZDINX-NEXT: fsflags a3
134134; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
135135; RV64IZFINXZDINX-NEXT: mv a0, a2
136136; RV64IZFINXZDINX-NEXT: ret
@@ -172,18 +172,18 @@ define i32 @fcmp_olt(double %a, double %b) nounwind strictfp {
172172;
173173; RV32IZFINXZDINX-LABEL: fcmp_olt:
174174; RV32IZFINXZDINX: # %bb.0:
175- ; RV32IZFINXZDINX-NEXT: csrr a5, fflags
175+ ; RV32IZFINXZDINX-NEXT: frflags a5
176176; RV32IZFINXZDINX-NEXT: flt.d a4, a0, a2
177- ; RV32IZFINXZDINX-NEXT: csrw fflags, a5
177+ ; RV32IZFINXZDINX-NEXT: fsflags a5
178178; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
179179; RV32IZFINXZDINX-NEXT: mv a0, a4
180180; RV32IZFINXZDINX-NEXT: ret
181181;
182182; RV64IZFINXZDINX-LABEL: fcmp_olt:
183183; RV64IZFINXZDINX: # %bb.0:
184- ; RV64IZFINXZDINX-NEXT: csrr a3, fflags
184+ ; RV64IZFINXZDINX-NEXT: frflags a3
185185; RV64IZFINXZDINX-NEXT: flt.d a2, a0, a1
186- ; RV64IZFINXZDINX-NEXT: csrw fflags, a3
186+ ; RV64IZFINXZDINX-NEXT: fsflags a3
187187; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
188188; RV64IZFINXZDINX-NEXT: mv a0, a2
189189; RV64IZFINXZDINX-NEXT: ret
@@ -223,18 +223,18 @@ define i32 @fcmp_ole(double %a, double %b) nounwind strictfp {
223223;
224224; RV32IZFINXZDINX-LABEL: fcmp_ole:
225225; RV32IZFINXZDINX: # %bb.0:
226- ; RV32IZFINXZDINX-NEXT: csrr a5, fflags
226+ ; RV32IZFINXZDINX-NEXT: frflags a5
227227; RV32IZFINXZDINX-NEXT: fle.d a4, a0, a2
228- ; RV32IZFINXZDINX-NEXT: csrw fflags, a5
228+ ; RV32IZFINXZDINX-NEXT: fsflags a5
229229; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
230230; RV32IZFINXZDINX-NEXT: mv a0, a4
231231; RV32IZFINXZDINX-NEXT: ret
232232;
233233; RV64IZFINXZDINX-LABEL: fcmp_ole:
234234; RV64IZFINXZDINX: # %bb.0:
235- ; RV64IZFINXZDINX-NEXT: csrr a3, fflags
235+ ; RV64IZFINXZDINX-NEXT: frflags a3
236236; RV64IZFINXZDINX-NEXT: fle.d a2, a0, a1
237- ; RV64IZFINXZDINX-NEXT: csrw fflags, a3
237+ ; RV64IZFINXZDINX-NEXT: fsflags a3
238238; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
239239; RV64IZFINXZDINX-NEXT: mv a0, a2
240240; RV64IZFINXZDINX-NEXT: ret
@@ -281,27 +281,27 @@ define i32 @fcmp_one(double %a, double %b) nounwind strictfp {
281281;
282282; RV32IZFINXZDINX-LABEL: fcmp_one:
283283; RV32IZFINXZDINX: # %bb.0:
284- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
284+ ; RV32IZFINXZDINX-NEXT: frflags a4
285285; RV32IZFINXZDINX-NEXT: flt.d a5, a0, a2
286- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
286+ ; RV32IZFINXZDINX-NEXT: fsflags a4
287287; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
288- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
288+ ; RV32IZFINXZDINX-NEXT: frflags a4
289289; RV32IZFINXZDINX-NEXT: flt.d a6, a2, a0
290- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
290+ ; RV32IZFINXZDINX-NEXT: fsflags a4
291291; RV32IZFINXZDINX-NEXT: or a4, a6, a5
292292; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
293293; RV32IZFINXZDINX-NEXT: mv a0, a4
294294; RV32IZFINXZDINX-NEXT: ret
295295;
296296; RV64IZFINXZDINX-LABEL: fcmp_one:
297297; RV64IZFINXZDINX: # %bb.0:
298- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
298+ ; RV64IZFINXZDINX-NEXT: frflags a2
299299; RV64IZFINXZDINX-NEXT: flt.d a3, a0, a1
300- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
300+ ; RV64IZFINXZDINX-NEXT: fsflags a2
301301; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
302- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
302+ ; RV64IZFINXZDINX-NEXT: frflags a2
303303; RV64IZFINXZDINX-NEXT: flt.d a4, a1, a0
304- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
304+ ; RV64IZFINXZDINX-NEXT: fsflags a2
305305; RV64IZFINXZDINX-NEXT: or a2, a4, a3
306306; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
307307; RV64IZFINXZDINX-NEXT: mv a0, a2
@@ -430,13 +430,13 @@ define i32 @fcmp_ueq(double %a, double %b) nounwind strictfp {
430430;
431431; RV32IZFINXZDINX-LABEL: fcmp_ueq:
432432; RV32IZFINXZDINX: # %bb.0:
433- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
433+ ; RV32IZFINXZDINX-NEXT: frflags a4
434434; RV32IZFINXZDINX-NEXT: flt.d a5, a0, a2
435- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
435+ ; RV32IZFINXZDINX-NEXT: fsflags a4
436436; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
437- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
437+ ; RV32IZFINXZDINX-NEXT: frflags a4
438438; RV32IZFINXZDINX-NEXT: flt.d a6, a2, a0
439- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
439+ ; RV32IZFINXZDINX-NEXT: fsflags a4
440440; RV32IZFINXZDINX-NEXT: or a4, a6, a5
441441; RV32IZFINXZDINX-NEXT: xori a4, a4, 1
442442; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
@@ -445,13 +445,13 @@ define i32 @fcmp_ueq(double %a, double %b) nounwind strictfp {
445445;
446446; RV64IZFINXZDINX-LABEL: fcmp_ueq:
447447; RV64IZFINXZDINX: # %bb.0:
448- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
448+ ; RV64IZFINXZDINX-NEXT: frflags a2
449449; RV64IZFINXZDINX-NEXT: flt.d a3, a0, a1
450- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
450+ ; RV64IZFINXZDINX-NEXT: fsflags a2
451451; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
452- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
452+ ; RV64IZFINXZDINX-NEXT: frflags a2
453453; RV64IZFINXZDINX-NEXT: flt.d a4, a1, a0
454- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
454+ ; RV64IZFINXZDINX-NEXT: fsflags a2
455455; RV64IZFINXZDINX-NEXT: or a3, a4, a3
456456; RV64IZFINXZDINX-NEXT: xori a2, a3, 1
457457; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
@@ -528,19 +528,19 @@ define i32 @fcmp_ugt(double %a, double %b) nounwind strictfp {
528528;
529529; RV32IZFINXZDINX-LABEL: fcmp_ugt:
530530; RV32IZFINXZDINX: # %bb.0:
531- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
531+ ; RV32IZFINXZDINX-NEXT: frflags a4
532532; RV32IZFINXZDINX-NEXT: fle.d a5, a0, a2
533- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
533+ ; RV32IZFINXZDINX-NEXT: fsflags a4
534534; RV32IZFINXZDINX-NEXT: xori a4, a5, 1
535535; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
536536; RV32IZFINXZDINX-NEXT: mv a0, a4
537537; RV32IZFINXZDINX-NEXT: ret
538538;
539539; RV64IZFINXZDINX-LABEL: fcmp_ugt:
540540; RV64IZFINXZDINX: # %bb.0:
541- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
541+ ; RV64IZFINXZDINX-NEXT: frflags a2
542542; RV64IZFINXZDINX-NEXT: fle.d a3, a0, a1
543- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
543+ ; RV64IZFINXZDINX-NEXT: fsflags a2
544544; RV64IZFINXZDINX-NEXT: xori a2, a3, 1
545545; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
546546; RV64IZFINXZDINX-NEXT: mv a0, a2
@@ -582,19 +582,19 @@ define i32 @fcmp_uge(double %a, double %b) nounwind strictfp {
582582;
583583; RV32IZFINXZDINX-LABEL: fcmp_uge:
584584; RV32IZFINXZDINX: # %bb.0:
585- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
585+ ; RV32IZFINXZDINX-NEXT: frflags a4
586586; RV32IZFINXZDINX-NEXT: flt.d a5, a0, a2
587- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
587+ ; RV32IZFINXZDINX-NEXT: fsflags a4
588588; RV32IZFINXZDINX-NEXT: xori a4, a5, 1
589589; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
590590; RV32IZFINXZDINX-NEXT: mv a0, a4
591591; RV32IZFINXZDINX-NEXT: ret
592592;
593593; RV64IZFINXZDINX-LABEL: fcmp_uge:
594594; RV64IZFINXZDINX: # %bb.0:
595- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
595+ ; RV64IZFINXZDINX-NEXT: frflags a2
596596; RV64IZFINXZDINX-NEXT: flt.d a3, a0, a1
597- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
597+ ; RV64IZFINXZDINX-NEXT: fsflags a2
598598; RV64IZFINXZDINX-NEXT: xori a2, a3, 1
599599; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
600600; RV64IZFINXZDINX-NEXT: mv a0, a2
@@ -638,19 +638,19 @@ define i32 @fcmp_ult(double %a, double %b) nounwind strictfp {
638638;
639639; RV32IZFINXZDINX-LABEL: fcmp_ult:
640640; RV32IZFINXZDINX: # %bb.0:
641- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
641+ ; RV32IZFINXZDINX-NEXT: frflags a4
642642; RV32IZFINXZDINX-NEXT: fle.d a5, a2, a0
643- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
643+ ; RV32IZFINXZDINX-NEXT: fsflags a4
644644; RV32IZFINXZDINX-NEXT: xori a4, a5, 1
645645; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
646646; RV32IZFINXZDINX-NEXT: mv a0, a4
647647; RV32IZFINXZDINX-NEXT: ret
648648;
649649; RV64IZFINXZDINX-LABEL: fcmp_ult:
650650; RV64IZFINXZDINX: # %bb.0:
651- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
651+ ; RV64IZFINXZDINX-NEXT: frflags a2
652652; RV64IZFINXZDINX-NEXT: fle.d a3, a1, a0
653- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
653+ ; RV64IZFINXZDINX-NEXT: fsflags a2
654654; RV64IZFINXZDINX-NEXT: xori a2, a3, 1
655655; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
656656; RV64IZFINXZDINX-NEXT: mv a0, a2
@@ -692,19 +692,19 @@ define i32 @fcmp_ule(double %a, double %b) nounwind strictfp {
692692;
693693; RV32IZFINXZDINX-LABEL: fcmp_ule:
694694; RV32IZFINXZDINX: # %bb.0:
695- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
695+ ; RV32IZFINXZDINX-NEXT: frflags a4
696696; RV32IZFINXZDINX-NEXT: flt.d a5, a2, a0
697- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
697+ ; RV32IZFINXZDINX-NEXT: fsflags a4
698698; RV32IZFINXZDINX-NEXT: xori a4, a5, 1
699699; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
700700; RV32IZFINXZDINX-NEXT: mv a0, a4
701701; RV32IZFINXZDINX-NEXT: ret
702702;
703703; RV64IZFINXZDINX-LABEL: fcmp_ule:
704704; RV64IZFINXZDINX: # %bb.0:
705- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
705+ ; RV64IZFINXZDINX-NEXT: frflags a2
706706; RV64IZFINXZDINX-NEXT: flt.d a3, a1, a0
707- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
707+ ; RV64IZFINXZDINX-NEXT: fsflags a2
708708; RV64IZFINXZDINX-NEXT: xori a2, a3, 1
709709; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
710710; RV64IZFINXZDINX-NEXT: mv a0, a2
0 commit comments