diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-10-28 21:55:15 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-10-28 21:55:15 +0000 |
| commit | 7b6475568d8449dd84ddc839181cfc0ac74a3e13 (patch) | |
| tree | 5a159d350f597786e65d0059e94937d99b277e13 /llvm/test | |
| parent | 4b6a6cc8e994fb0e4b0790816ecdd89a44080863 (diff) | |
| download | bcm5719-llvm-7b6475568d8449dd84ddc839181cfc0ac74a3e13.tar.gz bcm5719-llvm-7b6475568d8449dd84ddc839181cfc0ac74a3e13.zip | |
AMDGPU: Add definitions for scalar store instructions
Also add glc bit to the scalar loads since they exist on VI
and change the caching behavior.
This currently has an assembler bug where the glc bit is incorrectly
accepted on SI/CI which do not have it.
llvm-svn: 285463
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/AMDGPU/coalescer-subreg-join.mir | 8 | ||||
| -rw-r--r-- | llvm/test/CodeGen/MIR/AMDGPU/target-index-operands.mir | 14 | ||||
| -rw-r--r-- | llvm/test/MC/AMDGPU/smem.s | 24 | ||||
| -rw-r--r-- | llvm/test/MC/AMDGPU/smrd-err.s | 2 |
4 files changed, 36 insertions, 12 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/coalescer-subreg-join.mir b/llvm/test/CodeGen/AMDGPU/coalescer-subreg-join.mir index 124f9f519c0..234fe57b513 100644 --- a/llvm/test/CodeGen/AMDGPU/coalescer-subreg-join.mir +++ b/llvm/test/CodeGen/AMDGPU/coalescer-subreg-join.mir @@ -46,10 +46,10 @@ body: | %0 = COPY %sgpr2_sgpr3 %1 = COPY %vgpr2 %2 = COPY %vgpr3 - %3 = S_LOAD_DWORDX8_IMM %0, 0 - %4 = S_LOAD_DWORDX4_IMM %0, 12 - %5 = S_LOAD_DWORDX8_IMM %0, 16 - %6 = S_LOAD_DWORDX4_IMM %0, 28 + %3 = S_LOAD_DWORDX8_IMM %0, 0, 0 + %4 = S_LOAD_DWORDX4_IMM %0, 12, 0 + %5 = S_LOAD_DWORDX8_IMM %0, 16, 0 + %6 = S_LOAD_DWORDX4_IMM %0, 28, 0 undef %7.sub0 = S_MOV_B32 212739 %20 = COPY %7 %11 = COPY %20 diff --git a/llvm/test/CodeGen/MIR/AMDGPU/target-index-operands.mir b/llvm/test/CodeGen/MIR/AMDGPU/target-index-operands.mir index e15da0923be..a4e77f281ea 100644 --- a/llvm/test/CodeGen/MIR/AMDGPU/target-index-operands.mir +++ b/llvm/test/CodeGen/MIR/AMDGPU/target-index-operands.mir @@ -1,4 +1,4 @@ -# RUN: llc -march=amdgcn -mcpu=SI -run-pass none -o - %s | FileCheck %s +# RUN: llc -march=amdgcn -run-pass none -o - %s | FileCheck %s # This test verifies that the MIR parser can parse target index operands. --- | @@ -55,15 +55,15 @@ body: | %sgpr2 = S_ADD_U32 %sgpr2, target-index(amdgpu-constdata-start), implicit-def %scc, implicit-def %scc %sgpr3 = S_ADDC_U32 %sgpr3, 0, implicit-def %scc, implicit %scc, implicit-def %scc, implicit %scc %sgpr4_sgpr5 = S_LSHR_B64 %sgpr2_sgpr3, 32, implicit-def dead %scc - %sgpr6 = S_LOAD_DWORD_IMM %sgpr0_sgpr1, 11 + %sgpr6 = S_LOAD_DWORD_IMM %sgpr0_sgpr1, 11, 0 %sgpr7 = S_ASHR_I32 %sgpr6, 31, implicit-def dead %scc %sgpr6_sgpr7 = S_LSHL_B64 %sgpr6_sgpr7, 2, implicit-def dead %scc %sgpr2 = S_ADD_U32 %sgpr2, @float_gv, implicit-def %scc %sgpr3 = S_ADDC_U32 %sgpr4, 0, implicit-def dead %scc, implicit %scc %sgpr4 = S_ADD_U32 %sgpr2, %sgpr6, implicit-def %scc %sgpr5 = S_ADDC_U32 %sgpr3, %sgpr7, implicit-def dead %scc, implicit %scc - %sgpr2 = S_LOAD_DWORD_IMM %sgpr4_sgpr5, 0 - %sgpr4_sgpr5 = S_LOAD_DWORDX2_IMM killed %sgpr0_sgpr1, 9 + %sgpr2 = S_LOAD_DWORD_IMM %sgpr4_sgpr5, 0, 0 + %sgpr4_sgpr5 = S_LOAD_DWORDX2_IMM killed %sgpr0_sgpr1, 9, 0 %sgpr7 = S_MOV_B32 61440 %sgpr6 = S_MOV_B32 -1 %vgpr0 = V_MOV_B32_e32 killed %sgpr2, implicit %exec @@ -85,15 +85,15 @@ body: | %sgpr2 = S_ADD_U32 %sgpr2, target-index(amdgpu-constdata-start) + 1, implicit-def %scc, implicit-def %scc %sgpr3 = S_ADDC_U32 %sgpr3, 0, implicit-def %scc, implicit %scc, implicit-def %scc, implicit %scc %sgpr4_sgpr5 = S_LSHR_B64 %sgpr2_sgpr3, 32, implicit-def dead %scc - %sgpr6 = S_LOAD_DWORD_IMM %sgpr0_sgpr1, 11 + %sgpr6 = S_LOAD_DWORD_IMM %sgpr0_sgpr1, 11, 0 %sgpr7 = S_ASHR_I32 %sgpr6, 31, implicit-def dead %scc %sgpr6_sgpr7 = S_LSHL_B64 %sgpr6_sgpr7, 2, implicit-def dead %scc %sgpr2 = S_ADD_U32 %sgpr2, @float_gv, implicit-def %scc %sgpr3 = S_ADDC_U32 %sgpr4, 0, implicit-def dead %scc, implicit %scc %sgpr4 = S_ADD_U32 %sgpr2, %sgpr6, implicit-def %scc %sgpr5 = S_ADDC_U32 %sgpr3, %sgpr7, implicit-def dead %scc, implicit %scc - %sgpr2 = S_LOAD_DWORD_IMM %sgpr4_sgpr5, 0 - %sgpr4_sgpr5 = S_LOAD_DWORDX2_IMM killed %sgpr0_sgpr1, 9 + %sgpr2 = S_LOAD_DWORD_IMM %sgpr4_sgpr5, 0, 0 + %sgpr4_sgpr5 = S_LOAD_DWORDX2_IMM killed %sgpr0_sgpr1, 9, 0 %sgpr7 = S_MOV_B32 61440 %sgpr6 = S_MOV_B32 -1 %vgpr0 = V_MOV_B32_e32 killed %sgpr2, implicit %exec diff --git a/llvm/test/MC/AMDGPU/smem.s b/llvm/test/MC/AMDGPU/smem.s index ab2dcf4b8a1..d2f10224e21 100644 --- a/llvm/test/MC/AMDGPU/smem.s +++ b/llvm/test/MC/AMDGPU/smem.s @@ -13,3 +13,27 @@ s_dcache_wb_vol s_memrealtime s[4:5] // VI: s_memrealtime s[4:5] ; encoding: [0x00,0x01,0x94,0xc0,0x00,0x00,0x00,0x00] // NOSI: error: instruction not supported on this GPU + +// FIXME: Should error about instruction on GPU +s_store_dword s1, s[2:3], 0xfc +// VI: s_store_dword s1, s[2:3], 0xfc ; encoding: [0x41,0x00,0x42,0xc0,0xfc,0x00,0x00,0x00] +// NOSI: error: instruction not supported on this GPU + +s_store_dword s1, s[2:3], 0xfc glc +// VI: s_store_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x43,0xc0,0xfc,0x00,0x00,0x00] +// NOSI: error: invalid operand for instruction + +s_store_dword s1, s[2:3], s4 +// VI: s_store_dword s1, s[2:3], s4 ; encoding: [0x41,0x00,0x40,0xc0,0x04,0x00,0x00,0x00] +// NOSI: error: instruction not supported on this GPU + +s_store_dword s1, s[2:3], s4 glc +// VI: s_store_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x41,0xc0,0x04,0x00,0x00,0x00] +// NOSI: error: invalid operand for instruction + +// FIXME: Should error on SI instead of silently ignoring glc +s_load_dword s1, s[2:3], 0xfc glc +// VI: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x03,0xc0,0xfc,0x00,0x00,0x00] + +s_load_dword s1, s[2:3], s4 glc +// VI: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x01,0xc0,0x04,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/smrd-err.s b/llvm/test/MC/AMDGPU/smrd-err.s index 0f991e4aefe..d7ef74901c6 100644 --- a/llvm/test/MC/AMDGPU/smrd-err.s +++ b/llvm/test/MC/AMDGPU/smrd-err.s @@ -1,4 +1,4 @@ -// RUN: llvm-mc -arch=amdgcn -mcpu=tahiti %s | FileCheck -check-prefix=GCN -check-prefix=SI %s +// RUN: llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=SI %s // RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI %s s_load_dwordx4 s[100:103], s[2:3], s4 |

