Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/fuzz/transformation_invert_comparison_operator.cpp')
-rw-r--r--source/fuzz/transformation_invert_comparison_operator.cpp143
1 files changed, 72 insertions, 71 deletions
diff --git a/source/fuzz/transformation_invert_comparison_operator.cpp b/source/fuzz/transformation_invert_comparison_operator.cpp
index ed7358fa6..49801e392 100644
--- a/source/fuzz/transformation_invert_comparison_operator.cpp
+++ b/source/fuzz/transformation_invert_comparison_operator.cpp
@@ -47,7 +47,8 @@ bool TransformationInvertComparisonOperator::IsApplicable(
auto iter = fuzzerutil::GetIteratorForInstruction(block, inst);
++iter;
assert(iter != block->end() && "Instruction can't be the last in the block");
- assert(fuzzerutil::CanInsertOpcodeBeforeInstruction(SpvOpLogicalNot, iter) &&
+ assert(fuzzerutil::CanInsertOpcodeBeforeInstruction(spv::Op::OpLogicalNot,
+ iter) &&
"Can't insert negation after comparison operator");
// |message_.fresh_id| must be fresh.
@@ -65,7 +66,7 @@ void TransformationInvertComparisonOperator::Apply(
++iter;
iter.InsertBefore(MakeUnique<opt::Instruction>(
- ir_context, SpvOpLogicalNot, inst->type_id(), inst->result_id(),
+ ir_context, spv::Op::OpLogicalNot, inst->type_id(), inst->result_id(),
opt::Instruction::OperandList{
{SPV_OPERAND_TYPE_ID, {message_.fresh_id()}}}));
@@ -82,88 +83,88 @@ void TransformationInvertComparisonOperator::Apply(
}
bool TransformationInvertComparisonOperator::IsInversionSupported(
- SpvOp opcode) {
+ spv::Op opcode) {
switch (opcode) {
- case SpvOpSGreaterThan:
- case SpvOpSGreaterThanEqual:
- case SpvOpSLessThan:
- case SpvOpSLessThanEqual:
- case SpvOpUGreaterThan:
- case SpvOpUGreaterThanEqual:
- case SpvOpULessThan:
- case SpvOpULessThanEqual:
- case SpvOpIEqual:
- case SpvOpINotEqual:
- case SpvOpFOrdEqual:
- case SpvOpFUnordEqual:
- case SpvOpFOrdNotEqual:
- case SpvOpFUnordNotEqual:
- case SpvOpFOrdLessThan:
- case SpvOpFUnordLessThan:
- case SpvOpFOrdLessThanEqual:
- case SpvOpFUnordLessThanEqual:
- case SpvOpFOrdGreaterThan:
- case SpvOpFUnordGreaterThan:
- case SpvOpFOrdGreaterThanEqual:
- case SpvOpFUnordGreaterThanEqual:
+ case spv::Op::OpSGreaterThan:
+ case spv::Op::OpSGreaterThanEqual:
+ case spv::Op::OpSLessThan:
+ case spv::Op::OpSLessThanEqual:
+ case spv::Op::OpUGreaterThan:
+ case spv::Op::OpUGreaterThanEqual:
+ case spv::Op::OpULessThan:
+ case spv::Op::OpULessThanEqual:
+ case spv::Op::OpIEqual:
+ case spv::Op::OpINotEqual:
+ case spv::Op::OpFOrdEqual:
+ case spv::Op::OpFUnordEqual:
+ case spv::Op::OpFOrdNotEqual:
+ case spv::Op::OpFUnordNotEqual:
+ case spv::Op::OpFOrdLessThan:
+ case spv::Op::OpFUnordLessThan:
+ case spv::Op::OpFOrdLessThanEqual:
+ case spv::Op::OpFUnordLessThanEqual:
+ case spv::Op::OpFOrdGreaterThan:
+ case spv::Op::OpFUnordGreaterThan:
+ case spv::Op::OpFOrdGreaterThanEqual:
+ case spv::Op::OpFUnordGreaterThanEqual:
return true;
default:
return false;
}
}
-SpvOp TransformationInvertComparisonOperator::InvertOpcode(SpvOp opcode) {
+spv::Op TransformationInvertComparisonOperator::InvertOpcode(spv::Op opcode) {
assert(IsInversionSupported(opcode) && "Inversion must be supported");
switch (opcode) {
- case SpvOpSGreaterThan:
- return SpvOpSLessThanEqual;
- case SpvOpSGreaterThanEqual:
- return SpvOpSLessThan;
- case SpvOpSLessThan:
- return SpvOpSGreaterThanEqual;
- case SpvOpSLessThanEqual:
- return SpvOpSGreaterThan;
- case SpvOpUGreaterThan:
- return SpvOpULessThanEqual;
- case SpvOpUGreaterThanEqual:
- return SpvOpULessThan;
- case SpvOpULessThan:
- return SpvOpUGreaterThanEqual;
- case SpvOpULessThanEqual:
- return SpvOpUGreaterThan;
- case SpvOpIEqual:
- return SpvOpINotEqual;
- case SpvOpINotEqual:
- return SpvOpIEqual;
- case SpvOpFOrdEqual:
- return SpvOpFUnordNotEqual;
- case SpvOpFUnordEqual:
- return SpvOpFOrdNotEqual;
- case SpvOpFOrdNotEqual:
- return SpvOpFUnordEqual;
- case SpvOpFUnordNotEqual:
- return SpvOpFOrdEqual;
- case SpvOpFOrdLessThan:
- return SpvOpFUnordGreaterThanEqual;
- case SpvOpFUnordLessThan:
- return SpvOpFOrdGreaterThanEqual;
- case SpvOpFOrdLessThanEqual:
- return SpvOpFUnordGreaterThan;
- case SpvOpFUnordLessThanEqual:
- return SpvOpFOrdGreaterThan;
- case SpvOpFOrdGreaterThan:
- return SpvOpFUnordLessThanEqual;
- case SpvOpFUnordGreaterThan:
- return SpvOpFOrdLessThanEqual;
- case SpvOpFOrdGreaterThanEqual:
- return SpvOpFUnordLessThan;
- case SpvOpFUnordGreaterThanEqual:
- return SpvOpFOrdLessThan;
+ case spv::Op::OpSGreaterThan:
+ return spv::Op::OpSLessThanEqual;
+ case spv::Op::OpSGreaterThanEqual:
+ return spv::Op::OpSLessThan;
+ case spv::Op::OpSLessThan:
+ return spv::Op::OpSGreaterThanEqual;
+ case spv::Op::OpSLessThanEqual:
+ return spv::Op::OpSGreaterThan;
+ case spv::Op::OpUGreaterThan:
+ return spv::Op::OpULessThanEqual;
+ case spv::Op::OpUGreaterThanEqual:
+ return spv::Op::OpULessThan;
+ case spv::Op::OpULessThan:
+ return spv::Op::OpUGreaterThanEqual;
+ case spv::Op::OpULessThanEqual:
+ return spv::Op::OpUGreaterThan;
+ case spv::Op::OpIEqual:
+ return spv::Op::OpINotEqual;
+ case spv::Op::OpINotEqual:
+ return spv::Op::OpIEqual;
+ case spv::Op::OpFOrdEqual:
+ return spv::Op::OpFUnordNotEqual;
+ case spv::Op::OpFUnordEqual:
+ return spv::Op::OpFOrdNotEqual;
+ case spv::Op::OpFOrdNotEqual:
+ return spv::Op::OpFUnordEqual;
+ case spv::Op::OpFUnordNotEqual:
+ return spv::Op::OpFOrdEqual;
+ case spv::Op::OpFOrdLessThan:
+ return spv::Op::OpFUnordGreaterThanEqual;
+ case spv::Op::OpFUnordLessThan:
+ return spv::Op::OpFOrdGreaterThanEqual;
+ case spv::Op::OpFOrdLessThanEqual:
+ return spv::Op::OpFUnordGreaterThan;
+ case spv::Op::OpFUnordLessThanEqual:
+ return spv::Op::OpFOrdGreaterThan;
+ case spv::Op::OpFOrdGreaterThan:
+ return spv::Op::OpFUnordLessThanEqual;
+ case spv::Op::OpFUnordGreaterThan:
+ return spv::Op::OpFOrdLessThanEqual;
+ case spv::Op::OpFOrdGreaterThanEqual:
+ return spv::Op::OpFUnordLessThan;
+ case spv::Op::OpFUnordGreaterThanEqual:
+ return spv::Op::OpFOrdLessThan;
default:
// The program will fail in the debug mode because of the assertion
// at the beginning of the function.
- return SpvOpNop;
+ return spv::Op::OpNop;
}
}