Lines Matching full:capability
38 static cl::list<SPIRV::Capability::Capability>
43 cl::values(clEnumValN(SPIRV::Capability::Shader, "Shader",
44 "SPIR-V Shader capability")));
47 SmallSet<SPIRV::Capability::Capability, 4> S;
102 // capability needs to be declared to use the feature." However, one
103 // capability may be preferred over another. We use command line
118 // capability requirements, use the list of extensions (if the subtarget
305 auto Cap = SPIRV::Capability::Capability(MI.getOperand(0).getImm());
575 LLVM_DEBUG(dbgs() << "Capability not supported: "
605 const Capability::Capability ToRemove,
606 const Capability::Capability IfPresent) {
630 addAvailableCaps({Capability::Addresses, Capability::Float16Buffer,
631 Capability::Int16, Capability::Int8, Capability::Kernel,
632 Capability::Linkage, Capability::Vector16,
633 Capability::Groups, Capability::GenericPointer,
634 Capability::Shader});
636 addAvailableCaps({Capability::Int64, Capability::Int64Atomics});
638 addAvailableCaps({Capability::ImageBasic, Capability::LiteralSampler,
639 Capability::Image1D, Capability::SampledBuffer,
640 Capability::ImageBuffer});
642 addAvailableCaps({Capability::ImageReadWrite});
646 addAvailableCaps({Capability::SubgroupDispatch, Capability::PipeStorage});
648 addAvailableCaps({Capability::GroupNonUniform,
649 Capability::GroupNonUniformVote,
650 Capability::GroupNonUniformArithmetic,
651 Capability::GroupNonUniformBallot,
652 Capability::GroupNonUniformClustered,
653 Capability::GroupNonUniformShuffle,
654 Capability::GroupNonUniformShuffleRelative});
656 addAvailableCaps({Capability::DenormPreserve, Capability::DenormFlushToZero,
657 Capability::SignedZeroInfNanPreserve,
658 Capability::RoundingModeRTE,
659 Capability::RoundingModeRTZ});
661 addAvailableCaps({Capability::Float16, Capability::Float64});
675 addAvailableCaps({Capability::Shader, Capability::Linkage});
678 addAvailableCaps({Capability::Int16, Capability::Int64, Capability::Float16,
679 Capability::Float64, Capability::GroupNonUniform});
737 Reqs.addRequirements(NoSampler ? SPIRV::Capability::Image1D
738 : SPIRV::Capability::Sampled1D);
742 Reqs.addRequirements(SPIRV::Capability::ImageMSArray);
745 Reqs.addRequirements(SPIRV::Capability::Shader);
747 Reqs.addRequirements(NoSampler ? SPIRV::Capability::ImageCubeArray
748 : SPIRV::Capability::SampledCubeArray);
751 Reqs.addRequirements(NoSampler ? SPIRV::Capability::ImageRect
752 : SPIRV::Capability::SampledRect);
755 Reqs.addRequirements(NoSampler ? SPIRV::Capability::ImageBuffer
756 : SPIRV::Capability::SampledBuffer);
759 Reqs.addRequirements(SPIRV::Capability::InputAttachment);
767 Reqs.addRequirements(SPIRV::Capability::ImageReadWrite);
769 Reqs.addRequirements(SPIRV::Capability::ImageBasic);
799 Reqs.addCapability(SPIRV::Capability::AtomicFloat16AddEXT);
802 Reqs.addCapability(SPIRV::Capability::AtomicFloat32AddEXT);
805 Reqs.addCapability(SPIRV::Capability::AtomicFloat64AddEXT);
818 Reqs.addCapability(SPIRV::Capability::AtomicFloat16MinMaxEXT);
821 Reqs.addCapability(SPIRV::Capability::AtomicFloat32MinMaxEXT);
824 Reqs.addCapability(SPIRV::Capability::AtomicFloat64MinMaxEXT);
860 Reqs.addCapability(SPIRV::Capability::Matrix);
865 Reqs.addCapability(SPIRV::Capability::Int64);
867 Reqs.addCapability(SPIRV::Capability::Int16);
869 Reqs.addCapability(SPIRV::Capability::Int8);
875 Reqs.addCapability(SPIRV::Capability::Float64);
877 Reqs.addCapability(SPIRV::Capability::Float16);
883 Reqs.addCapability(SPIRV::Capability::Vector16);
891 // capability.
899 Reqs.addCapability(SPIRV::Capability::Float16Buffer);
907 Reqs.addCapability(SPIRV::Capability::Shader);
911 Reqs.addCapability(SPIRV::Capability::BitInstructions);
914 Reqs.addCapability(SPIRV::Capability::Shader);
918 Reqs.addCapability(SPIRV::Capability::Kernel);
922 Reqs.addCapability(SPIRV::Capability::Pipes);
927 Reqs.addCapability(SPIRV::Capability::DeviceEnqueue);
939 Reqs.addCapability(SPIRV::Capability::Addresses);
942 Reqs.addCapability(SPIRV::Capability::LiteralSampler);
948 Reqs.addCapability(SPIRV::Capability::ImageBasic);
952 Reqs.addCapability(SPIRV::Capability::Addresses);
983 Reqs.addCapability(SPIRV::Capability::Int64Atomics);
1009 Reqs.addCapability(SPIRV::Capability::Kernel);
1010 Reqs.addCapability(SPIRV::Capability::GroupNonUniformArithmetic);
1011 Reqs.addCapability(SPIRV::Capability::GroupNonUniformBallot);
1014 Reqs.addCapability(SPIRV::Capability::GroupNonUniformClustered);
1019 Reqs.addCapability(SPIRV::Capability::GroupNonUniformPartitionedNV);
1026 Reqs.addCapability(SPIRV::Capability::GroupNonUniformShuffle);
1030 Reqs.addCapability(SPIRV::Capability::GroupNonUniformShuffleRelative);
1043 Reqs.addCapability(SPIRV::Capability::Groups);
1046 Reqs.addCapability(SPIRV::Capability::GroupNonUniform);
1051 Reqs.addCapability(SPIRV::Capability::GroupNonUniformVote);
1061 Reqs.addCapability(SPIRV::Capability::GroupNonUniformBallot);
1069 Reqs.addCapability(SPIRV::Capability::SubgroupShuffleINTEL);
1076 Reqs.addCapability(SPIRV::Capability::SubgroupBufferBlockIOINTEL);
1083 Reqs.addCapability(SPIRV::Capability::SubgroupImageBlockIOINTEL);
1090 Reqs.addCapability(SPIRV::Capability::ExpectAssumeKHR);
1097 Reqs.addCapability(SPIRV::Capability::USMStorageClassesINTEL);
1103 Reqs.addCapability(SPIRV::Capability::FunctionPointersINTEL);
1112 Reqs.addCapability(SPIRV::Capability::GroupNonUniformRotateKHR);
1113 Reqs.addCapability(SPIRV::Capability::GroupNonUniform);
1126 Reqs.addCapability(SPIRV::Capability::GroupUniformArithmeticKHR);
1135 Reqs.addCapability(SPIRV::Capability::ShaderClockKHR);
1140 Reqs.addCapability(SPIRV::Capability::FunctionPointersINTEL);
1152 Reqs.addCapability(SPIRV::Capability::BFloat16ConversionINTEL);
1160 Reqs.addCapability(SPIRV::Capability::VariableLengthArrayINTEL);
1168 Reqs.addCapability(SPIRV::Capability::AsmINTEL);
1178 Reqs.addCapability(SPIRV::Capability::CooperativeMatrixKHR);
1184 // If we require capability Shader, then we can remove the requirement for
1185 // the BitInstructions capability, since Shader is a superset capability
1187 Reqs.removeCapabilityIf(SPIRV::Capability::BitInstructions,
1188 SPIRV::Capability::Shader);
1264 MAI.Reqs.addCapability(SPIRV::Capability::OptNoneINTEL);
1361 // If there are no entry points, we need the Linkage capability.
1363 MAI.Reqs.addCapability(SPIRV::Capability::Linkage);