aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
diff options
context:
space:
mode:
authorSteffen Larsen <steffen.larsen@intel.com>2025-04-09 10:02:43 +0200
committerGitHub <noreply@github.com>2025-04-09 10:02:43 +0200
commitf04bfbc4162247c0074fdd87068053e4264dbefa (patch)
treeb12bf5cceb03a03d9d25ef168d27e4027394fbd9 /llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
parentf46d6412eb4ffa338df8d7b560a8e9f144d1d2a3 (diff)
downloadllvm-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.cpp11
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;