diff options
Diffstat (limited to 'test/fuzz/transformation_set_loop_control_test.cpp')
-rw-r--r-- | test/fuzz/transformation_set_loop_control_test.cpp | 668 |
1 files changed, 304 insertions, 364 deletions
diff --git a/test/fuzz/transformation_set_loop_control_test.cpp b/test/fuzz/transformation_set_loop_control_test.cpp index 94a5b366..88b4aab5 100644 --- a/test/fuzz/transformation_set_loop_control_test.cpp +++ b/test/fuzz/transformation_set_loop_control_test.cpp @@ -278,458 +278,398 @@ TEST(TransformationSetLoopControlTest, VariousScenarios) { // DependencyLength|MinIterations|MaxIterations|IterationMultiple|PeelCount|PartialCount // 2 5 90 4 7 14 - ASSERT_TRUE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(10, SpvLoopControlMaskNone, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(10, SpvLoopControlUnrollMask, 0, 0) .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(10, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); ASSERT_FALSE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::DependencyInfinite, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::DependencyLength, 0, 0) + 10, SpvLoopControlDependencyInfiniteMask, 0, 0) .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(10, SpvLoopControlDependencyLengthMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(10, SpvLoopControlMinIterationsMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(10, SpvLoopControlMaxIterationsMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); ASSERT_FALSE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::MinIterations, 0, 0) + 10, SpvLoopControlIterationMultipleMask, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::MaxIterations, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::IterationMultiple, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::PeelCount, 3, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::PeelCount, 3, 3) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::PartialCount, 0, 3) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 10, (uint32_t)spv::LoopControlMask::PartialCount, 3, 3) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 10, - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, - 3, 3) - .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(10, SpvLoopControlPeelCountMask, 3, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(10, SpvLoopControlPeelCountMask, 3, 3) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(10, SpvLoopControlPartialCountMask, 0, 3) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(10, SpvLoopControlPartialCountMask, 3, 3) + .IsApplicable(context.get(), transformation_context)); ASSERT_TRUE(TransformationSetLoopControl( 10, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, + SpvLoopControlPeelCountMask | SpvLoopControlPartialCountMask, 3, 3) .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 10, - (uint32_t)spv::LoopControlMask::DontUnroll | - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, - 3, 3) + ASSERT_TRUE(TransformationSetLoopControl(10, + SpvLoopControlUnrollMask | + SpvLoopControlPeelCountMask | + SpvLoopControlPartialCountMask, + 3, 3) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE(TransformationSetLoopControl(10, + SpvLoopControlDontUnrollMask | + SpvLoopControlPeelCountMask | + SpvLoopControlPartialCountMask, + 3, 3) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 23, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(23, SpvLoopControlMaskNone, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 23, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 23, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(23, SpvLoopControlUnrollMask, 0, 0) .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(23, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); ASSERT_TRUE(TransformationSetLoopControl( 23, - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, + SpvLoopControlPeelCountMask | SpvLoopControlPartialCountMask, 3, 3) .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 23, (uint32_t)spv::LoopControlMask::MaxIterations, 2, 3) - .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(23, SpvLoopControlMaxIterationsMask, 2, 3) + .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 33, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(33, SpvLoopControlMaskNone, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 33, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(33, SpvLoopControlUnrollMask, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 33, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 33, (uint32_t)spv::LoopControlMask::MinIterations, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 33, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::PeelCount, - 5, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 33, - (uint32_t)spv::LoopControlMask::DontUnroll | - (uint32_t)spv::LoopControlMask::PartialCount, - 0, 10) + ASSERT_TRUE( + TransformationSetLoopControl(33, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(33, SpvLoopControlMinIterationsMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl( + 33, SpvLoopControlUnrollMask | SpvLoopControlPeelCountMask, 5, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE(TransformationSetLoopControl(33, + SpvLoopControlDontUnrollMask | + SpvLoopControlPartialCountMask, + 0, 10) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 43, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(43, SpvLoopControlMaskNone, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 43, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 43, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 43, - (uint32_t)spv::LoopControlMask::MaskNone | - (uint32_t)spv::LoopControlMask::DependencyInfinite, - 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(43, SpvLoopControlUnrollMask, 0, 0) .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(43, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); ASSERT_TRUE(TransformationSetLoopControl( 43, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::DependencyInfinite, + SpvLoopControlMaskNone | SpvLoopControlDependencyInfiniteMask, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 43, - (uint32_t)spv::LoopControlMask::DontUnroll | - (uint32_t)spv::LoopControlMask::DependencyInfinite, - 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 43, - (uint32_t)spv::LoopControlMask::DependencyInfinite | - (uint32_t)spv::LoopControlMask::DependencyLength, - 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 43, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::PeelCount, - 5, 0) - .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl( + 43, SpvLoopControlUnrollMask | SpvLoopControlDependencyInfiniteMask, + 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl( + 43, + SpvLoopControlDontUnrollMask | SpvLoopControlDependencyInfiniteMask, + 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(43, + SpvLoopControlDependencyInfiniteMask | + SpvLoopControlDependencyLengthMask, + 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl( + 43, SpvLoopControlUnrollMask | SpvLoopControlPeelCountMask, 5, 0) + .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 53, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(53, SpvLoopControlMaskNone, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 53, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 53, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 53, (uint32_t)spv::LoopControlMask::MaxIterations, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 53, - (uint32_t)spv::LoopControlMask::MaskNone | - (uint32_t)spv::LoopControlMask::DependencyLength, - 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 53, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::DependencyInfinite, - 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 53, - (uint32_t)spv::LoopControlMask::DontUnroll | - (uint32_t)spv::LoopControlMask::DependencyLength, - 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 53, - (uint32_t)spv::LoopControlMask::DependencyInfinite | - (uint32_t)spv::LoopControlMask::DependencyLength, - 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 53, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::DependencyLength | - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, - 5, 3) + ASSERT_TRUE(TransformationSetLoopControl(53, SpvLoopControlUnrollMask, 0, 0) .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(53, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(53, SpvLoopControlMaxIterationsMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl( + 53, SpvLoopControlMaskNone | SpvLoopControlDependencyLengthMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl( + 53, SpvLoopControlUnrollMask | SpvLoopControlDependencyInfiniteMask, + 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl( + 53, SpvLoopControlDontUnrollMask | SpvLoopControlDependencyLengthMask, + 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(53, + SpvLoopControlDependencyInfiniteMask | + SpvLoopControlDependencyLengthMask, + 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl( + 53, + SpvLoopControlUnrollMask | SpvLoopControlDependencyLengthMask | + SpvLoopControlPeelCountMask | SpvLoopControlPartialCountMask, + 5, 3) + .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 63, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 63, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 63, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 63, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, - 5, 3) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 63, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::PeelCount, - 23, 0) + ASSERT_TRUE(TransformationSetLoopControl(63, SpvLoopControlMaskNone, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE(TransformationSetLoopControl(63, SpvLoopControlUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(63, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE(TransformationSetLoopControl(63, + SpvLoopControlUnrollMask | + SpvLoopControlMinIterationsMask | + SpvLoopControlPeelCountMask | + SpvLoopControlPartialCountMask, + 5, 3) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE(TransformationSetLoopControl(63, + SpvLoopControlUnrollMask | + SpvLoopControlMinIterationsMask | + SpvLoopControlPeelCountMask, + 23, 0) .IsApplicable(context.get(), transformation_context)); ASSERT_FALSE(TransformationSetLoopControl( 63, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::PeelCount, + SpvLoopControlUnrollMask | SpvLoopControlMinIterationsMask | + SpvLoopControlPeelCountMask, 2, 23) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 73, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(73, SpvLoopControlMaskNone, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 73, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 73, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(73, SpvLoopControlUnrollMask, 0, 0) .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(73, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); ASSERT_FALSE(TransformationSetLoopControl( 73, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, + SpvLoopControlUnrollMask | SpvLoopControlMinIterationsMask | + SpvLoopControlPeelCountMask | + SpvLoopControlPartialCountMask, 5, 3) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 73, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MaxIterations | - (uint32_t)spv::LoopControlMask::PeelCount, - 23, 0) + ASSERT_TRUE(TransformationSetLoopControl(73, + SpvLoopControlUnrollMask | + SpvLoopControlMaxIterationsMask | + SpvLoopControlPeelCountMask, + 23, 0) .IsApplicable(context.get(), transformation_context)); ASSERT_FALSE(TransformationSetLoopControl( 73, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MaxIterations | - (uint32_t)spv::LoopControlMask::PeelCount, + SpvLoopControlUnrollMask | SpvLoopControlMaxIterationsMask | + SpvLoopControlPeelCountMask, 2, 23) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 83, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 83, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(83, SpvLoopControlMaskNone, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 83, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(83, SpvLoopControlUnrollMask, 0, 0) .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(83, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); ASSERT_FALSE(TransformationSetLoopControl( 83, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, + SpvLoopControlUnrollMask | SpvLoopControlMinIterationsMask | + SpvLoopControlPeelCountMask | + SpvLoopControlPartialCountMask, 5, 3) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 83, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::IterationMultiple | - (uint32_t)spv::LoopControlMask::PeelCount, - 23, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 83, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::IterationMultiple | - (uint32_t)spv::LoopControlMask::PeelCount, - 2, 23) - .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(83, + SpvLoopControlUnrollMask | + SpvLoopControlIterationMultipleMask | + SpvLoopControlPeelCountMask, + 23, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(83, + SpvLoopControlUnrollMask | + SpvLoopControlIterationMultipleMask | + SpvLoopControlPeelCountMask, + 2, 23) + .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 93, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 93, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 93, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 93, (uint32_t)spv::LoopControlMask::PeelCount, 8, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 93, (uint32_t)spv::LoopControlMask::PeelCount, 8, 8) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 93, (uint32_t)spv::LoopControlMask::PartialCount, 0, 8) - .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE(TransformationSetLoopControl(93, SpvLoopControlMaskNone, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE(TransformationSetLoopControl(93, SpvLoopControlUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(93, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(93, SpvLoopControlPeelCountMask, 8, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl(93, SpvLoopControlPeelCountMask, 8, 8) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(93, SpvLoopControlPartialCountMask, 0, 8) + .IsApplicable(context.get(), transformation_context)); ASSERT_TRUE(TransformationSetLoopControl( 93, - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, + SpvLoopControlPeelCountMask | SpvLoopControlPartialCountMask, 16, 8) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 103, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 103, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 103, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 103, (uint32_t)spv::LoopControlMask::PartialCount, 0, 60) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 103, - (uint32_t)spv::LoopControlMask::DontUnroll | - (uint32_t)spv::LoopControlMask::PartialCount, - 0, 60) + ASSERT_TRUE(TransformationSetLoopControl(103, SpvLoopControlMaskNone, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE(TransformationSetLoopControl(103, SpvLoopControlUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(103, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(103, SpvLoopControlPartialCountMask, 0, 60) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE(TransformationSetLoopControl(103, + SpvLoopControlDontUnrollMask | + SpvLoopControlPartialCountMask, + 0, 60) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 113, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(113, SpvLoopControlMaskNone, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 113, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(113, SpvLoopControlUnrollMask, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 113, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 113, (uint32_t)spv::LoopControlMask::PeelCount, 12, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 113, - (uint32_t)spv::LoopControlMask::IterationMultiple | - (uint32_t)spv::LoopControlMask::PeelCount, - 12, 0) - .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(113, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl(113, SpvLoopControlPeelCountMask, 12, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl( + 113, + SpvLoopControlIterationMultipleMask | SpvLoopControlPeelCountMask, 12, + 0) + .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 123, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 123, (uint32_t)spv::LoopControlMask::Unroll, 0, 0) - .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 123, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0) + ASSERT_TRUE(TransformationSetLoopControl(123, SpvLoopControlMaskNone, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 123, - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::MaxIterations | - (uint32_t)spv::LoopControlMask::IterationMultiple | - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, - 7, 8) + ASSERT_TRUE(TransformationSetLoopControl(123, SpvLoopControlUnrollMask, 0, 0) .IsApplicable(context.get(), transformation_context)); - ASSERT_TRUE(TransformationSetLoopControl( - 123, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::MaxIterations | - (uint32_t)spv::LoopControlMask::PartialCount, - 0, 9) + ASSERT_TRUE( + TransformationSetLoopControl(123, SpvLoopControlDontUnrollMask, 0, 0) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE( + TransformationSetLoopControl( + 123, + SpvLoopControlMinIterationsMask | SpvLoopControlMaxIterationsMask | + SpvLoopControlIterationMultipleMask | + SpvLoopControlPeelCountMask | SpvLoopControlPartialCountMask, + 7, 8) + .IsApplicable(context.get(), transformation_context)); + ASSERT_TRUE(TransformationSetLoopControl(123, + SpvLoopControlUnrollMask | + SpvLoopControlMinIterationsMask | + SpvLoopControlMaxIterationsMask | + SpvLoopControlPartialCountMask, + 0, 9) .IsApplicable(context.get(), transformation_context)); ASSERT_FALSE(TransformationSetLoopControl( 123, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::MaxIterations | - (uint32_t)spv::LoopControlMask::PartialCount, - 7, 9) - .IsApplicable(context.get(), transformation_context)); - ASSERT_FALSE(TransformationSetLoopControl( - 123, - (uint32_t)spv::LoopControlMask::DontUnroll | - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::MaxIterations | - (uint32_t)spv::LoopControlMask::PartialCount, + SpvLoopControlUnrollMask | SpvLoopControlMinIterationsMask | + SpvLoopControlMaxIterationsMask | + SpvLoopControlPartialCountMask, 7, 9) .IsApplicable(context.get(), transformation_context)); + ASSERT_FALSE( + TransformationSetLoopControl( + 123, + SpvLoopControlDontUnrollMask | SpvLoopControlMinIterationsMask | + SpvLoopControlMaxIterationsMask | SpvLoopControlPartialCountMask, + 7, 9) + .IsApplicable(context.get(), transformation_context)); - ApplyAndCheckFreshIds(TransformationSetLoopControl( - 10, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, - 3, 3), - context.get(), &transformation_context); ApplyAndCheckFreshIds( - TransformationSetLoopControl( - 23, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0), + TransformationSetLoopControl(10, + SpvLoopControlUnrollMask | + SpvLoopControlPeelCountMask | + SpvLoopControlPartialCountMask, + 3, 3), + context.get(), &transformation_context); + ApplyAndCheckFreshIds( + TransformationSetLoopControl(23, SpvLoopControlDontUnrollMask, 0, 0), + context.get(), &transformation_context); + ApplyAndCheckFreshIds( + TransformationSetLoopControl(33, SpvLoopControlUnrollMask, 0, 0), context.get(), &transformation_context); - ApplyAndCheckFreshIds(TransformationSetLoopControl( - 33, (uint32_t)spv::LoopControlMask::Unroll, 0, 0), - context.get(), &transformation_context); ApplyAndCheckFreshIds( TransformationSetLoopControl( 43, - (uint32_t)spv::LoopControlMask::DontUnroll | - (uint32_t)spv::LoopControlMask::DependencyInfinite, + SpvLoopControlDontUnrollMask | SpvLoopControlDependencyInfiniteMask, 0, 0), context.get(), &transformation_context); - ApplyAndCheckFreshIds(TransformationSetLoopControl( - 53, (uint32_t)spv::LoopControlMask::MaskNone, 0, 0), - context.get(), &transformation_context); - ApplyAndCheckFreshIds(TransformationSetLoopControl( - 63, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::PeelCount, - 23, 0), - context.get(), &transformation_context); - ApplyAndCheckFreshIds(TransformationSetLoopControl( - 73, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MaxIterations | - (uint32_t)spv::LoopControlMask::PeelCount, - 23, 0), - context.get(), &transformation_context); ApplyAndCheckFreshIds( - TransformationSetLoopControl( - 83, (uint32_t)spv::LoopControlMask::DontUnroll, 0, 0), + TransformationSetLoopControl(53, SpvLoopControlMaskNone, 0, 0), + context.get(), &transformation_context); + ApplyAndCheckFreshIds( + TransformationSetLoopControl(63, + SpvLoopControlUnrollMask | + SpvLoopControlMinIterationsMask | + SpvLoopControlPeelCountMask, + 23, 0), + context.get(), &transformation_context); + ApplyAndCheckFreshIds( + TransformationSetLoopControl(73, + SpvLoopControlUnrollMask | + SpvLoopControlMaxIterationsMask | + SpvLoopControlPeelCountMask, + 23, 0), + context.get(), &transformation_context); + ApplyAndCheckFreshIds( + TransformationSetLoopControl(83, SpvLoopControlDontUnrollMask, 0, 0), context.get(), &transformation_context); - ApplyAndCheckFreshIds(TransformationSetLoopControl( - 93, - (uint32_t)spv::LoopControlMask::PeelCount | - (uint32_t)spv::LoopControlMask::PartialCount, - 16, 8), - context.get(), &transformation_context); ApplyAndCheckFreshIds( TransformationSetLoopControl( - 103, (uint32_t)spv::LoopControlMask::PartialCount, 0, 60), + 93, SpvLoopControlPeelCountMask | SpvLoopControlPartialCountMask, 16, + 8), + context.get(), &transformation_context); + ApplyAndCheckFreshIds( + TransformationSetLoopControl(103, SpvLoopControlPartialCountMask, 0, 60), + context.get(), &transformation_context); + ApplyAndCheckFreshIds( + TransformationSetLoopControl(113, SpvLoopControlPeelCountMask, 12, 0), context.get(), &transformation_context); ApplyAndCheckFreshIds( TransformationSetLoopControl( - 113, (uint32_t)spv::LoopControlMask::PeelCount, 12, 0), + 123, + SpvLoopControlUnrollMask | SpvLoopControlMinIterationsMask | + SpvLoopControlMaxIterationsMask | SpvLoopControlPartialCountMask, + 0, 9), context.get(), &transformation_context); - ApplyAndCheckFreshIds(TransformationSetLoopControl( - 123, - (uint32_t)spv::LoopControlMask::Unroll | - (uint32_t)spv::LoopControlMask::MinIterations | - (uint32_t)spv::LoopControlMask::MaxIterations | - (uint32_t)spv::LoopControlMask::PartialCount, - 0, 9), - context.get(), &transformation_context); std::string after_transformation = R"( OpCapability Shader @@ -1018,10 +958,10 @@ TEST(TransformationSetLoopControlTest, CheckSPIRVVersionsRespected) { context.get(), validator_options, kConsoleMessageConsumer)); TransformationContext transformation_context( MakeUnique<FactManager>(context.get()), validator_options); - TransformationSetLoopControl peel_count( - 10, (uint32_t)spv::LoopControlMask::PeelCount, 4, 0); + TransformationSetLoopControl peel_count(10, SpvLoopControlPeelCountMask, 4, + 0); TransformationSetLoopControl partial_count( - 10, (uint32_t)spv::LoopControlMask::PartialCount, 0, 4); + 10, SpvLoopControlPartialCountMask, 0, 4); switch (env) { case SPV_ENV_UNIVERSAL_1_0: |