brintos

brintos / llvm-project-archived public Read only

0
0
Text · 28.0 KiB · 7838e97 Raw
647 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -global-isel -mtriple=amdgcn -mcpu=fiji -run-pass="amdgpu-regbankselect,amdgpu-regbanklegalize" -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX8 %s3# RUN: llc -global-isel -mtriple=amdgcn -mcpu=gfx900 -run-pass="amdgpu-regbankselect,amdgpu-regbanklegalize" -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX9 %s4# RUN: llc -global-isel -mtriple=amdgcn -mcpu=gfx1010 -run-pass="amdgpu-regbankselect,amdgpu-regbanklegalize" -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX10 %s5 6---7name: constant_load_i8_align88legalized: true9 10body: |11 bb.0:12   liveins: $sgpr0_sgpr113    ; GFX8-LABEL: name: constant_load_i8_align814    ; GFX8: liveins: $sgpr0_sgpr115    ; GFX8-NEXT: {{  $}}16    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr117    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), align 8, addrspace 4)18    ; GFX8-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)19    ;20    ; GFX9-LABEL: name: constant_load_i8_align821    ; GFX9: liveins: $sgpr0_sgpr122    ; GFX9-NEXT: {{  $}}23    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr124    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), align 8, addrspace 4)25    ; GFX9-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)26    ;27    ; GFX10-LABEL: name: constant_load_i8_align828    ; GFX10: liveins: $sgpr0_sgpr129    ; GFX10-NEXT: {{  $}}30    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr131    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), align 8, addrspace 4)32    ; GFX10-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)33   %0:_(p1) = COPY $sgpr0_sgpr134   %1:_(s32) = G_LOAD %0 :: (invariant load (s8), align 8, addrspace 4)35   S_ENDPGM 0, implicit %136...37---38name: constant_load_i8_align439legalized: true40 41body: |42 bb.0:43   liveins: $sgpr0_sgpr144    ; GFX8-LABEL: name: constant_load_i8_align445    ; GFX8: liveins: $sgpr0_sgpr146    ; GFX8-NEXT: {{  $}}47    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr148    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)49    ; GFX8-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)50    ;51    ; GFX9-LABEL: name: constant_load_i8_align452    ; GFX9: liveins: $sgpr0_sgpr153    ; GFX9-NEXT: {{  $}}54    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr155    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)56    ; GFX9-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)57    ;58    ; GFX10-LABEL: name: constant_load_i8_align459    ; GFX10: liveins: $sgpr0_sgpr160    ; GFX10-NEXT: {{  $}}61    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr162    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)63    ; GFX10-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)64   %0:_(p1) = COPY $sgpr0_sgpr165   %1:_(s32) = G_LOAD %0 :: (invariant load (s8), align 4, addrspace 4)66   S_ENDPGM 0, implicit %167...68---69name: constant_load_i16_align470legalized: true71 72body: |73 bb.0:74   liveins: $sgpr0_sgpr175    ; GFX8-LABEL: name: constant_load_i16_align476    ; GFX8: liveins: $sgpr0_sgpr177    ; GFX8-NEXT: {{  $}}78    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr179    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)80    ; GFX8-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)81    ;82    ; GFX9-LABEL: name: constant_load_i16_align483    ; GFX9: liveins: $sgpr0_sgpr184    ; GFX9-NEXT: {{  $}}85    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr186    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)87    ; GFX9-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)88    ;89    ; GFX10-LABEL: name: constant_load_i16_align490    ; GFX10: liveins: $sgpr0_sgpr191    ; GFX10-NEXT: {{  $}}92    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr193    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)94    ; GFX10-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)95   %0:_(p1) = COPY $sgpr0_sgpr196   %1:_(s32) = G_LOAD %0 :: (invariant load (s16), align 4, addrspace 4)97   S_ENDPGM 0, implicit %198...99---100name: constant_sextload_i8_align4101legalized: true102 103body: |104 bb.0:105   liveins: $sgpr0_sgpr1106    ; GFX8-LABEL: name: constant_sextload_i8_align4107    ; GFX8: liveins: $sgpr0_sgpr1108    ; GFX8-NEXT: {{  $}}109    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1110    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)111    ; GFX8-NEXT: [[SEXT_INREG:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[LOAD]], 8112    ; GFX8-NEXT: S_ENDPGM 0, implicit [[SEXT_INREG]](s32)113    ;114    ; GFX9-LABEL: name: constant_sextload_i8_align4115    ; GFX9: liveins: $sgpr0_sgpr1116    ; GFX9-NEXT: {{  $}}117    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1118    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)119    ; GFX9-NEXT: [[SEXT_INREG:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[LOAD]], 8120    ; GFX9-NEXT: S_ENDPGM 0, implicit [[SEXT_INREG]](s32)121    ;122    ; GFX10-LABEL: name: constant_sextload_i8_align4123    ; GFX10: liveins: $sgpr0_sgpr1124    ; GFX10-NEXT: {{  $}}125    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1126    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)127    ; GFX10-NEXT: [[SEXT_INREG:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[LOAD]], 8128    ; GFX10-NEXT: S_ENDPGM 0, implicit [[SEXT_INREG]](s32)129   %0:_(p1) = COPY $sgpr0_sgpr1130   %1:_(s32) = G_SEXTLOAD %0 :: (invariant load (s8), align 4, addrspace 4)131   S_ENDPGM 0, implicit %1132...133---134name: constant_sextload_i16_align4135legalized: true136 137body: |138 bb.0:139   liveins: $sgpr0_sgpr1140    ; GFX8-LABEL: name: constant_sextload_i16_align4141    ; GFX8: liveins: $sgpr0_sgpr1142    ; GFX8-NEXT: {{  $}}143    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1144    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)145    ; GFX8-NEXT: [[SEXT_INREG:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[LOAD]], 16146    ; GFX8-NEXT: S_ENDPGM 0, implicit [[SEXT_INREG]](s32)147    ;148    ; GFX9-LABEL: name: constant_sextload_i16_align4149    ; GFX9: liveins: $sgpr0_sgpr1150    ; GFX9-NEXT: {{  $}}151    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1152    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)153    ; GFX9-NEXT: [[SEXT_INREG:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[LOAD]], 16154    ; GFX9-NEXT: S_ENDPGM 0, implicit [[SEXT_INREG]](s32)155    ;156    ; GFX10-LABEL: name: constant_sextload_i16_align4157    ; GFX10: liveins: $sgpr0_sgpr1158    ; GFX10-NEXT: {{  $}}159    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1160    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)161    ; GFX10-NEXT: [[SEXT_INREG:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[LOAD]], 16162    ; GFX10-NEXT: S_ENDPGM 0, implicit [[SEXT_INREG]](s32)163   %0:_(p1) = COPY $sgpr0_sgpr1164   %1:_(s32) = G_SEXTLOAD %0 :: (invariant load (s16), align 4, addrspace 4)165   S_ENDPGM 0, implicit %1166...167 168---169name: constant_zextload_i8_align4170legalized: true171 172body: |173 bb.0:174   liveins: $sgpr0_sgpr1175    ; GFX8-LABEL: name: constant_zextload_i8_align4176    ; GFX8: liveins: $sgpr0_sgpr1177    ; GFX8-NEXT: {{  $}}178    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1179    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)180    ; GFX8-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 255181    ; GFX8-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[LOAD]], [[C]]182    ; GFX8-NEXT: S_ENDPGM 0, implicit [[AND]](s32)183    ;184    ; GFX9-LABEL: name: constant_zextload_i8_align4185    ; GFX9: liveins: $sgpr0_sgpr1186    ; GFX9-NEXT: {{  $}}187    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1188    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)189    ; GFX9-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 255190    ; GFX9-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[LOAD]], [[C]]191    ; GFX9-NEXT: S_ENDPGM 0, implicit [[AND]](s32)192    ;193    ; GFX10-LABEL: name: constant_zextload_i8_align4194    ; GFX10: liveins: $sgpr0_sgpr1195    ; GFX10-NEXT: {{  $}}196    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1197    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)198    ; GFX10-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 255199    ; GFX10-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[LOAD]], [[C]]200    ; GFX10-NEXT: S_ENDPGM 0, implicit [[AND]](s32)201   %0:_(p1) = COPY $sgpr0_sgpr1202   %1:_(s32) = G_ZEXTLOAD %0 :: (invariant load (s8), align 4, addrspace 4)203   S_ENDPGM 0, implicit %1204...205---206name: constant_zextload_i16_align4207legalized: true208 209body: |210 bb.0:211   liveins: $sgpr0_sgpr1212    ; GFX8-LABEL: name: constant_zextload_i16_align4213    ; GFX8: liveins: $sgpr0_sgpr1214    ; GFX8-NEXT: {{  $}}215    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1216    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)217    ; GFX8-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 65535218    ; GFX8-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[LOAD]], [[C]]219    ; GFX8-NEXT: S_ENDPGM 0, implicit [[AND]](s32)220    ;221    ; GFX9-LABEL: name: constant_zextload_i16_align4222    ; GFX9: liveins: $sgpr0_sgpr1223    ; GFX9-NEXT: {{  $}}224    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1225    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)226    ; GFX9-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 65535227    ; GFX9-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[LOAD]], [[C]]228    ; GFX9-NEXT: S_ENDPGM 0, implicit [[AND]](s32)229    ;230    ; GFX10-LABEL: name: constant_zextload_i16_align4231    ; GFX10: liveins: $sgpr0_sgpr1232    ; GFX10-NEXT: {{  $}}233    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1234    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 4)235    ; GFX10-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 65535236    ; GFX10-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[LOAD]], [[C]]237    ; GFX10-NEXT: S_ENDPGM 0, implicit [[AND]](s32)238   %0:_(p1) = COPY $sgpr0_sgpr1239   %1:_(s32) = G_ZEXTLOAD %0 :: (invariant load (s16), align 4, addrspace 4)240   S_ENDPGM 0, implicit %1241...242---243name: global_load_i8_align4244legalized: true245 246body: |247 bb.0:248   liveins: $sgpr0_sgpr1249    ; GFX8-LABEL: name: global_load_i8_align4250    ; GFX8: liveins: $sgpr0_sgpr1251    ; GFX8-NEXT: {{  $}}252    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1253    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)254    ; GFX8-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)255    ;256    ; GFX9-LABEL: name: global_load_i8_align4257    ; GFX9: liveins: $sgpr0_sgpr1258    ; GFX9-NEXT: {{  $}}259    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1260    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)261    ; GFX9-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)262    ;263    ; GFX10-LABEL: name: global_load_i8_align4264    ; GFX10: liveins: $sgpr0_sgpr1265    ; GFX10-NEXT: {{  $}}266    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1267    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)268    ; GFX10-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)269   %0:_(p1) = COPY $sgpr0_sgpr1270   %1:_(s32) = G_LOAD %0 :: (invariant load (s8), align 4, addrspace 1)271   S_ENDPGM 0, implicit %1272...273---274name: global_load_i16_align4275legalized: true276 277body: |278 bb.0:279   liveins: $sgpr0_sgpr1280    ; GFX8-LABEL: name: global_load_i16_align4281    ; GFX8: liveins: $sgpr0_sgpr1282    ; GFX8-NEXT: {{  $}}283    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1284    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)285    ; GFX8-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)286    ;287    ; GFX9-LABEL: name: global_load_i16_align4288    ; GFX9: liveins: $sgpr0_sgpr1289    ; GFX9-NEXT: {{  $}}290    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1291    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)292    ; GFX9-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)293    ;294    ; GFX10-LABEL: name: global_load_i16_align4295    ; GFX10: liveins: $sgpr0_sgpr1296    ; GFX10-NEXT: {{  $}}297    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1298    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)299    ; GFX10-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)300   %0:_(p1) = COPY $sgpr0_sgpr1301   %1:_(s32) = G_LOAD %0 :: (invariant load (s16), align 4, addrspace 1)302   S_ENDPGM 0, implicit %1303...304---305name: global_sextload_i8_alig4306legalized: true307 308body: |309 bb.0:310   liveins: $sgpr0_sgpr1311    ; GFX8-LABEL: name: global_sextload_i8_alig4312    ; GFX8: liveins: $sgpr0_sgpr1313    ; GFX8-NEXT: {{  $}}314    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1315    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)316    ; GFX8-NEXT: [[SEXT_INREG:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[LOAD]], 8317    ; GFX8-NEXT: S_ENDPGM 0, implicit [[SEXT_INREG]](s32)318    ;319    ; GFX9-LABEL: name: global_sextload_i8_alig4320    ; GFX9: liveins: $sgpr0_sgpr1321    ; GFX9-NEXT: {{  $}}322    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1323    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)324    ; GFX9-NEXT: [[SEXT_INREG:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[LOAD]], 8325    ; GFX9-NEXT: S_ENDPGM 0, implicit [[SEXT_INREG]](s32)326    ;327    ; GFX10-LABEL: name: global_sextload_i8_alig4328    ; GFX10: liveins: $sgpr0_sgpr1329    ; GFX10-NEXT: {{  $}}330    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1331    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)332    ; GFX10-NEXT: [[SEXT_INREG:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[LOAD]], 8333    ; GFX10-NEXT: S_ENDPGM 0, implicit [[SEXT_INREG]](s32)334   %0:_(p1) = COPY $sgpr0_sgpr1335   %1:_(s32) = G_SEXTLOAD %0 :: (invariant load (s8), align 4, addrspace 1)336   S_ENDPGM 0, implicit %1337...338---339name: global_zextload_i16_align4340legalized: true341 342body: |343 bb.0:344   liveins: $sgpr0_sgpr1345    ; GFX8-LABEL: name: global_zextload_i16_align4346    ; GFX8: liveins: $sgpr0_sgpr1347    ; GFX8-NEXT: {{  $}}348    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1349    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)350    ; GFX8-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 65535351    ; GFX8-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[LOAD]], [[C]]352    ; GFX8-NEXT: S_ENDPGM 0, implicit [[AND]](s32)353    ;354    ; GFX9-LABEL: name: global_zextload_i16_align4355    ; GFX9: liveins: $sgpr0_sgpr1356    ; GFX9-NEXT: {{  $}}357    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1358    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)359    ; GFX9-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 65535360    ; GFX9-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[LOAD]], [[C]]361    ; GFX9-NEXT: S_ENDPGM 0, implicit [[AND]](s32)362    ;363    ; GFX10-LABEL: name: global_zextload_i16_align4364    ; GFX10: liveins: $sgpr0_sgpr1365    ; GFX10-NEXT: {{  $}}366    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1367    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:sgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s32), addrspace 1)368    ; GFX10-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 65535369    ; GFX10-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[LOAD]], [[C]]370    ; GFX10-NEXT: S_ENDPGM 0, implicit [[AND]](s32)371   %0:_(p1) = COPY $sgpr0_sgpr1372   %1:_(s32) = G_ZEXTLOAD %0 :: (invariant load (s16), align 4, addrspace 1)373   S_ENDPGM 0, implicit %1374...375# Some negative test cases376---377name: constant_load_i8_align2378legalized: true379body: |380  bb.0:381    liveins: $sgpr0_sgpr1382    ; GFX8-LABEL: name: constant_load_i8_align2383    ; GFX8: liveins: $sgpr0_sgpr1384    ; GFX8-NEXT: {{  $}}385    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1386    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s8), align 2, addrspace 4)387    ; GFX8-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[LOAD]]388    ; GFX8-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)389    ;390    ; GFX9-LABEL: name: constant_load_i8_align2391    ; GFX9: liveins: $sgpr0_sgpr1392    ; GFX9-NEXT: {{  $}}393    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1394    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s8), align 2, addrspace 4)395    ; GFX9-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[LOAD]]396    ; GFX9-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)397    ;398    ; GFX10-LABEL: name: constant_load_i8_align2399    ; GFX10: liveins: $sgpr0_sgpr1400    ; GFX10-NEXT: {{  $}}401    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1402    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s8), align 2, addrspace 4)403    ; GFX10-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[LOAD]]404    ; GFX10-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)405    %0:_(p1) = COPY $sgpr0_sgpr1406    %1:_(s32) = G_LOAD %0 :: (invariant load (s8), align 2, addrspace 4)407    S_ENDPGM 0, implicit %1408...409---410name: constant_load_i16_align2411legalized: true412 413body: |414  bb.0:415    liveins: $sgpr0_sgpr1416    ; GFX8-LABEL: name: constant_load_i16_align2417    ; GFX8: liveins: $sgpr0_sgpr1418    ; GFX8-NEXT: {{  $}}419    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1420    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s16), addrspace 4)421    ; GFX8-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[LOAD]]422    ; GFX8-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)423    ;424    ; GFX9-LABEL: name: constant_load_i16_align2425    ; GFX9: liveins: $sgpr0_sgpr1426    ; GFX9-NEXT: {{  $}}427    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1428    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s16), addrspace 4)429    ; GFX9-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[LOAD]]430    ; GFX9-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)431    ;432    ; GFX10-LABEL: name: constant_load_i16_align2433    ; GFX10: liveins: $sgpr0_sgpr1434    ; GFX10-NEXT: {{  $}}435    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1436    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY]](p1) :: (invariant load (s16), addrspace 4)437    ; GFX10-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[LOAD]]438    ; GFX10-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)439    %0:_(p1) = COPY $sgpr0_sgpr1440    %1:_(s32) = G_LOAD %0 :: (invariant load (s16), align 2, addrspace 4)441    S_ENDPGM 0, implicit %1442...443---444name: constant_sextload_i8_align2445legalized: true446 447body: |448  bb.0:449    liveins: $sgpr0_sgpr1450    ; GFX8-LABEL: name: constant_sextload_i8_align2451    ; GFX8: liveins: $sgpr0_sgpr1452    ; GFX8-NEXT: {{  $}}453    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1454    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:vgpr(s32) = G_SEXTLOAD [[COPY]](p1) :: (invariant load (s8), align 2, addrspace 4)455    ; GFX8-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[SEXTLOAD]]456    ; GFX8-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)457    ;458    ; GFX9-LABEL: name: constant_sextload_i8_align2459    ; GFX9: liveins: $sgpr0_sgpr1460    ; GFX9-NEXT: {{  $}}461    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1462    ; GFX9-NEXT: [[SEXTLOAD:%[0-9]+]]:vgpr(s32) = G_SEXTLOAD [[COPY]](p1) :: (invariant load (s8), align 2, addrspace 4)463    ; GFX9-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[SEXTLOAD]]464    ; GFX9-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)465    ;466    ; GFX10-LABEL: name: constant_sextload_i8_align2467    ; GFX10: liveins: $sgpr0_sgpr1468    ; GFX10-NEXT: {{  $}}469    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1470    ; GFX10-NEXT: [[SEXTLOAD:%[0-9]+]]:vgpr(s32) = G_SEXTLOAD [[COPY]](p1) :: (invariant load (s8), align 2, addrspace 4)471    ; GFX10-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[SEXTLOAD]]472    ; GFX10-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)473    %0:_(p1) = COPY $sgpr0_sgpr1474    %1:_(s32) = G_SEXTLOAD %0 :: (invariant load (s8), align 2, addrspace 4)475    S_ENDPGM 0, implicit %1476...477---478name: constant_sextload_i16_align2479legalized: true480 481body: |482  bb.0:483    liveins: $sgpr0_sgpr1484    ; GFX8-LABEL: name: constant_sextload_i16_align2485    ; GFX8: liveins: $sgpr0_sgpr1486    ; GFX8-NEXT: {{  $}}487    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1488    ; GFX8-NEXT: [[SEXTLOAD:%[0-9]+]]:vgpr(s32) = G_SEXTLOAD [[COPY]](p1) :: (invariant load (s16), addrspace 4)489    ; GFX8-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[SEXTLOAD]]490    ; GFX8-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)491    ;492    ; GFX9-LABEL: name: constant_sextload_i16_align2493    ; GFX9: liveins: $sgpr0_sgpr1494    ; GFX9-NEXT: {{  $}}495    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1496    ; GFX9-NEXT: [[SEXTLOAD:%[0-9]+]]:vgpr(s32) = G_SEXTLOAD [[COPY]](p1) :: (invariant load (s16), addrspace 4)497    ; GFX9-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[SEXTLOAD]]498    ; GFX9-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)499    ;500    ; GFX10-LABEL: name: constant_sextload_i16_align2501    ; GFX10: liveins: $sgpr0_sgpr1502    ; GFX10-NEXT: {{  $}}503    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1504    ; GFX10-NEXT: [[SEXTLOAD:%[0-9]+]]:vgpr(s32) = G_SEXTLOAD [[COPY]](p1) :: (invariant load (s16), addrspace 4)505    ; GFX10-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[SEXTLOAD]]506    ; GFX10-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)507    %0:_(p1) = COPY $sgpr0_sgpr1508    %1:_(s32) = G_SEXTLOAD %0 :: (invariant load (s16), align 2, addrspace 4)509    S_ENDPGM 0, implicit %1510...511---512name: constant_zextload_i8_align2513legalized: true514 515body: |516  bb.0:517    liveins: $sgpr0_sgpr1518    ; GFX8-LABEL: name: constant_zextload_i8_align2519    ; GFX8: liveins: $sgpr0_sgpr1520    ; GFX8-NEXT: {{  $}}521    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1522    ; GFX8-NEXT: [[ZEXTLOAD:%[0-9]+]]:vgpr(s32) = G_ZEXTLOAD [[COPY]](p1) :: (invariant load (s8), align 2, addrspace 4)523    ; GFX8-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[ZEXTLOAD]]524    ; GFX8-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)525    ;526    ; GFX9-LABEL: name: constant_zextload_i8_align2527    ; GFX9: liveins: $sgpr0_sgpr1528    ; GFX9-NEXT: {{  $}}529    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1530    ; GFX9-NEXT: [[ZEXTLOAD:%[0-9]+]]:vgpr(s32) = G_ZEXTLOAD [[COPY]](p1) :: (invariant load (s8), align 2, addrspace 4)531    ; GFX9-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[ZEXTLOAD]]532    ; GFX9-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)533    ;534    ; GFX10-LABEL: name: constant_zextload_i8_align2535    ; GFX10: liveins: $sgpr0_sgpr1536    ; GFX10-NEXT: {{  $}}537    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1538    ; GFX10-NEXT: [[ZEXTLOAD:%[0-9]+]]:vgpr(s32) = G_ZEXTLOAD [[COPY]](p1) :: (invariant load (s8), align 2, addrspace 4)539    ; GFX10-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[ZEXTLOAD]]540    ; GFX10-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)541    %0:_(p1) = COPY $sgpr0_sgpr1542    %1:_(s32) = G_ZEXTLOAD %0 :: (invariant load (s8), align 2, addrspace 4)543    S_ENDPGM 0, implicit %1544...545---546name: constant_zextload_i16_align2547legalized: true548 549body: |550  bb.0:551    liveins: $sgpr0_sgpr1552    ; GFX8-LABEL: name: constant_zextload_i16_align2553    ; GFX8: liveins: $sgpr0_sgpr1554    ; GFX8-NEXT: {{  $}}555    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1556    ; GFX8-NEXT: [[ZEXTLOAD:%[0-9]+]]:vgpr(s32) = G_ZEXTLOAD [[COPY]](p1) :: (invariant load (s16), addrspace 4)557    ; GFX8-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[ZEXTLOAD]]558    ; GFX8-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)559    ;560    ; GFX9-LABEL: name: constant_zextload_i16_align2561    ; GFX9: liveins: $sgpr0_sgpr1562    ; GFX9-NEXT: {{  $}}563    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1564    ; GFX9-NEXT: [[ZEXTLOAD:%[0-9]+]]:vgpr(s32) = G_ZEXTLOAD [[COPY]](p1) :: (invariant load (s16), addrspace 4)565    ; GFX9-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[ZEXTLOAD]]566    ; GFX9-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)567    ;568    ; GFX10-LABEL: name: constant_zextload_i16_align2569    ; GFX10: liveins: $sgpr0_sgpr1570    ; GFX10-NEXT: {{  $}}571    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1572    ; GFX10-NEXT: [[ZEXTLOAD:%[0-9]+]]:vgpr(s32) = G_ZEXTLOAD [[COPY]](p1) :: (invariant load (s16), addrspace 4)573    ; GFX10-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[ZEXTLOAD]]574    ; GFX10-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)575    %0:_(p1) = COPY $sgpr0_sgpr1576    %1:_(s32) = G_ZEXTLOAD %0 :: (invariant load (s16), align 2, addrspace 4)577    S_ENDPGM 0, implicit %1578...579---580name: local_load_i8_align4581legalized: true582 583body: |584  bb.0:585    liveins: $sgpr0_sgpr1586    ; GFX8-LABEL: name: local_load_i8_align4587    ; GFX8: liveins: $sgpr0_sgpr1588    ; GFX8-NEXT: {{  $}}589    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1590    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY]](p1) :: (load (s8), align 4, addrspace 3)591    ; GFX8-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[LOAD]]592    ; GFX8-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)593    ;594    ; GFX9-LABEL: name: local_load_i8_align4595    ; GFX9: liveins: $sgpr0_sgpr1596    ; GFX9-NEXT: {{  $}}597    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1598    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY]](p1) :: (load (s8), align 4, addrspace 3)599    ; GFX9-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[LOAD]]600    ; GFX9-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)601    ;602    ; GFX10-LABEL: name: local_load_i8_align4603    ; GFX10: liveins: $sgpr0_sgpr1604    ; GFX10-NEXT: {{  $}}605    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1606    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY]](p1) :: (load (s8), align 4, addrspace 3)607    ; GFX10-NEXT: [[AMDGPU_READANYLANE:%[0-9]+]]:sgpr(s32) = G_AMDGPU_READANYLANE [[LOAD]]608    ; GFX10-NEXT: S_ENDPGM 0, implicit [[AMDGPU_READANYLANE]](s32)609    %0:_(p1) = COPY $sgpr0_sgpr1610    %1:_(s32) = G_LOAD %0 :: (load (s8), align 4, addrspace 3)611    S_ENDPGM 0, implicit %1612...613---614name: private_load_i8_align4615legalized: true616 617body: |618  bb.0:619    liveins: $sgpr0_sgpr1620    ; GFX8-LABEL: name: private_load_i8_align4621    ; GFX8: liveins: $sgpr0_sgpr1622    ; GFX8-NEXT: {{  $}}623    ; GFX8-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1624    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(p1) = COPY [[COPY]](p1)625    ; GFX8-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY1]](p1) :: (load (s8), align 4, addrspace 5)626    ; GFX8-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)627    ;628    ; GFX9-LABEL: name: private_load_i8_align4629    ; GFX9: liveins: $sgpr0_sgpr1630    ; GFX9-NEXT: {{  $}}631    ; GFX9-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1632    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(p1) = COPY [[COPY]](p1)633    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY1]](p1) :: (load (s8), align 4, addrspace 5)634    ; GFX9-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)635    ;636    ; GFX10-LABEL: name: private_load_i8_align4637    ; GFX10: liveins: $sgpr0_sgpr1638    ; GFX10-NEXT: {{  $}}639    ; GFX10-NEXT: [[COPY:%[0-9]+]]:sgpr(p1) = COPY $sgpr0_sgpr1640    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr(p1) = COPY [[COPY]](p1)641    ; GFX10-NEXT: [[LOAD:%[0-9]+]]:vgpr(s32) = G_LOAD [[COPY1]](p1) :: (load (s8), align 4, addrspace 5)642    ; GFX10-NEXT: S_ENDPGM 0, implicit [[LOAD]](s32)643    %0:_(p1) = COPY $sgpr0_sgpr1644    %1:_(s32) = G_LOAD %0 :: (load (s8), align 4, addrspace 5)645    S_ENDPGM 0, implicit %1646...647