brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.4 KiB · 5c2df39 Raw
345 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX6 %s3# RUN: llc -mtriple=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX7 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s6# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s7# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s8 9---10 11name: load_atomic_local_s32_seq_cst12legalized:       true13regBankSelected: true14tracksRegLiveness: true15 16body: |17  bb.0:18    liveins:  $vgpr019 20    ; GFX6-LABEL: name: load_atomic_local_s32_seq_cst21    ; GFX6: liveins: $vgpr022    ; GFX6-NEXT: {{  $}}23    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr024    ; GFX6-NEXT: $m0 = S_MOV_B32 -125    ; GFX6-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load seq_cst (s32), addrspace 3)26    ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]27    ; GFX7-LABEL: name: load_atomic_local_s32_seq_cst28    ; GFX7: liveins: $vgpr029    ; GFX7-NEXT: {{  $}}30    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr031    ; GFX7-NEXT: $m0 = S_MOV_B32 -132    ; GFX7-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load seq_cst (s32), addrspace 3)33    ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]34    ; GFX9-LABEL: name: load_atomic_local_s32_seq_cst35    ; GFX9: liveins: $vgpr036    ; GFX9-NEXT: {{  $}}37    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr038    ; GFX9-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[COPY]], 0, 0, implicit $exec :: (load seq_cst (s32), addrspace 3)39    ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_B32_gfx9_]]40    %0:vgpr(p3) = COPY $vgpr041    %1:vgpr(s32) = G_LOAD %0 :: (load seq_cst (s32), align 4, addrspace 3)42    $vgpr0 = COPY %143 44...45 46---47 48name: load_atomic_local_v2s16_seq_cst49legalized:       true50regBankSelected: true51tracksRegLiveness: true52 53body: |54  bb.0:55    liveins:  $vgpr056 57    ; GFX6-LABEL: name: load_atomic_local_v2s16_seq_cst58    ; GFX6: liveins: $vgpr059    ; GFX6-NEXT: {{  $}}60    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr061    ; GFX6-NEXT: $m0 = S_MOV_B32 -162    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vgpr_32(<2 x s16>) = G_LOAD [[COPY]](p3) :: (load seq_cst (<2 x s16>), addrspace 3)63    ; GFX6-NEXT: $vgpr0 = COPY [[LOAD]](<2 x s16>)64    ; GFX7-LABEL: name: load_atomic_local_v2s16_seq_cst65    ; GFX7: liveins: $vgpr066    ; GFX7-NEXT: {{  $}}67    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr068    ; GFX7-NEXT: $m0 = S_MOV_B32 -169    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:vgpr_32(<2 x s16>) = G_LOAD [[COPY]](p3) :: (load seq_cst (<2 x s16>), addrspace 3)70    ; GFX7-NEXT: $vgpr0 = COPY [[LOAD]](<2 x s16>)71    ; GFX9-LABEL: name: load_atomic_local_v2s16_seq_cst72    ; GFX9: liveins: $vgpr073    ; GFX9-NEXT: {{  $}}74    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr075    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vgpr_32(<2 x s16>) = G_LOAD [[COPY]](p3) :: (load seq_cst (<2 x s16>), addrspace 3)76    ; GFX9-NEXT: $vgpr0 = COPY [[LOAD]](<2 x s16>)77    %0:vgpr(p3) = COPY $vgpr078    %1:vgpr(<2 x s16>) = G_LOAD %0 :: (load seq_cst (<2 x s16>), align 4, addrspace 3)79    $vgpr0 = COPY %180 81...82 83---84 85name: load_atomic_local_p3_seq_cst86legalized:       true87regBankSelected: true88tracksRegLiveness: true89 90body: |91  bb.0:92    liveins:  $vgpr093 94    ; GFX6-LABEL: name: load_atomic_local_p3_seq_cst95    ; GFX6: liveins: $vgpr096    ; GFX6-NEXT: {{  $}}97    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr098    ; GFX6-NEXT: $m0 = S_MOV_B32 -199    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vgpr_32(p3) = G_LOAD [[COPY]](p3) :: (load seq_cst (p3), addrspace 3)100    ; GFX6-NEXT: $vgpr0 = COPY [[LOAD]](p3)101    ; GFX7-LABEL: name: load_atomic_local_p3_seq_cst102    ; GFX7: liveins: $vgpr0103    ; GFX7-NEXT: {{  $}}104    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0105    ; GFX7-NEXT: $m0 = S_MOV_B32 -1106    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:vgpr_32(p3) = G_LOAD [[COPY]](p3) :: (load seq_cst (p3), addrspace 3)107    ; GFX7-NEXT: $vgpr0 = COPY [[LOAD]](p3)108    ; GFX9-LABEL: name: load_atomic_local_p3_seq_cst109    ; GFX9: liveins: $vgpr0110    ; GFX9-NEXT: {{  $}}111    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0112    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vgpr_32(p3) = G_LOAD [[COPY]](p3) :: (load seq_cst (p3), addrspace 3)113    ; GFX9-NEXT: $vgpr0 = COPY [[LOAD]](p3)114    %0:vgpr(p3) = COPY $vgpr0115    %1:vgpr(p3) = G_LOAD %0 :: (load seq_cst (p3), align 4, addrspace 3)116    $vgpr0 = COPY %1117 118...119 120---121 122name: load_atomic_local_s64_seq_cst123legalized:       true124regBankSelected: true125tracksRegLiveness: true126 127body: |128  bb.0:129    liveins:  $vgpr0130 131    ; GFX6-LABEL: name: load_atomic_local_s64_seq_cst132    ; GFX6: liveins: $vgpr0133    ; GFX6-NEXT: {{  $}}134    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0135    ; GFX6-NEXT: $m0 = S_MOV_B32 -1136    ; GFX6-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load seq_cst (s64), addrspace 3)137    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]138    ; GFX7-LABEL: name: load_atomic_local_s64_seq_cst139    ; GFX7: liveins: $vgpr0140    ; GFX7-NEXT: {{  $}}141    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0142    ; GFX7-NEXT: $m0 = S_MOV_B32 -1143    ; GFX7-NEXT: [[DS_READ_B64_:%[0-9]+]]:vreg_64 = DS_READ_B64 [[COPY]], 0, 0, implicit $m0, implicit $exec :: (load seq_cst (s64), addrspace 3)144    ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_]]145    ; GFX9-LABEL: name: load_atomic_local_s64_seq_cst146    ; GFX9: liveins: $vgpr0147    ; GFX9-NEXT: {{  $}}148    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0149    ; GFX9-NEXT: [[DS_READ_B64_gfx9_:%[0-9]+]]:vreg_64 = DS_READ_B64_gfx9 [[COPY]], 0, 0, implicit $exec :: (load seq_cst (s64), addrspace 3)150    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[DS_READ_B64_gfx9_]]151    %0:vgpr(p3) = COPY $vgpr0152    %1:vgpr(s64) = G_LOAD %0 :: (load seq_cst (s64), align 8, addrspace 3)153    $vgpr0_vgpr1 = COPY %1154 155...156 157---158 159name: load_atomic_local_v2s32_seq_cst160legalized:       true161regBankSelected: true162tracksRegLiveness: true163 164body: |165  bb.0:166    liveins:  $vgpr0167 168    ; GFX6-LABEL: name: load_atomic_local_v2s32_seq_cst169    ; GFX6: liveins: $vgpr0170    ; GFX6-NEXT: {{  $}}171    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0172    ; GFX6-NEXT: $m0 = S_MOV_B32 -1173    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vreg_64(<2 x s32>) = G_LOAD [[COPY]](p3) :: (load seq_cst (<2 x s32>), addrspace 3)174    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](<2 x s32>)175    ; GFX7-LABEL: name: load_atomic_local_v2s32_seq_cst176    ; GFX7: liveins: $vgpr0177    ; GFX7-NEXT: {{  $}}178    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0179    ; GFX7-NEXT: $m0 = S_MOV_B32 -1180    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:vreg_64(<2 x s32>) = G_LOAD [[COPY]](p3) :: (load seq_cst (<2 x s32>), addrspace 3)181    ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](<2 x s32>)182    ; GFX9-LABEL: name: load_atomic_local_v2s32_seq_cst183    ; GFX9: liveins: $vgpr0184    ; GFX9-NEXT: {{  $}}185    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0186    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vreg_64(<2 x s32>) = G_LOAD [[COPY]](p3) :: (load seq_cst (<2 x s32>), addrspace 3)187    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](<2 x s32>)188    %0:vgpr(p3) = COPY $vgpr0189    %1:vgpr(<2 x s32>) = G_LOAD %0 :: (load seq_cst (<2 x s32>), align 8, addrspace 3)190    $vgpr0_vgpr1 = COPY %1191 192...193 194---195 196name: load_atomic_local_v4s16_seq_cst197legalized:       true198regBankSelected: true199tracksRegLiveness: true200 201body: |202  bb.0:203    liveins:  $vgpr0204 205    ; GFX6-LABEL: name: load_atomic_local_v4s16_seq_cst206    ; GFX6: liveins: $vgpr0207    ; GFX6-NEXT: {{  $}}208    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0209    ; GFX6-NEXT: $m0 = S_MOV_B32 -1210    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vreg_64(<4 x s16>) = G_LOAD [[COPY]](p3) :: (load seq_cst (<4 x s16>), addrspace 3)211    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](<4 x s16>)212    ; GFX7-LABEL: name: load_atomic_local_v4s16_seq_cst213    ; GFX7: liveins: $vgpr0214    ; GFX7-NEXT: {{  $}}215    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0216    ; GFX7-NEXT: $m0 = S_MOV_B32 -1217    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:vreg_64(<4 x s16>) = G_LOAD [[COPY]](p3) :: (load seq_cst (<4 x s16>), addrspace 3)218    ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](<4 x s16>)219    ; GFX9-LABEL: name: load_atomic_local_v4s16_seq_cst220    ; GFX9: liveins: $vgpr0221    ; GFX9-NEXT: {{  $}}222    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0223    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vreg_64(<4 x s16>) = G_LOAD [[COPY]](p3) :: (load seq_cst (<4 x s16>), addrspace 3)224    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](<4 x s16>)225    %0:vgpr(p3) = COPY $vgpr0226    %1:vgpr(<4 x s16>) = G_LOAD %0 :: (load seq_cst (<4 x s16>), align 8, addrspace 3)227    $vgpr0_vgpr1 = COPY %1228 229...230 231---232 233name: load_atomic_local_p1_seq_cst234legalized:       true235regBankSelected: true236tracksRegLiveness: true237 238body: |239  bb.0:240    liveins:  $vgpr0241 242    ; GFX6-LABEL: name: load_atomic_local_p1_seq_cst243    ; GFX6: liveins: $vgpr0244    ; GFX6-NEXT: {{  $}}245    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0246    ; GFX6-NEXT: $m0 = S_MOV_B32 -1247    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p1) = G_LOAD [[COPY]](p3) :: (load seq_cst (p1), addrspace 3)248    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p1)249    ; GFX7-LABEL: name: load_atomic_local_p1_seq_cst250    ; GFX7: liveins: $vgpr0251    ; GFX7-NEXT: {{  $}}252    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0253    ; GFX7-NEXT: $m0 = S_MOV_B32 -1254    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p1) = G_LOAD [[COPY]](p3) :: (load seq_cst (p1), addrspace 3)255    ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p1)256    ; GFX9-LABEL: name: load_atomic_local_p1_seq_cst257    ; GFX9: liveins: $vgpr0258    ; GFX9-NEXT: {{  $}}259    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0260    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p1) = G_LOAD [[COPY]](p3) :: (load seq_cst (p1), addrspace 3)261    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p1)262    %0:vgpr(p3) = COPY $vgpr0263    %1:vgpr(p1) = G_LOAD %0 :: (load seq_cst (p1), align 8, addrspace 3)264    $vgpr0_vgpr1 = COPY %1265 266...267 268---269 270name: load_atomic_local_p0_seq_cst271legalized:       true272regBankSelected: true273tracksRegLiveness: true274 275body: |276  bb.0:277    liveins:  $vgpr0278 279    ; GFX6-LABEL: name: load_atomic_local_p0_seq_cst280    ; GFX6: liveins: $vgpr0281    ; GFX6-NEXT: {{  $}}282    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0283    ; GFX6-NEXT: $m0 = S_MOV_B32 -1284    ; GFX6-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p0) = G_LOAD [[COPY]](p3) :: (load seq_cst (p0), addrspace 3)285    ; GFX6-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p0)286    ; GFX7-LABEL: name: load_atomic_local_p0_seq_cst287    ; GFX7: liveins: $vgpr0288    ; GFX7-NEXT: {{  $}}289    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0290    ; GFX7-NEXT: $m0 = S_MOV_B32 -1291    ; GFX7-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p0) = G_LOAD [[COPY]](p3) :: (load seq_cst (p0), addrspace 3)292    ; GFX7-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p0)293    ; GFX9-LABEL: name: load_atomic_local_p0_seq_cst294    ; GFX9: liveins: $vgpr0295    ; GFX9-NEXT: {{  $}}296    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0297    ; GFX9-NEXT: [[LOAD:%[0-9]+]]:vreg_64(p0) = G_LOAD [[COPY]](p3) :: (load seq_cst (p0), addrspace 3)298    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[LOAD]](p0)299    %0:vgpr(p3) = COPY $vgpr0300    %1:vgpr(p0) = G_LOAD %0 :: (load seq_cst (p0), align 8, addrspace 3)301    $vgpr0_vgpr1 = COPY %1302 303...304 305---306 307name: load_atomic_local_s32_seq_cst_gep_65535308legalized:       true309regBankSelected: true310tracksRegLiveness: true311 312body: |313  bb.0:314    liveins:  $vgpr0315 316    ; GFX6-LABEL: name: load_atomic_local_s32_seq_cst_gep_65535317    ; GFX6: liveins: $vgpr0318    ; GFX6-NEXT: {{  $}}319    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0320    ; GFX6-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 65535, implicit $exec321    ; GFX6-NEXT: [[V_ADD_CO_U32_e64_:%[0-9]+]]:vgpr_32, dead [[V_ADD_CO_U32_e64_1:%[0-9]+]]:sreg_64_xexec = V_ADD_CO_U32_e64 [[COPY]], [[V_MOV_B32_e32_]], 0, implicit $exec322    ; GFX6-NEXT: $m0 = S_MOV_B32 -1323    ; GFX6-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[V_ADD_CO_U32_e64_]], 0, 0, implicit $m0, implicit $exec :: (load seq_cst (s32), addrspace 3)324    ; GFX6-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]325    ; GFX7-LABEL: name: load_atomic_local_s32_seq_cst_gep_65535326    ; GFX7: liveins: $vgpr0327    ; GFX7-NEXT: {{  $}}328    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0329    ; GFX7-NEXT: $m0 = S_MOV_B32 -1330    ; GFX7-NEXT: [[DS_READ_B32_:%[0-9]+]]:vgpr_32 = DS_READ_B32 [[COPY]], 65535, 0, implicit $m0, implicit $exec :: (load seq_cst (s32), addrspace 3)331    ; GFX7-NEXT: $vgpr0 = COPY [[DS_READ_B32_]]332    ; GFX9-LABEL: name: load_atomic_local_s32_seq_cst_gep_65535333    ; GFX9: liveins: $vgpr0334    ; GFX9-NEXT: {{  $}}335    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0336    ; GFX9-NEXT: [[DS_READ_B32_gfx9_:%[0-9]+]]:vgpr_32 = DS_READ_B32_gfx9 [[COPY]], 65535, 0, implicit $exec :: (load seq_cst (s32), addrspace 3)337    ; GFX9-NEXT: $vgpr0 = COPY [[DS_READ_B32_gfx9_]]338    %0:vgpr(p3) = COPY $vgpr0339    %1:vgpr(s32) = G_CONSTANT i32 65535340    %2:vgpr(p3) = G_PTR_ADD %0, %1341    %3:vgpr(s32) = G_LOAD %2 :: (load seq_cst (s32), align 4, addrspace 3)342    $vgpr0 = COPY %3343 344...345