| 3478 | } // namespace |
| 3479 | |
| 3480 | spv_result_t MemoryPass(ValidationState_t& _, const Instruction* inst) { |
| 3481 | switch (inst->opcode()) { |
| 3482 | case spv::Op::OpVariable: |
| 3483 | case spv::Op::OpUntypedVariableKHR: |
| 3484 | return ValidateVariable(_, inst); |
| 3485 | case spv::Op::OpBufferPointerEXT: |
| 3486 | return ValidateBufferPointerEXT(_, inst); |
| 3487 | case spv::Op::OpLoad: |
| 3488 | return ValidateLoad(_, inst); |
| 3489 | case spv::Op::OpStore: |
| 3490 | return ValidateStore(_, inst); |
| 3491 | case spv::Op::OpCopyMemory: |
| 3492 | case spv::Op::OpCopyMemorySized: |
| 3493 | return ValidateCopyMemory(_, inst); |
| 3494 | case spv::Op::OpPtrAccessChain: |
| 3495 | case spv::Op::OpUntypedPtrAccessChainKHR: |
| 3496 | case spv::Op::OpUntypedInBoundsPtrAccessChainKHR: |
| 3497 | return ValidatePtrAccessChain(_, inst); |
| 3498 | case spv::Op::OpAccessChain: |
| 3499 | case spv::Op::OpInBoundsAccessChain: |
| 3500 | case spv::Op::OpInBoundsPtrAccessChain: |
| 3501 | case spv::Op::OpUntypedAccessChainKHR: |
| 3502 | case spv::Op::OpUntypedInBoundsAccessChainKHR: |
| 3503 | return ValidateAccessChain(_, inst); |
| 3504 | case spv::Op::OpRawAccessChainNV: |
| 3505 | return ValidateRawAccessChain(_, inst); |
| 3506 | case spv::Op::OpArrayLength: |
| 3507 | case spv::Op::OpUntypedArrayLengthKHR: |
| 3508 | return ValidateArrayLength(_, inst); |
| 3509 | case spv::Op::OpCooperativeMatrixLoadNV: |
| 3510 | case spv::Op::OpCooperativeMatrixStoreNV: |
| 3511 | return ValidateCooperativeMatrixLoadStoreNV(_, inst); |
| 3512 | case spv::Op::OpCooperativeMatrixLengthKHR: |
| 3513 | return ValidateCooperativeMatrixLength(_, inst, true); |
| 3514 | case spv::Op::OpCooperativeMatrixLengthNV: |
| 3515 | return ValidateCooperativeMatrixLength(_, inst, false); |
| 3516 | case spv::Op::OpCooperativeMatrixLoadKHR: |
| 3517 | case spv::Op::OpCooperativeMatrixStoreKHR: |
| 3518 | return ValidateCooperativeMatrixLoadStoreKHR(_, inst); |
| 3519 | case spv::Op::OpCooperativeMatrixLoadTensorNV: |
| 3520 | case spv::Op::OpCooperativeMatrixStoreTensorNV: |
| 3521 | return ValidateCooperativeMatrixLoadStoreTensorNV(_, inst); |
| 3522 | case spv::Op::OpCooperativeVectorLoadNV: |
| 3523 | case spv::Op::OpCooperativeVectorStoreNV: |
| 3524 | return ValidateCooperativeVectorLoadStoreNV(_, inst); |
| 3525 | case spv::Op::OpCooperativeVectorOuterProductAccumulateNV: |
| 3526 | return ValidateCooperativeVectorOuterProductNV(_, inst); |
| 3527 | case spv::Op::OpCooperativeVectorReduceSumAccumulateNV: |
| 3528 | return ValidateCooperativeVectorReduceSumNV(_, inst); |
| 3529 | case spv::Op::OpCooperativeVectorMatrixMulNV: |
| 3530 | case spv::Op::OpCooperativeVectorMatrixMulAddNV: |
| 3531 | return ValidateCooperativeVectorMatrixMulNV(_, inst); |
| 3532 | case spv::Op::OpPtrEqual: |
| 3533 | case spv::Op::OpPtrNotEqual: |
| 3534 | case spv::Op::OpPtrDiff: |
| 3535 | return ValidatePtrComparison(_, inst); |
| 3536 | case spv::Op::OpImageTexelPointer: |
| 3537 | case spv::Op::OpGenericPtrMemSemantics: |
no test coverage detected