@@ -163,3 +163,142 @@ define void @inlined_set_doesnt_call_external_function(ptr %a, i8 %value) nounwi
163163 tail call void @llvm.memset.inline.p0.i64 (ptr %a , i8 %value , i64 1024 , i1 0 )
164164 ret void
165165}
166+
167+ define void @memset_inlined_insize (ptr %a , i8 %value ) nounwind minsize {
168+ ; CHECK-LABEL: memset_inlined_insize:
169+ ; CHECK: # %bb.0:
170+ ; CHECK-NEXT: movzbl %sil, %ecx
171+ ; CHECK-NEXT: movabsq $72340172838076673, %rax # imm = 0x101010101010101
172+ ; CHECK-NEXT: imulq %rcx, %rax
173+ ; CHECK-NEXT: movq %rax, 1016(%rdi)
174+ ; CHECK-NEXT: movq %rax, 1008(%rdi)
175+ ; CHECK-NEXT: movq %rax, 1000(%rdi)
176+ ; CHECK-NEXT: movq %rax, 992(%rdi)
177+ ; CHECK-NEXT: movq %rax, 984(%rdi)
178+ ; CHECK-NEXT: movq %rax, 976(%rdi)
179+ ; CHECK-NEXT: movq %rax, 968(%rdi)
180+ ; CHECK-NEXT: movq %rax, 960(%rdi)
181+ ; CHECK-NEXT: movq %rax, 952(%rdi)
182+ ; CHECK-NEXT: movq %rax, 944(%rdi)
183+ ; CHECK-NEXT: movq %rax, 936(%rdi)
184+ ; CHECK-NEXT: movq %rax, 928(%rdi)
185+ ; CHECK-NEXT: movq %rax, 920(%rdi)
186+ ; CHECK-NEXT: movq %rax, 912(%rdi)
187+ ; CHECK-NEXT: movq %rax, 904(%rdi)
188+ ; CHECK-NEXT: movq %rax, 896(%rdi)
189+ ; CHECK-NEXT: movq %rax, 888(%rdi)
190+ ; CHECK-NEXT: movq %rax, 880(%rdi)
191+ ; CHECK-NEXT: movq %rax, 872(%rdi)
192+ ; CHECK-NEXT: movq %rax, 864(%rdi)
193+ ; CHECK-NEXT: movq %rax, 856(%rdi)
194+ ; CHECK-NEXT: movq %rax, 848(%rdi)
195+ ; CHECK-NEXT: movq %rax, 840(%rdi)
196+ ; CHECK-NEXT: movq %rax, 832(%rdi)
197+ ; CHECK-NEXT: movq %rax, 824(%rdi)
198+ ; CHECK-NEXT: movq %rax, 816(%rdi)
199+ ; CHECK-NEXT: movq %rax, 808(%rdi)
200+ ; CHECK-NEXT: movq %rax, 800(%rdi)
201+ ; CHECK-NEXT: movq %rax, 792(%rdi)
202+ ; CHECK-NEXT: movq %rax, 784(%rdi)
203+ ; CHECK-NEXT: movq %rax, 776(%rdi)
204+ ; CHECK-NEXT: movq %rax, 768(%rdi)
205+ ; CHECK-NEXT: movq %rax, 760(%rdi)
206+ ; CHECK-NEXT: movq %rax, 752(%rdi)
207+ ; CHECK-NEXT: movq %rax, 744(%rdi)
208+ ; CHECK-NEXT: movq %rax, 736(%rdi)
209+ ; CHECK-NEXT: movq %rax, 728(%rdi)
210+ ; CHECK-NEXT: movq %rax, 720(%rdi)
211+ ; CHECK-NEXT: movq %rax, 712(%rdi)
212+ ; CHECK-NEXT: movq %rax, 704(%rdi)
213+ ; CHECK-NEXT: movq %rax, 696(%rdi)
214+ ; CHECK-NEXT: movq %rax, 688(%rdi)
215+ ; CHECK-NEXT: movq %rax, 680(%rdi)
216+ ; CHECK-NEXT: movq %rax, 672(%rdi)
217+ ; CHECK-NEXT: movq %rax, 664(%rdi)
218+ ; CHECK-NEXT: movq %rax, 656(%rdi)
219+ ; CHECK-NEXT: movq %rax, 648(%rdi)
220+ ; CHECK-NEXT: movq %rax, 640(%rdi)
221+ ; CHECK-NEXT: movq %rax, 632(%rdi)
222+ ; CHECK-NEXT: movq %rax, 624(%rdi)
223+ ; CHECK-NEXT: movq %rax, 616(%rdi)
224+ ; CHECK-NEXT: movq %rax, 608(%rdi)
225+ ; CHECK-NEXT: movq %rax, 600(%rdi)
226+ ; CHECK-NEXT: movq %rax, 592(%rdi)
227+ ; CHECK-NEXT: movq %rax, 584(%rdi)
228+ ; CHECK-NEXT: movq %rax, 576(%rdi)
229+ ; CHECK-NEXT: movq %rax, 568(%rdi)
230+ ; CHECK-NEXT: movq %rax, 560(%rdi)
231+ ; CHECK-NEXT: movq %rax, 552(%rdi)
232+ ; CHECK-NEXT: movq %rax, 544(%rdi)
233+ ; CHECK-NEXT: movq %rax, 536(%rdi)
234+ ; CHECK-NEXT: movq %rax, 528(%rdi)
235+ ; CHECK-NEXT: movq %rax, 520(%rdi)
236+ ; CHECK-NEXT: movq %rax, 512(%rdi)
237+ ; CHECK-NEXT: movq %rax, 504(%rdi)
238+ ; CHECK-NEXT: movq %rax, 496(%rdi)
239+ ; CHECK-NEXT: movq %rax, 488(%rdi)
240+ ; CHECK-NEXT: movq %rax, 480(%rdi)
241+ ; CHECK-NEXT: movq %rax, 472(%rdi)
242+ ; CHECK-NEXT: movq %rax, 464(%rdi)
243+ ; CHECK-NEXT: movq %rax, 456(%rdi)
244+ ; CHECK-NEXT: movq %rax, 448(%rdi)
245+ ; CHECK-NEXT: movq %rax, 440(%rdi)
246+ ; CHECK-NEXT: movq %rax, 432(%rdi)
247+ ; CHECK-NEXT: movq %rax, 424(%rdi)
248+ ; CHECK-NEXT: movq %rax, 416(%rdi)
249+ ; CHECK-NEXT: movq %rax, 408(%rdi)
250+ ; CHECK-NEXT: movq %rax, 400(%rdi)
251+ ; CHECK-NEXT: movq %rax, 392(%rdi)
252+ ; CHECK-NEXT: movq %rax, 384(%rdi)
253+ ; CHECK-NEXT: movq %rax, 376(%rdi)
254+ ; CHECK-NEXT: movq %rax, 368(%rdi)
255+ ; CHECK-NEXT: movq %rax, 360(%rdi)
256+ ; CHECK-NEXT: movq %rax, 352(%rdi)
257+ ; CHECK-NEXT: movq %rax, 344(%rdi)
258+ ; CHECK-NEXT: movq %rax, 336(%rdi)
259+ ; CHECK-NEXT: movq %rax, 328(%rdi)
260+ ; CHECK-NEXT: movq %rax, 320(%rdi)
261+ ; CHECK-NEXT: movq %rax, 312(%rdi)
262+ ; CHECK-NEXT: movq %rax, 304(%rdi)
263+ ; CHECK-NEXT: movq %rax, 296(%rdi)
264+ ; CHECK-NEXT: movq %rax, 288(%rdi)
265+ ; CHECK-NEXT: movq %rax, 280(%rdi)
266+ ; CHECK-NEXT: movq %rax, 272(%rdi)
267+ ; CHECK-NEXT: movq %rax, 264(%rdi)
268+ ; CHECK-NEXT: movq %rax, 256(%rdi)
269+ ; CHECK-NEXT: movq %rax, 248(%rdi)
270+ ; CHECK-NEXT: movq %rax, 240(%rdi)
271+ ; CHECK-NEXT: movq %rax, 232(%rdi)
272+ ; CHECK-NEXT: movq %rax, 224(%rdi)
273+ ; CHECK-NEXT: movq %rax, 216(%rdi)
274+ ; CHECK-NEXT: movq %rax, 208(%rdi)
275+ ; CHECK-NEXT: movq %rax, 200(%rdi)
276+ ; CHECK-NEXT: movq %rax, 192(%rdi)
277+ ; CHECK-NEXT: movq %rax, 184(%rdi)
278+ ; CHECK-NEXT: movq %rax, 176(%rdi)
279+ ; CHECK-NEXT: movq %rax, 168(%rdi)
280+ ; CHECK-NEXT: movq %rax, 160(%rdi)
281+ ; CHECK-NEXT: movq %rax, 152(%rdi)
282+ ; CHECK-NEXT: movq %rax, 144(%rdi)
283+ ; CHECK-NEXT: movq %rax, 136(%rdi)
284+ ; CHECK-NEXT: movq %rax, 128(%rdi)
285+ ; CHECK-NEXT: movq %rax, 120(%rdi)
286+ ; CHECK-NEXT: movq %rax, 112(%rdi)
287+ ; CHECK-NEXT: movq %rax, 104(%rdi)
288+ ; CHECK-NEXT: movq %rax, 96(%rdi)
289+ ; CHECK-NEXT: movq %rax, 88(%rdi)
290+ ; CHECK-NEXT: movq %rax, 80(%rdi)
291+ ; CHECK-NEXT: movq %rax, 72(%rdi)
292+ ; CHECK-NEXT: movq %rax, 64(%rdi)
293+ ; CHECK-NEXT: movq %rax, 56(%rdi)
294+ ; CHECK-NEXT: movq %rax, 48(%rdi)
295+ ; CHECK-NEXT: movq %rax, 40(%rdi)
296+ ; CHECK-NEXT: movq %rax, 32(%rdi)
297+ ; CHECK-NEXT: movq %rax, 24(%rdi)
298+ ; CHECK-NEXT: movq %rax, 16(%rdi)
299+ ; CHECK-NEXT: movq %rax, 8(%rdi)
300+ ; CHECK-NEXT: movq %rax, (%rdi)
301+ ; CHECK-NEXT: retq
302+ tail call void @llvm.memset.inline.p0.i64 (ptr %a , i8 %value , i64 1024 , i1 0 )
303+ ret void
304+ }
0 commit comments