@@ -1015,24 +1015,16 @@ define i32 @varargs(ptr %fmt, ...) nounwind {
1015
1015
; RV64IZCMP-LABEL: varargs:
1016
1016
; RV64IZCMP: # %bb.0:
1017
1017
; RV64IZCMP-NEXT: addi sp, sp, -80
1018
+ ; RV64IZCMP-NEXT: sd a1, 24(sp)
1018
1019
; RV64IZCMP-NEXT: sd a7, 72(sp)
1019
1020
; RV64IZCMP-NEXT: sd a6, 64(sp)
1020
1021
; RV64IZCMP-NEXT: sd a5, 56(sp)
1021
1022
; RV64IZCMP-NEXT: sd a4, 48(sp)
1022
1023
; RV64IZCMP-NEXT: sd a3, 40(sp)
1023
1024
; RV64IZCMP-NEXT: sd a2, 32(sp)
1024
- ; RV64IZCMP-NEXT: sd a1, 24(sp)
1025
- ; RV64IZCMP-NEXT: addi a0, sp, 24
1025
+ ; RV64IZCMP-NEXT: addi a0, sp, 28
1026
1026
; RV64IZCMP-NEXT: sd a0, 8(sp)
1027
- ; RV64IZCMP-NEXT: lwu a0, 12(sp)
1028
- ; RV64IZCMP-NEXT: lwu a1, 8(sp)
1029
- ; RV64IZCMP-NEXT: slli a0, a0, 32
1030
- ; RV64IZCMP-NEXT: or a0, a0, a1
1031
- ; RV64IZCMP-NEXT: addi a1, a0, 4
1032
- ; RV64IZCMP-NEXT: sw a1, 8(sp)
1033
- ; RV64IZCMP-NEXT: srli a1, a1, 32
1034
- ; RV64IZCMP-NEXT: sw a1, 12(sp)
1035
- ; RV64IZCMP-NEXT: lw a0, 0(a0)
1027
+ ; RV64IZCMP-NEXT: lw a0, 24(sp)
1036
1028
; RV64IZCMP-NEXT: addi sp, sp, 80
1037
1029
; RV64IZCMP-NEXT: ret
1038
1030
;
@@ -1055,24 +1047,16 @@ define i32 @varargs(ptr %fmt, ...) nounwind {
1055
1047
; RV64IZCMP-SR-LABEL: varargs:
1056
1048
; RV64IZCMP-SR: # %bb.0:
1057
1049
; RV64IZCMP-SR-NEXT: addi sp, sp, -80
1050
+ ; RV64IZCMP-SR-NEXT: sd a1, 24(sp)
1058
1051
; RV64IZCMP-SR-NEXT: sd a7, 72(sp)
1059
1052
; RV64IZCMP-SR-NEXT: sd a6, 64(sp)
1060
1053
; RV64IZCMP-SR-NEXT: sd a5, 56(sp)
1061
1054
; RV64IZCMP-SR-NEXT: sd a4, 48(sp)
1062
1055
; RV64IZCMP-SR-NEXT: sd a3, 40(sp)
1063
1056
; RV64IZCMP-SR-NEXT: sd a2, 32(sp)
1064
- ; RV64IZCMP-SR-NEXT: sd a1, 24(sp)
1065
- ; RV64IZCMP-SR-NEXT: addi a0, sp, 24
1057
+ ; RV64IZCMP-SR-NEXT: addi a0, sp, 28
1066
1058
; RV64IZCMP-SR-NEXT: sd a0, 8(sp)
1067
- ; RV64IZCMP-SR-NEXT: lwu a0, 12(sp)
1068
- ; RV64IZCMP-SR-NEXT: lwu a1, 8(sp)
1069
- ; RV64IZCMP-SR-NEXT: slli a0, a0, 32
1070
- ; RV64IZCMP-SR-NEXT: or a0, a0, a1
1071
- ; RV64IZCMP-SR-NEXT: addi a1, a0, 4
1072
- ; RV64IZCMP-SR-NEXT: sw a1, 8(sp)
1073
- ; RV64IZCMP-SR-NEXT: srli a1, a1, 32
1074
- ; RV64IZCMP-SR-NEXT: sw a1, 12(sp)
1075
- ; RV64IZCMP-SR-NEXT: lw a0, 0(a0)
1059
+ ; RV64IZCMP-SR-NEXT: lw a0, 24(sp)
1076
1060
; RV64IZCMP-SR-NEXT: addi sp, sp, 80
1077
1061
; RV64IZCMP-SR-NEXT: ret
1078
1062
;
@@ -1095,32 +1079,24 @@ define i32 @varargs(ptr %fmt, ...) nounwind {
1095
1079
; RV64I-LABEL: varargs:
1096
1080
; RV64I: # %bb.0:
1097
1081
; RV64I-NEXT: addi sp, sp, -80
1082
+ ; RV64I-NEXT: sd a1, 24(sp)
1098
1083
; RV64I-NEXT: sd a7, 72(sp)
1099
1084
; RV64I-NEXT: sd a6, 64(sp)
1100
1085
; RV64I-NEXT: sd a5, 56(sp)
1101
1086
; RV64I-NEXT: sd a4, 48(sp)
1102
1087
; RV64I-NEXT: sd a3, 40(sp)
1103
1088
; RV64I-NEXT: sd a2, 32(sp)
1104
- ; RV64I-NEXT: sd a1, 24(sp)
1105
- ; RV64I-NEXT: addi a0, sp, 24
1089
+ ; RV64I-NEXT: addi a0, sp, 28
1106
1090
; RV64I-NEXT: sd a0, 8(sp)
1107
- ; RV64I-NEXT: lwu a0, 12(sp)
1108
- ; RV64I-NEXT: lwu a1, 8(sp)
1109
- ; RV64I-NEXT: slli a0, a0, 32
1110
- ; RV64I-NEXT: or a0, a0, a1
1111
- ; RV64I-NEXT: addi a1, a0, 4
1112
- ; RV64I-NEXT: sw a1, 8(sp)
1113
- ; RV64I-NEXT: srli a1, a1, 32
1114
- ; RV64I-NEXT: sw a1, 12(sp)
1115
- ; RV64I-NEXT: lw a0, 0(a0)
1091
+ ; RV64I-NEXT: lw a0, 24(sp)
1116
1092
; RV64I-NEXT: addi sp, sp, 80
1117
1093
; RV64I-NEXT: ret
1118
- %va = alloca ptr , align 4
1094
+ %va = alloca ptr
1119
1095
call void @llvm.va_start (ptr %va )
1120
- %argp.cur = load ptr , ptr %va , align 4
1096
+ %argp.cur = load ptr , ptr %va
1121
1097
%argp.next = getelementptr inbounds i8 , ptr %argp.cur , i32 4
1122
- store ptr %argp.next , ptr %va , align 4
1123
- %1 = load i32 , ptr %argp.cur , align 4
1098
+ store ptr %argp.next , ptr %va
1099
+ %1 = load i32 , ptr %argp.cur
1124
1100
call void @llvm.va_end (ptr %va )
1125
1101
ret i32 %1
1126
1102
}
0 commit comments