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