Skip to content

Commit f51a479

Browse files
committed
[LoongArch] Pre-commit test for aligning stack objects passed to memory intrinsics. NFC
1 parent 5dfdac7 commit f51a479

File tree

1 file changed

+148
-0
lines changed

1 file changed

+148
-0
lines changed

llvm/test/CodeGen/LoongArch/unaligned-memcpy-inline.ll

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,152 @@ entry:
9494
ret void
9595
}
9696

97+
@.str = private constant [22 x i8] c"preemption imbalance \00", align 1
98+
99+
define void @t3() {
100+
; LA32-LABEL: t3:
101+
; LA32: # %bb.0: # %entry
102+
; LA32-NEXT: addi.w $sp, $sp, -64
103+
; LA32-NEXT: .cfi_def_cfa_offset 64
104+
; LA32-NEXT: pcalau12i $a0, %pc_hi20(.L.str)
105+
; LA32-NEXT: addi.w $a0, $a0, %pc_lo12(.L.str)
106+
; LA32-NEXT: ld.b $a1, $a0, 21
107+
; LA32-NEXT: ld.bu $a2, $a0, 20
108+
; LA32-NEXT: slli.w $a1, $a1, 8
109+
; LA32-NEXT: or $a1, $a1, $a2
110+
; LA32-NEXT: st.h $a1, $sp, 20
111+
; LA32-NEXT: ld.bu $a1, $a0, 17
112+
; LA32-NEXT: ld.bu $a2, $a0, 16
113+
; LA32-NEXT: ld.bu $a3, $a0, 18
114+
; LA32-NEXT: ld.bu $a4, $a0, 19
115+
; LA32-NEXT: slli.w $a1, $a1, 8
116+
; LA32-NEXT: or $a1, $a1, $a2
117+
; LA32-NEXT: slli.w $a2, $a3, 16
118+
; LA32-NEXT: slli.w $a3, $a4, 24
119+
; LA32-NEXT: or $a2, $a3, $a2
120+
; LA32-NEXT: or $a1, $a2, $a1
121+
; LA32-NEXT: st.w $a1, $sp, 16
122+
; LA32-NEXT: ld.bu $a1, $a0, 13
123+
; LA32-NEXT: ld.bu $a2, $a0, 12
124+
; LA32-NEXT: ld.bu $a3, $a0, 14
125+
; LA32-NEXT: ld.bu $a4, $a0, 15
126+
; LA32-NEXT: slli.w $a1, $a1, 8
127+
; LA32-NEXT: or $a1, $a1, $a2
128+
; LA32-NEXT: slli.w $a2, $a3, 16
129+
; LA32-NEXT: slli.w $a3, $a4, 24
130+
; LA32-NEXT: or $a2, $a3, $a2
131+
; LA32-NEXT: or $a1, $a2, $a1
132+
; LA32-NEXT: st.w $a1, $sp, 12
133+
; LA32-NEXT: ld.bu $a1, $a0, 9
134+
; LA32-NEXT: ld.bu $a2, $a0, 8
135+
; LA32-NEXT: ld.bu $a3, $a0, 10
136+
; LA32-NEXT: ld.bu $a4, $a0, 11
137+
; LA32-NEXT: slli.w $a1, $a1, 8
138+
; LA32-NEXT: or $a1, $a1, $a2
139+
; LA32-NEXT: slli.w $a2, $a3, 16
140+
; LA32-NEXT: slli.w $a3, $a4, 24
141+
; LA32-NEXT: or $a2, $a3, $a2
142+
; LA32-NEXT: or $a1, $a2, $a1
143+
; LA32-NEXT: st.w $a1, $sp, 8
144+
; LA32-NEXT: ld.bu $a1, $a0, 5
145+
; LA32-NEXT: ld.bu $a2, $a0, 4
146+
; LA32-NEXT: ld.bu $a3, $a0, 6
147+
; LA32-NEXT: ld.bu $a4, $a0, 7
148+
; LA32-NEXT: slli.w $a1, $a1, 8
149+
; LA32-NEXT: or $a1, $a1, $a2
150+
; LA32-NEXT: slli.w $a2, $a3, 16
151+
; LA32-NEXT: slli.w $a3, $a4, 24
152+
; LA32-NEXT: or $a2, $a3, $a2
153+
; LA32-NEXT: or $a1, $a2, $a1
154+
; LA32-NEXT: st.w $a1, $sp, 4
155+
; LA32-NEXT: ld.bu $a1, $a0, 1
156+
; LA32-NEXT: ld.bu $a2, $a0, 0
157+
; LA32-NEXT: ld.bu $a3, $a0, 2
158+
; LA32-NEXT: ld.bu $a0, $a0, 3
159+
; LA32-NEXT: slli.w $a1, $a1, 8
160+
; LA32-NEXT: or $a1, $a1, $a2
161+
; LA32-NEXT: slli.w $a2, $a3, 16
162+
; LA32-NEXT: slli.w $a0, $a0, 24
163+
; LA32-NEXT: or $a0, $a0, $a2
164+
; LA32-NEXT: or $a0, $a0, $a1
165+
; LA32-NEXT: st.w $a0, $sp, 0
166+
; LA32-NEXT: addi.w $sp, $sp, 64
167+
; LA32-NEXT: ret
168+
;
169+
; LA64-LABEL: t3:
170+
; LA64: # %bb.0: # %entry
171+
; LA64-NEXT: addi.d $sp, $sp, -64
172+
; LA64-NEXT: .cfi_def_cfa_offset 64
173+
; LA64-NEXT: pcalau12i $a0, %pc_hi20(.L.str)
174+
; LA64-NEXT: addi.d $a0, $a0, %pc_lo12(.L.str)
175+
; LA64-NEXT: ld.b $a1, $a0, 21
176+
; LA64-NEXT: ld.bu $a2, $a0, 20
177+
; LA64-NEXT: slli.d $a1, $a1, 8
178+
; LA64-NEXT: or $a1, $a1, $a2
179+
; LA64-NEXT: st.h $a1, $sp, 20
180+
; LA64-NEXT: ld.bu $a1, $a0, 17
181+
; LA64-NEXT: ld.bu $a2, $a0, 16
182+
; LA64-NEXT: ld.bu $a3, $a0, 18
183+
; LA64-NEXT: ld.b $a4, $a0, 19
184+
; LA64-NEXT: slli.d $a1, $a1, 8
185+
; LA64-NEXT: or $a1, $a1, $a2
186+
; LA64-NEXT: slli.d $a2, $a3, 16
187+
; LA64-NEXT: slli.d $a3, $a4, 24
188+
; LA64-NEXT: or $a2, $a3, $a2
189+
; LA64-NEXT: or $a1, $a2, $a1
190+
; LA64-NEXT: st.w $a1, $sp, 16
191+
; LA64-NEXT: ld.bu $a1, $a0, 9
192+
; LA64-NEXT: ld.bu $a2, $a0, 8
193+
; LA64-NEXT: ld.bu $a3, $a0, 10
194+
; LA64-NEXT: ld.bu $a4, $a0, 11
195+
; LA64-NEXT: slli.d $a1, $a1, 8
196+
; LA64-NEXT: or $a1, $a1, $a2
197+
; LA64-NEXT: slli.d $a2, $a3, 16
198+
; LA64-NEXT: slli.d $a3, $a4, 24
199+
; LA64-NEXT: or $a2, $a3, $a2
200+
; LA64-NEXT: or $a1, $a2, $a1
201+
; LA64-NEXT: ld.bu $a2, $a0, 13
202+
; LA64-NEXT: ld.bu $a3, $a0, 12
203+
; LA64-NEXT: ld.bu $a4, $a0, 14
204+
; LA64-NEXT: ld.bu $a5, $a0, 15
205+
; LA64-NEXT: slli.d $a2, $a2, 8
206+
; LA64-NEXT: or $a2, $a2, $a3
207+
; LA64-NEXT: slli.d $a3, $a4, 16
208+
; LA64-NEXT: slli.d $a4, $a5, 24
209+
; LA64-NEXT: or $a3, $a4, $a3
210+
; LA64-NEXT: or $a2, $a3, $a2
211+
; LA64-NEXT: slli.d $a2, $a2, 32
212+
; LA64-NEXT: or $a1, $a2, $a1
213+
; LA64-NEXT: st.d $a1, $sp, 8
214+
; LA64-NEXT: ld.bu $a1, $a0, 1
215+
; LA64-NEXT: ld.bu $a2, $a0, 0
216+
; LA64-NEXT: ld.bu $a3, $a0, 2
217+
; LA64-NEXT: ld.bu $a4, $a0, 3
218+
; LA64-NEXT: slli.d $a1, $a1, 8
219+
; LA64-NEXT: or $a1, $a1, $a2
220+
; LA64-NEXT: slli.d $a2, $a3, 16
221+
; LA64-NEXT: slli.d $a3, $a4, 24
222+
; LA64-NEXT: or $a2, $a3, $a2
223+
; LA64-NEXT: or $a1, $a2, $a1
224+
; LA64-NEXT: ld.bu $a2, $a0, 5
225+
; LA64-NEXT: ld.bu $a3, $a0, 4
226+
; LA64-NEXT: ld.bu $a4, $a0, 6
227+
; LA64-NEXT: ld.bu $a0, $a0, 7
228+
; LA64-NEXT: slli.d $a2, $a2, 8
229+
; LA64-NEXT: or $a2, $a2, $a3
230+
; LA64-NEXT: slli.d $a3, $a4, 16
231+
; LA64-NEXT: slli.d $a0, $a0, 24
232+
; LA64-NEXT: or $a0, $a0, $a3
233+
; LA64-NEXT: or $a0, $a0, $a2
234+
; LA64-NEXT: slli.d $a0, $a0, 32
235+
; LA64-NEXT: or $a0, $a0, $a1
236+
; LA64-NEXT: st.d $a0, $sp, 0
237+
; LA64-NEXT: addi.d $sp, $sp, 64
238+
; LA64-NEXT: ret
239+
entry:
240+
%msgbuf = alloca [64 x i8], align 1
241+
call void @llvm.memcpy.p0.p0.i64(ptr align 1 %msgbuf, ptr align 1 @.str, i64 22, i1 false)
242+
ret void
243+
}
244+
97245
declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1)

0 commit comments

Comments
 (0)