@@ -103,8 +103,8 @@ define float @brcc_olt(float %a, float %b) nounwind {
103
103
; CHECK: # %bb.0:
104
104
; CHECK-NEXT: wfr f8, a3
105
105
; CHECK-NEXT: wfr f9, a2
106
- ; CHECK-NEXT: ule .s b0, f8, f9
107
- ; CHECK-NEXT: bt b0, .LBB3_2
106
+ ; CHECK-NEXT: olt .s b0, f9, f8
107
+ ; CHECK-NEXT: bf b0, .LBB3_2
108
108
; CHECK-NEXT: # %bb.1: # %t1
109
109
; CHECK-NEXT: l32r a8, .LCPI3_1
110
110
; CHECK-NEXT: wfr f8, a8
@@ -135,8 +135,8 @@ define float @brcc_ole(float %a, float %b) nounwind {
135
135
; CHECK: # %bb.0:
136
136
; CHECK-NEXT: wfr f8, a3
137
137
; CHECK-NEXT: wfr f9, a2
138
- ; CHECK-NEXT: ult .s b0, f8, f9
139
- ; CHECK-NEXT: bt b0, .LBB4_2
138
+ ; CHECK-NEXT: ole .s b0, f9, f8
139
+ ; CHECK-NEXT: bf b0, .LBB4_2
140
140
; CHECK-NEXT: # %bb.1: # %t1
141
141
; CHECK-NEXT: l32r a8, .LCPI4_1
142
142
; CHECK-NEXT: wfr f8, a8
@@ -232,7 +232,7 @@ define float @brcc_ueq(float %a, float %b) nounwind {
232
232
; CHECK-NEXT: wfr f8, a3
233
233
; CHECK-NEXT: wfr f9, a2
234
234
; CHECK-NEXT: ueq.s b0, f9, f8
235
- ; CHECK-NEXT: bt b0, .LBB7_2
235
+ ; CHECK-NEXT: bf b0, .LBB7_2
236
236
; CHECK-NEXT: # %bb.1: # %t1
237
237
; CHECK-NEXT: l32r a8, .LCPI7_1
238
238
; CHECK-NEXT: wfr f8, a8
@@ -327,8 +327,8 @@ define float @brcc_ult(float %a, float %b) nounwind {
327
327
; CHECK: # %bb.0:
328
328
; CHECK-NEXT: wfr f8, a3
329
329
; CHECK-NEXT: wfr f9, a2
330
- ; CHECK-NEXT: ole .s b0, f8, f9
331
- ; CHECK-NEXT: bt b0, .LBB10_2
330
+ ; CHECK-NEXT: ult .s b0, f9, f8
331
+ ; CHECK-NEXT: bf b0, .LBB10_2
332
332
; CHECK-NEXT: # %bb.1: # %t1
333
333
; CHECK-NEXT: l32r a8, .LCPI10_1
334
334
; CHECK-NEXT: wfr f8, a8
@@ -359,8 +359,8 @@ define float @brcc_ule(float %a, float %b) nounwind {
359
359
; CHECK: # %bb.0:
360
360
; CHECK-NEXT: wfr f8, a3
361
361
; CHECK-NEXT: wfr f9, a2
362
- ; CHECK-NEXT: olt .s b0, f8, f9
363
- ; CHECK-NEXT: bt b0, .LBB11_2
362
+ ; CHECK-NEXT: ule .s b0, f9, f8
363
+ ; CHECK-NEXT: bf b0, .LBB11_2
364
364
; CHECK-NEXT: # %bb.1: # %t1
365
365
; CHECK-NEXT: l32r a8, .LCPI11_1
366
366
; CHECK-NEXT: wfr f8, a8
@@ -451,6 +451,21 @@ exit:
451
451
}
452
452
453
453
define float @copysign_f32 (float %a , float %b ) {
454
+ ; CHECK-LABEL: copysign_f32:
455
+ ; CHECK: .cfi_startproc
456
+ ; CHECK-NEXT: # %bb.0: # %entry
457
+ ; CHECK-NEXT: l32r a8, .LCPI14_0
458
+ ; CHECK-NEXT: and a8, a3, a8
459
+ ; CHECK-NEXT: l32r a9, .LCPI14_1
460
+ ; CHECK-NEXT: and a9, a2, a9
461
+ ; CHECK-NEXT: wfr f8, a9
462
+ ; CHECK-NEXT: movi a9, 0
463
+ ; CHECK-NEXT: beq a8, a9, .LBB14_2
464
+ ; CHECK-NEXT: # %bb.1:
465
+ ; CHECK-NEXT: neg.s f8, f8
466
+ ; CHECK-NEXT: .LBB14_2: # %entry
467
+ ; CHECK-NEXT: rfr a2, f8
468
+ ; CHECK-NEXT: ret
454
469
entry:
455
470
%c = call float @llvm.copysign.f32 (float %a , float %b )
456
471
ret float %c
0 commit comments