• Home
  • Raw
  • Download

Lines Matching full:merge

275   Block merge("merge", SpvOpReturn);  in TEST_P()  local
279 loop.SetBody("OpLoopMerge %merge %cont None\n"); in TEST_P()
283 nameOps("loop", "entry", "cont", "merge", in TEST_P()
289 str += loop >> std::vector<Block>({cont, merge}); in TEST_P()
291 str += merge; in TEST_P()
345 Block merge("merge", SpvOpReturn); in TEST_P() local
348 if (is_shader) loop.SetBody("OpLoopMerge %merge %loop None\n"); in TEST_P()
351 nameOps("loop", "merge", std::make_pair("func", "Main")) + in TEST_P()
357 str += loop >> std::vector<Block>({merge, loop}); in TEST_P()
358 str += merge; in TEST_P()
370 Block merge("merge", SpvOpReturn); in TEST_P() local
373 if (is_shader) branch.SetBody("OpSelectionMerge %merge None\n"); in TEST_P()
381 str += cont >> merge; // cont appears before its dominator in TEST_P()
382 str += branch >> std::vector<Block>({cont, merge}); in TEST_P()
383 str += merge; in TEST_P()
399 Block merge("merge", SpvOpReturn); in TEST_P() local
402 if (is_shader) loop.SetBody(" OpLoopMerge %merge %loop None\n"); in TEST_P()
404 // cannot share the same merge in TEST_P()
405 if (is_shader) selection.SetBody("OpSelectionMerge %merge None\n"); in TEST_P()
408 nameOps("merge", std::make_pair("func", "Main")) + in TEST_P()
414 str += selection >> std::vector<Block>({loop, merge}); in TEST_P()
415 str += merge; in TEST_P()
422 MatchesRegex("Block .\\[%merge\\] is already a merge block " in TEST_P()
435 Block merge("merge", SpvOpReturn); in TEST_P() local
438 if (is_shader) selection.SetBody(" OpSelectionMerge %merge None\n"); in TEST_P()
440 // cannot share the same merge in TEST_P()
441 if (is_shader) loop.SetBody(" OpLoopMerge %merge %loop None\n"); in TEST_P()
444 nameOps("merge", std::make_pair("func", "Main")) + in TEST_P()
449 str += selection >> std::vector<Block>({merge, loop}); in TEST_P()
450 str += loop >> std::vector<Block>({loop, merge}); in TEST_P()
451 str += merge; in TEST_P()
458 MatchesRegex("Block .\\[%merge\\] is already a merge block " in TEST_P()
542 Block merge("merge"); in TEST_P() local
546 bad.SetBody("OpLoopMerge %merge %cont None\n"); in TEST_P()
555 str += merge >> end; in TEST_P()
574 Block merge("merge"); in TEST_P() local
578 bad.SetBody("OpSelectionMerge %merge None\n"); in TEST_P()
587 str += def >> merge; in TEST_P()
588 str += block1 >> merge; in TEST_P()
589 str += block2 >> merge; in TEST_P()
590 str += block3 >> merge; in TEST_P()
591 str += merge >> end; in TEST_P()
645 Block merge("merge", SpvOpReturn); in TEST_P() local
649 if (is_shader) head.AppendBody("OpSelectionMerge %merge None\n"); in TEST_P()
652 nameOps("head", "merge", std::make_pair("func", "Main")) + in TEST_P()
656 str += entry >> merge; in TEST_P()
657 str += head >> std::vector<Block>({merge, f}); in TEST_P()
658 str += f >> merge; in TEST_P()
659 str += merge; in TEST_P()
668 ".\\[%head\\] does not dominate the merge block " in TEST_P()
669 ".\\[%merge\\]\n %merge = OpLabel\n")); in TEST_P()
676 // If a merge block is reachable, then it must be strictly dominated by in TEST_P()
701 ".\\[%head\\] does not strictly dominate the merge block " in TEST_P()
714 Block merge("merge", SpvOpReturn); in GetUnreachableMergeNoMergeInst() local
718 branch.AppendBody("OpSelectionMerge %merge None\n"); in GetUnreachableMergeNoMergeInst()
721 str += nameOps("branch", "merge", std::make_pair("func", "Main")); in GetUnreachableMergeNoMergeInst()
727 str += merge; in GetUnreachableMergeNoMergeInst()
745 Block merge("merge", op); in GetUnreachableMergeTerminatedBy() local
750 branch.AppendBody("OpSelectionMerge %merge None\n"); in GetUnreachableMergeTerminatedBy()
752 str += nameOps("branch", "merge", std::make_pair("func", "Main")); in GetUnreachableMergeTerminatedBy()
759 str += merge; in GetUnreachableMergeTerminatedBy()
787 Block merge("merge", SpvOpReturn); in GetUnreachableContinueTerminatedBy() local
794 branch.AppendBody("OpLoopMerge %merge %target None\n"); in GetUnreachableContinueTerminatedBy()
796 str += nameOps("branch", "merge", "target", std::make_pair("func", "Main")); in GetUnreachableContinueTerminatedBy()
800 str += branch >> std::vector<Block>({merge}); in GetUnreachableContinueTerminatedBy()
801 str += merge; in GetUnreachableContinueTerminatedBy()
854 Block merge("merge", SpvOpUnreachable); in GetUnreachableMergeUnreachableMergeInst() local
859 branch.AppendBody("OpSelectionMerge %merge None\n"); in GetUnreachableMergeUnreachableMergeInst()
861 str += nameOps("branch", "merge", std::make_pair("func", "Main")); in GetUnreachableMergeUnreachableMergeInst()
865 str += merge; in GetUnreachableMergeUnreachableMergeInst()
886 Block merge("merge", SpvOpReturn); in GetUnreachableContinueUnreachableLoopInst() local
893 branch.AppendBody("OpLoopMerge %merge %target None\n"); in GetUnreachableContinueUnreachableLoopInst()
895 str += nameOps("branch", "merge", "target", std::make_pair("func", "Main")); in GetUnreachableContinueUnreachableLoopInst()
900 str += merge; in GetUnreachableContinueUnreachableLoopInst()
902 str += branch >> std::vector<Block>({merge}); in GetUnreachableContinueUnreachableLoopInst()
929 Block merge("merge", SpvOpUnreachable); in GetUnreachableMergeWithComplexBody() local
933 merge.AppendBody("OpStore %placeholder %one\n"); in GetUnreachableMergeWithComplexBody()
937 branch.AppendBody("OpSelectionMerge %merge None\n"); in GetUnreachableMergeWithComplexBody()
939 str += nameOps("branch", "merge", std::make_pair("func", "Main")); in GetUnreachableMergeWithComplexBody()
947 str += merge; in GetUnreachableMergeWithComplexBody()
963 Block merge("merge", SpvOpReturn); in GetUnreachableContinueWithComplexBody() local
973 branch.AppendBody("OpLoopMerge %merge %target None\n"); in GetUnreachableContinueWithComplexBody()
975 str += nameOps("branch", "merge", "target", std::make_pair("func", "Main")); in GetUnreachableContinueWithComplexBody()
980 str += branch >> std::vector<Block>({merge}); in GetUnreachableContinueWithComplexBody()
981 str += merge; in GetUnreachableContinueWithComplexBody()
1000 Block merge("merge", SpvOpUnreachable); in GetUnreachableMergeWithBranchUse() local
1006 branch.AppendBody("OpSelectionMerge %merge None\n"); in GetUnreachableMergeWithBranchUse()
1008 str += nameOps("branch", "merge", std::make_pair("func", "Main")); in GetUnreachableMergeWithBranchUse()
1013 str += t >> merge; in GetUnreachableMergeWithBranchUse()
1015 str += merge; in GetUnreachableMergeWithBranchUse()
1033 Block merge("merge", SpvOpUnreachable); in GetUnreachableMergeWithMultipleUses() local
1040 branch.AppendBody("OpSelectionMerge %merge None\n"); in GetUnreachableMergeWithMultipleUses()
1041 duplicate.AppendBody("OpSelectionMerge %merge None\n"); in GetUnreachableMergeWithMultipleUses()
1044 str += nameOps("branch", "merge", std::make_pair("func", "Main")); in GetUnreachableMergeWithMultipleUses()
1052 str += merge; in GetUnreachableMergeWithMultipleUses()
1063 HasSubstr("is already a merge block for another header")); in TEST_P()
1075 Block merge("merge", SpvOpReturn); in GetUnreachableContinueWithBranchUse() local
1085 branch.AppendBody("OpLoopMerge %merge %target None\n"); in GetUnreachableContinueWithBranchUse()
1087 str += nameOps("branch", "merge", "target", std::make_pair("func", "Main")); in GetUnreachableContinueWithBranchUse()
1092 str += branch >> std::vector<Block>({merge}); in GetUnreachableContinueWithBranchUse()
1093 str += merge; in GetUnreachableContinueWithBranchUse()
1111 Block merge("merge", SpvOpReturn); in GetReachableMergeAndContinue() local
1119 t >> merge; in GetReachableMergeAndContinue()
1124 branch.AppendBody("OpLoopMerge %merge %target None\n"); in GetReachableMergeAndContinue()
1128 str += nameOps("branch", "merge", "target", "body", "t", "f", in GetReachableMergeAndContinue()
1137 str += merge; in GetReachableMergeAndContinue()
1154 Block merge("merge", SpvOpReturn); in GetUnreachableMergeAndContinue() local
1165 branch.AppendBody("OpLoopMerge %merge %target None\n"); in GetUnreachableMergeAndContinue()
1169 str += nameOps("branch", "merge", "target", "body", "t", "f", in GetUnreachableMergeAndContinue()
1178 str += merge; in GetUnreachableMergeAndContinue()
1221 Block merge("merge"); in GetUnreachableBranch() local
1226 unreachable.AppendBody("OpSelectionMerge %merge None\n"); in GetUnreachableBranch()
1236 str += unreachablechildt >> merge; in GetUnreachableBranch()
1237 str += unreachablechildf >> merge; in GetUnreachableBranch()
1238 str += merge >> exit; in GetUnreachableBranch()
1474 Block merge("merge", SpvOpReturn); in TEST_P() local
1477 if (is_shader) loop.SetBody("OpLoopMerge %merge %back0 None\n"); in TEST_P()
1487 str += merge; in TEST_P()
1510 Block merge("merge", SpvOpReturn); in TEST_P() local
1514 if (is_shader) loop.SetBody("OpLoopMerge %merge %cheader None\n"); in TEST_P()
1521 str += loop >> std::vector<Block>({cheader, merge}); in TEST_P()
1525 str += merge; in TEST_P()
1546 Block merge("merge", SpvOpReturn); in TEST_P() local
1549 if (is_shader) loop.SetBody("OpLoopMerge %merge %loop None\n"); in TEST_P()
1556 str += loop >> std::vector<Block>({cont, merge}); in TEST_P()
1557 str += cont >> std::vector<Block>({loop, merge}); in TEST_P()
1558 str += merge; in TEST_P()
1580 Block merge("merge"); in TEST_P() local
1584 if (is_shader) loop.SetBody("OpLoopMerge %merge %loop None\n"); in TEST_P()
1591 str += loop >> std::vector<Block>({cont, merge}); in TEST_P()
1593 str += merge >> exit; in TEST_P()
1720 // The nested construct has an unreachable merge block. In the in TEST_P()
1721 // augmented CFG that merge block in TEST_P()
1754 // The continue construct cannot be the merge target of a nested selection in TEST_P()
1763 Block merge("merge", SpvOpReturn); in TEST_P() local
1767 loop.SetBody("OpLoopMerge %merge %if_merge None\n"); in TEST_P()
1773 nameOps("entry", "loop", "if_head", "if_true", "if_merge", "merge") + in TEST_P()
1780 str += if_merge >> std::vector<Block>({loop, merge}); in TEST_P()
1781 str += merge; in TEST_P()
1791 "by 2[%loop], but its merge block 5[%if_merge] is not")); in TEST_P()
1804 Block merge("merge", SpvOpReturn); in TEST_P() local
1808 loop.SetBody("OpLoopMerge %merge %latch None\n"); in TEST_P()
1812 nameOps("entry", "loop", "latch", "merge") + in TEST_P()
1817 str += loop >> std::vector<Block>({latch, merge}); in TEST_P()
1819 str += merge; in TEST_P()
1838 Block merge("merge", SpvOpReturn); in TEST_P() local
1842 loop.SetBody("OpLoopMerge %merge %loop None\n"); in TEST_P()
1846 nameOps("entry", "loop", "latch", "merge") + in TEST_P()
1853 str += merge; in TEST_P()
1937 OpSelectionMerge %merge None in TEST_F()
1938 OpBranchConditional %true %then %merge in TEST_F()
1939 %merge = OpLabel in TEST_F()
2304 "corresponding merge, outer loop merge or outer loop " in TEST_F()
2357 OpSelectionMerge %merge None in TEST_F()
2362 OpBranch %merge in TEST_F()
2363 %merge = OpLabel in TEST_F()
2390 OpSelectionMerge %merge None in TEST_F()
2395 OpBranch %merge in TEST_F()
2396 %merge = OpLabel in TEST_F()
2424 OpSelectionMerge %merge None in TEST_F()
2431 OpBranch %merge in TEST_F()
2432 %merge = OpLabel in TEST_F()
2455 OpSelectionMerge %merge None in TEST_F()
2462 OpBranch %merge in TEST_F()
2463 %merge = OpLabel in TEST_F()
2901 HasSubstr("Merge Block 1[%undef] must be an OpLabel")); in TEST_F()
2952 HasSubstr("Merge Block and Continue Target must be different ids")); in TEST_F()
3139 HasSubstr("Merge Block may not be the block containing the OpLoopMerge")); in TEST_F()
3641 OpSelectionMerge %merge None in TEST_F()
3642 OpBranchConditional %undef_bool %merge %b1 in TEST_F()
3644 OpSwitch %undef_int %b2 0 %b2 1 %merge 2 %b2 in TEST_F()
3646 OpBranch %merge in TEST_F()
3647 %merge = OpLabel in TEST_F()
3733 OpSelectionMerge %merge None in TEST_F()
3734 OpSwitch %int_0 %merge 1 %b1 in TEST_F()
3736 OpBranchConditional %undef %merge %b2 in TEST_F()
3738 OpBranch %merge in TEST_F()
3739 %merge = OpLabel in TEST_F()
3761 OpSelectionMerge %merge None in TEST_F()
3766 OpBranch %merge in TEST_F()
3768 OpBranch %merge in TEST_F()
3769 %merge = OpLabel in TEST_F()
3822 OpSelectionMerge %merge None in TEST_F()
3829 OpBranch %merge in TEST_F()
3831 OpBranch %merge in TEST_F()
3832 %merge = OpLabel in TEST_F()
3876 "1[%loop], but its merge block 2[%continue] is not")); in TEST_F()
3913 "1[%loop], but its merge block 2[%continue] is not")); in TEST_F()
4263 %30 = OpLabel ; merge for first if in TEST_F()
4274 %70 = OpLabel ; merge for second if in TEST_F()
4278 OpBranchConditional %cond %20 %60 ; should require a merge in TEST_F()
4290 "8[%8] does not dominate the merge block 10[%10]\n")); in TEST_F()