1- # NOTE: Assertions have been autogenerated by utils/update_llc_test_checks .py
1+ # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks .py UTC_ARGS: --version 5
22# RUN: llc -mtriple=aarch64--linux-gnu -mattr=+sve -run-pass=peephole-opt -verify-machineinstrs %s -o - | FileCheck %s
33
44# Test instruction sequences where PTEST is redundant and thus gets removed.
@@ -23,13 +23,17 @@ body: |
2323 bb.0:
2424 liveins: $p0, $z0, $z1
2525
26- ; Here we check the expected sequence with subsequent tests
27- ; just asserting there is no PTEST instruction.
28- ;
2926 ; CHECK-LABEL: name: cmpeq_nxv16i8
30- ; CHECK: %3:ppr = CMPEQ_PPzZZ_B %0, %1, %2, implicit-def $nzcv
31- ; CHECK-NEXT: %4:gpr32 = COPY $wzr
32- ; CHECK-NEXT: %5:gpr32 = CSINCWr %4, $wzr, 0, implicit $nzcv
27+ ; CHECK: liveins: $p0, $z0, $z1
28+ ; CHECK-NEXT: {{ $}}
29+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z1
30+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:zpr = COPY $z0
31+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr_3b = COPY $p0
32+ ; CHECK-NEXT: [[CMPEQ_PPzZZ_B:%[0-9]+]]:ppr = CMPEQ_PPzZZ_B [[COPY2]], [[COPY1]], [[COPY]], implicit-def $nzcv
33+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr32 = COPY $wzr
34+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY3]], $wzr, 0, implicit $nzcv
35+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
36+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
3337 %2:zpr = COPY $z1
3438 %1:zpr = COPY $z0
3539 %0:ppr_3b = COPY $p0
@@ -65,7 +69,17 @@ body: |
6569 liveins: $p0, $z0, $z1
6670
6771 ; CHECK-LABEL: name: cmpeq_nxv8i16
68- ; CHECK: PTEST
72+ ; CHECK: liveins: $p0, $z0, $z1
73+ ; CHECK-NEXT: {{ $}}
74+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z1
75+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:zpr = COPY $z0
76+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr_3b = COPY $p0
77+ ; CHECK-NEXT: [[CMPEQ_PPzZZ_H:%[0-9]+]]:ppr = CMPEQ_PPzZZ_H [[COPY2]], [[COPY1]], [[COPY]], implicit-def dead $nzcv
78+ ; CHECK-NEXT: PTEST_PP [[COPY2]], [[CMPEQ_PPzZZ_H]], implicit-def $nzcv
79+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr32 = COPY $wzr
80+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY3]], $wzr, 0, implicit $nzcv
81+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
82+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
6983 %2:zpr = COPY $z1
7084 %1:zpr = COPY $z0
7185 %0:ppr_3b = COPY $p0
@@ -101,7 +115,17 @@ body: |
101115 liveins: $p0, $z0, $z1
102116
103117 ; CHECK-LABEL: name: cmpeq_nxv4i32
104- ; CHECK: PTEST
118+ ; CHECK: liveins: $p0, $z0, $z1
119+ ; CHECK-NEXT: {{ $}}
120+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z1
121+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:zpr = COPY $z0
122+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr_3b = COPY $p0
123+ ; CHECK-NEXT: [[CMPEQ_PPzZZ_S:%[0-9]+]]:ppr = CMPEQ_PPzZZ_S [[COPY2]], [[COPY1]], [[COPY]], implicit-def dead $nzcv
124+ ; CHECK-NEXT: PTEST_PP [[COPY2]], [[CMPEQ_PPzZZ_S]], implicit-def $nzcv
125+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr32 = COPY $wzr
126+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY3]], $wzr, 0, implicit $nzcv
127+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
128+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
105129 %2:zpr = COPY $z1
106130 %1:zpr = COPY $z0
107131 %0:ppr_3b = COPY $p0
@@ -137,7 +161,17 @@ body: |
137161 liveins: $p0, $z0, $z1
138162
139163 ; CHECK-LABEL: name: cmpeq_nxv2i64
140- ; CHECK: PTEST
164+ ; CHECK: liveins: $p0, $z0, $z1
165+ ; CHECK-NEXT: {{ $}}
166+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z1
167+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:zpr = COPY $z0
168+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr_3b = COPY $p0
169+ ; CHECK-NEXT: [[CMPEQ_PPzZZ_D:%[0-9]+]]:ppr = CMPEQ_PPzZZ_D [[COPY2]], [[COPY1]], [[COPY]], implicit-def dead $nzcv
170+ ; CHECK-NEXT: PTEST_PP [[COPY2]], [[CMPEQ_PPzZZ_D]], implicit-def $nzcv
171+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr32 = COPY $wzr
172+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY3]], $wzr, 0, implicit $nzcv
173+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
174+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
141175 %2:zpr = COPY $z1
142176 %1:zpr = COPY $z0
143177 %0:ppr_3b = COPY $p0
@@ -170,7 +204,17 @@ body: |
170204 liveins: $p0, $z0
171205
172206 ; CHECK-LABEL: name: cmpeq_imm_nxv16i8
173- ; CHECK: PTEST
207+ ; CHECK: liveins: $p0, $z0
208+ ; CHECK-NEXT: {{ $}}
209+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z0
210+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:ppr_3b = COPY $p0
211+ ; CHECK-NEXT: [[CMPEQ_PPzZI_B:%[0-9]+]]:ppr = CMPEQ_PPzZI_B [[COPY1]], [[COPY]], 0, implicit-def dead $nzcv
212+ ; CHECK-NEXT: [[PTRUE_B:%[0-9]+]]:ppr = PTRUE_B 31, implicit $vg
213+ ; CHECK-NEXT: PTEST_PP killed [[PTRUE_B]], killed [[CMPEQ_PPzZI_B]], implicit-def $nzcv
214+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32 = COPY $wzr
215+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY2]], $wzr, 0, implicit $nzcv
216+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
217+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
174218 %1:zpr = COPY $z0
175219 %0:ppr_3b = COPY $p0
176220 %2:ppr = CMPEQ_PPzZI_B %0, %1, 0, implicit-def dead $nzcv
@@ -204,7 +248,16 @@ body: |
204248 liveins: $p0, $z0
205249
206250 ; CHECK-LABEL: name: cmpeq_imm_nxv8i16
207- ; CHECK: PTEST
251+ ; CHECK: liveins: $p0, $z0
252+ ; CHECK-NEXT: {{ $}}
253+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z0
254+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:ppr_3b = COPY $p0
255+ ; CHECK-NEXT: [[CMPEQ_PPzZI_H:%[0-9]+]]:ppr = CMPEQ_PPzZI_H [[COPY1]], [[COPY]], 0, implicit-def dead $nzcv
256+ ; CHECK-NEXT: PTEST_PP [[COPY1]], [[CMPEQ_PPzZI_H]], implicit-def $nzcv
257+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32 = COPY $wzr
258+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY2]], $wzr, 0, implicit $nzcv
259+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
260+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
208261 %1:zpr = COPY $z0
209262 %0:ppr_3b = COPY $p0
210263 %2:ppr = CMPEQ_PPzZI_H %0, %1, 0, implicit-def dead $nzcv
@@ -237,7 +290,16 @@ body: |
237290 liveins: $p0, $z0
238291
239292 ; CHECK-LABEL: name: cmpeq_imm_nxv4i32
240- ; CHECK: PTEST
293+ ; CHECK: liveins: $p0, $z0
294+ ; CHECK-NEXT: {{ $}}
295+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z0
296+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:ppr_3b = COPY $p0
297+ ; CHECK-NEXT: [[CMPEQ_PPzZI_S:%[0-9]+]]:ppr = CMPEQ_PPzZI_S [[COPY1]], [[COPY]], 0, implicit-def dead $nzcv
298+ ; CHECK-NEXT: PTEST_PP [[COPY1]], [[CMPEQ_PPzZI_S]], implicit-def $nzcv
299+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32 = COPY $wzr
300+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY2]], $wzr, 0, implicit $nzcv
301+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
302+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
241303 %1:zpr = COPY $z0
242304 %0:ppr_3b = COPY $p0
243305 %2:ppr = CMPEQ_PPzZI_S %0, %1, 0, implicit-def dead $nzcv
@@ -270,7 +332,16 @@ body: |
270332 liveins: $p0, $z0
271333
272334 ; CHECK-LABEL: name: cmpeq_imm_nxv2i64
273- ; CHECK: PTEST
335+ ; CHECK: liveins: $p0, $z0
336+ ; CHECK-NEXT: {{ $}}
337+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z0
338+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:ppr_3b = COPY $p0
339+ ; CHECK-NEXT: [[CMPEQ_PPzZI_D:%[0-9]+]]:ppr = CMPEQ_PPzZI_D [[COPY1]], [[COPY]], 0, implicit-def dead $nzcv
340+ ; CHECK-NEXT: PTEST_PP [[COPY1]], [[CMPEQ_PPzZI_D]], implicit-def $nzcv
341+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32 = COPY $wzr
342+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY2]], $wzr, 0, implicit $nzcv
343+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
344+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
274345 %1:zpr = COPY $z0
275346 %0:ppr_3b = COPY $p0
276347 %2:ppr = CMPEQ_PPzZI_D %0, %1, 0, implicit-def dead $nzcv
@@ -303,7 +374,16 @@ body: |
303374 liveins: $p0, $z0, $z1
304375
305376 ; CHECK-LABEL: name: cmpeq_wide_nxv16i8
306- ; CHECK-NOT: PTEST
377+ ; CHECK: liveins: $p0, $z0, $z1
378+ ; CHECK-NEXT: {{ $}}
379+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z1
380+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:zpr = COPY $z0
381+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr_3b = COPY $p0
382+ ; CHECK-NEXT: [[CMPEQ_WIDE_PPzZZ_B:%[0-9]+]]:ppr = CMPEQ_WIDE_PPzZZ_B [[COPY2]], [[COPY1]], [[COPY]], implicit-def $nzcv
383+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr32 = COPY $wzr
384+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY3]], $wzr, 0, implicit $nzcv
385+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
386+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
307387 %2:zpr = COPY $z1
308388 %1:zpr = COPY $z0
309389 %0:ppr_3b = COPY $p0
@@ -339,7 +419,17 @@ body: |
339419 liveins: $p0, $z0, $z1
340420
341421 ; CHECK-LABEL: name: cmpeq_wide_nxv8i16
342- ; CHECK: PTEST
422+ ; CHECK: liveins: $p0, $z0, $z1
423+ ; CHECK-NEXT: {{ $}}
424+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z1
425+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:zpr = COPY $z0
426+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr_3b = COPY $p0
427+ ; CHECK-NEXT: [[CMPEQ_WIDE_PPzZZ_H:%[0-9]+]]:ppr = CMPEQ_WIDE_PPzZZ_H [[COPY2]], [[COPY1]], [[COPY]], implicit-def dead $nzcv
428+ ; CHECK-NEXT: PTEST_PP [[COPY2]], [[CMPEQ_WIDE_PPzZZ_H]], implicit-def $nzcv
429+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr32 = COPY $wzr
430+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY3]], $wzr, 0, implicit $nzcv
431+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
432+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
343433 %2:zpr = COPY $z1
344434 %1:zpr = COPY $z0
345435 %0:ppr_3b = COPY $p0
@@ -375,7 +465,17 @@ body: |
375465 liveins: $p0, $z0, $z1
376466
377467 ; CHECK-LABEL: name: cmpeq_wide_nxv4i32
378- ; CHECK: PTEST
468+ ; CHECK: liveins: $p0, $z0, $z1
469+ ; CHECK-NEXT: {{ $}}
470+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z1
471+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:zpr = COPY $z0
472+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr_3b = COPY $p0
473+ ; CHECK-NEXT: [[CMPEQ_WIDE_PPzZZ_S:%[0-9]+]]:ppr = CMPEQ_WIDE_PPzZZ_S [[COPY2]], [[COPY1]], [[COPY]], implicit-def dead $nzcv
474+ ; CHECK-NEXT: PTEST_PP [[COPY2]], [[CMPEQ_WIDE_PPzZZ_S]], implicit-def $nzcv
475+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr32 = COPY $wzr
476+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY3]], $wzr, 0, implicit $nzcv
477+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
478+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
379479 %2:zpr = COPY $z1
380480 %1:zpr = COPY $z0
381481 %0:ppr_3b = COPY $p0
@@ -408,11 +508,17 @@ body: |
408508 liveins: $p0, $z0
409509
410510 ; CHECK-LABEL: name: cmpeq_imm_nxv16i8_ptest_not_all_active
411- ; CHECK: %2:ppr = CMPEQ_PPzZI_B %0, %1, 0, implicit-def dead $nzcv
412- ; CHECK-NEXT: %3:ppr = PTRUE_B 0, implicit $vg
413- ; CHECK-NEXT: PTEST_PP killed %3, killed %2, implicit-def $nzcv
414- ; CHECK-NEXT: %4:gpr32 = COPY $wzr
415- ; CHECK-NEXT: %5:gpr32 = CSINCWr %4, $wzr, 0, implicit $nzcv
511+ ; CHECK: liveins: $p0, $z0
512+ ; CHECK-NEXT: {{ $}}
513+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z0
514+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:ppr_3b = COPY $p0
515+ ; CHECK-NEXT: [[CMPEQ_PPzZI_B:%[0-9]+]]:ppr = CMPEQ_PPzZI_B [[COPY1]], [[COPY]], 0, implicit-def dead $nzcv
516+ ; CHECK-NEXT: [[PTRUE_B:%[0-9]+]]:ppr = PTRUE_B 0, implicit $vg
517+ ; CHECK-NEXT: PTEST_PP killed [[PTRUE_B]], killed [[CMPEQ_PPzZI_B]], implicit-def $nzcv
518+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32 = COPY $wzr
519+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY2]], $wzr, 0, implicit $nzcv
520+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
521+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
416522 %1:zpr = COPY $z0
417523 %0:ppr_3b = COPY $p0
418524 %2:ppr = CMPEQ_PPzZI_B %0, %1, 0, implicit-def dead $nzcv
@@ -445,11 +551,17 @@ body: |
445551 liveins: $p0, $z0
446552
447553 ; CHECK-LABEL: name: cmpeq_imm_nxv16i8_ptest_of_halfs
448- ; CHECK: %2:ppr = CMPEQ_PPzZI_B %0, %1, 0, implicit-def dead $nzcv
449- ; CHECK-NEXT: %3:ppr = PTRUE_H 31, implicit $vg
450- ; CHECK-NEXT: PTEST_PP killed %3, killed %2, implicit-def $nzcv
451- ; CHECK-NEXT: %4:gpr32 = COPY $wzr
452- ; CHECK-NEXT: %5:gpr32 = CSINCWr %4, $wzr, 0, implicit $nzcv
554+ ; CHECK: liveins: $p0, $z0
555+ ; CHECK-NEXT: {{ $}}
556+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z0
557+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:ppr_3b = COPY $p0
558+ ; CHECK-NEXT: [[CMPEQ_PPzZI_B:%[0-9]+]]:ppr = CMPEQ_PPzZI_B [[COPY1]], [[COPY]], 0, implicit-def dead $nzcv
559+ ; CHECK-NEXT: [[PTRUE_H:%[0-9]+]]:ppr = PTRUE_H 31, implicit $vg
560+ ; CHECK-NEXT: PTEST_PP killed [[PTRUE_H]], killed [[CMPEQ_PPzZI_B]], implicit-def $nzcv
561+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32 = COPY $wzr
562+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY2]], $wzr, 0, implicit $nzcv
563+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
564+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
453565 %1:zpr = COPY $z0
454566 %0:ppr_3b = COPY $p0
455567 %2:ppr = CMPEQ_PPzZI_B %0, %1, 0, implicit-def dead $nzcv
@@ -483,11 +595,17 @@ body: |
483595 liveins: $p0, $p1, $z0
484596
485597 ; CHECK-LABEL: name: cmpeq_imm_nxv16i8_ptest_with_unique_pg
486- ; CHECK: %2:ppr = CMPEQ_PPzZI_B %0, %1, 0, implicit-def dead $nzcv
487- ; CHECK-NEXT: %3:ppr = COPY $p1
488- ; CHECK-NEXT: PTEST_PP killed %3, killed %2, implicit-def $nzcv
489- ; CHECK-NEXT: %4:gpr32 = COPY $wzr
490- ; CHECK-NEXT: %5:gpr32 = CSINCWr %4, $wzr, 0, implicit $nzcv
598+ ; CHECK: liveins: $p0, $p1, $z0
599+ ; CHECK-NEXT: {{ $}}
600+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z0
601+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:ppr_3b = COPY $p0
602+ ; CHECK-NEXT: [[CMPEQ_PPzZI_B:%[0-9]+]]:ppr = CMPEQ_PPzZI_B [[COPY1]], [[COPY]], 0, implicit-def dead $nzcv
603+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr = COPY $p1
604+ ; CHECK-NEXT: PTEST_PP killed [[COPY2]], killed [[CMPEQ_PPzZI_B]], implicit-def $nzcv
605+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr32 = COPY $wzr
606+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY3]], $wzr, 0, implicit $nzcv
607+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
608+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
491609 %1:zpr = COPY $z0
492610 %0:ppr_3b = COPY $p0
493611 %2:ppr = CMPEQ_PPzZI_B %0, %1, 0, implicit-def dead $nzcv
@@ -521,7 +639,17 @@ body: |
521639 liveins: $p0, $z0, $z1
522640
523641 ; CHECK-LABEL: name: cmpeq_nxv16i8_ptest_with_matching_operands
524- ; CHECK-NOT: PTEST
642+ ; CHECK: liveins: $p0, $z0, $z1
643+ ; CHECK-NEXT: {{ $}}
644+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:zpr = COPY $z1
645+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:zpr = COPY $z0
646+ ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr_3b = COPY $p0
647+ ; CHECK-NEXT: [[CMPEQ_PPzZZ_B:%[0-9]+]]:ppr = CMPEQ_PPzZZ_B [[COPY2]], [[COPY1]], [[COPY]], implicit-def dead $nzcv
648+ ; CHECK-NEXT: PTEST_PP [[CMPEQ_PPzZZ_B]], killed [[CMPEQ_PPzZZ_B]], implicit-def $nzcv
649+ ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr32 = COPY $wzr
650+ ; CHECK-NEXT: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr [[COPY3]], $wzr, 0, implicit $nzcv
651+ ; CHECK-NEXT: $w0 = COPY [[CSINCWr]]
652+ ; CHECK-NEXT: RET_ReallyLR implicit $w0
525653 %2:zpr = COPY $z1
526654 %1:zpr = COPY $z0
527655 %0:ppr_3b = COPY $p0
@@ -533,5 +661,3 @@ body: |
533661 RET_ReallyLR implicit $w0
534662
535663 ...
536- # # NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
537- # CHECK: {{.*}}
0 commit comments