brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.1 KiB · fc8d50c Raw
157 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=hawaii -mattr=+flat-for-global -run-pass=instruction-select -verify-machineinstrs  -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX7-FLAT %s4# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX8 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX9 %s6# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX10 %s7# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX10 %s8# RUN: llc -mtriple=amdgcn -mcpu=gfx1200 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX10 %s9 10# 96-bit load/store is only legal for SI, so split the test out.11 12---13 14name: store_global_v3s3215legalized:       true16tracksRegLiveness: true17regBankSelected: true18 19body: |20  bb.0:21    liveins:  $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr422 23    ; GFX7-LABEL: name: store_global_v3s3224    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr425    ; GFX7-NEXT: {{  $}}26    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr127    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vreg_96 = COPY $vgpr2_vgpr3_vgpr428    ; GFX7-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 029    ; GFX7-NEXT: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 6144030    ; GFX7-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[S_MOV_B32_]], %subreg.sub0, [[S_MOV_B32_1]], %subreg.sub131    ; GFX7-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 032    ; GFX7-NEXT: [[REG_SEQUENCE1:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[S_MOV_B64_]], %subreg.sub0_sub1, [[REG_SEQUENCE]], %subreg.sub2_sub333    ; GFX7-NEXT: BUFFER_STORE_DWORDX3_ADDR64 [[COPY1]], [[COPY]], [[REG_SEQUENCE1]], 0, 0, 0, 0, implicit $exec :: (store (<3 x s32>), align 16, addrspace 1)34    ; GFX7-FLAT-LABEL: name: store_global_v3s3235    ; GFX7-FLAT: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr436    ; GFX7-FLAT-NEXT: {{  $}}37    ; GFX7-FLAT-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr138    ; GFX7-FLAT-NEXT: [[COPY1:%[0-9]+]]:vreg_96 = COPY $vgpr2_vgpr3_vgpr439    ; GFX7-FLAT-NEXT: FLAT_STORE_DWORDX3 [[COPY]], [[COPY1]], 0, 0, implicit $exec, implicit $flat_scr :: (store (<3 x s32>), align 16, addrspace 1)40    ; GFX8-LABEL: name: store_global_v3s3241    ; GFX8: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr442    ; GFX8-NEXT: {{  $}}43    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr144    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vreg_96 = COPY $vgpr2_vgpr3_vgpr445    ; GFX8-NEXT: FLAT_STORE_DWORDX3 [[COPY]], [[COPY1]], 0, 0, implicit $exec, implicit $flat_scr :: (store (<3 x s32>), align 16, addrspace 1)46    ; GFX9-LABEL: name: store_global_v3s3247    ; GFX9: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr448    ; GFX9-NEXT: {{  $}}49    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr150    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vreg_96 = COPY $vgpr2_vgpr3_vgpr451    ; GFX9-NEXT: GLOBAL_STORE_DWORDX3 [[COPY]], [[COPY1]], 0, 0, implicit $exec :: (store (<3 x s32>), align 16, addrspace 1)52    ; GFX10-LABEL: name: store_global_v3s3253    ; GFX10: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr454    ; GFX10-NEXT: {{  $}}55    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr156    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vreg_96 = COPY $vgpr2_vgpr3_vgpr457    ; GFX10-NEXT: GLOBAL_STORE_DWORDX3 [[COPY]], [[COPY1]], 0, 0, implicit $exec :: (store (<3 x s32>), align 16, addrspace 1)58    %0:vgpr(p1) = COPY $vgpr0_vgpr159    %1:vgpr(<3 x s32>) = COPY $vgpr2_vgpr3_vgpr460    G_STORE %1, %0 :: (store (<3 x s32>), align 16, addrspace 1)61 62...63 64---65 66name: store_global_s9667legalized:       true68tracksRegLiveness: true69regBankSelected: true70 71body: |72  bb.0:73    liveins:  $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr474 75    ; GFX7-LABEL: name: store_global_s9676    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr477    ; GFX7-NEXT: {{  $}}78    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr179    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(s96) = COPY $vgpr2_vgpr3_vgpr480    ; GFX7-NEXT: G_STORE [[COPY1]](s96), [[COPY]](p1) :: (store (s96), align 16, addrspace 1)81    ; GFX7-FLAT-LABEL: name: store_global_s9682    ; GFX7-FLAT: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr483    ; GFX7-FLAT-NEXT: {{  $}}84    ; GFX7-FLAT-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr185    ; GFX7-FLAT-NEXT: [[COPY1:%[0-9]+]]:vgpr(s96) = COPY $vgpr2_vgpr3_vgpr486    ; GFX7-FLAT-NEXT: G_STORE [[COPY1]](s96), [[COPY]](p1) :: (store (s96), align 16, addrspace 1)87    ; GFX8-LABEL: name: store_global_s9688    ; GFX8: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr489    ; GFX8-NEXT: {{  $}}90    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr191    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(s96) = COPY $vgpr2_vgpr3_vgpr492    ; GFX8-NEXT: G_STORE [[COPY1]](s96), [[COPY]](p1) :: (store (s96), align 16, addrspace 1)93    ; GFX9-LABEL: name: store_global_s9694    ; GFX9: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr495    ; GFX9-NEXT: {{  $}}96    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr197    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(s96) = COPY $vgpr2_vgpr3_vgpr498    ; GFX9-NEXT: G_STORE [[COPY1]](s96), [[COPY]](p1) :: (store (s96), align 16, addrspace 1)99    ; GFX10-LABEL: name: store_global_s96100    ; GFX10: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4101    ; GFX10-NEXT: {{  $}}102    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1103    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr(s96) = COPY $vgpr2_vgpr3_vgpr4104    ; GFX10-NEXT: G_STORE [[COPY1]](s96), [[COPY]](p1) :: (store (s96), align 16, addrspace 1)105    %0:vgpr(p1) = COPY $vgpr0_vgpr1106    %1:vgpr(s96) = COPY $vgpr2_vgpr3_vgpr4107    G_STORE %1, %0 :: (store (s96), align 16, addrspace 1)108 109...110 111---112 113name: store_global_v6s16114legalized:       true115tracksRegLiveness: true116regBankSelected: true117 118body: |119  bb.0:120    liveins:  $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4121 122    ; GFX7-LABEL: name: store_global_v6s16123    ; GFX7: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4124    ; GFX7-NEXT: {{  $}}125    ; GFX7-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1126    ; GFX7-NEXT: [[COPY1:%[0-9]+]]:vgpr(<6 x s16>) = COPY $vgpr2_vgpr3_vgpr4127    ; GFX7-NEXT: G_STORE [[COPY1]](<6 x s16>), [[COPY]](p1) :: (store (<6 x s16>), align 16, addrspace 1)128    ; GFX7-FLAT-LABEL: name: store_global_v6s16129    ; GFX7-FLAT: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4130    ; GFX7-FLAT-NEXT: {{  $}}131    ; GFX7-FLAT-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1132    ; GFX7-FLAT-NEXT: [[COPY1:%[0-9]+]]:vgpr(<6 x s16>) = COPY $vgpr2_vgpr3_vgpr4133    ; GFX7-FLAT-NEXT: G_STORE [[COPY1]](<6 x s16>), [[COPY]](p1) :: (store (<6 x s16>), align 16, addrspace 1)134    ; GFX8-LABEL: name: store_global_v6s16135    ; GFX8: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4136    ; GFX8-NEXT: {{  $}}137    ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1138    ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr(<6 x s16>) = COPY $vgpr2_vgpr3_vgpr4139    ; GFX8-NEXT: G_STORE [[COPY1]](<6 x s16>), [[COPY]](p1) :: (store (<6 x s16>), align 16, addrspace 1)140    ; GFX9-LABEL: name: store_global_v6s16141    ; GFX9: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4142    ; GFX9-NEXT: {{  $}}143    ; GFX9-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1144    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:vgpr(<6 x s16>) = COPY $vgpr2_vgpr3_vgpr4145    ; GFX9-NEXT: G_STORE [[COPY1]](<6 x s16>), [[COPY]](p1) :: (store (<6 x s16>), align 16, addrspace 1)146    ; GFX10-LABEL: name: store_global_v6s16147    ; GFX10: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3_vgpr4148    ; GFX10-NEXT: {{  $}}149    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1150    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr(<6 x s16>) = COPY $vgpr2_vgpr3_vgpr4151    ; GFX10-NEXT: G_STORE [[COPY1]](<6 x s16>), [[COPY]](p1) :: (store (<6 x s16>), align 16, addrspace 1)152    %0:vgpr(p1) = COPY $vgpr0_vgpr1153    %1:vgpr(<6 x s16>) = COPY $vgpr2_vgpr3_vgpr4154    G_STORE %1, %0 :: (store (<6 x s16>), align 16, addrspace 1)155 156...157