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
This commit is contained in:
Tom Stellard
2013-06-28 15:46:59 +00:00
parent 7e9381951e
commit cedcfee405
8 changed files with 88 additions and 3 deletions

View File

@ -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;
}