1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer -global-isel-abort=2 -pass-remarks-missed='gisel*' -o - 2> %t %s | FileCheck -check-prefix=GFX8 %s 3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer -global-isel-abort=2 -o - %s | FileCheck -check-prefix=GFX6 %s 4# RUN: FileCheck -check-prefixes=ERR %s < %t 5 6# FIXME: Run with and without unaligned access turned on 7 8# ERR-NOT: remark 9# ERR: remark: <unknown>:0:0: unable to legalize instruction: %1:_(<2 x s16>) = G_SEXTLOAD %0:_(p1) :: (load 2, addrspace 1) (in function: test_sextload_global_v2i16_from_2) 10# ERR-NEXT: remark: <unknown>:0:0: unable to legalize instruction: %1:_(<2 x s32>) = G_SEXTLOAD %0:_(p1) :: (load 2, addrspace 1) (in function: test_sextload_global_v2i32_from_2) 11# ERR-NEXT: remark: <unknown>:0:0: unable to legalize instruction: %1:_(<2 x s32>) = G_SEXTLOAD %0:_(p1) :: (load 4, addrspace 1) (in function: test_sextload_global_v2i32_from_4) 12# ERR-NEXT: remark: <unknown>:0:0: unable to legalize instruction: %1:_(<2 x s64>) = G_SEXTLOAD %0:_(p1) :: (load 4, addrspace 1) (in function: test_sextload_global_v2i64_from_4) 13# ERR-NEXT: remark: <unknown>:0:0: unable to legalize instruction: %1:_(<2 x s64>) = G_SEXTLOAD %0:_(p1) :: (load 8, addrspace 1) (in function: test_sextload_global_v2i64_from_8) 14# ERR-NOT: remark 15 16--- 17name: test_sextload_global_i32_i8 18body: | 19 bb.0: 20 liveins: $vgpr0_vgpr1 21 22 ; GFX8-LABEL: name: test_sextload_global_i32_i8 23 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 24 ; GFX8: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load 1, addrspace 1) 25 ; GFX8: $vgpr0 = COPY [[SEXTLOAD]](s32) 26 ; GFX6-LABEL: name: test_sextload_global_i32_i8 27 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 28 ; GFX6: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load 1, addrspace 1) 29 ; GFX6: $vgpr0 = COPY [[SEXTLOAD]](s32) 30 %0:_(p1) = COPY $vgpr0_vgpr1 31 %1:_(s32) = G_SEXTLOAD %0 :: (load 1, addrspace 1) 32 $vgpr0 = COPY %1 33... 34--- 35name: test_sextload_global_i32_i16 36body: | 37 bb.0: 38 liveins: $vgpr0_vgpr1 39 40 ; GFX8-LABEL: name: test_sextload_global_i32_i16 41 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 42 ; GFX8: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load 2, addrspace 1) 43 ; GFX8: $vgpr0 = COPY [[SEXTLOAD]](s32) 44 ; GFX6-LABEL: name: test_sextload_global_i32_i16 45 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 46 ; GFX6: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load 2, addrspace 1) 47 ; GFX6: $vgpr0 = COPY [[SEXTLOAD]](s32) 48 %0:_(p1) = COPY $vgpr0_vgpr1 49 %1:_(s32) = G_SEXTLOAD %0 :: (load 2, addrspace 1) 50 $vgpr0 = COPY %1 51... 52--- 53name: test_sextload_global_i31_i8 54body: | 55 bb.0: 56 liveins: $vgpr0_vgpr1 57 58 ; GFX8-LABEL: name: test_sextload_global_i31_i8 59 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 60 ; GFX8: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load 1, addrspace 1) 61 ; GFX8: [[COPY1:%[0-9]+]]:_(s32) = COPY [[SEXTLOAD]](s32) 62 ; GFX8: $vgpr0 = COPY [[COPY1]](s32) 63 ; GFX6-LABEL: name: test_sextload_global_i31_i8 64 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 65 ; GFX6: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load 1, addrspace 1) 66 ; GFX6: [[COPY1:%[0-9]+]]:_(s32) = COPY [[SEXTLOAD]](s32) 67 ; GFX6: $vgpr0 = COPY [[COPY1]](s32) 68 %0:_(p1) = COPY $vgpr0_vgpr1 69 %1:_(s31) = G_SEXTLOAD %0 :: (load 1, addrspace 1) 70 %2:_(s32) = G_ANYEXT %1 71 $vgpr0 = COPY %2 72... 73--- 74name: test_sextload_global_i64_i8 75body: | 76 bb.0: 77 liveins: $vgpr0_vgpr1 78 79 ; GFX8-LABEL: name: test_sextload_global_i64_i8 80 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 81 ; GFX8: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load 1, addrspace 1) 82 ; GFX8: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32) 83 ; GFX8: $vgpr0_vgpr1 = COPY [[SEXT]](s64) 84 ; GFX6-LABEL: name: test_sextload_global_i64_i8 85 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 86 ; GFX6: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load 1, addrspace 1) 87 ; GFX6: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32) 88 ; GFX6: $vgpr0_vgpr1 = COPY [[SEXT]](s64) 89 %0:_(p1) = COPY $vgpr0_vgpr1 90 %1:_(s64) = G_SEXTLOAD %0 :: (load 1, addrspace 1) 91 $vgpr0_vgpr1 = COPY %1 92... 93--- 94name: test_sextload_global_i64_i16 95body: | 96 bb.0: 97 liveins: $vgpr0_vgpr1 98 99 ; GFX8-LABEL: name: test_sextload_global_i64_i16 100 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 101 ; GFX8: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load 2, addrspace 1) 102 ; GFX8: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32) 103 ; GFX8: $vgpr0_vgpr1 = COPY [[SEXT]](s64) 104 ; GFX6-LABEL: name: test_sextload_global_i64_i16 105 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 106 ; GFX6: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load 2, addrspace 1) 107 ; GFX6: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32) 108 ; GFX6: $vgpr0_vgpr1 = COPY [[SEXT]](s64) 109 %0:_(p1) = COPY $vgpr0_vgpr1 110 %1:_(s64) = G_SEXTLOAD %0 :: (load 2, addrspace 1) 111 $vgpr0_vgpr1 = COPY %1 112... 113--- 114name: test_sextload_global_i64_i32 115body: | 116 bb.0: 117 liveins: $vgpr0_vgpr1 118 119 ; GFX8-LABEL: name: test_sextload_global_i64_i32 120 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 121 ; GFX8: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load 4, addrspace 1) 122 ; GFX8: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[LOAD]](s32) 123 ; GFX8: $vgpr0_vgpr1 = COPY [[SEXT]](s64) 124 ; GFX6-LABEL: name: test_sextload_global_i64_i32 125 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 126 ; GFX6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load 4, addrspace 1) 127 ; GFX6: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[LOAD]](s32) 128 ; GFX6: $vgpr0_vgpr1 = COPY [[SEXT]](s64) 129 %0:_(p1) = COPY $vgpr0_vgpr1 130 %1:_(s64) = G_SEXTLOAD %0 :: (load 4, addrspace 1) 131 $vgpr0_vgpr1 = COPY %1 132... 133 134--- 135name: test_sextload_global_s32_from_2_align1 136body: | 137 bb.0: 138 liveins: $vgpr0_vgpr1 139 140 ; GFX8-LABEL: name: test_sextload_global_s32_from_2_align1 141 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 142 ; GFX8: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load 1, addrspace 1) 143 ; GFX8: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1 144 ; GFX8: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[C]](s64) 145 ; GFX8: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p1) :: (load 1 + 1, addrspace 1) 146 ; GFX8: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255 147 ; GFX8: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32) 148 ; GFX8: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]] 149 ; GFX8: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32) 150 ; GFX8: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C1]] 151 ; GFX8: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 8 152 ; GFX8: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C2]](s16) 153 ; GFX8: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]] 154 ; GFX8: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[OR]](s16) 155 ; GFX8: $vgpr0 = COPY [[SEXT]](s32) 156 ; GFX6-LABEL: name: test_sextload_global_s32_from_2_align1 157 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 158 ; GFX6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load 1, addrspace 1) 159 ; GFX6: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1 160 ; GFX6: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[C]](s64) 161 ; GFX6: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p1) :: (load 1 + 1, addrspace 1) 162 ; GFX6: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255 163 ; GFX6: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32) 164 ; GFX6: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]] 165 ; GFX6: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8 166 ; GFX6: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255 167 ; GFX6: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32) 168 ; GFX6: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]] 169 ; GFX6: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32) 170 ; GFX6: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32) 171 ; GFX6: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]] 172 ; GFX6: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[OR]](s16) 173 ; GFX6: $vgpr0 = COPY [[SEXT]](s32) 174 %0:_(p1) = COPY $vgpr0_vgpr1 175 %1:_(s32) = G_SEXTLOAD %0 :: (load 2, align 1, addrspace 1) 176 $vgpr0 = COPY %1 177... 178 179--- 180name: test_sextload_global_s64_from_2_align1 181body: | 182 bb.0: 183 liveins: $vgpr0_vgpr1 184 185 ; GFX8-LABEL: name: test_sextload_global_s64_from_2_align1 186 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 187 ; GFX8: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load 1, addrspace 1) 188 ; GFX8: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1 189 ; GFX8: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[C]](s64) 190 ; GFX8: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p1) :: (load 1 + 1, addrspace 1) 191 ; GFX8: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255 192 ; GFX8: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32) 193 ; GFX8: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]] 194 ; GFX8: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD1]](s32) 195 ; GFX8: [[AND1:%[0-9]+]]:_(s16) = G_AND [[TRUNC1]], [[C1]] 196 ; GFX8: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 8 197 ; GFX8: [[SHL:%[0-9]+]]:_(s16) = G_SHL [[AND1]], [[C2]](s16) 198 ; GFX8: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[SHL]] 199 ; GFX8: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[OR]](s16) 200 ; GFX8: $vgpr0_vgpr1 = COPY [[SEXT]](s64) 201 ; GFX6-LABEL: name: test_sextload_global_s64_from_2_align1 202 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 203 ; GFX6: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load 1, addrspace 1) 204 ; GFX6: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1 205 ; GFX6: [[PTR_ADD:%[0-9]+]]:_(p1) = G_PTR_ADD [[COPY]], [[C]](s64) 206 ; GFX6: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[PTR_ADD]](p1) :: (load 1 + 1, addrspace 1) 207 ; GFX6: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 255 208 ; GFX6: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[LOAD]](s32) 209 ; GFX6: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C1]] 210 ; GFX6: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 8 211 ; GFX6: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 255 212 ; GFX6: [[COPY1:%[0-9]+]]:_(s32) = COPY [[LOAD1]](s32) 213 ; GFX6: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C3]] 214 ; GFX6: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C2]](s32) 215 ; GFX6: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[SHL]](s32) 216 ; GFX6: [[OR:%[0-9]+]]:_(s16) = G_OR [[AND]], [[TRUNC1]] 217 ; GFX6: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[OR]](s16) 218 ; GFX6: $vgpr0_vgpr1 = COPY [[SEXT]](s64) 219 %0:_(p1) = COPY $vgpr0_vgpr1 220 %1:_(s64) = G_SEXTLOAD %0 :: (load 2, align 1, addrspace 1) 221 $vgpr0_vgpr1 = COPY %1 222... 223 224--- 225name: test_sextload_global_v2i16_from_2 226body: | 227 bb.0: 228 liveins: $vgpr0_vgpr1 229 230 ; GFX8-LABEL: name: test_sextload_global_v2i16_from_2 231 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 232 ; GFX8: [[SEXTLOAD:%[0-9]+]]:_(<2 x s16>) = G_SEXTLOAD [[COPY]](p1) :: (load 2, addrspace 1) 233 ; GFX8: $vgpr0 = COPY [[SEXTLOAD]](<2 x s16>) 234 ; GFX6-LABEL: name: test_sextload_global_v2i16_from_2 235 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 236 ; GFX6: [[SEXTLOAD:%[0-9]+]]:_(<2 x s16>) = G_SEXTLOAD [[COPY]](p1) :: (load 2, addrspace 1) 237 ; GFX6: $vgpr0 = COPY [[SEXTLOAD]](<2 x s16>) 238 %0:_(p1) = COPY $vgpr0_vgpr1 239 %1:_(<2 x s16>) = G_SEXTLOAD %0 :: (load 2, addrspace 1) 240 $vgpr0 = COPY %1 241... 242 243--- 244name: test_sextload_global_v2i32_from_2 245body: | 246 bb.0: 247 liveins: $vgpr0_vgpr1 248 249 ; GFX8-LABEL: name: test_sextload_global_v2i32_from_2 250 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 251 ; GFX8: [[SEXTLOAD:%[0-9]+]]:_(<2 x s32>) = G_SEXTLOAD [[COPY]](p1) :: (load 2, addrspace 1) 252 ; GFX8: $vgpr0_vgpr1 = COPY [[SEXTLOAD]](<2 x s32>) 253 ; GFX6-LABEL: name: test_sextload_global_v2i32_from_2 254 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 255 ; GFX6: [[SEXTLOAD:%[0-9]+]]:_(<2 x s32>) = G_SEXTLOAD [[COPY]](p1) :: (load 2, addrspace 1) 256 ; GFX6: $vgpr0_vgpr1 = COPY [[SEXTLOAD]](<2 x s32>) 257 %0:_(p1) = COPY $vgpr0_vgpr1 258 %1:_(<2 x s32>) = G_SEXTLOAD %0 :: (load 2, addrspace 1) 259 $vgpr0_vgpr1 = COPY %1 260... 261 262--- 263name: test_sextload_global_v2i32_from_4 264body: | 265 bb.0: 266 liveins: $vgpr0_vgpr1 267 268 ; GFX8-LABEL: name: test_sextload_global_v2i32_from_4 269 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 270 ; GFX8: [[SEXTLOAD:%[0-9]+]]:_(<2 x s32>) = G_SEXTLOAD [[COPY]](p1) :: (load 4, addrspace 1) 271 ; GFX8: $vgpr0_vgpr1 = COPY [[SEXTLOAD]](<2 x s32>) 272 ; GFX6-LABEL: name: test_sextload_global_v2i32_from_4 273 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 274 ; GFX6: [[SEXTLOAD:%[0-9]+]]:_(<2 x s32>) = G_SEXTLOAD [[COPY]](p1) :: (load 4, addrspace 1) 275 ; GFX6: $vgpr0_vgpr1 = COPY [[SEXTLOAD]](<2 x s32>) 276 %0:_(p1) = COPY $vgpr0_vgpr1 277 %1:_(<2 x s32>) = G_SEXTLOAD %0 :: (load 4, addrspace 1) 278 $vgpr0_vgpr1 = COPY %1 279... 280 281--- 282name: test_sextload_global_v2i64_from_4 283body: | 284 bb.0: 285 liveins: $vgpr0_vgpr1 286 287 ; GFX8-LABEL: name: test_sextload_global_v2i64_from_4 288 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 289 ; GFX8: [[SEXTLOAD:%[0-9]+]]:_(<2 x s64>) = G_SEXTLOAD [[COPY]](p1) :: (load 4, addrspace 1) 290 ; GFX8: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXTLOAD]](<2 x s64>) 291 ; GFX6-LABEL: name: test_sextload_global_v2i64_from_4 292 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 293 ; GFX6: [[SEXTLOAD:%[0-9]+]]:_(<2 x s64>) = G_SEXTLOAD [[COPY]](p1) :: (load 4, addrspace 1) 294 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXTLOAD]](<2 x s64>) 295 %0:_(p1) = COPY $vgpr0_vgpr1 296 %1:_(<2 x s64>) = G_SEXTLOAD %0 :: (load 4, addrspace 1) 297 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1 298... 299 300--- 301name: test_sextload_global_v2i64_from_8 302body: | 303 bb.0: 304 liveins: $vgpr0_vgpr1 305 306 ; GFX8-LABEL: name: test_sextload_global_v2i64_from_8 307 ; GFX8: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 308 ; GFX8: [[SEXTLOAD:%[0-9]+]]:_(<2 x s64>) = G_SEXTLOAD [[COPY]](p1) :: (load 8, addrspace 1) 309 ; GFX8: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXTLOAD]](<2 x s64>) 310 ; GFX6-LABEL: name: test_sextload_global_v2i64_from_8 311 ; GFX6: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1 312 ; GFX6: [[SEXTLOAD:%[0-9]+]]:_(<2 x s64>) = G_SEXTLOAD [[COPY]](p1) :: (load 8, addrspace 1) 313 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXTLOAD]](<2 x s64>) 314 %0:_(p1) = COPY $vgpr0_vgpr1 315 %1:_(<2 x s64>) = G_SEXTLOAD %0 :: (load 8, addrspace 1) 316 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1 317... 318