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