brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.6 KiB · ae010a8 Raw
306 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=hawaii -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX7 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s6# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s7 8---9 10name: atomic_store_flat_s32_seq_cst11legalized:       true12regBankSelected: true13tracksRegLiveness: true14 15body: |16  bb.0:17    liveins:  $vgpr0, $vgpr1_vgpr218 19    ; GFX7-LABEL: name: atomic_store_flat_s32_seq_cst20    ; GFX7: liveins: $vgpr0, $vgpr1_vgpr221    ; GFX7-NEXT: {{  $}}22    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr023    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr1_vgpr224    ; GFX7-NEXT: FLAT_STORE_DWORD [[COPY1]], [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (store seq_cst (s32))25    ;26    ; GFX9-LABEL: name: atomic_store_flat_s32_seq_cst27    ; GFX9: liveins: $vgpr0, $vgpr1_vgpr228    ; GFX9-NEXT: {{  $}}29    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr030    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr1_vgpr231    ; GFX9-NEXT: FLAT_STORE_DWORD [[COPY1]], [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (store seq_cst (s32))32    %0:vgpr(s32) = COPY $vgpr033    %1:vgpr(p0) = COPY $vgpr1_vgpr234    G_STORE %0, %1 :: (store seq_cst (s32), align 4, addrspace 0)35 36...37 38---39 40name: atomic_store_flat_v2s16_seq_cst41legalized:       true42regBankSelected: true43tracksRegLiveness: true44 45body: |46  bb.0:47    liveins:  $vgpr0, $vgpr1_vgpr248 49    ; GFX7-LABEL: name: atomic_store_flat_v2s16_seq_cst50    ; GFX7: liveins: $vgpr0, $vgpr1_vgpr251    ; GFX7-NEXT: {{  $}}52    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr053    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr1_vgpr254    ; GFX7-NEXT: G_STORE [[COPY]](<2 x s16>), [[COPY1]](p0) :: (store seq_cst (<2 x s16>))55    ;56    ; GFX9-LABEL: name: atomic_store_flat_v2s16_seq_cst57    ; GFX9: liveins: $vgpr0, $vgpr1_vgpr258    ; GFX9-NEXT: {{  $}}59    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr060    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr1_vgpr261    ; GFX9-NEXT: G_STORE [[COPY]](<2 x s16>), [[COPY1]](p0) :: (store seq_cst (<2 x s16>))62    %0:vgpr(<2 x s16>) = COPY $vgpr063    %1:vgpr(p0) = COPY $vgpr1_vgpr264    G_STORE %0, %1 :: (store seq_cst (<2 x s16>), align 4, addrspace 0)65 66...67 68---69 70name: atomic_store_flat_p3_seq_cst71legalized:       true72regBankSelected: true73tracksRegLiveness: true74 75body: |76  bb.0:77    liveins:  $vgpr0, $vgpr1_vgpr278 79    ; GFX7-LABEL: name: atomic_store_flat_p3_seq_cst80    ; GFX7: liveins: $vgpr0, $vgpr1_vgpr281    ; GFX7-NEXT: {{  $}}82    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr083    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr1_vgpr284    ; GFX7-NEXT: G_STORE [[COPY]](p3), [[COPY1]](p0) :: (store seq_cst (p3))85    ;86    ; GFX9-LABEL: name: atomic_store_flat_p3_seq_cst87    ; GFX9: liveins: $vgpr0, $vgpr1_vgpr288    ; GFX9-NEXT: {{  $}}89    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr090    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr1_vgpr291    ; GFX9-NEXT: G_STORE [[COPY]](p3), [[COPY1]](p0) :: (store seq_cst (p3))92    %0:vgpr(p3) = COPY $vgpr093    %1:vgpr(p0) = COPY $vgpr1_vgpr294    G_STORE %0, %1 :: (store seq_cst (p3), align 4, addrspace 0)95 96...97 98---99 100name: atomic_store_flat_p5_seq_cst101legalized:       true102regBankSelected: true103tracksRegLiveness: true104 105body: |106  bb.0:107    liveins:  $vgpr0, $vgpr1_vgpr2108 109    ; GFX7-LABEL: name: atomic_store_flat_p5_seq_cst110    ; GFX7: liveins: $vgpr0, $vgpr1_vgpr2111    ; GFX7-NEXT: {{  $}}112    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p5) = COPY $vgpr0113    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr1_vgpr2114    ; GFX7-NEXT: G_STORE [[COPY]](p5), [[COPY1]](p0) :: (store seq_cst (p5))115    ;116    ; GFX9-LABEL: name: atomic_store_flat_p5_seq_cst117    ; GFX9: liveins: $vgpr0, $vgpr1_vgpr2118    ; GFX9-NEXT: {{  $}}119    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p5) = COPY $vgpr0120    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr1_vgpr2121    ; GFX9-NEXT: G_STORE [[COPY]](p5), [[COPY1]](p0) :: (store seq_cst (p5))122    %0:vgpr(p5) = COPY $vgpr0123    %1:vgpr(p0) = COPY $vgpr1_vgpr2124    G_STORE %0, %1 :: (store seq_cst (p5), align 4, addrspace 0)125 126...127 128---129 130name: atomic_store_flat_p6_seq_cst131legalized:       true132regBankSelected: true133tracksRegLiveness: true134 135body: |136  bb.0:137    liveins:  $vgpr0, $vgpr1_vgpr2138 139    ; GFX7-LABEL: name: atomic_store_flat_p6_seq_cst140    ; GFX7: liveins: $vgpr0, $vgpr1_vgpr2141    ; GFX7-NEXT: {{  $}}142    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p6) = COPY $vgpr0143    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr1_vgpr2144    ; GFX7-NEXT: G_STORE [[COPY]](p6), [[COPY1]](p0) :: (store seq_cst (p6))145    ;146    ; GFX9-LABEL: name: atomic_store_flat_p6_seq_cst147    ; GFX9: liveins: $vgpr0, $vgpr1_vgpr2148    ; GFX9-NEXT: {{  $}}149    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p6) = COPY $vgpr0150    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr1_vgpr2151    ; GFX9-NEXT: G_STORE [[COPY]](p6), [[COPY1]](p0) :: (store seq_cst (p6))152    %0:vgpr(p6) = COPY $vgpr0153    %1:vgpr(p0) = COPY $vgpr1_vgpr2154    G_STORE %0, %1 :: (store seq_cst (p6), align 4, addrspace 0)155 156...157 158---159 160name: atomic_store_flat_s64_seq_cst161legalized:       true162regBankSelected: true163tracksRegLiveness: true164 165body: |166  bb.0:167    liveins:  $vgpr0_vgpr1, $vgpr2_vgpr3168 169    ; GFX7-LABEL: name: atomic_store_flat_s64_seq_cst170    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3171    ; GFX7-NEXT: {{  $}}172    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1173    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3174    ; GFX7-NEXT: FLAT_STORE_DWORDX2 [[COPY1]], [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (store seq_cst (s64))175    ;176    ; GFX9-LABEL: name: atomic_store_flat_s64_seq_cst177    ; GFX9: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3178    ; GFX9-NEXT: {{  $}}179    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1180    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3181    ; GFX9-NEXT: FLAT_STORE_DWORDX2 [[COPY1]], [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (store seq_cst (s64))182    %0:vgpr(s64) = COPY $vgpr0_vgpr1183    %1:vgpr(p0) = COPY $vgpr2_vgpr3184    G_STORE %0, %1 :: (store seq_cst (s64), align 8, addrspace 0)185 186...187 188---189 190name: atomic_store_flat_v2s32_seq_cst191legalized:       true192regBankSelected: true193tracksRegLiveness: true194 195body: |196  bb.0:197    liveins:  $vgpr0_vgpr1, $vgpr2_vgpr3198 199    ; GFX7-LABEL: name: atomic_store_flat_v2s32_seq_cst200    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3201    ; GFX7-NEXT: {{  $}}202    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1203    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3204    ; GFX7-NEXT: FLAT_STORE_DWORDX2 [[COPY1]], [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (store seq_cst (<2 x s32>))205    ;206    ; GFX9-LABEL: name: atomic_store_flat_v2s32_seq_cst207    ; GFX9: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3208    ; GFX9-NEXT: {{  $}}209    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1210    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3211    ; GFX9-NEXT: FLAT_STORE_DWORDX2 [[COPY1]], [[COPY]], 0, 0, implicit $exec, implicit $flat_scr :: (store seq_cst (<2 x s32>))212    %0:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1213    %1:vgpr(p0) = COPY $vgpr2_vgpr3214    G_STORE %0, %1 :: (store seq_cst (<2 x s32>), align 8, addrspace 0)215 216...217 218---219 220name: atomic_store_flat_v4s16_seq_cst221legalized:       true222regBankSelected: true223tracksRegLiveness: true224 225body: |226  bb.0:227    liveins:  $vgpr0_vgpr1, $vgpr2_vgpr3228 229    ; GFX7-LABEL: name: atomic_store_flat_v4s16_seq_cst230    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3231    ; GFX7-NEXT: {{  $}}232    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1233    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr2_vgpr3234    ; GFX7-NEXT: G_STORE [[COPY]](<4 x s16>), [[COPY1]](p0) :: (store seq_cst (<4 x s16>))235    ;236    ; GFX9-LABEL: name: atomic_store_flat_v4s16_seq_cst237    ; GFX9: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3238    ; GFX9-NEXT: {{  $}}239    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1240    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr2_vgpr3241    ; GFX9-NEXT: G_STORE [[COPY]](<4 x s16>), [[COPY1]](p0) :: (store seq_cst (<4 x s16>))242    %0:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1243    %1:vgpr(p0) = COPY $vgpr2_vgpr3244    G_STORE %0, %1 :: (store seq_cst (<4 x s16>), align 8, addrspace 0)245 246...247 248---249 250name: atomic_store_flat_p0_seq_cst251legalized:       true252regBankSelected: true253tracksRegLiveness: true254 255body: |256  bb.0:257    liveins:  $vgpr0_vgpr1, $vgpr2_vgpr3258 259    ; GFX7-LABEL: name: atomic_store_flat_p0_seq_cst260    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3261    ; GFX7-NEXT: {{  $}}262    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p0) = COPY $vgpr0_vgpr1263    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr2_vgpr3264    ; GFX7-NEXT: G_STORE [[COPY]](p0), [[COPY1]](p0) :: (store seq_cst (p0))265    ;266    ; GFX9-LABEL: name: atomic_store_flat_p0_seq_cst267    ; GFX9: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3268    ; GFX9-NEXT: {{  $}}269    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p0) = COPY $vgpr0_vgpr1270    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr2_vgpr3271    ; GFX9-NEXT: G_STORE [[COPY]](p0), [[COPY1]](p0) :: (store seq_cst (p0))272    %0:vgpr(p0) = COPY $vgpr0_vgpr1273    %1:vgpr(p0) = COPY $vgpr2_vgpr3274    G_STORE %0, %1 :: (store seq_cst (p0), align 8, addrspace 0)275 276...277---278 279name: atomic_store_flat_p1_seq_cst280legalized:       true281regBankSelected: true282tracksRegLiveness: true283 284body: |285  bb.0:286    liveins:  $vgpr0_vgpr1, $vgpr2_vgpr3287 288    ; GFX7-LABEL: name: atomic_store_flat_p1_seq_cst289    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3290    ; GFX7-NEXT: {{  $}}291    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1292    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr2_vgpr3293    ; GFX7-NEXT: G_STORE [[COPY]](p1), [[COPY1]](p0) :: (store seq_cst (p1))294    ;295    ; GFX9-LABEL: name: atomic_store_flat_p1_seq_cst296    ; GFX9: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3297    ; GFX9-NEXT: {{  $}}298    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1299    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(p0) = COPY $vgpr2_vgpr3300    ; GFX9-NEXT: G_STORE [[COPY]](p1), [[COPY1]](p0) :: (store seq_cst (p1))301    %0:vgpr(p1) = COPY $vgpr0_vgpr1302    %1:vgpr(p0) = COPY $vgpr2_vgpr3303    G_STORE %0, %1 :: (store seq_cst (p1), align 8, addrspace 0)304 305...306