This commit is contained in:
microsoftv 2024-08-17 13:18:24 -04:00
parent 19e6698578
commit 16cf666e1d
2 changed files with 2 additions and 7 deletions

View file

@ -122,9 +122,7 @@ void Translator::DS_ADD_U32(const GcnInst& inst) {
const IR::U32 offset = ir.Imm32(u32(inst.control.ds.offset0));
const IR::U32 addr_offset = ir.IAdd(addr, offset);
IR::VectorReg dst_reg{inst.dst[0].code};
const IR::Value original_val = ir.SharedAtomicIAdd(addr_offset, data);
SetDst(inst.dst[0], IR::U32{original_val});
}
@ -134,9 +132,7 @@ void Translator::DS_MIN_U32(const GcnInst& inst) {
const IR::U32 offset = ir.Imm32(u32(inst.control.ds.offset0));
const IR::U32 addr_offset = ir.IAdd(addr, offset);
IR::VectorReg dst_reg{inst.dst[0].code};
const IR::Value original_val = ir.SharedAtomicIMin(addr_offset, data, false);
SetDst(inst.dst[0], IR::U32{original_val});
}
@ -146,9 +142,7 @@ void Translator::DS_MAX_U32(const GcnInst& inst) {
const IR::U32 offset = ir.Imm32(u32(inst.control.ds.offset0));
const IR::U32 addr_offset = ir.IAdd(addr, offset);
IR::VectorReg dst_reg{inst.dst[0].code};
const IR::Value original_val = ir.SharedAtomicIMax(addr_offset, data, false);
SetDst(inst.dst[0], IR::U32{original_val});
}

View file

@ -470,7 +470,8 @@ void Translator::BUFFER_ATOMIC(u32 num_dwords, AtomicOp op, const GcnInst& inst)
ir.GetScalarReg(srsrc + 2), ir.GetScalarReg(srsrc + 3));
// Apply atomic op
// derefs srsrc buffer and adds vdata value to it, then returns
// derefs srsrc buffer and adds vdata value to it
// then returns original srsrc buffer value
const IR::Value original_val = ir.BufferAtomicIAdd(handle, address, vdata_val, info);
if (mubuf.glc) {