Skip to content

Commit d504824

Browse files
authored
[RISCV] Use ABI align in varargs tests in push-pop-popret.ll. NFC (#74423)
The explicit 'align 4' caused the pointers to be underaligned on RV64.
1 parent 6b4b6d9 commit d504824

File tree

1 file changed

+13
-37
lines changed

1 file changed

+13
-37
lines changed

llvm/test/CodeGen/RISCV/push-pop-popret.ll

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,24 +1015,16 @@ define i32 @varargs(ptr %fmt, ...) nounwind {
10151015
; RV64IZCMP-LABEL: varargs:
10161016
; RV64IZCMP: # %bb.0:
10171017
; RV64IZCMP-NEXT: addi sp, sp, -80
1018+
; RV64IZCMP-NEXT: sd a1, 24(sp)
10181019
; RV64IZCMP-NEXT: sd a7, 72(sp)
10191020
; RV64IZCMP-NEXT: sd a6, 64(sp)
10201021
; RV64IZCMP-NEXT: sd a5, 56(sp)
10211022
; RV64IZCMP-NEXT: sd a4, 48(sp)
10221023
; RV64IZCMP-NEXT: sd a3, 40(sp)
10231024
; 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
10261026
; 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)
10361028
; RV64IZCMP-NEXT: addi sp, sp, 80
10371029
; RV64IZCMP-NEXT: ret
10381030
;
@@ -1055,24 +1047,16 @@ define i32 @varargs(ptr %fmt, ...) nounwind {
10551047
; RV64IZCMP-SR-LABEL: varargs:
10561048
; RV64IZCMP-SR: # %bb.0:
10571049
; RV64IZCMP-SR-NEXT: addi sp, sp, -80
1050+
; RV64IZCMP-SR-NEXT: sd a1, 24(sp)
10581051
; RV64IZCMP-SR-NEXT: sd a7, 72(sp)
10591052
; RV64IZCMP-SR-NEXT: sd a6, 64(sp)
10601053
; RV64IZCMP-SR-NEXT: sd a5, 56(sp)
10611054
; RV64IZCMP-SR-NEXT: sd a4, 48(sp)
10621055
; RV64IZCMP-SR-NEXT: sd a3, 40(sp)
10631056
; 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
10661058
; 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)
10761060
; RV64IZCMP-SR-NEXT: addi sp, sp, 80
10771061
; RV64IZCMP-SR-NEXT: ret
10781062
;
@@ -1095,32 +1079,24 @@ define i32 @varargs(ptr %fmt, ...) nounwind {
10951079
; RV64I-LABEL: varargs:
10961080
; RV64I: # %bb.0:
10971081
; RV64I-NEXT: addi sp, sp, -80
1082+
; RV64I-NEXT: sd a1, 24(sp)
10981083
; RV64I-NEXT: sd a7, 72(sp)
10991084
; RV64I-NEXT: sd a6, 64(sp)
11001085
; RV64I-NEXT: sd a5, 56(sp)
11011086
; RV64I-NEXT: sd a4, 48(sp)
11021087
; RV64I-NEXT: sd a3, 40(sp)
11031088
; 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
11061090
; 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)
11161092
; RV64I-NEXT: addi sp, sp, 80
11171093
; RV64I-NEXT: ret
1118-
%va = alloca ptr, align 4
1094+
%va = alloca ptr
11191095
call void @llvm.va_start(ptr %va)
1120-
%argp.cur = load ptr, ptr %va, align 4
1096+
%argp.cur = load ptr, ptr %va
11211097
%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
11241100
call void @llvm.va_end(ptr %va)
11251101
ret i32 %1
11261102
}

0 commit comments

Comments
 (0)