================
@@ -2314,6 +2317,33 @@ bool SPIRVInstructionSelector::selectAtomicRMW(Register
ResVReg,
return true;
}
+bool SPIRVInstructionSelector::selectInterlockedAdd(Register ResVReg,
+ SPIRVTypeInst ResType,
+ MachineInstr &I) const {
+ Register Ptr = I.getOperand(2).getReg();
+ Register Value = I.getOperand(3).getReg();
+
+ SPIRV::StorageClass::StorageClass SC = GR.getPointerStorageClass(Ptr);
+ uint32_t Scope = static_cast<uint32_t>(SC == SPIRV::StorageClass::Workgroup
+ ? SPIRV::Scope::Workgroup
+ : SPIRV::Scope::Device);
----------------
Icohedron wrote:
Perhaps an assertion that `SC` is one of `SPIRV::StorageClass::Workgroup` or
`SPIRV::StorageClass::StorageBuffer` would be good here?
https://github.com/llvm/llvm-project/pull/195742
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits