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

Method IsOpcodeCodeMotionSafe

source/opt/instruction.cpp:876–977  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

874}
875
876bool Instruction::IsOpcodeCodeMotionSafe() const {
877 switch (opcode_) {
878 case spv::Op::OpNop:
879 case spv::Op::OpUndef:
880 case spv::Op::OpLoad:
881 case spv::Op::OpAccessChain:
882 case spv::Op::OpInBoundsAccessChain:
883 case spv::Op::OpArrayLength:
884 case spv::Op::OpVectorExtractDynamic:
885 case spv::Op::OpVectorInsertDynamic:
886 case spv::Op::OpVectorShuffle:
887 case spv::Op::OpCompositeConstruct:
888 case spv::Op::OpCompositeExtract:
889 case spv::Op::OpCompositeInsert:
890 case spv::Op::OpCopyObject:
891 case spv::Op::OpTranspose:
892 case spv::Op::OpConvertFToU:
893 case spv::Op::OpConvertFToS:
894 case spv::Op::OpConvertSToF:
895 case spv::Op::OpConvertUToF:
896 case spv::Op::OpUConvert:
897 case spv::Op::OpSConvert:
898 case spv::Op::OpFConvert:
899 case spv::Op::OpQuantizeToF16:
900 case spv::Op::OpBitcast:
901 case spv::Op::OpSNegate:
902 case spv::Op::OpFNegate:
903 case spv::Op::OpIAdd:
904 case spv::Op::OpFAdd:
905 case spv::Op::OpISub:
906 case spv::Op::OpFSub:
907 case spv::Op::OpIMul:
908 case spv::Op::OpFMul:
909 case spv::Op::OpUDiv:
910 case spv::Op::OpSDiv:
911 case spv::Op::OpFDiv:
912 case spv::Op::OpUMod:
913 case spv::Op::OpSRem:
914 case spv::Op::OpSMod:
915 case spv::Op::OpFRem:
916 case spv::Op::OpFMod:
917 case spv::Op::OpVectorTimesScalar:
918 case spv::Op::OpMatrixTimesScalar:
919 case spv::Op::OpVectorTimesMatrix:
920 case spv::Op::OpMatrixTimesVector:
921 case spv::Op::OpMatrixTimesMatrix:
922 case spv::Op::OpOuterProduct:
923 case spv::Op::OpDot:
924 case spv::Op::OpIAddCarry:
925 case spv::Op::OpISubBorrow:
926 case spv::Op::OpUMulExtended:
927 case spv::Op::OpSMulExtended:
928 case spv::Op::OpAny:
929 case spv::Op::OpAll:
930 case spv::Op::OpIsNan:
931 case spv::Op::OpIsInf:
932 case spv::Op::OpLogicalEqual:
933 case spv::Op::OpLogicalNotEqual:

Callers 4

MovableInstructionMethod · 0.80
HoistInstructionMethod · 0.80
CanHoistInstructionMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected