Lines Matching refs:ST
75 unsigned i, const SPIRVSubtarget &ST, in getSymbolicOperandRequirements() argument
82 VersionTuple SPIRVVersion = ST.getSPIRVVersion(); in getSymbolicOperandRequirements()
120 if (llvm::all_of(ReqExts, [&ST](const SPIRV::Extension::Extension &Ext) { in getSymbolicOperandRequirements()
121 return ST.canUseExtension(Ext); in getSymbolicOperandRequirements()
142 MAI.Reqs.initAvailableCapabilities(*ST); in setBaseInfo()
153 MAI.Mem = ST->isOpenCLEnv() ? SPIRV::MemoryModel::OpenCL in setBaseInfo()
156 unsigned PtrSize = ST->getPointerSize(); in setBaseInfo()
184 if (ST->isOpenCLEnv()) { in setBaseInfo()
206 MAI.Mem, *ST); in setBaseInfo()
208 MAI.SrcLang, *ST); in setBaseInfo()
210 MAI.Addr, *ST); in setBaseInfo()
212 if (ST->isOpenCLEnv()) { in setBaseInfo()
483 const SPIRVSubtarget &ST) { in getAndAddRequirements() argument
484 addRequirements(getSymbolicOperandRequirements(Category, i, ST, *this)); in getAndAddRequirements()
543 const SPIRVSubtarget &ST) const { in checkSatisfiable()
546 auto TargetVer = ST.getSPIRVVersion(); in checkSatisfiable()
583 if (ST.canUseExtension(Ext)) in checkSatisfiable()
613 void RequirementHandler::initAvailableCapabilities(const SPIRVSubtarget &ST) { in initAvailableCapabilities() argument
614 if (ST.isOpenCLEnv()) { in initAvailableCapabilities()
615 initAvailableCapabilitiesForOpenCL(ST); in initAvailableCapabilities()
619 if (ST.isVulkanEnv()) { in initAvailableCapabilities()
620 initAvailableCapabilitiesForVulkan(ST); in initAvailableCapabilities()
628 const SPIRVSubtarget &ST) { in initAvailableCapabilitiesForOpenCL() argument
635 if (ST.hasOpenCLFullProfile()) in initAvailableCapabilitiesForOpenCL()
637 if (ST.hasOpenCLImageSupport()) { in initAvailableCapabilitiesForOpenCL()
641 if (ST.isAtLeastOpenCLVer(VersionTuple(2, 0))) in initAvailableCapabilitiesForOpenCL()
644 if (ST.isAtLeastSPIRVVer(VersionTuple(1, 1)) && in initAvailableCapabilitiesForOpenCL()
645 ST.isAtLeastOpenCLVer(VersionTuple(2, 2))) in initAvailableCapabilitiesForOpenCL()
647 if (ST.isAtLeastSPIRVVer(VersionTuple(1, 3))) in initAvailableCapabilitiesForOpenCL()
655 if (ST.isAtLeastSPIRVVer(VersionTuple(1, 4))) in initAvailableCapabilitiesForOpenCL()
664 for (auto Extension : ST.getAllAvailableExtensions()) { in initAvailableCapabilitiesForOpenCL()
674 const SPIRVSubtarget &ST) { in initAvailableCapabilitiesForVulkan() argument
689 const SPIRVSubtarget &ST) { in addOpDecorateReqs() argument
693 SPIRV::OperandCategory::DecorationOperand, Dec, ST, Reqs)); in addOpDecorateReqs()
699 SPIRV::OperandCategory::BuiltInOperand, BuiltIn, ST, Reqs)); in addOpDecorateReqs()
721 const SPIRVSubtarget &ST) { in addOpTypeImageReqs() argument
728 ImgFormat, ST); in addOpTypeImageReqs()
778 const SPIRVSubtarget &ST) { in AddAtomicFloatRequirements() argument
790 if (!ST.canUseExtension(SPIRV::Extension::SPV_EXT_shader_atomic_float_add)) in AddAtomicFloatRequirements()
795 if (!ST.canUseExtension( in AddAtomicFloatRequirements()
812 if (!ST.canUseExtension( in AddAtomicFloatRequirements()
835 const SPIRVSubtarget &ST) { in addInstrRequirements() argument
840 Addr, ST); in addInstrRequirements()
843 ST); in addInstrRequirements()
849 Exe, ST); in addInstrRequirements()
856 Exe, ST); in addInstrRequirements()
889 ST); in addInstrRequirements()
892 if (!ST.isOpenCLEnv()) in addInstrRequirements()
906 if (!ST.canUseExtension(SPIRV::Extension::SPV_KHR_bit_instructions)) { in addInstrRequirements()
932 addOpDecorateReqs(MI, 1, Reqs, ST); in addInstrRequirements()
936 addOpDecorateReqs(MI, 2, Reqs, ST); in addInstrRequirements()
945 addOpTypeImageReqs(MI, Reqs, ST); in addInstrRequirements()
1067 if (ST.canUseExtension(SPIRV::Extension::SPV_INTEL_subgroups)) { in addInstrRequirements()
1074 if (ST.canUseExtension(SPIRV::Extension::SPV_INTEL_subgroups)) { in addInstrRequirements()
1081 if (ST.canUseExtension(SPIRV::Extension::SPV_INTEL_subgroups)) { in addInstrRequirements()
1088 if (ST.canUseExtension(SPIRV::Extension::SPV_KHR_expect_assume)) { in addInstrRequirements()
1095 if (ST.canUseExtension(SPIRV::Extension::SPV_INTEL_usm_storage_classes)) { in addInstrRequirements()
1101 if (ST.canUseExtension(SPIRV::Extension::SPV_INTEL_function_pointers)) { in addInstrRequirements()
1107 if (!ST.canUseExtension(SPIRV::Extension::SPV_KHR_subgroup_rotate)) in addInstrRequirements()
1123 if (ST.canUseExtension( in addInstrRequirements()
1130 if (!ST.canUseExtension(SPIRV::Extension::SPV_KHR_shader_clock)) in addInstrRequirements()
1138 if (ST.canUseExtension(SPIRV::Extension::SPV_INTEL_function_pointers)) { in addInstrRequirements()
1146 AddAtomicFloatRequirements(MI, Reqs, ST); in addInstrRequirements()
1150 if (ST.canUseExtension(SPIRV::Extension::SPV_INTEL_bfloat16_conversion)) { in addInstrRequirements()
1158 if (ST.canUseExtension(SPIRV::Extension::SPV_INTEL_variable_length_array)) { in addInstrRequirements()
1166 if (ST.canUseExtension(SPIRV::Extension::SPV_INTEL_inline_assembly)) { in addInstrRequirements()
1172 if (!ST.canUseExtension(SPIRV::Extension::SPV_KHR_cooperative_matrix)) in addInstrRequirements()
1192 MachineModuleInfo *MMI, const SPIRVSubtarget &ST) { in collectReqs() argument
1200 addInstrRequirements(MI, MAI.Reqs, ST); in collectReqs()
1207 VerLower14 = !ST.isAtLeastSPIRVVer(VersionTuple(1, 4)); in collectReqs()
1216 SPIRV::OperandCategory::ExecutionModeOperand, EM, ST); in collectReqs()
1231 ST.canUseExtension(SPIRV::Extension::SPV_KHR_float_controls)) in collectReqs()
1241 SPIRV::ExecutionMode::LocalSize, ST); in collectReqs()
1245 SPIRV::ExecutionMode::LocalSize, ST); in collectReqs()
1250 SPIRV::ExecutionMode::LocalSizeHint, ST); in collectReqs()
1254 SPIRV::ExecutionMode::SubgroupSize, ST); in collectReqs()
1258 SPIRV::ExecutionMode::VecTypeHint, ST); in collectReqs()
1261 ST.canUseExtension(SPIRV::Extension::SPV_INTEL_optnone)) { in collectReqs()
1284 static void handleMIFlagDecoration(MachineInstr &I, const SPIRVSubtarget &ST, in handleMIFlagDecoration() argument
1289 SPIRV::Decoration::NoSignedWrap, ST, Reqs) in handleMIFlagDecoration()
1296 SPIRV::Decoration::NoUnsignedWrap, ST, in handleMIFlagDecoration()
1313 MachineModuleInfo *MMI, const SPIRVSubtarget &ST, in addDecorations() argument
1321 handleMIFlagDecoration(MI, ST, TII, MAI.Reqs); in addDecorations()
1335 ST = TM.getSubtargetImpl(); in runOnModule()
1336 GR = ST->getSPIRVGlobalRegistry(); in runOnModule()
1337 TII = ST->getInstrInfo(); in runOnModule()
1343 addDecorations(M, *TII, MMI, *ST, MAI); in runOnModule()
1345 collectReqs(M, MAI, MMI, *ST); in runOnModule()