diff options
author | Steffen Larsen <steffen.larsen@intel.com> | 2025-04-09 10:02:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-09 10:02:43 +0200 |
commit | f04bfbc4162247c0074fdd87068053e4264dbefa (patch) | |
tree | b12bf5cceb03a03d9d25ef168d27e4027394fbd9 /llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp | |
parent | f46d6412eb4ffa338df8d7b560a8e9f144d1d2a3 (diff) | |
download | llvm-f04bfbc4162247c0074fdd87068053e4264dbefa.zip llvm-f04bfbc4162247c0074fdd87068053e4264dbefa.tar.gz llvm-f04bfbc4162247c0074fdd87068053e4264dbefa.tar.bz2 |
[SPIRV] Support for SPV_INTEL_ternary_bitwise_function (#134866)
Adds support for the SPV_INTEL_ternary_bitwise_function extension,
adding;
* the OpBitwiseFunctionINTEL SPIR-V instruction, a ternary bitwise
function where the operation performed is determined by a look-up table
index,
* and the corresponding TernaryBitwiseFunctionINTEL capability.
See
https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_ternary_bitwise_function.html.
Signed-off-by: Larsen, Steffen <steffen.larsen@intel.com>
Diffstat (limited to 'llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp')
-rw-r--r-- | llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp index 8ba163e..b1e5e43 100644 --- a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp @@ -1799,6 +1799,17 @@ void addInstrRequirements(const MachineInstr &MI, Reqs.addCapability(SPIRV::Capability::LongCompositesINTEL); break; } + case SPIRV::OpBitwiseFunctionINTEL: { + if (!ST.canUseExtension( + SPIRV::Extension::SPV_INTEL_ternary_bitwise_function)) + report_fatal_error( + "OpBitwiseFunctionINTEL instruction requires the following SPIR-V " + "extension: SPV_INTEL_ternary_bitwise_function", + false); + Reqs.addExtension(SPIRV::Extension::SPV_INTEL_ternary_bitwise_function); + Reqs.addCapability(SPIRV::Capability::TernaryBitwiseFunctionINTEL); + break; + } default: break; |