• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer %s -o - | FileCheck %s
3
4---
5name: test_gep_global_i64_idx
6body: |
7  bb.0:
8    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
9
10    ; CHECK-LABEL: name: test_gep_global_i64_idx
11    ; CHECK: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1
12    ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3
13    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[COPY1]](s64)
14    ; CHECK: $vgpr0_vgpr1 = COPY [[PTR_ADD]](p1)
15    %0:_(p1) = COPY $vgpr0_vgpr1
16    %1:_(s64) = COPY $vgpr2_vgpr3
17    %2:_(p1) = G_PTR_ADD %0, %1
18
19    $vgpr0_vgpr1 = COPY %2
20...
21
22---
23name: test_gep_flat_i64_idx
24body: |
25  bb.0:
26    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
27
28    ; CHECK-LABEL: name: test_gep_flat_i64_idx
29    ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1
30    ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3
31    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p0) = G_PTR_ADD [[COPY]], [[COPY1]](s64)
32    ; CHECK: $vgpr0_vgpr1 = COPY [[PTR_ADD]](p0)
33    %0:_(p0) = COPY $vgpr0_vgpr1
34    %1:_(s64) = COPY $vgpr2_vgpr3
35    %2:_(p0) = G_PTR_ADD %0, %1
36
37    $vgpr0_vgpr1 = COPY %2
38...
39
40---
41name: test_gep_constant_i64_idx
42body: |
43  bb.0:
44    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
45
46    ; CHECK-LABEL: name: test_gep_constant_i64_idx
47    ; CHECK: [[COPY:%[0-9]+]]:_(p4) = COPY $vgpr0_vgpr1
48    ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3
49    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p4) = G_PTR_ADD [[COPY]], [[COPY1]](s64)
50    ; CHECK: $vgpr0_vgpr1 = COPY [[PTR_ADD]](p4)
51    %0:_(p4) = COPY $vgpr0_vgpr1
52    %1:_(s64) = COPY $vgpr2_vgpr3
53    %2:_(p4) = G_PTR_ADD %0, %1
54
55    $vgpr0_vgpr1 = COPY %2
56...
57
58---
59name: test_gep_local_i32_idx
60body: |
61  bb.0:
62    liveins: $vgpr0, $vgpr1
63
64    ; CHECK-LABEL: name: test_gep_local_i32_idx
65    ; CHECK: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0
66    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
67    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p3) = G_PTR_ADD [[COPY]], [[COPY1]](s32)
68    ; CHECK: $vgpr0 = COPY [[PTR_ADD]](p3)
69    %0:_(p3) = COPY $vgpr0
70    %1:_(s32) = COPY $vgpr1
71    %2:_(p3) = G_PTR_ADD %0, %1
72
73    $vgpr0 = COPY %2
74...
75
76---
77name: test_gep_private_i32_idx
78body: |
79  bb.0:
80    liveins: $vgpr0, $vgpr1
81
82    ; CHECK-LABEL: name: test_gep_private_i32_idx
83    ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0
84    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
85    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p5) = G_PTR_ADD [[COPY]], [[COPY1]](s32)
86    ; CHECK: $vgpr0 = COPY [[PTR_ADD]](p5)
87    %0:_(p5) = COPY $vgpr0
88    %1:_(s32) = COPY $vgpr1
89    %2:_(p5) = G_PTR_ADD %0, %1
90
91    $vgpr0 = COPY %2
92...
93
94---
95name: test_gep_constant32_i32_idx
96body: |
97  bb.0:
98    liveins: $sgpr0, $sgpr1
99
100    ; CHECK-LABEL: name: test_gep_constant32_i32_idx
101    ; CHECK: [[COPY:%[0-9]+]]:_(p6) = COPY $sgpr0
102    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr1
103    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p6) = G_PTR_ADD [[COPY]], [[COPY1]](s32)
104    ; CHECK: $sgpr0 = COPY [[PTR_ADD]](p6)
105    %0:_(p6) = COPY $sgpr0
106    %1:_(s32) = COPY $sgpr1
107    %2:_(p6) = G_PTR_ADD %0, %1
108
109    $sgpr0 = COPY %2
110...
111
112---
113name: test_gep_region_i32_idx
114body: |
115  bb.0:
116    liveins: $vgpr0, $vgpr1
117
118    ; CHECK-LABEL: name: test_gep_region_i32_idx
119    ; CHECK: [[COPY:%[0-9]+]]:_(p2) = COPY $vgpr0
120    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
121    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p2) = G_PTR_ADD [[COPY]], [[COPY1]](s32)
122    ; CHECK: $vgpr0 = COPY [[PTR_ADD]](p2)
123    %0:_(p2) = COPY $vgpr0
124    %1:_(s32) = COPY $vgpr1
125    %2:_(p2) = G_PTR_ADD %0, %1
126
127    $vgpr0 = COPY %2
128...
129
130---
131name: test_gep_p999_i64_idx
132body: |
133  bb.0:
134    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
135
136    ; CHECK-LABEL: name: test_gep_p999_i64_idx
137    ; CHECK: [[COPY:%[0-9]+]]:_(p999) = COPY $vgpr0_vgpr1
138    ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3
139    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p999) = G_PTR_ADD [[COPY]], [[COPY1]](s64)
140    ; CHECK: $vgpr0_vgpr1 = COPY [[PTR_ADD]](p999)
141    %0:_(p999) = COPY $vgpr0_vgpr1
142    %1:_(s64) = COPY $vgpr2_vgpr3
143    %2:_(p999) = G_PTR_ADD %0, %1
144    $vgpr0_vgpr1 = COPY %2
145...
146
147---
148name: test_gep_v2p1_v2i64
149body: |
150  bb.0:
151    liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7
152
153    ; CHECK-LABEL: name: test_gep_v2p1_v2i64
154    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x p1>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
155    ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7
156    ; CHECK: [[UV:%[0-9]+]]:_(p1), [[UV1:%[0-9]+]]:_(p1) = G_UNMERGE_VALUES [[COPY]](<2 x p1>)
157    ; CHECK: [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY1]](<2 x s64>)
158    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[UV]], [[UV2]](s64)
159    ; CHECK: [[PTR_ADD1:%[0-9]+]]:_(p1) = G_PTR_ADD [[UV1]], [[UV3]](s64)
160    ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p1>) = G_BUILD_VECTOR [[PTR_ADD]](p1), [[PTR_ADD1]](p1)
161    ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p1>)
162    %0:_(<2 x p1>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
163    %1:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7
164    %2:_(<2 x p1>) = G_PTR_ADD %0, %1
165    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %2
166...
167
168---
169name: test_gep_v2p3_v2s32
170body: |
171  bb.0:
172    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3
173
174    ; CHECK-LABEL: name: test_gep_v2p3_v2s32
175    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x p3>) = COPY $vgpr0_vgpr1
176    ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr3
177    ; CHECK: [[UV:%[0-9]+]]:_(p3), [[UV1:%[0-9]+]]:_(p3) = G_UNMERGE_VALUES [[COPY]](<2 x p3>)
178    ; CHECK: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>)
179    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p3) = G_PTR_ADD [[UV]], [[UV2]](s32)
180    ; CHECK: [[PTR_ADD1:%[0-9]+]]:_(p3) = G_PTR_ADD [[UV1]], [[UV3]](s32)
181    ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p3>) = G_BUILD_VECTOR [[PTR_ADD]](p3), [[PTR_ADD1]](p3)
182    ; CHECK: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x p3>)
183    %0:_(<2 x p3>) = COPY $vgpr0_vgpr1
184    %1:_(<2 x s32>) = COPY $vgpr2_vgpr3
185    %2:_(<2 x p3>) = G_PTR_ADD %0, %1
186    $vgpr0_vgpr1 = COPY %2
187...
188
189---
190name: test_gep_global_s16_idx
191body: |
192  bb.0:
193    liveins: $vgpr0_vgpr1, $vgpr2
194
195    ; CHECK-LABEL: name: test_gep_global_s16_idx
196    ; CHECK: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1
197    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr2
198    ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY1]](s32)
199    ; CHECK: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[ANYEXT]], 16
200    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[SEXT_INREG]](s64)
201    ; CHECK: $vgpr0_vgpr1 = COPY [[PTR_ADD]](p1)
202    %0:_(p1) = COPY $vgpr0_vgpr1
203    %1:_(s32) = COPY $vgpr2
204    %2:_(s16) = G_TRUNC %1
205    %3:_(p1) = G_PTR_ADD %0, %2
206    $vgpr0_vgpr1 = COPY %3
207...
208
209---
210name: test_gep_global_s32_idx
211body: |
212  bb.0:
213    liveins: $vgpr0_vgpr1, $vgpr2
214
215    ; CHECK-LABEL: name: test_gep_global_s32_idx
216    ; CHECK: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1
217    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr2
218    ; CHECK: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[COPY1]](s32)
219    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[SEXT]](s64)
220    ; CHECK: $vgpr0_vgpr1 = COPY [[PTR_ADD]](p1)
221    %0:_(p1) = COPY $vgpr0_vgpr1
222    %1:_(s32) = COPY $vgpr2
223    %2:_(p1) = G_PTR_ADD %0, %1
224    $vgpr0_vgpr1 = COPY %2
225...
226
227---
228name: test_gep_global_s96_idx
229body: |
230  bb.0:
231    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4
232
233    ; CHECK-LABEL: name: test_gep_global_s96_idx
234    ; CHECK: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1
235    ; CHECK: [[COPY1:%[0-9]+]]:_(s96) = COPY $vgpr2_vgpr3_vgpr4
236    ; CHECK: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s96)
237    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[TRUNC]](s64)
238    ; CHECK: $vgpr0_vgpr1 = COPY [[PTR_ADD]](p1)
239    %0:_(p1) = COPY $vgpr0_vgpr1
240    %1:_(s96) = COPY $vgpr2_vgpr3_vgpr4
241    %2:_(p1) = G_PTR_ADD %0, %1
242    $vgpr0_vgpr1 = COPY %2
243...
244
245---
246name: test_gep_local_i16_idx
247body: |
248  bb.0:
249    liveins: $vgpr0, $vgpr1
250
251    ; CHECK-LABEL: name: test_gep_local_i16_idx
252    ; CHECK: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0
253    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1
254    ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY [[COPY1]](s32)
255    ; CHECK: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[COPY2]], 16
256    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p3) = G_PTR_ADD [[COPY]], [[SEXT_INREG]](s32)
257    ; CHECK: $vgpr0 = COPY [[PTR_ADD]](p3)
258    %0:_(p3) = COPY $vgpr0
259    %1:_(s32) = COPY $vgpr1
260    %2:_(s16) = G_TRUNC %1
261    %3:_(p3) = G_PTR_ADD %0, %2
262    $vgpr0 = COPY %3
263...
264
265---
266name: test_gep_local_i64_idx
267body: |
268  bb.0:
269    liveins: $vgpr0, $vgpr1_vgpr2
270
271    ; CHECK-LABEL: name: test_gep_local_i64_idx
272    ; CHECK: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0
273    ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr1_vgpr2
274    ; CHECK: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)
275    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p3) = G_PTR_ADD [[COPY]], [[TRUNC]](s32)
276    ; CHECK: $vgpr0 = COPY [[PTR_ADD]](p3)
277    %0:_(p3) = COPY $vgpr0
278    %1:_(s64) = COPY $vgpr1_vgpr2
279    %2:_(p3) = G_PTR_ADD %0, %1
280    $vgpr0 = COPY %2
281...
282
283---
284name: test_gep_v2p1_v2i32
285body: |
286  bb.0:
287    liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5
288
289    ; CHECK-LABEL: name: test_gep_v2p1_v2i32
290    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x p1>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
291    ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr4_vgpr5
292    ; CHECK: [[UV:%[0-9]+]]:_(p1), [[UV1:%[0-9]+]]:_(p1) = G_UNMERGE_VALUES [[COPY]](<2 x p1>)
293    ; CHECK: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>)
294    ; CHECK: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[UV2]](s32)
295    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[UV]], [[SEXT]](s64)
296    ; CHECK: [[SEXT1:%[0-9]+]]:_(s64) = G_SEXT [[UV3]](s32)
297    ; CHECK: [[PTR_ADD1:%[0-9]+]]:_(p1) = G_PTR_ADD [[UV1]], [[SEXT1]](s64)
298    ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p1>) = G_BUILD_VECTOR [[PTR_ADD]](p1), [[PTR_ADD1]](p1)
299    ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p1>)
300    %0:_(<2 x p1>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
301    %1:_(<2 x s32>) = COPY $vgpr4_vgpr5
302    %2:_(<2 x p1>) = G_PTR_ADD %0, %1
303    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %2
304...
305
306---
307name: test_gep_v2p1_v2i96
308body: |
309  bb.0:
310    liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6, $vgpr7_vgpr8_vgpr9
311
312    ; CHECK-LABEL: name: test_gep_v2p1_v2i96
313    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x p1>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
314    ; CHECK: [[COPY1:%[0-9]+]]:_(s96) = COPY $vgpr4_vgpr5_vgpr6
315    ; CHECK: [[COPY2:%[0-9]+]]:_(s96) = COPY $vgpr7_vgpr8_vgpr9
316    ; CHECK: [[UV:%[0-9]+]]:_(p1), [[UV1:%[0-9]+]]:_(p1) = G_UNMERGE_VALUES [[COPY]](<2 x p1>)
317    ; CHECK: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s96)
318    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[UV]], [[TRUNC]](s64)
319    ; CHECK: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY2]](s96)
320    ; CHECK: [[PTR_ADD1:%[0-9]+]]:_(p1) = G_PTR_ADD [[UV1]], [[TRUNC1]](s64)
321    ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p1>) = G_BUILD_VECTOR [[PTR_ADD]](p1), [[PTR_ADD1]](p1)
322    ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p1>)
323    %0:_(<2 x p1>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3
324    %1:_(s96) = COPY $vgpr4_vgpr5_vgpr6
325    %2:_(s96) = COPY $vgpr7_vgpr8_vgpr9
326    %3:_(<2 x s96>) = G_BUILD_VECTOR %1, %2
327    %4:_(<2 x p1>) = G_PTR_ADD %0, %3
328    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %4
329...
330
331---
332name: test_gep_v2p3_v2s16
333body: |
334  bb.0:
335    liveins: $vgpr0_vgpr1, $vgpr2
336
337    ; CHECK-LABEL: name: test_gep_v2p3_v2s16
338    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x p3>) = COPY $vgpr0_vgpr1
339    ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr2
340    ; CHECK: [[UV:%[0-9]+]]:_(p3), [[UV1:%[0-9]+]]:_(p3) = G_UNMERGE_VALUES [[COPY]](<2 x p3>)
341    ; CHECK: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[COPY1]](<2 x s16>)
342    ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
343    ; CHECK: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)
344    ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY [[BITCAST]](s32)
345    ; CHECK: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[COPY2]], 16
346    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p3) = G_PTR_ADD [[UV]], [[SEXT_INREG]](s32)
347    ; CHECK: [[COPY3:%[0-9]+]]:_(s32) = COPY [[LSHR]](s32)
348    ; CHECK: [[SEXT_INREG1:%[0-9]+]]:_(s32) = G_SEXT_INREG [[COPY3]], 16
349    ; CHECK: [[PTR_ADD1:%[0-9]+]]:_(p3) = G_PTR_ADD [[UV1]], [[SEXT_INREG1]](s32)
350    ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p3>) = G_BUILD_VECTOR [[PTR_ADD]](p3), [[PTR_ADD1]](p3)
351    ; CHECK: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x p3>)
352    %0:_(<2 x p3>) = COPY $vgpr0_vgpr1
353    %1:_(<2 x s16>) = COPY $vgpr2
354    %2:_(<2 x p3>) = G_PTR_ADD %0, %1
355    $vgpr0_vgpr1 = COPY %2
356...
357
358---
359name: test_gep_v2p3_v2s64
360body: |
361  bb.0:
362    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5
363
364    ; CHECK-LABEL: name: test_gep_v2p3_v2s64
365    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x p3>) = COPY $vgpr0_vgpr1
366    ; CHECK: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr2_vgpr3_vgpr4_vgpr5
367    ; CHECK: [[UV:%[0-9]+]]:_(p3), [[UV1:%[0-9]+]]:_(p3) = G_UNMERGE_VALUES [[COPY]](<2 x p3>)
368    ; CHECK: [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY1]](<2 x s64>)
369    ; CHECK: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[UV2]](s64)
370    ; CHECK: [[PTR_ADD:%[0-9]+]]:_(p3) = G_PTR_ADD [[UV]], [[TRUNC]](s32)
371    ; CHECK: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[UV3]](s64)
372    ; CHECK: [[PTR_ADD1:%[0-9]+]]:_(p3) = G_PTR_ADD [[UV1]], [[TRUNC1]](s32)
373    ; CHECK: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p3>) = G_BUILD_VECTOR [[PTR_ADD]](p3), [[PTR_ADD1]](p3)
374    ; CHECK: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x p3>)
375    %0:_(<2 x p3>) = COPY $vgpr0_vgpr1
376    %1:_(<2 x s64>) = COPY $vgpr2_vgpr3_vgpr4_vgpr5
377    %2:_(<2 x p3>) = G_PTR_ADD %0, %1
378    $vgpr0_vgpr1 = COPY %2
379...
380