diff options
Diffstat (limited to 'llvm/lib/Target/R600/R600EmitClauseMarkers.cpp')
-rw-r--r-- | llvm/lib/Target/R600/R600EmitClauseMarkers.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Target/R600/R600EmitClauseMarkers.cpp b/llvm/lib/Target/R600/R600EmitClauseMarkers.cpp index ecfcfeb4e8f..c9d8ed1d00d 100644 --- a/llvm/lib/Target/R600/R600EmitClauseMarkers.cpp +++ b/llvm/lib/Target/R600/R600EmitClauseMarkers.cpp @@ -108,7 +108,8 @@ private: std::vector<std::pair<unsigned, unsigned> > UsedKCache; const SmallVector<std::pair<MachineOperand *, int64_t>, 3> &Consts = TII->getSrcs(MI); - assert(TII->isALUInstr(MI->getOpcode()) && "Can't assign Const"); + assert((TII->isALUInstr(MI->getOpcode()) || + MI->getOpcode() == AMDGPU::DOT_4) && "Can't assign Const"); for (unsigned i = 0, n = Consts.size(); i < n; ++i) { if (Consts[i].first->getReg() != AMDGPU::ALU_CONST) continue; @@ -183,6 +184,9 @@ private: if (TII->isALUInstr(I->getOpcode()) && !SubstituteKCacheBank(I, KCacheBanks)) break; + if (I->getOpcode() == AMDGPU::DOT_4 && + !SubstituteKCacheBank(I, KCacheBanks)) + break; AluInstCount += OccupiedDwords(I); } unsigned Opcode = PushBeforeModifier ? |