diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2013-06-28 15:46:59 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2013-06-28 15:46:59 +0000 |
commit | cedcfee405a22b245e869abe8609f094df34085a (patch) | |
tree | 72e6d69624a9c8a9e56c419f2e927920c1af05d9 /lib/Target/R600/R600Packetizer.cpp | |
parent | 7e9381951eb4dadf9c59257786416ac51a6a6c09 (diff) | |
download | external_llvm-cedcfee405a22b245e869abe8609f094df34085a.zip external_llvm-cedcfee405a22b245e869abe8609f094df34085a.tar.gz external_llvm-cedcfee405a22b245e869abe8609f094df34085a.tar.bz2 |
R600: Add support for GROUP_BARRIER instruction
Reviewed-by: Vincent Lejeune<vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185161 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/R600/R600Packetizer.cpp')
-rw-r--r-- | lib/Target/R600/R600Packetizer.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Target/R600/R600Packetizer.cpp b/lib/Target/R600/R600Packetizer.cpp index 6024fd5..4c72d22 100644 --- a/lib/Target/R600/R600Packetizer.cpp +++ b/lib/Target/R600/R600Packetizer.cpp @@ -82,7 +82,11 @@ private: int OperandIdx = TII->getOperandIdx(BI->getOpcode(), AMDGPU::OpName::write); if (OperandIdx > -1 && BI->getOperand(OperandIdx).getImm() == 0) continue; - unsigned Dst = BI->getOperand(0).getReg(); + int DstIdx = TII->getOperandIdx(BI->getOpcode(), AMDGPU::OpName::dst); + if (DstIdx == -1) { + continue; + } + unsigned Dst = BI->getOperand(DstIdx).getReg(); if (BI->getOpcode() == AMDGPU::DOT4_r600 || BI->getOpcode() == AMDGPU::DOT4_eg) { Result[Dst] = AMDGPU::PV_X; @@ -154,6 +158,8 @@ public: return true; if (TII->isTransOnly(MI)) return true; + if (MI->getOpcode() == AMDGPU::GROUP_BARRIER) + return true; return false; } |