@@ -68,18 +68,18 @@ define i32 @fcmp_ogt(double %a, double %b) nounwind strictfp {
68
68
;
69
69
; RV32IZFINXZDINX-LABEL: fcmp_ogt:
70
70
; RV32IZFINXZDINX: # %bb.0:
71
- ; RV32IZFINXZDINX-NEXT: csrr a5, fflags
71
+ ; RV32IZFINXZDINX-NEXT: frflags a5
72
72
; RV32IZFINXZDINX-NEXT: flt.d a4, a2, a0
73
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a5
73
+ ; RV32IZFINXZDINX-NEXT: fsflags a5
74
74
; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
75
75
; RV32IZFINXZDINX-NEXT: mv a0, a4
76
76
; RV32IZFINXZDINX-NEXT: ret
77
77
;
78
78
; RV64IZFINXZDINX-LABEL: fcmp_ogt:
79
79
; RV64IZFINXZDINX: # %bb.0:
80
- ; RV64IZFINXZDINX-NEXT: csrr a3, fflags
80
+ ; RV64IZFINXZDINX-NEXT: frflags a3
81
81
; RV64IZFINXZDINX-NEXT: flt.d a2, a1, a0
82
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a3
82
+ ; RV64IZFINXZDINX-NEXT: fsflags a3
83
83
; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
84
84
; RV64IZFINXZDINX-NEXT: mv a0, a2
85
85
; RV64IZFINXZDINX-NEXT: ret
@@ -119,18 +119,18 @@ define i32 @fcmp_oge(double %a, double %b) nounwind strictfp {
119
119
;
120
120
; RV32IZFINXZDINX-LABEL: fcmp_oge:
121
121
; RV32IZFINXZDINX: # %bb.0:
122
- ; RV32IZFINXZDINX-NEXT: csrr a5, fflags
122
+ ; RV32IZFINXZDINX-NEXT: frflags a5
123
123
; RV32IZFINXZDINX-NEXT: fle.d a4, a2, a0
124
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a5
124
+ ; RV32IZFINXZDINX-NEXT: fsflags a5
125
125
; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
126
126
; RV32IZFINXZDINX-NEXT: mv a0, a4
127
127
; RV32IZFINXZDINX-NEXT: ret
128
128
;
129
129
; RV64IZFINXZDINX-LABEL: fcmp_oge:
130
130
; RV64IZFINXZDINX: # %bb.0:
131
- ; RV64IZFINXZDINX-NEXT: csrr a3, fflags
131
+ ; RV64IZFINXZDINX-NEXT: frflags a3
132
132
; RV64IZFINXZDINX-NEXT: fle.d a2, a1, a0
133
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a3
133
+ ; RV64IZFINXZDINX-NEXT: fsflags a3
134
134
; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
135
135
; RV64IZFINXZDINX-NEXT: mv a0, a2
136
136
; RV64IZFINXZDINX-NEXT: ret
@@ -172,18 +172,18 @@ define i32 @fcmp_olt(double %a, double %b) nounwind strictfp {
172
172
;
173
173
; RV32IZFINXZDINX-LABEL: fcmp_olt:
174
174
; RV32IZFINXZDINX: # %bb.0:
175
- ; RV32IZFINXZDINX-NEXT: csrr a5, fflags
175
+ ; RV32IZFINXZDINX-NEXT: frflags a5
176
176
; RV32IZFINXZDINX-NEXT: flt.d a4, a0, a2
177
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a5
177
+ ; RV32IZFINXZDINX-NEXT: fsflags a5
178
178
; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
179
179
; RV32IZFINXZDINX-NEXT: mv a0, a4
180
180
; RV32IZFINXZDINX-NEXT: ret
181
181
;
182
182
; RV64IZFINXZDINX-LABEL: fcmp_olt:
183
183
; RV64IZFINXZDINX: # %bb.0:
184
- ; RV64IZFINXZDINX-NEXT: csrr a3, fflags
184
+ ; RV64IZFINXZDINX-NEXT: frflags a3
185
185
; RV64IZFINXZDINX-NEXT: flt.d a2, a0, a1
186
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a3
186
+ ; RV64IZFINXZDINX-NEXT: fsflags a3
187
187
; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
188
188
; RV64IZFINXZDINX-NEXT: mv a0, a2
189
189
; RV64IZFINXZDINX-NEXT: ret
@@ -223,18 +223,18 @@ define i32 @fcmp_ole(double %a, double %b) nounwind strictfp {
223
223
;
224
224
; RV32IZFINXZDINX-LABEL: fcmp_ole:
225
225
; RV32IZFINXZDINX: # %bb.0:
226
- ; RV32IZFINXZDINX-NEXT: csrr a5, fflags
226
+ ; RV32IZFINXZDINX-NEXT: frflags a5
227
227
; RV32IZFINXZDINX-NEXT: fle.d a4, a0, a2
228
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a5
228
+ ; RV32IZFINXZDINX-NEXT: fsflags a5
229
229
; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
230
230
; RV32IZFINXZDINX-NEXT: mv a0, a4
231
231
; RV32IZFINXZDINX-NEXT: ret
232
232
;
233
233
; RV64IZFINXZDINX-LABEL: fcmp_ole:
234
234
; RV64IZFINXZDINX: # %bb.0:
235
- ; RV64IZFINXZDINX-NEXT: csrr a3, fflags
235
+ ; RV64IZFINXZDINX-NEXT: frflags a3
236
236
; RV64IZFINXZDINX-NEXT: fle.d a2, a0, a1
237
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a3
237
+ ; RV64IZFINXZDINX-NEXT: fsflags a3
238
238
; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
239
239
; RV64IZFINXZDINX-NEXT: mv a0, a2
240
240
; RV64IZFINXZDINX-NEXT: ret
@@ -281,27 +281,27 @@ define i32 @fcmp_one(double %a, double %b) nounwind strictfp {
281
281
;
282
282
; RV32IZFINXZDINX-LABEL: fcmp_one:
283
283
; RV32IZFINXZDINX: # %bb.0:
284
- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
284
+ ; RV32IZFINXZDINX-NEXT: frflags a4
285
285
; RV32IZFINXZDINX-NEXT: flt.d a5, a0, a2
286
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
286
+ ; RV32IZFINXZDINX-NEXT: fsflags a4
287
287
; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
288
- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
288
+ ; RV32IZFINXZDINX-NEXT: frflags a4
289
289
; RV32IZFINXZDINX-NEXT: flt.d a6, a2, a0
290
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
290
+ ; RV32IZFINXZDINX-NEXT: fsflags a4
291
291
; RV32IZFINXZDINX-NEXT: or a4, a6, a5
292
292
; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
293
293
; RV32IZFINXZDINX-NEXT: mv a0, a4
294
294
; RV32IZFINXZDINX-NEXT: ret
295
295
;
296
296
; RV64IZFINXZDINX-LABEL: fcmp_one:
297
297
; RV64IZFINXZDINX: # %bb.0:
298
- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
298
+ ; RV64IZFINXZDINX-NEXT: frflags a2
299
299
; RV64IZFINXZDINX-NEXT: flt.d a3, a0, a1
300
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
300
+ ; RV64IZFINXZDINX-NEXT: fsflags a2
301
301
; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
302
- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
302
+ ; RV64IZFINXZDINX-NEXT: frflags a2
303
303
; RV64IZFINXZDINX-NEXT: flt.d a4, a1, a0
304
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
304
+ ; RV64IZFINXZDINX-NEXT: fsflags a2
305
305
; RV64IZFINXZDINX-NEXT: or a2, a4, a3
306
306
; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
307
307
; RV64IZFINXZDINX-NEXT: mv a0, a2
@@ -430,13 +430,13 @@ define i32 @fcmp_ueq(double %a, double %b) nounwind strictfp {
430
430
;
431
431
; RV32IZFINXZDINX-LABEL: fcmp_ueq:
432
432
; RV32IZFINXZDINX: # %bb.0:
433
- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
433
+ ; RV32IZFINXZDINX-NEXT: frflags a4
434
434
; RV32IZFINXZDINX-NEXT: flt.d a5, a0, a2
435
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
435
+ ; RV32IZFINXZDINX-NEXT: fsflags a4
436
436
; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
437
- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
437
+ ; RV32IZFINXZDINX-NEXT: frflags a4
438
438
; RV32IZFINXZDINX-NEXT: flt.d a6, a2, a0
439
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
439
+ ; RV32IZFINXZDINX-NEXT: fsflags a4
440
440
; RV32IZFINXZDINX-NEXT: or a4, a6, a5
441
441
; RV32IZFINXZDINX-NEXT: xori a4, a4, 1
442
442
; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
@@ -445,13 +445,13 @@ define i32 @fcmp_ueq(double %a, double %b) nounwind strictfp {
445
445
;
446
446
; RV64IZFINXZDINX-LABEL: fcmp_ueq:
447
447
; RV64IZFINXZDINX: # %bb.0:
448
- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
448
+ ; RV64IZFINXZDINX-NEXT: frflags a2
449
449
; RV64IZFINXZDINX-NEXT: flt.d a3, a0, a1
450
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
450
+ ; RV64IZFINXZDINX-NEXT: fsflags a2
451
451
; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
452
- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
452
+ ; RV64IZFINXZDINX-NEXT: frflags a2
453
453
; RV64IZFINXZDINX-NEXT: flt.d a4, a1, a0
454
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
454
+ ; RV64IZFINXZDINX-NEXT: fsflags a2
455
455
; RV64IZFINXZDINX-NEXT: or a3, a4, a3
456
456
; RV64IZFINXZDINX-NEXT: xori a2, a3, 1
457
457
; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
@@ -528,19 +528,19 @@ define i32 @fcmp_ugt(double %a, double %b) nounwind strictfp {
528
528
;
529
529
; RV32IZFINXZDINX-LABEL: fcmp_ugt:
530
530
; RV32IZFINXZDINX: # %bb.0:
531
- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
531
+ ; RV32IZFINXZDINX-NEXT: frflags a4
532
532
; RV32IZFINXZDINX-NEXT: fle.d a5, a0, a2
533
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
533
+ ; RV32IZFINXZDINX-NEXT: fsflags a4
534
534
; RV32IZFINXZDINX-NEXT: xori a4, a5, 1
535
535
; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
536
536
; RV32IZFINXZDINX-NEXT: mv a0, a4
537
537
; RV32IZFINXZDINX-NEXT: ret
538
538
;
539
539
; RV64IZFINXZDINX-LABEL: fcmp_ugt:
540
540
; RV64IZFINXZDINX: # %bb.0:
541
- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
541
+ ; RV64IZFINXZDINX-NEXT: frflags a2
542
542
; RV64IZFINXZDINX-NEXT: fle.d a3, a0, a1
543
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
543
+ ; RV64IZFINXZDINX-NEXT: fsflags a2
544
544
; RV64IZFINXZDINX-NEXT: xori a2, a3, 1
545
545
; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
546
546
; RV64IZFINXZDINX-NEXT: mv a0, a2
@@ -582,19 +582,19 @@ define i32 @fcmp_uge(double %a, double %b) nounwind strictfp {
582
582
;
583
583
; RV32IZFINXZDINX-LABEL: fcmp_uge:
584
584
; RV32IZFINXZDINX: # %bb.0:
585
- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
585
+ ; RV32IZFINXZDINX-NEXT: frflags a4
586
586
; RV32IZFINXZDINX-NEXT: flt.d a5, a0, a2
587
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
587
+ ; RV32IZFINXZDINX-NEXT: fsflags a4
588
588
; RV32IZFINXZDINX-NEXT: xori a4, a5, 1
589
589
; RV32IZFINXZDINX-NEXT: feq.d zero, a0, a2
590
590
; RV32IZFINXZDINX-NEXT: mv a0, a4
591
591
; RV32IZFINXZDINX-NEXT: ret
592
592
;
593
593
; RV64IZFINXZDINX-LABEL: fcmp_uge:
594
594
; RV64IZFINXZDINX: # %bb.0:
595
- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
595
+ ; RV64IZFINXZDINX-NEXT: frflags a2
596
596
; RV64IZFINXZDINX-NEXT: flt.d a3, a0, a1
597
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
597
+ ; RV64IZFINXZDINX-NEXT: fsflags a2
598
598
; RV64IZFINXZDINX-NEXT: xori a2, a3, 1
599
599
; RV64IZFINXZDINX-NEXT: feq.d zero, a0, a1
600
600
; RV64IZFINXZDINX-NEXT: mv a0, a2
@@ -638,19 +638,19 @@ define i32 @fcmp_ult(double %a, double %b) nounwind strictfp {
638
638
;
639
639
; RV32IZFINXZDINX-LABEL: fcmp_ult:
640
640
; RV32IZFINXZDINX: # %bb.0:
641
- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
641
+ ; RV32IZFINXZDINX-NEXT: frflags a4
642
642
; RV32IZFINXZDINX-NEXT: fle.d a5, a2, a0
643
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
643
+ ; RV32IZFINXZDINX-NEXT: fsflags a4
644
644
; RV32IZFINXZDINX-NEXT: xori a4, a5, 1
645
645
; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
646
646
; RV32IZFINXZDINX-NEXT: mv a0, a4
647
647
; RV32IZFINXZDINX-NEXT: ret
648
648
;
649
649
; RV64IZFINXZDINX-LABEL: fcmp_ult:
650
650
; RV64IZFINXZDINX: # %bb.0:
651
- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
651
+ ; RV64IZFINXZDINX-NEXT: frflags a2
652
652
; RV64IZFINXZDINX-NEXT: fle.d a3, a1, a0
653
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
653
+ ; RV64IZFINXZDINX-NEXT: fsflags a2
654
654
; RV64IZFINXZDINX-NEXT: xori a2, a3, 1
655
655
; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
656
656
; RV64IZFINXZDINX-NEXT: mv a0, a2
@@ -692,19 +692,19 @@ define i32 @fcmp_ule(double %a, double %b) nounwind strictfp {
692
692
;
693
693
; RV32IZFINXZDINX-LABEL: fcmp_ule:
694
694
; RV32IZFINXZDINX: # %bb.0:
695
- ; RV32IZFINXZDINX-NEXT: csrr a4, fflags
695
+ ; RV32IZFINXZDINX-NEXT: frflags a4
696
696
; RV32IZFINXZDINX-NEXT: flt.d a5, a2, a0
697
- ; RV32IZFINXZDINX-NEXT: csrw fflags, a4
697
+ ; RV32IZFINXZDINX-NEXT: fsflags a4
698
698
; RV32IZFINXZDINX-NEXT: xori a4, a5, 1
699
699
; RV32IZFINXZDINX-NEXT: feq.d zero, a2, a0
700
700
; RV32IZFINXZDINX-NEXT: mv a0, a4
701
701
; RV32IZFINXZDINX-NEXT: ret
702
702
;
703
703
; RV64IZFINXZDINX-LABEL: fcmp_ule:
704
704
; RV64IZFINXZDINX: # %bb.0:
705
- ; RV64IZFINXZDINX-NEXT: csrr a2, fflags
705
+ ; RV64IZFINXZDINX-NEXT: frflags a2
706
706
; RV64IZFINXZDINX-NEXT: flt.d a3, a1, a0
707
- ; RV64IZFINXZDINX-NEXT: csrw fflags, a2
707
+ ; RV64IZFINXZDINX-NEXT: fsflags a2
708
708
; RV64IZFINXZDINX-NEXT: xori a2, a3, 1
709
709
; RV64IZFINXZDINX-NEXT: feq.d zero, a1, a0
710
710
; RV64IZFINXZDINX-NEXT: mv a0, a2
0 commit comments