Lines Matching refs:spv

30 bool IsStorageClassAllowedByUniversalRules(spv::StorageClass storage_class) {
32 case spv::StorageClass::Uniform:
33 case spv::StorageClass::StorageBuffer:
34 case spv::StorageClass::Workgroup:
35 case spv::StorageClass::CrossWorkgroup:
36 case spv::StorageClass::Generic:
37 case spv::StorageClass::AtomicCounter:
38 case spv::StorageClass::Image:
39 case spv::StorageClass::Function:
40 case spv::StorageClass::PhysicalStorageBuffer:
41 case spv::StorageClass::TaskPayloadWorkgroupEXT:
49 bool HasReturnType(spv::Op opcode) {
51 case spv::Op::OpAtomicStore:
52 case spv::Op::OpAtomicFlagClear:
60 bool HasOnlyFloatReturnType(spv::Op opcode) {
62 case spv::Op::OpAtomicFAddEXT:
63 case spv::Op::OpAtomicFMinEXT:
64 case spv::Op::OpAtomicFMaxEXT:
72 bool HasOnlyIntReturnType(spv::Op opcode) {
74 case spv::Op::OpAtomicCompareExchange:
75 case spv::Op::OpAtomicCompareExchangeWeak:
76 case spv::Op::OpAtomicIIncrement:
77 case spv::Op::OpAtomicIDecrement:
78 case spv::Op::OpAtomicIAdd:
79 case spv::Op::OpAtomicISub:
80 case spv::Op::OpAtomicSMin:
81 case spv::Op::OpAtomicUMin:
82 case spv::Op::OpAtomicSMax:
83 case spv::Op::OpAtomicUMax:
84 case spv::Op::OpAtomicAnd:
85 case spv::Op::OpAtomicOr:
86 case spv::Op::OpAtomicXor:
94 bool HasIntOrFloatReturnType(spv::Op opcode) {
96 case spv::Op::OpAtomicLoad:
97 case spv::Op::OpAtomicExchange:
105 bool HasOnlyBoolReturnType(spv::Op opcode) {
107 case spv::Op::OpAtomicFlagTestAndSet:
122 const spv::Op opcode = inst->opcode();
124 case spv::Op::OpAtomicLoad:
125 case spv::Op::OpAtomicStore:
126 case spv::Op::OpAtomicExchange:
127 case spv::Op::OpAtomicFAddEXT:
128 case spv::Op::OpAtomicCompareExchange:
129 case spv::Op::OpAtomicCompareExchangeWeak:
130 case spv::Op::OpAtomicIIncrement:
131 case spv::Op::OpAtomicIDecrement:
132 case spv::Op::OpAtomicIAdd:
133 case spv::Op::OpAtomicISub:
134 case spv::Op::OpAtomicSMin:
135 case spv::Op::OpAtomicUMin:
136 case spv::Op::OpAtomicFMinEXT:
137 case spv::Op::OpAtomicSMax:
138 case spv::Op::OpAtomicUMax:
139 case spv::Op::OpAtomicFMaxEXT:
140 case spv::Op::OpAtomicAnd:
141 case spv::Op::OpAtomicOr:
142 case spv::Op::OpAtomicXor:
143 case spv::Op::OpAtomicFlagTestAndSet:
144 case spv::Op::OpAtomicFlagClear: {
178 spv::StorageClass storage_class;
187 !_.HasCapability(spv::Capability::Int64Atomics)) {
201 if (_.HasCapability(spv::Capability::Shader)) {
204 if ((storage_class != spv::StorageClass::Uniform) &&
205 (storage_class != spv::StorageClass::StorageBuffer) &&
206 (storage_class != spv::StorageClass::Workgroup) &&
207 (storage_class != spv::StorageClass::Image) &&
208 (storage_class != spv::StorageClass::PhysicalStorageBuffer) &&
209 (storage_class != spv::StorageClass::TaskPayloadWorkgroupEXT)) {
216 } else if (storage_class == spv::StorageClass::Function) {
223 if (opcode == spv::Op::OpAtomicFAddEXT) {
226 (!_.HasCapability(spv::Capability::AtomicFloat16AddEXT))) {
233 (!_.HasCapability(spv::Capability::AtomicFloat32AddEXT))) {
240 (!_.HasCapability(spv::Capability::AtomicFloat64AddEXT))) {
246 } else if (opcode == spv::Op::OpAtomicFMinEXT ||
247 opcode == spv::Op::OpAtomicFMaxEXT) {
249 (!_.HasCapability(spv::Capability::AtomicFloat16MinMaxEXT))) {
256 (!_.HasCapability(spv::Capability::AtomicFloat32MinMaxEXT))) {
263 (!_.HasCapability(spv::Capability::AtomicFloat64MinMaxEXT))) {
274 if ((storage_class != spv::StorageClass::Function) &&
275 (storage_class != spv::StorageClass::Workgroup) &&
276 (storage_class != spv::StorageClass::CrossWorkgroup) &&
277 (storage_class != spv::StorageClass::Generic)) {
285 if (storage_class == spv::StorageClass::Generic) {
294 if (opcode == spv::Op::OpAtomicFlagTestAndSet ||
295 opcode == spv::Op::OpAtomicFlagClear) {
302 } else if (opcode == spv::Op::OpAtomicStore) {
326 if (opcode == spv::Op::OpAtomicCompareExchange ||
327 opcode == spv::Op::OpAtomicCompareExchangeWeak) {
347 ((equal_value & uint32_t(spv::MemorySemanticsMask::Volatile)) ^
348 (unequal_value & uint32_t(spv::MemorySemanticsMask::Volatile)))) {
355 if (opcode == spv::Op::OpAtomicStore) {
363 } else if (opcode != spv::Op::OpAtomicLoad &&
364 opcode != spv::Op::OpAtomicIIncrement &&
365 opcode != spv::Op::OpAtomicIDecrement &&
366 opcode != spv::Op::OpAtomicFlagTestAndSet &&
367 opcode != spv::Op::OpAtomicFlagClear) {
376 if (opcode == spv::Op::OpAtomicCompareExchange ||
377 opcode == spv::Op::OpAtomicCompareExchangeWeak) {