diff options
author | joaosaffran <126493771+joaosaffran@users.noreply.github.com> | 2024-11-14 23:34:07 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-14 23:34:07 -0800 |
commit | bc6c0681271788ca7078fb679ac67b56944de1a6 (patch) | |
tree | ee597a685f743ee102db91c0bc96f56483bd11cf /llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp | |
parent | 942928f3df16c01ea2b905f441d72cca138032e9 (diff) | |
download | llvm-bc6c0681271788ca7078fb679ac67b56944de1a6.zip llvm-bc6c0681271788ca7078fb679ac67b56944de1a6.tar.gz llvm-bc6c0681271788ca7078fb679ac67b56944de1a6.tar.bz2 |
[HLSL] Adding HLSL `clip` function. (#114588)
Adding HLSL `clip` function.
- adding llvm intrinsic
- adding sema checks
- adding dxil lowering
- ading spirv lowering
- adding sema tests
- adding codegen tests
- adding lowering tests
Closes #99093
---------
Co-authored-by: Joao Saffran <jderezende@microsoft.com>
Diffstat (limited to 'llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp')
-rw-r--r-- | llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp index 0308c56..551c36d 100644 --- a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp @@ -633,7 +633,8 @@ void RequirementHandler::initAvailableCapabilities(const SPIRVSubtarget &ST) { if (ST.isAtLeastSPIRVVer(VersionTuple(1, 6))) addAvailableCaps({Capability::DotProduct, Capability::DotProductInputAll, Capability::DotProductInput4x8Bit, - Capability::DotProductInput4x8BitPacked}); + Capability::DotProductInput4x8BitPacked, + Capability::DemoteToHelperInvocation}); // Add capabilities enabled by extensions. for (auto Extension : ST.getAllAvailableExtensions()) { @@ -1419,6 +1420,19 @@ void addInstrRequirements(const MachineInstr &MI, Reqs.addCapability(SPIRV::Capability::SplitBarrierINTEL); } break; + case SPIRV::OpKill: { + Reqs.addCapability(SPIRV::Capability::Shader); + } break; + case SPIRV::OpDemoteToHelperInvocation: + Reqs.addCapability(SPIRV::Capability::DemoteToHelperInvocation); + + if (ST.canUseExtension( + SPIRV::Extension::SPV_EXT_demote_to_helper_invocation)) { + if (!ST.isAtLeastSPIRVVer(llvm::VersionTuple(1, 6))) + Reqs.addExtension( + SPIRV::Extension::SPV_EXT_demote_to_helper_invocation); + } + break; case SPIRV::OpSDot: case SPIRV::OpUDot: AddDotProductRequirements(MI, Reqs, ST); |