[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / sve-copy-zprpair.mir
bloba295d4eb7336b4f4333cd200b070b644b20bb224
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve -run-pass=postrapseudos -simplify-mir -verify-machineinstrs %s -o - | FileCheck %s
4 ---
5 name:            copy_zpr2
6 alignment:       4
7 tracksRegLiveness: true
8 liveins:
9   - { reg: '$z0_z1' }
10 frameInfo:
11   maxCallFrameSize: 0
12 body:             |
13   bb.0:
14     liveins: $z0_z1
15     ; CHECK-LABEL: name: copy_zpr2
16     ; CHECK: liveins: $z0_z1
17     ; CHECK: $z2 = ORR_ZZZ $z1, $z1
18     ; CHECK: $z1 = ORR_ZZZ $z0, $z0
19     ; CHECK: $z0 = ORR_ZZZ $z1, $z1
20     ; CHECK: $z1 = ORR_ZZZ $z2, $z2
21     ; CHECK: RET_ReallyLR
22     $z1_z2 = COPY $z0_z1
23     $z0_z1 = COPY $z1_z2
24     RET_ReallyLR
26 ...
27 ---
28 name:            copy_zpr2strided
29 alignment:       4
30 tracksRegLiveness: true
31 liveins:
32   - { reg: '$z0_z1' }
33 frameInfo:
34   maxCallFrameSize: 0
35 body:             |
36   bb.0:
37     liveins: $z0_z1
38     ; CHECK-LABEL: name: copy_zpr2strided
39     ; CHECK: liveins: $z0_z1
40     ; CHECK: $z8 = ORR_ZZZ $z1, $z1
41     ; CHECK: $z0 = ORR_ZZZ $z0, $z0
42     ; CHECK: $z1 = ORR_ZZZ $z8, $z8
43     ; CHECK: $z0 = ORR_ZZZ $z0, $z0
44     ; CHECK: RET_ReallyLR
45     $z0_z8 = COPY $z0_z1
46     $z0_z1 = COPY $z0_z8
47     RET_ReallyLR
49 ...
50 ---
51 name:            copy_zpr3
52 alignment:       4
53 tracksRegLiveness: true
54 liveins:
55   - { reg: '$z0_z1_z2' }
56 frameInfo:
57   maxCallFrameSize: 0
58 body:             |
59   bb.0:
60     liveins: $z0_z1_z2
61     ; CHECK-LABEL: name: copy_zpr3
62     ; CHECK: liveins: $z0_z1_z2
63     ; CHECK: $z3 = ORR_ZZZ $z2, $z2
64     ; CHECK: $z2 = ORR_ZZZ $z1, $z1
65     ; CHECK: $z1 = ORR_ZZZ $z0, $z0
66     ; CHECK: $z0 = ORR_ZZZ $z1, $z1
67     ; CHECK: $z1 = ORR_ZZZ $z2, $z2
68     ; CHECK: $z2 = ORR_ZZZ $z3, $z3
69     ; CHECK: RET_ReallyLR
70     $z1_z2_z3 = COPY $z0_z1_z2
71     $z0_z1_z2 = COPY $z1_z2_z3
72     RET_ReallyLR
74 ...
75 ---
76 name:            copy_zpr4
77 alignment:       4
78 tracksRegLiveness: true
79 liveins:
80   - { reg: '$z0_z1_z2_z3' }
81 frameInfo:
82   maxCallFrameSize: 0
83 body:             |
84   bb.0:
85     liveins: $z0_z1_z2_z3
86     ; CHECK-LABEL: name: copy_zpr4
87     ; CHECK: liveins: $z0_z1_z2_z3
88     ; CHECK: $z4 = ORR_ZZZ $z3, $z3
89     ; CHECK: $z3 = ORR_ZZZ $z2, $z2
90     ; CHECK: $z2 = ORR_ZZZ $z1, $z1
91     ; CHECK: $z1 = ORR_ZZZ $z0, $z0
92     ; CHECK: $z0 = ORR_ZZZ $z1, $z1
93     ; CHECK: $z1 = ORR_ZZZ $z2, $z2
94     ; CHECK: $z2 = ORR_ZZZ $z3, $z3
95     ; CHECK: $z3 = ORR_ZZZ $z4, $z4
96     ; CHECK: RET_ReallyLR
97     $z1_z2_z3_z4 = COPY $z0_z1_z2_z3
98     $z0_z1_z2_z3 = COPY $z1_z2_z3_z4
99     RET_ReallyLR
103 name:            copy_zpr4strided
104 alignment:       4
105 tracksRegLiveness: true
106 liveins:
107   - { reg: '$z0_z1_z2_z3' }
108 frameInfo:
109   maxCallFrameSize: 0
110 body:             |
111   bb.0:
112     liveins: $z0_z1_z2_z3
113     ; CHECK-LABEL: name: copy_zpr4
114     ; CHECK: liveins: $z0_z1_z2_z3
115     ; CHECK: $z12 = ORR_ZZZ $z3, $z3
116     ; CHECK: $z8 = ORR_ZZZ $z2, $z2
117     ; CHECK: $z4 = ORR_ZZZ $z1, $z1
118     ; CHECK: $z0 = ORR_ZZZ $z0, $z0
119     ; CHECK: $z3 = ORR_ZZZ $z12, $z12
120     ; CHECK: $z2 = ORR_ZZZ $z8, $z8
121     ; CHECK: $z1 = ORR_ZZZ $z4, $z4
122     ; CHECK: $z0 = ORR_ZZZ $z0, $z0
123     ; CHECK: RET_ReallyLR
124     $z0_z4_z8_z12 = COPY $z0_z1_z2_z3
125     $z0_z1_z2_z3 = COPY $z0_z4_z8_z12
126     RET_ReallyLR