MCPcopy Create free account
hub / github.com/KhronosGroup/SPIRV-Tools / IsFoldableOpcode

Method IsFoldableOpcode

source/opt/fold.cpp:521–563  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

519}
520
521bool InstructionFolder::IsFoldableOpcode(spv::Op opcode) const {
522 // NOTE: Extend to more opcodes as new cases are handled in the folder
523 // functions.
524 switch (opcode) {
525 case spv::Op::OpBitwiseAnd:
526 case spv::Op::OpBitwiseOr:
527 case spv::Op::OpBitwiseXor:
528 case spv::Op::OpIAdd:
529 case spv::Op::OpIEqual:
530 case spv::Op::OpIMul:
531 case spv::Op::OpINotEqual:
532 case spv::Op::OpISub:
533 case spv::Op::OpLogicalAnd:
534 case spv::Op::OpLogicalEqual:
535 case spv::Op::OpLogicalNot:
536 case spv::Op::OpLogicalNotEqual:
537 case spv::Op::OpLogicalOr:
538 case spv::Op::OpNot:
539 case spv::Op::OpSDiv:
540 case spv::Op::OpSelect:
541 case spv::Op::OpSGreaterThan:
542 case spv::Op::OpSGreaterThanEqual:
543 case spv::Op::OpShiftLeftLogical:
544 case spv::Op::OpShiftRightArithmetic:
545 case spv::Op::OpShiftRightLogical:
546 case spv::Op::OpSLessThan:
547 case spv::Op::OpSLessThanEqual:
548 case spv::Op::OpSMod:
549 case spv::Op::OpSNegate:
550 case spv::Op::OpSRem:
551 case spv::Op::OpSConvert:
552 case spv::Op::OpUConvert:
553 case spv::Op::OpUDiv:
554 case spv::Op::OpUGreaterThan:
555 case spv::Op::OpUGreaterThanEqual:
556 case spv::Op::OpULessThan:
557 case spv::Op::OpULessThanEqual:
558 case spv::Op::OpUMod:
559 return true;
560 default:
561 return false;
562 }
563}
564
565bool InstructionFolder::IsFoldableConstant(
566 const analysis::Constant* cst) const {

Callers 2

Calls

no outgoing calls

Tested by

no test coverage detected