[llvm] r323785 - AMDGPU/SI: Add decoding in the GFX80_UNPACKED decoding namespace.

Changpeng Fang via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 30 08:42:40 PST 2018


Author: chfang
Date: Tue Jan 30 08:42:40 2018
New Revision: 323785

URL: http://llvm.org/viewvc/llvm-project?rev=323785&view=rev
Log:
AMDGPU/SI: Add decoding in the GFX80_UNPACKED decoding namespace.

Reviewer:
  Dmitry (dp).

Differential Revision:
  https://reviews.llvm.org/D42596

Added:
    llvm/trunk/test/MC/Disassembler/AMDGPU/buf_fmt_packed_d16.txt
    llvm/trunk/test/MC/Disassembler/AMDGPU/buf_fmt_unpacked_d16.txt
Modified:
    llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp

Modified: llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp?rev=323785&r1=323784&r2=323785&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp Tue Jan 30 08:42:40 2018
@@ -198,6 +198,11 @@ DecodeStatus AMDGPUDisassembler::getInst
 
       Res = tryDecodeInst(DecoderTableSDWA964, MI, QW, Address);
       if (Res) { IsSDWA = true;  break; }
+
+      if (STI.getFeatureBits()[AMDGPU::FeatureUnpackedD16VMem]) {
+        Res = tryDecodeInst(DecoderTableGFX80_UNPACKED64, MI, QW, Address);
+        if (Res) break;
+      }
     }
 
     // Reinitialize Bytes as DPP64 could have eaten too much

Added: llvm/trunk/test/MC/Disassembler/AMDGPU/buf_fmt_packed_d16.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/AMDGPU/buf_fmt_packed_d16.txt?rev=323785&view=auto
==============================================================================
--- llvm/trunk/test/MC/Disassembler/AMDGPU/buf_fmt_packed_d16.txt (added)
+++ llvm/trunk/test/MC/Disassembler/AMDGPU/buf_fmt_packed_d16.txt Tue Jan 30 08:42:40 2018
@@ -0,0 +1,50 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=gfx810 -disassemble -show-encoding < %s | FileCheck %s -check-prefix=PACKED
+# RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -disassemble -show-encoding < %s | FileCheck %s -check-prefix=PACKED
+
+# PACKED: buffer_load_format_d16_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x20,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x20,0xe0,0x00,0x01,0x01,0x01
+
+# PACKED: buffer_load_format_d16_xy v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x24,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x24,0xe0,0x00,0x01,0x01,0x01
+
+# PACKED: buffer_load_format_d16_xyz v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x28,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x28,0xe0,0x00,0x01,0x01,0x01
+
+# PACKED: buffer_load_format_d16_xyzw v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x2c,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x2c,0xe0,0x00,0x01,0x01,0x01
+
+# PACKED: buffer_store_format_d16_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01
+
+# PACKED: buffer_store_format_d16_xy v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x34,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x34,0xe0,0x00,0x01,0x01,0x01
+
+# PACKED: buffer_store_format_d16_xyz v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01
+
+# PACKED: buffer_store_format_d16_xyzw v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x3c,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x3c,0xe0,0x00,0x01,0x01,0x01
+
+# PACKED: tbuffer_load_format_d16_x v1, off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x00,0x7c,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x00,0x7c,0xe9,0x00,0x01,0x01,0x01
+
+# PACKED: tbuffer_load_format_d16_xy v1, off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x80,0x7c,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x80,0x7c,0xe9,0x00,0x01,0x01,0x01
+
+# PACKED: tbuffer_load_format_d16_xyz v[1:2], off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x00,0x7d,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x00,0x7d,0xe9,0x00,0x01,0x01,0x01
+
+# PACKED: tbuffer_load_format_d16_xyzw v[1:2], off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x80,0x7d,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x80,0x7d,0xe9,0x00,0x01,0x01,0x01
+
+# PACKED: tbuffer_store_format_d16_x v1, off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x00,0x7e,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x00,0x7e,0xe9,0x00,0x01,0x01,0x01
+
+# PACKED: tbuffer_store_format_d16_xy v1, off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x80,0x7e,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x80,0x7e,0xe9,0x00,0x01,0x01,0x01
+
+# PACKED: tbuffer_store_format_d16_xyz v[1:2], off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x00,0x7f,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x00,0x7f,0xe9,0x00,0x01,0x01,0x01
+
+# PACKED: tbuffer_store_format_d16_xyzw v[1:2], off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x80,0x7f,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x80,0x7f,0xe9,0x00,0x01,0x01,0x01

Added: llvm/trunk/test/MC/Disassembler/AMDGPU/buf_fmt_unpacked_d16.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/Disassembler/AMDGPU/buf_fmt_unpacked_d16.txt?rev=323785&view=auto
==============================================================================
--- llvm/trunk/test/MC/Disassembler/AMDGPU/buf_fmt_unpacked_d16.txt (added)
+++ llvm/trunk/test/MC/Disassembler/AMDGPU/buf_fmt_unpacked_d16.txt Tue Jan 30 08:42:40 2018
@@ -0,0 +1,50 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=fiji -disassemble -show-encoding < %s | FileCheck %s -check-prefix=UNPACKED
+
+
+# UNPACKED: buffer_load_format_d16_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x20,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x20,0xe0,0x00,0x01,0x01,0x01
+
+# UNPACKED: buffer_load_format_d16_xy v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x24,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x24,0xe0,0x00,0x01,0x01,0x01
+
+# UNPACKED: buffer_load_format_d16_xyz v[1:3], off, s[4:7], s1 ; encoding: [0x00,0x00,0x28,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x28,0xe0,0x00,0x01,0x01,0x01
+
+# UNPACKED: buffer_load_format_d16_xyzw v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x2c,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x2c,0xe0,0x00,0x01,0x01,0x01
+
+# UNPACKED: buffer_store_format_d16_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01
+
+# UNPACKED: buffer_store_format_d16_xy v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x34,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x34,0xe0,0x00,0x01,0x01,0x01
+
+# UNPACKED: buffer_store_format_d16_xyz v[1:3], off, s[4:7], s1 ; encoding: [0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01
+
+# UNPACKED: buffer_store_format_d16_xyzw v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x3c,0xe0,0x00,0x01,0x01,0x01]
+0x00,0x00,0x3c,0xe0,0x00,0x01,0x01,0x01
+
+# UNPACKED: tbuffer_load_format_d16_x v1, off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x00,0x7c,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x00,0x7c,0xe9,0x00,0x01,0x01,0x01
+
+# UNPACKED: tbuffer_load_format_d16_xy v[1:2], off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x80,0x7c,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x80,0x7c,0xe9,0x00,0x01,0x01,0x01
+
+# UNPACKED: tbuffer_load_format_d16_xyz v[1:3], off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x00,0x7d,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x00,0x7d,0xe9,0x00,0x01,0x01,0x01
+
+# UNPACKED: tbuffer_load_format_d16_xyzw v[1:4], off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x80,0x7d,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x80,0x7d,0xe9,0x00,0x01,0x01,0x01
+
+# UNPACKED: tbuffer_store_format_d16_x v1, off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x00,0x7e,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x00,0x7e,0xe9,0x00,0x01,0x01,0x01
+
+# UNPACKED: tbuffer_store_format_d16_xy v[1:2], off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x80,0x7e,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x80,0x7e,0xe9,0x00,0x01,0x01,0x01
+
+# UNPACKED: tbuffer_store_format_d16_xyz v[1:3], off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x00,0x7f,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x00,0x7f,0xe9,0x00,0x01,0x01,0x01
+
+# UNPACKED: tbuffer_store_format_d16_xyzw v[1:4], off, s[4:7],  dfmt:15,  nfmt:2, s1 ; encoding: [0x00,0x80,0x7f,0xe9,0x00,0x01,0x01,0x01]
+0x00,0x80,0x7f,0xe9,0x00,0x01,0x01,0x01




More information about the llvm-commits mailing list