1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -verify-machineinstrs -mcpu=pwr8 \
3 ; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P8-BE
4 ; RUN: llc -verify-machineinstrs -mcpu=pwr9 \
5 ; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P9-BE
6 ; RUN: llc -verify-machineinstrs -mcpu=pwr10 \
7 ; RUN: -mtriple=powerpc64-unknown-aix < %s | FileCheck %s --check-prefix=P10-BE
8 ; RUN: llc -verify-machineinstrs -mcpu=pwr8 \
9 ; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P8-LE
10 ; RUN: llc -verify-machineinstrs -mcpu=pwr9 \
11 ; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P9-LE
12 ; RUN: llc -verify-machineinstrs -mcpu=pwr10 \
13 ; RUN: -mtriple=powerpc64le-unknown-unknown < %s | FileCheck %s --check-prefix=P10-LE
15 define dso_local void @memsetTailV1B15(ptr nocapture noundef writeonly %p) local_unnamed_addr {
16 ; P8-BE-LABEL: memsetTailV1B15:
17 ; P8-BE: # %bb.0: # %entry
18 ; P8-BE-NEXT: vspltisb 2, 15
19 ; P8-BE-NEXT: li 4, 15
20 ; P8-BE-NEXT: stxvw4x 34, 3, 4
21 ; P8-BE-NEXT: stxvw4x 34, 0, 3
24 ; P9-BE-LABEL: memsetTailV1B15:
25 ; P9-BE: # %bb.0: # %entry
26 ; P9-BE-NEXT: xxspltib 0, 15
27 ; P9-BE-NEXT: li 4, 15
28 ; P9-BE-NEXT: stxvx 0, 3, 4
29 ; P9-BE-NEXT: stxv 0, 0(3)
32 ; P10-BE-LABEL: memsetTailV1B15:
33 ; P10-BE: # %bb.0: # %entry
34 ; P10-BE-NEXT: xxspltib 0, 15
35 ; P10-BE-NEXT: pstxv 0, 15(3), 0
36 ; P10-BE-NEXT: stxv 0, 0(3)
39 ; P8-LE-LABEL: memsetTailV1B15:
40 ; P8-LE: # %bb.0: # %entry
41 ; P8-LE-NEXT: vspltisb 2, 15
42 ; P8-LE-NEXT: li 4, 15
43 ; P8-LE-NEXT: stxvd2x 34, 3, 4
44 ; P8-LE-NEXT: stxvd2x 34, 0, 3
47 ; P9-LE-LABEL: memsetTailV1B15:
48 ; P9-LE: # %bb.0: # %entry
49 ; P9-LE-NEXT: xxspltib 0, 15
50 ; P9-LE-NEXT: li 4, 15
51 ; P9-LE-NEXT: stxvx 0, 3, 4
52 ; P9-LE-NEXT: stxv 0, 0(3)
55 ; P10-LE-LABEL: memsetTailV1B15:
56 ; P10-LE: # %bb.0: # %entry
57 ; P10-LE-NEXT: xxspltib 0, 15
58 ; P10-LE-NEXT: pstxv 0, 15(3), 0
59 ; P10-LE-NEXT: stxv 0, 0(3)
62 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 31, i1 false)
66 define dso_local void @memsetTailV1B12(ptr nocapture noundef writeonly %p) local_unnamed_addr {
67 ; P8-BE-LABEL: memsetTailV1B12:
68 ; P8-BE: # %bb.0: # %entry
69 ; P8-BE-NEXT: vspltisb 2, 15
70 ; P8-BE-NEXT: li 4, 12
71 ; P8-BE-NEXT: stxvw4x 34, 3, 4
72 ; P8-BE-NEXT: stxvw4x 34, 0, 3
75 ; P9-BE-LABEL: memsetTailV1B12:
76 ; P9-BE: # %bb.0: # %entry
77 ; P9-BE-NEXT: xxspltib 0, 15
78 ; P9-BE-NEXT: li 4, 12
79 ; P9-BE-NEXT: stxvx 0, 3, 4
80 ; P9-BE-NEXT: stxv 0, 0(3)
83 ; P10-BE-LABEL: memsetTailV1B12:
84 ; P10-BE: # %bb.0: # %entry
85 ; P10-BE-NEXT: xxspltib 0, 15
86 ; P10-BE-NEXT: pstxv 0, 12(3), 0
87 ; P10-BE-NEXT: stxv 0, 0(3)
90 ; P8-LE-LABEL: memsetTailV1B12:
91 ; P8-LE: # %bb.0: # %entry
92 ; P8-LE-NEXT: vspltisb 2, 15
93 ; P8-LE-NEXT: li 4, 12
94 ; P8-LE-NEXT: stxvd2x 34, 3, 4
95 ; P8-LE-NEXT: stxvd2x 34, 0, 3
98 ; P9-LE-LABEL: memsetTailV1B12:
99 ; P9-LE: # %bb.0: # %entry
100 ; P9-LE-NEXT: xxspltib 0, 15
101 ; P9-LE-NEXT: li 4, 12
102 ; P9-LE-NEXT: stxvx 0, 3, 4
103 ; P9-LE-NEXT: stxv 0, 0(3)
106 ; P10-LE-LABEL: memsetTailV1B12:
107 ; P10-LE: # %bb.0: # %entry
108 ; P10-LE-NEXT: xxspltib 0, 15
109 ; P10-LE-NEXT: pstxv 0, 12(3), 0
110 ; P10-LE-NEXT: stxv 0, 0(3)
113 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 28, i1 false)
117 define dso_local void @memsetTailV1B9(ptr nocapture noundef writeonly %p) local_unnamed_addr {
118 ; P8-BE-LABEL: memsetTailV1B9:
119 ; P8-BE: # %bb.0: # %entry
120 ; P8-BE-NEXT: vspltisb 2, 15
121 ; P8-BE-NEXT: li 4, 9
122 ; P8-BE-NEXT: stxvw4x 34, 3, 4
123 ; P8-BE-NEXT: stxvw4x 34, 0, 3
126 ; P9-BE-LABEL: memsetTailV1B9:
127 ; P9-BE: # %bb.0: # %entry
128 ; P9-BE-NEXT: xxspltib 0, 15
129 ; P9-BE-NEXT: li 4, 9
130 ; P9-BE-NEXT: stxvx 0, 3, 4
131 ; P9-BE-NEXT: stxv 0, 0(3)
134 ; P10-BE-LABEL: memsetTailV1B9:
135 ; P10-BE: # %bb.0: # %entry
136 ; P10-BE-NEXT: xxspltib 0, 15
137 ; P10-BE-NEXT: pstxv 0, 9(3), 0
138 ; P10-BE-NEXT: stxv 0, 0(3)
141 ; P8-LE-LABEL: memsetTailV1B9:
142 ; P8-LE: # %bb.0: # %entry
143 ; P8-LE-NEXT: vspltisb 2, 15
144 ; P8-LE-NEXT: li 4, 9
145 ; P8-LE-NEXT: stxvd2x 34, 3, 4
146 ; P8-LE-NEXT: stxvd2x 34, 0, 3
149 ; P9-LE-LABEL: memsetTailV1B9:
150 ; P9-LE: # %bb.0: # %entry
151 ; P9-LE-NEXT: xxspltib 0, 15
152 ; P9-LE-NEXT: li 4, 9
153 ; P9-LE-NEXT: stxvx 0, 3, 4
154 ; P9-LE-NEXT: stxv 0, 0(3)
157 ; P10-LE-LABEL: memsetTailV1B9:
158 ; P10-LE: # %bb.0: # %entry
159 ; P10-LE-NEXT: xxspltib 0, 15
160 ; P10-LE-NEXT: pstxv 0, 9(3), 0
161 ; P10-LE-NEXT: stxv 0, 0(3)
164 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 25, i1 false)
168 define dso_local void @memsetTailV1B8(ptr nocapture noundef writeonly %p) local_unnamed_addr {
169 ; P8-BE-LABEL: memsetTailV1B8:
170 ; P8-BE: # %bb.0: # %entry
171 ; P8-BE-NEXT: vspltisb 2, 15
172 ; P8-BE-NEXT: li 4, 16
173 ; P8-BE-NEXT: stxsdx 34, 3, 4
174 ; P8-BE-NEXT: stxvw4x 34, 0, 3
177 ; P9-BE-LABEL: memsetTailV1B8:
178 ; P9-BE: # %bb.0: # %entry
179 ; P9-BE-NEXT: xxspltib 0, 15
180 ; P9-BE-NEXT: stxv 0, 0(3)
181 ; P9-BE-NEXT: stfd 0, 16(3)
184 ; P10-BE-LABEL: memsetTailV1B8:
185 ; P10-BE: # %bb.0: # %entry
186 ; P10-BE-NEXT: xxspltib 0, 15
187 ; P10-BE-NEXT: stxv 0, 0(3)
188 ; P10-BE-NEXT: stfd 0, 16(3)
191 ; P8-LE-LABEL: memsetTailV1B8:
192 ; P8-LE: # %bb.0: # %entry
193 ; P8-LE-NEXT: vspltisb 2, 15
194 ; P8-LE-NEXT: li 4, 16
195 ; P8-LE-NEXT: stxsdx 34, 3, 4
196 ; P8-LE-NEXT: stxvd2x 34, 0, 3
199 ; P9-LE-LABEL: memsetTailV1B8:
200 ; P9-LE: # %bb.0: # %entry
201 ; P9-LE-NEXT: xxspltib 0, 15
202 ; P9-LE-NEXT: stxv 0, 0(3)
203 ; P9-LE-NEXT: stfd 0, 16(3)
206 ; P10-LE-LABEL: memsetTailV1B8:
207 ; P10-LE: # %bb.0: # %entry
208 ; P10-LE-NEXT: xxspltib 0, 15
209 ; P10-LE-NEXT: stxv 0, 0(3)
210 ; P10-LE-NEXT: stfd 0, 16(3)
213 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 24, i1 false)
217 define dso_local void @memsetTailV1B7(ptr nocapture noundef writeonly %p) local_unnamed_addr {
218 ; P8-BE-LABEL: memsetTailV1B7:
219 ; P8-BE: # %bb.0: # %entry
220 ; P8-BE-NEXT: vspltisb 2, 15
221 ; P8-BE-NEXT: li 4, 15
222 ; P8-BE-NEXT: stxsdx 34, 3, 4
223 ; P8-BE-NEXT: stxvw4x 34, 0, 3
226 ; P9-BE-LABEL: memsetTailV1B7:
227 ; P9-BE: # %bb.0: # %entry
228 ; P9-BE-NEXT: xxspltib 0, 15
229 ; P9-BE-NEXT: stfd 0, 15(3)
230 ; P9-BE-NEXT: stxv 0, 0(3)
233 ; P10-BE-LABEL: memsetTailV1B7:
234 ; P10-BE: # %bb.0: # %entry
235 ; P10-BE-NEXT: xxspltib 0, 15
236 ; P10-BE-NEXT: stfd 0, 15(3)
237 ; P10-BE-NEXT: stxv 0, 0(3)
240 ; P8-LE-LABEL: memsetTailV1B7:
241 ; P8-LE: # %bb.0: # %entry
242 ; P8-LE-NEXT: vspltisb 2, 15
243 ; P8-LE-NEXT: li 4, 15
244 ; P8-LE-NEXT: stxsdx 34, 3, 4
245 ; P8-LE-NEXT: stxvd2x 34, 0, 3
248 ; P9-LE-LABEL: memsetTailV1B7:
249 ; P9-LE: # %bb.0: # %entry
250 ; P9-LE-NEXT: xxspltib 0, 15
251 ; P9-LE-NEXT: stfd 0, 15(3)
252 ; P9-LE-NEXT: stxv 0, 0(3)
255 ; P10-LE-LABEL: memsetTailV1B7:
256 ; P10-LE: # %bb.0: # %entry
257 ; P10-LE-NEXT: xxspltib 0, 15
258 ; P10-LE-NEXT: stfd 0, 15(3)
259 ; P10-LE-NEXT: stxv 0, 0(3)
262 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 23, i1 false)
266 define dso_local void @memsetTailV1B4(ptr nocapture noundef writeonly %p) local_unnamed_addr {
267 ; P8-BE-LABEL: memsetTailV1B4:
268 ; P8-BE: # %bb.0: # %entry
269 ; P8-BE-NEXT: vspltisb 2, 15
270 ; P8-BE-NEXT: li 4, 16
271 ; P8-BE-NEXT: stxsiwx 34, 3, 4
272 ; P8-BE-NEXT: stxvw4x 34, 0, 3
275 ; P9-BE-LABEL: memsetTailV1B4:
276 ; P9-BE: # %bb.0: # %entry
277 ; P9-BE-NEXT: xxspltib 0, 15
278 ; P9-BE-NEXT: li 4, 16
279 ; P9-BE-NEXT: stfiwx 0, 3, 4
280 ; P9-BE-NEXT: stxv 0, 0(3)
283 ; P10-BE-LABEL: memsetTailV1B4:
284 ; P10-BE: # %bb.0: # %entry
285 ; P10-BE-NEXT: xxspltib 0, 15
286 ; P10-BE-NEXT: li 4, 16
287 ; P10-BE-NEXT: stfiwx 0, 3, 4
288 ; P10-BE-NEXT: stxv 0, 0(3)
291 ; P8-LE-LABEL: memsetTailV1B4:
292 ; P8-LE: # %bb.0: # %entry
293 ; P8-LE-NEXT: vspltisb 2, 15
294 ; P8-LE-NEXT: li 4, 16
295 ; P8-LE-NEXT: stxsiwx 34, 3, 4
296 ; P8-LE-NEXT: stxvd2x 34, 0, 3
299 ; P9-LE-LABEL: memsetTailV1B4:
300 ; P9-LE: # %bb.0: # %entry
301 ; P9-LE-NEXT: xxspltib 0, 15
302 ; P9-LE-NEXT: li 4, 16
303 ; P9-LE-NEXT: stfiwx 0, 3, 4
304 ; P9-LE-NEXT: stxv 0, 0(3)
307 ; P10-LE-LABEL: memsetTailV1B4:
308 ; P10-LE: # %bb.0: # %entry
309 ; P10-LE-NEXT: xxspltib 0, 15
310 ; P10-LE-NEXT: li 4, 16
311 ; P10-LE-NEXT: stfiwx 0, 3, 4
312 ; P10-LE-NEXT: stxv 0, 0(3)
315 tail call void @llvm.memset.p0.i32(ptr %p, i8 15, i32 20, i1 false)
319 define dso_local void @memsetTailV1B3(ptr nocapture noundef writeonly %p) local_unnamed_addr {
320 ; P8-BE-LABEL: memsetTailV1B3:
321 ; P8-BE: # %bb.0: # %entry
322 ; P8-BE-NEXT: vspltisb 2, 15
323 ; P8-BE-NEXT: li 4, 15
324 ; P8-BE-NEXT: stxsiwx 34, 3, 4
325 ; P8-BE-NEXT: stxvw4x 34, 0, 3
328 ; P9-BE-LABEL: memsetTailV1B3:
329 ; P9-BE: # %bb.0: # %entry
330 ; P9-BE-NEXT: xxspltib 0, 15
331 ; P9-BE-NEXT: li 4, 15
332 ; P9-BE-NEXT: stfiwx 0, 3, 4
333 ; P9-BE-NEXT: stxv 0, 0(3)
336 ; P10-BE-LABEL: memsetTailV1B3:
337 ; P10-BE: # %bb.0: # %entry
338 ; P10-BE-NEXT: xxspltib 0, 15
339 ; P10-BE-NEXT: li 4, 15
340 ; P10-BE-NEXT: stfiwx 0, 3, 4
341 ; P10-BE-NEXT: stxv 0, 0(3)
344 ; P8-LE-LABEL: memsetTailV1B3:
345 ; P8-LE: # %bb.0: # %entry
346 ; P8-LE-NEXT: vspltisb 2, 15
347 ; P8-LE-NEXT: li 4, 15
348 ; P8-LE-NEXT: stxsiwx 34, 3, 4
349 ; P8-LE-NEXT: stxvd2x 34, 0, 3
352 ; P9-LE-LABEL: memsetTailV1B3:
353 ; P9-LE: # %bb.0: # %entry
354 ; P9-LE-NEXT: xxspltib 0, 15
355 ; P9-LE-NEXT: li 4, 15
356 ; P9-LE-NEXT: stfiwx 0, 3, 4
357 ; P9-LE-NEXT: stxv 0, 0(3)
360 ; P10-LE-LABEL: memsetTailV1B3:
361 ; P10-LE: # %bb.0: # %entry
362 ; P10-LE-NEXT: xxspltib 0, 15
363 ; P10-LE-NEXT: li 4, 15
364 ; P10-LE-NEXT: stfiwx 0, 3, 4
365 ; P10-LE-NEXT: stxv 0, 0(3)
368 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 19, i1 false)
372 define dso_local void @memsetTailV1B2(ptr nocapture noundef writeonly %p) local_unnamed_addr {
373 ; P8-BE-LABEL: memsetTailV1B2:
374 ; P8-BE: # %bb.0: # %entry
375 ; P8-BE-NEXT: vspltisb 2, 15
376 ; P8-BE-NEXT: li 4, 3855
377 ; P8-BE-NEXT: sth 4, 16(3)
378 ; P8-BE-NEXT: stxvw4x 34, 0, 3
381 ; P9-BE-LABEL: memsetTailV1B2:
382 ; P9-BE: # %bb.0: # %entry
383 ; P9-BE-NEXT: li 4, 3855
384 ; P9-BE-NEXT: sth 4, 16(3)
385 ; P9-BE-NEXT: xxspltib 0, 15
386 ; P9-BE-NEXT: stxv 0, 0(3)
389 ; P10-BE-LABEL: memsetTailV1B2:
390 ; P10-BE: # %bb.0: # %entry
391 ; P10-BE-NEXT: li 4, 3855
392 ; P10-BE-NEXT: sth 4, 16(3)
393 ; P10-BE-NEXT: xxspltib 0, 15
394 ; P10-BE-NEXT: stxv 0, 0(3)
397 ; P8-LE-LABEL: memsetTailV1B2:
398 ; P8-LE: # %bb.0: # %entry
399 ; P8-LE-NEXT: vspltisb 2, 15
400 ; P8-LE-NEXT: li 4, 3855
401 ; P8-LE-NEXT: sth 4, 16(3)
402 ; P8-LE-NEXT: stxvd2x 34, 0, 3
405 ; P9-LE-LABEL: memsetTailV1B2:
406 ; P9-LE: # %bb.0: # %entry
407 ; P9-LE-NEXT: li 4, 3855
408 ; P9-LE-NEXT: sth 4, 16(3)
409 ; P9-LE-NEXT: xxspltib 0, 15
410 ; P9-LE-NEXT: stxv 0, 0(3)
413 ; P10-LE-LABEL: memsetTailV1B2:
414 ; P10-LE: # %bb.0: # %entry
415 ; P10-LE-NEXT: li 4, 3855
416 ; P10-LE-NEXT: sth 4, 16(3)
417 ; P10-LE-NEXT: xxspltib 0, 15
418 ; P10-LE-NEXT: stxv 0, 0(3)
421 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 18, i1 false)
425 define dso_local void @memsetTailV1B1(ptr nocapture noundef writeonly %p) local_unnamed_addr {
426 ; P8-BE-LABEL: memsetTailV1B1:
427 ; P8-BE: # %bb.0: # %entry
428 ; P8-BE-NEXT: vspltisb 2, 15
429 ; P8-BE-NEXT: li 4, 15
430 ; P8-BE-NEXT: stb 4, 16(3)
431 ; P8-BE-NEXT: stxvw4x 34, 0, 3
434 ; P9-BE-LABEL: memsetTailV1B1:
435 ; P9-BE: # %bb.0: # %entry
436 ; P9-BE-NEXT: li 4, 15
437 ; P9-BE-NEXT: stb 4, 16(3)
438 ; P9-BE-NEXT: xxspltib 0, 15
439 ; P9-BE-NEXT: stxv 0, 0(3)
442 ; P10-BE-LABEL: memsetTailV1B1:
443 ; P10-BE: # %bb.0: # %entry
444 ; P10-BE-NEXT: li 4, 15
445 ; P10-BE-NEXT: stb 4, 16(3)
446 ; P10-BE-NEXT: xxspltib 0, 15
447 ; P10-BE-NEXT: stxv 0, 0(3)
450 ; P8-LE-LABEL: memsetTailV1B1:
451 ; P8-LE: # %bb.0: # %entry
452 ; P8-LE-NEXT: vspltisb 2, 15
453 ; P8-LE-NEXT: li 4, 15
454 ; P8-LE-NEXT: stb 4, 16(3)
455 ; P8-LE-NEXT: stxvd2x 34, 0, 3
458 ; P9-LE-LABEL: memsetTailV1B1:
459 ; P9-LE: # %bb.0: # %entry
460 ; P9-LE-NEXT: li 4, 15
461 ; P9-LE-NEXT: stb 4, 16(3)
462 ; P9-LE-NEXT: xxspltib 0, 15
463 ; P9-LE-NEXT: stxv 0, 0(3)
466 ; P10-LE-LABEL: memsetTailV1B1:
467 ; P10-LE: # %bb.0: # %entry
468 ; P10-LE-NEXT: li 4, 15
469 ; P10-LE-NEXT: stb 4, 16(3)
470 ; P10-LE-NEXT: xxspltib 0, 15
471 ; P10-LE-NEXT: stxv 0, 0(3)
474 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 17, i1 false)
478 define dso_local void @memset2TailV1B15(ptr nocapture noundef writeonly %p) local_unnamed_addr {
479 ; P8-BE-LABEL: memset2TailV1B15:
480 ; P8-BE: # %bb.0: # %entry
481 ; P8-BE-NEXT: ld 4, L..C0(2) # %const.0
482 ; P8-BE-NEXT: lxvw4x 0, 0, 4
483 ; P8-BE-NEXT: li 4, 15
484 ; P8-BE-NEXT: stxvw4x 0, 3, 4
485 ; P8-BE-NEXT: stxvw4x 0, 0, 3
488 ; P9-BE-LABEL: memset2TailV1B15:
489 ; P9-BE: # %bb.0: # %entry
490 ; P9-BE-NEXT: xxspltib 0, 165
491 ; P9-BE-NEXT: li 4, 15
492 ; P9-BE-NEXT: stxvx 0, 3, 4
493 ; P9-BE-NEXT: stxv 0, 0(3)
496 ; P10-BE-LABEL: memset2TailV1B15:
497 ; P10-BE: # %bb.0: # %entry
498 ; P10-BE-NEXT: xxspltib 0, 165
499 ; P10-BE-NEXT: pstxv 0, 15(3), 0
500 ; P10-BE-NEXT: stxv 0, 0(3)
503 ; P8-LE-LABEL: memset2TailV1B15:
504 ; P8-LE: # %bb.0: # %entry
505 ; P8-LE-NEXT: addis 4, 2, .LCPI9_0@toc@ha
506 ; P8-LE-NEXT: addi 4, 4, .LCPI9_0@toc@l
507 ; P8-LE-NEXT: lxvd2x 0, 0, 4
508 ; P8-LE-NEXT: li 4, 15
509 ; P8-LE-NEXT: stxvd2x 0, 3, 4
510 ; P8-LE-NEXT: stxvd2x 0, 0, 3
513 ; P9-LE-LABEL: memset2TailV1B15:
514 ; P9-LE: # %bb.0: # %entry
515 ; P9-LE-NEXT: xxspltib 0, 165
516 ; P9-LE-NEXT: li 4, 15
517 ; P9-LE-NEXT: stxvx 0, 3, 4
518 ; P9-LE-NEXT: stxv 0, 0(3)
521 ; P10-LE-LABEL: memset2TailV1B15:
522 ; P10-LE: # %bb.0: # %entry
523 ; P10-LE-NEXT: xxspltib 0, 165
524 ; P10-LE-NEXT: pstxv 0, 15(3), 0
525 ; P10-LE-NEXT: stxv 0, 0(3)
528 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 31, i1 false)
532 define dso_local void @memset2TailV1B12(ptr nocapture noundef writeonly %p) local_unnamed_addr {
533 ; P8-BE-LABEL: memset2TailV1B12:
534 ; P8-BE: # %bb.0: # %entry
535 ; P8-BE-NEXT: ld 4, L..C1(2) # %const.0
536 ; P8-BE-NEXT: lxvw4x 0, 0, 4
537 ; P8-BE-NEXT: li 4, 12
538 ; P8-BE-NEXT: stxvw4x 0, 3, 4
539 ; P8-BE-NEXT: stxvw4x 0, 0, 3
542 ; P9-BE-LABEL: memset2TailV1B12:
543 ; P9-BE: # %bb.0: # %entry
544 ; P9-BE-NEXT: xxspltib 0, 165
545 ; P9-BE-NEXT: li 4, 12
546 ; P9-BE-NEXT: stxvx 0, 3, 4
547 ; P9-BE-NEXT: stxv 0, 0(3)
550 ; P10-BE-LABEL: memset2TailV1B12:
551 ; P10-BE: # %bb.0: # %entry
552 ; P10-BE-NEXT: xxspltib 0, 165
553 ; P10-BE-NEXT: pstxv 0, 12(3), 0
554 ; P10-BE-NEXT: stxv 0, 0(3)
557 ; P8-LE-LABEL: memset2TailV1B12:
558 ; P8-LE: # %bb.0: # %entry
559 ; P8-LE-NEXT: addis 4, 2, .LCPI10_0@toc@ha
560 ; P8-LE-NEXT: addi 4, 4, .LCPI10_0@toc@l
561 ; P8-LE-NEXT: lxvd2x 0, 0, 4
562 ; P8-LE-NEXT: li 4, 12
563 ; P8-LE-NEXT: stxvd2x 0, 3, 4
564 ; P8-LE-NEXT: stxvd2x 0, 0, 3
567 ; P9-LE-LABEL: memset2TailV1B12:
568 ; P9-LE: # %bb.0: # %entry
569 ; P9-LE-NEXT: xxspltib 0, 165
570 ; P9-LE-NEXT: li 4, 12
571 ; P9-LE-NEXT: stxvx 0, 3, 4
572 ; P9-LE-NEXT: stxv 0, 0(3)
575 ; P10-LE-LABEL: memset2TailV1B12:
576 ; P10-LE: # %bb.0: # %entry
577 ; P10-LE-NEXT: xxspltib 0, 165
578 ; P10-LE-NEXT: pstxv 0, 12(3), 0
579 ; P10-LE-NEXT: stxv 0, 0(3)
582 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 28, i1 false)
586 define dso_local void @memset2TailV1B9(ptr nocapture noundef writeonly %p) local_unnamed_addr {
587 ; P8-BE-LABEL: memset2TailV1B9:
588 ; P8-BE: # %bb.0: # %entry
589 ; P8-BE-NEXT: ld 4, L..C2(2) # %const.0
590 ; P8-BE-NEXT: lxvw4x 0, 0, 4
591 ; P8-BE-NEXT: li 4, 9
592 ; P8-BE-NEXT: stxvw4x 0, 3, 4
593 ; P8-BE-NEXT: stxvw4x 0, 0, 3
596 ; P9-BE-LABEL: memset2TailV1B9:
597 ; P9-BE: # %bb.0: # %entry
598 ; P9-BE-NEXT: xxspltib 0, 165
599 ; P9-BE-NEXT: li 4, 9
600 ; P9-BE-NEXT: stxvx 0, 3, 4
601 ; P9-BE-NEXT: stxv 0, 0(3)
604 ; P10-BE-LABEL: memset2TailV1B9:
605 ; P10-BE: # %bb.0: # %entry
606 ; P10-BE-NEXT: xxspltib 0, 165
607 ; P10-BE-NEXT: pstxv 0, 9(3), 0
608 ; P10-BE-NEXT: stxv 0, 0(3)
611 ; P8-LE-LABEL: memset2TailV1B9:
612 ; P8-LE: # %bb.0: # %entry
613 ; P8-LE-NEXT: addis 4, 2, .LCPI11_0@toc@ha
614 ; P8-LE-NEXT: addi 4, 4, .LCPI11_0@toc@l
615 ; P8-LE-NEXT: lxvd2x 0, 0, 4
616 ; P8-LE-NEXT: li 4, 9
617 ; P8-LE-NEXT: stxvd2x 0, 3, 4
618 ; P8-LE-NEXT: stxvd2x 0, 0, 3
621 ; P9-LE-LABEL: memset2TailV1B9:
622 ; P9-LE: # %bb.0: # %entry
623 ; P9-LE-NEXT: xxspltib 0, 165
624 ; P9-LE-NEXT: li 4, 9
625 ; P9-LE-NEXT: stxvx 0, 3, 4
626 ; P9-LE-NEXT: stxv 0, 0(3)
629 ; P10-LE-LABEL: memset2TailV1B9:
630 ; P10-LE: # %bb.0: # %entry
631 ; P10-LE-NEXT: xxspltib 0, 165
632 ; P10-LE-NEXT: pstxv 0, 9(3), 0
633 ; P10-LE-NEXT: stxv 0, 0(3)
636 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 25, i1 false)
640 define dso_local void @memset2TailV1B8(ptr nocapture noundef writeonly %p) local_unnamed_addr {
641 ; P8-BE-LABEL: memset2TailV1B8:
642 ; P8-BE: # %bb.0: # %entry
643 ; P8-BE-NEXT: ld 4, L..C3(2) # %const.0
644 ; P8-BE-NEXT: lxvw4x 0, 0, 4
645 ; P8-BE-NEXT: stfd 0, 16(3)
646 ; P8-BE-NEXT: stxvw4x 0, 0, 3
649 ; P9-BE-LABEL: memset2TailV1B8:
650 ; P9-BE: # %bb.0: # %entry
651 ; P9-BE-NEXT: xxspltib 0, 165
652 ; P9-BE-NEXT: stxv 0, 0(3)
653 ; P9-BE-NEXT: stfd 0, 16(3)
656 ; P10-BE-LABEL: memset2TailV1B8:
657 ; P10-BE: # %bb.0: # %entry
658 ; P10-BE-NEXT: xxspltib 0, 165
659 ; P10-BE-NEXT: stxv 0, 0(3)
660 ; P10-BE-NEXT: stfd 0, 16(3)
663 ; P8-LE-LABEL: memset2TailV1B8:
664 ; P8-LE: # %bb.0: # %entry
665 ; P8-LE-NEXT: addis 4, 2, .LCPI12_0@toc@ha
666 ; P8-LE-NEXT: addi 4, 4, .LCPI12_0@toc@l
667 ; P8-LE-NEXT: lxvd2x 0, 0, 4
668 ; P8-LE-NEXT: stfd 0, 16(3)
669 ; P8-LE-NEXT: stxvd2x 0, 0, 3
672 ; P9-LE-LABEL: memset2TailV1B8:
673 ; P9-LE: # %bb.0: # %entry
674 ; P9-LE-NEXT: xxspltib 0, 165
675 ; P9-LE-NEXT: stxv 0, 0(3)
676 ; P9-LE-NEXT: stfd 0, 16(3)
679 ; P10-LE-LABEL: memset2TailV1B8:
680 ; P10-LE: # %bb.0: # %entry
681 ; P10-LE-NEXT: xxspltib 0, 165
682 ; P10-LE-NEXT: stxv 0, 0(3)
683 ; P10-LE-NEXT: stfd 0, 16(3)
686 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 24, i1 false)
690 define dso_local void @memset2TailV1B7(ptr nocapture noundef writeonly %p) local_unnamed_addr {
691 ; P8-BE-LABEL: memset2TailV1B7:
692 ; P8-BE: # %bb.0: # %entry
693 ; P8-BE-NEXT: ld 4, L..C4(2) # %const.0
694 ; P8-BE-NEXT: lxvw4x 0, 0, 4
695 ; P8-BE-NEXT: stfd 0, 15(3)
696 ; P8-BE-NEXT: stxvw4x 0, 0, 3
699 ; P9-BE-LABEL: memset2TailV1B7:
700 ; P9-BE: # %bb.0: # %entry
701 ; P9-BE-NEXT: xxspltib 0, 165
702 ; P9-BE-NEXT: stfd 0, 15(3)
703 ; P9-BE-NEXT: stxv 0, 0(3)
706 ; P10-BE-LABEL: memset2TailV1B7:
707 ; P10-BE: # %bb.0: # %entry
708 ; P10-BE-NEXT: xxspltib 0, 165
709 ; P10-BE-NEXT: stfd 0, 15(3)
710 ; P10-BE-NEXT: stxv 0, 0(3)
713 ; P8-LE-LABEL: memset2TailV1B7:
714 ; P8-LE: # %bb.0: # %entry
715 ; P8-LE-NEXT: addis 4, 2, .LCPI13_0@toc@ha
716 ; P8-LE-NEXT: addi 4, 4, .LCPI13_0@toc@l
717 ; P8-LE-NEXT: lxvd2x 0, 0, 4
718 ; P8-LE-NEXT: stfd 0, 15(3)
719 ; P8-LE-NEXT: stxvd2x 0, 0, 3
722 ; P9-LE-LABEL: memset2TailV1B7:
723 ; P9-LE: # %bb.0: # %entry
724 ; P9-LE-NEXT: xxspltib 0, 165
725 ; P9-LE-NEXT: stfd 0, 15(3)
726 ; P9-LE-NEXT: stxv 0, 0(3)
729 ; P10-LE-LABEL: memset2TailV1B7:
730 ; P10-LE: # %bb.0: # %entry
731 ; P10-LE-NEXT: xxspltib 0, 165
732 ; P10-LE-NEXT: stfd 0, 15(3)
733 ; P10-LE-NEXT: stxv 0, 0(3)
736 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 23, i1 false)
740 define dso_local void @memset2TailV1B4(ptr nocapture noundef writeonly %p) local_unnamed_addr {
741 ; P8-BE-LABEL: memset2TailV1B4:
742 ; P8-BE: # %bb.0: # %entry
743 ; P8-BE-NEXT: ld 4, L..C5(2) # %const.0
744 ; P8-BE-NEXT: lxvw4x 0, 0, 4
745 ; P8-BE-NEXT: li 4, 16
746 ; P8-BE-NEXT: stfiwx 0, 3, 4
747 ; P8-BE-NEXT: stxvw4x 0, 0, 3
750 ; P9-BE-LABEL: memset2TailV1B4:
751 ; P9-BE: # %bb.0: # %entry
752 ; P9-BE-NEXT: xxspltib 0, 165
753 ; P9-BE-NEXT: li 4, 16
754 ; P9-BE-NEXT: stfiwx 0, 3, 4
755 ; P9-BE-NEXT: stxv 0, 0(3)
758 ; P10-BE-LABEL: memset2TailV1B4:
759 ; P10-BE: # %bb.0: # %entry
760 ; P10-BE-NEXT: xxspltib 0, 165
761 ; P10-BE-NEXT: li 4, 16
762 ; P10-BE-NEXT: stfiwx 0, 3, 4
763 ; P10-BE-NEXT: stxv 0, 0(3)
766 ; P8-LE-LABEL: memset2TailV1B4:
767 ; P8-LE: # %bb.0: # %entry
768 ; P8-LE-NEXT: addis 4, 2, .LCPI14_0@toc@ha
769 ; P8-LE-NEXT: addi 4, 4, .LCPI14_0@toc@l
770 ; P8-LE-NEXT: lxvd2x 0, 0, 4
771 ; P8-LE-NEXT: li 4, 16
772 ; P8-LE-NEXT: stfiwx 0, 3, 4
773 ; P8-LE-NEXT: stxvd2x 0, 0, 3
776 ; P9-LE-LABEL: memset2TailV1B4:
777 ; P9-LE: # %bb.0: # %entry
778 ; P9-LE-NEXT: xxspltib 0, 165
779 ; P9-LE-NEXT: li 4, 16
780 ; P9-LE-NEXT: stfiwx 0, 3, 4
781 ; P9-LE-NEXT: stxv 0, 0(3)
784 ; P10-LE-LABEL: memset2TailV1B4:
785 ; P10-LE: # %bb.0: # %entry
786 ; P10-LE-NEXT: xxspltib 0, 165
787 ; P10-LE-NEXT: li 4, 16
788 ; P10-LE-NEXT: stfiwx 0, 3, 4
789 ; P10-LE-NEXT: stxv 0, 0(3)
792 tail call void @llvm.memset.p0.i32(ptr %p, i8 165, i32 20, i1 false)
796 define dso_local void @memset2TailV1B3(ptr nocapture noundef writeonly %p) local_unnamed_addr {
797 ; P8-BE-LABEL: memset2TailV1B3:
798 ; P8-BE: # %bb.0: # %entry
799 ; P8-BE-NEXT: ld 4, L..C6(2) # %const.0
800 ; P8-BE-NEXT: lxvw4x 0, 0, 4
801 ; P8-BE-NEXT: li 4, 15
802 ; P8-BE-NEXT: stfiwx 0, 3, 4
803 ; P8-BE-NEXT: stxvw4x 0, 0, 3
806 ; P9-BE-LABEL: memset2TailV1B3:
807 ; P9-BE: # %bb.0: # %entry
808 ; P9-BE-NEXT: xxspltib 0, 165
809 ; P9-BE-NEXT: li 4, 15
810 ; P9-BE-NEXT: stfiwx 0, 3, 4
811 ; P9-BE-NEXT: stxv 0, 0(3)
814 ; P10-BE-LABEL: memset2TailV1B3:
815 ; P10-BE: # %bb.0: # %entry
816 ; P10-BE-NEXT: xxspltib 0, 165
817 ; P10-BE-NEXT: li 4, 15
818 ; P10-BE-NEXT: stfiwx 0, 3, 4
819 ; P10-BE-NEXT: stxv 0, 0(3)
822 ; P8-LE-LABEL: memset2TailV1B3:
823 ; P8-LE: # %bb.0: # %entry
824 ; P8-LE-NEXT: addis 4, 2, .LCPI15_0@toc@ha
825 ; P8-LE-NEXT: addi 4, 4, .LCPI15_0@toc@l
826 ; P8-LE-NEXT: lxvd2x 0, 0, 4
827 ; P8-LE-NEXT: li 4, 15
828 ; P8-LE-NEXT: stfiwx 0, 3, 4
829 ; P8-LE-NEXT: stxvd2x 0, 0, 3
832 ; P9-LE-LABEL: memset2TailV1B3:
833 ; P9-LE: # %bb.0: # %entry
834 ; P9-LE-NEXT: xxspltib 0, 165
835 ; P9-LE-NEXT: li 4, 15
836 ; P9-LE-NEXT: stfiwx 0, 3, 4
837 ; P9-LE-NEXT: stxv 0, 0(3)
840 ; P10-LE-LABEL: memset2TailV1B3:
841 ; P10-LE: # %bb.0: # %entry
842 ; P10-LE-NEXT: xxspltib 0, 165
843 ; P10-LE-NEXT: li 4, 15
844 ; P10-LE-NEXT: stfiwx 0, 3, 4
845 ; P10-LE-NEXT: stxv 0, 0(3)
848 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 19, i1 false)
852 define dso_local void @memset2TailV1B2(ptr nocapture noundef writeonly %p) local_unnamed_addr {
853 ; P8-BE-LABEL: memset2TailV1B2:
854 ; P8-BE: # %bb.0: # %entry
855 ; P8-BE-NEXT: li 4, -23131
856 ; P8-BE-NEXT: sth 4, 16(3)
857 ; P8-BE-NEXT: ld 4, L..C7(2) # %const.0
858 ; P8-BE-NEXT: lxvw4x 0, 0, 4
859 ; P8-BE-NEXT: stxvw4x 0, 0, 3
862 ; P9-BE-LABEL: memset2TailV1B2:
863 ; P9-BE: # %bb.0: # %entry
864 ; P9-BE-NEXT: li 4, -23131
865 ; P9-BE-NEXT: sth 4, 16(3)
866 ; P9-BE-NEXT: xxspltib 0, 165
867 ; P9-BE-NEXT: stxv 0, 0(3)
870 ; P10-BE-LABEL: memset2TailV1B2:
871 ; P10-BE: # %bb.0: # %entry
872 ; P10-BE-NEXT: li 4, -23131
873 ; P10-BE-NEXT: sth 4, 16(3)
874 ; P10-BE-NEXT: xxspltib 0, 165
875 ; P10-BE-NEXT: stxv 0, 0(3)
878 ; P8-LE-LABEL: memset2TailV1B2:
879 ; P8-LE: # %bb.0: # %entry
880 ; P8-LE-NEXT: li 4, -23131
881 ; P8-LE-NEXT: sth 4, 16(3)
882 ; P8-LE-NEXT: addis 4, 2, .LCPI16_0@toc@ha
883 ; P8-LE-NEXT: addi 4, 4, .LCPI16_0@toc@l
884 ; P8-LE-NEXT: lxvd2x 0, 0, 4
885 ; P8-LE-NEXT: stxvd2x 0, 0, 3
888 ; P9-LE-LABEL: memset2TailV1B2:
889 ; P9-LE: # %bb.0: # %entry
890 ; P9-LE-NEXT: li 4, -23131
891 ; P9-LE-NEXT: sth 4, 16(3)
892 ; P9-LE-NEXT: xxspltib 0, 165
893 ; P9-LE-NEXT: stxv 0, 0(3)
896 ; P10-LE-LABEL: memset2TailV1B2:
897 ; P10-LE: # %bb.0: # %entry
898 ; P10-LE-NEXT: li 4, -23131
899 ; P10-LE-NEXT: sth 4, 16(3)
900 ; P10-LE-NEXT: xxspltib 0, 165
901 ; P10-LE-NEXT: stxv 0, 0(3)
904 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 18, i1 false)
908 define dso_local void @memset2TailV1B1(ptr nocapture noundef writeonly %p) local_unnamed_addr {
909 ; P8-BE-LABEL: memset2TailV1B1:
910 ; P8-BE: # %bb.0: # %entry
911 ; P8-BE-NEXT: li 4, -91
912 ; P8-BE-NEXT: stb 4, 16(3)
913 ; P8-BE-NEXT: ld 4, L..C8(2) # %const.0
914 ; P8-BE-NEXT: lxvw4x 0, 0, 4
915 ; P8-BE-NEXT: stxvw4x 0, 0, 3
918 ; P9-BE-LABEL: memset2TailV1B1:
919 ; P9-BE: # %bb.0: # %entry
920 ; P9-BE-NEXT: li 4, -91
921 ; P9-BE-NEXT: stb 4, 16(3)
922 ; P9-BE-NEXT: xxspltib 0, 165
923 ; P9-BE-NEXT: stxv 0, 0(3)
926 ; P10-BE-LABEL: memset2TailV1B1:
927 ; P10-BE: # %bb.0: # %entry
928 ; P10-BE-NEXT: li 4, -91
929 ; P10-BE-NEXT: stb 4, 16(3)
930 ; P10-BE-NEXT: xxspltib 0, 165
931 ; P10-BE-NEXT: stxv 0, 0(3)
934 ; P8-LE-LABEL: memset2TailV1B1:
935 ; P8-LE: # %bb.0: # %entry
936 ; P8-LE-NEXT: li 4, -91
937 ; P8-LE-NEXT: stb 4, 16(3)
938 ; P8-LE-NEXT: addis 4, 2, .LCPI17_0@toc@ha
939 ; P8-LE-NEXT: addi 4, 4, .LCPI17_0@toc@l
940 ; P8-LE-NEXT: lxvd2x 0, 0, 4
941 ; P8-LE-NEXT: stxvd2x 0, 0, 3
944 ; P9-LE-LABEL: memset2TailV1B1:
945 ; P9-LE: # %bb.0: # %entry
946 ; P9-LE-NEXT: li 4, -91
947 ; P9-LE-NEXT: stb 4, 16(3)
948 ; P9-LE-NEXT: xxspltib 0, 165
949 ; P9-LE-NEXT: stxv 0, 0(3)
952 ; P10-LE-LABEL: memset2TailV1B1:
953 ; P10-LE: # %bb.0: # %entry
954 ; P10-LE-NEXT: li 4, -91
955 ; P10-LE-NEXT: stb 4, 16(3)
956 ; P10-LE-NEXT: xxspltib 0, 165
957 ; P10-LE-NEXT: stxv 0, 0(3)
960 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 17, i1 false)
964 define dso_local void @memsetTailV0B15(ptr nocapture noundef writeonly %p) local_unnamed_addr {
965 ; P8-BE-LABEL: memsetTailV0B15:
966 ; P8-BE: # %bb.0: # %entry
967 ; P8-BE-NEXT: lis 4, 3855
968 ; P8-BE-NEXT: li 5, 7
969 ; P8-BE-NEXT: ori 4, 4, 3855
970 ; P8-BE-NEXT: rldimi 4, 4, 32, 0
971 ; P8-BE-NEXT: stdx 4, 3, 5
972 ; P8-BE-NEXT: std 4, 0(3)
975 ; P9-BE-LABEL: memsetTailV0B15:
976 ; P9-BE: # %bb.0: # %entry
977 ; P9-BE-NEXT: lis 4, 3855
978 ; P9-BE-NEXT: li 5, 7
979 ; P9-BE-NEXT: ori 4, 4, 3855
980 ; P9-BE-NEXT: rldimi 4, 4, 32, 0
981 ; P9-BE-NEXT: stdx 4, 3, 5
982 ; P9-BE-NEXT: std 4, 0(3)
985 ; P10-BE-LABEL: memsetTailV0B15:
986 ; P10-BE: # %bb.0: # %entry
987 ; P10-BE-NEXT: pli 4, 252645135
988 ; P10-BE-NEXT: rldimi 4, 4, 32, 0
989 ; P10-BE-NEXT: pstd 4, 7(3), 0
990 ; P10-BE-NEXT: std 4, 0(3)
993 ; P8-LE-LABEL: memsetTailV0B15:
994 ; P8-LE: # %bb.0: # %entry
995 ; P8-LE-NEXT: lis 4, 3855
996 ; P8-LE-NEXT: li 5, 7
997 ; P8-LE-NEXT: ori 4, 4, 3855
998 ; P8-LE-NEXT: rldimi 4, 4, 32, 0
999 ; P8-LE-NEXT: stdx 4, 3, 5
1000 ; P8-LE-NEXT: std 4, 0(3)
1003 ; P9-LE-LABEL: memsetTailV0B15:
1004 ; P9-LE: # %bb.0: # %entry
1005 ; P9-LE-NEXT: lis 4, 3855
1006 ; P9-LE-NEXT: li 5, 7
1007 ; P9-LE-NEXT: ori 4, 4, 3855
1008 ; P9-LE-NEXT: rldimi 4, 4, 32, 0
1009 ; P9-LE-NEXT: stdx 4, 3, 5
1010 ; P9-LE-NEXT: std 4, 0(3)
1013 ; P10-LE-LABEL: memsetTailV0B15:
1014 ; P10-LE: # %bb.0: # %entry
1015 ; P10-LE-NEXT: pli 4, 252645135
1016 ; P10-LE-NEXT: rldimi 4, 4, 32, 0
1017 ; P10-LE-NEXT: pstd 4, 7(3), 0
1018 ; P10-LE-NEXT: std 4, 0(3)
1021 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 15, i1 false)
1025 define dso_local void @memsetTailV0B12(ptr nocapture noundef writeonly %p) local_unnamed_addr {
1026 ; P8-BE-LABEL: memsetTailV0B12:
1027 ; P8-BE: # %bb.0: # %entry
1028 ; P8-BE-NEXT: lis 4, 3855
1029 ; P8-BE-NEXT: ori 4, 4, 3855
1030 ; P8-BE-NEXT: rldimi 4, 4, 32, 0
1031 ; P8-BE-NEXT: stw 4, 8(3)
1032 ; P8-BE-NEXT: std 4, 0(3)
1035 ; P9-BE-LABEL: memsetTailV0B12:
1036 ; P9-BE: # %bb.0: # %entry
1037 ; P9-BE-NEXT: lis 4, 3855
1038 ; P9-BE-NEXT: ori 4, 4, 3855
1039 ; P9-BE-NEXT: rldimi 4, 4, 32, 0
1040 ; P9-BE-NEXT: stw 4, 8(3)
1041 ; P9-BE-NEXT: std 4, 0(3)
1044 ; P10-BE-LABEL: memsetTailV0B12:
1045 ; P10-BE: # %bb.0: # %entry
1046 ; P10-BE-NEXT: pli 4, 252645135
1047 ; P10-BE-NEXT: rldimi 4, 4, 32, 0
1048 ; P10-BE-NEXT: stw 4, 8(3)
1049 ; P10-BE-NEXT: std 4, 0(3)
1052 ; P8-LE-LABEL: memsetTailV0B12:
1053 ; P8-LE: # %bb.0: # %entry
1054 ; P8-LE-NEXT: lis 4, 3855
1055 ; P8-LE-NEXT: ori 4, 4, 3855
1056 ; P8-LE-NEXT: rldimi 4, 4, 32, 0
1057 ; P8-LE-NEXT: stw 4, 8(3)
1058 ; P8-LE-NEXT: std 4, 0(3)
1061 ; P9-LE-LABEL: memsetTailV0B12:
1062 ; P9-LE: # %bb.0: # %entry
1063 ; P9-LE-NEXT: lis 4, 3855
1064 ; P9-LE-NEXT: ori 4, 4, 3855
1065 ; P9-LE-NEXT: rldimi 4, 4, 32, 0
1066 ; P9-LE-NEXT: stw 4, 8(3)
1067 ; P9-LE-NEXT: std 4, 0(3)
1070 ; P10-LE-LABEL: memsetTailV0B12:
1071 ; P10-LE: # %bb.0: # %entry
1072 ; P10-LE-NEXT: pli 4, 252645135
1073 ; P10-LE-NEXT: rldimi 4, 4, 32, 0
1074 ; P10-LE-NEXT: stw 4, 8(3)
1075 ; P10-LE-NEXT: std 4, 0(3)
1078 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 12, i1 false)
1082 define dso_local void @memsetTailV0B9(ptr nocapture noundef writeonly %p) local_unnamed_addr {
1083 ; P8-BE-LABEL: memsetTailV0B9:
1084 ; P8-BE: # %bb.0: # %entry
1085 ; P8-BE-NEXT: li 4, 15
1086 ; P8-BE-NEXT: stb 4, 8(3)
1087 ; P8-BE-NEXT: lis 4, 3855
1088 ; P8-BE-NEXT: ori 4, 4, 3855
1089 ; P8-BE-NEXT: rldimi 4, 4, 32, 0
1090 ; P8-BE-NEXT: std 4, 0(3)
1093 ; P9-BE-LABEL: memsetTailV0B9:
1094 ; P9-BE: # %bb.0: # %entry
1095 ; P9-BE-NEXT: li 4, 15
1096 ; P9-BE-NEXT: stb 4, 8(3)
1097 ; P9-BE-NEXT: lis 4, 3855
1098 ; P9-BE-NEXT: ori 4, 4, 3855
1099 ; P9-BE-NEXT: rldimi 4, 4, 32, 0
1100 ; P9-BE-NEXT: std 4, 0(3)
1103 ; P10-BE-LABEL: memsetTailV0B9:
1104 ; P10-BE: # %bb.0: # %entry
1105 ; P10-BE-NEXT: li 4, 15
1106 ; P10-BE-NEXT: stb 4, 8(3)
1107 ; P10-BE-NEXT: pli 4, 252645135
1108 ; P10-BE-NEXT: rldimi 4, 4, 32, 0
1109 ; P10-BE-NEXT: std 4, 0(3)
1112 ; P8-LE-LABEL: memsetTailV0B9:
1113 ; P8-LE: # %bb.0: # %entry
1114 ; P8-LE-NEXT: li 4, 15
1115 ; P8-LE-NEXT: stb 4, 8(3)
1116 ; P8-LE-NEXT: lis 4, 3855
1117 ; P8-LE-NEXT: ori 4, 4, 3855
1118 ; P8-LE-NEXT: rldimi 4, 4, 32, 0
1119 ; P8-LE-NEXT: std 4, 0(3)
1122 ; P9-LE-LABEL: memsetTailV0B9:
1123 ; P9-LE: # %bb.0: # %entry
1124 ; P9-LE-NEXT: li 4, 15
1125 ; P9-LE-NEXT: stb 4, 8(3)
1126 ; P9-LE-NEXT: lis 4, 3855
1127 ; P9-LE-NEXT: ori 4, 4, 3855
1128 ; P9-LE-NEXT: rldimi 4, 4, 32, 0
1129 ; P9-LE-NEXT: std 4, 0(3)
1132 ; P10-LE-LABEL: memsetTailV0B9:
1133 ; P10-LE: # %bb.0: # %entry
1134 ; P10-LE-NEXT: li 4, 15
1135 ; P10-LE-NEXT: stb 4, 8(3)
1136 ; P10-LE-NEXT: pli 4, 252645135
1137 ; P10-LE-NEXT: rldimi 4, 4, 32, 0
1138 ; P10-LE-NEXT: std 4, 0(3)
1141 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 9, i1 false)
1145 define dso_local void @memsetTailV0B8(ptr nocapture noundef writeonly %p) local_unnamed_addr {
1146 ; P8-BE-LABEL: memsetTailV0B8:
1147 ; P8-BE: # %bb.0: # %entry
1148 ; P8-BE-NEXT: lis 4, 3855
1149 ; P8-BE-NEXT: ori 4, 4, 3855
1150 ; P8-BE-NEXT: rldimi 4, 4, 32, 0
1151 ; P8-BE-NEXT: std 4, 0(3)
1154 ; P9-BE-LABEL: memsetTailV0B8:
1155 ; P9-BE: # %bb.0: # %entry
1156 ; P9-BE-NEXT: lis 4, 3855
1157 ; P9-BE-NEXT: ori 4, 4, 3855
1158 ; P9-BE-NEXT: rldimi 4, 4, 32, 0
1159 ; P9-BE-NEXT: std 4, 0(3)
1162 ; P10-BE-LABEL: memsetTailV0B8:
1163 ; P10-BE: # %bb.0: # %entry
1164 ; P10-BE-NEXT: pli 4, 252645135
1165 ; P10-BE-NEXT: rldimi 4, 4, 32, 0
1166 ; P10-BE-NEXT: std 4, 0(3)
1169 ; P8-LE-LABEL: memsetTailV0B8:
1170 ; P8-LE: # %bb.0: # %entry
1171 ; P8-LE-NEXT: lis 4, 3855
1172 ; P8-LE-NEXT: ori 4, 4, 3855
1173 ; P8-LE-NEXT: rldimi 4, 4, 32, 0
1174 ; P8-LE-NEXT: std 4, 0(3)
1177 ; P9-LE-LABEL: memsetTailV0B8:
1178 ; P9-LE: # %bb.0: # %entry
1179 ; P9-LE-NEXT: lis 4, 3855
1180 ; P9-LE-NEXT: ori 4, 4, 3855
1181 ; P9-LE-NEXT: rldimi 4, 4, 32, 0
1182 ; P9-LE-NEXT: std 4, 0(3)
1185 ; P10-LE-LABEL: memsetTailV0B8:
1186 ; P10-LE: # %bb.0: # %entry
1187 ; P10-LE-NEXT: pli 4, 252645135
1188 ; P10-LE-NEXT: rldimi 4, 4, 32, 0
1189 ; P10-LE-NEXT: std 4, 0(3)
1192 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 8, i1 false)
1196 define dso_local void @memsetTailV0B7(ptr nocapture noundef writeonly %p) local_unnamed_addr {
1197 ; P8-BE-LABEL: memsetTailV0B7:
1198 ; P8-BE: # %bb.0: # %entry
1199 ; P8-BE-NEXT: lis 4, 3855
1200 ; P8-BE-NEXT: ori 4, 4, 3855
1201 ; P8-BE-NEXT: stw 4, 3(3)
1202 ; P8-BE-NEXT: stw 4, 0(3)
1205 ; P9-BE-LABEL: memsetTailV0B7:
1206 ; P9-BE: # %bb.0: # %entry
1207 ; P9-BE-NEXT: lis 4, 3855
1208 ; P9-BE-NEXT: ori 4, 4, 3855
1209 ; P9-BE-NEXT: stw 4, 3(3)
1210 ; P9-BE-NEXT: stw 4, 0(3)
1213 ; P10-BE-LABEL: memsetTailV0B7:
1214 ; P10-BE: # %bb.0: # %entry
1215 ; P10-BE-NEXT: pli 4, 252645135
1216 ; P10-BE-NEXT: stw 4, 3(3)
1217 ; P10-BE-NEXT: stw 4, 0(3)
1220 ; P8-LE-LABEL: memsetTailV0B7:
1221 ; P8-LE: # %bb.0: # %entry
1222 ; P8-LE-NEXT: lis 4, 3855
1223 ; P8-LE-NEXT: ori 4, 4, 3855
1224 ; P8-LE-NEXT: stw 4, 3(3)
1225 ; P8-LE-NEXT: stw 4, 0(3)
1228 ; P9-LE-LABEL: memsetTailV0B7:
1229 ; P9-LE: # %bb.0: # %entry
1230 ; P9-LE-NEXT: lis 4, 3855
1231 ; P9-LE-NEXT: ori 4, 4, 3855
1232 ; P9-LE-NEXT: stw 4, 3(3)
1233 ; P9-LE-NEXT: stw 4, 0(3)
1236 ; P10-LE-LABEL: memsetTailV0B7:
1237 ; P10-LE: # %bb.0: # %entry
1238 ; P10-LE-NEXT: pli 4, 252645135
1239 ; P10-LE-NEXT: stw 4, 3(3)
1240 ; P10-LE-NEXT: stw 4, 0(3)
1243 tail call void @llvm.memset.p0.i64(ptr %p, i8 15, i64 7, i1 false)
1247 define dso_local void @memsetTailV0B5(ptr nocapture noundef writeonly %p) local_unnamed_addr {
1248 ; P8-BE-LABEL: memsetTailV0B5:
1249 ; P8-BE: # %bb.0: # %entry
1250 ; P8-BE-NEXT: li 4, 15
1251 ; P8-BE-NEXT: stb 4, 4(3)
1252 ; P8-BE-NEXT: lis 4, 3855
1253 ; P8-BE-NEXT: ori 4, 4, 3855
1254 ; P8-BE-NEXT: stw 4, 0(3)
1257 ; P9-BE-LABEL: memsetTailV0B5:
1258 ; P9-BE: # %bb.0: # %entry
1259 ; P9-BE-NEXT: li 4, 15
1260 ; P9-BE-NEXT: stb 4, 4(3)
1261 ; P9-BE-NEXT: lis 4, 3855
1262 ; P9-BE-NEXT: ori 4, 4, 3855
1263 ; P9-BE-NEXT: stw 4, 0(3)
1266 ; P10-BE-LABEL: memsetTailV0B5:
1267 ; P10-BE: # %bb.0: # %entry
1268 ; P10-BE-NEXT: li 4, 15
1269 ; P10-BE-NEXT: stb 4, 4(3)
1270 ; P10-BE-NEXT: pli 4, 252645135
1271 ; P10-BE-NEXT: stw 4, 0(3)
1274 ; P8-LE-LABEL: memsetTailV0B5:
1275 ; P8-LE: # %bb.0: # %entry
1276 ; P8-LE-NEXT: li 4, 15
1277 ; P8-LE-NEXT: stb 4, 4(3)
1278 ; P8-LE-NEXT: lis 4, 3855
1279 ; P8-LE-NEXT: ori 4, 4, 3855
1280 ; P8-LE-NEXT: stw 4, 0(3)
1283 ; P9-LE-LABEL: memsetTailV0B5:
1284 ; P9-LE: # %bb.0: # %entry
1285 ; P9-LE-NEXT: li 4, 15
1286 ; P9-LE-NEXT: stb 4, 4(3)
1287 ; P9-LE-NEXT: lis 4, 3855
1288 ; P9-LE-NEXT: ori 4, 4, 3855
1289 ; P9-LE-NEXT: stw 4, 0(3)
1292 ; P10-LE-LABEL: memsetTailV0B5:
1293 ; P10-LE: # %bb.0: # %entry
1294 ; P10-LE-NEXT: li 4, 15
1295 ; P10-LE-NEXT: stb 4, 4(3)
1296 ; P10-LE-NEXT: pli 4, 252645135
1297 ; P10-LE-NEXT: stw 4, 0(3)
1300 tail call void @llvm.memset.p0.i32(ptr %p, i8 15, i32 5, i1 false)
1304 define dso_local void @memsetTailV0B4(ptr nocapture noundef writeonly %p) local_unnamed_addr {
1305 ; P8-BE-LABEL: memsetTailV0B4:
1306 ; P8-BE: # %bb.0: # %entry
1307 ; P8-BE-NEXT: lis 4, 3855
1308 ; P8-BE-NEXT: ori 4, 4, 3855
1309 ; P8-BE-NEXT: stw 4, 0(3)
1312 ; P9-BE-LABEL: memsetTailV0B4:
1313 ; P9-BE: # %bb.0: # %entry
1314 ; P9-BE-NEXT: lis 4, 3855
1315 ; P9-BE-NEXT: ori 4, 4, 3855
1316 ; P9-BE-NEXT: stw 4, 0(3)
1319 ; P10-BE-LABEL: memsetTailV0B4:
1320 ; P10-BE: # %bb.0: # %entry
1321 ; P10-BE-NEXT: pli 4, 252645135
1322 ; P10-BE-NEXT: stw 4, 0(3)
1325 ; P8-LE-LABEL: memsetTailV0B4:
1326 ; P8-LE: # %bb.0: # %entry
1327 ; P8-LE-NEXT: lis 4, 3855
1328 ; P8-LE-NEXT: ori 4, 4, 3855
1329 ; P8-LE-NEXT: stw 4, 0(3)
1332 ; P9-LE-LABEL: memsetTailV0B4:
1333 ; P9-LE: # %bb.0: # %entry
1334 ; P9-LE-NEXT: lis 4, 3855
1335 ; P9-LE-NEXT: ori 4, 4, 3855
1336 ; P9-LE-NEXT: stw 4, 0(3)
1339 ; P10-LE-LABEL: memsetTailV0B4:
1340 ; P10-LE: # %bb.0: # %entry
1341 ; P10-LE-NEXT: pli 4, 252645135
1342 ; P10-LE-NEXT: stw 4, 0(3)
1345 tail call void @llvm.memset.p0.i32(ptr %p, i8 15, i32 4, i1 false)
1349 define dso_local void @memsetTailV0B1(ptr nocapture noundef writeonly %p) local_unnamed_addr {
1350 ; P8-BE-LABEL: memsetTailV0B1:
1351 ; P8-BE: # %bb.0: # %entry
1352 ; P8-BE-NEXT: li 4, -91
1353 ; P8-BE-NEXT: stb 4, 0(3)
1356 ; P9-BE-LABEL: memsetTailV0B1:
1357 ; P9-BE: # %bb.0: # %entry
1358 ; P9-BE-NEXT: li 4, -91
1359 ; P9-BE-NEXT: stb 4, 0(3)
1362 ; P10-BE-LABEL: memsetTailV0B1:
1363 ; P10-BE: # %bb.0: # %entry
1364 ; P10-BE-NEXT: li 4, -91
1365 ; P10-BE-NEXT: stb 4, 0(3)
1368 ; P8-LE-LABEL: memsetTailV0B1:
1369 ; P8-LE: # %bb.0: # %entry
1370 ; P8-LE-NEXT: li 4, -91
1371 ; P8-LE-NEXT: stb 4, 0(3)
1374 ; P9-LE-LABEL: memsetTailV0B1:
1375 ; P9-LE: # %bb.0: # %entry
1376 ; P9-LE-NEXT: li 4, -91
1377 ; P9-LE-NEXT: stb 4, 0(3)
1380 ; P10-LE-LABEL: memsetTailV0B1:
1381 ; P10-LE: # %bb.0: # %entry
1382 ; P10-LE-NEXT: li 4, -91
1383 ; P10-LE-NEXT: stb 4, 0(3)
1386 tail call void @llvm.memset.p0.i64(ptr %p, i8 165, i64 1, i1 false)
1390 declare void @llvm.memset.p0.i32(ptr nocapture writeonly, i8, i32, i1 immarg)
1391 declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg)