@@ -955,7 +955,7 @@ define i64 @muli64_p72(i64 %a) nounwind {
955
955
; RV32I: # %bb.0:
956
956
; RV32I-NEXT: addi sp, sp, -16
957
957
; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
958
- ; RV32I-NEXT: li a2, 60
958
+ ; RV32I-NEXT: li a2, 72
959
959
; RV32I-NEXT: li a3, 0
960
960
; RV32I-NEXT: call __muldi3
961
961
; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
@@ -964,31 +964,31 @@ define i64 @muli64_p72(i64 %a) nounwind {
964
964
;
965
965
; RV32IM-LABEL: muli64_p72:
966
966
; RV32IM: # %bb.0:
967
- ; RV32IM-NEXT: li a2, 60
968
- ; RV32IM-NEXT: slli a3, a1, 2
967
+ ; RV32IM-NEXT: li a2, 72
968
+ ; RV32IM-NEXT: slli a3, a1, 3
969
969
; RV32IM-NEXT: slli a1, a1, 6
970
- ; RV32IM-NEXT: sub a1, a1, a3
971
- ; RV32IM-NEXT: slli a3, a0, 2
970
+ ; RV32IM-NEXT: add a1, a1, a3
971
+ ; RV32IM-NEXT: slli a3, a0, 3
972
972
; RV32IM-NEXT: mulhu a2, a0, a2
973
973
; RV32IM-NEXT: slli a0, a0, 6
974
974
; RV32IM-NEXT: add a1, a2, a1
975
- ; RV32IM-NEXT: sub a0, a0, a3
975
+ ; RV32IM-NEXT: add a0, a0, a3
976
976
; RV32IM-NEXT: ret
977
977
;
978
978
; RV64I-LABEL: muli64_p72:
979
979
; RV64I: # %bb.0:
980
- ; RV64I-NEXT: slli a1, a0, 2
980
+ ; RV64I-NEXT: slli a1, a0, 3
981
981
; RV64I-NEXT: slli a0, a0, 6
982
- ; RV64I-NEXT: sub a0, a0, a1
982
+ ; RV64I-NEXT: add a0, a0, a1
983
983
; RV64I-NEXT: ret
984
984
;
985
985
; RV64IM-LABEL: muli64_p72:
986
986
; RV64IM: # %bb.0:
987
- ; RV64IM-NEXT: slli a1, a0, 2
987
+ ; RV64IM-NEXT: slli a1, a0, 3
988
988
; RV64IM-NEXT: slli a0, a0, 6
989
- ; RV64IM-NEXT: sub a0, a0, a1
989
+ ; RV64IM-NEXT: add a0, a0, a1
990
990
; RV64IM-NEXT: ret
991
- %1 = mul i64 %a , 60
991
+ %1 = mul i64 %a , 72
992
992
ret i64 %1
993
993
}
994
994
@@ -997,7 +997,7 @@ define i64 @muli64_p68(i64 %a) nounwind {
997
997
; RV32I: # %bb.0:
998
998
; RV32I-NEXT: addi sp, sp, -16
999
999
; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill
1000
- ; RV32I-NEXT: li a2, 72
1000
+ ; RV32I-NEXT: li a2, 68
1001
1001
; RV32I-NEXT: li a3, 0
1002
1002
; RV32I-NEXT: call __muldi3
1003
1003
; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload
@@ -1006,11 +1006,11 @@ define i64 @muli64_p68(i64 %a) nounwind {
1006
1006
;
1007
1007
; RV32IM-LABEL: muli64_p68:
1008
1008
; RV32IM: # %bb.0:
1009
- ; RV32IM-NEXT: li a2, 72
1010
- ; RV32IM-NEXT: slli a3, a1, 3
1009
+ ; RV32IM-NEXT: li a2, 68
1010
+ ; RV32IM-NEXT: slli a3, a1, 2
1011
1011
; RV32IM-NEXT: slli a1, a1, 6
1012
1012
; RV32IM-NEXT: add a1, a1, a3
1013
- ; RV32IM-NEXT: slli a3, a0, 3
1013
+ ; RV32IM-NEXT: slli a3, a0, 2
1014
1014
; RV32IM-NEXT: mulhu a2, a0, a2
1015
1015
; RV32IM-NEXT: slli a0, a0, 6
1016
1016
; RV32IM-NEXT: add a1, a2, a1
@@ -1019,18 +1019,18 @@ define i64 @muli64_p68(i64 %a) nounwind {
1019
1019
;
1020
1020
; RV64I-LABEL: muli64_p68:
1021
1021
; RV64I: # %bb.0:
1022
- ; RV64I-NEXT: slli a1, a0, 3
1022
+ ; RV64I-NEXT: slli a1, a0, 2
1023
1023
; RV64I-NEXT: slli a0, a0, 6
1024
1024
; RV64I-NEXT: add a0, a0, a1
1025
1025
; RV64I-NEXT: ret
1026
1026
;
1027
1027
; RV64IM-LABEL: muli64_p68:
1028
1028
; RV64IM: # %bb.0:
1029
- ; RV64IM-NEXT: slli a1, a0, 3
1029
+ ; RV64IM-NEXT: slli a1, a0, 2
1030
1030
; RV64IM-NEXT: slli a0, a0, 6
1031
1031
; RV64IM-NEXT: add a0, a0, a1
1032
1032
; RV64IM-NEXT: ret
1033
- %1 = mul i64 %a , 72
1033
+ %1 = mul i64 %a , 68
1034
1034
ret i64 %1
1035
1035
}
1036
1036
0 commit comments