brintos

brintos / llvm-project-archived public Read only

0
0
Text · 20.9 KiB · 477239a Raw
508 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -run-pass=legalizer -global-isel-abort=2 -pass-remarks-missed='gisel*' -o - 2> %t %s | FileCheck -check-prefix=GFX8 %s3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer -global-isel-abort=2 -o - %s | FileCheck -check-prefix=GFX6  %s4# RUN: FileCheck -check-prefixes=ERR %s < %t5 6# FIXME: Run with and without unaligned access turned on7 8# ERR-NOT: remark9# ERR: remark: <unknown>:0:0: unable to legalize instruction: %1:_(<2 x s16>) = G_SEXTLOAD %0:_(p1) :: (load (<2 x s8>), addrspace 1) (in function: test_sextload_global_v2i16_from_v2s8)10# ERR-NEXT: remark: <unknown>:0:0: unable to legalize instruction: %1:_(<2 x s32>) = G_SEXTLOAD %0:_(p1) :: (load (<2 x s8>), addrspace 1) (in function: test_sextload_global_v2i32_from_v2s8)11# ERR-NEXT: remark: <unknown>:0:0: unable to legalize instruction: %1:_(<2 x s32>) = G_SEXTLOAD %0:_(p1) :: (load (<2 x s16>), addrspace 1) (in function: test_sextload_global_v2i32_from_v2s16)12# ERR-NEXT: remark: <unknown>:0:0: unable to legalize instruction: %1:_(<2 x s64>) = G_SEXTLOAD %0:_(p1) :: (load (<2 x s16>), addrspace 1) (in function: test_sextload_global_v2i64_from_v2s16)13# ERR-NEXT: remark: <unknown>:0:0: unable to legalize instruction: %1:_(<2 x s64>) = G_SEXTLOAD %0:_(p1) :: (load (<2 x s32>), addrspace 1) (in function: test_sextload_global_v2i64_from_v2s32)14# ERR-NEXT: remark: <unknown>:0:0: unable to legalize instruction: %1:_(s128) = G_SEXTLOAD %0:_(p1) :: (load (s64), addrspace 1) (in function: test_sextload_global_s128_8)15# ERR-NOT: remark16 17---18name: test_sextload_global_i32_i119body: |20  bb.0:21    liveins: $vgpr0_vgpr122 23    ; GFX8-LABEL: name: test_sextload_global_i32_i124    ; GFX8: liveins: $vgpr0_vgpr125    ; GFX8-NEXT: {{  $}}26    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr127    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s8), addrspace 1)28    ; GFX8-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[LOAD]], 129    ; GFX8-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)30    ;31    ; GFX6-LABEL: name: test_sextload_global_i32_i132    ; GFX6: liveins: $vgpr0_vgpr133    ; GFX6-NEXT: {{  $}}34    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr135    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s8), addrspace 1)36    ; GFX6-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[LOAD]], 137    ; GFX6-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)38    %0:_(p1) = COPY $vgpr0_vgpr139    %1:_(s32) = G_SEXTLOAD %0 :: (load (s1), addrspace 1)40    $vgpr0 = COPY %141...42 43---44name: test_sextload_global_i32_i745body: |46  bb.0:47    liveins: $vgpr0_vgpr148 49    ; GFX8-LABEL: name: test_sextload_global_i32_i750    ; GFX8: liveins: $vgpr0_vgpr151    ; GFX8-NEXT: {{  $}}52    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr153    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s8), addrspace 1)54    ; GFX8-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[LOAD]], 755    ; GFX8-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)56    ;57    ; GFX6-LABEL: name: test_sextload_global_i32_i758    ; GFX6: liveins: $vgpr0_vgpr159    ; GFX6-NEXT: {{  $}}60    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr161    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s8), addrspace 1)62    ; GFX6-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[LOAD]], 763    ; GFX6-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)64    %0:_(p1) = COPY $vgpr0_vgpr165    %1:_(s32) = G_SEXTLOAD %0 :: (load (s7), addrspace 1)66    $vgpr0 = COPY %167...68---69name: test_sextload_global_i32_i2470body: |71  bb.0:72    liveins: $vgpr0_vgpr173 74    ; GFX8-LABEL: name: test_sextload_global_i32_i2475    ; GFX8: liveins: $vgpr0_vgpr176    ; GFX8-NEXT: {{  $}}77    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr178    ; GFX8-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p1) :: (load (s16), align 4, addrspace 1)79    ; GFX8-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 280    ; GFX8-NEXT: [[PTR_ADD:%[0-9]+]]:_(p1) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s64)81    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[PTR_ADD]](p1) :: (load (s8) from unknown-address + 2, align 2, addrspace 1)82    ; GFX8-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1683    ; GFX8-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[SEXTLOAD]], [[C1]](s32)84    ; GFX8-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL]], [[ZEXTLOAD]]85    ; GFX8-NEXT: $vgpr0 = COPY [[OR]](s32)86    ;87    ; GFX6-LABEL: name: test_sextload_global_i32_i2488    ; GFX6: liveins: $vgpr0_vgpr189    ; GFX6-NEXT: {{  $}}90    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr191    ; GFX6-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p1) :: (load (s16), align 4, addrspace 1)92    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 293    ; GFX6-NEXT: [[PTR_ADD:%[0-9]+]]:_(p1) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s64)94    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[PTR_ADD]](p1) :: (load (s8) from unknown-address + 2, align 2, addrspace 1)95    ; GFX6-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 1696    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[SEXTLOAD]], [[C1]](s32)97    ; GFX6-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL]], [[ZEXTLOAD]]98    ; GFX6-NEXT: $vgpr0 = COPY [[OR]](s32)99    %0:_(p1) = COPY $vgpr0_vgpr1100    %1:_(s32) = G_SEXTLOAD %0 :: (load (s24), addrspace 1)101    $vgpr0 = COPY %1102...103 104---105name: test_sextload_global_i32_i30106body: |107  bb.0:108    liveins: $vgpr0_vgpr1109 110    ; GFX8-LABEL: name: test_sextload_global_i32_i30111    ; GFX8: liveins: $vgpr0_vgpr1112    ; GFX8-NEXT: {{  $}}113    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1114    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), addrspace 1)115    ; GFX8-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[LOAD]], 30116    ; GFX8-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)117    ;118    ; GFX6-LABEL: name: test_sextload_global_i32_i30119    ; GFX6: liveins: $vgpr0_vgpr1120    ; GFX6-NEXT: {{  $}}121    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1122    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), addrspace 1)123    ; GFX6-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[LOAD]], 30124    ; GFX6-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)125    %0:_(p1) = COPY $vgpr0_vgpr1126    %1:_(s32) = G_SEXTLOAD %0 :: (load (s30), addrspace 1)127    $vgpr0 = COPY %1128...129 130---131name: test_sextload_global_i32_i31132body: |133  bb.0:134    liveins: $vgpr0_vgpr1135 136    ; GFX8-LABEL: name: test_sextload_global_i32_i31137    ; GFX8: liveins: $vgpr0_vgpr1138    ; GFX8-NEXT: {{  $}}139    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1140    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), addrspace 1)141    ; GFX8-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[LOAD]], 31142    ; GFX8-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)143    ;144    ; GFX6-LABEL: name: test_sextload_global_i32_i31145    ; GFX6: liveins: $vgpr0_vgpr1146    ; GFX6-NEXT: {{  $}}147    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1148    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), addrspace 1)149    ; GFX6-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[LOAD]], 31150    ; GFX6-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)151    %0:_(p1) = COPY $vgpr0_vgpr1152    %1:_(s32) = G_SEXTLOAD %0 :: (load (s31), addrspace 1)153    $vgpr0 = COPY %1154...155 156---157name: test_sextload_global_i32_i8158body: |159  bb.0:160    liveins: $vgpr0_vgpr1161 162    ; GFX8-LABEL: name: test_sextload_global_i32_i8163    ; GFX8: liveins: $vgpr0_vgpr1164    ; GFX8-NEXT: {{  $}}165    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1166    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)167    ; GFX8-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)168    ;169    ; GFX6-LABEL: name: test_sextload_global_i32_i8170    ; GFX6: liveins: $vgpr0_vgpr1171    ; GFX6-NEXT: {{  $}}172    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1173    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)174    ; GFX6-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)175    %0:_(p1) = COPY $vgpr0_vgpr1176    %1:_(s32) = G_SEXTLOAD %0 :: (load (s8), addrspace 1)177    $vgpr0 = COPY %1178...179 180---181name: test_sextload_global_i32_i16182body: |183  bb.0:184    liveins: $vgpr0_vgpr1185 186    ; GFX8-LABEL: name: test_sextload_global_i32_i16187    ; GFX8: liveins: $vgpr0_vgpr1188    ; GFX8-NEXT: {{  $}}189    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1190    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s16), addrspace 1)191    ; GFX8-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)192    ;193    ; GFX6-LABEL: name: test_sextload_global_i32_i16194    ; GFX6: liveins: $vgpr0_vgpr1195    ; GFX6-NEXT: {{  $}}196    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1197    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s16), addrspace 1)198    ; GFX6-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)199    %0:_(p1) = COPY $vgpr0_vgpr1200    %1:_(s32) = G_SEXTLOAD %0 :: (load (s16), addrspace 1)201    $vgpr0 = COPY %1202...203---204name: test_sextload_global_i31_i8205body: |206  bb.0:207    liveins: $vgpr0_vgpr1208 209    ; GFX8-LABEL: name: test_sextload_global_i31_i8210    ; GFX8: liveins: $vgpr0_vgpr1211    ; GFX8-NEXT: {{  $}}212    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1213    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)214    ; GFX8-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)215    ;216    ; GFX6-LABEL: name: test_sextload_global_i31_i8217    ; GFX6: liveins: $vgpr0_vgpr1218    ; GFX6-NEXT: {{  $}}219    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1220    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)221    ; GFX6-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)222    %0:_(p1) = COPY $vgpr0_vgpr1223    %1:_(s31) = G_SEXTLOAD %0 :: (load (s8), addrspace 1)224    %2:_(s32) = G_ANYEXT %1225    $vgpr0 = COPY %2226...227---228name: test_sextload_global_i64_i8229body: |230  bb.0:231    liveins: $vgpr0_vgpr1232 233    ; GFX8-LABEL: name: test_sextload_global_i64_i8234    ; GFX8: liveins: $vgpr0_vgpr1235    ; GFX8-NEXT: {{  $}}236    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1237    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)238    ; GFX8-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)239    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)240    ;241    ; GFX6-LABEL: name: test_sextload_global_i64_i8242    ; GFX6: liveins: $vgpr0_vgpr1243    ; GFX6-NEXT: {{  $}}244    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1245    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)246    ; GFX6-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)247    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)248    %0:_(p1) = COPY $vgpr0_vgpr1249    %1:_(s64) = G_SEXTLOAD %0 :: (load (s8), addrspace 1)250    $vgpr0_vgpr1 = COPY %1251...252---253name: test_sextload_global_i64_i16254body: |255  bb.0:256    liveins: $vgpr0_vgpr1257 258    ; GFX8-LABEL: name: test_sextload_global_i64_i16259    ; GFX8: liveins: $vgpr0_vgpr1260    ; GFX8-NEXT: {{  $}}261    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1262    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s16), addrspace 1)263    ; GFX8-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)264    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)265    ;266    ; GFX6-LABEL: name: test_sextload_global_i64_i16267    ; GFX6: liveins: $vgpr0_vgpr1268    ; GFX6-NEXT: {{  $}}269    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1270    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s16), addrspace 1)271    ; GFX6-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)272    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)273    %0:_(p1) = COPY $vgpr0_vgpr1274    %1:_(s64) = G_SEXTLOAD %0 :: (load (s16), addrspace 1)275    $vgpr0_vgpr1 = COPY %1276...277---278name: test_sextload_global_i64_i32279body: |280  bb.0:281    liveins: $vgpr0_vgpr1282 283    ; GFX8-LABEL: name: test_sextload_global_i64_i32284    ; GFX8: liveins: $vgpr0_vgpr1285    ; GFX8-NEXT: {{  $}}286    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1287    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), addrspace 1)288    ; GFX8-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[LOAD]](s32)289    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)290    ;291    ; GFX6-LABEL: name: test_sextload_global_i64_i32292    ; GFX6: liveins: $vgpr0_vgpr1293    ; GFX6-NEXT: {{  $}}294    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1295    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p1) :: (load (s32), addrspace 1)296    ; GFX6-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[LOAD]](s32)297    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)298    %0:_(p1) = COPY $vgpr0_vgpr1299    %1:_(s64) = G_SEXTLOAD %0 :: (load (s32), addrspace 1)300    $vgpr0_vgpr1 = COPY %1301...302 303---304name: test_sextload_global_s32_from_2_align1305body: |306  bb.0:307    liveins: $vgpr0_vgpr1308 309    ; GFX8-LABEL: name: test_sextload_global_s32_from_2_align1310    ; GFX8: liveins: $vgpr0_vgpr1311    ; GFX8-NEXT: {{  $}}312    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1313    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s16), align 1, addrspace 1)314    ; GFX8-NEXT: $vgpr0 = COPY [[SEXTLOAD]](s32)315    ;316    ; GFX6-LABEL: name: test_sextload_global_s32_from_2_align1317    ; GFX6: liveins: $vgpr0_vgpr1318    ; GFX6-NEXT: {{  $}}319    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1320    ; GFX6-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)321    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1322    ; GFX6-NEXT: [[PTR_ADD:%[0-9]+]]:_(p1) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s64)323    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[PTR_ADD]](p1) :: (load (s8) from unknown-address + 1, addrspace 1)324    ; GFX6-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8325    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[SEXTLOAD]], [[C1]](s32)326    ; GFX6-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL]], [[ZEXTLOAD]]327    ; GFX6-NEXT: $vgpr0 = COPY [[OR]](s32)328    %0:_(p1) = COPY $vgpr0_vgpr1329    %1:_(s32) = G_SEXTLOAD %0 :: (load (s16), align 1, addrspace 1)330    $vgpr0 = COPY %1331...332 333---334name: test_sextload_global_s64_from_2_align1335body: |336  bb.0:337    liveins: $vgpr0_vgpr1338 339    ; GFX8-LABEL: name: test_sextload_global_s64_from_2_align1340    ; GFX8: liveins: $vgpr0_vgpr1341    ; GFX8-NEXT: {{  $}}342    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1343    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[COPY]](p1) :: (load (s16), align 1, addrspace 1)344    ; GFX8-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[SEXTLOAD]](s32)345    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)346    ;347    ; GFX6-LABEL: name: test_sextload_global_s64_from_2_align1348    ; GFX6: liveins: $vgpr0_vgpr1349    ; GFX6-NEXT: {{  $}}350    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1351    ; GFX6-NEXT: [[ZEXTLOAD:%[0-9]+]]:_(s32) = G_ZEXTLOAD [[COPY]](p1) :: (load (s8), addrspace 1)352    ; GFX6-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1353    ; GFX6-NEXT: [[PTR_ADD:%[0-9]+]]:_(p1) = nuw inbounds G_PTR_ADD [[COPY]], [[C]](s64)354    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s32) = G_SEXTLOAD [[PTR_ADD]](p1) :: (load (s8) from unknown-address + 1, addrspace 1)355    ; GFX6-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 8356    ; GFX6-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[SEXTLOAD]], [[C1]](s32)357    ; GFX6-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL]], [[ZEXTLOAD]]358    ; GFX6-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[OR]](s32)359    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](s64)360    %0:_(p1) = COPY $vgpr0_vgpr1361    %1:_(s64) = G_SEXTLOAD %0 :: (load (s16), align 1, addrspace 1)362    $vgpr0_vgpr1 = COPY %1363...364 365---366name: test_sextload_global_v2i16_from_v2s8367body: |368  bb.0:369    liveins: $vgpr0_vgpr1370 371    ; GFX8-LABEL: name: test_sextload_global_v2i16_from_v2s8372    ; GFX8: liveins: $vgpr0_vgpr1373    ; GFX8-NEXT: {{  $}}374    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1375    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(<2 x s16>) = G_SEXTLOAD [[COPY]](p1) :: (load (<2 x s8>), addrspace 1)376    ; GFX8-NEXT: $vgpr0 = COPY [[SEXTLOAD]](<2 x s16>)377    ;378    ; GFX6-LABEL: name: test_sextload_global_v2i16_from_v2s8379    ; GFX6: liveins: $vgpr0_vgpr1380    ; GFX6-NEXT: {{  $}}381    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1382    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(<2 x s16>) = G_SEXTLOAD [[COPY]](p1) :: (load (<2 x s8>), addrspace 1)383    ; GFX6-NEXT: $vgpr0 = COPY [[SEXTLOAD]](<2 x s16>)384    %0:_(p1) = COPY $vgpr0_vgpr1385    %1:_(<2 x s16>) = G_SEXTLOAD %0 :: (load (<2 x s8>), addrspace 1)386    $vgpr0 = COPY %1387...388 389---390name: test_sextload_global_v2i32_from_v2s8391body: |392  bb.0:393    liveins: $vgpr0_vgpr1394 395    ; GFX8-LABEL: name: test_sextload_global_v2i32_from_v2s8396    ; GFX8: liveins: $vgpr0_vgpr1397    ; GFX8-NEXT: {{  $}}398    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1399    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(<2 x s32>) = G_SEXTLOAD [[COPY]](p1) :: (load (<2 x s8>), addrspace 1)400    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[SEXTLOAD]](<2 x s32>)401    ;402    ; GFX6-LABEL: name: test_sextload_global_v2i32_from_v2s8403    ; GFX6: liveins: $vgpr0_vgpr1404    ; GFX6-NEXT: {{  $}}405    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1406    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(<2 x s32>) = G_SEXTLOAD [[COPY]](p1) :: (load (<2 x s8>), addrspace 1)407    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[SEXTLOAD]](<2 x s32>)408    %0:_(p1) = COPY $vgpr0_vgpr1409    %1:_(<2 x s32>) = G_SEXTLOAD %0 :: (load (<2 x s8>), addrspace 1)410    $vgpr0_vgpr1 = COPY %1411...412 413---414name: test_sextload_global_v2i32_from_v2s16415body: |416  bb.0:417    liveins: $vgpr0_vgpr1418 419    ; GFX8-LABEL: name: test_sextload_global_v2i32_from_v2s16420    ; GFX8: liveins: $vgpr0_vgpr1421    ; GFX8-NEXT: {{  $}}422    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1423    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(<2 x s32>) = G_SEXTLOAD [[COPY]](p1) :: (load (<2 x s16>), addrspace 1)424    ; GFX8-NEXT: $vgpr0_vgpr1 = COPY [[SEXTLOAD]](<2 x s32>)425    ;426    ; GFX6-LABEL: name: test_sextload_global_v2i32_from_v2s16427    ; GFX6: liveins: $vgpr0_vgpr1428    ; GFX6-NEXT: {{  $}}429    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1430    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(<2 x s32>) = G_SEXTLOAD [[COPY]](p1) :: (load (<2 x s16>), addrspace 1)431    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[SEXTLOAD]](<2 x s32>)432    %0:_(p1) = COPY $vgpr0_vgpr1433    %1:_(<2 x s32>) = G_SEXTLOAD %0 :: (load (<2 x s16>), addrspace 1)434    $vgpr0_vgpr1 = COPY %1435...436 437---438name: test_sextload_global_v2i64_from_v2s16439body: |440  bb.0:441    liveins: $vgpr0_vgpr1442 443    ; GFX8-LABEL: name: test_sextload_global_v2i64_from_v2s16444    ; GFX8: liveins: $vgpr0_vgpr1445    ; GFX8-NEXT: {{  $}}446    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1447    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(<2 x s64>) = G_SEXTLOAD [[COPY]](p1) :: (load (<2 x s16>), addrspace 1)448    ; GFX8-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXTLOAD]](<2 x s64>)449    ;450    ; GFX6-LABEL: name: test_sextload_global_v2i64_from_v2s16451    ; GFX6: liveins: $vgpr0_vgpr1452    ; GFX6-NEXT: {{  $}}453    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1454    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(<2 x s64>) = G_SEXTLOAD [[COPY]](p1) :: (load (<2 x s16>), addrspace 1)455    ; GFX6-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXTLOAD]](<2 x s64>)456    %0:_(p1) = COPY $vgpr0_vgpr1457    %1:_(<2 x s64>) = G_SEXTLOAD %0 :: (load (<2 x s16>), addrspace 1)458    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1459...460 461---462name: test_sextload_global_v2i64_from_v2s32463body: |464  bb.0:465    liveins: $vgpr0_vgpr1466 467    ; GFX8-LABEL: name: test_sextload_global_v2i64_from_v2s32468    ; GFX8: liveins: $vgpr0_vgpr1469    ; GFX8-NEXT: {{  $}}470    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1471    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(<2 x s64>) = G_SEXTLOAD [[COPY]](p1) :: (load (<2 x s32>), addrspace 1)472    ; GFX8-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXTLOAD]](<2 x s64>)473    ;474    ; GFX6-LABEL: name: test_sextload_global_v2i64_from_v2s32475    ; GFX6: liveins: $vgpr0_vgpr1476    ; GFX6-NEXT: {{  $}}477    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1478    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(<2 x s64>) = G_SEXTLOAD [[COPY]](p1) :: (load (<2 x s32>), addrspace 1)479    ; GFX6-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXTLOAD]](<2 x s64>)480    %0:_(p1) = COPY $vgpr0_vgpr1481    %1:_(<2 x s64>) = G_SEXTLOAD %0 :: (load (<2 x s32>), addrspace 1)482    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1483...484 485---486name: test_sextload_global_s128_8487body: |488  bb.0:489    liveins: $vgpr0_vgpr1490 491    ; GFX8-LABEL: name: test_sextload_global_s128_8492    ; GFX8: liveins: $vgpr0_vgpr1493    ; GFX8-NEXT: {{  $}}494    ; GFX8-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1495    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s128) = G_SEXTLOAD [[COPY]](p1) :: (load (s64), addrspace 1)496    ; GFX8-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXTLOAD]](s128)497    ;498    ; GFX6-LABEL: name: test_sextload_global_s128_8499    ; GFX6: liveins: $vgpr0_vgpr1500    ; GFX6-NEXT: {{  $}}501    ; GFX6-NEXT: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1502    ; GFX6-NEXT: [[SEXTLOAD:%[0-9]+]]:_(s128) = G_SEXTLOAD [[COPY]](p1) :: (load (s64), addrspace 1)503    ; GFX6-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXTLOAD]](s128)504    %0:_(p1) = COPY $vgpr0_vgpr1505    %1:_(s128) = G_SEXTLOAD %0 :: (load (s64), addrspace 1)506    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1507...508