@@ -169,11 +169,10 @@ define double @fsgnj_d(double %a, double %b) nounwind {
169
169
;
170
170
; RV64I-LABEL: fsgnj_d:
171
171
; RV64I: # %bb.0:
172
- ; RV64I-NEXT: li a2, -1
173
172
; RV64I-NEXT: slli a0, a0, 1
174
- ; RV64I-NEXT: slli a2, a2 , 63
173
+ ; RV64I-NEXT: srli a1, a1 , 63
175
174
; RV64I-NEXT: srli a0, a0, 1
176
- ; RV64I-NEXT: and a1, a1, a2
175
+ ; RV64I-NEXT: slli a1, a1, 63
177
176
; RV64I-NEXT: or a0, a0, a1
178
177
; RV64I-NEXT: ret
179
178
%1 = call double @llvm.copysign.f64 (double %a , double %b )
@@ -1354,12 +1353,11 @@ define double @fsgnjx_f64(double %x, double %y) nounwind {
1354
1353
; RV64I: # %bb.0:
1355
1354
; RV64I-NEXT: addi sp, sp, -16
1356
1355
; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
1357
- ; RV64I-NEXT: li a2, -1
1358
- ; RV64I-NEXT: li a3, 1023
1359
- ; RV64I-NEXT: slli a2, a2, 63
1360
- ; RV64I-NEXT: slli a3, a3, 52
1361
- ; RV64I-NEXT: and a0, a0, a2
1362
- ; RV64I-NEXT: or a0, a0, a3
1356
+ ; RV64I-NEXT: li a2, 1023
1357
+ ; RV64I-NEXT: srli a0, a0, 63
1358
+ ; RV64I-NEXT: slli a2, a2, 52
1359
+ ; RV64I-NEXT: slli a0, a0, 63
1360
+ ; RV64I-NEXT: or a0, a0, a2
1363
1361
; RV64I-NEXT: call __muldf3
1364
1362
; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
1365
1363
; RV64I-NEXT: addi sp, sp, 16
0 commit comments