| 974 | } |
| 975 | |
| 976 | bool PerEntryExecutionMode(spv::ExecutionMode mode) { |
| 977 | switch (mode) { |
| 978 | // These execution modes can be specified multiple times per entry point. |
| 979 | case spv::ExecutionMode::DenormPreserve: |
| 980 | case spv::ExecutionMode::DenormFlushToZero: |
| 981 | case spv::ExecutionMode::SignedZeroInfNanPreserve: |
| 982 | case spv::ExecutionMode::RoundingModeRTE: |
| 983 | case spv::ExecutionMode::RoundingModeRTZ: |
| 984 | case spv::ExecutionMode::FPFastMathDefault: |
| 985 | case spv::ExecutionMode::RoundingModeRTPINTEL: |
| 986 | case spv::ExecutionMode::RoundingModeRTNINTEL: |
| 987 | case spv::ExecutionMode::FloatingPointModeALTINTEL: |
| 988 | case spv::ExecutionMode::FloatingPointModeIEEEINTEL: |
| 989 | return false; |
| 990 | default: |
| 991 | return true; |
| 992 | } |
| 993 | } |
| 994 | |
| 995 | spv_result_t ValidateCapability(ValidationState_t& _, const Instruction* inst) { |
| 996 | auto cap = inst->GetOperandAs<spv::Capability>(0); |
no outgoing calls
no test coverage detected