diff options
| author | Tom Stellard <thomas.stellard@amd.com> | 2016-11-10 16:02:37 +0000 |
|---|---|---|
| committer | Tom Stellard <thomas.stellard@amd.com> | 2016-11-10 16:02:37 +0000 |
| commit | 115a61560e24e08ecca0b3e2d16e8f1491b47f61 (patch) | |
| tree | a902f8fd2f221164e6ed9be6bbc932083293914a /llvm/lib/Target/AMDGPU/DSInstructions.td | |
| parent | 2cf393c8fe6ebea1ba041de7e264f2fc7a557ab9 (diff) | |
| download | bcm5719-llvm-115a61560e24e08ecca0b3e2d16e8f1491b47f61.tar.gz bcm5719-llvm-115a61560e24e08ecca0b3e2d16e8f1491b47f61.zip | |
AMDGPU: Add VI i16 support
Patch By: Wei Ding
Differential Revision: https://reviews.llvm.org/D18049
llvm-svn: 286464
Diffstat (limited to 'llvm/lib/Target/AMDGPU/DSInstructions.td')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/DSInstructions.td | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/DSInstructions.td b/llvm/lib/Target/AMDGPU/DSInstructions.td index 54935bbde7f..a077001df6b 100644 --- a/llvm/lib/Target/AMDGPU/DSInstructions.td +++ b/llvm/lib/Target/AMDGPU/DSInstructions.td @@ -489,8 +489,12 @@ class DSReadPat <DS_Pseudo inst, ValueType vt, PatFrag frag> : Pat < def : DSReadPat <DS_READ_I8, i32, si_sextload_local_i8>; def : DSReadPat <DS_READ_U8, i32, si_az_extload_local_i8>; +def : DSReadPat <DS_READ_I8, i16, si_sextload_local_i8>; +def : DSReadPat <DS_READ_U8, i16, si_az_extload_local_i8>; +def : DSReadPat <DS_READ_I16, i32, si_sextload_local_i16>; def : DSReadPat <DS_READ_I16, i32, si_sextload_local_i16>; def : DSReadPat <DS_READ_U16, i32, si_az_extload_local_i16>; +def : DSReadPat <DS_READ_U16, i16, si_load_local>; def : DSReadPat <DS_READ_B32, i32, si_load_local>; let AddedComplexity = 100 in { @@ -512,6 +516,8 @@ class DSWritePat <DS_Pseudo inst, ValueType vt, PatFrag frag> : Pat < def : DSWritePat <DS_WRITE_B8, i32, si_truncstore_local_i8>; def : DSWritePat <DS_WRITE_B16, i32, si_truncstore_local_i16>; +def : DSWritePat <DS_WRITE_B8, i16, si_truncstore_local_i8>; +def : DSWritePat <DS_WRITE_B16, i16, si_store_local>; def : DSWritePat <DS_WRITE_B32, i32, si_store_local>; let AddedComplexity = 100 in { @@ -522,8 +528,8 @@ def : DSWritePat <DS_WRITE_B64, v2i32, si_store_local_align8>; def : Pat < (si_store_local v2i32:$value, (DS64Bit4ByteAligned i32:$ptr, i8:$offset0, i8:$offset1)), - (DS_WRITE2_B32 $ptr, (EXTRACT_SUBREG $value, sub0), - (EXTRACT_SUBREG $value, sub1), $offset0, $offset1, + (DS_WRITE2_B32 $ptr, (i32 (EXTRACT_SUBREG $value, sub0)), + (i32 (EXTRACT_SUBREG $value, sub1)), $offset0, $offset1, (i1 0)) >; |

