[clang] [llvm] [HLSL] Implement SV_GroupThreadId semantic (PR #117781)
Tex Riddell via cfe-commits
cfe-commits at lists.llvm.org
Fri Dec 6 16:23:31 PST 2024
================
@@ -3606,6 +3613,32 @@ bool SPIRVInstructionSelector::selectSpvThreadId(Register ResVReg,
return Result && MIB.constrainAllUses(TII, TRI, RBI);
}
+bool SPIRVInstructionSelector::selectSpvThreadId(Register ResVReg,
+ const SPIRVType *ResType,
+ MachineInstr &I) const {
+ // DX intrinsic: @llvm.dx.thread.id(i32)
+ // ID Name Description
+ // 93 ThreadId reads the thread ID
+ //
+ // In SPIR-V, llvm.dx.thread.id maps to a `GlobalInvocationId` builtin
+ // variable
+ return loadVec3BuiltinInputID(SPIRV::BuiltIn::GlobalInvocationId, ResVReg,
+ ResType, I);
----------------
tex3d wrote:
I'm not sure I see any advantage of wrapping these calls in these functions rather than calling `loadVec3BuiltinInputID` directly from the switch case in `selectIntrinsic`.
https://github.com/llvm/llvm-project/pull/117781
More information about the cfe-commits
mailing list