1 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
2 ; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size | \
3 ; RUN: FileCheck %s --check-prefixes=COMMON,CHECK-NO-SA
4 ; RUN: opt < %s -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=code-size -mattr=+strict-align | \
5 ; RUN: FileCheck %s --check-prefixes=COMMON,CHECK-SA
7 target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
8 target triple = "thumbv7m-arm-unknown-eabi"
14 define void @memcpy_1(ptr %d, ptr %s) {
16 ; with/without strict-align:
21 ; COMMON-LABEL: 'memcpy_1'
22 ; COMMON-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 1, i1 false)
23 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
26 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 1, i1 false)
30 define void @memcpy_2(ptr %d, ptr %s) {
44 ; CHECK-NO-SA-LABEL: 'memcpy_2'
45 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 2, i1 false)
46 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
48 ; CHECK-SA-LABEL: 'memcpy_2'
49 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 2, i1 false)
50 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
53 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 2, i1 false)
57 define void @memcpy_3(ptr %d, ptr %s) {
75 ; CHECK-NO-SA-LABEL: 'memcpy_3'
76 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 3, i1 false)
77 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
79 ; CHECK-SA-LABEL: 'memcpy_3'
80 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 6 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 3, i1 false)
81 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
84 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 3, i1 false)
88 define void @memcpy_4(ptr %d, ptr %s) {
106 ; CHECK-NO-SA-LABEL: 'memcpy_4'
107 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 4, i1 false)
108 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
110 ; CHECK-SA-LABEL: 'memcpy_4'
111 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 8 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 4, i1 false)
112 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
115 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 4, i1 false)
119 define void @memcpy_8(ptr %d, ptr %s) {
135 ; COMMON-LABEL: 'memcpy_8'
136 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 8, i1 false)
137 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
140 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 8, i1 false)
144 define void @memcpy_16(ptr %d, ptr %s) {
164 ; CHECK-NO-SA-LABEL: 'memcpy_16'
165 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 8 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 16, i1 false)
166 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
168 ; CHECK-SA-LABEL: 'memcpy_16'
169 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 16, i1 false)
170 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
173 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 16, i1 false)
177 define void @memcpy_32(ptr %d, ptr %s, i32 %N) {
179 ; with/without strict-align:
184 ; COMMON-LABEL: 'memcpy_32'
185 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 32, i1 false)
186 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
189 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 32, i1 false)
193 define void @memcpy_N(ptr %d, ptr %s, i32 %N) {
195 ; with/without strict-align:
199 ; COMMON-LABEL: 'memcpy_N'
200 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 %N, i1 false)
201 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
204 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 1 %s, i32 %N, i1 false)
212 define void @memcpy_1_al2(ptr %d, ptr %s) {
214 ; with/without strict-align:
219 ; COMMON-LABEL: 'memcpy_1_al2'
220 ; COMMON-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 1, i1 false)
221 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
224 call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 1, i1 false)
228 define void @memcpy_2_al2(ptr %d, ptr %s) {
230 ; with/without strict-align:
235 ; COMMON-LABEL: 'memcpy_2_al2'
236 ; COMMON-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 2, i1 false)
237 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
240 call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 2, i1 false)
244 define void @memcpy_3_al2(ptr %d, ptr %s) {
246 ; with/without strict-align:
253 ; COMMON-LABEL: 'memcpy_3_al2'
254 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 3, i1 false)
255 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
258 call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 3, i1 false)
262 define void @memcpy_4_al2(ptr %d, ptr %s) {
276 ; CHECK-NO-SA-LABEL: 'memcpy_4_al2'
277 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 4, i1 false)
278 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
280 ; CHECK-SA-LABEL: 'memcpy_4_al2'
281 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 4, i1 false)
282 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
285 call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 4, i1 false)
289 define void @memcpy_8_al2(ptr %d, ptr %s) {
309 ; CHECK-NO-SA-LABEL: 'memcpy_8_al2'
310 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 8, i1 false)
311 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
313 ; CHECK-SA-LABEL: 'memcpy_8_al2'
314 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 8 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 8, i1 false)
315 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
318 call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 8, i1 false)
322 define void @memcpy_16_al2(ptr %d, ptr %s) {
340 ; CHECK-NO-SA-LABEL: 'memcpy_16_al2'
341 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 8 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 16, i1 false)
342 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
344 ; CHECK-SA-LABEL: 'memcpy_16_al2'
345 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 16, i1 false)
346 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
349 call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 16, i1 false)
353 define void @memcpy_32_al2(ptr %d, ptr %s, i32 %N) {
355 ; with/without strict-align:
360 ; COMMON-LABEL: 'memcpy_32_al2'
361 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 32, i1 false)
362 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
365 call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 32, i1 false)
369 define void @memcpy_N_al2(ptr %d, ptr %s, i32 %N) {
371 ; with/without strict-align:
375 ; COMMON-LABEL: 'memcpy_N_al2'
376 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 %N, i1 false)
377 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
380 call void @llvm.memcpy.p0.p0.i32(ptr align 2 %d, ptr align 2 %s, i32 %N, i1 false)
388 define void @memcpy_1_al4(ptr %d, ptr %s) {
390 ; with/without strict-align:
395 ; COMMON-LABEL: 'memcpy_1_al4'
396 ; COMMON-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 1, i1 false)
397 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
400 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 1, i1 false)
404 define void @memcpy_2_al4(ptr %d, ptr %s) {
406 ; with/without strict-align:
411 ; COMMON-LABEL: 'memcpy_2_al4'
412 ; COMMON-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 2, i1 false)
413 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
416 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 2, i1 false)
420 define void @memcpy_3_al4(ptr %d, ptr %s) {
422 ; with/without strict-align:
429 ; COMMON-LABEL: 'memcpy_3_al4'
430 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 3, i1 false)
431 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
434 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 3, i1 false)
438 define void @memcpy_4_al4(ptr %d, ptr %s) {
440 ; with/without strict-align:
445 ; COMMON-LABEL: 'memcpy_4_al4'
446 ; COMMON-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 4, i1 false)
447 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
450 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 4, i1 false)
454 define void @memcpy_8_al4(ptr %d, ptr %s) {
456 ; with/without strict-align:
461 ; COMMON-LABEL: 'memcpy_8_al4'
462 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 8, i1 false)
463 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
466 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 8, i1 false)
470 define void @memcpy_16_al4(ptr %d, ptr %s) {
472 ; with/without strict-align:
474 ; ldm.w r1, {r2, r3, r12}
476 ; stm.w r0, {r2, r3, r12}
479 ; COMMON-LABEL: 'memcpy_16_al4'
480 ; COMMON-NEXT: Cost Model: Found an estimated cost of 8 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 16, i1 false)
481 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
484 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 16, i1 false)
488 define void @memcpy_32_al4(ptr %d, ptr %s, i32 %N) {
490 ; with/without strict-align:
492 ; ldm.w r1!, {r2, r3, r12, lr}
493 ; stm.w r0!, {r2, r3, r12, lr}
494 ; ldm.w r1, {r2, r3, r12, lr}
495 ; stm.w r0, {r2, r3, r12, lr}
497 ; COMMON-LABEL: 'memcpy_32_al4'
498 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 32, i1 false)
499 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
502 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 32, i1 false)
506 define void @memcpy_N_al4(ptr %d, ptr %s, i32 %N) {
508 ; with/without strict-align:
512 ; COMMON-LABEL: 'memcpy_N_al4'
513 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 %N, i1 false)
514 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
517 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 4 %s, i32 %N, i1 false)
525 define void @memcpy_1_al14(ptr %d, ptr %s) {
527 ; with/without strict-align:
532 ; COMMON-LABEL: 'memcpy_1_al14'
533 ; COMMON-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 1, i1 false)
534 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
537 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 1, i1 false)
541 define void @memcpy_2_al14(ptr %d, ptr %s) {
555 ; CHECK-NO-SA-LABEL: 'memcpy_2_al14'
556 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 2, i1 false)
557 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
559 ; CHECK-SA-LABEL: 'memcpy_2_al14'
560 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 2, i1 false)
561 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
564 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 2, i1 false)
568 define void @memcpy_3_al14(ptr %d, ptr %s) {
586 ; CHECK-NO-SA-LABEL: 'memcpy_3_al14'
587 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 3, i1 false)
588 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
590 ; CHECK-SA-LABEL: 'memcpy_3_al14'
591 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 6 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 3, i1 false)
592 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
595 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 3, i1 false)
599 define void @memcpy_4_al14(ptr %d, ptr %s) {
617 ; CHECK-NO-SA-LABEL: 'memcpy_4_al14'
618 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 2 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 4, i1 false)
619 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
621 ; CHECK-SA-LABEL: 'memcpy_4_al14'
622 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 8 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 4, i1 false)
623 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
626 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 4, i1 false)
630 define void @memcpy_8_al14(ptr %d, ptr %s) {
646 ; COMMON-LABEL: 'memcpy_8_al14'
647 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 8, i1 false)
648 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
651 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 8, i1 false)
655 define void @memcpy_16_al14(ptr %d, ptr %s) {
673 ; CHECK-NO-SA-LABEL: 'memcpy_16_al14'
674 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 8 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 16, i1 false)
675 ; CHECK-NO-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
677 ; CHECK-SA-LABEL: 'memcpy_16_al14'
678 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 16, i1 false)
679 ; CHECK-SA-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
682 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 16, i1 false)
686 define void @memcpy_32_al14(ptr %d, ptr %s) {
688 ; with/without strict-align:
693 ; COMMON-LABEL: 'memcpy_32_al14'
694 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 32, i1 false)
695 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
698 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 32, i1 false)
702 define void @memcpy_N_al14(ptr %d, ptr %s, i32 %N) {
704 ; with/without strict-align:
708 ; COMMON-LABEL: 'memcpy_N_al14'
709 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 %N, i1 false)
710 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
713 call void @llvm.memcpy.p0.p0.i32(ptr align 1 %d, ptr align 4 %s, i32 %N, i1 false)
721 define void @memcpy_1_al41(ptr %d, ptr %s) {
723 ; with/without strict-align:
728 ; COMMON-LABEL: 'memcpy_1_al41'
729 ; COMMON-NEXT: Cost Model: Found an estimated cost of 4 for instruction: call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 1 %s, i32 1, i1 false)
730 ; COMMON-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret void
733 call void @llvm.memcpy.p0.p0.i32(ptr align 4 %d, ptr align 1 %s, i32 1, i1 false)
737 declare void @llvm.memcpy.p0.p0.i32(ptr nocapture writeonly, ptr nocapture readonly, i32, i1) #1