annotate llvm/test/CodeGen/AMDGPU/optimize-if-exec-masking.mir @ 206:f17a3b42b08b

Added tag before-12 for changeset b7591485f4cd
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 07 Jun 2021 21:25:57 +0900
parents 1d019706d866
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 # RUN: llc -march=amdgcn -verify-machineinstrs -run-pass si-optimize-exec-masking -o - %s | FileCheck %s
anatofuz
parents:
diff changeset
2
anatofuz
parents:
diff changeset
3 --- |
anatofuz
parents:
diff changeset
4 define amdgpu_kernel void @optimize_if_and_saveexec_xor(i32 %z, i32 %v) {
anatofuz
parents:
diff changeset
5 main_body:
anatofuz
parents:
diff changeset
6 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 if: ; preds = %main_body
anatofuz
parents:
diff changeset
9 %v.if = load volatile i32, i32 addrspace(1)* undef
anatofuz
parents:
diff changeset
10 br label %end
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 end: ; preds = %if, %main_body
anatofuz
parents:
diff changeset
13 ret void
anatofuz
parents:
diff changeset
14 }
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 define amdgpu_kernel void @optimize_if_and_saveexec(i32 %z, i32 %v) {
anatofuz
parents:
diff changeset
17 main_body:
anatofuz
parents:
diff changeset
18 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 if:
anatofuz
parents:
diff changeset
21 br label %end
anatofuz
parents:
diff changeset
22
anatofuz
parents:
diff changeset
23 end:
anatofuz
parents:
diff changeset
24 ret void
anatofuz
parents:
diff changeset
25 }
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 define amdgpu_kernel void @optimize_if_or_saveexec(i32 %z, i32 %v) {
anatofuz
parents:
diff changeset
28 main_body:
anatofuz
parents:
diff changeset
29 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
30
anatofuz
parents:
diff changeset
31 if:
anatofuz
parents:
diff changeset
32 br label %end
anatofuz
parents:
diff changeset
33
anatofuz
parents:
diff changeset
34 end:
anatofuz
parents:
diff changeset
35 ret void
anatofuz
parents:
diff changeset
36 }
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 define amdgpu_kernel void @optimize_if_and_saveexec_xor_valu_middle(i32 %z, i32 %v) {
anatofuz
parents:
diff changeset
39 main_body:
anatofuz
parents:
diff changeset
40 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 if: ; preds = %main_body
anatofuz
parents:
diff changeset
43 br label %end
anatofuz
parents:
diff changeset
44
anatofuz
parents:
diff changeset
45 end: ; preds = %if, %main_body
anatofuz
parents:
diff changeset
46 ret void
anatofuz
parents:
diff changeset
47 }
anatofuz
parents:
diff changeset
48
anatofuz
parents:
diff changeset
49 define amdgpu_kernel void @optimize_if_and_saveexec_xor_wrong_reg(i32 %z, i32 %v) {
anatofuz
parents:
diff changeset
50 main_body:
anatofuz
parents:
diff changeset
51 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
52
anatofuz
parents:
diff changeset
53 if:
anatofuz
parents:
diff changeset
54 br label %end
anatofuz
parents:
diff changeset
55
anatofuz
parents:
diff changeset
56 end:
anatofuz
parents:
diff changeset
57 ret void
anatofuz
parents:
diff changeset
58 }
anatofuz
parents:
diff changeset
59
anatofuz
parents:
diff changeset
60 define amdgpu_kernel void @optimize_if_and_saveexec_xor_modify_copy_to_exec(i32 %z, i32 %v) {
anatofuz
parents:
diff changeset
61 main_body:
anatofuz
parents:
diff changeset
62 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
63
anatofuz
parents:
diff changeset
64 if:
anatofuz
parents:
diff changeset
65 br label %end
anatofuz
parents:
diff changeset
66
anatofuz
parents:
diff changeset
67 end:
anatofuz
parents:
diff changeset
68 ret void
anatofuz
parents:
diff changeset
69 }
anatofuz
parents:
diff changeset
70
anatofuz
parents:
diff changeset
71 define amdgpu_kernel void @optimize_if_and_saveexec_xor_live_out_setexec(i32 %z, i32 %v) {
anatofuz
parents:
diff changeset
72 main_body:
anatofuz
parents:
diff changeset
73 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
74
anatofuz
parents:
diff changeset
75 if:
anatofuz
parents:
diff changeset
76 br label %end
anatofuz
parents:
diff changeset
77
anatofuz
parents:
diff changeset
78 end:
anatofuz
parents:
diff changeset
79 ret void
anatofuz
parents:
diff changeset
80 }
anatofuz
parents:
diff changeset
81
anatofuz
parents:
diff changeset
82 define amdgpu_kernel void @optimize_if_unknown_saveexec(i32 %z, i32 %v) {
anatofuz
parents:
diff changeset
83 main_body:
anatofuz
parents:
diff changeset
84 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
85
anatofuz
parents:
diff changeset
86 if:
anatofuz
parents:
diff changeset
87 br label %end
anatofuz
parents:
diff changeset
88
anatofuz
parents:
diff changeset
89 end:
anatofuz
parents:
diff changeset
90 ret void
anatofuz
parents:
diff changeset
91 }
anatofuz
parents:
diff changeset
92
anatofuz
parents:
diff changeset
93 define amdgpu_kernel void @optimize_if_andn2_saveexec(i32 %z, i32 %v) {
anatofuz
parents:
diff changeset
94 main_body:
anatofuz
parents:
diff changeset
95 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
96
anatofuz
parents:
diff changeset
97 if:
anatofuz
parents:
diff changeset
98 br label %end
anatofuz
parents:
diff changeset
99
anatofuz
parents:
diff changeset
100 end:
anatofuz
parents:
diff changeset
101 ret void
anatofuz
parents:
diff changeset
102 }
anatofuz
parents:
diff changeset
103
anatofuz
parents:
diff changeset
104 define amdgpu_kernel void @optimize_if_andn2_saveexec_no_commute(i32 %z, i32 %v) {
anatofuz
parents:
diff changeset
105 main_body:
anatofuz
parents:
diff changeset
106 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
107
anatofuz
parents:
diff changeset
108 if:
anatofuz
parents:
diff changeset
109 br label %end
anatofuz
parents:
diff changeset
110
anatofuz
parents:
diff changeset
111 end:
anatofuz
parents:
diff changeset
112 ret void
anatofuz
parents:
diff changeset
113 }
anatofuz
parents:
diff changeset
114
anatofuz
parents:
diff changeset
115 define amdgpu_kernel void @if_and_xor_read_exec_copy_subreg() {
anatofuz
parents:
diff changeset
116 main_body:
anatofuz
parents:
diff changeset
117 br i1 undef, label %if, label %end
anatofuz
parents:
diff changeset
118
anatofuz
parents:
diff changeset
119 if: ; preds = %main_body
anatofuz
parents:
diff changeset
120 br label %end
anatofuz
parents:
diff changeset
121
anatofuz
parents:
diff changeset
122 end: ; preds = %if, %main_body
anatofuz
parents:
diff changeset
123 ret void
anatofuz
parents:
diff changeset
124 }
anatofuz
parents:
diff changeset
125
anatofuz
parents:
diff changeset
126 ...
anatofuz
parents:
diff changeset
127 ---
anatofuz
parents:
diff changeset
128 # CHECK-LABEL: name: optimize_if_and_saveexec_xor{{$}}
anatofuz
parents:
diff changeset
129 # CHECK: $sgpr0_sgpr1 = S_AND_SAVEEXEC_B64 $vcc, implicit-def $exec, implicit-def $scc, implicit $exec
anatofuz
parents:
diff changeset
130 # CHECK-NEXT: $sgpr0_sgpr1 = S_XOR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
131 # CHECK-NEXT: SI_MASK_BRANCH
anatofuz
parents:
diff changeset
132
anatofuz
parents:
diff changeset
133 name: optimize_if_and_saveexec_xor
anatofuz
parents:
diff changeset
134 liveins:
anatofuz
parents:
diff changeset
135 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
136 body: |
anatofuz
parents:
diff changeset
137 bb.0.main_body:
anatofuz
parents:
diff changeset
138 liveins: $vgpr0
anatofuz
parents:
diff changeset
139
anatofuz
parents:
diff changeset
140 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
141 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
142 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
143 $sgpr2_sgpr3 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
144 $sgpr0_sgpr1 = S_XOR_B64 $sgpr2_sgpr3, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
145 $exec = S_MOV_B64_term killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
146 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
147 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
148
anatofuz
parents:
diff changeset
149 bb.1.if:
anatofuz
parents:
diff changeset
150 liveins: $sgpr0_sgpr1
anatofuz
parents:
diff changeset
151
anatofuz
parents:
diff changeset
152 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
153 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
154 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
155
anatofuz
parents:
diff changeset
156 bb.2.end:
anatofuz
parents:
diff changeset
157 liveins: $vgpr0, $sgpr0_sgpr1
anatofuz
parents:
diff changeset
158
anatofuz
parents:
diff changeset
159 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
160 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
161 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
162 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
163 S_ENDPGM 0
anatofuz
parents:
diff changeset
164
anatofuz
parents:
diff changeset
165 ...
anatofuz
parents:
diff changeset
166 ---
anatofuz
parents:
diff changeset
167 # CHECK-LABEL: name: optimize_if_and_saveexec{{$}}
anatofuz
parents:
diff changeset
168 # CHECK: $sgpr0_sgpr1 = S_AND_SAVEEXEC_B64 $vcc, implicit-def $exec, implicit-def $scc, implicit $exec
anatofuz
parents:
diff changeset
169 # CHECK-NEXT: SI_MASK_BRANCH
anatofuz
parents:
diff changeset
170
anatofuz
parents:
diff changeset
171 name: optimize_if_and_saveexec
anatofuz
parents:
diff changeset
172 liveins:
anatofuz
parents:
diff changeset
173 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
174 body: |
anatofuz
parents:
diff changeset
175 bb.0.main_body:
anatofuz
parents:
diff changeset
176 liveins: $vgpr0
anatofuz
parents:
diff changeset
177
anatofuz
parents:
diff changeset
178 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
179 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
180 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
181 $sgpr2_sgpr3 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
182 $exec = S_MOV_B64_term killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
183 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
184 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
185
anatofuz
parents:
diff changeset
186 bb.1.if:
anatofuz
parents:
diff changeset
187 liveins: $sgpr0_sgpr1
anatofuz
parents:
diff changeset
188
anatofuz
parents:
diff changeset
189 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
190 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
191 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
192
anatofuz
parents:
diff changeset
193 bb.2.end:
anatofuz
parents:
diff changeset
194 liveins: $vgpr0, $sgpr0_sgpr1
anatofuz
parents:
diff changeset
195
anatofuz
parents:
diff changeset
196 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
197 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
198 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
199 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
200 S_ENDPGM 0
anatofuz
parents:
diff changeset
201
anatofuz
parents:
diff changeset
202 ...
anatofuz
parents:
diff changeset
203 ---
anatofuz
parents:
diff changeset
204 # CHECK-LABEL: name: optimize_if_or_saveexec{{$}}
anatofuz
parents:
diff changeset
205 # CHECK: $sgpr0_sgpr1 = S_OR_SAVEEXEC_B64 $vcc, implicit-def $exec, implicit-def $scc, implicit $exec
anatofuz
parents:
diff changeset
206 # CHECK-NEXT: SI_MASK_BRANCH
anatofuz
parents:
diff changeset
207
anatofuz
parents:
diff changeset
208 name: optimize_if_or_saveexec
anatofuz
parents:
diff changeset
209 liveins:
anatofuz
parents:
diff changeset
210 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
211 body: |
anatofuz
parents:
diff changeset
212 bb.0.main_body:
anatofuz
parents:
diff changeset
213 liveins: $vgpr0
anatofuz
parents:
diff changeset
214
anatofuz
parents:
diff changeset
215 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
216 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
217 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
218 $sgpr2_sgpr3 = S_OR_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
219 $exec = S_MOV_B64_term killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
220 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
221 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
222
anatofuz
parents:
diff changeset
223 bb.1.if:
anatofuz
parents:
diff changeset
224 liveins: $sgpr0_sgpr1
anatofuz
parents:
diff changeset
225
anatofuz
parents:
diff changeset
226 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
227 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
228 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
229
anatofuz
parents:
diff changeset
230 bb.2.end:
anatofuz
parents:
diff changeset
231 liveins: $vgpr0, $sgpr0_sgpr1
anatofuz
parents:
diff changeset
232
anatofuz
parents:
diff changeset
233 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
234 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
235 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
236 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
237 S_ENDPGM 0
anatofuz
parents:
diff changeset
238
anatofuz
parents:
diff changeset
239 ...
anatofuz
parents:
diff changeset
240 ---
anatofuz
parents:
diff changeset
241 # CHECK-LABEL: name: optimize_if_and_saveexec_xor_valu_middle
anatofuz
parents:
diff changeset
242 # CHECK: $sgpr2_sgpr3 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
243 # CHECK-NEXT: BUFFER_STORE_DWORD_OFFSET $vgpr0, undef $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
244 # CHECK-NEXT: $sgpr0_sgpr1 = S_XOR_B64 $sgpr2_sgpr3, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
245 # CHECK-NEXT: $exec = COPY killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
246 # CHECK-NEXT: SI_MASK_BRANCH
anatofuz
parents:
diff changeset
247 name: optimize_if_and_saveexec_xor_valu_middle
anatofuz
parents:
diff changeset
248 liveins:
anatofuz
parents:
diff changeset
249 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
250 body: |
anatofuz
parents:
diff changeset
251 bb.0.main_body:
anatofuz
parents:
diff changeset
252 liveins: $vgpr0
anatofuz
parents:
diff changeset
253
anatofuz
parents:
diff changeset
254 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
255 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
256 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
257 $sgpr2_sgpr3 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
258 BUFFER_STORE_DWORD_OFFSET $vgpr0, undef $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
259 $sgpr0_sgpr1 = S_XOR_B64 $sgpr2_sgpr3, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
260 $exec = S_MOV_B64_term killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
261 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
262 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
263
anatofuz
parents:
diff changeset
264 bb.1.if:
anatofuz
parents:
diff changeset
265 liveins: $sgpr0_sgpr1
anatofuz
parents:
diff changeset
266
anatofuz
parents:
diff changeset
267 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
268 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
269 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
270
anatofuz
parents:
diff changeset
271 bb.2.end:
anatofuz
parents:
diff changeset
272 liveins: $vgpr0, $sgpr0_sgpr1
anatofuz
parents:
diff changeset
273
anatofuz
parents:
diff changeset
274 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
275 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
276 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
277 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
278 S_ENDPGM 0
anatofuz
parents:
diff changeset
279
anatofuz
parents:
diff changeset
280 ...
anatofuz
parents:
diff changeset
281 ---
anatofuz
parents:
diff changeset
282 # CHECK-LABEL: name: optimize_if_and_saveexec_xor_wrong_reg{{$}}
anatofuz
parents:
diff changeset
283 # CHECK: $sgpr0_sgpr1 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
284 # CHECK-NEXT: $sgpr0_sgpr1 = S_XOR_B64 undef $sgpr2_sgpr3, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
285 # CHECK-NEXT: $exec = COPY $sgpr0_sgpr1
anatofuz
parents:
diff changeset
286 # CHECK-NEXT: SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
287 name: optimize_if_and_saveexec_xor_wrong_reg
anatofuz
parents:
diff changeset
288 liveins:
anatofuz
parents:
diff changeset
289 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
290 body: |
anatofuz
parents:
diff changeset
291 bb.0.main_body:
anatofuz
parents:
diff changeset
292 liveins: $vgpr0
anatofuz
parents:
diff changeset
293
anatofuz
parents:
diff changeset
294 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
295 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
296 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
297 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
298 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
299 $sgpr0_sgpr1 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
300 $sgpr0_sgpr1 = S_XOR_B64 undef $sgpr2_sgpr3, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
301 $exec = S_MOV_B64_term $sgpr0_sgpr1
anatofuz
parents:
diff changeset
302 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
303 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
304
anatofuz
parents:
diff changeset
305 bb.1.if:
anatofuz
parents:
diff changeset
306 liveins: $sgpr0_sgpr1 , $sgpr4_sgpr5_sgpr6_sgpr7
anatofuz
parents:
diff changeset
307 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
308
anatofuz
parents:
diff changeset
309 bb.2.end:
anatofuz
parents:
diff changeset
310 liveins: $vgpr0, $sgpr0_sgpr1, $sgpr4_sgpr5_sgpr6_sgpr7
anatofuz
parents:
diff changeset
311
anatofuz
parents:
diff changeset
312 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
313 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
314 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
315 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
316 S_ENDPGM 0
anatofuz
parents:
diff changeset
317
anatofuz
parents:
diff changeset
318 ...
anatofuz
parents:
diff changeset
319 ---
anatofuz
parents:
diff changeset
320 # CHECK-LABEL: name: optimize_if_and_saveexec_xor_modify_copy_to_exec{{$}}
anatofuz
parents:
diff changeset
321 # CHECK: $sgpr2_sgpr3 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
322 # CHECK-NEXT: $sgpr2_sgpr3 = S_OR_B64 killed $sgpr2_sgpr3, 1, implicit-def $scc
anatofuz
parents:
diff changeset
323 # CHECK-NEXT: $sgpr0_sgpr1 = S_XOR_B64 $sgpr2_sgpr3, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
324 # CHECK-NEXT: $exec = COPY killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
325 # CHECK-NEXT: SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
326
anatofuz
parents:
diff changeset
327 name: optimize_if_and_saveexec_xor_modify_copy_to_exec
anatofuz
parents:
diff changeset
328 liveins:
anatofuz
parents:
diff changeset
329 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
330 body: |
anatofuz
parents:
diff changeset
331 bb.0.main_body:
anatofuz
parents:
diff changeset
332 liveins: $vgpr0
anatofuz
parents:
diff changeset
333
anatofuz
parents:
diff changeset
334 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
335 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
336 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
337 $sgpr2_sgpr3 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
338 $sgpr2_sgpr3 = S_OR_B64 killed $sgpr2_sgpr3, 1, implicit-def $scc
anatofuz
parents:
diff changeset
339 $sgpr0_sgpr1 = S_XOR_B64 $sgpr2_sgpr3, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
340 $exec = S_MOV_B64_term killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
341 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
342 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
343
anatofuz
parents:
diff changeset
344 bb.1.if:
anatofuz
parents:
diff changeset
345 liveins: $sgpr0_sgpr1
anatofuz
parents:
diff changeset
346
anatofuz
parents:
diff changeset
347 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
348 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
349 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
350
anatofuz
parents:
diff changeset
351 bb.2.end:
anatofuz
parents:
diff changeset
352 liveins: $vgpr0, $sgpr0_sgpr1
anatofuz
parents:
diff changeset
353
anatofuz
parents:
diff changeset
354 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
355 $sgpr0 = S_MOV_B32 0
anatofuz
parents:
diff changeset
356 $sgpr1 = S_MOV_B32 1
anatofuz
parents:
diff changeset
357 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
358 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
359 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
360 S_ENDPGM 0
anatofuz
parents:
diff changeset
361
anatofuz
parents:
diff changeset
362 ...
anatofuz
parents:
diff changeset
363 ---
anatofuz
parents:
diff changeset
364 # CHECK-LABEL: name: optimize_if_and_saveexec_xor_live_out_setexec{{$}}
anatofuz
parents:
diff changeset
365 # CHECK: $sgpr2_sgpr3 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
366 # CHECK-NEXT: $sgpr0_sgpr1 = S_XOR_B64 $sgpr2_sgpr3, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
367 # CHECK-NEXT: $exec = COPY $sgpr2_sgpr3
anatofuz
parents:
diff changeset
368 # CHECK-NEXT: SI_MASK_BRANCH
anatofuz
parents:
diff changeset
369 name: optimize_if_and_saveexec_xor_live_out_setexec
anatofuz
parents:
diff changeset
370 liveins:
anatofuz
parents:
diff changeset
371 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
372 body: |
anatofuz
parents:
diff changeset
373 bb.0.main_body:
anatofuz
parents:
diff changeset
374 liveins: $vgpr0
anatofuz
parents:
diff changeset
375
anatofuz
parents:
diff changeset
376 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
377 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
378 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
379 $sgpr2_sgpr3 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
380 $sgpr0_sgpr1 = S_XOR_B64 $sgpr2_sgpr3, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
381 $exec = S_MOV_B64_term $sgpr2_sgpr3
anatofuz
parents:
diff changeset
382 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
383 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
384
anatofuz
parents:
diff changeset
385 bb.1.if:
anatofuz
parents:
diff changeset
386 liveins: $sgpr0_sgpr1, $sgpr2_sgpr3
anatofuz
parents:
diff changeset
387 S_SLEEP 0, implicit $sgpr2_sgpr3
anatofuz
parents:
diff changeset
388 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
389 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
390 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
391
anatofuz
parents:
diff changeset
392 bb.2.end:
anatofuz
parents:
diff changeset
393 liveins: $vgpr0, $sgpr0_sgpr1
anatofuz
parents:
diff changeset
394
anatofuz
parents:
diff changeset
395 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
396 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
397 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
398 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
399 S_ENDPGM 0
anatofuz
parents:
diff changeset
400
anatofuz
parents:
diff changeset
401 ...
anatofuz
parents:
diff changeset
402
anatofuz
parents:
diff changeset
403 # CHECK-LABEL: name: optimize_if_unknown_saveexec{{$}}
anatofuz
parents:
diff changeset
404 # CHECK: $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
405 # CHECK: $sgpr2_sgpr3 = S_LSHR_B64 $sgpr0_sgpr1, killed $vcc_lo, implicit-def $scc
anatofuz
parents:
diff changeset
406 # CHECK-NEXT: $exec = COPY killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
407 # CHECK-NEXT: SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
408
anatofuz
parents:
diff changeset
409 name: optimize_if_unknown_saveexec
anatofuz
parents:
diff changeset
410 liveins:
anatofuz
parents:
diff changeset
411 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
412 body: |
anatofuz
parents:
diff changeset
413 bb.0.main_body:
anatofuz
parents:
diff changeset
414 liveins: $vgpr0
anatofuz
parents:
diff changeset
415
anatofuz
parents:
diff changeset
416 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
417 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
418 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
419 $sgpr2_sgpr3 = S_LSHR_B64 $sgpr0_sgpr1, killed $vcc_lo, implicit-def $scc
anatofuz
parents:
diff changeset
420 $exec = S_MOV_B64_term killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
421 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
422 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
423
anatofuz
parents:
diff changeset
424 bb.1.if:
anatofuz
parents:
diff changeset
425 liveins: $sgpr0_sgpr1
anatofuz
parents:
diff changeset
426
anatofuz
parents:
diff changeset
427 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
428 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
429 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
430
anatofuz
parents:
diff changeset
431 bb.2.end:
anatofuz
parents:
diff changeset
432 liveins: $vgpr0, $sgpr0_sgpr1
anatofuz
parents:
diff changeset
433
anatofuz
parents:
diff changeset
434 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
435 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
436 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
437 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
438 S_ENDPGM 0
anatofuz
parents:
diff changeset
439
anatofuz
parents:
diff changeset
440 ...
anatofuz
parents:
diff changeset
441 ---
anatofuz
parents:
diff changeset
442 # CHECK-LABEL: name: optimize_if_andn2_saveexec{{$}}
anatofuz
parents:
diff changeset
443 # CHECK: $sgpr0_sgpr1 = S_ANDN2_SAVEEXEC_B64 $vcc, implicit-def $exec, implicit-def $scc, implicit $exec
anatofuz
parents:
diff changeset
444 # CHECK-NEXT: SI_MASK_BRANCH
anatofuz
parents:
diff changeset
445
anatofuz
parents:
diff changeset
446 name: optimize_if_andn2_saveexec
anatofuz
parents:
diff changeset
447 liveins:
anatofuz
parents:
diff changeset
448 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
449 body: |
anatofuz
parents:
diff changeset
450 bb.0.main_body:
anatofuz
parents:
diff changeset
451 liveins: $vgpr0
anatofuz
parents:
diff changeset
452
anatofuz
parents:
diff changeset
453 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
454 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
455 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
456 $sgpr2_sgpr3 = S_ANDN2_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
457 $exec = S_MOV_B64_term killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
458 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
459 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
460
anatofuz
parents:
diff changeset
461 bb.1.if:
anatofuz
parents:
diff changeset
462 liveins: $sgpr0_sgpr1
anatofuz
parents:
diff changeset
463
anatofuz
parents:
diff changeset
464 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
465 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
466 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
467
anatofuz
parents:
diff changeset
468 bb.2.end:
anatofuz
parents:
diff changeset
469 liveins: $vgpr0, $sgpr0_sgpr1
anatofuz
parents:
diff changeset
470
anatofuz
parents:
diff changeset
471 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
472 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
473 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
474 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
475 S_ENDPGM 0
anatofuz
parents:
diff changeset
476
anatofuz
parents:
diff changeset
477 ...
anatofuz
parents:
diff changeset
478 ---
anatofuz
parents:
diff changeset
479 # CHECK-LABEL: name: optimize_if_andn2_saveexec_no_commute{{$}}
anatofuz
parents:
diff changeset
480 # CHECK: $sgpr2_sgpr3 = S_ANDN2_B64 killed $vcc, $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
481 # CHECK-NEXT: $exec = COPY killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
482 # CHECK-NEXT: SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
483 name: optimize_if_andn2_saveexec_no_commute
anatofuz
parents:
diff changeset
484 liveins:
anatofuz
parents:
diff changeset
485 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
486 body: |
anatofuz
parents:
diff changeset
487 bb.0.main_body:
anatofuz
parents:
diff changeset
488 liveins: $vgpr0
anatofuz
parents:
diff changeset
489
anatofuz
parents:
diff changeset
490 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
491 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
492 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
493 $sgpr2_sgpr3 = S_ANDN2_B64 killed $vcc, $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
494 $exec = S_MOV_B64_term killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
495 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
496 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
497
anatofuz
parents:
diff changeset
498 bb.1.if:
anatofuz
parents:
diff changeset
499 liveins: $sgpr0_sgpr1
anatofuz
parents:
diff changeset
500
anatofuz
parents:
diff changeset
501 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
502 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
503 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
504
anatofuz
parents:
diff changeset
505 bb.2.end:
anatofuz
parents:
diff changeset
506 liveins: $vgpr0, $sgpr0_sgpr1
anatofuz
parents:
diff changeset
507
anatofuz
parents:
diff changeset
508 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
509 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
510 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
511 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
512 S_ENDPGM 0
anatofuz
parents:
diff changeset
513
anatofuz
parents:
diff changeset
514 ...
anatofuz
parents:
diff changeset
515 ---
anatofuz
parents:
diff changeset
516 # A read from exec copy subreg prevents optimization
anatofuz
parents:
diff changeset
517 # CHECK-LABEL: name: if_and_xor_read_exec_copy_subreg{{$}}
anatofuz
parents:
diff changeset
518 # CHECK: $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
519 # CHECK-NEXT: $sgpr4 = S_MOV_B32 $sgpr1
anatofuz
parents:
diff changeset
520 name: if_and_xor_read_exec_copy_subreg
anatofuz
parents:
diff changeset
521 liveins:
anatofuz
parents:
diff changeset
522 - { reg: '$vgpr0' }
anatofuz
parents:
diff changeset
523 body: |
anatofuz
parents:
diff changeset
524 bb.0.main_body:
anatofuz
parents:
diff changeset
525 liveins: $vgpr0
anatofuz
parents:
diff changeset
526
anatofuz
parents:
diff changeset
527 $sgpr0_sgpr1 = COPY $exec
anatofuz
parents:
diff changeset
528 $sgpr4 = S_MOV_B32 $sgpr1
anatofuz
parents:
diff changeset
529 $vcc = V_CMP_EQ_I32_e64 0, killed $vgpr0, implicit $exec
anatofuz
parents:
diff changeset
530 $vgpr0 = V_MOV_B32_e32 4, implicit $exec
anatofuz
parents:
diff changeset
531 $sgpr2_sgpr3 = S_AND_B64 $sgpr0_sgpr1, killed $vcc, implicit-def $scc
anatofuz
parents:
diff changeset
532 $sgpr0_sgpr1 = S_XOR_B64 $sgpr2_sgpr3, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
533 $exec = S_MOV_B64_term killed $sgpr2_sgpr3
anatofuz
parents:
diff changeset
534 SI_MASK_BRANCH %bb.2, implicit $exec
anatofuz
parents:
diff changeset
535 S_BRANCH %bb.1
anatofuz
parents:
diff changeset
536
anatofuz
parents:
diff changeset
537 bb.1.if:
anatofuz
parents:
diff changeset
538 liveins: $sgpr0_sgpr1
anatofuz
parents:
diff changeset
539
anatofuz
parents:
diff changeset
540 $sgpr7 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
541 $sgpr6 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
542 $vgpr0 = BUFFER_LOAD_DWORD_OFFSET $sgpr4_sgpr5_sgpr6_sgpr7, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
543
anatofuz
parents:
diff changeset
544 bb.2.end:
anatofuz
parents:
diff changeset
545 liveins: $vgpr0, $sgpr0_sgpr1
anatofuz
parents:
diff changeset
546
anatofuz
parents:
diff changeset
547 $exec = S_OR_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
anatofuz
parents:
diff changeset
548 $sgpr3 = S_MOV_B32 61440
anatofuz
parents:
diff changeset
549 $sgpr2 = S_MOV_B32 -1
anatofuz
parents:
diff changeset
550 BUFFER_STORE_DWORD_OFFSET killed $vgpr0, $sgpr0_sgpr1_sgpr2_sgpr3, 0, 0, 0, 0, 0, 0, 0, implicit $exec
anatofuz
parents:
diff changeset
551 S_ENDPGM 0
anatofuz
parents:
diff changeset
552 ...