Skip to content

Commit 814136a

Browse files
committed
update with latest change
1 parent ddcacf6 commit 814136a

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,22 @@ void AMDGPUMCInstLower::lowerT16D16Helper(const MachineInstr *MI,
122122
const SIRegisterInfo &TRI = TII->getRegisterInfo();
123123
const auto *Info = AMDGPU::getT16D16Helper(Opcode);
124124

125+
uint16_t OpName = AMDGPU::OpName::OPERAND_LAST;
126+
if (TII->isDS(Opcode)) {
127+
if (MI->mayLoad())
128+
OpName = llvm::AMDGPU::OpName::vdst;
129+
else if (MI->mayStore())
130+
OpName = llvm::AMDGPU::OpName::data0;
131+
else
132+
llvm_unreachable("LDS load or store expected");
133+
} else {
134+
OpName = AMDGPU::hasNamedOperand(Opcode, llvm::AMDGPU::OpName::vdata)
135+
? llvm::AMDGPU::OpName::vdata
136+
: llvm::AMDGPU::OpName::vdst;
137+
}
138+
125139
// select Dst/Data
126-
int VDataIdx = AMDGPU::getNamedOperandIdx(Opcode, AMDGPU::OpName::vdata);
127-
int VDstOrVDataIdx = VDataIdx != -1 ? VDataIdx : 0;
140+
int VDstOrVDataIdx = AMDGPU::getNamedOperandIdx(Opcode, OpName);
128141
const MachineOperand &MIVDstOrVData = MI->getOperand(VDstOrVDataIdx);
129142

130143
// select hi/lo MCInst

0 commit comments

Comments
 (0)