| 233 | } |
| 234 | |
| 235 | int32_t spvOpcodeGeneratesType(spv::Op op) { |
| 236 | switch (op) { |
| 237 | case spv::Op::OpTypeVoid: |
| 238 | case spv::Op::OpTypeBool: |
| 239 | case spv::Op::OpTypeInt: |
| 240 | case spv::Op::OpTypeFloat: |
| 241 | case spv::Op::OpTypeVector: |
| 242 | case spv::Op::OpTypeMatrix: |
| 243 | case spv::Op::OpTypeImage: |
| 244 | case spv::Op::OpTypeSampler: |
| 245 | case spv::Op::OpTypeSampledImage: |
| 246 | case spv::Op::OpTypeArray: |
| 247 | case spv::Op::OpTypeRuntimeArray: |
| 248 | case spv::Op::OpTypeStruct: |
| 249 | case spv::Op::OpTypeOpaque: |
| 250 | case spv::Op::OpTypePointer: |
| 251 | case spv::Op::OpTypeFunction: |
| 252 | case spv::Op::OpTypeEvent: |
| 253 | case spv::Op::OpTypeDeviceEvent: |
| 254 | case spv::Op::OpTypeReserveId: |
| 255 | case spv::Op::OpTypeQueue: |
| 256 | case spv::Op::OpTypePipe: |
| 257 | case spv::Op::OpTypePipeStorage: |
| 258 | case spv::Op::OpTypeNamedBarrier: |
| 259 | case spv::Op::OpTypeAccelerationStructureNV: |
| 260 | case spv::Op::OpTypeCooperativeMatrixNV: |
| 261 | case spv::Op::OpTypeCooperativeMatrixKHR: |
| 262 | case spv::Op::OpTypeVectorIdEXT: |
| 263 | // case spv::Op::OpTypeAccelerationStructureKHR: covered by |
| 264 | // spv::Op::OpTypeAccelerationStructureNV |
| 265 | case spv::Op::OpTypeRayQueryKHR: |
| 266 | case spv::Op::OpTypeHitObjectNV: |
| 267 | case spv::Op::OpTypeHitObjectEXT: |
| 268 | case spv::Op::OpTypeUntypedPointerKHR: |
| 269 | case spv::Op::OpTypeNodePayloadArrayAMDX: |
| 270 | case spv::Op::OpTypeTensorLayoutNV: |
| 271 | case spv::Op::OpTypeTensorViewNV: |
| 272 | case spv::Op::OpTypeTensorARM: |
| 273 | case spv::Op::OpTypeTaskSequenceINTEL: |
| 274 | case spv::Op::OpTypeGraphARM: |
| 275 | case spv::Op::OpTypeBufferEXT: |
| 276 | return true; |
| 277 | default: |
| 278 | // In particular, OpTypeForwardPointer does not generate a type, |
| 279 | // but declares a storage class for a pointer type generated |
| 280 | // by a different instruction. |
| 281 | break; |
| 282 | } |
| 283 | return 0; |
| 284 | } |
| 285 | |
| 286 | bool spvOpcodeIsDecoration(const spv::Op opcode) { |
| 287 | switch (opcode) { |
no outgoing calls
no test coverage detected